Tutorial Básico de Guardaespaldas, por Txibi.

   Bien, lo primero es lo primero, necesitaremos las siguientes cosillas:

   1- Cocimientos básicos del aurora y del sistema de scripting, si es la primera vez que abres el aurora, entrena un par de días antes haciendo cosas facilitas.
    2- Dos litros de café.
    3- Crear un área para el "punto de creación" en el que ubicaremos.
    4- Un  PNJ (Personaje No Jugador) con el que gestionaremos la creación de guardaespaldas.
    5- Un punto de ruta donde aparecerán los guardaespaldas.
    6- Crear una facción para los guardaespaldas PNJs.
    7- Crear los guardaespaldas propiamente dichos y los objetos necesarios.
    8- Colocar una serie de scripts del never y diseñar unos pocos que más adelante veremos.

    Realizaremos 2 ejemplos, uno, llevar una pluma en el inventario que la usaremos para crear un cuervo acompañante que nos servirá, tal vez seamos un guardabosques, al gusto.

    El otro ejemplo será un mercado de esclavos en la que habrá una serie de esclavos a la venta. Explicaremos uno.
  
EL CUERVO.

    Bueno, partimos de que todo el mundo conoce al aurora un poquito, empezaremos de cero. Creamos un nuevo modulete, nombre al gusto, y creamos un área. Perfecto.

    Creamos en el aurora un objeto misceláneo pequeño y seleccionamos la forma de pluma, ponerle el mismo nombre para RESREF y Etiqueta, yo lo llamé: tx_lakra_01.

    Poner en propiedades, Lanzar conjuro, Poder Único para sí, 1 vez por día. Trama, y aparte yo puse también que no se pudiera dejar (quería que sólo acudiese a la llamada de su dueño).

    En propiedades del módulo,  Sucesos, OnActivateItem, que por defecto es x2_mod_def_act editar el script y añadir este pequeño bloque, antes del corchete de cierre final.

//Cuervo.
if(GetTag(oItem) == "tx_lakra_01")
{
AssignCommand(oPlayer, ActionStartConversation(oPlayer, "tx_lakra_invoca", TRUE));
return;
}//fin cuervo.

  
    Una vez al día se lanzará la conversación tx_lakra_invoca sobre el jugador que haya usado la pluma.

    Tomate una taza de café (o una birra), que empezamos con lo interesante.

    Vamos a empezar la conversación de
tx_lakra_invoca escribe esto, que ahora colocaremos los scripts:

fotografia de la conversacion tx_lakra_invoca.

    Tenemos que tener controladas dos pestañas en la conversación, el texto aparece cuando y acciones emprendidas están a pie de página de la conversación a la derecha, aquí:

foto de acciones emprendias y el texto aparece cuando.

    Bien, en esta línea...
    <StartAction>Soplas por el silbato, aunque no emite ningún sonido que puedas oir tú, si que lo puede oir el Cuervo.</Start>
    Pondremos en El Texto aparece cuando... el siguiente script. tx_tienebicho.

int StartingConditional()
{
    if (GetHenchman(GetPCSpeaker())==OBJECT_INVALID)
       return TRUE;
    else
        return FALSE;
}

    Y en la siguiente línea en Acciones emprendidas... el siguiente script. tx_lakra_cuervo1.

    <StartAction>(El Cuervo baja revoloteando)</Start>

/*
Nombre: tx_lakra_cuervo1
Crea el cuervo con la etiqueta: tx_lakra_01
con la resref: tx_lakra_01
*/
#include "NW_I0_PLOT"
void main()
{
    object oInvocador = GetPCSpeaker();
    int nObjectType = OBJECT_TYPE_CREATURE;
    string strTemplate = "tx_lakra_01"; // resref del diseño.
    location locLocation= GetLocation(oInvocador);
    int bUseAppearAnimation = TRUE;
    CreateObject (nObjectType, strTemplate, locLocation, bUseAppearAnimation);
}

    Y ahí, en las cercanías de nuestro aguerrido PJ (Personaje Jugador) sale el cuervo de resref tx_lakra_01. Así que para que salga de verdad, vamos a crearlo primero. Acordaros de ponerle la facción que hemos personalizado. Está en la pestaña de avanzado, facción. Si no hemos personalizado ninguna facción (muy mal), colocar la facción plebeyo hasta que hagamos una para este tipo de PNJs.

foto del la ficha del cuervo.

    Sois observadores y os habéis dado cuenta de que hay una conversación, tx_lakra_01, es la conversación del guardaespaldas, para que te haga caso. Vamos a crearla.

    Realmente no son necesarias todas esas opciones, pero hemos puesto varias  para que tenga algo de vida el pájaro ayudante. En este ejemplo presumimos que es un animal inteligente, capaz de entender ordenes e interpretarlas, como podría ser el familiar de un mago o el acompañante de un explorador.
    
    Hala, a escribir, despacio y con buena letra.

conversacion del cuervo

    Una buena noticia y otra mala, la mala es que muchas de esas líneas de conversación tiene scripts asociados (¿os queda café todavía verdad?). La buena sin embargo, es que el 99% de los scripts que podemos necesitar ya están diseñados. Ya que el motor del never por defecto incluye una librería de acciones y scripts de ayudantes bastante completa.

    No seáis vagos y terminemos con el ejemplo. A los scripts.

    El asunto irá así, yo os repetiré al línea y os diré que script teneis que poner en El texto aparece cuando... y en Acciones emprendidas. Si no nombro alguna de esas pestañas o líneas, es que no lleva un script asociado. En caso de que sea necesario algún script aparte de los de bioware, lo añadimos también.

    Empezamos.

    <StartAction>El cuervo se acerca revoloteando.</Start>
   
El texto aparece cuando...  script => tx_tienemaster

int StartingConditional()
{
if (GetMaster()==OBJECT_INVALID)
return TRUE;
else
return FALSE;
}


nota 1
    En este [FINALIZAR DIÁLOGO] añadir este script.
    Acciones emprendidas... script=> nw_ch_join

    Este bloque es el que controla la IA (Inteligencia Artificial) del ayudante, en el que podreis dar ordenes, no están todos, claro. Es un Cuervo. No lanzará magia, ni hará ataques de proyectiles. Pero si tiene poderes especiales (como los méfits, que lanzan rayos elementales básicos) con ordenarle de no meterse cuerpo a cuer po realizará primero todos los ataques a distacia posible.

   Aparte de las ordenes personalizadas sigue obedeciendo el menú radial de "Ataca al más cercano... curame...etc".

    Aquí están esas ordenes básicas y sus scripts (guiones).

    Este script (
nw_ch_ac_st_02) gestiona que sólo su dueño le ordeno cosas.
    <StartAction>El Cuervo se gira hacia ti, cuando reconoce tu voz.</Start>
    El Texto aparece cuando...  script => nw_ch_ac_st_02
  
    Y estos otros gestionan y alamacenan en variables las ordenes transmitidas.
    Lanzate a los ojos del enemigo y picoteale.
    El texto aparece cuando... script => nw_ch_comrange
    Acciones emprendidas script => nw_ch_gomelee
    Procura evitar el cuerpo a cuerpo salvo que sea necesario.
    El texto aparece cuando... script => nw_ch_commelee
    Acciones emprendidas script => nw_ch_goranged
    Ayúdame si no puedo abrir una puerta o arcon, dale picotazos a la cerradura.
    El texto aparece cuando... script => nw_ch_no_locks
    Acciones emprendidas script => nw_ch_lock_on
    No picotees los arcones y puertas cerradas si yo no puedo abrirlos.
    El texto aparece cuando... script => nw_ch_yes_locks
    Acciones emprendidas script => nw_ch_lock_off
    Aletea lo más sigilosamente posible.
    El texto aparece cuando... script => nw_ch_stlth_off
    Acciones emprendidas script => nw_ch_stlth_on
    No intentes ocultarte en ningún momento.
    El texto aparece cuando... script => nw_ch_yes_stlth
    Acciones emprendidas script => nw_ch_stlth_off
    Quiero que estes atento a las cosas.
    El texto aparece cuando... script => nw_ch_fm_st_07
    Acciones emprendidas script => nw_ch_srch_on
    No prestes tanta atención a los detalles.
    El texto aparece cuando... script => nw_ch_yes_srch
    Acciones emprendidas script => nw_ch_srch_off

    En este bloque controlas que el cuervo esté a corta, media o larga distancia de tí.
    Tenemos que hablar de la distancia que nos separa viajando.
       <StartAction>El cuervo aletea un poco alrededor tuyo.</Start>
          Estate cerca.
         
Acciones emprendidas script => nw_ch_dist_6 
          Ve a una distancia moderada de mí.
         
Acciones emprendidas script => nw_ch_dist_12
          Revolotea alejado de mí.
         
Acciones emprendidas script => nw_ch_dist_18

    Bloque de vida social; Esto evidentemente es para familiares o compañeros animales, en una criatura no inteligente sería reducido, retocado o eliminado, y en un ser inteligente humanoide, tal vez cambiado por otras funciones, aunque un director de juego inteligente, innovador y con muchas ganas y conocimientos, podría aquí poner un romance al más puro estilo Baldur's Gate.

<StartAction>Alimentar al cuervo</Start>
<StartAction>(El Cuervo no está particularmente hambriento, pero distruta mucho con la atención que le dispensas, picoteando un poco el bocado ofrecido)</Start>
El texto aparece cuando... script => nw_ch_fm_st_11
Acciones emprendidas script => nw_ch_fm_st_10
<StartAction>(El Cuervo está bastante famélico y picotea con ansiedad el alimento que le ofreces. Parece inmediatamente revitalizado)</Start>
Acciones emprendidas script => nw_ch_fm_st_12

<StartAction>Acariciar al Cuervo</Start>
<StartAction>(El Cuervo se alegra cuando acaricias su plumaje, restregandose contra ti de manera cariñosa).</Start>
El texto aparece cuando... script => nw_ch_fm_st_03
<StartAction>(Al Principio, el cuervo se acerca con recelo, creyendo que vas a golpearlo, pero luego se calma y se deja acariciar).</Start>
El texto aparece cuando... script => nw_ch_fm_st_04
<StartAction>(El cuervo ladea la cabeza y acepta gustosamente tu caricia</Start>
Ningun script aquí.

<StartAction>Regañar al Cuervo</Start>
<StartAction>(El cuervo agacha la cabez, ignorante de lo que estás diciendo exactamente, pero triste por el evidente reproche).</Start>
 
Acciones emprendidas script => nw_ch_fm_st-11

<StartAction>Jugar con el Cuervo</Start>
<StartAction>Le golpeteas en el pico con el dedo y te ries cuando, al agitar la cabeza, este hace un travieso intento de picotearte la mano.</Start>
El texto aparece cuando... script => nw_ch_fm_st_09
<StartAction>Juegas un rato arrojando trozos de comida al aire que el Cuervo atrapa en pleno vuelo.</Start>
El texto aparece cuando... script => nw_ch_fm_st_09
<StartAction>Provocas al Cuervo con golpecitos en la cabeza y apartando la mano cuando la gira para picotearte los dedos. El Cuervo te mira iróicamente, pero se le nota claramente contento.</Start>
El texto aparece cuando... script => nw_ch_fm_st_09
<StartAction>Te enarzas en un tira y afloja con tu Cuervo usando un trozo de ropa.</Start>
El texto aparece cuando... script =>  nw_ch_fm_st_09
<StartAction>Escondes un trozo de comida por los alrededores y el Cuervo pasa algunos minutos revoloteando intentando hallarlo.</Start>
El texto aparece cuando... script => nw_ch_fm_st_09
<StartAction>Pasas algunos minutos intentando enseñar al Cuervo algún truco nuevo. El Cuervo te mira extrañado, pero presta atención.</Start>
Ningún script aquí.

    En este pequeño bloque, en la opción que le ordenamos al cuervo que se vaya a cazar algo, es donde colocamos la opción de desconvocación del cuervo.

Vete a cazar, algo, nos veremos más tarde.
   <StartAction>El cuervo grazna y levanta el vuelo.</Start>
   Acciones emprendidas script => tx_lakra_cuervo2

   Script tx_lakra_cuervo2

#include "nw_i0_henchman"

void main()
{

SetFormerMaster(GetPCSpeaker(), OBJECT_SELF);
RemoveHenchman(GetPCSpeaker());
DestroyObject(OBJECT_SELF);
ClearAllActions();
}

   Ya está todo... ¿Ya está? Casí, casi... si probais, comprobaréis que el pájaro pasa de nosotros, si hay combate en las cercanías hará algo a su libre albedrío, pero no responde a nuestras órdenes ni nos sigue. ¡Desagradecido, con el trabajo que nos ha costado!.

   En realidad, falta un juego especial de guiones. Las criaturas por defecto vienen con estos guiones.

guiones de criatura estándar

   En cambio, un guardaespaldas o ayudante (henchman) debe de tener otros, cambia los guiones estándar por estos otros.

criatura con guiones de ayudante

   Bien, ya está. Es algo lento las primeras veces, tiene trabajo, pero una vez hecho el primero ya no lo es tanto. Acordarse de hacer una conversación personalizada para el ayudante/guardaespaldas, otra para la invocación/venta/contrato del ayudante y colocar los guiones (scripts) como hemos dicho.

   Este es el final del primer Ejemplo, con esto y un poco de investigación podréis hacer casi cualquier cosa. En cuanto tenga tiempo, añado la segunda parte.... El Mercado de Esclavos.

Txibi.

    http://www.universonwn.com
    http://www.txibi.com