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 15:09: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 |
Harès Novice Messages: 6 |
Salut a vous voila je sui pas le premier a vous le dire : Je suis une quiche en Script...
Mais bon voila comme je passe des heures devant les pages de ce forum pour trouver des scripts qui m'interessent, je me suis dit : " Pourquoi je vais pas poster un message..?" Donc voila en faite j'aurais besoin de vous pour mettre 2 scripts ensemble...j'ai vus quelque sujets deja la-dessus mais je pense qu'il faut a chaque fois un solution pour chaque script : Voila j'ai placé ce script ANTI-DUPLIK qui fonctionne a merveille dans le OnClientEnter de mon module Code : #include "nw_i0_plot"
void DestroyItems(object oPC, string sItem) { if(HasItem(oPC, sItem) == TRUE) { DestroyObject(GetItemPossessedBy(oPC, sItem)); SendMessageToPC(oPC, "Um dos seus itens foi destruido pois era fruto de trapaca"); } } void main() { object oPC = GetEnteringObject(); if (GetCampaignInt("Hermes", "WAS_CRAFTING", oPC) == TRUE) { string sCraftedItem = GetCampaignString("Hermes", "CRAFT_OBJECT", oPC); DestroyItems(oPC, sCraftedItem); string sName = GetName(oPC); string sCDKEY = GetPCPublicCDKey(oPC); SendMessageToAllDMs("ATENCAO!!! O jogador "+sName+" CDKEY "+sCDKEY+" esta tentando duplicar um item!!"); WriteTimestampedLogEntry("ATENCAO!!! O jogador "+sName+" CDKEY "+sCDKEY+" esta tentando duplicar um item!!"); DeleteCampaignVariable("Hermes", "WAS_CRAFTING", oPC); DeleteCampaignVariable("Hermes", "CRAFT_OBJECT", oPC); } } Mais voila le script qui etait avant ne fonctionne plus (normal je l'ai remplacé). Code : //le paillasson du bouchon
object oPC = GetEnteringObject(); void main() { ExecuteScript("ats_client_enter", GetModule()); if (!GetIsDM (oPC)) { if(GetItemPossessedBy(oPC,"mort")!=OBJECT_INVALID) { effect eDeath = EffectDeath(FALSE, FALSE); ApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, oPC); DestroyObject( GetItemPossessedBy(oPC,"mort")); return; } else { string PCName = GetName(oPC); // if (GetArea(oPC)!=GetAreaFromLocation(GetStartingLocation())) // { int MaxHP = GetMaxHitPoints(oPC); int Damage = GetLocalInt(GetModule(),GetName(oPC)+GetPCPublicCDKey(oPC)+"Damages"); if (MaxHP<Damage) // Normalement, aurait du arriver avec carte de mort: probablement un tricheur => punition exemplaire ! { int nXP = GetXP(oPC); int nPenalty = 100 * GetHitDice(oPC); int nHD = GetHitDice(oPC); // * 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(oPC, nNewXP); int nGoldToTake = FloatToInt(0.20 * GetGold(oPC)); AssignCommand(oPC, TakeGoldFromCreature(nGoldToTake, oPC, TRUE)); SendMessageToAllDMs(GetName(oPC)+" a ete puni pour avoir essaye de tricher avec la mort !"); WriteTimestampedLogEntry(GetName(oPC)+"(CDkey:"+GetPCPublicCDKey(oPC)+") a ete puni pour avoir essaye de tricher avec la mort !"); DelayCommand(4.0, FloatingTextStringOnCreature(GetName(oPC)+" regrette amerement d'avoir essaye de tricher avec la mort !", oPC, TRUE)); } effect eDamage = EffectDamage(Damage, DAMAGE_TYPE_MAGICAL, DAMAGE_POWER_PLUS_FIVE); ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oPC); SetLocalInt(GetModule(),GetName(oPC)+GetPCPublicCDKey(oPC)+"Damages",0); WriteTimestampedLogEntry(GetName(oPC) + " doit subire " + IntToString(Damage) + " / " + IntToString(GetMaxHitPoints(oPC)) + " =>> Sante=" + IntToString(GetCurrentHitPoints(oPC))); return; // } } } } Donc si vous pouvez me donner le resuslat de ces 2 scripts ensemble sa serait trop simpa.... Merci a vous Dernière édition par Harès le 12/10/2005 12:32:45; édité 3 fois
|
Revenir en haut | |
Djezebel Héros Messages: 252 |
Heuuu ce sont les deux mêmes scripts...
|
Revenir en haut | |
Harès Novice Messages: 6 |
Mdrrr mais comme je sui bidon...
Voila c'est rectifier. Merci de me l'avoir dit ^^ |
Revenir en haut | |
Djezebel Héros Messages: 252 |
C'est étrange, rien que pour le premier script, je n'arrive pas à le compiler.
Ca me met à la première ligne (au ##include "nw_i0_plot" ) : Citation : teste1.nss(1): ERREUR : ELLIPSIS IN IDENTIFIER Donc... est-ce que ça viendrait de là ? |
Revenir en haut | |
Harès Novice Messages: 6 |
J'ai relus et il y a une erreur evidament : il n'y a que un seul # voila petite erreur de copier/coler....tu peux ressayer maintenant ?
|
Revenir en haut | |
Djezebel Héros Messages: 252 |
Je ne sais pas si ça va marcher comme tu veux, mais au moins chez moi ça compile
NWScript :
#include "nw_i0_plot" void DestroyItems(object oPC, string sItem) { if(HasItem(oPC, sItem) == TRUE) { DestroyObject(GetItemPossessedBy(oPC, sItem)); SendMessageToPC(oPC, "Um dos seus itens foi destruido pois era fruto de trapaca"); } } object oPC = GetEnteringObject(); void main() { object oPC = GetEnteringObject(); if (GetCampaignInt("Hermes", "WAS_CRAFTING", oPC) == TRUE) { string sCraftedItem = GetCampaignString("Hermes", "CRAFT_OBJECT", oPC); DestroyItems(oPC, sCraftedItem); string sName = GetName(oPC); string sCDKEY = GetPCPublicCDKey(oPC); SendMessageToAllDMs("ATENCAO!!! O jogador "+sName+" CDKEY "+sCDKEY+" esta tentando duplicar um item!!"); WriteTimestampedLogEntry("ATENCAO!!! O jogador "+sName+" CDKEY "+sCDKEY+" esta tentando duplicar um item!!"); DeleteCampaignVariable("Hermes", "WAS_CRAFTING", oPC); DeleteCampaignVariable("Hermes", "CRAFT_OBJECT", oPC); } ExecuteScript("ats_client_enter", GetModule()); if (!GetIsDM (oPC)) { if(GetItemPossessedBy(oPC,"mort")!=OBJECT_INVALID) { effect eDeath = EffectDeath(FALSE, FALSE); ApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, oPC); DestroyObject( GetItemPossessedBy(oPC,"mort")); return; } else { string PCName = GetName(oPC); // if (GetArea(oPC)!=GetAreaFromLoca tion(GetStartingLocation())) // { int MaxHP = GetMaxHitPoints(oPC); int Damage = GetLocalInt(GetModule(),GetName(oPC)+GetPCPublicCDKey(oPC)+"Damages"); if (MaxHP<Damage) // Normalement, aurait du arriver avec carte de mort: probablement un tricheur => punition exemplaire ! { int nXP = GetXP(oPC); int nPenalty = 100 * GetHitDice(oPC); int nHD = GetHitDice(oPC); // * 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(oPC, nNewXP); int nGoldToTake = FloatToInt(0.20 * GetGold(oPC)); AssignCommand(oPC, TakeGoldFromCreature(nGoldToTake, oPC, TRUE)); SendMessageToAllDMs(GetName(oPC)+" a ete puni pour avoir essaye de tricher avec la mort !"); WriteTimestampedLogEntry(GetName(oPC)+"(CDkey:"+GetPCPublicCDKey(oPC)+") a ete puni pour avoir essaye de tricher avec la mort !"); DelayCommand(4.0, FloatingTextStringOnCreature(GetName(oPC)+" regrette amerement d'avoir essaye de tricher avec la mort !", oPC, TRUE)); } effect eDamage = EffectDamage(Damage, DAMAGE_TYPE_MAGICAL, DAMAGE_POWER_PLUS_FIVE); ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oPC); SetLocalInt(GetModule(),GetName(oPC)+GetPCPublicCDKey(oPC)+"Damages",0); WriteTimestampedLogEntry(GetName(oPC) + " doit subire " + IntToString(Damage) + " / " + IntToString(GetMaxHitPoints(oPC)) + " =>> Sante=" + IntToString(GetCurrentHitPoints(oPC))); return; // } } } } Le problème venait que tu avais dans les deux scripts : void main() { Action 1 } void main() { Action 2 } Donc ton script ne savait pas lequel prendre. (C'est comme si on te dit : "Bon, si je dis "main" tu te gratte le nez et si je dis "main", tu lèves la jambe. Tu ne sais pas trop quoi faire (bon, ok tu es plus intelligent qu'un ordi mais bon ")) Donc en fait, il suffit de faire : void main() { Action 1 Action 2 } Voilà pour l'explication, je ne sais pas si ça va marcher cette fois mais bon, apparement pas d'erreur. |
Revenir en haut | |
Harès Novice Messages: 6 |
Okay trop simpa Merci...je vais tester.
|
Revenir en haut | |
Dorian Novice Messages: 19 |
Djezebel a écrit : Je ne sais pas si ça va marcher comme tu veux, mais au moins chez moi ça compile Ouais je t'ai battu mdr avec 2h d'avance ^^.
Bon on est arrivé à la même chose et à priori sa doit marcher impec même si je n'ai pas fait les tests ^^. Moi au moins j'ai traduit les truc en espagnol et "éclairci" le code ^^. PS : ne pas prendre mon message sérieusement même si c'est vrai ^^ |
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