Clan DLAN
Herramientas personales
Clan DLAN
Clan DLAN
Clan DLAN
Clan DLAN
Clan DLAN

Añadiendo objetos a vendedores

De Videojuegos

Este tutorial nos mostrará como añadir objetos al inventario de un vendedor (o cualquier otro personaje) sin crear conflictos con otros mods. Para este tutorial necesitarás el programa GECK y conocimientos muy básicos de scripting. Si no dispones del programa, puedes descargarlo aquí. Y si tampoco tienes conocimientos sobre Scripts, no te preocupes, en realidad solo los necesitas para comprender realmente el proceso, pero no para conseguir el objetivo del tutorial.


Contenido

EMPEZANDO

Este tutorial asume que ya tienes abierto tu mod con el GECK, y que además ya has creado el objeto que te interesa añadir al vendedor. Si no es así puedes echar un vistazo en este tutorial por si necesitas ayuda.


CREANDO UNA QUEST

El método que usaremos requiere un Script que añada el objeto al inventario de un personaje. Los Scripts deben estar vinculados a algún objeto, quest o efecto. En realidad, con algunos cambios, cualquiera de las tres opciones nos valdría, pero la más correcta y efectiva es usar una Quest.

En la ventana Object Window nos dirigimos a ACTOR DATA--QUEST, click derecho sobre cualquiera de ellas y NEW.

6QuestNEW.jpg

En esta ventana debemos marcar las casillas Start Game Enabled y Script Processing Delay. De esta forma configuramos la Quest para que se inicie por si sola y procese cada 5 segundos (no necesitamos que vaya más rápido). En ID ponemos el nombre de programación que tendrá nuestra Quest. Por ejemplo VendedorQUEST.

62Quest.jpg

Aceptamos en OK y pasamos al siguente paso.


BUSCANDO LA REFERENCIA DEL VENDEDOR

Este paso es muy importante: debemos buscar el contenedor del inventario del vendedor que nos interese y apuntar la referencia para más tarde poder usarlo en nuestro Script. Todos los vendedores del juego tienen un contenedor secreto que se almacena en una celda no accesible en el juego.

En la ventana Cell View nos aseguramos que estamos en Interiors como World Space y buscamos una celda llamada VendorChestsCell. En EDITOR ID buscamos el contenedor que nos interese, por ejemplo Wolfgang, y botón derecho Edit sobre él.

Y ahora apuntamos para más tarde el nombre que figura en Reference Editor ID.

7Vendor.jpg


CREANDO UN SCRIPT

La quest que acabamos de crear regulará el funcionamiento de un Script que a su vez será el que realmente añada nuestro objeto al vendedor. La forma más rápida de crear un Script es con el boton SCRIPTS que se encuentra en la barra de herramientas. Tambien podemos crealo en MISCELLANEOUS--SCRIPT y botón derecho NEW

8scriptNEW.jpg

En la ventana Script Edit ve a File--New... y crea un nuevo Script. IMPORTANTE: antes de seguir configura el Script como de tipo Quest (en Script Type). Cuanto antes lo hagas mejor, porque es muy habitual olvidar este paso.

Ahora añadimos el código en cuestión. Si deseas aprender algo sobre scripts antes de continuar te recomiendo este tutorial traducido al español. En cualquier caso puedes utilizar directamente los códigos que verás a continuación cambiando algún detalle como por ejemplo en nombre de tu quest.

El primer ejemplo de código añade el objeto al inventario del vendedor y detiene la quest definitivamente. Con esto conseguimos que el script no se active infinitamente (añadiendo infinitos objetos) y además aumentamos el rendimiento al decirle al juego que deje de revisar este código (esto, de todas formas es despreciable para cualquier ordenador, pero siempre nos conviene ser limpios con la programación):

Este código añade UN unico objeto (si quieres añadir más de una sola vez cambia el 1 por cualquier otro número).

scn VendedorQuestSCRIPT


Begin gameMode

	VendorChestWolfgangREF.additem EDITORID_de_tu_objeto 1

	stopquest VendedorQUEST

End

El siguiente código añade un objeto si el vendedor tiene menos de tres de esos objetos en su inventario (de nuevo esto es perfectamente editable):

scn VendedorQuestSCRIPT

Begin gameMode

	If VendorChestWolfgangREF.GetItemCount EDITORID_de_tu_objeto <= 3

		VendorChestWolfgangREF.additem EDITORID_de_tu_objeto 1

	endif

End

Y el ultimo ejemplo y el más interesante añade un objeto siempre y cuando el vendedor no tenga ninguno en su inventario y además hayan pasado 2 días desde la última vez que tuvo uno:

scn VendedorQuestSCRIPT

Float LastTimer

Begin gameMode
												
	
	If LastTimer < GameDaysPassed

		set LastTimer to GameDaysPassed + 2
		 
		if VendorChestWolfgangREF.GetItemCount EDITORID_de_tu_objeto == 0

			VendorChestWolfgangREF.additem EDITORID_de_tu_objeto 1

		endif

	endif

End

Utilizar el comando GameDaysPassed en estas circunstancias es muy util, porque al declarar una variable (en este caso LastTimer) siempre se configura por defecto en cero, y por tanto la conparación LastTimer < GameDaysPassed es como decir que 0 es menor que los días de juego que han pasado (que a su vez es imposible que sean cero), es decir que siempre dejará funcionar el código que tiene debajo una única primera vez y acto seguido esperará los dos días.

Resultado: la primera vez que usemos el mod el código "entrará" y chequeará al vendedor. Puesto que este no tiene aun nuestro objeto, el script le añadirá uno, y configurará el proximo chequeo para dentro de dos días del horario del juego. Pasados dos días chequeará de nuevo al vendedor, y tenga o no el objeto, volverá a configurar el chequeo para dentro de dos días.

NOTA: el Editor ID es el identificador del objeto. Es la palabra que figura en la columna Editor ID de la ventana Object Window. Por ejemplo para el objeto Pera, el Editor ID es Pear. Para la armadura de metal es ArmorMetal. Y para la granada de plasma es WeapGrenadePlasma.


TERMINANDO

Ahora que tenemos nuestro Script listo debemos volver a la Quest que creamos para alojarlo. En la ventana Object Window nos dirigimos a ACTOR DATA--QUEST de nuevo, y abrimos con doble click la quest que creamos. En el apartado Script seleccionamos el código que acabamos de crear de la lista desplegable. Si no lo ves es porque no configurastes el Script como de tipo Quest. En ese caso debes volver al Script y hacerlo.

Click en Ok y salvamos nuestro mod.

NOTA MUY IMPORTANTE: no todos los vendedores pueden vender todos los tipos de objetos. Por ejemplo Wolfgang no puede vender armas. Si hemos escogido un actor con este problema debemos ir a ACTORS--NPC en la ventana Object Window y pinchar dos veces en el actor en cuestión.

AiData.jpg

En la ventana NPC buscamos la pestaña AI Data y en el apartado Autocalc Services tenemos los tipos de objetos que ese vendedor puede vender.


--Bauhaus 20:35 20 may 2009 (UTC).


Volver a la página principal de Fallout 3