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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

systeme de mort ...

Par callgirl le 2/10/2002 à 17:44:34 (#2271176)

Bon vu que mon module sera rp, le respawn sa me convien pas du tout, donc je cherche un scripte qui propose un respawn mais pas a l'endroit ou le pj est mort mais par exemple dans un temple specifique...deplus j aimerais que lors de sa mort le PJ perde toute l'xp aquise sur le module ainsi que les objet et l'or. quelqu'un peut m'aider a faire sa parceque je commence a savoir un peut scripter mais la c au dessus de mes capacités merci...

Par Sempai le 2/10/2002 à 18:35:36 (#2271466)

Voici le script nw_o0_respawn (à placer dans OnPlayerRespawn) qui existe déjà dans chaque module à la création, que tu peux modifier à souhait. Le script serait trop long à mettre, je ne vais mentionner que quelques lignes.

Aux lignes 16 à 38, se trouve la fonction des pénalités au respawn, ainsi que les messages inscrits à ce moment-là (comme "perte de PX" par exemple).


void ApplyPenalty(object oDead)

A la suite, ajoute ou retire ce que tu veux, en fonction de la pénalité que tu veux accorder.

Les lignes 45 à 77 ne concernent que des cas particuliers de la campagne officielle. A la ligne 82 apparait la fonction principale.


void main()
{
object oRespawner = GetLastRespawnButtonPresser();
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oRespawner);
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(oRespawner)), oRespawner);
RemoveEffects(oRespawner);
//* Return PC to temple



string sDestTag = "NW_DEATH_TEMPLE";
string sArea = GetTag(GetArea(oRespawner));


Comme indiqué ici, ce passage est le plus important. Il indique que le sujet est soigné de tous ces maux et que l'endroit où il va renaître sera celui noté "NW_DEATH_TEMPLE". Il te suffit donc de créer un WayPoint de ce nom là où tes PJs ressusciteront.
Les lignes 94 à 150 ne concernent que des particularités de la campagne officielle.


if (GetIsObjectValid(GetObjectByTag(sDestTag)))
{

if (sDestTag == "NW_DEATH_TEMPLE")
{
object oPriest = GetObjectByTag("NW_DEATH_CLERIC");
//SetLocalInt(oPriest, "NW_L_SAYONELINER", 10);

//AssignCommand(oPriest, DelayCommand(3.0,ActionStartConversation(oRespawner)));
AssignCommand(oPriest, DelayCommand(2.1, PlayVoiceChat(VOICE_CHAT_TALKTOME, oPriest)));

SetLocalLocation(oRespawner, "NW_L_I_DIED_HERE", GetLocation(GetLastRespawnButtonPresser()));
SetLocalInt(oRespawner, "NW_L_I_DIED", 1);
SetLocalObject(oPriest, "NW_L_LASTDIED", GetLastRespawnButtonPresser());
// * April 2002: Moved penalty here, only when going back to the death temple
ApplyPenalty(oRespawner);
}
object oSpawnPoint = GetObjectByTag(sDestTag);
AssignCommand(oRespawner,JumpToLocation(GetLocation(oSpawnPoint)));
// * mak
}
else
{
// * do nothing, just 'res where you are.
}
}


La ligne demandant si le lieu de soins est bien "NW_DEATH_TEMPLE" n'appelle que le cas de la campagne officielle où il y a un prêtre de Tyr à proximité. Cela pour signaler une conversation particulière avec celui qui vient de ressusciter.

La dernière proposition stipule que l'on renaît sur son lieu de décès s'il n'y a aucun endroit nommé "NW_DEATH_TEMPLE".

Si tu changes le nom de cet endroit, prend soin de le renommer dans tout le fichier.

Re: systeme de mort ...

Par miriandel le 2/10/2002 à 19:28:04 (#2271759)

Provient du message de callgirl
Bon vu que mon module sera rp, le respawn sa me convien pas du tout, donc je cherche un scripte qui propose un respawn mais pas a l'endroit ou le pj est mort mais par exemple dans un temple specifique...deplus j aimerais que lors de sa mort le PJ perde toute l'xp aquise sur le module ainsi que les objet et l'or. quelqu'un peut m'aider a faire sa parceque je commence a savoir un peut scripter mais la c au dessus de mes capacités merci...


Es-tu convaincu que le rp requiert de frustrer le PJ, pire de le séparer de son groupe quand il meurt ?

Le DM est au service du plaisir de ses joueurs, n'est-il pas ?
Légèrement ajuster certaines règles, pourquoi pas, mais si on pousse le bouchon trop loin, on a vite fait de décourager.

Juste un son de cloche *DING*

Par callgirl le 5/10/2002 à 13:10:40 (#2285326)

Je suis pas le genre de mj qui met tout en oeuvre pour sauver la peau des pj, s'ils meurent c souvent merité. Pour moi quant un pj meure il est mort. Sur table je fais meme tirer plusieurs perso par joueur parceque quant il meure il en retire un ou en prend un autre ! Alors la je trouve que je suis plustot cool non ?

JOL Archives 1.0.1
@ JOL / JeuxOnLine