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 08:10:42
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 |
Escaflown3 Novice Messages: 11 |
Bonjour a tous
Voila j'aimeai savoir si quequ'un pouvai m'aider Il me faudrai un script qui donne l'effet au PJ (apres avoir consomer un objet que j'ai cree) d'etre droguer et pour sa mon idee c'etai de lui mettre un sort de lenteur, de CA diminuer et d'inteligence decrue Voila etant nul meme plus que nul en script, j'attent un aide et en ayant fait le tour du forum j'ai pu y voir des tete PS : le script serai a mettre dans l'objet mais ou ? Merci d'avance pour votre aide |
Revenir en haut | |
Escaflown3 Novice Messages: 11 |
Humm enfaite pour faire plus simple il me faudrai un script a mettre (je pense) dans le OnUsed de l'objet et qui quand on utilise l'objet il nous mais un sort de lenteur, baisse le Ca et l'intelligence.
J'ai fait des recherches pour que l'on s'affect de ses sort mais rien Merci pour votre aide a venir |
Revenir en haut | |
Albator003 Invité |
Salutations,
Pour ton objet de drogue en passant par le OnActivatedItem du modul ca serai le plus simple Dans les propriété de ton module tu ouvre le OnActivatedItem et tu y met ca NWScript :
void main() { object oPC = GetItemActivator();//on regarde qui utilise l'objet object oItem = GetItemActivated();//on regarde ce qu'est l'objet utiliser if(GetTag(oItem)=="tagdetonobjet")//l'objet utiliser est la drogue {//on applique des effets qui sont modiafible le chiffre entre () c la diminution l'autre chiffre c'est la durer(en seconde) ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAbilityDecrease(ABILITY_INTELLIGENCE, 4), oPC, 60.0); //on applique des effets ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectMovementSpeedDecrease(80), oPC, 60.0); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAttackDecrease(5), oPC, 60.0); } } En suite tu crée ton item(objet d'inventaire) et tu lui donne comme tag celui que tu a mis dans le script de faàon a ce que l'objet soit reconnu dans le script ensuite tu va dans les propriété de l'objet et tu lui met Lancer sors - Pouvoir unique sur soi meme tu enregistre le tout et ta plus qu'a tester. Biensur ajoute autant d'effet que tu veux comme des effet visuel qui peuvent bien rendre |
Revenir en haut | |
Escaflown3 Novice Messages: 11 |
Genial albator003 et merci
J'essaye sa desuite et Et encore merci pour tout C'est bien de trouver des gens comme vous qui sont la pour aider et non envoyer chier |
Revenir en haut | |
Escaflown3 Novice Messages: 11 |
Ohh merci c vraiment cool niveaux effet physique c'est exactement ce qu'il me fallai merci
J'ai vu que tu m'avai rajouter un effet attaque acrue merci c'est cool ; Par contre comme effet visuel j'aurai penser a une truc : - Il titube apres l'utilisation (comme dans les emotes) Si tu a une autre idee je suis ouvert albator003 Merci encore |
Revenir en haut | |
Albator003 Invité |
pour l'animation tituber ajoute cette ligne
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. Je l'ai faite vite fais mais normalement ca devrai marcher |
Revenir en haut | |
Escaflown3 Novice Messages: 11 |
Parfait merci
Je voudrai rajouter du dialogue avec ses ligne : 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. Mais j'ai essaye de l'integrer au script existant mais sa ne marche pas (normale je suis archi trop nul en scritp ) Voila ce que j'ai fait : NWScript : void main() { object oPC = GetItemActivator();//on regarde qui utilise l'objet object oItem = GetItemActivated();//on regarde ce qu'est l'objet utiliser if(GetTag(oItem)=="10000")//le tag de l'objet donnant les effets {//on applique des effets qui sont modiafible le chiffre entre () c la diminution l'autre chiffre c'est la durer(en seconde) ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAbilityDecrease(ABILITY_INTELLIGENCE, 4), oPC, 60.0); //on applique des effets ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectMovementSpeedDecrease(80), oPC, 60.0); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAttackDecrease(6), oPC, 60.0); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectACDecrease(10), oPC, 60.0); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectPoison(19), oPC, 60.0); AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK,1.0,10.0)); ActionSpeakString("un text au hazard"); ActionWait(2.5); ActionSpeakString("un text au hazard"); } } |
Revenir en haut | |
Albator003 Invité |
Pour ajouter un dialogue comme celui la il faut définir qui doit parler donc il manque un AssignCommand,et pour le action wait vaudrai mieux mettre un delay command pour que le 2eme texte soit dis plus tard (a mon avis c'est ce que ta voulut faire
ca donnerai ça NWScript : AssignCommand(oPC,ActionSpeakString("un text au hazard")); DelayCommand(2.5,AssignCommand(oPC,ActionSpeakString("un text au hazard"))); |
Revenir en haut | |
Escaflown3 Novice Messages: 11 |
Oui lol c'est exactement ce que je voulai faire merci
Sinon je voulai faire quelque chose c'est de rajouter cette effet mais a plusieur objet que j'ai cree mais sa marche pas voila ce que j'ai fait : NWScript :
void main() { object oPC = GetItemActivator();//on regarde qui utilise l'objet object oItem = GetItemActivated();//on regarde ce qu'est l'objet utiliser if(GetTag(oItem)=="10000, 20000, 40000")//le tag de l'objet donnant les effets {//on applique des effets qui sont modiafible le chiffre entre () c la diminution l'autre chiffre c'est la durer(en seconde) ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAbilityDecrease(ABILITY_INTELLIGENCE, 4), oPC, 60.0); //on applique des effets ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectMovementSpeedDecrease(80), oPC, 60.0); //effet de lenteur ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAttackDecrease(6), oPC, 60.0); //Attaque decrue ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectACDecrease(10), oPC, 60.0); //CA decrue ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectPoison(19), oPC, 60.0); //Effet de poisson (voir si l'on resiste ou non) AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK,1.0,10.0)); //Tituber avec consommation AssignCommand(oPC,ActionSpeakString("*Fume la substence*")); //Text que dit le PN DelayCommand(2.5,AssignCommand(oPC,ActionSpeakString("Ouahhh...*sourit* c'est de la bonnne.... yo man"))); //Text que dit le PN } } PS : lol le texte ) Voila et sa ne marche pas et je veut que pour seulement le tag "40000" il dorme pendant quelque temps Je pense que c un AssignCommand le meme que pour tituber mais je connait pas Voila et encore un grnad merci a toit albator003 |
Revenir en haut | |
Albator003 Invité |
Dans ce cas voila ce que ça donnerai.
NWScript : void main() { object oPC = GetItemActivator();//on regarde qui utilise l'objet object oItem = GetItemActivated();//on regarde ce qu'est l'objet utiliser if(GetTag(oItem)=="10000")//le tag de l'objet donnant les effets {//on applique des effets qui sont modiafible le chiffre entre () c la diminution l'autre chiffre c'est la durer(en seconde) ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAbilityDecrease(ABILITY_INTELLIGENCE, 4), oPC, 60.0); //on applique des effets ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectMovementSpeedDecrease(80), oPC, 60.0); //effet de lenteur ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAttackDecrease(6), oPC, 60.0); //Attaque decrue ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectACDecrease(10), oPC, 60.0); //CA decrue ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectPoison(19), oPC, 60.0); //Effet de poisson (voir si l'on resiste ou non) AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK,1.0,10.0)); //Tituber avec consommation AssignCommand(oPC,ActionSpeakString("*Fume la substence*")); //Text que dit le PN DelayCommand(2.5,AssignCommand(oPC,ActionSpeakString("Ouahhh...*sourit* c'est de la bonnne.... yo man"))); //Text que dit le PN } if(GetTag(oItem)=="20000")//le tag de l'objet donnant les effets {//on applique des effets qui sont modiafible le chiffre entre () c la diminution l'autre chiffre c'est la durer(en seconde) ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAbilityDecrease(ABILITY_INTELLIGENCE, 4), oPC, 60.0); //on applique des effets ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectMovementSpeedDecrease(80), oPC, 60.0); //effet de lenteur ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAttackDecrease(6), oPC, 60.0); //Attaque decrue ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectACDecrease(10), oPC, 60.0); //CA decrue ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectPoison(19), oPC, 60.0); //Effet de poisson (voir si l'on resiste ou non) AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK,1.0,10.0)); //Tituber avec consommation AssignCommand(oPC,ActionSpeakString("*Fume la substence*")); //Text que dit le PN DelayCommand(2.5,AssignCommand(oPC,ActionSpeakString("Ouahhh...*sourit* c'est de la bonnne.... yo man"))); //Text que dit le PN } if(GetTag(oItem)=="40000")//le tag de l'objet donnant les effets {//on applique des effets qui sont modiafible le chiffre entre () c la diminution l'autre chiffre c'est la durer(en seconde) effect eEff = EffectVisualEffect(VFX_IMP_SLEEP); // on definie l'effet dodo ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAbilityDecrease(ABILITY_INTELLIGENCE, 4), oPC, 60.0); //on applique des effets ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectMovementSpeedDecrease(80), oPC, 60.0); //effet de lenteur ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAttackDecrease(6), oPC, 60.0); //Attaque decrue ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectACDecrease(10), oPC, 60.0); //CA decrue ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectPoison(19), oPC, 60.0); //Effet de poisson (voir si l'on resiste ou non) AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK,1.0,10.0)); //Tituber avec consommation AssignCommand(oPC,ActionSpeakString("*Fume la substence*")); //Text que dit le PN DelayCommand(2.5,AssignCommand(oPC,ActionSpeakString("Ouahhh...*sourit* c'est de la bonnne.... yo man"))); //Text que dit le PN DelayCommand(3.0,AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT, 1.0, 8.0)));//on fais allonger le PJ DelayCommand(3.5,ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEff, oPC, 4.0));// On lui donne un effet (dormir) } } |
Revenir en haut | |
olfleouf Acolyte Messages: 35 |
Et bien d'après ce que je voie c'est cette ligne qui est fausse :
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. D'après ce que je comprends tu veux que ca se déclenche si le tag est 10000, 20000, où 40000. Malheuresement ce n'est pas ce que tu as mit en script Les virgules tels que tu les as mit sont inutiles, et je dirais même encore pire, empêche le script de fonctionner. Pour faire un "ou" dans une condition, il faut utilise ca : ||, ce qui donne dans le script ca : 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.
Il doit exister une façon plus harmonieuse de faire ca, mais je sais qu'ainsi ca devrait fonctionner. _________________ Arkanis, forum jeux de rôle dungeons et dragons 3.5 |
Revenir en haut | |
Escaflown3 Novice Messages: 11 |
Merci a vous deux
Albator003 je vien de voir ta reponse et a ce moment j'avai trouver pour l'allonger Mais pas pour tout le reste lol Merci C'est bien de pouvoir compter sur des gars comme vous merci encore |
Revenir en haut | |
Albator003 Invité |
Par contre je viens de m'en apercevoir il est possible que to nobjet ne soit pas detruit aprés utilisation... alors si tu veux que l'objet soit detruit apres son utilisation ta juste à ajouter dans les 3 conditions
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. Et sinon pour le tag Oui y'a plusieur solution comme celle ou tu definit juste une parti du tag (genre par les 5 premieres lettre) en utilisant: 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. |
Revenir en haut | |
Escaflown3 Novice Messages: 11 |
D'accord merci
Par contre les objet ce detruise car il on dans les proprieter il y a : - Lancer un sort : Pouvoir unique, sur soi uniquement(utlisation unique) Donc apres je l'ai plus, masi je voi pas ce que tu veut dire par "detruit" ? Bon sinon je met le script entier : NWScript :
void main() { object oPC = GetItemActivator();//on regarde qui utilise l'objet object oItem = GetItemActivated();//on regarde ce qu'est l'objet utiliser if(GetTag(oItem)=="10000")//le tag de l'objet donnant les effets {//on applique des effets qui sont modiafible le chiffre entre () c la diminution l'autre chiffre c'est la durer(en seconde) ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAbilityDecrease(ABILITY_INTELLIGENCE, 4), oPC, 60.0); //on applique des effets ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectMovementSpeedDecrease(50), oPC, 60.0); //effet de lenteur ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAttackDecrease(4), oPC, 60.0); //Attaque decrue ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectACDecrease(8), oPC, 60.0); //CA decrue ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectPoison(15), oPC, 60.0); //Effet de poisson (voir si l'on resiste ou non) AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK,1.0,10.0)); //Tituber avec consommation AssignCommand(oPC,ActionSpeakString("*Fume la substence*")); //Text que dit le PN DelayCommand(2.5,AssignCommand(oPC,ActionSpeakString("Ouahhh...*sourit* c'est de la bonnne.... yo man"))); //Text que dit le PN } if(GetTag(oItem)=="20000")//le tag de l'objet donnant les effets {//on applique des effets qui sont modiafible le chiffre entre () c la diminution l'autre chiffre c'est la durer(en seconde) ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAbilityDecrease(ABILITY_INTELLIGENCE, 4), oPC, 60.0); //on applique des effets ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectMovementSpeedDecrease(60), oPC, 60.0); //effet de lenteur ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAttackDecrease(8), oPC, 60.0); //Attaque decrue ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectACDecrease(11), oPC, 60.0); //CA decrue ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectPoison(18), oPC, 60.0); //Effet de poisson (voir si l'on resiste ou non) AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK,1.0,10.0)); //Tituber avec consommation AssignCommand(oPC,ActionSpeakString("*Fume la substence*")); //Text que dit le PN DelayCommand(2.5,AssignCommand(oPC,ActionSpeakString("Ouahhh...*sourit* c'est de la bonnne.... yo man"))); //Text que dit le PN } if(GetTag(oItem)=="40000")//le tag de l'objet donnant les effets {//on applique des effets qui sont modiafible le chiffre entre () c la diminution l'autre chiffre c'est la durer(en seconde) effect eEff = EffectVisualEffect(VFX_IMP_SLEEP); // on definie l'effet dodo ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAbilityDecrease(ABILITY_INTELLIGENCE, 4), oPC, 60.0); //on applique des effets ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectMovementSpeedDecrease(70), oPC, 60.0); //effet de lenteur ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAttackDecrease(10), oPC, 60.0); //Attaque decrue ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectACDecrease(14), oPC, 60.0); //CA decrue ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectPoison(19), oPC, 60.0); //Effet de poisson (voir si l'on resiste ou non) AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK,1.0,10.0)); //Tituber avec consommation AssignCommand(oPC,ActionSpeakString("*Fume la substence*")); //Text que dit le PN DelayCommand(2.5,AssignCommand(oPC,ActionSpeakString("Ouahhh...*sourit* c'est de la bonnne.... yo man"))); //Text que dit le PN DelayCommand(3.0,AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT, 1.0, 8.0)));//on fais allonger le PJ DelayCommand(3.5,ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEff, oPC, 4.0));// On lui donne un effet (dormir) } if(GetTag(oItem)=="25g")//le tag de l'objet donnant les effets {//on applique des effets qui sont modiafible le chiffre entre () c la diminution l'autre chiffre c'est la durer(en seconde) effect eEff = EffectVisualEffect(VFX_IMP_SLEEP); // on definie l'effet dodo ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAbilityDecrease(ABILITY_INTELLIGENCE, 4), oPC, 60.0); //on applique des effets ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectMovementSpeedDecrease(80), oPC, 60.0); //effet de lenteur ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAttackDecrease(14), oPC, 60.0); //Attaque decrue ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectACDecrease(15), oPC, 60.0); //CA decrue ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectPoison(20), oPC, 60.0); //Effet de poisson (voir si l'on resiste ou non) AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK,1.0,10.0)); //Tituber avec consommation AssignCommand(oPC,ActionSpeakString("*Fume la substence*")); //Text que dit le PN DelayCommand(2.5,AssignCommand(oPC,ActionSpeakString("Ouahhh...*sourit* c'est de la bonnne.... yo man"))); //Text que dit le PN DelayCommand(3.0,AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT, 1.0, 10.0)));//on fais allonger le PJ DelayCommand(3.5,ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEff, oPC, 6.0));// On lui donne un effet (dormir) } if(GetTag(oItem)=="50g")//le tag de l'objet donnant les effets {//on applique des effets qui sont modiafible le chiffre entre () c la diminution l'autre chiffre c'est la durer(en seconde) effect eEff = EffectVisualEffect(VFX_IMP_SLEEP); // on definie l'effet dodo ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAbilityDecrease(ABILITY_INTELLIGENCE, 4), oPC, 60.0); //on applique des effets ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectMovementSpeedDecrease(90), oPC, 60.0); //effet de lenteur ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAttackDecrease(15), oPC, 60.0); //Attaque decrue ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectACDecrease(16), oPC, 60.0); //CA decrue ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectPoison(21), oPC, 60.0); //Effet de poisson (voir si l'on resiste ou non) AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK,1.0,10.0)); //Tituber avec consommation AssignCommand(oPC,ActionSpeakString("*Fume la substence*")); //Text que dit le PN DelayCommand(2.5,AssignCommand(oPC,ActionSpeakString("Ouahhh...*sourit* c'est de la bonnne.... yo man"))); //Text que dit le PN DelayCommand(3.0,AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT, 1.0, 12.0)));//on fais allonger le PJ DelayCommand(3.5,ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEff, oPC, 8.0));// On lui donne un effet (dormir) } } Voila et merci |
Revenir en haut | |
olfleouf Acolyte Messages: 35 |
J'aurais juste un petit conseil d'optimisation de ressource, lorsque tu as plusieurs if qui vérifie la même variable mais pour des valeurs différentes, ici le tag par exemple, pense à mettre des else if, ca permet que dès que le script trouvera une condition de bonne, il ne teste pas les suivantes (et donc gain de ressources, car moins de test).
ca donne ca sur ton script : NWScript : void main() { object oPC = GetItemActivator();//on regarde qui utilise l'objet object oItem = GetItemActivated();//on regarde ce qu'est l'objet utiliser if(GetTag(oItem)=="10000")//le tag de l'objet donnant les effets {//on applique des effets qui sont modiafible le chiffre entre () c la diminution l'autre chiffre c'est la durer(en seconde) ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAbilityDecrease(ABILITY_INTELLIGENCE, 4), oPC, 60.0); //on applique des effets ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectMovementSpeedDecrease(50), oPC, 60.0); //effet de lenteur ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAttackDecrease(4), oPC, 60.0); //Attaque decrue ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectACDecrease(8), oPC, 60.0); //CA decrue ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectPoison(15), oPC, 60.0); //Effet de poisson (voir si l'on resiste ou non) AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK,1.0,10.0)); //Tituber avec consommation AssignCommand(oPC,ActionSpeakString("*Fume la substence*")); //Text que dit le PN DelayCommand(2.5,AssignCommand(oPC,ActionSpeakString("Ouahhh...*sourit* c'est de la bonnne.... yo man"))); //Text que dit le PN } else if(GetTag(oItem)=="20000")//le tag de l'objet donnant les effets {//on applique des effets qui sont modiafible le chiffre entre () c la diminution l'autre chiffre c'est la durer(en seconde) ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAbilityDecrease(ABILITY_INTELLIGENCE, 4), oPC, 60.0); //on applique des effets ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectMovementSpeedDecrease(60), oPC, 60.0); //effet de lenteur ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAttackDecrease(8), oPC, 60.0); //Attaque decrue ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectACDecrease(11), oPC, 60.0); //CA decrue ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectPoison(18), oPC, 60.0); //Effet de poisson (voir si l'on resiste ou non) AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK,1.0,10.0)); //Tituber avec consommation AssignCommand(oPC,ActionSpeakString("*Fume la substence*")); //Text que dit le PN DelayCommand(2.5,AssignCommand(oPC,ActionSpeakString("Ouahhh...*sourit* c'est de la bonnne.... yo man"))); //Text que dit le PN } else if(GetTag(oItem)=="40000")//le tag de l'objet donnant les effets {//on applique des effets qui sont modiafible le chiffre entre () c la diminution l'autre chiffre c'est la durer(en seconde) effect eEff = EffectVisualEffect(VFX_IMP_SLEEP); // on definie l'effet dodo ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAbilityDecrease(ABILITY_INTELLIGENCE, 4), oPC, 60.0); //on applique des effets ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectMovementSpeedDecrease(70), oPC, 60.0); //effet de lenteur ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAttackDecrease(10), oPC, 60.0); //Attaque decrue ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectACDecrease(14), oPC, 60.0); //CA decrue ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectPoison(19), oPC, 60.0); //Effet de poisson (voir si l'on resiste ou non) AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK,1.0,10.0)); //Tituber avec consommation AssignCommand(oPC,ActionSpeakString("*Fume la substence*")); //Text que dit le PN DelayCommand(2.5,AssignCommand(oPC,ActionSpeakString("Ouahhh...*sourit* c'est de la bonnne.... yo man"))); //Text que dit le PN DelayCommand(3.0,AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT, 1.0, 8.0)));//on fais allonger le PJ DelayCommand(3.5,ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEff, oPC, 4.0));// On lui donne un effet (dormir) } else if(GetTag(oItem)=="25g")//le tag de l'objet donnant les effets {//on applique des effets qui sont modiafible le chiffre entre () c la diminution l'autre chiffre c'est la durer(en seconde) effect eEff = EffectVisualEffect(VFX_IMP_SLEEP); // on definie l'effet dodo ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAbilityDecrease(ABILITY_INTELLIGENCE, 4), oPC, 60.0); //on applique des effets ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectMovementSpeedDecrease(80), oPC, 60.0); //effet de lenteur ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAttackDecrease(14), oPC, 60.0); //Attaque decrue ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectACDecrease(15), oPC, 60.0); //CA decrue ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectPoison(20), oPC, 60.0); //Effet de poisson (voir si l'on resiste ou non) AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK,1.0,10.0)); //Tituber avec consommation AssignCommand(oPC,ActionSpeakString("*Fume la substence*")); //Text que dit le PN DelayCommand(2.5,AssignCommand(oPC,ActionSpeakString("Ouahhh...*sourit* c'est de la bonnne.... yo man"))); //Text que dit le PN DelayCommand(3.0,AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT, 1.0, 10.0)));//on fais allonger le PJ DelayCommand(3.5,ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEff, oPC, 6.0));// On lui donne un effet (dormir) } else if(GetTag(oItem)=="50g")//le tag de l'objet donnant les effets {//on applique des effets qui sont modiafible le chiffre entre () c la diminution l'autre chiffre c'est la durer(en seconde) effect eEff = EffectVisualEffect(VFX_IMP_SLEEP); // on definie l'effet dodo ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAbilityDecrease(ABILITY_INTELLIGENCE, 4), oPC, 60.0); //on applique des effets ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectMovementSpeedDecrease(90), oPC, 60.0); //effet de lenteur ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAttackDecrease(15), oPC, 60.0); //Attaque decrue ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectACDecrease(16), oPC, 60.0); //CA decrue ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectPoison(21), oPC, 60.0); //Effet de poisson (voir si l'on resiste ou non) AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK,1.0,10.0)); //Tituber avec consommation AssignCommand(oPC,ActionSpeakString("*Fume la substence*")); //Text que dit le PN DelayCommand(2.5,AssignCommand(oPC,ActionSpeakString("Ouahhh...*sourit* c'est de la bonnne.... yo man"))); //Text que dit le PN DelayCommand(3.0,AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT, 1.0, 12.0)));//on fais allonger le PJ DelayCommand(3.5,ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEff, oPC, 8.0));// On lui donne un effet (dormir) } } _________________ Arkanis, forum jeux de rôle dungeons et dragons 3.5 |
Revenir en haut | |
Escaflown3 Novice Messages: 11 |
D'accord merci
Donc juste enfaite a rajouter else devant tout les if sauf le 1er |
Revenir en haut | |
olfleouf Acolyte Messages: 35 |
Oui c'est ca, sur une longue chaîne de if ca fait gagner un temps fou
_________________ Arkanis, forum jeux de rôle dungeons et dragons 3.5 |
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