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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

selection d'un joueur

Par Iridian le 28/11/2002 à 11:28:27 (#2662573)

Je cherche le moyen d'obtenir par script l'objet correspondant a un joueur, par exemple (dans l'idéal) :

-Je sélectionne un joueur dans la liste.
-J'active le pouvoir spécial de l'item.
-Dans le script je récupère l'objet "oPc" du joueur sélectionné.

Si ce n'est pas possible, n'importe qu'elle méthode de sélection a distance me conviens (sauf viser le joueur, je voudrais que ça puisse marcher même hors de vue)

Merci d'avance de vos conseils !

Par Nylou le 28/11/2002 à 11:44:39 (#2662681)

Tu peux déjà faire ça avec le DMHelper.

oups ! désolée j'ai posté trop vite. :p

Par eMRaistlin le 28/11/2002 à 11:53:02 (#2662735)

Le mieux, c'est de creer un object CREATURE par ton Helper, puis de lui mettre des listening pattern, et enfin, de lui demander d'affecter Un localObject. Je te fais un truc dans le genre, et j'edite le post...


Voila : C'est non testé, mais ca devrait pouvoir marcher :

On ItemActivated


void main()
{
//Declaration des variables
object oPC = GetItemActivator();
object oItem = GetItemActivated();

//verification que seul un MJ peut utiliser l'item DMHELP
if (GetTag(oItem) == "DMHELP")
{
if GetIsDM(oPC)
{
//Creation de l'assistant
CreateObject(OBJECT_TYPE_CREATURE,"dm_henchmen",GetLocation(oPC));
}
}
}



Dans le OnSpawn de la creature dm_enchmen

void main()
{
//ici, j'initialise le mode ecoute
SetListening(OBJECT_SELF,TRUE);
//ici, je lui demande d'ecouter tout ce qui est precede d'un '/'
SetListenPattern(OBJECT_SELF,"/**",6000);
}


Dans son OnConversation :

void main()
{
//declaration des variables
int nMatch = GetListenPatternNumber(); //Une fois reperée la chaine de caractere, il affecte un numero :(le 6000 du Set)
//ici, je declare une variable qui va permettre de verifier que le PC en question est trouve
int nTrouve = 0;

if(nMatch == 6000)
{
//ici, je recupere la ligne qui est a la 2eme place dans la chaine reconnue ( "/" + "nom" = 2)
string sPlayerName = GetMatchedSubstring(1);
//boucle de verification des noms
object oPC = GetFirstPC();
while (GetIsObjectValid(oPC))
{
if (GetName(oPC) == sPlayername)
{
nTrouve = 1;
// ICI, TU FAIS CE QUE TU VEUX
SendMessageToAllDMs("Operation reussie");
}
oPC = GetNextPC();
}
// si la variable nTrouve n'est pas a 1, c'est que le nom entre n'est pas bon
if (nTrouve != 1)
{
SendMessageToAllDMs("Verifiez le nom du joueur Cherche");
}
}
}


tu n'oublie bien sur pas de Creer un NPC invisible DMHelper, et en jeu, tu tape /nom_du_joueur pour activr ta commande.

Apres, a toi de remplacer le //ICI... par un SetLocalObject ou ce que tu veux!



C'est ca que tu voulais ??

Par Iridian le 28/11/2002 à 13:39:01 (#2663526)

Euh ... c'est sans doutes ce que je voulais :rolleyes:

Mais la j'avoue que je ne comprend pas tout :o

En tout ças merci, j'essaie ça ce soir et je verrais bien !
Ce qui serais génial, ce serai que tu commentes ton code (de façons assez détaillée) pour que je comprenne et que ça fasse avancer mes connaissances ;)

Mais c'est déjà très bien comme ça, merci encore :merci:

Par eMRaistlin le 28/11/2002 à 14:27:19 (#2663928)

J'essairait de le commenter, mais je suis au boulot, alors tu comprendras que la tout de suite, j'ai fait au plus vite.

Par Iridian le 28/11/2002 à 16:23:30 (#2664849)

:merci: Ne te vexe pas :merci: Ce n'était pas un reproche :merci: juste une humble demande :merci:

Je ne lit pas ce forum depuis longtemps, mais j'ai déjà appris la valeur de tes conseils sur les autres posts

Par eMRaistlin le 28/11/2002 à 20:25:06 (#2667051)

Et voilou ^^

Par Iridian le 29/11/2002 à 9:23:00 (#2670043)

Merci beaucoup, c'est tout de suite plus clair la :)

Une seule question :
ça : if GetName(oPC == sPlayername)
se serai pas plutôt : if (GetName(oPC) == sPlayername)

parce que sinon ba j'ai pas compris :sanglote:

Par eMRaistlin le 29/11/2002 à 9:27:13 (#2670060)

c'est totalement exact... j'edite mon post...

voila ce que c'est de scripter loin du toolset...

JOL Archives 1.0.1
@ JOL / JeuxOnLine