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







La date/heure actuelle est 30/04/2025 22:54:55
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 |
sylveran Ecuyer ![]() Messages: 57 Localisation: dijon |
Bonjour à tous,
voila j'ai créé une zone ou les joueurs se retrouve apres une mort de leur perso (appelé purgatoire) Une fois dans cette zone j'aimerais qu'ils puissent choisir de revenir sur le module pour continuer à jouer ou bien s'ils le prefere, faire mourir leur perso pour toujours J'ai bien fait le scrypt pour les faires revenir dans le jeu mais par contre la ou je but c'est trouver un scrypt pour qu'ils aient une mort definitive de leur perso Est-ce quelqu'un aurait ce genre de srcypt en magasin s'il vous plait se serait bien simpa ![]() _________________ |
Revenir en haut | ![]() ![]() ![]() |
Laxam Légende vivante ![]() Messages: 425 Localisation: Lyon |
Je n'ai pas de script tout fait, mais tu pourrais mettre une variable à TRUE s'il décide de mourrir puis lui faire des dommages très importants (pour être sûr de le faire mourrir) et dans le OnDeath, si la variable est à TRUE tu ne le téléportes pas dans la zone dont tu as parlée et si elle est pas à TRUE et bien il est téléporté.
simple non ? ![]() _________________ Mon site NWN nouvelle version et mon module Boisperdu en ligne ! Et maintenant un FORUM La première version française de la doc du NPC Activities (version 2.0) ![]() |
Revenir en haut | ![]() ![]() ![]() ![]() |
sylveran Ecuyer ![]() Messages: 57 Localisation: dijon |
|
Revenir en haut | ![]() ![]() ![]() |
finipe Grand Sage du Conseil ![]() Messages: 519 Localisation: Nantes |
Y a pas plus simple
![]() _________________ » 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 | ![]() ![]() ![]() ![]() |
Devilon Bersek Ecuyer ![]() Messages: 59 Localisation: Certainement dans une forge...sinon a Beaune |
salut, bon, j'ai trouvé un plan pour la mort definitive, enfin ça y ressemble ^^
en fait j'ai mis sur les flammes un sort de mort, de quoi enlever 999 999 XP et tous les po, par contre, le PJ garde ses armes et armures... vous connaitriez un moyen de TOUT retirer au PJ ? merci d'avance ![]() _________________ Rien n'est grave dans la vie...sauf de la perdre... Chroniques des Royaumes Perdus : [http] |
Revenir en haut | ![]() ![]() ![]() |
sylveran Ecuyer ![]() Messages: 57 Localisation: dijon |
tiens j'ai pensé à sa mais le probleme c'est que dans se scrypt tu est obligé de mettre le tag de tous les items armes de plus je ne l'ais pas essayé sinon j'ai pas mieux
NWScript : void RemoveXPFromParty(int nXP, object oPC, int bAllParty=TRUE) { if (!bAllParty) { nXP=(GetXP(oPC)-nXP)>=0 ? GetXP(oPC)-nXP : 0; SetXP(oPC, nXP); } else { object oMember=GetFirstFactionMember(oPC, TRUE); while (GetIsObjectValid(oMember)) { nXP=(GetXP(oMember)-nXP)>=0 ? GetXP(oMember)-nXP : 0; SetXP(oMember, nXP); oMember=GetNextFactionMember(oPC, TRUE); } } } void main() { object oPC = GetPCItemLastUnequippedBy(); object oItem; oItem = GetPCItemLastUnequipped(); if (!GetIsPC(oPC)) return; if (GetLocalInt(oPC, "ueq_"+GetTag(oItem))) return; SetLocalInt(oPC, "ueq_"+GetTag(oItem), TRUE); RemoveXPFromParty(999999, oPC, FALSE); oItem = GetItemPossessedBy(oPC, "(les armes)"); if (GetIsObjectValid(oItem)) DestroyObject(oItem); AssignCommand(oPC, TakeGoldFromCreature(999999, oPC, TRUE)); RemoveXPFromParty(999999, oPC, FALSE); oItem = GetItemPossessedBy(oPC, "(le tag de tous les items de l'editeur"); if (GetIsObjectValid(oItem)) DestroyObject(oItem); AssignCommand(oPC, TakeGoldFromCreature(999999, oPC, TRUE)); RemoveXPFromParty(1, oPC, FALSE); AssignCommand(oPC, TakeGoldFromCreature(1, oPC, TRUE)); RemoveXPFromParty(999999, oPC, FALSE); oItem = GetItemPossessedBy(oPC, "(tag de tous les items de l'editeur)"); if (GetIsObjectValid(oItem)) DestroyObject(oItem); AssignCommand(oPC, TakeGoldFromCreature(999999, oPC, TRUE)); } _________________ Dernière édition par sylveran le 23/09/2004 18:02:42; édité 3 fois
|
Revenir en haut | ![]() ![]() ![]() |
Devilon Bersek Ecuyer ![]() Messages: 59 Localisation: Certainement dans une forge...sinon a Beaune |
bon, merci syl mais j'avais deja pensé a ça...le probleme c'est que mettre tous les tag, ça en fait un paquet...
pour les scripts, met [ nwscript ] avant ton code et [ /nwscript ] pour fermer (en enlevant les espaces entre les [ ] )... voilà ^^ _________________ Rien n'est grave dans la vie...sauf de la perdre... Chroniques des Royaumes Perdus : [http] |
Revenir en haut | ![]() ![]() ![]() |
Semcatala Grand Sage du Conseil ![]() Messages: 951 |
Salut !
J'ai bien une idée , a mon retour chez moi , dés que j'ai le temps , je vais essayer de me pencher la dessus pour pouvoir essayer de t'aider. @+ _________________ " 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 | ![]() ![]() ![]() |
Semcatala Grand Sage du Conseil ![]() Messages: 951 |
voila ce que je te propose :
a mettre dans le " on enter " du module : Citation : void main() { object oPC = GetEnteringObject(); effect eVis = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE); effect eDeath = EffectDeath(); int balise_mort_definitive = GetCampaignInt("nom_de_ton_module","mort_defintive",oPC); if(balise_mort_definitive==TRUE) { ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC); ApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, oPC); SendMessageToPC(oPC," "); SendMessageToPC(oPC," "); SendMessageToPC(oPC,"Vous etes MORT pour toujours !"); SendMessageToPC(oPC," "); SendMessageToPC(oPC," "); } } Citation : void main() { object oPC = GetPCSpeaker(); effect eVis = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE); effect eDeath = EffectDeath(); DelayCommand(2.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC)); DelayCommand(3.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, oPC)); SetCampaignInt("nom_de_ton_module","mort_defintive",TRUE,oPC); SendMessageToPC(oPC," "); SendMessageToPC(oPC," "); SendMessageToPC(oPC,"Vous etes MORT pour toujours !"); SendMessageToPC(oPC," "); SendMessageToPC(oPC," "); } Citation : DelayCommand(2.5, PopUpGUIPanel(oPlayer,GUI_PANEL_PLAYER_DEATH)); Citation : int balise_mort_definitive = GetCampaignInt("nom_de_ton_module","mort_defintive",oPlayer); if(balise_mort_definitive==TRUE) return; DelayCommand(2.5, PopUpGUIPanel(oPlayer,GUI_PANEL_PLAYER_DEATH)); ![]() les données des persos qui sont morts et vivants seront stockés dans le dossier " database " dans tes fichiers , n'oublie pas de les sauvegarder si tu doit réinstaller nwn ! ![]() _________________ " 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 | ![]() ![]() ![]() |
Devilon Bersek Ecuyer ![]() Messages: 59 Localisation: Certainement dans une forge...sinon a Beaune |
ok, merci, seulement, il choisi pas par le dialogue, en fait il va cliquer sur des flammes, qui le tuent...donc le morceau que je devais mettre dans action consequente, je le mets a la suite de mon script onUsed des flammes ?
merci d'avance _________________ Rien n'est grave dans la vie...sauf de la perdre... Chroniques des Royaumes Perdus : [http] |
Revenir en haut | ![]() ![]() ![]() |
Devilon Bersek Ecuyer ![]() Messages: 59 Localisation: Certainement dans une forge...sinon a Beaune |
au fait, je demanderais bien autre chose...
quand mon perso prends le portail pour "retourner a la vie", je voudrais que ça lui retire une proportion des ses xp et de ses po, moi je sais faire qu'avec une somme fixe, c pas top, je voudrais par exemple 10% de ses PO et pour les xp, je sais pas trop ce qui se pratique sur les modules en general... voilà, merci d'avance....et j'attends toujours une reponse pour le script d'avant ! lol ![]() _________________ Rien n'est grave dans la vie...sauf de la perdre... Chroniques des Royaumes Perdus : [http] |
Revenir en haut | ![]() ![]() ![]() |
Laxam Légende vivante ![]() Messages: 425 Localisation: Lyon |
J'ai pas trop suivi pour les script d'avant je ne vais donc pas te répondre par contre pour ton nouveau problème, à mon avis, il suffit de récupérer le nombre de XP et de pièces d'or du PJ et de calculer leurs nouvelles valeurs du genre
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. _________________ Mon site NWN nouvelle version et mon module Boisperdu en ligne ! Et maintenant un FORUM La première version française de la doc du NPC Activities (version 2.0) ![]() |
Revenir en haut | ![]() ![]() ![]() ![]() |
Devilon Bersek Ecuyer ![]() Messages: 59 Localisation: Certainement dans une forge...sinon a Beaune |
ok, merci beaucoup
![]() _________________ Rien n'est grave dans la vie...sauf de la perdre... Chroniques des Royaumes Perdus : [http] |
Revenir en haut | ![]() ![]() ![]() |
Semcatala Grand Sage du Conseil ![]() Messages: 951 |
oui , pour te répondre par rapoort a mes scripts , tu n'a qu'a les utiliser comme je t'ai dit , sauf que celui qui devait aller dans le " action conséquente " , tu le met dans le "on used" de tes flammes , et a la place de "getpcspeaker" , tu met "getlastusedby" !
En principe , ça devrais bien marcher ! _________________ " 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 | ![]() ![]() ![]() |
Devilon Bersek Ecuyer ![]() Messages: 59 Localisation: Certainement dans une forge...sinon a Beaune |
ok, merci , par contre comme je le craignais, si je mets getlastusedby, il me met une erreur, vu que je l'ai deja utilisé. comment faire ? je sais pas fusionner plusieurs scripts, mais peut-etre que ça resoudrais pas le conflit....
desolé de vous ennuyer encore... ![]() je vous mets mon script au cas où... NWScript :
void RemoveXPFromParty(int nXP, object oPC, int bAllParty=TRUE) { if (!bAllParty) { nXP=(GetXP(oPC)-nXP)>=0 ? GetXP(oPC)-nXP : 0; SetXP(oPC, nXP); } else { object oMember=GetFirstFactionMember(oPC, TRUE); while (GetIsObjectValid(oMember)) { nXP=(GetXP(oMember)-nXP)>=0 ? GetXP(oMember)-nXP : 0; SetXP(oMember, nXP); oMember=GetNextFactionMember(oPC, TRUE); } } } void main() { object oPC = GetLastUsedBy(); if (!GetIsPC(oPC)) return; object oTarget; oTarget = oPC; effect eEffect; eEffect = EffectDeath(); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget); RemoveXPFromParty(999999, oPC, FALSE); int nInt; nInt=GetGold(oPC); AssignCommand(oPC, TakeGoldFromCreature(nInt, oPC, TRUE)); } pour laxam, j'ai mis avec GetFirstPC(), mais im me met une erreur sur 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.
PARSING VARIABLE LIST...il me met la meme chose pour la ligne des po...j'avais jamais eu ce defaut....desolé, je suis lourd ![]() voilà, sinon, pour les autres scripts, ils sont bien compilés... merci d'avance _________________ Rien n'est grave dans la vie...sauf de la perdre... Chroniques des Royaumes Perdus : [http] |
Revenir en haut | ![]() ![]() ![]() |
Semcatala Grand Sage du Conseil ![]() Messages: 951 |
Pour intégrer un script dans un autre , même si tu as déja mis " getlastusedby " , il suffit de ajouter des { } :
Par exemle avec ton script , ça donnerais : NWScript :
void RemoveXPFromParty(int nXP, object oPC, int bAllParty=TRUE) { if (!bAllParty) { nXP=(GetXP(oPC)-nXP)>=0 ? GetXP(oPC)-nXP : 0; SetXP(oPC, nXP); } else { object oMember=GetFirstFactionMember(oPC, TRUE); while (GetIsObjectValid(oMember)) { nXP=(GetXP(oMember)-nXP)>=0 ? GetXP(oMember)-nXP : 0; SetXP(oMember, nXP); oMember=GetNextFactionMember(oPC, TRUE); } } } void main() { object oPC = GetLastUsedBy(); if (!GetIsPC(oPC)) return; object oTarget; oTarget = oPC; effect eEffect; eEffect = EffectDeath(); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget); RemoveXPFromParty(999999, oPC, FALSE); int nInt; nInt=GetGold(oPC); AssignCommand(oPC, TakeGoldFromCreature(nInt, oPC, TRUE)); { object oPC = GetLastUsedBy(); effect eVis = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE); effect eDeath = EffectDeath(); DelayCommand(2.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC)); DelayCommand(3.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, oPC)); SetCampaignInt("nom_de_ton_module","mort_defintive",TRUE,oPC); SendMessageToPC(oPC," "); SendMessageToPC(oPC," "); SendMessageToPC(oPC,"Vous etes MORT pour toujours !"); SendMessageToPC(oPC," "); SendMessageToPC(oPC," "); } } Sinon , voici ton script modifié et propre : NWScript : void RemoveXPFromParty(int nXP, object oPC, int bAllParty=TRUE) { if (!bAllParty) { nXP=(GetXP(oPC)-nXP)>=0 ? GetXP(oPC)-nXP : 0; SetXP(oPC, nXP); } else { object oMember=GetFirstFactionMember(oPC, TRUE); while (GetIsObjectValid(oMember)) { nXP=(GetXP(oMember)-nXP)>=0 ? GetXP(oMember)-nXP : 0; SetXP(oMember, nXP); oMember=GetNextFactionMember(oPC, TRUE); } } } void main() { object oPC = GetLastUsedBy(); effect eVis = EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE); effect eDeath = EffectDeath(); if (!GetIsPC(oPC)) return; DelayCommand(2.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC)); DelayCommand(3.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, oPC)); SetCampaignInt("nom_de_ton_module","mort_defintive",TRUE,oPC); SendMessageToPC(oPC," "); SendMessageToPC(oPC," "); SendMessageToPC(oPC,"Vous etes MORT pour toujours !"); SendMessageToPC(oPC," "); SendMessageToPC(oPC," "); RemoveXPFromParty(999999, oPC, FALSE); int nInt = GetGold(oPC); AssignCommand(oPC, TakeGoldFromCreature(nInt, oPC, TRUE)); } _________________ " 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 | ![]() ![]() ![]() |
Devilon Bersek Ecuyer ![]() Messages: 59 Localisation: Certainement dans une forge...sinon a Beaune |
ouah, je suis vraiment trop c.., j'aurais du reflechir plus longtemps...
![]() ![]() _________________ Rien n'est grave dans la vie...sauf de la perdre... Chroniques des Royaumes Perdus : [http] |
Revenir en haut | ![]() ![]() ![]() |
Semcatala Grand Sage du Conseil ![]() Messages: 951 |
Pas de soucis !
![]() ![]() ![]() ![]() _________________ " 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 | ![]() ![]() ![]() |
sylveran Ecuyer ![]() Messages: 57 Localisation: dijon |
|
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