Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

déplacement d'un pnj

Par Saldek le 5/1/2003 à 20:24:17 (#2951919)

bonjour, j'aimerai que mon tavernier se deplace dans sa taverne et bouge tout seul, mais s'arrete quand un joueur lui parle...
je l'ai vu sur plusieurs serveurs mais je vois pas comment faire...
quelqu'un peut me dire svp?
merci!

Par coolstar le 5/1/2003 à 22:03:18 (#2952568)

Voici un Script plutôt particulier pour le OnHeartBeat (quand on ne connaît pas!) qui devrait pourvoir faire l'affaire, pour lors... :D


/* Script du "Crieur" reserve au 'OnHeartBeat' avec Temporisation de celui-ci...
By coolstar - A mettre dans le OnHeartBeat : */

void main()
{
object oNPC = OBJECT_SELF; // Le NPC qui joue le role de "Crieur"
string sVarName = "crieur"; // Le "Nom" de la 'Variable' determninant la Temporisation
int nCount = GetLocalInt(oNPC, sVarName); // Sert au 'Decompte' de la Temporisation (Nulle "au Depart)

if (!IsInConversation(oNPC)) // A condition que le NPC ne soit pas en Conversation :
{
// Generation de Tours(Chaque 6 sec : Rythme du 'OnHeartBeat') par INCREMENTATION d'un 'Compteur'
if (nCount == 0) // Si le 'Compteur' est EGALE a '0' (NUL) alors :
{
// Exemple d'Actions declenchees durant seulement ce moment :
ActionRandomWalk(); // Le NPC Deambule
SpeakString("Du travail, du travail, encore et toujours du travail !"); // TEST:
// Le 'Compteur' s'INCREMENTE de "+1"
nCount++; // (de 'NUL' "par defaut" il passe ainsi a '1')
}
// Sinon (Si le 'Compteur' n'est plus NUL) :
else if (nCount 0) // Si le Compteur est compris entre '1' & '4'
// On ne fait rien d'autre (mise en suspens des "Activites")
nCount++; // Le 'Compteur' s'INCREMENTE toujours de "+1"
// Sinon (Si le 'Compteur' est SUPERIEUR ou EGALE '5', soit une Periode égale à 30Sec)
else nCount = 0; // Alors remettre le 'Compteur' a '0'
}
else nCount = 0; // Alors remettre le 'Compteur' a '0'

// Attribue la Variable "crieur" dont la 'Valeur' est celle du Dernier nCount releve...
SetLocalInt(oNPC, sVarName, nCount);
}

yep!

Par Saldek le 6/1/2003 à 15:26:02 (#2956823)

merci coolstar! j'arrive pas encore a decortiquer ton script mais ca marche impec :)
apparemment, certains scripts sont déja livrés avec le jeu, mais y a t'il une possibilité de savoir ce que ca fait quand on les change dans l'onglet script? parce que nc_truc ca me dit pas grand chose :/

Par Mel Ethybem le 6/1/2003 à 22:16:29 (#2960070)

Comprend pas... j'ai fais bougé plein de people et pourtant quand je leur causais, ils s'arrêtaient de suite (et recommençait à bouger après...) --> Je n'ai pas du mettre de script. C'est pas de la provoc', au contraire, expliquez-moi, j'ai pas compris et ça m'intéresse...;)

Par coolstar le 7/1/2003 à 1:19:44 (#2961537)

Dis-moi Mel?? Tu avais mis ton Script dans le 'OnHeartBeat'?? en ce cas c normal, puisque c le but... La différence avec ce que j'ai proposé, c que ici le 'OnHeartBeat' ne relance le phénomène que périodiquement... d'où une économie pour le CPU... :D

;)

sisi ca marche

Par Saldek le 7/1/2003 à 11:58:55 (#2963634)

les pnj se baladent bien et s'arretent pour discuter, puis repartent apres... tant mieux si ca economise le cpu, je connaissais pas du tout la fonction pour les faire bouger... du coup ca bouge partout!

ah, question de n: on peut mettre 2 scripts a la suite pour le meme pnj?

Par coolstar le 7/1/2003 à 14:41:55 (#2964889)

Que veux-tu dire par "2 scripts a la suite pour le meme pnj"? (tout est possible a priori, mais le Comment dépend du Quoi veux-tu!) :D



Sinon, il y a un débat par ici qui peut être intéressant sur le Script que j'ai proposé... ;)

JOL Archives 1.0.1
@ JOL / JeuxOnLine