script idée

Répondre
Partager Rechercher
Salut
Hé bien merci à tous les gars, surtout à taern et rat!!
Je crois que si vous navié pas zété là, je serè encore une fille paumée à l'heure kil est
Je vais maintenan tester ce script conçu avec autant d'amour
et essayer de le comprendre!!
Encore tx
A+
Rinoa
(solut)
Si je puis me permettre, la ca va poser un pb, au remove effect, parce que la tu remove n'importe quoi Rat
Un effet ne peut être retrouver simplement avec ses caractéristiques

Je propose de passer par un objet invisible custo qui place les effets de cette fonction ca permet de garder le module comme créateur d'autres effets et c'est plus propre je trouve ^_^

on le crée ds le onmoduleload et on l'appel dans la fonction.
je rajoute donc ca :
Code PHP:

string sCreatTag "TAG_DU_CREATOR";
object oCreator GetObjectByTag(sCreatTag);//il faut que l'objet soit UNIQUE, sinon ca va couiller comme on dit

          
eEffet GetFirstEffect(oPJ);
          
int i=TRUE;
          while(
GetIsEffectValid(eEffet)&&i){
             if(
GetEffectCreator(eEffet) == oCreatorFALSE;//on a trouve !
             
else
             
eEffet GetNextEffect(oPJ);//sinon on cherche
             

Et voila le truc en entier, non testé ^_^

Code PHP:


void PVPolymorph
();
void main(){
string sCreator "RESREF_DU_CREATOR";
string sCreatTag "TAG_DU_CREATOR";
int i=0;
object oCreator GetObjectByTag(sCreatTag);//il faut que l'objet soit UNIQUE, sinon ca va couiller comme on dit

//une pitite boucle pour eliminer tous les objets qui pourraient gener
if(!GetIsObjectValid(oCreator))
CreateObject(OBJECT_TYPE_PLACEABLEsCreatorGetStartingLocation());//je cree l'objet au pt de départ si y en a pas déjà un

PVPolymorph();//pk ne pas garder un si joli nom ^_^
}

void PVPolymorph()
{
string sCreatTag "TAG_DU_CREATOR";
object oCreator GetObjectByTag(sCreatTag);//il faut que l'objet soit UNIQUE, sinon ca va couiller comme on dit

object oPJ GetFirstPC();
effect eEffet EffectPolymorph(POLYMORPH_TYPE_PANTHER);//modifier le polymorph par ce que lon veux ^^
int nValue=2;

while(
GetIsObjectValid(oPJ))
    {
    
int nPVs GetMaxHitPoints(oPJ);
    
int iDeclenche nPVs /4//A 25% des pvs du joueurs
    
int nEffacenPVs/nValue;
    
int nCurrent GetCurrentHitPoints(oPJ);

    if(
nCurrent <= iDeclenche)
        
AssignCommand(oCreatorApplyEffectToObject(DURATION_TYPE_PERMANENT,eEffet,oPJ));
        
//donc la c "oCreator" qui place l'effet, on pourra le retrouver
    
else
      if (
nCurrent >= nEfface){
          
eEffet GetFirstEffect(oPJ);
          
int i=TRUE;
          while(
GetIsEffectValid(eEffet)&&i){
             if(
GetEffectCreator(eEffet) == oCreatorFALSE;//on a trouve !
             
else
             
eEffet GetNextEffect(oPJ);//sinon on cherche
             
}
          
RemoveEffect(oPJ,eEffet);
          }
    
oPJ GetNextPC();
    }
DelayCommand(10.0,PVPolymorph());

mais compilé ^_^
j'en ai profité pour enlever les fautes d'ortographe

edit : j'avais pas fais l'assign command . . . c'était pas près de marcher

Bon, alors là en l'état y a un pb : les rechargement/déchargement de module
ce que je conseillerais, virer les effets (grace à la boucle donnée) quand on s'en vas, et comme quand on revient ca se remet, tt baigne

là g un doute, les effets restent quand on quitte la partie ?quand on sauvegarde oui (je pense, en fait g jamais trop joué . . . ahem ) donc faudrait prévoir quelque chose à ce moment là . . . voir mieux, ne créer l'objet que si il éxiste pas, ce que je m'empresse de faire tt de suite

reedit : donc voila, maintenant ca marcheras tout nikel, sauvegardes ou pas, déco ou pas (je pense, je connais pas trop les effets, enfin précisement, savoir comment sont stockés les infos sur un effets etc.)
Breeeeeffffff . . . en théorie ca marche (jusqu'à preuve du contraire quoi)

comment on fais ?
On met ce script dans le onmoduleload, et un crée dans la palette un objet avec pour tag ce qu'on veut, mais il faut le préciser (TAG_CREATOR) et un resref pareil, ce qu'on veut mais faut préciser. L'objet est usable, mais invisible. pas forcement invisible, c'est juste une idée, ca peut être une pancarte indestructible ou que sais je. On peut le placer d'avance dans le module, ca change rien, faut juste qu'il n'y en ai qu'un seul
Ouala, je crois que g tt dit cette fois ci ^_^
Oui comme je suis à mon boulot, je me souvenais pas des paramètres en entier du RemoveEffect et J'ai fais ça avec le temps que j'avais, c'est à dire pas bcp. Donc il fallait rajouter, l'object du PC. ce qui est logique


Je viens de faire une petite recherche, et normalement si l'effet se trouve sur le Même script. Un simple RemoveEffect devrait marchait normalement


Cela serait sympa qu'un Testeur ou Testeuse puisse essayer tester le script (j'ai corrigé le RemoveEffect sur mon post) pour voir si cela marche sans passer dans une deuxième boucle.
oui mais est ce qu'on est bien dans le même script ? parce qe la le script il est juste relancé, enfin le fonction, plus tard . . . nan ?
Ou bien c'est cette histoire du delaycommand qui se garde des variables sous le coude ?
Tu poses une très bonne question,

Je pense que c'est no soucy, mais je ne suis pas sur. C'est pour ça, qu'il faut comme je dis souvent, ne pas dénigrer les deux versions mais les tester .
Maintenant, Là dessus tu peux avoir raison.

Donc au lieu, de se lancer dans une discussion ou on ne pourra pas trouver de réponse. La meilleure chose est de tester à mon avis.

.

Tant qu'on ne testera pas, on aura pas de preuve .
Répondre

Connectés sur ce fil

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