Este artículo trata sobre cómo portar mapas a Half-Life desde otros juegos de GoldSource (Counter-Strike, Team Fortress Classic, Day of Defeat y otros). Creo que le gustará a cualquiera que disfrute creando cosas para Half-Life. El proceso de portado no es aburrido ni repetitivo. Portar un solo mapa lleva aproximadamente entre 10 minutos y una hora.

Para portar mapas necesitaremos:
  • RipEnt. Una aplicación de consola del conjunto de compiladores Zoner's Halflife Tools (ZHLT).
  • Half-Life con AmxModX instalado y el plugin "Weapon Factory", para colocar objetos por el mapa de forma rápida y cómoda.
  • El convertidor EntConverter.

    Utilidades necesarias:
    tools.zip [4.35 Mb] (descargas: 1022)


    Portar consiste en colocar objetos de Half-Life por el mapa (armas, puntos de aparición) y eliminar los objetos del otro juego. Toda la información sobre los objetos de un mapa se guarda en formato de
    texto; solo tenemos que exportar esta información a un archivo de texto, editarla e importarla de nuevo al mapa.

    Colocaremos los objetos por el mapa dentro del propio juego: es muy cómodo volar por el mapa y soltar armas en los sitios adecuados. Lo haremos con el plugin AMX de GordonFreeman, Weapon Factory.
    Cambia el nombre del archivo liblist.gam, que está en el directorio valve, a liblist_backup.gam.
    Ahora descarga el archivo comprimido de abajo y copia todo su contenido en el directorio valve, respondiendo "Sí" a cada pregunta de sobrescritura.

    Mostraré el proceso de portado en sí con un mapa de Counter-Strike, fy_kano, creado por Burner. Lo descargué de gamebanana.com, donde también puedes encontrar muchos mapas interesantes.

    Abre el archivo comprimido; dentro verás un directorio cstrike. Entra en él y extrae todo su contenido en el directorio valve, que está en la carpeta de tu juego Half-Life (por ejemplo, D:\Games\Steam\steamapps\common\Half-Life). Extrae el contenido, no el propio directorio cstrike.

    Portar mapas sin descompilar


    La primera vez que ejecuté el mapa en Half-Life, me salió el error "Mod_NumForName: models/winebottle.mdl not found".

    Portar mapas sin descompilar


    Este tipo de errores aparecen cuando no se encuentra un recurso en uso (un modelo, un sonido o un sprite).
    Hay dos formas de resolver este problema. La primera es copiar de Counter-Strike a Half-Life los recursos que usa el mapa.
    La segunda es eliminar o reemplazar las entradas de los objetos en el archivo ent; en ese caso, o bien eliminamos el objeto del mapa, o simplemente cambiamos sus propiedades, para que el juego no lo busque o cargue otro archivo. Ten cuidado con este método y ten en cuenta las particularidades del mapa, ya que algunos objetos pueden ser muy importantes. Si en el mapa hay un helicóptero, un árbol, una botella o una persona, puede desaparecer.

    Optaremos por el segundo método, ya que de todos modos tendremos que exportar los datos de los objetos. Para ello usaremos la aplicación RipEnt.
    El archivo comprimido que te he proporcionado contiene dos archivos bat. Ábrelos, cambia el nombre del mapa por el tuyo, guárdalos y ejecuta ripent_export.bat

    Portar mapas sin descompilar


    Tras ejecutarlo, obtenemos un nuevo archivo ent con el nombre de nuestro mapa. Abre este archivo y elimina los objetos innecesarios. Cada objeto empieza con una llave de apertura "{" y termina con "}"; entre las llaves hay varias directivas con propiedades. La directiva "classname" es el nombre del objeto; solo trabajaremos con algunos de ellos:

    cycler_sprite -- un modelo o sprite en el mapa.
    env_sprite -- un sprite en el mapa (fuego o algún efecto).
    info_player_deathmatch -- un punto de aparición del jugador en multijugador. En Counter-Strike, el punto de aparición de los terroristas.
    info_player_start -- el punto de aparición del jugador en el modo de un jugador. En Counter-Strike, el punto de aparición de los antiterroristas.
    game_player_equip -- este objeto permite equipar al jugador con las armas deseadas.
    ambient_generic -- un sonido en el mapa.

    Portar mapas sin descompilar


    En fy_kano eliminé todas las entradas cycler_sprite y game_player_equip y dejé un info_player_deathmatch y un info_player_start; el resto de puntos de aparición se colocarán por todo el mapa. También moví algunos archivos estándar de cstrike a valve. Después de editar el archivo ent, hay que importarlo de nuevo; para ello el archivo comprimido incluye ripent_import.bat. Importa las propiedades de los objetos, pon el mapa en la carpeta valve/maps e intenta ejecutarlo en el juego.

    Una vez en marcha, notarás que faltan las distintas armas y objetos.

    Portar mapas sin descompilar


    Ahora usemos el plugin "Weapon Factory". Escribe "wp_spawn" en la consola y aparecerá un menú a la izquierda.

    Portar mapas sin descompilar

    Portar mapas sin descompilar


    Elige qué arma u objeto quieres hacer aparecer. Puedes ajustar el ángulo de rotación del objeto. Hasta que se recargue el mapa, todos los objetos añadidos tendrán un efecto holográfico.

    Portar mapas sin descompilar

    Portar mapas sin descompilar


    Además de armas y munición, no olvides colocar los puntos de aparición de los jugadores. El plugin "Weapon Factory" no tiene el objeto info_player_deathmatch; bueno, sí lo tiene, pero no funciona. Yo suelo usar la palanca como punto de aparición, y después, en el archivo de texto de entidades, puedes cambiar weapon_crowbar por info_player_deathmatch.

    Cuando hayas colocado todos los objetos y puntos de aparición, recarga el mapa ("restart" en la consola) y verás que ahora el mapa está lleno de objetos. Pero el portado aún no ha terminado:
    todos estos objetos se guardan en la base de datos del plugin "Weapon Factory", y tenemos que integrarlos en el propio mapa.

    Portar mapas sin descompilar


    Ahora tenemos que convertir los datos de "Weapon Factory" en datos que se puedan importar al mapa sin riesgo. Ve al directorio valve\addons\amxmodx\configs\weapon_factory; debería contener un archivo ini con el nombre de nuestro mapa, en mi caso fy_kano.ini. Para la conversión usaremos mi EntConverter: copia ent_converter.exe en el directorio de los archivos ini, valve\addons\amxmodx\configs\weapon_factory, y ejecútalo. Después debería aparecer un archivo ent con el nombre de nuestro mapa, en mi caso fy_kano.ent. Añade todo el contenido de este archivo al final del archivo ent que exportamos con RipEnt.

    Portar mapas sin descompilar


    No olvides nuestro truco: hay que reemplazar weapon_crowbar por info_player_deathmatch. En algunos casos los jugadores pueden aparecer dentro del suelo, así que tendrás que aumentar la coordenada z (altura) del objeto; ten en cuenta que los números pueden ser negativos.

    Portar mapas sin descompilar

    Portar mapas sin descompilar


    Después de guardar el archivo ent final, impórtalo al mapa ejecutando "ripent_import.bat".
    El mapa se ha portado con éxito de Counter-Strike a Half-Life. Puedes comprobar si todo funciona. Antes, no olvides eliminar liblist.gam y devolverle a liblist_backup.gam su nombre, liblist.gam;
    así se desactivan AmxModx y el plugin "Weapon Factory". Si no lo haces, todos los objetos que colocamos aparecerán duplicados.

    De esta forma puedes portar absolutamente cualquier mapa de GoldSource. Además de portar, puedes añadir objetos a mapas existentes de Half-Life, corregir problemas de los mapas, etc.