Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > [help] Habillement aleatoire d'un pnj.
[help] Habillement aleatoire d'un pnj.
Par PesteLaMenace le 26/1/2003 à 18:54:02 (#3105119)
Je voudrais pouvoir simuler une activité citadine, c'est a dire des passants qui passent, des gens qui font leur course etc...et tout cela de manière aléatoire.
Le choix aleatoire des objets n'est pas un probleme, par contre c'est l'habillement aléatoire qui en est un.
J'ai travaillé a partir du module de peuplement automatique de la taverne.
J'ai un include comme ceci.(directement repompé de la taverne)
void habiller(object moi , int male) {
object fringue;
if (male)
switch (d10()) {
case 1: fringue = CreateItemOnObject("citadin001"); break;
case 2: fringue = CreateItemOnObject("citadin002"); break;
case 3: fringue = CreateItemOnObject("citadin003"); break;
case 4: fringue = CreateItemOnObject("citadin004"); break;
case 5: fringue = CreateItemOnObject("citadin005"); break;
case 6: fringue = CreateItemOnObject("citadin006"); break;
case 7: fringue = CreateItemOnObject("citadin007"); break;
case 8: fringue = CreateItemOnObject("citadin008"); break;
case 9: fringue = CreateItemOnObject("citadin009"); break;
case 10: fringue = CreateItemOnObject("citadin010"); break;
};
ActionEquipItem(fringue, INVENTORY_SLOT_CHEST);
}
Les "citadin001" a 010 sont des habits creés dans la palette personnalisé.(blueprint)
Le OnEnter de la Zone crée un pnj citadin a un waypoint aleatoire. (pas de soucis pour cela).
Et dans le OnSpawn du citadin en question il y a bien la fonction habiller et le include.
#include "NW_O2_CONINCLUDE"
#include "NW_I0_GENERIC"
#include "inclu_citadin"
void main()
{
SetSpawnInCondition(NW_FLAG_SHOUT_ATTACK_MY_TARGET);
SetListeningPatterns();
habiller (OBJECT_SELF,TRUE);
WalkWayPoints();
}
Le pnj se crée bien mais ne shabille pas. Je nai pas encore digéré les fonctions de debugage, ca pourrait aider je pense pour savoir si lhabit est bien crée dans son inventaire.
Jai epuisé mes ressources. Si quelquun de plus habile pourrait me remettre sur les rails. Merci a lui.
Par Azrael07 le 26/1/2003 à 22:29:29 (#3106896)
Tu as peut etre fait une erreur a ce niveau la, pasque ton script me semble bon
Par PesteLaMenace le 26/1/2003 à 23:08:20 (#3107198)
Mais rien du tout....:enerve:
Par sounéva le 26/1/2003 à 23:16:43 (#3107265)
t'a essayé avec un DelayCommand ?
Par Jaha Effect le 26/1/2003 à 23:20:54 (#3107297)
ActionEquipItem(fringue, INVENTORY_SLOT_CHEST);
Un ActionEquipItem nécessite le tag d'un objet pour qu'il soit équipé. Or, ta variable fringue récupère les blueprint, ce qui est valable pour la création de l'objet mais pas pour son équipement.
Donc pour pouvoir équiper ton objet il va falloir que tu récupère son Tag à un moment donné dans ton scripte.
La solution à mon avis, donner les même Tag et Blueprint a tes vétements (le tout en minuscules bien sûr)
Jaha Effect :D
Par PesteLaMenace le 26/1/2003 à 23:40:40 (#3107455)
Je me demande si il ne s'agit pas d'un probleme entre Tag et Blueprint.
Ce qui m'etonne c'est que ce script fonctionne tres bien la ou je l'ai recupéré, c'est a dire sur la première version de la taverne animée.
Je continuerais encore a chercher demain en espérant un sauveur mais il se fait tard et si je ne veux pas avoir le BluePrint d'un Zombie au boulot demain, dodo!! ;)
Merci de vos reponses.
Par Templier le 27/1/2003 à 0:54:18 (#3107902)
J'essayerais de te trouver une copie de cet ancien script pour vérifier si c'est bien comme ça que l'on avait passé le problême.
JOL Archives 1.0.1
@ JOL / JeuxOnLine