Ninfablanca

26/12/2005 02:52:06

Veamos, me gustaría saber como hago una conversación de alguien que esta gritando (ej: El tipico pregonero o augur que esta diciendo algo automáticamente cada 20 segundos)

26/12/2005 16:26:06

Seguro que quieres hacer eso? es terriblemente rayante estar conversando con otros pjs y el pnj ese tocando los huevos, lo digo porque jugue en un servidor donde habia uno, y todo el mundo se alejaba de el xD

Yo optaria mas por que lo gritase al ver a un pj, asi solo lo hace una vez por pj y si estas al lado suyo no te esta dando todo el rato la paliza

Maya

26/12/2005 16:33:01

Hay pregoneros y pregoneros xDDDD

Cierto que aveces raya al personal si solo tiene una frase y la repite al poco rato, ademas de que este ahi por las noches durante el dia y a todas horas.

Pero hay un recurso, y es hacer que el pregonero se meta en su casa por las noches, y que cada vez que vea a un pj diga algo del repertorio de un random de frases.

Yo lo use en su dia para dar informacion del servidor, lo tenia en la entrada, y daba alguna informacion normalmente de las actualizaciones xDDD hasta que estas ocuparon demasiado y a modo de rol tenia uno en una ciudd que daba noticias sobre quests y sus localizaciones del palo :"Se dice se cuenta se rumorea que la bella doncella del gobernador pasa sus horas nocturanas en al taberna de la mar salada" y ese pNj daba una miniquest cosas asi.

mviper

26/12/2005 17:10:19

Me apunto al carro de Althor io he visto pnjs hablando automaticamente dentrod e una posada y el resultado es que los pjs se salian de la posada para poder hablar.

Ninfablanca

26/12/2005 20:14:47

Bueno, es para ponerlo en la lonja vendiendo pescado y en el mercado de vez e ncuando, la repetición no tiene que ser cada 3 segundos, con que grite de vez en cuando me vale, y no creo que mucha gente se ponga a hablar en la lonja.

Ninfablanca

27/12/2005 17:22:24

No me lo quereis decir???? XDDDDD

Elven_gladiator

27/12/2005 23:33:52

Respira!!!!, yo me acuerdo de un server, que el pregonero daba un por culo...xDDDD

Es buena la idea de poner cada vez que ve un pj, la frase.

Maya

28/12/2005 00:41:40

Te pondre el script sencillo de repeticion cada vez que el Pj entra en el rango de vision del PNJ, pero no repetitivo, solo cuando entra en su rango de vision, suleta un dialogo ya establecido, es el sistema mas sencillo de todos. al salir y entrar en su rango de vision el mensage se repite. este mensage ha de ser un dialogo colocado en combersacion del personage la ficha y no tener respuesta.

Los otros Scripts mas complejos no son mios asique no te los puedo pasar sin permiso del que los hizo para el modulo. el que te paso es uno generico del NWN bastante interesante para dar vida a los PNJs, te lo apso con ams cosas activas aparte de lo de la frase de dialogo. esta in ingles pero es muy facil entenderlo ale ^_^.


[code:1:c59acebbfc]//:://////////////////////////////////////////////////
//:: NW_C2_DEFAULT9
/*
* Default OnSpawn handler with XP1 revisions.
* This corresponds to and produces the same results
* as the default OnSpawn handler in the OC.
*
* This can be used to customize creature behavior in three main ways:
*
* - Uncomment the existing lines of code to activate certain
* common desired behaviors from the moment when the creature
* spawns in.
*
* - Uncomment the user-defined event signals to cause the
* creature to fire events that you can then handle with
* a custom OnUserDefined event handler script.
*
* - Add new code _at the end_ to alter the initial
* behavior in a more customized way.
*/
//:://////////////////////////////////////////////////
//:: Copyright (c) 2002 Floodgate Entertainment
//:: Created By: Naomi Novik
//:: Created On: 12/11/2002
//:://////////////////////////////////////////////////
//:: Updated 2003-08-20 Georg Zoeller: Added check for variables to active spawn in conditions without changing the spawnscript


#include "x0_i0_anims"
// #include "x0_i0_walkway" - in x0_i0_anims
#include "x0_i0_treasure"
#include "x2_inc_switches"

//DMFI CODE ADDITIONS BEGIN HERE
#include "dmfi_dmw_inc"
//DMFI CODE ADDITIONS END HERE

void main()
{
// ***** Spawn-In Conditions ***** //

// * REMOVE COMMENTS (// ) before the "Set..." functions to activate
// * them. Do NOT touch lines commented out with // *, those are
// * real comments for information.

// * This causes the creature to say a one-line greeting in their
// * conversation file upon perceiving the player. Put [NW_D2_GenCheck]
// * in the "Text Seen When" field of the greeting in the conversation
// * file. Don't attach any player responses.
// *
// SetSpawnInCondition(NW_FLAG_SPECIAL_CONVERSATION);

// * Same as above, but for hostile creatures to make them say
// * a line before attacking.
// *
SetSpawnInCondition(NW_FLAG_SPECIAL_COMBAT_CONVERSATION);

// * This NPC will attack when its allies call for help
// *
// SetSpawnInCondition(NW_FLAG_SHOUT_ATTACK_MY_TARGET);

// * If the NPC has the Hide skill they will go into stealth mode
// * while doing WalkWayPoints().
// *
// SetSpawnInCondition(NW_FLAG_STEALTH);

//--------------------------------------------------------------------------
// Enable stealth mode by setting a variable on the creature
// Great for ambushes
// See x2_inc_switches for more information about this
//--------------------------------------------------------------------------
if (GetCreatureFlag(OBJECT_SELF, CREATURE_VAR_USE_SPAWN_STEALTH) == TRUE)
{
SetSpawnInCondition(NW_FLAG_STEALTH);
}
// * Same, but for Search mode
// *
// SetSpawnInCondition(NW_FLAG_SEARCH);

//--------------------------------------------------------------------------
// Make creature enter search mode after spawning by setting a variable
// Great for guards, etc
// See x2_inc_switches for more information about this
//--------------------------------------------------------------------------
if (GetCreatureFlag(OBJECT_SELF, CREATURE_VAR_USE_SPAWN_SEARCH) == TRUE)
{
SetSpawnInCondition(NW_FLAG_SEARCH);
}
// * This will set the NPC to give a warning to non-enemies
// * before attacking.
// * NN -- no clue what this really does yet
// *
// SetSpawnInCondition(NW_FLAG_SET_WARNINGS);

// * Separate the NPC's waypoints into day & night.
// * See comment on WalkWayPoints() for use.
// *
SetSpawnInCondition(NW_FLAG_DAY_NIGHT_POSTING);

// * If this is set, the NPC will appear using the "EffectAppear"
// * animation instead of fading in, *IF* SetListeningPatterns()
// * is called below.
// *
//SetSpawnInCondition(NW_FLAG_APPEAR_SPAWN_IN_ANIMATION);

// * This will cause an NPC to use common animations it possesses,
// * and use social ones to any other nearby friendly NPCs.
// *
//SetSpawnInCondition(NW_FLAG_IMMOBILE_AMBIENT_ANIMATIONS);

//--------------------------------------------------------------------------
// Enable immobile ambient animations by setting a variable
// See x2_inc_switches for more information about this
//--------------------------------------------------------------------------
if (GetCreatureFlag(OBJECT_SELF, CREATURE_VAR_USE_SPAWN_AMBIENT_IMMOBILE) == TRUE)
{
SetSpawnInCondition(NW_FLAG_IMMOBILE_AMBIENT_ANIMATIONS);
}
// * Same as above, except NPC will wander randomly around the
// * area.
// *
//SetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS);


//--------------------------------------------------------------------------
// Enable mobile ambient animations by setting a variable
// See x2_inc_switches for more information about this
//--------------------------------------------------------------------------
if (GetCreatureFlag(OBJECT_SELF, CREATURE_VAR_USE_SPAWN_AMBIENT) == TRUE)
{
SetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS);
}
// **** Animation Conditions **** //
// * These are extra conditions you can put on creatures with ambient
// * animations.

// * Civilized creatures interact with placeables in
// * their area that have the tag "NW_INTERACTIVE"
// * and "talk" to each other.
// *
// * Humanoid races are civilized by default, so only
// * set this flag for monster races that you want to
// * behave the same way.
//SetAnimationCondition(NW_ANIM_FLAG_IS_CIVILIZED);

// * If this flag is set, this creature will constantly
// * be acting. Otherwise, creatures will only start
// * performing their ambient animations when they
// * first perceive a player, and they will stop when
// * the player moves away.
// SetAnimationCondition(NW_ANIM_FLAG_CONSTANT);

// * Civilized creatures with this flag set will
// * randomly use a few voicechats. It's a good
// * idea to avoid putting this on multiple
// * creatures using the same voiceset.
// SetAnimationCondition(NW_ANIM_FLAG_CHATTER);

// * Creatures with _immobile_ ambient animations
// * can have this flag set to make them mobile in a
// * close range. They will never leave their immediate
// * area, but will move around in it, frequently
// * returning to their starting point.
// *
// * Note that creatures spawned inside interior areas
// * that contain a waypoint with one of the tags
// * "NW_HOME", "NW_TAVERN", "NW_SHOP" will automatically
// * have this condition set.
// SetAnimationCondition(NW_ANIM_FLAG_IS_MOBILE_CLOSE_RANGE);


// **** Special Combat Tactics *****//
// * These are special flags that can be set on creatures to
// * make them follow certain specialized combat tactics.
// * NOTE: ONLY ONE OF THESE SHOULD BE SET ON A SINGLE CREATURE.

// * Ranged attacker
// * Will attempt to stay at ranged distance from their
// * target.
//SetCombatCondition(X0_COMBAT_FLAG_RANGED);

// * Defensive attacker
// * Will use defensive combat feats and parry
// SetCombatCondition(X0_COMBAT_FLAG_DEFENSIVE);

// * Ambusher
// * Will go stealthy/invisible and attack, then
// * run away and try to go stealthy again before
// * attacking anew.
// SetCombatCondition(X0_COMBAT_FLAG_AMBUSHER);

// * Cowardly
// * Cowardly creatures will attempt to flee
// * attackers.
// SetCombatCondition(X0_COMBAT_FLAG_COWARDLY);


// **** Escape Commands ***** //
// * NOTE: ONLY ONE OF THE FOLLOWING SHOULD EVER BE SET AT ONE TIME.
// * NOTE2: Not clear that these actually work. -- NN

// * Flee to a way point and return a short time later.
// *
// SetSpawnInCondition(NW_FLAG_ESCAPE_RETURN);

// * Flee to a way point and do not return.
// *
// SetSpawnInCondition(NW_FLAG_ESCAPE_LEAVE);

// * Teleport to safety and do not return.
// *
// SetSpawnInCondition(NW_FLAG_TELEPORT_LEAVE);

// * Teleport to safety and return a short time later.
// *
// SetSpawnInCondition(NW_FLAG_TELEPORT_RETURN);



// ***** CUSTOM USER DEFINED EVENTS ***** /


/*
If you uncomment any of these conditions, the creature will fire
a specific user-defined event number on each event. That will then
allow you to write custom code in the "OnUserDefinedEvent" handler
script to go on top of the default NPC behaviors for that event.

Example: I want to add some custom behavior to my NPC when they
are damaged. I uncomment the "NW_FLAG_DAMAGED_EVENT", then create
a new user-defined script that has something like this in it:

if (GetUserDefinedEventNumber() == 1006) {
// Custom code for my NPC to execute when it's damaged
}

These user-defined events are in the range 1001-1007.
*/

// * Fire User Defined Event 1001 in the OnHeartbeat
// *
// SetSpawnInCondition(NW_FLAG_HEARTBEAT_EVENT);

// * Fire User Defined Event 1002
// *
// SetSpawnInCondition(NW_FLAG_PERCIEVE_EVENT);

// * Fire User Defined Event 1005
// *
// SetSpawnInCondition(NW_FLAG_ATTACK_EVENT);

// * Fire User Defined Event 1006
// *
// SetSpawnInCondition(NW_FLAG_DAMAGED_EVENT);

// * Fire User Defined Event 1008
// *
// SetSpawnInCondition(NW_FLAG_DISTURBED_EVENT);

// * Fire User Defined Event 1003
// *
// SetSpawnInCondition(NW_FLAG_END_COMBAT_ROUND_EVENT);

// * Fire User Defined Event 1004
// *
// SetSpawnInCondition(NW_FLAG_ON_DIALOGUE_EVENT);



// ***** DEFAULT GENERIC BEHAVIOR (DO NOT TOUCH) ***** //

// * Goes through and sets up which shouts the NPC will listen to.
// *
SetListeningPatterns();

// * Walk among a set of waypoints.
// * 1. Find waypoints with the tag "WP_" + NPC TAG + "_##" and walk
// * among them in order.
// * 2. If the tag of the Way Point is "POST_" + NPC TAG, stay there
// * and return to it after combat.
//
// * Optional Parameters:
// * void WalkWayPoints(int nRun = FALSE, float fPause = 1.0)
//
// * If "NW_FLAG_DAY_NIGHT_POSTING" is set above, you can also
// * create waypoints with the tags "WN_" + NPC Tag + "_##"
// * and those will be walked at night. (The standard waypoints
// * will be walked during the day.)
// * The night "posting" waypoint tag is simply "NIGHT_" + NPC tag.
WalkWayPoints();

//* Create a small amount of treasure on the creature
if ((GetLocalInt(GetModule(), "X2_L_NOTREASURE") == FALSE) &&
(GetLocalInt(OBJECT_SELF, "X2_L_NOTREASURE") == FALSE) )
{
CTG_GenerateNPCTreasure(TREASURE_TYPE_MONSTER, OBJECT_SELF);
}


// ***** ADD ANY SPECIAL ON-SPAWN CODE HERE ***** //

// * If Incorporeal, apply changes
if (GetCreatureFlag(OBJECT_SELF, CREATURE_VAR_IS_INCORPOREAL) == TRUE)
{
effect eConceal = EffectConcealment(50, MISS_CHANCE_TYPE_NORMAL);
eConceal = ExtraordinaryEffect(eConceal);
effect eGhost = EffectCutsceneGhost();
eGhost = ExtraordinaryEffect(eGhost);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eConceal, OBJECT_SELF);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eGhost, OBJECT_SELF);

}

//DMFI CODE ADDITIONS BEGIN HERE
if ((DMFI_LISTENING_GLOBAL) || (GetLocalInt(OBJECT_SELF, "DMFI_LISTEN")==1))
{
SetListening(OBJECT_SELF, TRUE);
SetListenPattern(OBJECT_SELF, "**", 20600);
SetLocalInt(OBJECT_SELF, "hls_Listening", 1); //listen to all text
}
//DMFI CODE ADDITIONS END HERE

}[/code:1:c59acebbfc]

Ninfablanca

28/12/2005 15:52:22

gulp, visto así da miedo, gracias maya.

Maya

29/12/2005 17:17:37

Tranki xDDDD

realmente solo son unas 20 lineasa activas lo demas son esplicaciones de las etiquetas de unos posibles posts que puedes poner en el suelo para que el PNJ haga acciones corra mate, descanse, o simplemente vaya de un sitio a otro denoche dedia o a una hora en concreto, tambien hace que camine de forma random o que se apre hablar con otro Pnjs cercano interactue con lso muebles o cosas asi pero todo eso esta desactivado, si lo copias y te lo pegas en el Never veras que es facil de enteder solo has de tener paciencia y leertelo bien.

^^ dená!

si lo que quieres es un script especifico de acciones especificas tendria que preguntar al dios del never xDDDD derekhim pues suyos son los scripts que mencione arriba. que puedes encontrar en mudo de la dragonlance pero qeu no estan descargables en el vault por que secillamente no quiere que esten, un tipo interesante de conocer eso si solo habla en ingles, y tiene un genio de narices xDDD.

Ninfablanca

29/12/2005 19:58:38

pues el inglés y yo no nos conocemos apenas, entiendo mu poquito de ese idioma, pero weno, intentaré preocurarme un traductor para este script que me has puesto aqui, que parece que esta chulo.