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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

zone de non magie

Par Simbule le 23/1/2003 à 17:44:53 (#3085514)

A votre avis pour faire une zone ou on peut lancer des sort, mais qui ne tue pas genre les pv ne descendent pas en desous de 1 comment je peux faire ?(si il y a un script tout fait je suis preneur!)

Par Azrael07 le 23/1/2003 à 18:14:15 (#3085815)

un truc en vitesse a la rache, mais y'a surement de bien meilleures solutions : tu peux modifier tout les scripts de sort :
scripts editor > open > allressource > filtre : sorts

au pire tu peux mettre de nouvelles lignes dans chaques sorts.

Par Zandramas le 23/1/2003 à 18:32:24 (#3085990)

Eu c'est long et puis je crois pas que l'admin du module voudra bien :p Enfin je pense pas ! *pense que sa vas etre galere*

On peut pas bloquer les Pv pour ne pas descendre au dessous de 1 ? :) Ou rendre invulnérable le Pj ?

(Question subsidiaire mais qui vas ensemble : comment on peut enlever tous les effets sur un joueur par script ? (pour la sortie de la zone ;))

Ps : je parle de la même chose que Simbule :)


[Edit : en fait je voulait faire un trigger ou une fois arriver a 1Pv rendait le joueur invulnérable a tout domages puis a la sortie annuler cet effet ! Mais bon chuis pas tres bon :(]

Par Azrael07 le 23/1/2003 à 18:51:15 (#3086152)

pour la question subsidiaire


void ClearAllEffects(object oTarget)
{
effect eEffect = GetFirstEffect(oTarget);
do
{
RemoveEffect(oTarget, eEffect);
eEffect = GetNextEffect(oTarget);
} while(GetIsEffectValid(eEffect));
}


pour l'autre question je chercherais si j'ai pas trop la flemme ^_^

Par Simbule le 23/1/2003 à 18:54:54 (#3086178)

Qu'est ce qu'on ferai sans toi azrael ?:confus:

Par Zandramas le 23/1/2003 à 18:59:42 (#3086210)

Merci ;)

Par Zandramas le 23/1/2003 à 19:18:43 (#3086404)

Bon j'ai commencer difficilement le script ! Sa donne sa pour le moment ...



void main()
{
object oPC = GetEnteringObject();
if ()
{
effect eReduction = EffectDamageReduction(int nAmount=100, int nDamagePower=100, int nLimit=0)
float fDurationTime = 0
ApplyEffectToObject (DURATION_TYPE_TEMPORARY, eReduction , oPc, fDurationTime)
}
}


Mais je sais pas quoi dans mettre dans le if ! Pour la vie ... :(
J'ai pas trouver une fonction qui rendait le Pj invulnérable :(
Donc je met une grosse réduction de damage !
Vous en penssez quoi ?
Soyez indulgent c'est mon premier script :p ...;)

[Edit : arf g virer le If .... et il ne veut pas compiler :p doit y avoir des grosses erreures :(]

Par RAT le 23/1/2003 à 20:02:21 (#3086738)

Ba tout simplement
pour rendre un PJ invulnérable, essaye d'utiliser la fonction

SetPotFlag(oPC,TRUE);


voilà, en mettant à true, normalement tu le rends invul.


vous avez qu'à mettre si c'est pour toute la zone dans le onenter de la zone ce code et vous chopez le PC avec GetEnteringObject();

et après vous mettez un autre script dans le onexit,

et vous remettez le PC vulnérable avec SetPotFlag(oPC,FALSE);
pour choper un PC c'est GetExitingObject();

Bon je n'ai pas mon editeur devant moi, donc j'ai pu me gourrer vaguement dans les noms mais en gros ... :D

Par Zandramas le 23/1/2003 à 20:28:48 (#3086915)

Coooooooooooooooooool ! merciiiiiiii :))


*note le SetPotFlag*

:))
*fonce sur Aurora*

Par Zandramas le 23/1/2003 à 21:11:31 (#3087284)

Alors voila j'ai tester et sa marche super ;) :)

Mais :p *est chiant :p* Si je veut tester la vie d'un personnage (pour que sa se déclenche quand le perso arrive a par exemple 5 pvs) je sais pas quoi mettre pour faire sa :(

Par Azrael07 le 23/1/2003 à 21:40:32 (#3087507)


void main()
{
object oPC = GetEnteringObject();
effect eReduction = EffectDamageReduction(int nAmount=100, int nDamagePower=100, int nLimit=0);
float fDurationTime = 0;
ApplyEffectToObject (DURATION_TYPE_TEMPORARY, eReduction , oPc, fDurationTime);

}


un script marche bcp mieux avec les ; derrières chaques instructions ;)

Par Simbule le 23/1/2003 à 22:46:19 (#3087891)

Merci A tous Vous venez de rendre un fier service a Althea (hop un peu de pub)

[HS]

Par Azrael07 le 23/1/2003 à 23:42:07 (#3088188)

vi ben tu parle....... j'ai bo rendre des services a althea le server il est tjrs full je peux pas rentrer..... LOL

c la rancon du succet, etpis au moins quand je joue pas je scripte et mon module avance ^^

Par Zandramas le 24/1/2003 à 15:08:17 (#3091647)

Ba tu sais moi non plus j'arrive pas a rentrer ! :(

Merci en tout cas ! :)

*vas se rappeler pour les ;*


Si je veut tester la vie d'un personnage (pour que sa se déclenche quand le perso arrive a par exemple 5 pvs) je sais pas quoi mettre pour faire sa :(


:D

Par Zandramas le 24/1/2003 à 17:53:14 (#3092775)

Bon voici ce a quoi je suis arrivé ! Il compile parfaitement mais apres des testes sur des trolls, a 5 pvs ou moin le Pj n'est pas invulnérable et a 0 pvs il ne se fait pas soigné ! :(



void main()
{
object oTarget=GetEnteringObject();
int nHP = GetCurrentHitPoints(oTarget);
if (nHP<=5)
{
SetPlotFlag(oTarget,TRUE);
}
if (nHP<=0)
{
SpeakString ("L'energie magique contenue dans la salle vous soigne !");
ApplyEffectToObject (DURATION_TYPE_INSTANT,EffectHeal (GetMaxHitPoints(oTarget)),oTarget);
}
}

Par Azrael07 le 24/1/2003 à 18:10:58 (#3092899)

ben la solution que je vois c dans le OnHeartBeat, mais c'est pas fiable du tout, puisque ca n'a lieux que toutes les 6s.

sinon tu peux faire un truc toi meme, genre un script qui s'autoexecute toutes les secondes si quelqu'un est dans la zone

genre :


void main()
{
object oArea = OBJECT_SELF;
object oPlayer = GetFirstPC();
do
{
if(GetArea(oPlayer) == oArea && /*fonction qui donne de la vie je m'en souviens plus ^_^*/ )
{
//Ton script
}
oPlayer = GetNextPC();
} while(GetIsObjectValid(oPlayer));
DelayCommand(1.0f, ExecuteScript("NOM_DU_SCRIPT", oArea));
}


voila, y'a peut etre une solution plus simple, mais ca devrais marcher comme ca, enfin le problème est toujours que c'est teste que tout les 1s (la valeur peut encore etre baissée mais gare aux resources ;) )

Par Megilindir le 24/1/2003 à 18:45:24 (#3093109)

Suggestions d'un pas-du-tout-doué-en-script (je sais pas si ce que je vais dire est bon)

Si le perso meurt, les conditions peuvent s'appliquer à lui ?

Pour la deuxième condition, ça donnerait quoi si on mettait résurrection au lieu de guérison ?

Par Zandramas le 24/1/2003 à 18:49:22 (#3093128)

Merci ! Faut esperer que le Pj ne mourra pas entre 2 testes !


@Meg : Ouais faire renaitre une fois mort sa peut se faire :) J'utiliserais sa en dernier recours :p Parceque le but noralement c'est que le Pj ne meurt pas !

(au cas ou je met le Pj invincible des qu'il rentre et puis voila !)

Par Florin le 24/1/2003 à 18:53:49 (#3093158)

Euh je vais sans doute dire une connerie mais pour revenir au problème initial, ils seront également insensibles à toutes attaques physiques non magiques (sauf à la macro Kill mais ca c'est une attaque divine :D ), mais après tout dépend de ce que tu veux faire c'est sur que si ca ne te dérange pas mettre en invul est la meilleure solution ;)

Par Zandramas le 24/1/2003 à 20:55:15 (#3093930)

Non sa ne me dérange pas normalement il n'y aura que des mages dans cette salle ;) Donc c'est pas un probleme ! (si un individu se présente je lui réserves quelques surprises maisons :p)

JOL Archives 1.0.1
@ JOL / JeuxOnLine