Ignorer les immunités

Répondre
Partager Rechercher
Voila je cherche a faire un script poussant des personnes a dormir quel que soient leurs immunité, malheureusement, ca ne marche pas. Quelle est la manipulation a executer pour ignorer les immunités ou du moins, est elle possible ?

J'ai essayé en faisant un RemoveEffect() sur la cible de mon script, mais meme en lui removant son immunité au sommeil, qd mon script s'execute, il est marqué dans mon log que mon personnage est immunisé au sommeil.

Merci d'avance

[EDIT] J'oublais de preciser que j'ai essayé en mettant mon effet de sommeil en supernatural puis en extraordinary, mais rien n'y fait, mon perso resiste a ca meme si je remove son immunité : /
Citation :
Provient du message de eMRaistlin
euh..

ca irait, un :
Code PHP:

AssignCommand(oPC,ActionRest);
SetCommandable(oPC,FALSE); 
ou c'est juste pour les forcer a avoir les VFX du dodo ?
(ou encore autre chose...)
En fait, c pour gerer le fait qu'un carac descende a 0.
Cad que a part pour la constitution, qui tue sur le champ si descendue a 0, les autre carac descendues a 0 font faire choir le personnage au sol, incapable de bouger dans cet etat.
Mais les carac mentale, elle font en plus tomber le personnage dans le coma, donc ta solution marche pour la force et la dexterité, car ils sont encore conscients, mais pour les autres, il faut en plus donner un effet sourd/aveugle pour simuler le coma. Et si il y'a immunité, ca ne marche pas : /
Tu réduits l'immunité de 100% pendant 0.5 secondes, c'est ce que je fais pour appliquer l'effet de perte de pv durant le sommeil.
Une immunité = 100%, donc si tu fais - 100, le gars aura 0

Et dans un effet direct appliqué, le jet de sauvegarde n'est pas utilisé, donc ça marchera à tous les coups
Citation :
Provient du message de Delphinea
Tu réduits l'immunité de 100% pendant 0.5 secondes, c'est ce que je fais pour appliquer l'effet de perte de pv durant le sommeil.
Une immunité = 100%, donc si tu fais - 100, le gars aura 0

Et dans un effet direct appliqué, le jet de sauvegarde n'est pas utilisé, donc ça marchera à tous les coups
Merci du tips

En tout cas, la fonction ExtraOrdinaryEffect est considéré comme Broken, car l'effet peut se faire dissiper, et et sensible aux zone d'anti magie
Ce qui serait bien c'est que ce soit fixé, mais qu'en plus ils rajoute une Fonction du type ExtraordinaryEffect, mais du genre : UnresistableEffect, pour que rien ne puisse l'affecter.

Euh, j'en profites pour demander d'autres choses ^^.
*Le SetIncreaseMovementSpeed, il augmente la valeur par le poucentage entré en parametre, ou bien il met la valeur au pourcentage indiqué.
Cad, un SetIncreaseMovementSpeed(100), ca double la vitesse de deplacement, ou ca ne la change pas car elle passe de 100% a 100% ??

*Si je donne un effet pendant x sec, et que je veux pouvoir l'annuler en cours de chemin, je suis obligé de passer par un onHeartBeat, ou pas ? Car la je ne vois pas comment m'y prendre.

*Peut on mettre un delai pour une destruction de variable locale ??

==> But :
Faire un objet (faute de mieux, en attendant que Bioware fasse qqchose pour qu'on puisse ajouter des capacités magiques/extraordinaire dans le menu radial) pour pouvoir "activer" le mode course, qui permet a une personnage de courir a 4x la vitesse normale pour ceux portant une armure legere et intermediaire, et a 3x la vitesse normale pour ceux portant une armure lourde (je compte ajouter les personnes portant de la maille).
Je ne gererais pas le fait que la personne doit courir en ligne droite, d'une part car c'est quasiment ingerable, d'autre part, parce que je considere que l'on peut tourner en sprintant dans la vie reele, meme si l'on est en armure, ca doit etre faisable un minimum.
Pour la maille, dans le livre des regles, c'est marqué que la personne court a 4x sa vitesse vitesse normale, ce qui correspond a une vitesse de 12 km/h, et au dessus c'est marqué que une personne en harnois peut que courir a 3x sa vitesse normale, ce qui correspond a 15 km/h.
Pour moi ca semble illogique qu'une personne en harnois plein court plus vite qu'une meme personne en cote de maille. Si jamais un specialiste des deplacement en armure (Musazai ? ) pouvait m'eclairer si j'ai faux ^^.

Et donc le probleme, c'est que je cree un variable locale pour compter le nombre de round restants a courir (car on peut courir que pendant 1 nb de rd egal a sa valeur de constitution) et que je modifierais cette valeur si jamais la valeur de constitution venait a changer grace/a cause d'un buff/debuff de constitution en cours de parcours. Mais cette variable est aussi créé pour la gestion du mode course ON/OFF de mon objet. Et l'un des probleme, c'est que je met l'effet durant le nb de round selon la valeur de constit, et une fois que la durée a fini, la valeur de la variable locale est encore ON, donc je dois utiliser 2x mon objet : 1 pour le mettre en mode OFF, 2 pour le remettre en mode ON.

(je gererais le temps de repos plus tard, lorsque la premiere partie marchera ^^)

[EDIT] Un probleme est survenu. Le EffectDamageImmunityDecrease() est une fonction n'acceptant que des immunités aux dommages, et non pas a des effets tel que sommeil ou paralysie, donc ca ne marche pas dans mon cas :'(
Pour la vitesse la fonction est EffectMovementSpeedIncrease (ou Decrease). Et elle AJOUTE ou SOUSTRAIT le pourcentage à la vitesse actuelle.

Pour une durée limitée ne te prend pas la tête, applique un effet avec un DURATION_TYPE_TEMPORARY
Pour ton problème de sommeil, tu peux jouer d'astuce.

A l'aide de la fonction GetEffectCreator, tu localises l'objet source de l'effet d'immunité.
Ensuite tu le détruis (il n'appliquera plus son immunité, ce qui je pense est plus efficace que RemoveEffect, qui n'annule que l'effet. Et comme l'application par un objet est permanente, aussi annulé, il revient...)
Directement après tu appliques l'effet désiré
Et enfin tu recrées l'objet là où il était.

Autre astuce, au lieu d'utiliser la fonction EffectSleep, tu crées ta propre fonction, qui ne sera sujette elle à aucune immunité
Oui, mais ca m'enerve de voir tout le monde courir a la meme vitesse, et de ne pas pouvoir rattrapper qqn parce que il n'existe pas de mode course.

Alors j'essaye de le faire au mieux en respectant les regles.

Sinon pour l'effet de vitesse, j'ai bo mettre 400, il court moins vite que qqn avec l'effet rapidité : //
Et si cette personne a deja l'effet rapidité, ben sa vitesse diminue meme avec un 400% de vitesse en plus
A moins que le max est 100% et alors que je doive appliquer plusieurs fois l'effet selon les cas pour obtenir le bon total ? :bouffon:

POur mon effet de course, je vais compulser la partie de DOT de fleche acide de melf qui pourrait peut etre m'apporter la solution ^^ et sans passer par des variables locales =)

Et sinon pour les immunités, comment je fais ?

[EDIT] ok merci pour les astuces pour le sommeil.
Pour le fait de detruire le createur d'immunité, si par exemple ca provient d'un sort, ca va detruire quoi exactement ?? Le lanceur de sort qui a lancé l'immunité ?? Le pauvre, il protege ses amis et s'en prends plein la tete

Je crois que je vais ecrire ma fonction

Dolanor *ecriveur de lacune d&diesque biowardienne*
Citation :
Provient du message de Dolanor
Pour la maille, dans le livre des regles, c'est marqué que la personne court a 4x sa vitesse vitesse normale, ce qui correspond a une vitesse de 12 km/h, et au dessus c'est marqué que une personne en harnois peut que courir a 3x sa vitesse normale, ce qui correspond a 15 km/h.
Pour moi ca semble illogique qu'une personne en harnois plein court plus vite qu'une meme personne en cote de maille. Si jamais un specialiste des deplacement en armure (Musazai ? ) pouvait m'eclairer si j'ai faux ^^.
HAHAHAHAHAHAHAHAHA
j'ai telechargé le errata de chez asmodée et tout de suite je suis allé a la page de la course.

Resultat, le guerrier athletique courant a 15km/h en harnois plein, passe a 9 km/h !!
Il s'est prit un sacré debuff de force celui la ^^. Sont salaud chez asmodee, comment ils nerfent les guerrier athletiques ^^.

Donc c bon, plus besoin du temoignage d'un escrimeur medieval, ct une anomolie dans la traduction

(un conseil, telechargez les errata pour ceux qui veulent suivre les regles d&d a la lettre. Y'a 71 p d'errata pour le MdJ (bon la plupart sont des correction du genre : "mage" s'ecrit "lanceur de sort", sauf qu'ils le repetent a chaque fois que le mot mage est mis en erreur ) ou mieux, si vous etes dans le genre riche, rachetez vous une version des bouquins corrigés ^^)
Euhh, encore une chose. Concernant la fonction personalisé du sommeil. Quelle est la commande pour le faire choir ventre a terre ?
La fonction EffectSLeep() le fait mais je ne peux pas utiliser ca a cause des immunité
Et pareil, comment puis je faire pour faire en sorte que la vision soit noire pour le personnage (comme l'effet d'un sort d'aveuglement) sans utiliser le EffectBlindness() ??

Si c'est absolument pas imitable, ben, zut : //
Tsss, t'es en train de me demander mon script de sommeil où je ne m'y connais pas

Je vais te le donner, comme ça tes souffrances prendront fin

Il s'agit de la version test, je dois encore régler quelques trucs comme les EVENTTYPE_REST_FINISHED et CANCELED; mais tu pourras déjà utiliser ce qui t'intéresse.

Code PHP:

#include "jfv_includes"

void ApplySleepEffects(object oPC)
{
    
effect eSnore EffectVisualEffect(VFX_IMP_SLEEP);
    
ApplyEffectToObject(DURATION_TYPE_TEMPORARYeSnoreoPC7.0);
    
ApplyEffectToObject(DURATION_TYPE_TEMPORARYeSnoreoPC7.0);
    
effect eBad GetFirstEffect(oPC);
    
int nBlindMe=1;
    while(
GetIsEffectValid(eBad))
    {
        
int nEtype=GetEffectType(eBad);
        if(
nEtype==EFFECT_TYPE_TRUESEEING)
            
nBlindMe=0;
        
eBad=GetNextEffect(oPC);
    }
    if(
nBlindMe)
    {
        
effect eBlind =  SupernaturalEffect(EffectBlindness());
        
ApplyEffectToObject(DURATION_TYPE_TEMPORARYeBlindoPC10.0);
    }
    
DelayCommand(7.0ApplyEffectToObject(DURATION_TYPE_TEMPORARYeSnoreoPC7.0));
}

void RemoveSleepBlindness(object oPC)
{
    
effect eBad GetFirstEffect(oPC);
    while(
GetIsEffectValid(eBad))
    {
        
int nEtype=GetEffectType(eBad);
        if (
nEtype == EFFECT_TYPE_BLINDNESS)
         {
            
RemoveEffect(oPCeBad);
         }
        
eBad GetNextEffect(oPC);
     }
}

void main()
{
    
object oPC GetLastPCRested();
    
int nLastRestType GetLastRestEventType();
    if(
nLastRestType == REST_EVENTTYPE_REST_STARTED)
    {
           
int nTimerRepos GetLocalInt(oPC"FlagRepos");
           
int nTime GetTime();
           
nTimerRepos += 480;
           if(
nTimerRepos >= nTime)
           {
            
SetLocalInt(oPC"FlagRepos"nTime);
            
int nHD GetHitDice(oPC);
            
int nMaxHP GetMaxHitPoints(oPC);
            
int nHP GetCurrentHitPoints(oPC);
            
int nBCon GetAbilityModifier(ABILITY_CONSTITUTIONoPC);
            
int nDam =(nMaxHP - (nHP nBCon nHD));
            
effect eRepos EffectHeal(nMaxHP nHP);
            
effect eReduc EffectDamageImmunityDecrease(DAMAGE_TYPE_MAGICAL100);
            
effect eDamage ExtraordinaryEffect(EffectDamage(nDamDAMAGE_TYPE_MAGICALDAMAGE_POWER_NORMAL));
            
object oArmure GetItemInSlot(INVENTORY_SLOT_CHESToPC);
            
int nCA GetItemACValue(oArmure);
            if(
nCA >= 5)
            {
             
effect eFatigue1 EffectAbilityDecrease(ABILITY_STRENGTH2);
             
effect eFatigue2 EffectAbilityDecrease(ABILITY_DEXTERITY2);
             
effect eFatigue3 EffectMovementSpeedDecrease(50);
             
ApplyEffectToObject(DURATION_TYPE_PERMANENTeFatigue1oPC);
             
ApplyEffectToObject(DURATION_TYPE_PERMANENTeFatigue2oPC);
             
ApplyEffectToObject(DURATION_TYPE_PERMANENTeFatigue3oPC);
            }
            
AssignCommand(oPCActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT1.0f10.0f));
            
ApplySleepEffects(oPC);
            
ActionWait(7.0);
            
ApplyEffectToObject(DURATION_TYPE_TEMPORARYeReducoPC0.5);
            
ApplyEffectToObject(DURATION_TYPE_INSTANTeReposoPC);
            if(
nDam >= 1)
            {
             
ApplyEffectToObject(DURATION_TYPE_INSTANTeDamageoPC);
            }
            
RemoveSleepBlindness(oPC);
           }
           else
           {
            
SendMessageToPC(oPC"Vous n'eprouvez pas encore le besoin de vous reposer.");
           }
    }
    if (
nLastRestType == REST_EVENTTYPE_REST_FINISHED || REST_EVENTTYPE_REST_CANCELLED)
    {
    
RemoveSleepBlindness(oPC);
    }

[Edit: Ne t'inquiète pas de l'include, il utilise simplement ma fonction GetTime]
Aie !
Mes souffrances n'ont pas encore pris fin, mais merci qd meme pour le script. C'est toujours ca de gagné.

Mais concernant l'effet blindness, si qqn est immunisé, alors il ne sera pas aveugle pendant le repos, non ? C'est un peu stupide : / Mais bon c une feature bioware : //

Par contre, concernant ton script, pk qqn qui aurait vision lucide, meme les yeux fermés il verrait a travers les paupieres ??

Et qqn qui s'est fait affublé d'un sort d'aveuglement permanent par un mage puissant (tres puissant meme ), en dormant, il son aveuglement part ?? C'est ce qu'il me semble selon ton script

Et derniere question, que renvoie la fonction GetEffectCreator() ??
Si un effet est obtenu grace a un objet (genre bonus a l'armure naturelle) on obtient cet item en retour ?.
Et si cet effet a été cree par un sort lancé par un mage, est ce qu'on obtiendra le mage en retour ?

PS : pfff z'avez vu ?? A cause du ExtraoidinaryEffect qui marche pas, j'arrive pas a m'enlever mon immunité au sommeil. Me faut un somnifere ! <regarde sa montre> oula oui ! ^^
Comme je l'ai dis, ce script n'est pas fini, c'était juste pour te donner une idée, enfin bon....

L'effet Blindness est "Supernatural", en théorie non soumis aux résistances et immunités, mais bon en théorie....

Pour vision lucide, non justement, si il possède cet effet actif, il reçoit quand même l'effet supernaturel d'aveuglement.

Pour le magicien puissant, dans le cas présent oui, mais une astuce serait d'identifier le créateur de l'effet, et d'agir en conséquence, ou encore mettre un simple IF qui vérifie le FlagRepos; s'il est actif, RemoveSleep, sinon non, etc....
Sur ce point je ne me suis pas foulé, vu que le script est prévu pour VP, et les mages puissants Mais si tu veux, je fais ça vite fait, c'est pas un problème.

Et GetEffectCreator renvoit l'objet (au sens script du terme) source de l'effet (item, creature, placeable, etc).
Citation :
Provient du message de Delphinea
L'effet Blindness est "Supernatural", en théorie non soumis aux résistances et immunités, mais bon en théorie....
Oui et c'est de la theorie bioware
J'ai deja testé auparavant, et ca ne marche pas, sur les forum Bioware c'est considéré comme une broken function (le SupernaturalEffect() et le ExtraordinaryEffect()) car ca ne respecte pas les regles D&D et que les 2 sont soumis a la dissipation de la magie (et a l'immunité par extension.).
Ce qu'il faudrait, c'est que ces 2 fonctions marche comme dans les regles, mais que Bioware rajoute un EffectSubtype du genre :
EffectSubtype(eEffect, nImmune, nSleep, nDispel). Comme ca on pourrait customiser selon les besoins.
nImmune = les immunités marche ou pas.
nSleep = l'effet disparait avec le repos (dans la cas d'un buff)
nDispel = l'effet disparait avec un dissipation de la magie.

Citation :
Provient du message de Delphinea
Pour vision lucide, non justement, si il possède cet effet actif, il reçoit quand même l'effet supernaturel d'aveuglement.
Ben si je lis bien le code, si il a un effet de type TRUE_SEEING, alors la valeur nBlindMe devient fausse et donc le test pour savoir si on lui met ou pas l'effet blind passe sans que l'effet Blind soit mis.


Citation :
Provient du message de Delphinea
Pour le magicien puissant, dans le cas présent oui, mais une astuce serait d'identifier le créateur de l'effet, et d'agir en conséquence, ou encore mettre un simple IF qui vérifie le FlagRepos; s'il est actif, RemoveSleep, sinon non, etc....
Sur ce point je ne me suis pas foulé, vu que le script est prévu pour VP, et les mages puissants Mais si tu veux, je fais ça vite fait, c'est pas un problème.
Je ne te demande pas de le faire ^^ ct une remarque concernant ton script. Apres tu vas etre tout enervé si pendant une grosse baston, un mage PNJ envoie un blindness de groupe permanent. Et que pour contrer ca, tout le monde fuit et se repose ^^.

Bah c'est vrai que les mages puissant sont pas legion, mais un jour y'en aura.
Tiens au fait j'ai un objet perso a prendre au debut qd je referais mon perso, il est accompagné, pas besoin de verifier il est clean, pas de script de giveXp(190000), tu pourras me le rendre disponible hein ?? :bouffon:

Citation :
Provient du message de Delphinea
Et GetEffectCreator renvoit l'objet (au sens script du terme) source de l'effet (item, creature, placeable, etc).
Merci de cette reponse ^^.
En fait je sens qu'avec GetSpellID on peut faire des trucs sympa aussi

Juste une derniere question technique, un GetFirst/NextEffect renvoie un effet.
Mais par exemple, si 2 sorts de meme type sont lancés, avec l'un qui debuff 2 de force et l'autre qui debuff 4. En faisat un getfirst/getnext, on obtient 2 effets separé ou bien on obtient 1 effet de type : AbilityScoreDecrease ??
Si on obtient 2 effets séparé, alors je sens que ca va m'aider pour faire des trucs cool. Sinon, ben ca va etre plus cho voire impossible.
Pour la cumulation d'effets identiques je n'en sais rien, il faudrait tester, vu qu'on n'a pas accès au code de ces fonctions.

Que Bioware ne donne pas accès à une partie de son code je le comprends très bien, c'est le leur après tout
Mais ils auraient pu faire l'effort de documenter convenablement leurs fonctions.
Peut-être ont ils peur qu'on y décèle trop d'erreurs
Citation :
Provient du message de eMRaistlin
pour les extraordinary, ca marche... si tu change les sorts de dispel... XD
(y'en a 3 : tu gagnera du temps )
y'en a 4 (lesser, dispel, greater, mordenkainen )

pas con...vraiment pas con... ^^
En tout cas ca revient a ecrire le code du EffectDispelMagicalAll()

Je vais essayer de le faire ^^.
Et je vais etudier le sort de malediction pour voir comment il fait pour que l'effet ne disparaisse pas en dormant.

Autrement, t'as pas une astuce pour faire en sorte que ca outrepasse une immunité (au sommeil, a l'aveuglement ou autre) eMR ?


Edit : ouéééé chuis empereur ^^
Citation :
Autrement, t'as pas une astuce pour faire en sorte que ca outrepasse une immunité (au sommeil, a l'aveuglement ou autre) eMR ?
helas, non.

Ceci etant, la technique de delphinea (baisser de 100% l'immunite) doit fonctionner.
Citation :
Provient du message de eMRaistlin
helas, non.

Ceci etant, la technique de delphinea (baisser de 100% l'immunite) doit fonctionner.
Oui elle marche pour les immunité au froid feu etc
Mais ca ne marche pas pour les immunité a des effet type sommeil ou mort
(en fait c diminuer l'immunité au degats, donc que pour les degats, mais la mort ne fait pas de degats ni le sommeil)
Tu veux les forcer à dormir ? Bah, tu fais qu'au bout d'un temps, si ils ne se sont pas reposés, qu'ils se prennent des pénalités cummulatives (genre baisse des caracs), et t'inquiète pas ils vont vite cliquer sur le bouton "repos"
Citation :
Provient du message de Delphinea
Tu veux les forcer à dormir ? Bah, tu fais qu'au bout d'un temps, si ils ne se sont pas reposés, qu'ils se prennent des pénalités cummulatives (genre baisse des caracs), et t'inquiète pas ils vont vite cliquer sur le bouton "repos"
non tu ne me suis pas Delphinea, je veux les faire tomber au sol comme avec un effet sleep pour simuler le fait qu'une carac telle que force/dex/sag/cha/int tombe a 0.
pour les 2 premiers, ils tombent car trop faible pour bouger, et dans les 3 derniers cas, ils tombent dans le coma (donc rajout de aveuglement et assourdissement).
La je ne fait pas un script de repos, c dans la continuité de ma modification d'absorptio nde niveau. Comme le NegativeLevel de bioware ne fonctionne pas du tout comme il faut, ben je le fait moi meme, et j'ai pensé a rajouter le fait des caracs baissées a 0 (vu que 1 nivo negatif = -1 jet d'attaque/JS/competences/caracteristique et niveau effectif (j'arrive juste pas a simuler le dernier effet, car le -1 au niveau effectif modifie tout ce qui se base sur le niveau (DD d'un sort, ou des qu'intervient le niveau dans un jet de dé))
Code PHP:

//A mettre dans le On_HearthBeat du module:
for(nCarac 1nCarac 6nCarac++);
{
 
CoucheMinou(oPCnCarac);
}

//La tite fonction à placer en include par exemple:
void CoucheMinou (object oPCint nCarac)
{
  
effect eBlind =  SupernaturalEffect(EffectBlindness());
  
effect eSnore EffectVisualEffect(VFX_IMP_SLEEP);
  
int nAscore GetAbilityScore(oPCnCarac);
  while(
nAscore <= 1)
 {
  
ActionDoCommand(AssignCommand(oPCActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT)));
  
ApplyEffectToObject(DURATION_TYPE_PERMANENTeBlindoPC);
  
ApplyEffectToObject(DURATION_TYPE_PERMANENTeSnoreoPC);
  
ApplyEffectToObject(DURATION_TYPE_PERMANENTeSnoreoPC);
 }

Qu'il soit immunisé au sommeil on s'en tape, ici le perso va s'écrouler au sol comme une bouse et y rester
Le seul truc auquel il pourra échapper, c'est l'aveuglement, et encore, vu que c'est un effet supernaturel, il lui faudra spécifiquement l'immunité au Blind. (et là quelque part c'est un peu normal, c'est comme si tu voulais qu'un aveugle voit mieux avec des lunettes )
Et si tu veux différencier les caracs de corps/esprit tu ajoutes un "IF nCarac >3" dans la fonction et tu lui colles les effets supplémentaires voulu.
Merci ^^
C'est pas un peu bourrin de le mettre sur le OnHeartBeat du module ??
Euh sinon, je separe les 3 effets d'esprits, car pour chacun y'a une phrase differente, ou ca reviendrait a utiliser une variable locale avec son numero derriere et d'y faire appel pour marquer la bonne chaine.
Code PHP:

void FaitLaBouse (object oPC)
{
 
effect eBlind =  SupernaturalEffect(EffectBlindness());
 
effect eSnore EffectVisualEffect(VFX_IMP_SLEEP);
 
ActionDoCommand(AssignCommand(oPCActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT)));
 
ApplyEffectToObject(DURATION_TYPE_PERMANENTeBlindoPC);
 
ApplyEffectToObject(DURATION_TYPE_PERMANENTeSnoreoPC);
 
ApplyEffectToObject(DURATION_TYPE_PERMANENTeSnoreoPC);
}

void CoucheMinou (object oPCint nCaracint nAscore)
{
 while(
nAscore <= 1)
 {
  
FaitLaBouse(oPC);
  if(
nCarac 3)
  {
   
ExecuteScript("script_on_plyr_dying"oPC);
  }
 }
}

//A mettre dans le On_HearthBeat du module:
void main()
{
 
object oPC GetFirstPC();
 while(
oPC != OBJECT_INVALID)
 {
  
int nCarac;
  for(
nCarac 1nCarac 6nCarac++);
  {
   
int nAscore GetAbilityScore(oPCnCarac);
   if(
nAscore <= 1)
   {
    
CoucheMinou(oPCnCaracnAscore);
   }
  }
  
oPC GetNextPC();
 }

Voilà le script complet, en mieux

-J'ai séparé les effets dans une fonction, on ne sait jamais si tu peux en avoir besoin ailleurs (je te conseille de le mettre dans un fichier d'include)
-Pour la consommation du On_HB, rassure toi, un si petit truc ne consomme rien. D'ailleurs, si tu veux faire des check sur tes PJ, il te suffit d'ajouter ce que tu veux dans la boucle: "while(oPC != OBJECT_INVALID)".
-"while(nAscore <= 1)" Pourquoi cette boucle dans le CoucheMinou me diras tu ? Il y a deja un IF dans le main.
Et bien par sécurité, je me suis dit que si la carac remontait entre temps, le PJ ne devait plus subir l'effet. Bon, ok le temps entre l'exécution du IF et du While doit être minime, mais on ne sait jamais, un coup de lag

PS: Le prochain script, c'est payant
Merci pour le script et les eclairages sur le OHB du module ^^

Citation :
Provient du message de Delphinea
PS: Le prochain script, c'est payant
Je te prends au mot (euh...pas homo...hein ? )
On applique comme sur le forum VP mais avec ton avatar JOL ??
Cad, coucher ? Je veux bien remplacer gwen ce coup ci ^^

(et me quote pas ta fonction CoucheMinou ! Quoique ca peut etre interpreté de 2 manieres...)
C'etait le moment, idées mal placées de la journée ^^
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés