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 23/11/2024 22:43:02
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 |
darkheaven Acolyte Messages: 35 Localisation: nevers |
Bonjour a tous tous d'abord, voila mon probleme.
Comme vous le savez sur un univers persistant, lorsqu'un pj meurt, il peut deco/reco pour retrouver la santé et surtout la vie, le probleme etant la bien sur. apres quelques recherches sur ce forum, j'ai trouver ceci qui fonctionne sur le principe des variable plutot que du systeme de la carte de mort: Rajouter ceci dans le " oncliententer " NWScript :
void main() { object oPC = GetEnteringObject(); ////////////////////////////// ////////////////////////////// ///////////// /// sert a recuperer l'info pour savoir si le pj est mort ou vivant /// int BALISE_MORT = GetCampaignInt("NOM_DE_TON_MOD","balise_mort", oPC); ////////////////////////////// ////////////////////////////// ///////////// ////////////////////////////// ////////////////////////////// ///////////// // sert a detecter si le pj est mort ou vivant, et a le rendre mort //// // ou vivant a la conection sur le serveur. //// // //// if(BALISE_MORT == TRUE ) //// { //// effect eDeath = EffectDeath(FALSE, FALSE); //// ApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, oPC); //// } //// ////////////////////////////// ////////////////////////////// ///////////// } mettre ceci dans le " onplayerdeath " : NWScript :
void main() { object oPlayer = GetLastPlayerDied(); //---------------------------- ------------------------------ -------------// // On met une balise de mort au pj qui vient de mourir. // //---------------------------- ------------------------------ -------------// // sert a declarer une balise pour "marquer" le pj a la mort. SetCampaignInt("NOM_DE_TON_MOD","balise_mort",TRUE,oPlayer); //---------------------------- ------------------------------ -----------// } et pour finir , sur le " onplayerrespawn " : NWScript :
void main() { object oRespawner = GetLastRespawnButtonPresser(); //---------------------------- ----------------------------// // Positionement des balises a " FALSE " // //---------------------------- ----------------------------// SetCampaignInt("NOM_DE_TON_MOD","balise_mort",FALSE,oRespawner); } Bon , bien sûr il faut intégrer ces scripts proprement pour ne pas perdre le bénéfice de tous les autres scripts qu'il y a déja a ces emplacements , mais une fois que c'est fait ça fonctionne trés bien. Une chose , les infos sont mémorisées dans le dossier " database "sous forme de fichiers texte , si jamais tout le mod doit être transféré par le net a une autre personne pour hébergement , il ne faut pas oublier de transmettre le mod et le servervault , mais AUSSI les fichiers " database ". Apres un petit coter plus chaud, non je deconne : Il va falloir que tu sauvegarde les script suivants sous le nom que je vais t'indiquez. Le premier est a sauver sous : "nw_s0_raisdead" (sans les « « bien sur ^^) ca changera le rez normal pour inclure la variable NWScript :
//:: [Raise Dead] //:: [NW_S0_RaisDead.nss] //:: Copyright (c) 2000 Bioware Corp. //:Confused/////////////////// ////// //////////////////// //:: Brings a character back to life with 1 HP. //:Confused/////////////////// ////// //////////////////// //:: Created By: Preston Watamaniuk //:: Created On: Jan 31, 2001 //:Confused/////////////////// ////// //////////////////// //:: Last Updated By: Preston Watamaniuk, On: April 11, 2001 //:: VFX Pass By: Preston W, On: June 22, 2001 void main() { //AdjustAlignment( OBJECT_SELF, ALIGNMENT_GOOD, 2); //Declare major variables object oCaster = OBJECT_SELF; object oTarget = GetSpellTargetObject(); effect eRaise = EffectResurrection(); effect eVis = EffectVisualEffect(VFX_IMP_RAISE_DEAD); ////////////////////////////// ////////////////////////////// //////////// //---------------------------- ----------------------------// // Positionement de la balise de mort a " FALSE " // //---------------------------- ----------------------------// int BALISE_MORT = GetCampaignInt("NOM_DE_TON_MOD","balise_mort",oTarget); SetCampaignInt("NOM_DE_TON_MOD","balise_mort",FALSE,oTarget); ////////////////////////////// ////////////////////////////// //////////// if(GetIsDead(oTarget)) { //Fire cast spell at event for the specified target SignalEvent(oTarget, EventSpellCastAt(oCaster, SPELL_RAISE_DEAD, FALSE)); //Apply raise dead effect and VFX impact ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, GetLocation(oTarget)); ApplyEffectToObject(DURATION_TYPE_INSTANT, eRaise, oTarget); SetLocalInt(GetModule(),GetName(oTarget)+GetPCPublicCDKey(oTarget)+"Damages",0); if (GetIsPC(oCaster) && GetIsPC(oTarget)) WriteTimestampedLogEntry("[PK]"+GetName(oCaster)+" casted raised dead on "+GetName(oTarget)); } } et sauvegarde le script suivant sous le nom "nw_s0_resserec" (pour le rez complet): NWScript :
//:Confused/////////////////// ////// ///////////////////// //:: [Ressurection] //:: [NW_S0_Ressurec.nss] //:: Copyright (c) 2000 Bioware Corp. //:Confused/////////////////// ////// //////////////////// //:: Brings a character back to life with full //:: health. //:Confused/////////////////// ////// //////////////////// //:: Created By: Preston Watamaniuk //:: Created On: Jan 31, 2001 //:Confused/////////////////// ////// //////////////////// //:: Last Updated By: Preston Watamaniuk, On: April 11, 2001 //:: VFX Pass By: Preston W, On: June 22, 2001 void main() { //AdjustAlignment( OBJECT_SELF, ALIGNMENT_GOOD, 3); //Get the spell target object oTarget = GetSpellTargetObject(); object oCaster = OBJECT_SELF; //Check to make sure the target is dead first //---------------------------- ------------------------------ ----------------// // Positionement de la balise de mort a " FALSE " // //---------------------------- ------------------------------ ----------------// int BALISE_MORT = GetCampaignInt("NOM_DE_TON_MOD","balise_mort",oTarget); SetCampaignInt("NOM_DE_TON_MOD","balise_mort",FALSE,oTarget); //---------------------------- ------------------------------ ----------------// if (GetIsDead(oTarget)) { //Fire cast spell at event for the specified target SignalEvent(oTarget, EventSpellCastAt(oCaster, SPELL_RESURRECTION, FALSE)); //Declare major variables int nHealed = GetMaxHitPoints(oTarget); effect eRaise = EffectResurrection(); effect eHeal = EffectHeal(nHealed + 10); effect eVis = EffectVisualEffect(VFX_IMP_RAISE_DEAD); //Apply the heal, raise dead and VFX impact effect ApplyEffectToObject(DURATION_TYPE_INSTANT, eRaise, oTarget); ApplyEffectToObject(DURATION_TYPE_INSTANT, eHeal, oTarget); ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, GetLocation(oTarget)); SetLocalInt(GetModule(),GetName(oTarget)+GetPCPublicCDKey(oTarget)+"Damages",0); if (GetIsPC(oCaster) && GetIsPC(oTarget)) WriteTimestampedLogEntry("[PK]"+GetName(oCaster)+" casted resurrection on "+GetName(oTarget)); } } --------------------------------------------------------------------------------------------- Maintenant mon probleme, si d'apparence tous marche bien, des joueurs viennet me dire qu'ils apparaissent mort alors qu'en fait ils etaient vivant avant de deco. J'en conclut donc que c'ets un probleme de variable qui na pas etait enlever, mais je ne vois pas ou peut se situer le probleme, et c'est la que je fais appel a vous Merci d'avance (on ma conseiller de me procuerer un systeme de carte de mort qui a l'avantage de ne pas avoir ce genre d'inconvenient, si vous l'avez et que vous voulez en faire profitez ^^, n'hesitez pas ) _________________ La vie n'est qu'une plume que le destin balade au grés du vent... |
Revenir en haut | |
darkheaven Acolyte Messages: 35 Localisation: nevers |
Personne? _________________ La vie n'est qu'une plume que le destin balade au grés du vent... |
Revenir en haut | |
Black Knight Grand Maître Chanteur du Conseil Messages: 1031 Localisation: Fin fond du trou du cul du monde |
Je te conseil de surtout de ne pas utilisé les TRUE et les FALSE enfin moi j'ai jamais utilisé, mais plutot des 1 (si il meurt) et des 0 (si il est vivant).
Voila sinon je vois pas d'erreur. _________________ [http] |
Revenir en haut | |
chevalier blanc Grand Chevalier Messages: 117 Localisation: Sur les Côtes d'Opaline |
Salut a tous , jai exactement le meme probleme sur mon serveur
Black Night est ce que tu pourrais etre plus clair? Le TRUE correspond a un 1 ou a un 0 ? Idem pour le FALSE Et est ce que dans les guillemets "NOM_DE_TON_MOD" il faut mettre le tag ou le nom du mod... Plusieurs joueurs chez moi ont ce petit probleme et j'avoue que c'est lassant de devoir respawné a chaque fois alors qu'on etait en vie a la derniere deco.... |
Revenir en haut | |
lylver Héros Messages: 274 |
FALSE vaut 0 à coup sur
TRUE ... bof la constante est définie à 1 mais pour les tests : n'importe quel résultat différent de zéro est VRAI Entre double-quote, c'est le nom d'un groupe fichiers (il y en a 3) qui seront présents dans le dossier database du serveur, peut importe que ce soit le TAG du module ou autre chose... mais vaut mieux (sous windows) essayer de garder ce nom court (taille <= 8 caracteres) |
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