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
  • 45 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
  • 363 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
  • 45 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

    Antediluvian

  • Miembro
  • PipPipPipPipPip
  • 1081 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.


No hay mejor modo de ver Paris que desde la torreta de un Panzer.


#20 Setaka

Setaka

    Ancillae

  • Miembro
  • PipPipPip
  • 363 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
  • 183 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.


Colaborando en:



Nombre servidor: ES) Reinos del Caos
Tipo de servidor: rol/acción
Jugadores: 1-25
Niveles: 1-30
Base literaria: Inventada.
IP (conectar directamente): 74.208.227.175:5121
Foro: http://reinosdelcaos.gratisforos.com/

 


#22 Komanche

Komanche

    Humano

  • Miembro
  • Pip
  • 45 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
  • 363 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
  • 183 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).


Colaborando en:



Nombre servidor: ES) Reinos del Caos
Tipo de servidor: rol/acción
Jugadores: 1-25
Niveles: 1-30
Base literaria: Inventada.
IP (conectar directamente): 74.208.227.175:5121
Foro: http://reinosdelcaos.gratisforos.com/

 


#25 MenemDoIt

MenemDoIt

    Antediluvian

  • Miembro
  • PipPipPipPipPip
  • 1081 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.

No hay mejor modo de ver Paris que desde la torreta de un Panzer.




Responder



  


A Bragol. Tus amigos te echan de menos.