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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Défi pour scripteur: créer une zone ou une pierre de rappel ne fonctionne pas :)

Par Elmo le 9/12/2002 à 1:37:09 (#2741251)

bon en fait j'ai un anneau de rappel (ouais bon j'ai trouvé ça plus pratique qu'un galet entouré de cordages) et j'aimerai que son pouvoir soit bloqué dans une zone précise, une prison en fait, car sinon c'est un peu facile de se téléporter au lieu de payer l'amende vous trouvez pas?

Par Dark -PROUT- le 9/12/2002 à 1:41:41 (#2741265)

Demande au mj d'Amaris (www.amaris.fr.st =), il l'a fait pour son module :D

Par eMRaistlin le 9/12/2002 à 2:06:31 (#2741317)

BEin, en gros, dans le script de respawn de ton module, il suffit de faire une boucle simple comme ca :


if (GetTag(oArea)=="PRISON")
{
return;
}

tu met ca entre ta declaration de variable et l'execution du script.

Bon, evidemment, j'ai simplifié a mort, mais c'est l'idée ^^

Si tu me met ton script de respawn et ce que tu veux qu'il se passe, je pourrait completer (ainsi que le tag de l'Area Prison ^^)

Par Elmo le 9/12/2002 à 2:40:56 (#2741403)

en fait le respawn j'ai laissé par défaut mais c'est pour l'activateitem de mon anneau de rappel:


void main

{
if(GetTag(oItem) == "nabanneau")
{
location LastRecallUsed;
LastRecallUsed = GetLocation(GetItemActivator());
SetLocalLocation(GetItemActivator(),"LastRecallUsed",LastRecallUsed);
SetLocalInt(GetItemActivator(),"HasRecalled",1);
ActionCastFakeSpellAtObject ( SPELL_DISMISSAL , GetItemActivator());
DelayCommand(0.3, AssignCommand(GetItemActivator(), SpeakString("A MOI NABARUS!!!", TALKVOLUME_TALK)));
DelayCommand (0.5,
AssignCommand(GetItemActivator(),
JumpToLocation(GetLocation(GetObjectByTag("NW_RECALL_PORTAL")))));

}
}


tag de l'area: Prison

Par eMRaistlin le 9/12/2002 à 9:50:39 (#2742007)

Bein, c'est pareil ^^ :


void main
{
//Tu ne defini pas oItem ?
//De la même facon, vu le nombre de fois ou tu utilise GetItemActivator, tu devrait le stocker, plutot.
if(GetTag(oItem) == "nabanneau")
{
{if (GetTag(GetArea(GetItemActivator()))=="Prison")
{return;}
location LastRecallUsed;
LastRecallUsed = GetLocation(GetItemActivator());
SetLocalLocation(GetItemActivator(),"LastRecallUsed",LastRecallUsed);
SetLocalInt(GetItemActivator(),"HasRecalled",1);
ActionCastFakeSpellAtObject ( SPELL_DISMISSAL , GetItemActivator());
DelayCommand(0.3, AssignCommand(GetItemActivator(), SpeakString("A MOI NABARUS!!!", TALKVOLUME_TALK)));
DelayCommand (0.5,
AssignCommand(GetItemActivator(),
JumpToLocation(GetLocation(GetObjectByTag("NW_RECALL_PORTAL")))));

}
}

Par Cassin le 9/12/2002 à 10:32:56 (#2742194)

Ou alors tu ne fais activer le teleport QUE si une certaine variable est à 1, et dans le OnEnter de ta (ou tes) zone(s) tu la remet à 0... ;)

Par Elmo le 9/12/2002 à 17:14:22 (#2745126)

oups m'étais trompé de script c'est l'ancien (désolé je sors d'un formatage ;) )

vla le bon

void main()
{
ExecuteScript(GetTag(GetItemActivated()),GetItemActivator());
object oUser = GetItemActivator();
object oTarget = GetItemActivatedTarget();
string sItemTag = GetTag(GetItemActivated());
object oItem = GetItemActivated();
if (sItemTag == "StaffofDays")
{
ExecuteScript("tchange", oUser);
return;
}
if(GetTag(oItem) == "nabanneau")
{
location LastRecallUsed;
LastRecallUsed = GetLocation(GetItemActivator());
SetLocalLocation(GetItemActivator(),"LastRecallUsed",LastRecallUsed);
SetLocalInt(GetItemActivator(),"HasRecalled",1);
ActionCastFakeSpellAtObject ( SPELL_DISMISSAL , GetItemActivator());
DelayCommand(0.3, AssignCommand(GetItemActivator(), SpeakString("A MOI NABARUS!!!", TALKVOLUME_TALK)));
DelayCommand (0.5,
AssignCommand(GetItemActivator(),
JumpToLocation(GetLocation(GetObjectByTag("NW_RECALL_PORTAL")))));

}
}


mais j'ai essaye d'insérer ta ligne et ça veut pas compiler :(

Par eMRaistlin le 9/12/2002 à 17:26:02 (#2745245)

Bon, je vais partir du post de depart, donc i ca compile pas, ca vient peut etre de la aussi ^^


void main()
{
ExecuteScript(GetTag(GetItemActivated()),GetItemActivator());
object oUser = GetItemActivator();
object oTarget = GetItemActivatedTarget();
string sItemTag = GetTag(GetItemActivated());
object oItem = GetItemActivated();

//LABEL 1
if (sItemTag == "StaffofDays")
{
ExecuteScript("tchange", oUser);
return;
}
//Si tu ne veux pas du script tchange en prison, passe la partie suivante a l'endroit LABEL1

if (GetTag(GetArea(GetItemActivator()))=="Prison")
{return;}
//Fin du rajout
if(GetTag(oItem) == "nabanneau")
{
location LastRecallUsed;
LastRecallUsed = GetLocation(GetItemActivator());
SetLocalLocation(GetItemActivator(),"LastRecallUsed",LastRecallUsed);
SetLocalInt(GetItemActivator(),"HasRecalled",1);
ActionCastFakeSpellAtObject ( SPELL_DISMISSAL , GetItemActivator());
DelayCommand(0.3, AssignCommand(GetItemActivator(), SpeakString("A MOI NABARUS!!!", TALKVOLUME_TALK)));
DelayCommand (0.5,
AssignCommand(GetItemActivator(),
JumpToLocation(GetLocation(GetObjectByTag("NW_RECALL_PORTAL")))));

}
}

Par Elmo le 9/12/2002 à 19:27:41 (#2746353)

merci dieu² (vais finir par monter une secte mwa)

JOL Archives 1.0.1
@ JOL / JeuxOnLine