
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.







La date/heure actuelle est 19/04/2025 20:43:56
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 |
Black Knight Grand Maître Chanteur du Conseil ![]() Messages: 1031 Localisation: Fin fond du trou du cul du monde |
NWScript :
#include "nw_i0_plot" void main() { object oPC = GetPCSpeaker(); int XP = GetXP(oPC); int OR = GetGold(oPC); SetCustomToken(9000, IntToString(XP)); OR = OR; object oItemcheck = GetFirstItemInInventory(oPC); while (GetIsObjectValid(oItemcheck)) { if(GetBaseItemType(oItemcheck) != BASE_ITEM_HEALERSKIT && GetBaseItemType(oItemcheck) != BASE_ITEM_ARROW && GetBaseItemType(oItemcheck) != BASE_ITEM_BULLET && GetBaseItemType(oItemcheck) != BASE_ITEM_TRAPKIT && GetBaseItemType(oItemcheck) != BASE_ITEM_BOLT) { OR = OR + GetGoldPieceValue(oItemcheck); } oItemcheck = GetNextItemInInventory(oPC); } OR = OR; SetCustomToken(9001, IntToString(OR)); SetCustomToken(9002, IntToString(OR-XP)); int iCalcule = OR-XP; if(iCalcule > 0) { SetCustomToken(9003, "Oh! mais que vois-je, vous avez plus d'argent que vous ne devriez en avoir! Je vous les enleve dessuite!"); iCalcule = iCalcule; TakeGold(iCalcule, oPC, TRUE); } else if(iCalcule < 0) { SetCustomToken(9003, "Apparament vous avez un probleme d'or, je vais vous regler maintenant!"); iCalcule = iCalcule*(-1); GiveGoldToCreature(oPC, iCalcule); } else if(iCalcule == 0) { SetCustomToken(9003, "Non monsieurs, vous etes parfaitement reglo! Allez zoup du vent!"); } } Voila tout est dans le titre... le serveur c'est pas ce qu'il fait, j'ai un équipement de fou, enfin legit, mais dans mon serv ça pourrait être de fou, mais il me dit qu'il vaut "18 pièce d'or" lol. Enfin dites si il y a un probleme svp, j'en vois pas moi, en plus il se compile.. _________________ [http] |
Revenir en haut | ![]() ![]() ![]() |
Semcatala Grand Sage du Conseil ![]() Messages: 951 |
ok... seulement ton titre il veut rien dire ......
Et si tu nous disais clairement ou ton script est placé , ce qu'il est censé faire et qu'il ne fait pas plutôt que de nous laisser chercher ? Soit clair , si on ne te comprends pas ce sera impossible de te répondre !!! _________________ " La ruse doit être employée pour faire croire que l'on est où l'on est pas, que l'on veut ce qu'on ne veut pas. " CdG " La véritable école du Commandement est la culture générale. " CdG " Une société prête à sacrifier un peu de liberté contre un peu de sécurité ne mérite ni l'une ni l'autre et finit par perdre les deux. " B.F " La gloire se donne seulement à ceux qui l'ont toujours rêvée. " CdG " La fin de l'espoir est le commencement de la mort. " CdG |
Revenir en haut | ![]() ![]() ![]() |
finipe Grand Sage du Conseil ![]() Messages: 519 Localisation: Nantes |
Je ne voudrais pas avoir l'air de m'acharner sur toi Black knight, mais Semcatala a raison : fais un effort stp pour mettre des titres en rapport avec ton problème, et par pitié, fais un effort de lisibilité, d'orthographe, de syntaxe, de grammaire, parce que tes messages donnent pas envie qu'on t'aide, il faut les déchiffrer d'abord...
_________________ » 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 | ![]() ![]() ![]() ![]() |
-MeteZ- Seigneur ![]() Messages: 205 Localisation: Région Parisienne (95) |
Juste, ya plein d'instructions bizzares comme :
NWScript :
OR = OR; Elles ont vraiment un interêt ? _________________ "Ne dit pas affronter les ténèbres celui qui n'a jamais connu la tombée de la nuit." |
Revenir en haut | ![]() ![]() ![]() |
Black Knight Grand Maître Chanteur du Conseil ![]() Messages: 1031 Localisation: Fin fond du trou du cul du monde |
Bon alors je vais tous vous aidé, même si c'est moi le problème ici (hein finipe...) :
Semcatala : Exacte, je sais pas d'ou vient le rapport avec le titre, je devais être bourré ![]() Citation : Et si tu nous disais clairement ou ton script est placé Black Script Citation : object oPC = GetPCSpeaker(); ça reponds pas ça? Dans un dialogue, l'action
Citation : ce qu'il est censé faire il est cencé verifier tout l'or que le PJ a (il compte aussi les items) et doit regarder si il a plus d'or que d'xp, si oui, il retire l'or en trop, sinon, c'est en dessous, il donne de l'or qu'il manque, si c'est egale RAS.
finipe : Citation : Je ne voudrais pas avoir l'air de m'acharner sur toi Black knight J'y crois pas trop...
-MeteZ- Citation : OR = OR; C'est pour que le serveur comprennent que OR n'est pas egale a un autre chiffre que OR (défois si l'on ne met pas ça, ça crée des problèmes, enfin chez moi :s)
Voila ![]() _________________ [http] |
Revenir en haut | ![]() ![]() ![]() |
Semcatala Grand Sage du Conseil ![]() Messages: 951 |
Citation : Black Script ![]() J'ai dû rater un épisode ...... c'est quoi un " Black Script " ? Parceque là ...... Si quelqu'un veut bien m'expliquer ........ ! Black Knight > au fait t'as encore la possibilité de modifier le titre avec le bouton " éditer " il me semble ... ! _________________ " La ruse doit être employée pour faire croire que l'on est où l'on est pas, que l'on veut ce qu'on ne veut pas. " CdG " La véritable école du Commandement est la culture générale. " CdG " Une société prête à sacrifier un peu de liberté contre un peu de sécurité ne mérite ni l'une ni l'autre et finit par perdre les deux. " B.F " La gloire se donne seulement à ceux qui l'ont toujours rêvée. " CdG " La fin de l'espoir est le commencement de la mort. " CdG |
Revenir en haut | ![]() ![]() ![]() |
Fanboy Acolyte Messages: 23 |
tes or = or; ne servent strictement a rien..
une varaible est défini au début suivant sont ype ici intger de type entier donc.. or aura toujouer une valeur et quelques soit la valeur; ton or = or ne fait que dire met ma varaiabbe or avec la valeur que possede ma varaible or.. ce qui ne fera strictemen,t rien changer.. ![]() ![]() pareil pour la : iCalcule = iCalcule; Citation : j'ai un équipement de fou, enfin legit, mais dans mon serv ça pourrait être de fou, mais il me dit qu'il vaut "18 pièce d'or" lol. a aucun moment tu ne calcule déja uniquement la valeur en po de tes item total de ton perso.. déja tu ne regarde que l'inventaire et pas les objet porteé !
ensuite tu dit : int OR = GetGold(oPC); puis dans ta boucle OR = OR + GetGoldPieceValue(oItemcheck); donc déja tu calcul l'or possédé du joueur plus la valuer des item de l'inventaire. a voir que si ton script ne rentrer pas dans ton if OR ne renverra que la valeur des po du joueur.. PS: enfin d'aprés moi tu n'est pas loin d'obtenir ce que tu veut, j'ai pas l'éditeur sous le nez pour d'aier plus.. mais déja ton PJ de teste a t-il des objet dans son invetaire (vu que tu ne regarde pas ce qu'il porte) ? si ca te renvois 18 po comme valeur peut etre que ton script ne rentre pas dans ton IF.. enfin combien a-t-il de PO a la base ton PJ ? tu doit d'abord regarder son argent.. puis regarder si ca te renvois plus de po.. _________________ Kikoo |
Revenir en haut | ![]() ![]() ![]() |
Black Knight Grand Maître Chanteur du Conseil ![]() Messages: 1031 Localisation: Fin fond du trou du cul du monde |
Erf vraiment désolé de vous avoir déranger, mon erreur été du à comme disé Fanboy, je n'avais pas mis le calcule de l'équipement équipé... j'ai oublier un petit copier coller
![]() voila le script il marche bien, il prend l'or, la remer, ou il fait rien ![]() NWScript : #include "nw_i0_plot" void main() { object oPC = GetPCSpeaker(); int XP = GetXP(oPC); int OR = GetGold(oPC); SetCustomToken(9000, IntToString(XP)); OR = OR; object oItemcheck = GetFirstItemInInventory(oPC); while (GetIsObjectValid(oItemcheck)) { if(GetBaseItemType(oItemcheck) != BASE_ITEM_HEALERSKIT && GetBaseItemType(oItemcheck) != BASE_ITEM_ARROW && GetBaseItemType(oItemcheck) != BASE_ITEM_BULLET && GetBaseItemType(oItemcheck) != BASE_ITEM_TRAPKIT && GetBaseItemType(oItemcheck) != BASE_ITEM_BOLT) { OR = OR + GetGoldPieceValue(oItemcheck); } oItemcheck = GetNextItemInInventory(oPC); } OR = OR; int i; for(i=0;i<=13;i++) { if(GetIsObjectValid(GetItemInSlot(i, oPC))) { OR = OR + GetGoldPieceValue(GetItemInSlot(i, oPC)); } } OR = OR; SetCustomToken(9001, IntToString(OR)); SetCustomToken(9002, IntToString(OR-XP)); int iCalcule = OR-XP; if(iCalcule > 0) { SetCustomToken(9003, "Oh! mais que vois-je, vous avez plus d'argent que vous ne devriez en avoir! Je vous les enleve dessuite!"); iCalcule = iCalcule; TakeGold(iCalcule, oPC, TRUE); } else if(iCalcule < 0) { SetCustomToken(9003, "Apparament vous avez un probleme d'or, je vais vous regler maintenant!"); iCalcule = iCalcule*(-1); GiveGoldToCreature(oPC, iCalcule); } else if(iCalcule == 0) { SetCustomToken(9003, "Non monsieurs, vous etes parfaitement reglo! Allez zoup du vent!"); } } _________________ [http] |
Revenir en haut | ![]() ![]() ![]() |
-MeteZ- Seigneur ![]() Messages: 205 Localisation: Région Parisienne (95) |
NWScript : [/quote]
#include "nw_i0_plot" void main() { object oPC = GetPCSpeaker(); int iXP = GetXP(oPC); int iOR = GetGold(oPC); int i = 0; int iCalcule = 0; object oItemcheck = GetFirstItemInInventory(oPC); while (GetIsObjectValid(oItemcheck)) { if(GetBaseItemType(oItemcheck) != BASE_ITEM_HEALERSKIT && GetBaseItemType(oItemcheck) != BASE_ITEM_ARROW && GetBaseItemType(oItemcheck) != BASE_ITEM_BULLET && GetBaseItemType(oItemcheck) != BASE_ITEM_TRAPKIT && GetBaseItemType(oItemcheck) != BASE_ITEM_BOLT) { iOR += GetGoldPieceValue(oItemcheck); } oItemcheck = GetNextItemInInventory(oPC); } for(i=0;i<=13;i++) { if(GetIsObjectValid(GetItemInSlot(i, oPC))) { iOR += GetGoldPieceValue(GetItemInSlot(i, oPC)); } } SetCustomToken(9001, IntToString(iOR)); SetCustomToken(9002, IntToString(iOR - iXP)); iCalcule = (iOR - iXP); if(iCalcule > 0) { SetCustomToken(9003, "Oh! mais que vois-je, vous avez plus d'argent que vous ne devriez en avoir! Je vous les enleve dessuite!"); TakeGold(iCalcule, oPC, TRUE); } else if(iCalcule < 0) { SetCustomToken(9003, "Apparament vous avez un probleme d'or, je vais vous regler maintenant!"); iCalcule *= (-1); GiveGoldToCreature(oPC, iCalcule); } else if(iCalcule == 0) { SetCustomToken(9003, "Non monsieurs, vous etes parfaitement reglo! Allez zoup du vent!"); } } Je trouve que le code est bien mieux identer comme ca ![]() Sinon j'ai enlevé les OR = OR; parce que ca sert à rien, c'est pas possible que ca ne marche pas sans. Sinon c'est que le code est pas bon. _________________ "Ne dit pas affronter les ténèbres celui qui n'a jamais connu la tombée de la nuit." |
Revenir en haut | ![]() ![]() ![]() |
Black Knight Grand Maître Chanteur du Conseil ![]() Messages: 1031 Localisation: Fin fond du trou du cul du monde |
C'pas possible qu'il marche, lol, t'as une erreur :
Citation : iCalcule *= (-1); ou c'est normal? ![]() Black _________________ [http] |
Revenir en haut | ![]() ![]() ![]() |
-MeteZ- Seigneur ![]() Messages: 205 Localisation: Région Parisienne (95) |
Enfaite nwscript adopte la même synthaxe que du C, donc ca marche :
NWScript :
int iNombre = 0; iNombre = iNombre + 5 // iNombre vaudra 0 + 5 = 5 iNombre = 0; iNombre += 7; iNombre += 0; // vaudra 7 iNombre -= 2; // vaudra 5 iNombre *= 10; // vaudra 50 iNombre /= 2; // vaudra 25 iNombre %= 5; Enfin bon je suis d'accord que c'est pas trop courant que les scripteurs utilisent ces raccourcis, mais bon perso. et vu ma paresse je les utilisent tout le temps ![]() _________________ "Ne dit pas affronter les ténèbres celui qui n'a jamais connu la tombée de la nuit." |
Revenir en haut | ![]() ![]() ![]() |


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