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 27/12/2024 19:04:41
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 |
Elunatar Novice Messages: 8 |
Et bien voila, tout est dans le titre.
Alors je m'escuse si le script est déjà existant mais malheureusement je ne l'ai pas trouver. Je voudrais faire en sorte que le pj apres être mort se teleporte à l'église (ca c'est déjà fait) Après il parle à un prêtre qui, moyennant finance après un dialogue le renvoi au point exact de sa mort. Serait-il possible de m'aider ? |
Revenir en haut | |
Black Knight Grand Maître Chanteur du Conseil Messages: 1031 Localisation: Fin fond du trou du cul du monde |
Dans le OnDeath, tu mets une localisation dans une local:
SetLocalLocation(oPC, "PointMort", GetLocation(oPC)); (à ne pas confondre avec le point mort d'une voiture/moto) Et dans le dialogue, tu fais la recherche de ce point location lLoc = GetLocation(GetLocalLocation(oPC, "PointMort")); De rien. _________________ [http] |
Revenir en haut | |
Elunatar Novice Messages: 8 |
Mille merci pour votre aide mon seigneur
|
Revenir en haut | |
Elunatar Novice Messages: 8 |
<Alors apres moulte essais je n'ai eu geure de resultat.
Le script que je met dans le ondeath du module est le suivant mais je pense avoir fait une erreure quelque part : NWScript :
//:///////////////////////// ///////////////////// //:: Death Script //:: NW_O0_DEATH.NSS //:: Copyright (c) 2001 Bioware Corp. //:///////////////////////// //////////////////// /* This script handles the default behavior that occurs when a player dies. BK: October 8 2002: Overriden for Expansion */ //:///////////////////////// //////////////////// //:: Created By: Brent Knowles //:: Created On: November 6, 2001 //:///////////////////////// //////////////////// /* void ClearAllFactionMembers(object oMember, object oPlayer) { // AssignCommand(oMember, SpeakString("here")) ; AdjustReputation(oPlayer, oMember, 100); SetLocalInt(oPlayer, "NW_G_Playerhasbeenbad&qu ot;, 10); // * Player bad object oClear = GetFirstFactionMember(oMember, FALSE); while (GetIsObjectValid(oClear) == TRUE) { ClearPersonalReputation(oPlaye r, oClear); oClear = GetNextFactionMember(oMember, FALSE); } } */ void Raise(object oPlayer) { effect eVisual = EffectVisualEffect(VFX_IMP_RESTORATION); effect eBad = GetFirstEffect(oPlayer); ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oPlayer); ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(oPlayer)), oPlayer); //Search for negative effects while(GetIsEffectValid(eBad)) { if (GetEffectType(eBad) == EFFECT_TYPE_ABILITY_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_AC_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_ATTACK_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_DAMAGE_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_DAMAGE_IMMUNITY_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_SAVING_THROW_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_SPELL_RESISTANCE_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_SKILL_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_BLINDNESS || GetEffectType(eBad) == EFFECT_TYPE_DEAF || GetEffectType(eBad) == EFFECT_TYPE_PARALYZE || GetEffectType(eBad) == EFFECT_TYPE_NEGATIVELEVEL) { //Remove effect if it is negative. RemoveEffect(oPlayer, eBad); } eBad = GetNextEffect(oPlayer); } //Fire cast spell at event for the specified target SignalEvent(oPlayer, EventSpellCastAt(OBJECT_SELF, SPELL_RESTORATION, FALSE)); ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisual, oPlayer); } void main() { object oPlayer = GetLastPlayerDied(); // * increment global tracking number of times that I died SetLocalInt(oPlayer, "NW_L_PLAYER_DIED", GetLocalInt(oPlayer, "NW_L_PLAYER_DIED") + 1); // * BK: Automation Control. Autopcs ignore death if (GetLocalInt(oPlayer, "NW_L_AUTOMATION") == 10) { Raise(oPlayer); DelayCommand(1.0, ExecuteScript("crawl", OBJECT_SELF)); return; // Raise and return } // * Handle Spirit of the Wood Death string sArea = GetTag(GetArea(oPlayer)); /* if (sArea == "MAP_M2Q2F2" && GetDistanceBetweenLocations(Ge tLocation(GetObjectByTag(" ;M2Q2F2_M2Q2G")), GetLocation(oPlayer)) < 5.0 && GetLocalInt(GetModule()," NW_M2Q2E_WoodsFreed") == 0) { int bValid; Raise(oPlayer); string sDestTag = "WP_M2Q2GtoM2Q2F"; object oSpawnPoint = GetObjectByTag(sDestTag); AssignCommand(oPlayer,JumpToLo cation(GetLocation(oSpawnPoint ))); return; } */ // * in last level of the Sourcestone, move the player to the beginning of the area // * May 16 2002: or the main area of the Snowglobe (to prevent plot logic problems). // * May 21 2002: or Castle Never if (sArea == "M4Q1D2" || sArea == "M3Q3C" || sArea == "MAP_M1Q6A") { //Raise(oPlayer); //string sDestTag = "M4QD07_ENTER"; //object oSpawnPoint = GetObjectByTag(sDestTag); // AssignCommand(oPlayer, DelayCommand(1.0, JumpToLocation(GetLocation(oSp awnPoint)))); // * MAY 2002: Just popup the YOU ARE DEAD panel at this point DelayCommand(2.5, PopUpDeathGUIPanel(oPlayer,FALSE, TRUE, 66487)); return; } // * make friendly to Each of the 3 common factions AssignCommand(oPlayer, ClearAllActions()); // * Note: waiting for Sophia to make SetStandardFactionReptuation to clear all personal reputation if (GetStandardFactionReputation(STANDARD_FACTION_COMMONER, oPlayer) <= 10) { SetLocalInt(oPlayer, "NW_G_Playerhasbeenbad", 10); // * Player bad SetStandardFactionReputation(STANDARD_FACTION_COMMONER, 80, oPlayer); } if (GetStandardFactionReputation(STANDARD_FACTION_MERCHANT, oPlayer) <= 10) { SetLocalInt(oPlayer, "NW_G_Playerhasbeenbad", 10); // * Player bad SetStandardFactionReputation(STANDARD_FACTION_MERCHANT, 80, oPlayer); } if (GetStandardFactionReputation(STANDARD_FACTION_DEFENDER, oPlayer) <= 10) { SetLocalInt(oPlayer, "NW_G_Playerhasbeenbad", 10); // * Player bad SetStandardFactionReputation(STANDARD_FACTION_DEFENDER, 80, oPlayer); } DelayCommand(2.5, PopUpGUIPanel(oPlayer,GUI_PANEL_PLAYER_DEATH)); { SetLocalLocation(oPC, "PointMort", GetLocation(oPC)); } } Et pour le dialogue je place dans le action conséquante : NWScript : Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème. |
Revenir en haut | |
Black Knight Grand Maître Chanteur du Conseil Messages: 1031 Localisation: Fin fond du trou du cul du monde |
Tu dois être nouveau en script
Elunatar a écrit : <Alors apres moulte essais je n'ai eu geure de resultat.
ca devrait déjà être mieuxLe script que je met dans le ondeath du module est le suivant mais je pense avoir fait une erreure quelque part : NWScript :
//:///////////////////////// ///////////////////// //:: Death Script //:: NW_O0_DEATH.NSS //:: Copyright (c) 2001 Bioware Corp. //:///////////////////////// //////////////////// /* This script handles the default behavior that occurs when a player dies. BK: October 8 2002: Overriden for Expansion */ //:///////////////////////// //////////////////// //:: Created By: Brent Knowles //:: Created On: November 6, 2001 //:///////////////////////// //////////////////// /* void ClearAllFactionMembers(object oMember, object oPlayer) { // AssignCommand(oMember, SpeakString("here")) ; AdjustReputation(oPlayer, oMember, 100); SetLocalInt(oPlayer, "NW_G_Playerhasbeenbad&qu ot;, 10); // * Player bad object oClear = GetFirstFactionMember(oMember, FALSE); while (GetIsObjectValid(oClear) == TRUE) { ClearPersonalReputation(oPlaye r, oClear); oClear = GetNextFactionMember(oMember, FALSE); } } */ void Raise(object oPlayer) { effect eVisual = EffectVisualEffect(VFX_IMP_RESTORATION); effect eBad = GetFirstEffect(oPlayer); ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oPlayer); ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(oPlayer)), oPlayer); //Search for negative effects while(GetIsEffectValid(eBad)) { if (GetEffectType(eBad) == EFFECT_TYPE_ABILITY_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_AC_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_ATTACK_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_DAMAGE_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_DAMAGE_IMMUNITY_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_SAVING_THROW_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_SPELL_RESISTANCE_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_SKILL_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_BLINDNESS || GetEffectType(eBad) == EFFECT_TYPE_DEAF || GetEffectType(eBad) == EFFECT_TYPE_PARALYZE || GetEffectType(eBad) == EFFECT_TYPE_NEGATIVELEVEL) { //Remove effect if it is negative. RemoveEffect(oPlayer, eBad); } eBad = GetNextEffect(oPlayer); } //Fire cast spell at event for the specified target SignalEvent(oPlayer, EventSpellCastAt(OBJECT_SELF, SPELL_RESTORATION, FALSE)); ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisual, oPlayer); } void main() { object oPlayer = GetLastPlayerDied(); // * increment global tracking number of times that I died SetLocalInt(oPlayer, "NW_L_PLAYER_DIED", GetLocalInt(oPlayer, "NW_L_PLAYER_DIED") + 1); // * BK: Automation Control. Autopcs ignore death if (GetLocalInt(oPlayer, "NW_L_AUTOMATION") == 10) { Raise(oPlayer); DelayCommand(1.0, ExecuteScript("crawl", OBJECT_SELF)); return; // Raise and return } // * Handle Spirit of the Wood Death string sArea = GetTag(GetArea(oPlayer)); /* if (sArea == "MAP_M2Q2F2" && GetDistanceBetweenLocations(Ge tLocation(GetObjectByTag(" ;M2Q2F2_M2Q2G")), GetLocation(oPlayer)) < 5.0 && GetLocalInt(GetModule()," NW_M2Q2E_WoodsFreed") == 0) { int bValid; Raise(oPlayer); string sDestTag = "WP_M2Q2GtoM2Q2F"; object oSpawnPoint = GetObjectByTag(sDestTag); AssignCommand(oPlayer,JumpToLo cation(GetLocation(oSpawnPoint ))); return; } */ // * in last level of the Sourcestone, move the player to the beginning of the area // * May 16 2002: or the main area of the Snowglobe (to prevent plot logic problems). // * May 21 2002: or Castle Never if (sArea == "M4Q1D2" || sArea == "M3Q3C" || sArea == "MAP_M1Q6A") { //Raise(oPlayer); //string sDestTag = "M4QD07_ENTER"; //object oSpawnPoint = GetObjectByTag(sDestTag); // AssignCommand(oPlayer, DelayCommand(1.0, JumpToLocation(GetLocation(oSp awnPoint)))); // * MAY 2002: Just popup the YOU ARE DEAD panel at this point DelayCommand(2.5, PopUpDeathGUIPanel(oPlayer,FALSE, TRUE, 66487)); return; } // * make friendly to Each of the 3 common factions AssignCommand(oPlayer, ClearAllActions()); // * Note: waiting for Sophia to make SetStandardFactionReptuation to clear all personal reputation if (GetStandardFactionReputation(STANDARD_FACTION_COMMONER, oPlayer) <= 10) { SetLocalInt(oPlayer, "NW_G_Playerhasbeenbad", 10); // * Player bad SetStandardFactionReputation(STANDARD_FACTION_COMMONER, 80, oPlayer); } if (GetStandardFactionReputation(STANDARD_FACTION_MERCHANT, oPlayer) <= 10) { SetLocalInt(oPlayer, "NW_G_Playerhasbeenbad", 10); // * Player bad SetStandardFactionReputation(STANDARD_FACTION_MERCHANT, 80, oPlayer); } if (GetStandardFactionReputation(STANDARD_FACTION_DEFENDER, oPlayer) <= 10) { SetLocalInt(oPlayer, "NW_G_Playerhasbeenbad", 10); // * Player bad SetStandardFactionReputation(STANDARD_FACTION_DEFENDER, 80, oPlayer); } DelayCommand(2.5, PopUpGUIPanel(oPlayer,GUI_PANEL_PLAYER_DEATH)); SetLocalLocation(oPC, "PointMort", GetLocation(oPC)); } NWScript : void main() { location lLoc = GetLocation(GetLocalLocation(oPC, "PointMort")); AssignCommand(GetPCSpeaker(), JumpToLocation(lLoc)); } _________________ [http] |
Revenir en haut | |
Elunatar Novice Messages: 8 |
Je suis maudit avec ce script.
J ai bien placer le premier dans le Onplayer death et le second sur un action consequente d'une phrase d'un dialogue mais rien ne se produit Oui je suis assez nouveau A mon avis il doit manquer une parenthese dans le onplayer death ou alors je suis encore plus noob que je ne le croyais |
Revenir en haut | |
Elunatar Novice Messages: 8 |
Apres quelques recherche j'ai trouver que tout va bien du coter parenthese.
En fait c est un autre probleme. Quand je compile le ondeaht il me met ça : w_o0_death.nss(126): ERREUR : VARIABLE DEFINED WITHOUT TYPE Es ce que ca parle a quelq un ? |
Revenir en haut | |
Elunatar Novice Messages: 8 |
Toujours personne ?
|
Revenir en haut | |
Anthraxcite Légende vivante Messages: 372 Localisation: Belgique |
A vu d'oeil, oPC n'est pas déclaré, que ce soit dans le premier ou dans le second script.
Dans le premier tu dois remplacer oPC par oPlayer et dans le second tu dois remplacer oPC par GetPCSpeaker(). |
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