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

Por favor, ayuda con estos screeps :(


24 respuestas al tema

#16 Komanche

Komanche

    Humano

  • Miembro
  • Pip
  • 42 posts

Posteado 04 March 2017 - 09:12 PM

No sirve.. :(  T_T  T_T 


Da error en línea 8, "estado desconocido"  :owned:   :owned:



#17 Setaka

Setaka

    Ancillae

  • Miembro
  • PipPipPip
  • 356 posts

Posteado 05 March 2017 - 11:45 AM

Curioso que en el lexicon haya un script que no compile xD Cambia el &lt; por <


Tutorial NWN Scripting: Click aquí


#18 Komanche

Komanche

    Humano

  • Miembro
  • Pip
  • 42 posts

Posteado 08 March 2017 - 08:24 PM

Nada, k nuu..  :owned: 

bueno.., cuando lo cuelgue ya pongo en el dialogo k hay limite de hexmans y el que quiera hacer caso.k lo haga y el ke no, pues es libre de llevar medio autobús encima  



#19 MenemDoIt

MenemDoIt

    Elder

  • Miembro
  • PipPipPipPip
  • 934 posts

Posteado 08 March 2017 - 08:54 PM

podrias poner una condicion en la conversacion para que el henchman se una al jugador, para que solo aparezca despues de hacer un bucle buscando en todos los miembros del party, y usando los comandos GetName / GetTag / GetResRef de los henchman en el party del jugador, y cada vez que dicho nombre/tag/resref coincida con el correspondiente a uno de los henchman disponibles en tu modulo le asignas un ++ a un int ( incrementas el valor +1 ), y si el int llega a un limite X entonces no aparece dicha opcion en la conversacion para unirse al party.


Disclaimer : The above post may cause shock, disbelief, intense feelings of anger, shouting at monitor, head explosions and/or the throwing of objects across the room. Please consult a cleric if you suffer any adverse side-effects from reading this post. If this post is ingested, induce vomiting and seek medical attention immediately.


#20 Setaka

Setaka

    Ancillae

  • Miembro
  • PipPipPip
  • 356 posts

Posteado 09 March 2017 - 03:07 AM

Pues oye, lo acabo de testear añadiendo henchmans al equipo y a mi me funciona perfectamente.

 

//Returns the number of henchmen oPC has employed
//Returns -1 if oPC isn't a valid PC
int GetNumHenchmen(object oPC)
{
if (!GetIsPC(oPC)) return -1;

int nLoop, nCount;
for (nLoop=1; nLoop<=GetMaxHenchmen(); nLoop++)
   {
   if (GetIsObjectValid(GetHenchman(oPC, nLoop)))
      nCount++;
   }
return nCount;
}

int StartingConditional()
{
object oPC = GetPCSpeaker();
if(GetNumHenchmen(oPC)==1) //aquí le dices si tiene 1, 2, 3...
{
return TRUE; //muestra la línea
}
else
{
return FALSE; //no la muestra
}
}

edito: El script de arriba te sirve precisamente para lo que pusiste aquí, poniendo en cada línea de conversación una versión del script de arriba cambiando el "GetNumHenchmen(oPC)==1" por el número que sea.

 

-->Echar un vistazo rapido (hexman0) (si tengo o hexmans) -- aquí el script con 0

-->Echar un vistazo (hexman1)  (si tengo 1 hexmans) -- aquí el script con 1
-->Echar un vistazo (hexman2) (si tengo 2 hexmans) -- etc etc

-->Echar un vistazo (hexman3)  (si tengo 2 hexmans)


Editado por Setaka, 09 March 2017 - 03:12 AM.

Tutorial NWN Scripting: Click aquí


#21 Zoraga

Zoraga

    Neonato

  • Miembro
  • PipPip
  • 155 posts

Posteado 09 March 2017 - 09:54 AM

En mi módulo coloco limite de 1 hench por personaje, poniendo la función de expulsar al hench anterior en la misma conversación.

Otra cosa podría ser que cada vez que agregues un hench, aumente el valor de una variable local, y que al llegar hasta 2 o 3 por ej., lo reconozca en la conversación del hench negandose a unirse, y que cuando muera o eches a un hench disminuya ese valor... creo que es como lo que te explica MenemDolt.

 

 

 

El script de Setaka debería andarte bien y se ve mas práctico, en caso contrario, prueba lo siguiente:

 

 

Aquí agregamos al hench en la conversación y aumentamos el valor de una variable (en las acciones de la conversación):

void main()
{

object oPC = GetPCSpeaker();

object oTarget;
oTarget = OBJECT_SELF;

AddHenchman(oPC, oTarget);

int nInt;
nInt = GetLocalInt(oPC, "cantidad_hench");

nInt += 1;

SetLocalInt(oPC, "cantidad_hench", nInt);

}
 

 

 

 

Esta condicional en "el texto aparece cuando", solo si tenemos 3 o menos henchman según la variable (si tienes mas no aparece, o no le habla, como veas):

int StartingConditional()
{
object oPC = GetPCSpeaker();

if (GetLocalInt(oPC, "cantidad_hench") >= 3) return FALSE;

return TRUE;
}
 

 

 

Cuando le pides al hench que abandone el grupo, así disminuye ese valor dejando la vacante para otro hench:

void main()
{

object oPC = GetPCSpeaker();

object oTarget;
oTarget=GetHenchman(oPC);

RemoveHenchman(oPC, oTarget);

DestroyObject(oTarget);

int nInt;
nInt = GetLocalInt(oPC, "cantidad_hench");

nInt -= 1;

SetLocalInt(oPC, "cantidad_hench", nInt);

}
 

 

 

 

Esta en alguna conversación a parte, para resetear la variable a 0 y eliminar todos los acompañantes:

#include "nw_i0_spells"
void main()
{

object oPC = GetPCSpeaker();

SetLocalInt(oPC, "cantidad_hench", 0);

object oTarget;
oTarget=GetHenchman(oPC);

RemoveHenchman(oPC, oTarget);

DestroyObject(oTarget);

oTarget = GetAssociate(ASSOCIATE_TYPE_FAMILIAR, oPC);

if (GetIsPossessedFamiliar(oTarget)) AssignCommand(oPC, UnpossessFamiliar(oTarget));

if (GetIsObjectValid(oTarget)) DestroyObject(oTarget);

oTarget = GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION, oPC);

if (GetIsObjectValid(oTarget)) DestroyObject(oTarget);

oTarget = GetAssociate(ASSOCIATE_TYPE_SUMMONED, oPC);

if (GetIsObjectValid(oTarget)) RemoveSummonedAssociate(oPC, oTarget);

if (GetIsObjectValid(oTarget)) DestroyObject(oTarget);

oTarget = GetAssociate(ASSOCIATE_TYPE_DOMINATED, oPC);

if (GetIsObjectValid(oTarget)) RemoveSpecificEffect(EFFECT_TYPE_DOMINATED, oTarget);

if (GetIsObjectValid(oTarget)) DestroyObject(oTarget);

}




 

 

 

 

Lo mismo que la de arriba, variable a 0 y al mismo tiempo desaparecer todo hench que lo acompañe, pero en OnEnter (del área o un desencadenante en el lugar), en este la idéa es colocarlo en el plano de fuga cuando el personaje jugador muera:

#include "nw_i0_spells"
void main()
{

object oPC = GetEnteringObject();

if (!GetIsPC(oPC)) return;

SetLocalInt(oPC, "cantidad_hench", 0);

object oTarget;
oTarget=GetHenchman(oPC);

RemoveHenchman(oPC, oTarget);

oTarget = GetAssociate(ASSOCIATE_TYPE_FAMILIAR, oPC);

if (GetIsPossessedFamiliar(oTarget)) AssignCommand(oPC, UnpossessFamiliar(oTarget));

if (GetIsObjectValid(oTarget)) DestroyObject(oTarget);

oTarget = GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION, oPC);

if (GetIsObjectValid(oTarget)) DestroyObject(oTarget);

oTarget = GetAssociate(ASSOCIATE_TYPE_SUMMONED, oPC);

if (GetIsObjectValid(oTarget)) RemoveSummonedAssociate(oPC, oTarget);

if (GetIsObjectValid(oTarget)) DestroyObject(oTarget);

oTarget = GetAssociate(ASSOCIATE_TYPE_DOMINATED, oPC);

if (GetIsObjectValid(oTarget)) RemoveSpecificEffect(EFFECT_TYPE_DOMINATED, oTarget);

if (GetIsObjectValid(oTarget)) DestroyObject(oTarget);

}
 

 

 

Sería controlar la cantidad con la variable cantidad_hench en diferentes circunstancias, no lo he probado (usé el Lilac xD), igual son varias circunstancias a tener en cuenta.


Union Sudamericana NWN: Heroes de Faerun

Nombre servidor: ES) Heroes de Faerun
Tipo de servidor: rol/acción
Jugadores: 1-15
Niveles: 1-40
Base literaria: Reinos Olvidados.
Sector: Norte de Faerun/Costa de la Espada/Maztica/Infraoscuridad/oceano/otros planos.
Otros: Hench personalizados, subrazas, tramas gobales.
IP (conectar directamente): heroesdefaerun.no-ip.org
Foro: http://usn-rol.foroes.net

#22 Komanche

Komanche

    Humano

  • Miembro
  • Pip
  • 42 posts

Posteado 14 March 2017 - 07:43 PM

Gracias, zoraga., te lo has currado  voy  probar k tal :D


Editado por Komanche, 14 March 2017 - 07:43 PM.


#23 Setaka

Setaka

    Ancillae

  • Miembro
  • PipPipPip
  • 356 posts

Posteado 15 March 2017 - 02:02 PM

¿Y si expulsan al henchman mediante menú radial y no por la conversación?


Tutorial NWN Scripting: Click aquí


#24 Zoraga

Zoraga

    Neonato

  • Miembro
  • PipPip
  • 155 posts

Posteado 17 March 2017 - 11:40 AM

Quedaría la variable tal cual, y quedaría el cupo ocupado virtualmente hasta resetear la variable con el penúltimo recuadro de scripts que dejé, colocado en alguna conversación (conversación que podría activarse con un PNJ, los mismos hechman, o con un objeto de poder único onda "limpiador de acompañantes" o algo así), bueno, no suena muy práctico >.<, pero sería una opción (no le he probado).


Union Sudamericana NWN: Heroes de Faerun

Nombre servidor: ES) Heroes de Faerun
Tipo de servidor: rol/acción
Jugadores: 1-15
Niveles: 1-40
Base literaria: Reinos Olvidados.
Sector: Norte de Faerun/Costa de la Espada/Maztica/Infraoscuridad/oceano/otros planos.
Otros: Hench personalizados, subrazas, tramas gobales.
IP (conectar directamente): heroesdefaerun.no-ip.org
Foro: http://usn-rol.foroes.net

#25 MenemDoIt

MenemDoIt

    Elder

  • Miembro
  • PipPipPipPip
  • 934 posts

Posteado 17 March 2017 - 05:55 PM

yo lo que sugeria era que se chequee la cantidad de henchman en el grupo del PJ durante la conversacion, algo asi como :

 

¿queres unirte a mi grupo?

- ( conv. aparece cuando ) ¡si, destruyamos craneos juntos!

- lo siento, no me gusta ir en grupos tan grandes.

 

y en la condicional de arriba haces un bucle chequeando la cantidad de henchman en el grupo del PJ, pero para evitar que las criaturas convocadas, familiares y animales compañeros cuenten como henchman en el grupo se busca dentro del bucle el nombre/tag/resref de la criatura dentro del bucle, y si coincide con uno de los henchman disponibles en el modulo sumas un +1 a un int, y cuando llegue al limite deseado ( creo que era 3 ? ) mandas un return FALSE, de lo contrario return TRUE al finalizar el bucle.


Editado por MenemDoIt, 17 March 2017 - 05:56 PM.

Disclaimer : The above post may cause shock, disbelief, intense feelings of anger, shouting at monitor, head explosions and/or the throwing of objects across the room. Please consult a cleric if you suffer any adverse side-effects from reading this post. If this post is ingested, induce vomiting and seek medical attention immediately.




Responder



  


A Bragol. Tus amigos te echan de menos.