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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

objet qui tue un ennemi d'un seul coup

Par drclick le 19/10/2002 à 13:48:21 (#2363371)

Extrait d'un post de Kemay

void main()
{
//Definir oObjet comme etant l'objet qui vient d'etre active
object oObjet = GetItemActivated();
//Definir oCible comme etant la cible de l'objet active
object oCible = GetItemActivatedTarget();
//Definir lCible comme la localisation de oCible
location lCible = GetItemActivatedTargetLocation();
//Definir oPC comme etant la creature qui active oObjet
object oPC = GetItemActivator();
//Si oObjet est objet6
if( GetTag(oObjet)=="objet6" )
{
//et si oCible est le dragon
if( GetTag(oCible)=="Dragon" )
{
//Detruire le dragon
DestroyObject(oCible);
//et le remplacer par un chien
//Si tu veux enlever l'effet visuel efface ",TRUE" dans la ligne qui suit
CreateObject(OBJECT_TYPE_CREATURE,"nw_dog",lCible,TRUE);
//Detruire objet6
//Si tu ne veux pas que objet6 soit detruit apres utilisation sur le dragon,efface la ligne qui suit
DestroyObject(oObjet);
//Recompenser l'equipe du joueur qui a detruit le dragon en XP
//Remplace 500 par le nombre d'xp que tu veux donner dans la ligne qui suit
int nReward = 500;
object oMember = GetFirstFactionMember(oPC);
while( oMember != OBJECT_INVALID )
{
GiveXPToCreature(oMember,nReward);
oMember = GetNextFactionMember(oPC);
}
}
}
}


chez moi, ce script ne marche pas !! normalement mes tags sont bon !!
- J'ai essayé de mettre 9000 points de vie a mon dragon et je ne le tue pas d'un seul coup !!
- Je devrais recevoir 500 XP alors que je n'en recois que 17 !!
- L'arme devrais se detruire apres utilisation, et je l'ai tjrs dans la main !!

Je sais que je suis super newbie en script, alors y aurait il une ame charitable qui pourrait m'expliquer comment faire ??

Merci !

PS: Sinon le script pour faire une seule arme avec plusieurs morceaux marche trés bien !! Merci a son auteur !!

Par Tyn' le 19/10/2002 à 14:22:52 (#2363579)

Après test, OnActivateItem ne se déclanche pas quand on utilise une arme sur une cible, mais uniquement lorsqu'on utilise un pouvoir de cet objet.

Tu dois donc lier un pouvoir unique sur l'objet en question. Ceci se fait via l'onglet Propriétés de l'objet, dans la catégorie Lancer un sort, avec le nom Pouvoir Unique.

C'est l'utilisation de ce pouvoir unique qui déclanchera OnActivateItem.

Le script de Kemay fonctionnera alors :

void main()
{
//Definir oObjet comme etant l'objet qui vient d'etre active
object oObjet = GetItemActivated();
//Definir oCible comme etant la cible de l'objet active
object oCible = GetItemActivatedTarget();
//Definir lCible comme la localisation de oCible
location lCible = GetItemActivatedTargetLocation();
//Definir oPC comme etant la creature qui active oObjet
object oPC = GetItemActivator();
//Si oObjet est objet6
if( GetTag(oObjet)=="objet6" )
{
//et si oCible est le dragon
if( GetTag(oCible)=="Dragon" )
{
//Detruire le dragon
DestroyObject(oCible);
//et le remplacer par un chien
//Si tu veux enlever l'effet visuel efface ",TRUE" dans la ligne qui suit
CreateObject(OBJECT_TYPE_CREATURE,"nw_dog",lCible,TRUE);
//Detruire objet6
//Si tu ne veux pas que objet6 soit detruit apres utilisation sur le dragon,efface la ligne qui suit
DestroyObject(oObjet);
//Recompenser l'equipe du joueur qui a detruit le dragon en XP
//Remplace 500 par le nombre d'xp que tu veux donner dans la ligne qui suit
int nReward = 500;
object oMember = GetFirstFactionMember(oPC);
while( oMember != OBJECT_INVALID )
{
GiveXPToCreature(oMember,nReward);
oMember = GetNextFactionMember(oPC);
}
}else{
//Si la cible n'est pas le dragon
SendMessageToPC(oPC,"Ce pouvoir reste sans effet.");
}
}
}

JOL Archives 1.0.1
@ JOL / JeuxOnLine