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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Annuler le Respawn et le Savegame ?

Par Zariel le 27/10/2002 à 23:16:51 (#2420405)

Est-ce possible ? J'utilise le système de la 3eme edition dans la mort de mes personnages, mais j'aimerai les empecher de pouvoir respawn ou de sauver aprés leur mort.

Pourrait-on mettre une script dans le OnPlayerDeath du module pour empecher cela ?

Merci.

Par Zariel le 28/10/2002 à 12:40:49 (#2423387)

Désolé d'insister, mais je remonte ce post ;)

J'ai pas envie de basculer mon module en HCR pour ces 2 ou 3 petites règles...;)

Par eMRaistlin le 28/10/2002 à 12:43:38 (#2423408)

Pourrait-on mettre une script dans le OnPlayerDeath du module pour empecher cela ?


Non : tu enleve simplement le Script des event du module OnPlayerRespawn. (tu le laisse a blanc : y devrait plus se passer grand chose, a la mort de tes PJ ^^)

Je te conseille toutefois d'attribuer un objet quelquonque sur tes pj mort, et de verifier sur le OnPlayerEnter que cet objet n'est pas dans son inventaire, paske sinon, il se deco/reco et revient en vie ...

Par Zariel le 28/10/2002 à 12:54:55 (#2423506)

Ok, trés judicieux :)

Quel script mets tu dans le OnPlayerEnter pour que le joueur mort ne puisse pas revenir dans la partie ? Et quelle script met tu dans l'objet pouir faire correspondre tous ca ?

Par eMRaistlin le 28/10/2002 à 13:17:12 (#2423668)

En fait, tu peut pas empecher le client de rentrer, mais tu t'arrange pour que si il a l'item sur lui, il remeurt...


Genre :


void main()
{
object oMort = GetItemPossessedBy(GetEnteringPC(),"Tag de l'objet que tu donne sur le OnPlayerDeath"));

if (GetIsObjectValid(oMort))
{
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDeath(),GetEnteringPC());
}
}

Par coolstar le 28/10/2002 à 13:22:55 (#2423730)

Hi!


Heeuuu... Vraiment obligé d'avoir un Item ? chaque PJ n'a pas un Identifiant (genre Ref ?) permettant de le repérer et de définir son Statut (Mort , ou autre...) et donc les mesures à appliquer le cas échéant ?? :confus:

Par eMRaistlin le 28/10/2002 à 13:34:57 (#2423834)

Heeuuu... Vraiment obligé d'avoir un Item ? chaque PJ n'a pas un Identifiant (genre Ref ?) permettant de le repérer et de définir son Statut (Mort , ou autre...) et donc les mesures à appliquer le cas échéant ??


Si, mais si son serveur est down, (et comme les modules de NWN ne peuvent que rarement depasser plus de 72heures sans reload a cause des leaks...) et qu'il le re-up, alors le perso d'un joueur sera de nouveau disponible, car les-dites variables locales ne sont pas sauvées sur le perso, mais sur le serveur... Donc, si tu me met pas d'item, et que je viens avec un level 19 qui meurs : je patiente 2 jours, je reviens, et il est a nouveau la^^

Par coolstar le 28/10/2002 à 13:51:21 (#2423956)

k!


Mais y'a pas moyen de conserver ces Données de façon permanente, juste avant rafaîchissement du Serveur... genre ?? :confus:

Par Zariel le 28/10/2002 à 14:11:20 (#2424128)

Ok, c'est pigé ;)

Résumons, le script que tu viens de donner attribue un objet au PJ dés qu'il crève, donc il le conserve à chaque connexion et ceci déclenche sa mort. C'est bien ça ?

Par eMRaistlin le 28/10/2002 à 14:41:44 (#2424386)

presque...


Ce script verifie si l'objet est present, et si oui, alors il tue le PJ.


Il te faut un script sur le OnPlayerDeath qui fasse ca :


void main()
{
object oPC= GetLastPlayerDied();
CreateItemOnObject("RESREF de l'objet cité plus haut",oPC,1);
}


Sinon, pour Coolstar : si, c'est possible, mais avec la solution du PWUM, c'est a dire une sortie des données sur Log, puis une insertion du log durant le loading... A chacun son choix...je prefere l'itemizer...

(mais bioware a promis de s'occuper des save de variables locals prochainement..)

Par Zariel le 28/10/2002 à 14:48:13 (#2424433)

Donc : dans le OnPlayerEnter :


void main()
{
object oMort = GetItemPossessedBy(GetEnteringPC(),"Tag de l'objet que tu donne sur le OnPlayerDeath"));

if (GetIsObjectValid(oMort))
{
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDeath(),GetEnteringPC());
}
}

et dans le OnPlayerDeath:

void main()
{
object oPC= GetLastPlayerDied();
CreateItemOnObject("RESREF de l'objet cité plus haut",oPC,1);
}

Ok, merci encore EmRaistling.

Par Zariel le 28/10/2002 à 21:35:29 (#2427729)

Finalement, je suis passé en HCR marre de me prendre la tête sur les scripts, facilité quand tu nous tiens...:D

Par coolstar le 30/10/2002 à 4:30:02 (#2437467)

Heeuuu... eMRaistlin, c quoi PWUM & l'itemizer ?? :D

Merci... :merci:

Par eMRaistlin le 30/10/2002 à 7:35:35 (#2437647)

2 Systeme de sauvegarde intermodulaire.

L'un utilise une sortie vers le log, afin de notifie les modification, puis retranscrit le log lors d'un nouveau loading du serveur.

L'autre utilise des items cachés sur les inventaires de creature des joueurs. (sisi, vous avez bien lu...)

2 systemes efficaces, mais un peu McGuyver quand meme... en attendant que Bioware nous en fasse un ^^

Haa... c pas de l'Officiel ?

Par coolstar le 30/10/2002 à 12:23:19 (#2439337)

Thx!

JOL Archives 1.0.1
@ JOL / JeuxOnLine