Últimos temas
Buscar
Tutorial: Implantar NPCs en el juego.
Página 1 de 1.
Tutorial: Implantar NPCs en el juego.
Aqui estoy una vez mas. Cada vez profundizando mas y mas, hoy traigo la forma de como poder implementar en el juego un NPC. Un NPC (non playable character) es un personaje que lleva el juego, como lo son el usurero, el gobernador, Morgan...
En nuestro caso, vamos a crear un NPC, lo pondremos en una ubicacion del juego, y le daremos un aC de dialogo para que pueda hablarnos.
Creando un NPC
Bien, si no poseemos de un editor de modelos, o simplemente, somo aficionados al tema, podemos escojer cualquier model existente en el juego. Si tenemos el HexEditor y sabemos como clonar models y cambiarles la ruta de la textura, pues es una buena opcion. En nuestro caso, voy a escoger a un personaje encapuchado bastante "molon" y misterioso, que dara mucho juego. (Este model pertenece al CMv3.1 de pirates ahoy).
Buscando localizacion
Una vez pensado que model y texturas usaremos, tenemos que ir a la carpeta:
Imaginemos que quiero hacer que un personaje este en el faro de Tortuga. Revisando el documento encontramos:
Una vez que se esa referencia, me voy a la carpeta:
Abrimos el archivo de tortuga, y si no queremos comernos mucho la cabeza copiamos la informacion de otro personaje (en mi caso, coji la de Isabella del archivo StoryCharacters.c) y la pegamos en el archivo Tortuga.c. Pero tenemos que editarlo, de tal manera que os quede algo asi:
+ Lo que esta en naranja, me venia con el copia y pega de Isabella, pero no es algo que tenga que quitarnos el sueño.
+ Importante, el "ch.id" tiene que ser único. Aseguraros de poner un nombre que recordeis, que no repitais, y que sea casi imposible de que algun programador lo pusiera en algun otro personaje. Yo he puesto josuviz001, jaja.
+ La informacion de verde, model, sexo, y animation, aseguraros de que corresponde.
+ "ch.location", como veis, aqui he puesto la localizacion del faro que ya conociamos de ver el archivo de la carpeta locations, "mayak6".
+ La informacion de rojo es la ubicacion exacta donde se colocara nuestro NPC.
- Para ello, necesitaremos habilitar el modo beta, para que nos sea mucho mas facil. Vamos al archivo "mod_on_off" de la carpeta program. Buscamos las lineas adecuadas y las editamos tal que queden asi:
Creando una conversacion
+ Por ultimo, vamos a la carpeta "program\dialogs\russian" copiamos un aC, y lo renombramos con el nombre que querais, este sera el archivo de dialogo. Yo le he llamado "char1.c", y lo añadi a la linea "ch.dialog.filename". Bien, abris vuestro aC renombrado, y borrais por completo lo que ponga. Yo lo simplifique a una conversacion de una linea, desde aqui podeis seguir editandolo:
[Tienes que estar registrado y conectado para ver esa imagen]
Si os fijais, esta situado en el goto/goto30
[Tienes que estar registrado y conectado para ver esa imagen]
Y aqui vemos que la conversacion funciona.
(Como lo he hecho a 200 por hora, igual quedan cosas por explicar, pero podeis postear aqui las dudas sin problema)
En nuestro caso, vamos a crear un NPC, lo pondremos en una ubicacion del juego, y le daremos un aC de dialogo para que pueda hablarnos.
Creando un NPC
Bien, si no poseemos de un editor de modelos, o simplemente, somo aficionados al tema, podemos escojer cualquier model existente en el juego. Si tenemos el HexEditor y sabemos como clonar models y cambiarles la ruta de la textura, pues es una buena opcion. En nuestro caso, voy a escoger a un personaje encapuchado bastante "molon" y misterioso, que dara mucho juego. (Este model pertenece al CMv3.1 de pirates ahoy).
Buscando localizacion
Una vez pensado que model y texturas usaremos, tenemos que ir a la carpeta:
Alli veremos un aC de cada ciudad. Vamos a entrar al de Tortuga por ejemplo, y vemos esto:aop2\program\locations\init\
La location.id indica la referencia del lugar. Y dentro de ese lugar hay otras refencias (Es decir, primero esta la ciudad, que tendra sus ubicaciones, y en el escenario ciudad, hay casas, con otras ubicaciones), que son lo que indican los grupos de 5 lineas. De esas 5 lineas, la primera indica el nombre del lugar, la segunda la referencia, la tercera indica el punto donde aparece el personaje cuando se entra en esa estancia, la cuarta no se que es, y la quinta te indica el nivel del lugar, es decir, si es a pie de calle si se trata de una casa...
(...)
locations[n].id = "Tortuga_town";
locations[n].id.label = "Street";
(...)
locations[n].reload.l24.name = "houseF2";
locations[n].reload.l24.go = "CommonRoom_MH5";
locations[n].reload.l24.emerge = "reload1";
locations[n].reload.l24.autoreload = "0";
locations[n].reload.l24.label = "House";
locations[n].reload.l25.name = "houseH2";
locations[n].reload.l25.go = "CommonRoom_MH7";
locations[n].reload.l25.emerge = "reload1";
locations[n].reload.l25.autoreload = "0";
locations[n].reload.l25.label = "House";
locations[n].reload.l26.name = "houseSp1";
locations[n].reload.l26.go = "CommonResidence_BackHall";
locations[n].reload.l26.emerge = "reload1";
locations[n].reload.l26.autoreload = "0";
locations[n].reload.l26.label = "House";
locations[n].reload.l27.name = "houseH1";
locations[n].reload.l27.go = "CommonRoom_MH10";
locations[n].reload.l27.emerge = "reload1";
locations[n].reload.l27.autoreload = "0";
locations[n].reload.l27.label = "House";
locations[n].reload.l28.name = "houseSp2";
locations[n].reload.l28.go = "CommonFlamHouse";
locations[n].reload.l28.emerge = "reload1";
locations[n].reload.l28.autoreload = "0";
locations[n].reload.l28.label = "House";
locations[n].reload.l29.name = "houseH3";
locations[n].reload.l29.go = "CommonHut";
locations[n].reload.l29.emerge = "reload1";
locations[n].reload.l29.autoreload = "0";
locations[n].reload.l29.label = "House";
n = n + 1;
(...)
Imaginemos que quiero hacer que un personaje este en el faro de Tortuga. Revisando el documento encontramos:
Ese es la refencia al faro de Tortuga.(...)
locations[n].id = "Mayak6";
locations[n].id.label = "Mayak6";
(...)
Una vez que se esa referencia, me voy a la carpeta:
Alli estan todos los personajes de las distintas ciudades, incluso hay un archivo llamado "StoryCharacters.c" donde guarda la informacion de algunos personajes como Morgan, ascold, Isabella...Age of Pirates 2\Program\characters\init
Abrimos el archivo de tortuga, y si no queremos comernos mucho la cabeza copiamos la informacion de otro personaje (en mi caso, coji la de Isabella del archivo StoryCharacters.c) y la pegamos en el archivo Tortuga.c. Pero tenemos que editarlo, de tal manera que os quede algo asi:
Tranquilos. Aqui hay mucha mas informacion de la que os he dado pero ahora os la explicare:makeref(ch,Characters[n]); // Ëþáîâü ïîíèìàøü...
ch.name = "Hombre";
ch.lastname = "Encapuchado";
ch.id = "josuviz001";
ch.model = "encap";
ch.sex = "man";
ch.model.animation = "man2_ab";
ch.location = "mayak6";
ch.location.group = "goto";
ch.location.locator = "goto30";
ch.Dialog.Filename = "char1.c";
ch.nation = SPAIN;
ch.rank = 8;
ch.DontClearDead = true; // íå óáèðàòü òðóï
ch.money = "10000";
LAi_NoRebirthEnable(ch);
LAi_SetStayType(ch);
LAi_group_MoveCharacter(ch, "SPAIN_CITIZENS");
LAi_SetLoginTime(ch, 0.0, 24.0);
LAi_SetHP(ch, 75.0, 75.0);
n = n + 1;
+ Lo que esta en naranja, me venia con el copia y pega de Isabella, pero no es algo que tenga que quitarnos el sueño.
+ Importante, el "ch.id" tiene que ser único. Aseguraros de poner un nombre que recordeis, que no repitais, y que sea casi imposible de que algun programador lo pusiera en algun otro personaje. Yo he puesto josuviz001, jaja.
+ La informacion de verde, model, sexo, y animation, aseguraros de que corresponde.
+ "ch.location", como veis, aqui he puesto la localizacion del faro que ya conociamos de ver el archivo de la carpeta locations, "mayak6".
+ La informacion de rojo es la ubicacion exacta donde se colocara nuestro NPC.
- Para ello, necesitaremos habilitar el modo beta, para que nos sea mucho mas facil. Vamos al archivo "mod_on_off" de la carpeta program. Buscamos las lineas adecuadas y las editamos tal que queden asi:
- Entramos al juego, creamos nueva partida, presionamos f11, y en el cuadro de texto de arriba ponemos: "mayak6, reload, reload1_back" y presionamos aceptar. Como por arte de magia estamos en el faro de tortuga. Ahora presionamos f11, y en la esquina inferior derecha, hay un boton, instalaciones. Le damos a "mostrar buscador" y salimos de esa pantalla. Veremos que hay un monton de circulos de colores. (jajaja). Deberiamos fijarnos solo en los "goto/goto#". Bien, elegimos un goto en especial, (el 30, esta un poco lejos, lol). Y con esto ya tendriamos la informacion que necesitamos.// Show special message for test game statment
#define MOD_BETTATESTMODE "On" // On -DEV version; Test - TST ver; Off - relize
Creando una conversacion
+ Por ultimo, vamos a la carpeta "program\dialogs\russian" copiamos un aC, y lo renombramos con el nombre que querais, este sera el archivo de dialogo. Yo le he llamado "char1.c", y lo añadi a la linea "ch.dialog.filename". Bien, abris vuestro aC renombrado, y borrais por completo lo que ponga. Yo lo simplifique a una conversacion de una linea, desde aqui podeis seguir editandolo:
Bueno y hasta ahi, ya deberias tener toda la informacion necesaria. Y ya podeis probar si ha funcionado:
void ProcessDialogEvent()
{
ref NPChar;
aref Link, NextDiag;
DeleteAttribute(&Dialog,"Links");
makeref(NPChar,CharacterRef);
makearef(Link, Dialog.Links);
makearef(NextDiag, NPChar.Dialog);
switch(Dialog.CurrentNode)
{
case "First time":
dialog.text = "Esto es una conversacion vacia";
link.l1 = "Lo se";
link.l1.go = "Exit";
NextDiag.TempNode = "First time";
break;
case "Exit":
NextDiag.CurrentNode = NextDiag.TempNode;
DialogExit();
break;
}
}
[Tienes que estar registrado y conectado para ver esa imagen]
Si os fijais, esta situado en el goto/goto30
[Tienes que estar registrado y conectado para ver esa imagen]
Y aqui vemos que la conversacion funciona.
(Como lo he hecho a 200 por hora, igual quedan cosas por explicar, pero podeis postear aqui las dudas sin problema)
Temas similares
» Tutorial: Como usar convertorTX y Gmview (Imagen)
» Investigación: Explorando los archivos modificalbes del juego (Carpeta principal y RESOURCES)
» TraduccionES al ESPAÑOL del CMv3.1 y CMv3.1.5 by josuviz.
» Tutorial: Modificar conversaciones (Básico) -Por completar-
» Tutorial: HeroDescribe.txt & Cambiar apariencia del personaje.
» Investigación: Explorando los archivos modificalbes del juego (Carpeta principal y RESOURCES)
» TraduccionES al ESPAÑOL del CMv3.1 y CMv3.1.5 by josuviz.
» Tutorial: Modificar conversaciones (Básico) -Por completar-
» Tutorial: HeroDescribe.txt & Cambiar apariencia del personaje.
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
Dom Feb 23, 2014 11:01 pm por Telf R
» Los 18 de AoPII
Jue Ene 09, 2014 1:40 pm por RomnerB
» Nueva decoracion y temática!
Jue Ene 09, 2014 11:52 am por RomnerB
» Investigación: Explorando los archivos modificalbes del juego (Carpeta principal y RESOURCES)
Lun Dic 30, 2013 10:14 pm por RomnerB
» Parche Banderas
Lun Nov 25, 2013 5:50 pm por yvandario9
» Tutorial: Como usar convertorTX y Gmview (Imagen)
Sáb Sep 28, 2013 8:46 am por criss
» Tutorial: HeroDescribe.txt & Cambiar apariencia del personaje.
Sáb Sep 28, 2013 7:59 am por criss
» NAvegacion 1ra-3ra persona
Mar Ago 13, 2013 1:40 am por GDI-BOSS
» ayuda urgente porfabor
Jue Jun 20, 2013 10:58 am por vilota