Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > XP Award à l'ouverture d'une porte?
XP Award à l'ouverture d'une porte?
Par Xune Vrinn le 29/6/2002 Ã 14:51:01 (#1729893)
Bon, en gros... j'aimerais que mon groupe entier gagne de l'XP au moment où une porte importante est ouverte.
Pour le moment, mon script ressemble à ceci :
//::///////////////////////////////////////////////
//:: FileName at_013
//:://////////////////////////////////////////////
#include "nw_i0_tool"
void main()
{
object oPCActivator;
oPCActivator = GetLastUsedBy();
// Give the party some XP
RewardPartyXP(1000, oPCActivator);
}
Quelqu'un peut m'aider un peu? ;)
Par ZeDuckMaster le 29/6/2002 Ã 15:10:25 (#1729989)
t'as pu qu'a mettre ce script sur l'evenment OnUsed de la porte importante
y'a un truc qui marche pas, ou c'est que tu demandes simplement l'avis general ?
Par Xune Vrinn le 29/6/2002 Ã 15:42:39 (#1730120)
Si je le mets dans OnOpen, il n'y a qu'à s'amuser à faire ouvrir et fermer la porte à chacun des membres du groupe pour faire du XP grats...
Par Myvain le 29/6/2002 Ã 18:06:27 (#1730713)
ex:
object oPC = GetLastUnlocked();
GiveXPToCreature (oPC, 1000);
Ca devrait attribuer 1000 point d'XP au joueur ayant crocheté la porte.
Par contre pour attribuer l'XP à tout un groupe j'ai pas regardé, mais il y a un exemple par >> là << en utilisant le système des factions.
Tu peux aussi essayer de créer un trigger aux environs de la porte qui se chargerait de donner l'experience à tout ceux qui se trouve à l'intérieur de ce trigger, et tant pis pour celui qui est parti faire un tour plus loin. :p
Par ZeDuckMaster le 29/6/2002 Ã 19:01:37 (#1730922)
par contre, l'evenement OnUnlock semble etre un peu obscure ... en effet lorsqu'on unlock un objet, le script associé ne semble pas etre appelé ...
quant a GetLastUnlocked, il ne renvoie que des objets invalides .....
bref, pas encore tres clair tout ca ....
Par ZeDuckMaster le 29/6/2002 Ã 19:38:03 (#1731084)
sinon voila une solution inspirée du script par defaut des conteneurs, et qui donne de l'xp pour la faction du premier qui l'ouvre (ce qui implique que la porte a ete unlockée ;) ) et cela qu'une seule fois ...
#include "nw_i0_tool"
void main()
{
if(GetLocalInt(OBJECT_SELF,"UNLOCK_ONCE")!=0)
{
return;
}
object oLastOpener = GetLastOpener();
RewardPartyXP(1000, oLastOpener);
SetLocalInt(OBJECT_SELF,"UNLOCK_ONCE",1);
}
a mettre bien sur dans OnOpen
Par Xune Vrinn le 30/6/2002 Ã 1:37:25 (#1732470)
Il faut remplacer par la fonction GetLastUsedBy().
Merci encore.
Par ZeDuckMaster le 30/6/2002 Ã 1:52:16 (#1732512)
il fallit bien evidemment lire "GetLastOpenedBy()" et pas GetLastOpener() ;)
JOL Archives 1.0.1
@ JOL / JeuxOnLine