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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

item-alarme

Par fauxninja le 24/12/2002 à 9:38:16 (#2867712)

est til possible de créer un item qui previendrai un joueur de la presence d'un autre joueur dans une zone X.

Par eMRaistlin le 24/12/2002 à 13:18:37 (#2869200)

C'est plus simple de creer un trigger qui verifie si l'item est la sur le OnEnter d'un PC, et qui envoi l'alarme...

enfin, je pense...

Par fauxninja le 24/12/2002 à 13:37:34 (#2869395)

mm, je sai pas trop c koi un triger. et le OnEnter d'un pc, c koi donc? c pas plutot le OnEnter de la zone?

Par eMRaistlin le 24/12/2002 à 13:39:18 (#2869417)

je voulais dire sur le OnEnter qui verifie que GetIsPC(GetEnteringObject()) soit vrai...

Le trigger, c'est le "Declencheur" en francais, je crois... c'est la zone violette a dessiner en ddl sur le toolset (ddl = dot dot lign)

Par fauxninja le 24/12/2002 à 13:51:14 (#2869559)

et pour envoyer l'alarme? ca se passe comment? (il fau qu'un perso ayant un certain item recoi l'alarme, pas les autres)

Par coolstar le 24/12/2002 à 14:47:30 (#2870012)

Mais quand tu parles de Zone... tu veux dire Area (Zone!) ou Trigger (déclencheur!)... :doute:

Par fauxninja le 24/12/2002 à 15:10:23 (#2870185)

comment je peu identifier un jouer qui a un item special parmis tou les joueurs?

Par coolstar le 24/12/2002 à 15:22:29 (#2870271)

Ca ne répond pas à la question... sachant que les conséquences de Scriptage n'apparaissent pas du tout identiques... :doute:

Par coolstar le 24/12/2002 à 16:32:46 (#2870830)

Bon...


Admettons que ce soit pour quand n'importe quel PC entre dans n'importe quelle Area (ça vaut aussi pour n'importe quel Trigger!)... Ceci devrait normalement faire l'affaire (mais je peux pas tester en Multi!)... :D


/* Script signifiant au Module de Rechercher les Possesseurs de l'"Anneau de Revelation",
afin de leur communiquer les "Coordonnees" de chaque PC ('Nom du PC' & 'Nom de l'Area' (et/ou 'Trigger')...
By coolstar - A mettre dans le OnEnter de chaque Area : */

void main()
{
object oRevelation = GetObjectByTag("Revelation");

object oPC = GetEnteringObject();
string sPCName = GetName(oPC);

object oArea = GetArea(oPC);
string sAreaName = GetName(oArea);

SetLocalString(oRevelation, "Revel_PC", sPCName);
SetLocalString(oRevelation, "Revel_Area", sAreaName);

SignalEvent(GetModule(),EventUserDefined(6666));
}


/* Script indiquant la 'Position' des PCs aux Possesseurs de l'"Anneau de Revelation"...
By coolstar - A mettre dans le OnUserDefined du Module : */

void main()
{
object oPC = GetFirstPC();

object oRevelateur = GetItemPossessedBy(oPC, "Anneaux_de_Revelation_Etrange");

object oRevelation = GetObjectByTag("Revelation");
string sPCName = GetLocalString(oRevelation, "Revel_PC");
string sAreaName = GetLocalString(oRevelation, "Revel_Area");
string sRevelation = sPCName+" vient d'arriver dans "+sAreaName;

switch(GetUserDefinedEventNumber())
{
case 6666:
{
while (GetIsObjectValid(oPC) && GetIsObjectValid(oRevelateur))
{
SendMessageToPC(oPC, sRevelation);

oPC = GetNextPC();
}

}
}
}

Par fauxninja le 24/12/2002 à 17:36:37 (#2871336)

a quoi ca corespond l'objet oRevelation?
c l'ano de revelation aussi? je doi mettre son tag?

Par coolstar le 24/12/2002 à 17:54:44 (#2871485)

Oups! oublié de préciser... :D


Tu mets en fait ce que tu veux, bien sûr... mais disons que pour l'exemple ici l'Anneau a pour TAG Anneaux_de_Revelation_Etrange... tandis que Revelation est le TAG d'un 'Plaçable' où seront stockés toutes les Variables (celles qui servent à relever les 'Coordonnées'!)... ;)

...

Par fauxninja le 24/12/2002 à 18:06:32 (#2871591)

mais ce placable.. je le met ou? et j'en fai koi exactement?
on peu pas faire sans ce placable?

Par coolstar le 24/12/2002 à 18:10:56 (#2871638)

Vu que ça concerne TOUT Porteur, il faut un "réceptacle référence" pour les Variables... et n'importe quel Objet faisant l'affaire, tu peux aussi bien prendre un "Plaçable" (qu'importe lequel, un élément du Décor fera très bien l'affaire!)... L'avantage par ailleurs est que en laissant le-dit 'Plaçable' "non Utilisable", tu n'encoures aucun risque ainsi qu'il puisse être détruit... :D

;)

Par Jedaï le 24/12/2002 à 19:33:20 (#2872415)

Euh Coolstar, avec ce script (le 2ème) si le premier PC a l'anneau, tous les joueurs seront informés, voici tes script un peu corrigés et simplifiés :


/* Script signifiant au Module de Rechercher les Possesseurs de l'"Anneau de Revelation",
afin de leur communiquer les "Coordonnees" de chaque PC ('Nom du PC' & 'Nom de l'Area' (et/ou 'Trigger')...
By coolstar - A mettre dans le OnEnter de chaque Area : */

void main()
{
object oStock = GetModule();

object oPC = GetEnteringObject();
string sPCName = GetName(oPC);

object oArea = GetArea(oPC);
string sAreaName = GetName(oArea);

SetLocalString(oStock, "sRevel_PC", sPCName);
SetLocalString(oStock, "sRevel_Area", sAreaName);

SignalEvent(oStock, EventUserDefined(6666));
}



/* Script indiquant la 'Position' des PCs aux Possesseurs de l'"Anneau de Revelation"...
By coolstar - A mettre dans le OnUserDefined du Module : */

void main()
{

switch(GetUserDefinedEventNumber())
{
case 6666:
{
object oPC = GetFirstPC();

object oRevelateur = GetItemPossessedBy(oPC, "Anneaux_de_Revelation_Etrange");

object oRevelation = GetModule();
string sPCName = GetLocalString(oRevelation, "sRevel_PC");
string sAreaName = GetLocalString(oRevelation, "sRevel_Area");
string sRevelation = sPCName+" vient d'arriver dans "+sAreaName;


while (GetIsObjectValid(oPC) && GetIsObjectValid(oRevelateur))
{
SendMessageToPC(oPC, sRevelation);

oPC = GetNextPC();
oRevelateur = GetItemPossessedBy(oPC, "Anneaux_de_Revelation_Etrange");
}

}
}
}


Joyeux Noël !:p

Par coolstar le 25/12/2002 à 14:20:33 (#2875947)

:mdr:

JOL Archives 1.0.1
@ JOL / JeuxOnLine