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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Mort et à poil

Par Verchanal le 9/2/2003 à 0:52:19 (#3199343)

Je bloque sur la compil d'un script qui met les item portés sur un corpse et puit qui fait un respawn selon l'alignement en trois lieux. Les deux scripts marchent séparemment mais une fois mis ensemble, la mort n'affiche pas le Deathpanel.

Script "pluskapoil"


/**********************************
Script: Drop Items To Corpse
Created By: Jaden Wagener
Created On: 08/29/02
**********************************/
//Drops all player's equipment and half of gold onto the corpse.
//Combination of Diablo I and II death styles.
//Script should be placed in module's OnDeath slot
void main()
{
//Set variables
int xCount, xGold;
object xPC, xCorpse, xItem;
location xLoc;
//Get player and find locations
xPC = GetLastPlayerDying();
xLoc = GetLocation(xPC);
//Create corpse at player's feet
xCorpse = CreateObject(OBJECT_TYPE_PLACEABLE,"corpse002",xLoc);
//Drop equipment on corpse
for (xCount = 1; xCount < 15; xCount++)
{
switch (xCount)
{
case 1: xItem = GetItemInSlot(INVENTORY_SLOT_ARMS,xPC); break;
case 2: xItem = GetItemInSlot(INVENTORY_SLOT_ARROWS,xPC); break;
case 3: xItem = GetItemInSlot(INVENTORY_SLOT_BELT,xPC); break;
case 4: xItem = GetItemInSlot(INVENTORY_SLOT_BOLTS,xPC); break;
case 5: xItem = GetItemInSlot(INVENTORY_SLOT_BOOTS,xPC); break;
case 6: xItem = GetItemInSlot(INVENTORY_SLOT_BULLETS,xPC); break;
case 7: xItem = GetItemInSlot(INVENTORY_SLOT_CHEST,xPC); break;
case 8: xItem = GetItemInSlot(INVENTORY_SLOT_CLOAK,xPC); break;
case 9: xItem = GetItemInSlot(INVENTORY_SLOT_HEAD,xPC); break;
case 10: xItem = GetItemInSlot(INVENTORY_SLOT_LEFTHAND,xPC); break;
case 11: xItem = GetItemInSlot(INVENTORY_SLOT_LEFTRING,xPC); break;
case 12: xItem = GetItemInSlot(INVENTORY_SLOT_NECK,xPC); break;
case 13: xItem = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,xPC); break;
case 14: xItem = GetItemInSlot(INVENTORY_SLOT_RIGHTRING,xPC); break;
}
if (GetIsObjectValid(xItem))
{
AssignCommand(xCorpse,ActionTakeItem(xItem,xPC));
}
}
//Now drop half of player's gold.
xGold = (GetGold(xPC)/2);
AssignCommand(xItem,TakeGoldFromCreature(xGold,xPC,FALSE));
//Now let's pop the death GUI
DelayCommand(2.5, PopUpDeathGUIPanel(xPC,TRUE,TRUE));
}


et script de téléport selon alignement

void main()
{
object oTargetHeaven = GetWaypointByTag("WP_HEAVEN");
location lTargetHeaven = GetLocation(oTargetHeaven);
object oTargetHell = GetWaypointByTag("WP_HELL");
location lTargetHell = GetLocation(oTargetHell);
object oTargetPurg = GetWaypointByTag("WP_PURG");
location lTargetPurg = GetLocation(oTargetPurg);
effect eRespawnHell = EffectVisualEffect(VFX_FNF_SUMMON_GATE);
effect eRespawnPurg = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_3);
effect eRespawnHeaven = EffectVisualEffect(VFX_FNF_SUMMON_CELESTIAL);
object oRespawner = GetLastRespawnButtonPresser();
if (GetGoodEvilValue(oRespawner) = 30) && (GetGoodEvilValue(oRespawner) = 71)
{
ApplyEffectToObject(DURATION_TYPE_INSTANT, eRespawnHeaven, oRespawner);
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oRespawner);
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(oRespawner)), oRespawner);
AssignCommand(oRespawner, JumpToLocation(lTargetHeaven));
}
}


en quoi sont ils incompatibles?

le script fait respawner le pj sur place, sans l'envoyer la ou il devrait aller selon son alignement

Par Azrael07 le 9/2/2003 à 7:01:09 (#3200139)

LES BALISES PHP Y_Y !!!!!!!!!!

bon y'a une balise de sitation c deja pas mal, mais le top ce serais des balises php, on y verais encore mieux (tu édite ton message et tu replaces les "quote" par des "php"

j'esserais de regarder des qu'elles y seront ;)

Par Jedaï le 9/2/2003 à 11:16:35 (#3200624)

Attention : là tu deux scripts qui ne vont pas sur le même emplacement : l'un va sur le OnDeath (drop) et l'autre sur le OnRespawn (respawn... ;) ).
Si tu as essayé de les combiner sur un seul emplacement (le OnRespawn non ?) ça ne marchera pas !

Par Verchanal le 9/2/2003 à 22:58:57 (#3204270)

je veux pas en faire uns eul, je voudrai que les deux (onrespawn et ondeath) marchent ensemble au lieu de s'ignorer

Par Jedaï le 9/2/2003 à 23:21:44 (#3204352)

Je ne vois pas très bien ce que tu veux dire, le script de drop fait juste droper à la mort puis passe la main en affichant le GUI de respawn, puis si le joueur clique sur respawn le script de respawn se lance, aucune interaction, ce n'est pas l'un qui fait planter l'autre à priori.:confus:

En tout cas il n'y a aucune raison évidente, je n'aurais peut-être pas écris le script de respawn comme ça mais il devrait marcher...
Tu as vérifié les tags ?:confus:

[Edit] As-tu essayer de rajouter des DelayCommand() devant les AssignCommand( JumpToLocation() ) ?

Par Verchanal le 10/2/2003 à 0:30:09 (#3204674)

losqu'on clique sur le GUI, on respawn sur place....et les TAG d'arrivée sont bon.

Si j'en active qu'un, il marche, l'autre aussi mais les deux ensemble non.

[edit]
Avec un DelayCommand (2.5, ça fonctionne sauf que le PC respawn sans avoir perdu quoi que ce soit, ni or, ni objet.

JOL Archives 1.0.1
@ JOL / JeuxOnLine