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 21:35:07
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 |
Allaster Chevalier Messages: 73 Localisation: toulouse |
Bon comme le montre le titre je voudrais faire un systeme de respawn à partir d'un objet définis dans l'inventaire du PJ SANS détruire l'objet.
Quelqu'un peut m'aider? |
Revenir en haut | |
finipe Grand Sage du Conseil Messages: 519 Localisation: Nantes |
Encore une fois, ça te paraît peut-être clair car tu sais ce que tu veux, mais pour les autres ça ne l'est pas forcément, pourrais-tu préciser un peu ta question ? (donner des détails sur comment le respawn doit se passer, tout ça...)
_________________ » 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 | |
Allaster Chevalier Messages: 73 Localisation: toulouse |
J'ai 3 villes :
_Armille _Wilmot _Rakalm Armille à un objet A Wilmot à un objet B Rakalm à un objet C Quand le PJ meurt : si il est de Armille il vas à un point A grace à un scrpit qui identifie l'objet A si il est de Wilmot il vas à un point B grace à un script qui identifie l'objet B si il est de Rakalm il vas à un point C grace à un script qui identifie l'objet C et ma question est : Quel est ce script qui identifie les objets ? |
Revenir en haut | |
Mythyzyn Héros Messages: 292 Localisation: Lyncya |
Je suppose que tu donnes l'objet lors du choix de la ville au début.
A la place de donner l'objet, tu crée un SetCampaignInt et ensuite tu peux le check à volonté et tu n'as pas un objet à trimballer . . . Et ce sera sans doute plus rapide, bien que la BDD de bio . . . _________________ NwN2 - Lyncya 3 - La Guerre du Crystium |
Revenir en haut | |
Allaster Chevalier Messages: 73 Localisation: toulouse |
ba en fait j'ai une pierre de rappel pour chaque ville (bien sûr avec un tag different) et je voudrais que grace à cette pierre le PJ aille au point d'arriver quand il ce connect, pas dans le choix mais quand il arrive dans le temple de sa ville.
Pour Armille : PierreDeRetour ==> est rataché à "WP_bien" quand le PJ meurt Pour Wilmot : PierreDeRetour1 ==> est rataché à "WP_neutre" quand le PJ meurt Pour Rakalm : PierreDeRetour2 ==> est rataché à "WP_mal" quand le PJ meurt |
Revenir en haut | |
finipe Grand Sage du Conseil Messages: 519 Localisation: Nantes |
Une petite boucle pour vérifier l'inventaire du joueur, à placer sur le onRespawn du module :
NWScript : void main() { object oPC = GetLastRespawnButtonPresser(); location lLocBIEN = GetLocation(GetWaypointByTag("WP_bien")); location lLocNEUTRE = GetLocation(GetWaypointByTag("WP_neutre")); location lLocMAL = GetLocation(GetWaypointByTag("WP_mal")); object oObjet = GetFirstItemInInventory(oPC); while(GetIsObjectValid(oObjet)) { if(GetTag(oObjet) == "PierreDeRetour") { AssignCommand(oPC, ActionJumpToLocation(lLocBIEN)); break; } else if(GetTag(oObjet) == "PierreDeRetour1") { AssignCommand(oPC, ActionJumpToLocation(lLocNEUTRE)); break; } else if(GetTag(oObjet) == "PierreDeRetour2") { AssignCommand(oPC, ActionJumpToLocation(lLocMAL)); break; } else { // Erreur : le joueur n'a aucune pierre dans son inventaire } oObjet = GetNextItemInInventory(oPC); } } _________________ » 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 | |
Allaster Chevalier Messages: 73 Localisation: toulouse |
Ok merci je vais essayer ça de suite
|
Revenir en haut | |
Ivellios Légende vivante Messages: 447 Localisation: Poitiers |
Sinon il y a cette fonction (sa evite la boucle mais je me demande si c'est pas un wrapper de boucle avec test tag justement...)
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. _________________ Scripts, systèmes, fonctions,... c'est par ici... Pyjama pour castor, une vocation, un avenir sûr |
Revenir en haut | |
Vallav Novice Messages: 12 |
tu ne fais pas un systeme de respawn suivant l'alignement?
|
Revenir en haut | |
Allaster Chevalier Messages: 73 Localisation: toulouse |
tien j'y avait pas penser à un respawn suisvant l'alignement
lol |
Revenir en haut | |
Allaster Chevalier Messages: 73 Localisation: toulouse |
au fait ... comment faire pour que quand le PJ respawn il perd 25 Xp par lvl et 3 pourcent de son or ?
|
Revenir en haut | |
Vallav Novice Messages: 12 |
voici ce que tu peux mettre dans ton include:
NWScript :
// Fonction qui applique une penalit d'xp et d'or // au joueur qui respawn void ApplyPenalty(object oDead) { // Definition des variables pour l'xp int nXP = GetXP(oDead); int nPenalty = 25 * GetHitDice(oDead); int nHD = GetHitDice(oDead); // Impossible de perdre un niveau donc int nMin = ((nHD * (nHD - 1)) / 2) * 1000; int nNewXP = nXP - nPenalty; if (nNewXP < nMin) nNewXP = nMin; // Applique la perte d'xp SetXP(oDead, nNewXP); // Definition des variables pour l'or... int nGoldToTake = FloatToInt(0.03 * GetGold(oDead));//ici tu regle la perte en or // mais a perte d'or ne peut depasser 10000po if (nGoldToTake > 10000) { nGoldToTake = 10000; } } voila ce que j'ai sur mon mod.J'espere avoir bon:D |
Revenir en haut | |
Allaster Chevalier Messages: 73 Localisation: toulouse |
eeee je croi qu'il y a un petit problème dans ton script même plusieur...
Citation : // Fonction qui applique une penalit d'xp et d'or
le premier le l'ais résolut grace au script de la campagne mais le dexieme j'ai essayer de faire avec la campagne mais ça marche pô// au joueur qui respawn void ApplyPenalty(object oDead) { // Definition des variables pour l'xp int nXP = GetXP(oDead); int nPenalty = 25 * GetHitDice(oDead);//ici tu regle la perte d'xp par dé de vie int nHD = GetHitDice(oDead); // Impossible de perdre un niveau donc int nMin = ((nHD * (nHD - 1)) / 2) * 1000; int nNewXP = nXP - nPenalty; if (nNewXP < nMin) nNewXP = nMin; // Applique la perte d'xp SetXP(oDead, nNewXP); // Definition des variables pour l'or... int nGoldToTake = FloatToInt(0.03 * GetGold(oDead));//ici tu regle la perte en or // mais a perte d'or ne peut depasser 10000po if (nGoldToTake > 10000) { nGoldToTake = 10000; } } |
Revenir en haut | |
Stan Grand Chevalier Messages: 126 |
Il manque la perte de l'or c'est ça ton soucis ? tu peux préciser un peu le problème et utiliser des balises nwscript ?
Rajouter ça avant la toute derniere accolade de fin de script : 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 | |
Allaster Chevalier Messages: 73 Localisation: toulouse |
NWScript :
// Fonction qui applique une penalit d'xp et d'or // au joueur qui respawn void ApplyPenalty(object oDead) { // Definition des variables pour l'xp int nXP = GetXP(oDead); int nPenalty = 25 * GetHitDice(oDead); int nHD = GetHitDice(oDead); // Impossible de perdre un niveau donc int nNewXP = nXP - nPenalty; if (nNewXP < nMin) nNewXP = nMin; // Applique la perte d'xp SetXP(oDead, nNewXP); // Definition des variables pour l'or... int nGoldToTake = FloatToInt(0.03 * GetGold(oDead));//ici tu regle la perte en or // mais a perte d'or ne peut depasser 10000po if (nGoldToTake > 10000) { nGoldToTake = 10000; } void main() { object oPC = GetLastRespawnButtonPresser(); location lLocBIEN = GetLocation(GetWaypointByTag("WP_bien")); location lLocNEUTRE = GetLocation(GetWaypointByTag("WP_neutre")); location lLocMAL = GetLocation(GetWaypointByTag("WP_mal")); object oObjet = GetFirstItemInInventory(oPC); while(GetIsObjectValid(oObjet)) { if(GetTag(oObjet) == "PierreDeRetour") { AssignCommand(oPC, ActionJumpToLocation(lLocBIEN)); break; } else if(GetTag(oObjet) == "PierreDeRetour1") { AssignCommand(oPC, ActionJumpToLocation(lLocNEUTRE)); break; } else if(GetTag(oObjet) == "PierreDeRetour2") { AssignCommand(oPC, ActionJumpToLocation(lLocMAL)); break; } else { // Erreur : le joueur n'a aucune pierre dans son inventaire } oObjet = GetNextItemInInventory(oPC); } TakeGoldFromCreature(nGoldToTake,oDead,TRUE); } /* warning: 1 unclosed block {} */ Citation : Erreur. 'respawn' n'est pas compilé.
respawn.nss(27): ERREUR : UNKNOWN STATE IN COMPILER |
Revenir en haut | |
Allaster Chevalier Messages: 73 Localisation: toulouse |
heuuu... à la fin du script vous voyez
/* warning: 1 unclosed block {} */ comme c'est mon premier script sur ce forum (et oui il faut bien commencer un jour ) je ne sais pas ce que ça veut dire donc si quelqu'un peut m'expliquer |
Revenir en haut | |
Stan Grand Chevalier Messages: 126 |
NWScript :
nGoldToTake = 10000; }/* suspect block end found !*/ il manque une accolade là. Il faut écrire 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. Ou sinon retirer l'accolade ici : NWScript :
if (nGoldToTake > 10000) { nGoldToTake = 10000; } Qui devient NWScript : if (nGoldToTake > 10000) nGoldToTake = 10000; }/* suspect block end found !*/ |
Revenir en haut | |
lylver Héros Messages: 274 |
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. Il faut un AssignCommand avant le TakeGold... Je sais quand on y réfléchit c'est assez drôle, t'es mort et en plus c'est toi qui donne ton pognon... "La mort est un état relatif dans NWN" |
Revenir en haut | |
Allaster Chevalier Messages: 73 Localisation: toulouse |
heu... c'est quoi ce morceau de script??
|
Revenir en haut | |
atapi Novice Messages: 6 |
c'est pour prendre l'or
|
Revenir en haut | |
Allaster Chevalier Messages: 73 Localisation: toulouse |
Ok... maintenant j'ai un autre problème...
pourquoi quand je place de créature sur mon module maintenant, quand j'essai le module je ne les vois pas? |
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