Saltar al contenido

Más en DLAN: Nuestras Traducciones | Otras Traducciones | Mods y modding | Revisiones y Guías | Videojuegos | Arte | Literatura | Rol y Rol por foro e IRC | Mapa de la web
Foto

Encuentros especiales


8 respuestas al tema

#1 Zoraga

Zoraga

    Neonato

  • Miembro
  • PipPip
  • 196 posts

Posteado 19 July 2017 - 04:52 AM

Buenas a todos, hoy vengo con una pequeña complicación, aver si me echan una mano, en resumen, necesito hacer un encuentro que solo haga el spawn cuando determinada criatura ya no se encuentre en el área, básicamente eso.

 

Algo así: "ahora que el cíclope ya no está, las arpías invaden la caverna", supongo que se podrá, pero no se muy bien como.


Editado por Zoraga, 19 July 2017 - 05:00 AM.

Colaborando en:



Nombre servidor: ES) Rebelión del Submundo
Tipo de servidor: rol/acción/jvj
Jugadores: 1-25
Niveles: 1-30
Base literaria: Reinos Olvidados
IP (conectar directamente): sombrasdefaerun.no-ip.org
Foro: http://usn-rol.foroes.org/



 


#2 MenemDoIt

MenemDoIt

    Antediluvian

  • Miembro
  • PipPipPipPipPip
  • 1143 posts

Posteado 19 July 2017 - 06:13 AM

podrias hacer un bucle while de las criaturas en el area y usar un if getresref == resref de la criatura el encuentro no se activa ( return false ), en caso de que el bucle termine sin encontrar la criatura si se activa ( return true una vez finalizado el bucle ).


10016077DS1515734551.gif


#3 Zoraga

Zoraga

    Neonato

  • Miembro
  • PipPip
  • 196 posts

Posteado 19 July 2017 - 08:33 AM

mmmm ¿eso se haría en algún evento especifico de la criatura que hace spawn o del encuentro en si?


Colaborando en:



Nombre servidor: ES) Rebelión del Submundo
Tipo de servidor: rol/acción/jvj
Jugadores: 1-25
Niveles: 1-30
Base literaria: Reinos Olvidados
IP (conectar directamente): sombrasdefaerun.no-ip.org
Foro: http://usn-rol.foroes.org/



 


#4 Txibi

Txibi

    Antediluvian

  • Miembro DLAN
  • PipPipPipPipPip
  • 4645 posts

Posteado 19 July 2017 - 09:20 AM

Saludos.

 

Una idea es que cuando la criatura muera pongas una variable a 1. Por ejemplo en el OnDeath de esa criatura creas un script, pones una variable int iCiclopeAlHades, le das valor a 1 y para finalizar un execute que ejecute el script OnDeath normal.

 

Luego en tu encuentro, pintas el desencadenante y cuando entre o salga alguien por ahí una comprobación, si la variable está a 1, salta el encuentro.

 

Si lo que quieres es que algo ocurra tras desaperecer la criatura y no un encuentro que ocurra cuando un jugador pase por ahí, más fácil aún. En el OnDeath de la criatura, directamente lanzas el script del encuentro sin variables ni gaitas adicionales.

 

Txibi.

 

Edición: Si lo que quieres que pase no es necesario al morir una criatura sino cuando se marche con sus patitas del área, ya será algo más complicado, pero se puede como te comentan arriba.


Editado por Txibi, 19 July 2017 - 09:22 AM.


#5 Zoraga

Zoraga

    Neonato

  • Miembro
  • PipPip
  • 196 posts

Posteado 19 July 2017 - 10:46 AM

Gracias, entonces, puse un encuentro pero desactivado, de tal forma que se active después, por el momento iría quedando así:

 

 

En OnDeath de la criatura:

 

 void main()
{

object oPC = GetLastKiller();

while (GetIsObjectValid(GetMaster(oPC)))
   {
   oPC=GetMaster(oPC);
   }

if (!GetIsPC(oPC)) return;

SetLocalInt(oPC, "iCiclopeAlHades", 1);

 

ExecuteScript("nw_c2_default7", OBJECT_SELF);


}

 

 

 

Ahora el problema viene aquí, ¿como hago que el encuentro quede activo cuando el pj pase? solo puse la condicional para la variable por mientras.

 

En OnEnter del encuentro:

 

void main()
{

object oPC = GetEnteringObject();

if (!GetIsPC(oPC)) return;

if (GetLocalInt(oPC, "iCiclopeAlHades")!= 1)
   return;

}
 


Colaborando en:



Nombre servidor: ES) Rebelión del Submundo
Tipo de servidor: rol/acción/jvj
Jugadores: 1-25
Niveles: 1-30
Base literaria: Reinos Olvidados
IP (conectar directamente): sombrasdefaerun.no-ip.org
Foro: http://usn-rol.foroes.org/



 


#6 Txibi

Txibi

    Antediluvian

  • Miembro DLAN
  • PipPipPipPipPip
  • 4645 posts

Posteado 19 July 2017 - 01:36 PM

Saludos.

 

Crea un punto de ruta, donde quieras que se generen los bichos. No tiene que ser dentro del desencadenante, ni siquiera tiene que estar a la vista o cerca, por ejemplo, el desencadenante tx_GeneraBicho.

Prepara el desencadenante y en el OnEnter, pon el script con el nombre, que se yo, zor_queviene.

Ten creado el bicho y apuntado su resref, recuerda, etiqueta para seleccionar, resref para crear. Yo pongo el mismo nombre a ambas normalmente.

 

Cuando entre en el desencadenante y cumpla la condición, creará el bicho con la resref que hayas metido en la variable string strTemplate.

 

Mira a ver si te funciona.

 

/*
    Script: zor_queviene
    Si la variable local iCiclopeAlHades esta a 1;
    Entonces crea un goblin en tx_GeneraBicho.
*/

#include "NW_I0_PLOT"

//CUERPO PRINCIPAL.
void main()
{
    object oPC = GetEnteringObject();

    if (!GetIsPC(oPC))
    {
        return;
    }//Fin del if de comprobar que no es un jugador.

    if (GetLocalInt(oPC, "iCiclopeAlHades")!= 1)
    {
        return;
    }//Si la variable es distinta de 1 salir.


    if (GetLocalInt(oPC, "iCiclopeAlHades")== 1)
    {

        //Se detalla que el tipo de objeto es una criatura.
        int nObjectType = OBJECT_TYPE_CREATURE;
        //resref del diseño de la criatura a crear:
        string strTemplate = "tx_goblin_esclav";
        //Punto del mapa (punto de ruta) aparecera:
        location locLocation= GetLocation(GetObjectByTag("tx_GeneraBicho"));
        //Animacion de aparece criatura:
        int bUseAppearAnimation = TRUE;
        //Crea un objeto criatura, de tal resref, en tal localizacion, si animacion.
        CreateObject (nObjectType, strTemplate, locLocation, bUseAppearAnimation);

    }//fin del if de comprobar variable a 1.
}//Fin cuerpo principal.

 

T.



#7 Zoraga

Zoraga

    Neonato

  • Miembro
  • PipPip
  • 196 posts

Posteado 19 July 2017 - 08:09 PM

Gracias Txibi :), pero la idéa es solo activar el encuentro, no crear los bichos en ese momento, onda que cuando después pasen los otros jugadores les salga el nuevo encuentro ya de forma ciclica, en vez del bicho anterior que solo estaba pintado en el área.

 

Onda, alguien mató al ciclope, y ahora aparecen arpiás en la caverna como en un encuentro normal.

 

 

 

De todas formas, igual me sirve bastante que me hayas explicado lo que hacen esas funciones del script jeje.


Editado por Zoraga, 19 July 2017 - 10:19 PM.

Colaborando en:



Nombre servidor: ES) Rebelión del Submundo
Tipo de servidor: rol/acción/jvj
Jugadores: 1-25
Niveles: 1-30
Base literaria: Reinos Olvidados
IP (conectar directamente): sombrasdefaerun.no-ip.org
Foro: http://usn-rol.foroes.org/



 


#8 Setaka

Setaka

    Ancillae

  • Miembro
  • PipPipPip
  • 370 posts

Posteado 21 July 2017 - 03:08 PM

Es una sola función: http://www.nwnlexico...EncounterActive

 

En el OnDeath de la criatura, les dices que haga activo el desencadenante que tú quieres y actuará como uno normal y corriente.


Tutorial NWN Scripting: Click aquí


#9 Zoraga

Zoraga

    Neonato

  • Miembro
  • PipPip
  • 196 posts

Posteado 26 July 2017 - 09:54 AM

Gracias Setaka, estaré mirando eso.


Colaborando en:



Nombre servidor: ES) Rebelión del Submundo
Tipo de servidor: rol/acción/jvj
Jugadores: 1-25
Niveles: 1-30
Base literaria: Reinos Olvidados
IP (conectar directamente): sombrasdefaerun.no-ip.org
Foro: http://usn-rol.foroes.org/



 




Responder



  


A Bragol. Tus amigos te echan de menos.