Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

mon script a un prob?

Par Dzib le 14/7/2002 à 10:58:17 (#1803253)

j'ai fait un script qui fait ceci:
Lors d'une discussion avec un barman, le PJ a l'option de choisir une boisson, il la boit (joue l'animation), puis fait un test de fortitude, si succès, ok, sinon, -1 en consti et -2 en intel. Si le PJ atteint 5 ou moins en consti, il tombe endormi.
Tout se passe bien jusqu'à ce que le PJ prenne le verre de trop et tombe endormi. A ce moment là, il ne joue pas l'animation (animation_forget_drink). Pourtant j'ai mis ds l'ordre 1. animation, 2. Test de fortitude, 3. test sur la consti.
Qq1 aurait une idée de ce qui pourrait clocher???

autre question: j'utilise le sort sleep pour que le PJ s'endorme qd il a trop bu mais que faire s'il est immunisé a ce sort?
Le EffectVisualEffect à la dernière ligne, cé pour faire apparaitre les ZZZZZZZZ au dessus du perso qd il dort mais l'effet dure que qq secondes.....comprend pas trop le DURATION_TYPE, qq1 peut m'expliquer? le prob doit venir de là à mon avis

Voici mon script:

void main()
{
object oPC=GetPCSpeaker();
AssignCommand(oPC,ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK));
ActionWait(2.0);
if (FortitudeSave(oPC, d20()+5) == FALSE)
{
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectAbilityDecrease(ABILITY_INTELLIGENCE,2),oPC,180.0);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectAbilityDecrease(ABILITY_CONSTITUTION,5),oPC,180.0);
}
if (GetAbilityScore(oPC,ABILITY_CONSTITUTION) < 5)
{
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectSleep(),oPC,60.0);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectVisualEffect(VFX_IMP_SLEEP),oPC,60.0);
}
}

Intérréssant ..........

Par Tyriael le 14/7/2002 à 16:41:47 (#1804241)

Très bonne idée ce script ,
En fait j'aimerais savoir si il est possible de mettre ce script sur la boisson (ou le verre dans lequel est servis la boisson) ??
Il serait en effet plutot amusant de créer ainsi plusieurs boissons au nom coloré et sur chacun d'elle apliquer un script comme celui-ci avec des effets plus ou moins intensse selon le degré "de force" (d'alcool) de la boisson .
Certaines pourraient etre légère et ne faire perdre qu'1 pts de CON et d'INT , et d'autres plus forte feraient perdre carrément 5 pts CON et INT ...
Mais en fait la boisson pourrait tout aussi bien agir sur la DEX et la SAG également , voir certain pourrait avoir le "vin mauvais " et perdre du CHA alors que d'autres auraient l'alcool joyeux et gagneraient du CHA ....
En gros ce qui m'interresserait en reprenant l'excellente idée de Dzib , serait un script faisant ceci :

Boisson 1 :
- premier verre -1 CON
-deuxieme verre -1 CON /-1 INT
-troisieme verre -1 CON/-1 INT/-1 DEX
- quatrieme verre -1 CON/-1 INt /- 1 DEX /-1 SAG
-cinquieme verre -1 CON /-1 INT/-1 DEX /-1 SAG
- verres suivant - (1 CON/1 INt / 1 DEX /1 SAG ) /par verre
Quand la CON tombe a 1 , le perso tombe ecroulé K.O dan sun profond sommeil (et ce pendant un temps egal a sa CON en heure) .

Voila un premier exemple de boisson , il faudrait que le script soit modulable afin de
-pouvoir changer le nom de la boisson
-changer les caract afectées
-changer la quantité de points perdu (en bonus ou malus)
-faire en sorte que le buveur ne perde pas a chaque verre mais tous les x verres

En fait ce serait une sorte d'"éditeur " de boisson qu'il me faudrais :p ...Voila je pense que ca serait déja pas mal , j'ai encore plein d'évolution de ce genre de script en tête mais commencons simple :ange: (pas taper , pas taper ........)

Ps : chose étonnante on trouve déja un script et ce depuis presque le début pour créer une taverne et voila que l'on bosse sur les boissons ........ :D :D mais ou va la société
:bouffon:

Merci a celui qui pourras répondre à mes attentes (et par le fait celle de Dzib étant donné que je me base sur une de ces idées )

Par Dzib le 14/7/2002 à 17:16:42 (#1804354)

c'est tt à fait ce que je comptais faire: toute une carte de boissons (accesibles depuis les dialogues) avec un effet différent pour chaque boisson. Ca marche bien à part les pitis problèmes cités plus haut.

Par Fed le 14/7/2002 à 19:07:38 (#1804745)


Qq1 aurait une idée de ce qui pourrait clocher???


Je crois que du moment que ton PJ est endormis, il n'est plus possible de lui faire executer une animation. En fait, l'effet est appliqué dès l'éxecution du script tandis que l'animation est ajoutée dans la file des actions du perso. Son execution est donc retardée par rapport à l'execution du script.
Il faudrait que tu utilise ActionDoCommand pour le PJ s'endorme apres avoir jouer l'animation.


j'utilise le sort sleep pour que le PJ s'endorme qd il a trop bu mais que faire s'il est immunisé a ce sort?


Je n'ai pas trouvé un moyen de passer outre les immunités. Je suis prenneur de toute info à ce sujet ;)
J'ai fait des tests avec ExtraordinaryEffect, SupernaturalEffect, etc.. mais ca n'a aucun effet.


Le EffectVisualEffect à la dernière ligne, cé pour faire apparaitre les ZZZZZZZZ au dessus du perso qd il dort mais l'effet dure que qq secondes.....comprend pas trop le DURATION_TYPE, qq1 peut m'expliquer? le prob doit venir de là à mon avis


J'ai testé et visiblement la durée n'a pas d'importance pour cet effet. Quoiqu'il arrive, il ne sera affiché qu'une seule fois.
Mais tu peux toujours utiliser l'évenement onHeartBeat pour l'appliquer plusieurs fois de suite.

Par Dzib le 14/7/2002 à 23:00:41 (#1805726)

Provient du message de Fed


Je crois que du moment que ton PJ est endormis, il n'est plus possible de lui faire executer une animation. En fait, l'effet est appliqué dès l'éxecution du script tandis que l'animation est ajoutée dans la file des actions du perso. Son execution est donc retardée par rapport à l'execution du script.
Il faudrait que tu utilise ActionDoCommand pour le PJ s'endorme apres avoir jouer l'animation.



Le problème,cé que pour ActionDoCommand, la cible de la fonction est également l'objet qui appele la fonction. Or, içi, cé un pnj qui appele la fonction et cé le pj qui doit être la cible.

Par Fed le 14/7/2002 à 23:13:25 (#1805762)

Et bien, il existe une fonction qui fait exactement ce que tu demande : AssignCommand ;)

JOL Archives 1.0.1
@ JOL / JeuxOnLine