La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
FAQ
Rechercher
Liste des Membres
Groupes d'utilisateurs
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
La date/heure actuelle est 01/11/2024 19:32:44
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 |
lylver Héros Messages: 274 |
C'est redoutable, j'avais oublié d'exclure les personnages joueurs
Pour être sûr que vous êtes à jour pour le contenu des plaçables et des boutiques (à défaut de boutiques dynamiques) Dans le OnEnter NWScript :
// Zone PLC check script if( !GetLocalInt(oArea,"PLCINIT") ){ SetLocalInt(oArea,"PLCINIT",TRUE); SetLocalObject(oMod,"AREAPLCINIT",oArea); SignalEvent(oMod,EventUserDefined(800)); } // dans le script OnUserDefined du module, Evenement 800 NWScript :
// Zone PLC check script object oArea = GetLocalObject(oMod,"AREAPLCINIT"); object oPlc = GetFirstObjectInArea(oArea); int j=0; while( GetIsObjectValid(oPlc) ){ if( j > 15 ){ DeleteLocalInt(oArea,"PLCINIT"); sMesg = "Check PLC in Area : "+GetTag(oArea)+"-"+GetName(oArea)+ ", cannot finish."; SendMessageToAllDMs(sMesg); WriteTimestampedLogEntry(sMesg); break; } if( !GetLocalInt(oPlc,"CHECKED") && GetHasInventory(oPlc) && !GetIsPC(oPlc)){ int i=0 ; int n=0 ; object oItem = GetFirstItemInInventory(oPlc); while( GetIsObjectValid(oItem) ){ SetLocalString(oPlc,"ITEM_"+IntToString(i),GetResRef(oItem)); SetLocalString(oPlc,"ITAG_"+IntToString(i),GetTag(oItem)); SetLocalInt(oPlc,"ITST_"+IntToString(i),GetItemStackSize(oItem)); i++; j++; DestroyObject(oItem,0.1); oItem = GetNextItemInInventory(oPlc); } SetLocalInt(oPlc,"ITEMCOUNT",i); for( n=0 ; n < i ; n++ ){ string sResRef = GetLocalString(oPlc,"ITEM_"+IntToString(n)); int nStackSize = GetLocalInt(oPlc,"ITST_"+IntToString(n)); string sTag = GetLocalString(oPlc,"ITAG_"+IntToString(n)); object oNew = CreateItemOnObject(sResRef,oPlc,nStackSize); j++; if( !GetIsObjectValid(oNew) ){ sMesg = "Check PLC in area : "+GetTag(oArea)+"-"+GetName(oArea)+ ", PLC : "+GetTag(oPlc)+"-"+GetName(oPlc)+ ", Can't create Item ResRef : "+sResRef+" & Tag : "+sTag; SendMessageToAllDMs(sMesg); WriteTimestampedLogEntry(sMesg); } } SetLocalInt(oPlc,"CHECKED",TRUE); } // not checked and has inventory ? oPlc = GetNextObjectInArea(oArea); } // while plc Je pensais ca allait planter avec le message "OBJECT OID XXXXX : too many instructions" comme d'habitude, c'est la raison de la limitation par (j>15) mais apparemement ca devrait passer avec des valeurs plus grosses. Ca met quand même le bazar dans le rangement des boutiques et des plaçables ... |
Revenir en haut | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
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