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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

une fonction pour ecrire un message aux joueurs // objets indropable

Par fauxninja le 24/12/2002 à 13:00:02 (#2869050)

ya t'il une fonction qui permet d'ecrire un message a tous les joueurs?
je la trouve pas.

et aussi, coment faire des objets indropable?
car meme en cochant "objet de quete" on peu les droper..

Par eMRaistlin le 24/12/2002 à 13:27:23 (#2869293)

Pour empecher qu'un PC droppe un item, il te faut faire un script dans le OnUnAcquired qui verifie si c'est l'item qui est droppé, et si c'est cet item, alors il faut le detruire pour le recreer dans l'inventaire du PC ( a noter qu'il faut eviter la multiplication des pains si des PC se donnent l'item... Le joueur A donne l'item, il declenche le OnUnAcquired, qui detruit l'item, donc B perd l'item, declenche le OnUnAcquired...etc etc... enfin, je le vois bien comme cA...)

Maintenant, si c'est pour des NPC, tu as une case a cocher dans l'inventaire du NPC qui te permet de le rendre dorppable ou non...

Pour le message tout les joueurs, tu fais un SpeakString avec TALKVOLUME_SHOUT... ca fera pas exactement le resultat attendu, mais ca suffira amplement ^^

Par fauxninja le 24/12/2002 à 13:36:23 (#2869384)

donc ton truc ca marche pour pas que ca multipli les petits pains?

je vai esayer de toutes facons.

Par fauxninja le 24/12/2002 à 18:05:13 (#2871577)

je voudrai que ca delete les item de tag et resref "bois" et "message" quand on les pose ou donne
je met dans onunaquire:


void main()
{
object item=GetExitingObject();
if (item == GetObjectByTag("bois"))
{
DestroyObject(item);
}
if (item == GetObjectByTag("message"))
{
DestroyObject(item);
}
}

mais quand je pose les item, ca fai rien..

Par Jedaï le 24/12/2002 à 19:24:06 (#2872343)

On a dit item pas object !


void main()
{
object oLost = GetModuleItemLost();
if (GetTag(oLost) == "bois")
{
DestroyObject(oLost);
}
if (GetTag(oLost) == "message")
{
DestroyObject(oLost);
}
}


De plus, j'avais cru comprendre que tu voulais les rendre indroppable, pas les détruire dès qu'il le seraient (dropés) ?

Dans ce cas fais plutôt ça :


void main()
{
object oLost = GetModuleItemLost();
object oPC = GetModuleItemLostBy();

if (GetTag(oLost) == "bois")
{
string sResRef = GetResRef(oLost);
DestroyObject(oLost);
CreateItemOnObject(sResref, oPC);
}
if (GetTag(oLost) == "message")
{
string sResRef = GetResRef(oLost);
DestroyObject(oLost);
CreateItemOnObject(sResref, oPC);
}
}


Joyeux noël tout de même !:p

Par fauxninja le 24/12/2002 à 19:26:04 (#2872359)

ouais, mais la on peu faire le feinte de Raisltin, on peu doner l'objet a un ami, et ca en fait en chaine.

Par Jedaï le 24/12/2002 à 19:53:10 (#2872598)

Effectivement (faudrait quand même vérifier que le DestroyObject déclenche bien le OnUnAcquireItem et que le tag de l'objet détruit est récupérable, mais bon...) :




void main()
{
object oLost = GetModuleItemLost();
object oPC = GetModuleItemLostBy();

if (GetTag(oLost) == "bois" &&
!GetIsPC(GetItemPossessor(oLost)))
{
string sResRef = GetResRef(oLost);
DestroyObject(oLost);
CreateItemOnObject(sResref, oPC);
}
if (GetTag(oLost) == "message" &&
!GetIsPC(GetItemPossessor(oLost)))
{
string sResRef = GetResRef(oLost);
DestroyObject(oLost);
CreateItemOnObject(sResref, oPC);
}
}




Joyeux noël !!:p

JOL Archives 1.0.1
@ JOL / JeuxOnLine