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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

[Script] Gestion des flags en duo avec PWUM

Par Tyn' le 17/9/2002 à 1:23:41 (#2171295)

Tous les modules permanents auront déjà eut le problème de définition des variables concernant le joueur. Je vous propose une façon simple de gérer des flags (variables fixées à un personnage), de façon sauvegardée par le système PWUM.

//:: Definition des fonctions
// Fonction Althea
// Recupere le nom d'une variable flaguee sur un joueur
string GetFlagName(object oPlayer, string sFlag);
// Fonction Althea
// Defini le flag sFlag sur le joueur oPlayer a la valeur nValue
void SetFlagInt(object oPlayer, string sFlag, int nValue);
// Fonction Althea
// Defini le flag sFlag sur le joueur oPlayer a la valeur fValue
void SetFlagFloat(object oPlayer, string sFlag, float fValue);
// Fonction Althea
// Defini le flag sFlag sur le joueur oPlayer a la valeur sValue
void SetFlagString(object oPlayer, string sFlag, string sValue);
// Fonction Althea
// Defini le flag sFlag sur le joueur oPlayer a la valeur lValue
void SetFlagLocation(object oPlayer, string sFlag, location lValue);
// Fonction Althea
// Recupere le flag sFlag sur le joueur oPlayer
int GetFlagInt(object oPlayer, string sFlag);
// Fonction Althea
// Recupere le flag sFlag sur le joueur oPlayer
float GetFlagFloat(object oPlayer, string sFlag);
// Fonction Althea
// Recupere le flag sFlag sur le joueur oPlayer
string GetFlagString(object oPlayer, string sFlag);
// Fonction Althea
// Recupere le flag sFlag sur le joueur oPlayer
location GetFlagLocation(object oPlayer, string sFlag);

string GetFlagName(object oPlayer, string sFlag)
{
//Verification des informations fournies
string sReturn;
if(GetIsPC(oPlayer) && sFlag != ")
{ //Execution du script
//Recuperation des informations du joueur
string sPlayerName = GetPCPlayerName(oPlayer);
string sName = GetName(oPlayer);
string sPublicKey = GetPCPublicCDKey(oPlayer);
//Definition de la valeur
sReturn = sPlayerName+sPublicKey+sName+sFlag;
}else{ //Retour d'une erreur
//Definition de la valeur
sReturn = "ERREUR DANS L'APPEL DE LA FONCTION GetFlagName";
}
//Renvoit de la valeur
return sReturn;
}

void SetFlagInt(object oPlayer, string sFlag, int nValue)
{
Debug(oPlayer,"Flag "+sFlag+" du personnage "+GetName(oPlayer)+" defini a "+IntToString(nValue));
SetPWUMInt(GetFlagName(oPlayer,sFlag),nValue); //Enregistrement de la variable
}

void SetFlagFloat(object oPlayer, string sFlag, float fValue)
{
Debug(oPlayer,"Flag "+sFlag+" du personnage "+GetName(oPlayer)+" defini a "+FloatToString(fValue));
SetPWUMFloat(GetFlagName(oPlayer,sFlag),fValue);
}

void SetFlagString(object oPlayer, string sFlag, string sValue)
{
Debug(oPlayer,"Flag "+sFlag+" du personnage "+GetName(oPlayer)+" defini a "+sValue);
SetPWUMString(GetFlagName(oPlayer,sFlag),sValue);
}

void SetFlagLocation(object oPlayer, string sFlag, location lValue)
{
Debug(oPlayer,"Flag "+sFlag+" du personnage "+GetName(oPlayer)+" modifie");
SetPWUMLocationC(GetFlagName(oPlayer,sFlag),lValue);
}

int GetFlagInt(object oPlayer, string sFlag)
{
return GetPWUMInt(GetFlagName(oPlayer,sFlag));
}

float GetFlagFloat(object oPlayer, string sFlag)
{
return GetPWUMFloat(GetFlagName(oPlayer,sFlag));
}

string GetFlagString(object oPlayer, string sFlag)
{
return GetPWUMString(GetFlagName(oPlayer,sFlag));
}

location GetFlagLocation(object oPlayer, string sFlag)
{
return GetPWUMLocation(GetFlagName(oPlayer,sFlag));
}
Il faut bien sûr avoir déjà installé le système PWUM sur son module.

Plus qu'un script, cette bibliothèque de fonctions simples se veut être une norme, de façon à pouvoir travailler simplement et échanger des scripts sur les univers permanent et semi-permanent.

Ce n'est bien sûr qu'une proposition, à vous de l'accepter ou non :)

Par Tyn' le 17/9/2002 à 1:27:45 (#2171310)

Ah et puisque je l'appelle dans ces scripts, la fonction Debug que j'utilise :

//:: Definition des constantes
int DEBUG_OFF = 0;
int DEBUG_PLAYER = 1;
int DEBUG_DM = 2;
int DEBUG_PLAYER_LOGS = 3;
int DEBUG_DM_LOGS = 4;
int DEBUG_TYPE = DEBUG_OFF;

//:: Definition des fonctions

// Fonction Althea
// Cree un debug
void Debug(object oPC, string sDebug);

void Debug(object oPC, string sDebug)
{
//Switch a qui envoyer le debug
switch(DEBUG_TYPE)
{
case 0:
//Pas de debug
break;
case 1:
case 3:
//Debug au joueur
if(GetIsPC(oPC))
{
SendMessageToPC(oPC,"DEBUG: "+sDebug);
}
break;
case 2:
case 4:
//Debug aux DMs
SendMessageToAllDMs("DEBUG: "+sDebug);
break;
default:
break;
}
//Switch pour inscription aux logs
switch(DEBUG_TYPE)
{
case 0:
case 1:
case 2:
//Pas de logs
break;
case 3:
case 4:
//Inscription aux logs
WriteTimestampedLogEntry("DEBUG: "+sDebug);
break;
default:
break;
}
}

Par Tyn' le 14/10/2002 à 15:50:53 (#2333812)

*Bump pour vidage du post persistant*

Mais comment ?

Par Etienne le 16/10/2002 à 9:07:48 (#2343846)

Oui, mais comment installe t'on la bibliotèque de fonction PWUM.

Y a t'il un executable quelconque a installer sur un répertoire ?
Les bibliotèques de fonction PWUM produisent-elles un fichier de sortie quelconque ?
Et ou se trouve t'il ?

Merci

Par Iridian le 22/11/2002 à 11:57:17 (#2617891)

SetPWUMInt(GetFlagName(oPlayer,sFlag),nValue);


Puis-je en conclure que PWUM se présente sous la forme d'un fichier a inclure dans les entêtes de fonctions ?

*n'a toujours pas eu le temps d'essayer*

JOL Archives 1.0.1
@ JOL / JeuxOnLine