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:31:13
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 |
Kris Ecuyer Messages: 69 |
Voila , j ai commencé un module avec un scripteur mais surchargé de travail je recherche quelques aide pour cela ,j ai parcourue le forum et jai pris ce qui m interressé , certains scripts onbt ete adapté mais vu que c est pas moi qui m en occupe , j aimerais trouver ces scripts afin de soulager ce pauvre scripteur .
Vu l esprit de la communauté et son entraide j espere trouver mon bonheur , je ne cherche pas des trucs compliqué , juste les scripts minimum et utilisable. 1 : Dans le respawn du joueur , j ai creer un point donc pas de soucis , le probleme et que je souhaite que le pj ne perde pas d 'xp mais augmenter le pourcentage d or a la place , que dois je trafiquoter? , quels scripts,ligne a enlever ou a ajouter? 2 : J ai creer un objet (sphinx) qui aura pour role quand on lui parle il devra faire choisir un dieu a un joueur en fonction de la classe prise , genre pour un guerrier il uara le choix entre 2 dieux, une fois le dieu sauvé , il recevra un objet qui l identifiera aupres de son dieu. Comment dois je m y prendre? ----- Si je veux que le joeuur ne puisse pas paser la zone sans avoir l objet en question, comment dois je faire? 3 : Les portes ne se referme et reverouille pas une fois qu elles sont utilisées , Que dois je mettre et ou afin qu une porte ouverte se referme automatiquement au bout de 1 minute? 4 : J ai mis un script de sac a cadavre trouvé sur ce module , avec le pretrer ca marche niveau dialogue , le soucis que j ai c est que je n ai pas de sac dans l inventaire et je ne peux ramasser le corps par terre, ou ai je oublier quelque chose pour ramasser le cadavre avec utiliser? 5 : Comment justement mettre des objets choisis genre un sac a cadavre et un livre dan sl inventaire du joueur quand il se connecte pour la premiere fois? pour ne pas qu il l est a chaque fois mais seulement une fois , qu il ne puissse pas les perdre ni les vendre, ni qu on lui vole, ? j ai trouvé un script pour detruire l inventaire a son arrivée mais j ai pas pour mettre des objets ^^. Voila il ne me manque que ca pour finir mon module alors si vous pouvez m aider ca serait genial . PS : je suis assez noob donc si les differentes etapes pourraient etre bien detaillé et expliquer ca serait l ideal . Vous remerciant par avance. |
Revenir en haut | |
Kris Ecuyer Messages: 69 |
j ai trouvé pour les portes , un en moins
|
Revenir en haut | |
Harmelyo Chevalier Messages: 84 |
5 : Comment justement mettre des objets choisis genre un sac a cadavre et un livre dan sl inventaire du joueur quand il se connecte pour la premiere fois? pour ne pas qu il l est a chaque fois mais seulement une fois , qu il ne puissse pas les perdre ni les vendre, ni qu on lui vole, ? j ai trouvé un script pour detruire l inventaire a son arrivée mais j ai pas pour mettre des objets ^^.
-> Pour ce qui est de mettre les objets, je suppose que dans le onClientEnter du module tu peux rajouter quelques lignes de ce gout là (je ne connais pas les commandes et je n'ai plus d'installation NWN ) A ajouter dans le OnClientEnter du module: NWScript :
oPC=GetEnteringObject(); //les deux booleens sont la pour tester la presence du sac ou non bool Sac =true; bool Livre=true; if(GetIsPC(oPC))//pour ne pas scanner les DMs { //ici faire une boucle qui parcourt l'inventaire des joueurs et change les booleens pour true s'il rencontre l'objet } if(Sac==true) {CreateItemOnObject("TAG_Sac", oPC)} if(Livre==true) {CreateItemOnObject("TAG_Livre", oPC)} J'ai écrit sa à la va vite sans tester mais hormis la syntaxe qui pourrait être problèmatique, cela devrait fonctionner -> Pour les objets invendable et involable, il suffit de les changer en objet de quête (dans l'éditeur d'objet, c'est une petite case à cocher sur la première page de mémoire, objet intrigué ou quelquechose d'approchant) |
Revenir en haut | |
Kris Ecuyer Messages: 69 |
Merci beaucoup bon ca marche pas et vu que j y connais rien ^^ ben pas cool
|
Revenir en haut | |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
5 : Voici un nouveau script fraichement créer ^^ (j'ai pas testé)
Le voici : NWScript : void main() { object oPC = GetEnteringObject ();//Le pj object oLivre = GetObjectByTag ("Tag_Livre");//Le livre object oSac = GetObjectByTag ("Tag_Sac");//Le sac int nStackSize = 1;// Le nombre d'objet qu'il y aura a creer if (GetIsPC(oPC))//Si le personnage n'est pas un MD ou un pnj etc .. if (GetHitDice(oPC)==1)//Si le pj est niveau 1 if (oSac == OBJECT_INVALID)//Si le pj n'a pas encore le sac if (oLivre == OBJECT_INVALID)//Si le pj n'a pas encore le livre { CreateItemOnObject("Tag_Livre", oPC, nStackSize);//Cree le livre dans l'inventaire du joueur CreateItemOnObject("Tag_Sac", oPC, nStackSize);//Cree le sac dans l'inventaire du joueur } } _________________ Aléthéia | Ceux qui cherchent la vie trouveront la mort, ceux qui cherchent la mort trouveront la mort |
Revenir en haut | |
L'Erudit Seigneur Messages: 167 |
Quelques réponses:
1) Je ne suis pas familiarisé avec les scripts de Respawns, je laisse aux autres le soin de répondre correctement. 2) Voilà le genre de script que cela pourrait donner. Ajouter de la même manière les différentes classes, et créer différents objets pour chaque. Un objet symbolise donc une dévotion à un dieu. NWScript :
void main() { object oPJ = GetPCSpeaker(); int nClasse = GetClassByPosition(1, oPJ); string sAmulette = "BlueprintAmulette"; if (nClasse == CLASS_TYPE_FIGHTER) CreateItemOnObject(sAmulette, oPJ); } 4) Je pense que cela devrait marcher. A placecr dans le OnUsed du Cadavre. NWScript :
void main() { object oPJ = GetLastUsedBy(); if (!GetIsPC(oPJ)) return; string sItemCorps = "BlueprintItemCorps"; object oCorps = GetNearestObjectByTag("TagCorpsATerre"); DestroyObject(oCorps); CreateItemOnObject(sItemCorps, oPJ); } 5) Peut être que ce script peut être amélioré. Si tu souhaites tester plusieurs objets, répétes les lignes de code, en ajoutant simplement un "ItemChoisi3", que tu peux remplaçer par les nominations des Items correspondants, selon ton choix. A plaçer dans le OnEntering du module. Pour le reste, tu dois régler les propriétés de l'objet dans l'éditeur. NWScript : void main() { object oPJ = GetEnteringObject(); if (!GetIsPC(oPJ)) return; int bItemChoisi1, bItemChoisi2; object oItem = GetFirstItemInInventory(oPJ); object oItemChoisi1 = GetObjectByTag("TagItem"); object oItemChoisi2 = GetObjectByTag("TagItem"); string sItemChoisi1 = GetResRef(oItemChoisi1); string sItemChoisi2 = GetResRef(oItemChoisi2); while (oItem != OBJECT_INVALID) { if (oItem == oItemChoisi1) bItemChoisi1 = TRUE; else if (oItem == oItemChoisi2) bItemChoisi2 = TRUE; if (bItemChoisi1 == TRUE && bItemChoisi2 == TRUE) break; oItem = GetNextItemInInventory(oPJ); } if (bItemChoisi1 != TRUE) CreateItemOnObject(sItemChoisi1, oPJ); if (bItemChoisi2 != TRUE) CreateItemOnObject(sItemChoisi2, oPJ); } |
Revenir en haut | |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
POur la mort (sais plus le n° ) :
Tu a le ApplyPenalty : NWScript :
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)); } Il faut le changer comme ca : NWScript :
void ApplyPenalty(object oDead) { int nHD = GetHitDice(oDead); // * You can not lose a level with this respawning int nMin = ((nHD * (nHD - 1)) / 2) * 1000; int nGoldToTake = FloatToInt(2.50 * 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)); } Apres pour changer le pourcentage j'ai mit 2.50, mais ca pour faire moins tu mets moins et plus tu mets plus. Voila, j'espere que c'est bien cela que tu veux ^^. _________________ Aléthéia | Ceux qui cherchent la vie trouveront la mort, ceux qui cherchent la mort trouveront la mort |
Revenir en haut | |
Kris Ecuyer Messages: 69 |
Merci a tous j ai pas mal avancé
|
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