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 20:19:09
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 |
Hyolanric Novice Messages: 8 |
Bonjour à tous,
Voilà je ne script que depuis octobre 2005, et je commencerais à vous remercier car j'ai considérablement progresser dans ce domaine grâce à vos posts. Jusqu'ici, j'ai toujours réussi à trouver la réponse dans les scripts proposés, quelquefois après de longues heures de recherches, mais là je suis ennuyé depuis une bonne semaine avec deux scripts de resapawn que je n'arrive pas à associer. Le premier est celui-ci : script de respawn avec perte d'XP et PO ramenant à un point de respawn/alignement NWScript :
////////////////////////////// ////////////////////////////// //////////////////// /////Script de BlamReconstruit par Fed et fini par Kemay//// ////////////////////////////// ////////////////////////////// //////////////////// /////Objet: Rappel dans les temples correspondants a l'alignement du joueur///// /////Date : 10 /08/2002////////////////////// ////////////////////////////// ///// ////////////////////////////// ////////////////////////////// //////////////////// #include "nw_i0_plot" // * Applies an XP and GP penalty // * to the player respawning void ApplyPenalty(object oDead) { int nXP = GetXP(oDead); int nPenalty = 50 * GetHitDice(oDead); int nHD = GetHitDice(oDead); // * You can not lose a level with this respawning int nMin = ((nHD * (nHD - 1)) / 2) * 1000; int nNewXP = nXP - nPenalty; if (nNewXP < nMin) nNewXP = nMin; SetXP(oDead, nNewXP); int nGoldToTake = FloatToInt(0.10 * GetGold(oDead)); // * a cap of 10 000gp taken from you if (nGoldToTake > 10000) { nGoldToTake = 10000; } AssignCommand(oDead, TakeGoldFromCreature(nGoldToTake, oDead, TRUE)); DelayCommand(4.0, FloatingTextStrRefOnCreature(58299, oDead, FALSE)); DelayCommand(4.8, FloatingTextStrRefOnCreature(58300, oDead, FALSE)); } void main() { object oRespawner = GetLastRespawnButtonPresser(); int nAlignementLawChaos = GetAlignmentLawChaos(oRespawner); int nAlignementGoodEvil = GetAlignmentGoodEvil(oRespawner); ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oRespawner); ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(oRespawner)), oRespawner); RemoveEffects(oRespawner); // Return PC to respawn point based on alignement. string sDestTag = "WP_"; switch (nAlignementLawChaos) { case ALIGNMENT_CHAOTIC: sDestTag = sDestTag + "CHAOTIC_"; break; case ALIGNMENT_NEUTRAL: sDestTag = sDestTag + "NEUTRAL_"; break; case ALIGNMENT_LAWFUL: sDestTag = sDestTag + "LAWFUL_"; break; } switch (nAlignementGoodEvil) { case ALIGNMENT_GOOD: sDestTag = sDestTag + "GOOD"; break; case ALIGNMENT_NEUTRAL: sDestTag = sDestTag + "NEUTRAL"; break; case ALIGNMENT_EVIL: sDestTag = sDestTag + "EVIL"; break; } // Apply any penalties. ApplyPenalty(oRespawner); object oDest = GetWaypointByTag(sDestTag); // si le waypoint de destination n'existe pas if (!GetIsObjectValid(oDest)) { // utilise le waypoint par defaut oDest = GetWaypointByTag("Resp001"); } if (GetIsObjectValid(oDest)) { SetLocalLocation(oRespawner, "NW_L_I_DIED_HERE", GetLocation(oRespawner)); SetLocalInt(oRespawner, "NW_L_I_DIED", 1); AssignCommand(oRespawner,JumpToLocation(GetLocation(oDest))); } } le deuxième est celui-ci : script "cad_onrespawn" à mettre avec le script que j'ai eu avec le "sac à cadavre" de Kemo (merci à lui au passage) NWScript :
void main() { object oPC = GetExitingObject(); // sac a cadavre if (GetLocalInt(oPC, "cadavre") == 1) // le PJ est dans le sac a cadavre { object oCad = GetLocalObject(oPC, "cadavre"); ExecuteScript("cad_raz", oCad); DestroyObject(GetLocalObject(oCad, "corps")); SendMessageToPC(GetLocalObject(oPC, "cadavre"), "Le cadavre que vous portiez s'est deconnectee"); } if (GetLocalInt(oPC, "cadavre") == 2) // le PJ porte un cadavre { object oCad = GetLocalObject(oPC, "cadavre"); ExecuteScript("cad_raz", oCad); DestroyObject(GetLocalObject(oCad, "corps")); SendMessageToPC(oCad, "La personne qui vous portait s'est deconnectee"); ExecuteScript("_respawn", oCad); } // fin sac } le problème rencontré quand je les associe est : Code : 16/01/06 11:38:18 : Erreur. 'lodoss_resp_7' n'est pas compilé.
lodoss_resp_7.nss: ERREUR : DUPLICATE FUNCTION IMPLEMENTATION (main) quand je retire le voidmain() :sur une acolade que je retire Code : 16/01/06 11:39:16 : Erreur. 'lodoss_resp_7' n'est pas compilé.
lodoss_resp_7.nss(105): ERREUR : INVALID DECLARATION TYPE je retire l'accolade est j'ai ce message sur :if (GetLocalInt(oPC, "cadavre") == 1) Code : 16/01/06 11:40:11 : Erreur. 'lodoss_resp_7' n'est pas compilé.
lodoss_resp_7.nss(108): ERREUR : INVALID DECLARATION TYPE Or là je ne dois pas le retirer, alors si quelqu'un verrait mieux que moi ce qu'il y a lieu de corriger, ça serait super. D'avance merci. |
Revenir en haut | |
lylver Héros Messages: 274 |
Bonjour, pour une implémentation complète du sac à cadavre tu en trouveras une dans la version 6.67 du bouchon lyonnais qui lui est un module publié.
Tu pourras en trouver une version ici Les haks sont là : http://nwn.twiny.org/viewtopic.php?t=13216 le BL_Ren_Mini16 doit être renommé en BL_Ren_Mini14 |
Revenir en haut | |
Mage Blanc Voyageur Messages: 4 |
Bonjour !
Voilà j'utilise le sac à cadavre et un script de respawn classique lorsqu'un Pj est seul et n'a pas d'autre choix. Lorsque le pj mort respawn de la facon classique il peut deco et revenir et son respawn est pris ne compte. Par contre lorsque c'est un pretre pnj qui le respwan, son respawn n'est pas pris en compte lors de sa prochaine connexion... (script : 1je pose mon compagnon au sol 2je parle au pretre pour qu'il le soigne et 3celui ci le rez) Pourquoi ? est ce que j'ai mal instalé le script ? Si quelqu'un à une reponse merci d'avance ! |
Revenir en haut | |
finipe Grand Sage du Conseil Messages: 519 Localisation: Nantes |
C'est du script, je déplace dans le bon forum.
_________________ » Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine » 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII |
Revenir en haut | |
chevalier blanc Grand Chevalier Messages: 117 Localisation: Sur les Côtes d'Opaline |
Quelqu'un peut il poster son script compilé svp ? Le mien ne marche pas et pourtant j'ai suivi vos instructions a la lettre !
|
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