
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.







La date/heure actuelle est 01/05/2025 20:29:50
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
Eldorane Héros Messages: 298 Localisation: Moselle |
Salut,
il y a longtemps j'avais demandé un script pour faire partir un PNJ puis lorsqu'il est assé loin le faire diparaitre définitivement de cette zone : NWScript :
void main() { object oNPC = GetObjectByTag("tag_PNJ"); AssignCommand(oNPC, ClearAllActions()); AssignCommand(oNPC, ActionMoveToLocation(GetLocation(GetObjectByTag("Tag_WP")))); AssignCommand(oNPC, ActionDoCommand(DestroyObject(oNPC))); } Pour mon module, il y aura plusieurs cas où plusieurs PNJ devront tous quitter la zone à la fin d'un dialogue. Comment puis-je affecter ce script à tous les PNJ présents ? _________________ Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication ! _________________ Dernière édition par Eldorane le 20/04/2005 23:03:29; édité 2 fois
|
Revenir en haut | ![]() ![]() ![]() |
lylver Héros Messages: 274 |
Si tes PNJs sont groupés dans une surface pas trop grande, je te recommande une boucle utilisant
NWScript :
float fRadius = 20.0; location lPC = GetLocation(GetPCSpeaker()); object oPNJ = GetFirstObjectInShape(SHAPE_SPHERE, fRadius, lPC); while( GetIsObjectValid(oPNJ) ){ if( !GetIsPC(GetFactionLeader(oPNJ)) ) DestroyObject(oPNJ) ; oPNJ = GetNextObjectInShape(SHAPE_SPHERE, fRadius, lPC); } ou pour vraiment faire le tour de la zone NWScript :
object oArea = GetArea(GetPCSpeaker()); object oPNJ = GetFirstObjectInArea(oArea); while( GetIsObjectValid(oPNJ) ){ if( GetObjectType(oPNJ) == OBJECT_TYPE_CREATURE ){ if( !GetIsPC(GetFactionLeader(oPNJ)) ) DestroyObject(oPNJ) ; } oPNJ = GetNextObjectInArea(oArea); } J'espère que le comportement de !GetIsPC(GetFactionLeader(oPNJ)) est correct, j'ai pas testé, celà me parait un empilement de fonction élégant pour éviter de nettoyer les associés créature des joueurs. Dernière édition par lylver le 16/04/2005 02:58:51; édité 1 fois
|
Revenir en haut | ![]() ![]() ![]() |
Eldorane Héros Messages: 298 Localisation: Moselle |
Je suppose que ce script fait directement disparaître les PNJs, on peu pas rajouter un petit déplacement vers un WP unique ?
![]() _________________ Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication ! _________________ |
Revenir en haut | ![]() ![]() ![]() |
lylver Héros Messages: 274 |
met tes actions PNJ la où j'ai mis le AssignCommand, faudra peut-être un ClearAllActions pour être sûr
NWScript : void main(){ object oArea = GetArea(GetPCSpeaker()); object oPNJ = GetFirstObjectInArea(oArea); while( GetIsObjectValid(oPNJ) ){ if( GetObjectType(oPNJ) == OBJECT_TYPE_CREATURE ){ if( !GetIsPC(GetFactionLeader(oPNJ)) ){ AssignCommand(oPNJ, ActionMoveToLocation(GetLocation(GetObjectByTag("Tag_WP")))); DestroyObject(oPNJ,2.0) ; // delai en secondes } } oPNJ = GetNextObjectInArea(oArea); } } |
Revenir en haut | ![]() ![]() ![]() |
Laxam Légende vivante ![]() Messages: 425 Localisation: Lyon |
Sinon si tu connais leur Tag, tu récupères les NPC avec un GetObjectByTag et tu fais la suite du script.... ça évite les boucles qui sont un peu plus gourmandes en ressource.. tout dépend le nombre de NPC.
J'ai fait ça dans mon module, dans la grotte aux gobelins quand on délivre les enfants. _________________ Mon site NWN nouvelle version et mon module Boisperdu en ligne ! Et maintenant un FORUM La première version française de la doc du NPC Activities (version 2.0) ![]() |
Revenir en haut | ![]() ![]() ![]() ![]() |
Eldorane Héros Messages: 298 Localisation: Moselle |
Oui, mais comme je compte utiliser ce script plusieurs fois sur des zones où 5 voir 6 PNJ devront disparaître, ce script m'évitera de spécifier leurs Tags !
Merci !! _________________ Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication ! _________________ |
Revenir en haut | ![]() ![]() ![]() |


Page 1 sur 1 ¤
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum