Deco et reco

Répondre
Partager Rechercher
bon voila j'ai essayé de chercher mais je n'ai rien trouvé( peut être pas le bon mot clef) des petit malin s'amuse sur mon module a ce deco et reconnecté quand ils sont mort et il revienne vivant sans avoir respawn , comment faire???
tiens essaye ça :

script de nom sethp
Code PHP:

// Met le nombre de point de vie de Ocrea a la valeur nHP 
void SetCurrentHitPoints(object oCreaint nHP); 


void SetCurrentHitPoints(object oCreaint nHP

  
int nCurHP=GetCurrentHitPoints(oCrea); 
  
effect eAdjust
  if (
nCurHP>nHP
  { 
    
eAdjust=ExtraordinaryEffect(EffectDamage(nCurHP-nHP)); 
    
ApplyEffectToObject(DURATION_TYPE_INSTANTeAdjustoCrea); 
  } 
  else if (
nCurHP<nHP
  { 
    
eAdjust=ExtraordinaryEffect(EffectHeal(nHP-nCurHP)); 
    
ApplyEffectToObject(DURATION_TYPE_INSTANTeAdjustoCrea); 
  } 

script de nom fix_deco_reco


Code PHP:

#include "sethp" 

// fonctions declarations 


//************************************************************ 
//*        Fix du dead bug et de la deco mort reco vivant     * 
//*          Retrouve les PV qu il avait lors de la deco      * 
//*     !! script a mettre dans  evenenement OnClientEnter!!  * 
//************************************************************* 
void fix_deco_reco_enter (object oPC); 


//************************************************************ 
//*        Fix du dead bug et de la deco mort reco vivant     * 
//*          Retrouve les PV qu il avait lors de la deco      * 
//*     !! script a mettre dans  evenenement OnClientLeave!!  * 
//************************************************************* 
void fix_deco_reco_leave (object oPC); 



void fix_deco_reco_enter (object oPC

    
//Récupération des infos PJ uniques 
    
string sKey=GetPCPublicCDKey(oPC); 
    
string sPName=GetPCPlayerName(oPC); 
    
string sCName=GetName(oPC); 
    
string sUniqueKey=sKey+sPName+sCName+"fpv"


   
//Sauvegarde de la CDKey et du PlayerName pour usage ultérieur 
   
SetLocalString(oPC"CDKEY"sKey); 
   
SetLocalString(oPC"PNAME"sPName); 


    
//Récupération du flag de première connexion 
    
int nNoFirst=GetLocalInt(GetModule(), sUniqueKey+"CONNEXION"); 

   
//Test de la première connexion ou non 
   
if (nNoFirst
   { 
     
// recupration du nombre de PV lors de la deconection 
     
int nb_HP=GetLocalInt(GetModule(), sUniqueKey); 
     
SetCurrentHitPoints(oPCnb_HP); 
   } 
   else 
   { 
     
//Mettre le flag de première connexion 
     
SetLocalInt(GetModule(), sUniqueKey+"CONNEXION"1); 
  } 



void fix_deco_reco_leave (object oPC

  
int nHP=GetCurrentHitPoints(oPC); 


  
//Récupération des infos PJ uniques, dont celles sauvées à la connexion 
  
string sKey=GetLocalString(oPC"CDKEY"); 
  
string sPName=GetLocalString(oPC"PNAME"); 
  
string sCName=GetName(oPC); 
  
string sUniqueKey=sKey+sPName+sCName+"fpv"

  
//Stocr les PV d'un joueur à la déco 
  
SetLocalInt(GetModule(), sUniqueKeynHP); 



puis dans les events OnEnter et OnExit du module, met ces 2 fonctions, en incluant le script fix_deco_reco :
Code PHP:

void fix_deco_reco_enter (object oPC); 
 
void fix_deco_reco_leave (object oPC); 
Je vois pas trop l'interet de faire des biblio pour des fonctions qui ne seront appelées qu'une fois personellement

Et honnetement, stocker sKey et sPName, c'est un peu bête, mieux vaut stocker sUniqueKey, ca fait gagner que 4-5 lignes, mais c'est toujours ca de pris

Et personellement je trouve ca bete de baser ca sur la clé CD, suffit que le bonhomme joue depuis chez un copain pour que ca marche plus. Pour les pv ca va, mais faut voir a pas toutstocker comme ca, de toute façon sPName+sCName est deja unique.
Bon, tu crées 2 scripts deja :

le premier qui s'appelle sethp, tu mets la premiere fonction

le deuxième qui s'appelle fix_deco_reco, tu mets le deuxième pavé

Ensuite, dans ton OnClient Enter, tu rajoutes simplement :
Code PHP:

object oPC=GetEnteringObject();
fix_deco_reco_enter(oPC); 
Dans ton OnclientLeave, tu rajoutes :
Code PHP:

object oPC=GetExitingObject();
fix_deco_reco_leave(oPC); 
c'est pas moi qui ai fait ce script, et puis c'est plus clair comme ça.
Raistlin, as-tu inclut le script fix_deco_reco dans ton script onenter? (#include "fix_deco_reco")
merci tous les 2 sa marche super vous étés genial merci merci merci




heu une petite question j'ai mis le scrypt de la mort selon les regle D ET D mais si on est tous seul est que l'hémorragie est soigné comment revenir a la vie
???
Pourquoi ne pas avoir mis simplement un objet dans l'inventaire qui signifie que la personne est morte et l'enlever quand elle respawn ou ressuscite. Ca permet ainsi d'être sûr que la personne, même s'il se connecte d'un autre ordinateur mais que sur un seul perso.
Citation :
Provient du message de gaeriel/nekresh
Pourquoi ne pas avoir mis simplement un objet dans l'inventaire qui signifie que la personne est morte et l'enlever quand elle respawn ou ressuscite. Ca permet ainsi d'être sûr que la personne, même s'il se connecte d'un autre ordinateur mais que sur un seul perso.
Suffit également de ne pas utiliser la clé CD pour ca

Et cette méthode a l'avantage de sauver les pv quels que soient leur nombre, avec ta méthode on peut deco a 1pv et revenir au combat
Moi je propose une solution au fait que les personnes fassent du déco/reco pour ne pas avoir la fenêtre de respawn. S'ils ne sont pas morts, ils n'ont aucunement besoin de l'avoir. Et moi, franchement, je me déco/reco pas avec 1 pv devant un dragon
Citation :
Provient du message de gaeriel/nekresh
Moi je propose une solution au fait que les personnes fassent du déco/reco pour ne pas avoir la fenêtre de respawn. S'ils ne sont pas morts, ils n'ont aucunement besoin de l'avoir. Et moi, franchement, je me déco/reco pas avec 1 pv devant un dragon
De toute facon, l'ideal en attendant la 1.30, c'est de faire les 2, ca permet d'eviter que les morts reviennent a la vie en cas de crash server
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés