La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 02/06/2024 16:03:23


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Escaflown3
Novice
Inscrit le: 15 Avr 2004
Messages: 11
Répondre en citant
Posté le : 24/04/2004 17:41:39 Sujet du message : Aide - Script d'effet de drogue

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 Very Happy Very Happy

PS : le script serai a mettre dans l'objet mais ou ?

Merci d'avance pour votre aide Wink
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Escaflown3
Novice
Inscrit le: 15 Avr 2004
Messages: 11
Répondre en citant
Posté le : 24/04/2004 19:16:00 Sujet du message :

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 Wink
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Albator003
Invité


Répondre en citant
Posté le : 24/04/2004 20:02:02 Sujet du message :

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);
}
}

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.


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 Cool
 
Revenir en haut
 
Escaflown3
Novice
Inscrit le: 15 Avr 2004
Messages: 11
Répondre en citant
Posté le : 24/04/2004 20:27:42 Sujet du message :

Genial albator003 et merci Wink
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 Wink
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Escaflown3
Novice
Inscrit le: 15 Avr 2004
Messages: 11
Répondre en citant
Posté le : 24/04/2004 20:42:58 Sujet du message :

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 Wink;

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 WinkWink
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Albator003
Invité


Répondre en citant
Posté le : 24/04/2004 21:36:15 Sujet du message :

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
Inscrit le: 15 Avr 2004
Messages: 11
Répondre en citant
Posté le : 25/04/2004 11:21:33 Sujet du message :

Parfait merci Wink
Je voudrai rajouter du dialogue avec ses ligne :

NWScript :

ActionSpeakString("un text au hazard");
ActionWait(2.5);
ActionSpeakString("un text au hazard");
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 Very Happy )
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");

}
}


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 Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Albator003
Invité


Répondre en citant
Posté le : 25/04/2004 13:12:18 Sujet du message :

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 Laughing

ca donnerai ça

NWScript :

  AssignCommand(oPC,ActionSpeakString("un text au hazard"));
  DelayCommand(2.5,AssignCommand(oPC,ActionSpeakString("un text au hazard")));
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
Inscrit le: 15 Avr 2004
Messages: 11
Répondre en citant
Posté le : 25/04/2004 13:45:45 Sujet du message :

Oui lol c'est exactement ce que je voulai faire merci WinkWink

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

}
}

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.


PS : lol le texte Wink)

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 Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Albator003
Invité


Répondre en citant
Posté le : 25/04/2004 14:01:40 Sujet du message :

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)

        }
}

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
 
olfleouf
Acolyte
Inscrit le: 21 Nov 2003
Messages: 35
Répondre en citant
Posté le : 25/04/2004 14:07:24 Sujet du message :

Et bien d'après ce que je voie c'est cette ligne qui est fausse :

NWScript :
if(GetTag(oItem)=="10000, 20000, 40000")//
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 Very Happy 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 :
if(GetTag(oItem)=="10000" || GetTag(oItem)=="20000" || GetTag(oItem)=="40000")
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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Escaflown3
Novice
Inscrit le: 15 Avr 2004
Messages: 11
Répondre en citant
Posté le : 25/04/2004 14:15:56 Sujet du message :

Merci a vous deux Wink

Albator003 je vien de voir ta reponse et a ce moment j'avai trouver pour l'allonger Wink
Mais pas pour tout le reste lol

Merci Very Happy

C'est bien de pouvoir compter sur des gars comme vous merci encore Razz
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Albator003
Invité


Répondre en citant
Posté le : 25/04/2004 14:33:50 Sujet du message :

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 Very Happy
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 :

string GetStringLeft(string sString, int nCount)
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
Inscrit le: 15 Avr 2004
Messages: 11
Répondre en citant
Posté le : 25/04/2004 14:42:52 Sujet du message :

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)


        }
}


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.



Voila Wink et merci Very Happy Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
olfleouf
Acolyte
Inscrit le: 21 Nov 2003
Messages: 35
Répondre en citant
Posté le : 25/04/2004 16:06:06 Sujet du message :

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)


        }
}
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.

_________________
Arkanis, forum jeux de rôle dungeons et dragons 3.5
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Escaflown3
Novice
Inscrit le: 15 Avr 2004
Messages: 11
Répondre en citant
Posté le : 25/04/2004 16:49:23 Sujet du message :

D'accord merci

Donc juste enfaite a rajouter else devant tout les if sauf le 1er
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
olfleouf
Acolyte
Inscrit le: 21 Nov 2003
Messages: 35
Répondre en citant
Posté le : 25/04/2004 20:07:05 Sujet du message :

Oui c'est ca, sur une longue chaîne de if ca fait gagner un temps fou Smile
_________________
Arkanis, forum jeux de rôle dungeons et dragons 3.5
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Montrer les messages depuis :
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


Sauter vers:
FAQ | Rechercher | Liste des Membres | Groupes d'utilisateurs | S'enregistrer | Profil | Se connecter pour vérifier ses messages privés | Connexion
Powered by phpBB 2.* [m] © 2001, 2002 phpBB Group
Theme rewritten in beautiful XHTML code by Baldurien.
Thème "La Bibliothèque de Neverwinter" crée par Kruger
Traduction par : phpBB-fr.com
Page generated in 91.749ms