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:19:49
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... faut dire je sortait du boulot quand j'ai posté....bon ben desolé, et 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 |
Pas de soucis ! t'es pas le seul a faire des bourdes , pour ça , on est tous en premiére ligne ! :
_________________ " 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 | |
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