|
Bon, bien a t'en faire, qu'elle soit dispo au moment où ca sort ^^ (vivi j'ai pas trainé, j'en avais besoin pour le projet dont je parle quelques lignes plus bas ^^)
Donc, c'est tout simple : utilisez les fonctions Get/Set/DeleteVariableInt/Float/Location/String au lieux des foncitons Get/Set/DeleteLocalInt/Float/Location/String
et la fonction StVaCampaignObject et ReVaCampaignObject au lieu de StoreCampaignObject et RetrieveCampaignObject, et bien sur inclusez la biblio dans votre script avec
#include "lib_StVa"
et c'est tout ce qu'il y a a faire , après cela, vous pouvez enregistrer et restaurer vos objets, ils conserveront leurs variables
//:://///////////////////////////////////////////// //:: Systeme StVa, beta 1.1 //:: lib_StVa.nss //::////////////////////////////////////////////// /* Sauvegarde des variables locales d'un object stoque dans les bases de donnes de peristance
Utilisation :
Il suffit d'utiliser les fonctions : Par SetVariable*, GetVariable* et DeleteVariable* a la place des SetLocal*, GetLocal*, DeleteLocal* et d'utiliser les fonctions StVaCampaignObject et StReCampaignObject a la place des StoreCampaignObject et RetrieveCampaignObject
de plus, il est fortement recommende d'utiliser une base de donnee */ //::////////////////////////////////////////////// //:: Created By: Azrael07 //:: Created On: 28/04/2003 //:://////////////////////////////////////////////
//Enregistrer la variable locale sur oObject de type Vector, de nom sName et de valeur vVector void SetLocalVector(object oObject, string sName, vector vVector); //Récupère la variable locale de type Vector sur oObject, de nom sName //Valeur renvoyée en cas d'erreur : 0.0f, 0.0f, 0.0f vector GetLocalVector(object oObject, string sName); //Efface la variable locale de type Vector sur l'object oObject, de nom sName void DeleteLocalVector(object oObject, string sName);
//Enregistrer la variable locale sur oObject de type Float, de nom sName et de valeur fValue //en utilisant le système de peristance StVa void SetVariableFloat(object oObject, string sName, float fValue); //Enregistrer la variable locale sur oObject de type Integer, de nom sName et de valeur nValue //en utilisant le système de peristance StVa void SetVariableInt(object oObject, string sName, int nValue); //Enregistrer la variable locale sur oObject de type Vector, de nom sName et de valeur vVector //en utilisant le système de peristance StVa void SetVariableVector(object oObject, string sName, vector vVector); //Enregistrer la variable locale sur oObject de type Location, de nom sName et de valeur lLocation //en utilisant le système de peristance StVa void SetVariableLocation(object oObject, string sName, location lLocation); //Enregistrer la variable locale sur oObject de type String, de nom sName et de valeur sString //en utilisant le système de peristance StVa void SetVariableString(object oObject, string sName, string sString);
//Récupère la variable locale de type Float sur oObject, de nom sName //en utilisant le système de peristance StVa //Valeur renvoyée en cas d'erreur : 0.0f float GetVariableFloat(object oObject, string sName); //Récupère la variable locale de type Int sur oObject, de nom sName //en utilisant le système de peristance StVa //Valeur renvoyée en cas d'erreur : 0 int GetVariableInt(object oObject, string sName); //Récupère la variable locale de type Vector sur oObject, de nom sName //en utilisant le système de peristance StVa //Valeur renvoyée en cas d'erreur : 0.0f, 0.0f, 0.0f vector GetVariableVector(object oObject, string sName); //Récupère la variable locale de type Location sur oObject, de nom sName //en utilisant le système de peristance StVa location GetVariableLocation(object oObject, string sName); //Récupère la variable locale de type String sur oObject, de nom sName //en utilisant le système de peristance StVa //Valeur renvoyée en cas d'erreur : "" string GetVariableString(object oObject, string sName);
//Efface la variable locale de type Float sur l'object oObject, de nom sName //en utilisant le système de peristance StVa void DeleteVariableFloat(object oObject, string sName); //Efface la variable locale de type Int sur l'object oObject, de nom sName //en utilisant le système de peristance StVa void DeleteVariableInt(object oObject, string sName); //Efface la variable locale de type Vector sur l'object oObject, de nom sName //en utilisant le système de peristance StVa void DeleteVariableVector(object oObject, string sName); //Efface la variable locale de type Location sur l'object oObject, de nom sName //en utilisant le système de peristance StVa void DeleteVariableLocation(object oObject, string sName); //Efface la variable locale de type String sur l'object oObject, de nom sName //en utilisant le système de peristance StVa void DeleteVariableString(object oObject, string sName);
//Stoque l'objet oObject dans le fichier de données sCampaignName et de référence sVarName //Stoque également toutes les variables locales associées à l'objet //oPlayer: joueur associé à l'objet stoqué, aucun si non spécifié //Renvoie 1 si l'opération réussie, 0 si un échec se produit int StVaCampaignObject(string sCampaignName, string sVarName, object oObject, object oPlayer=OBJECT_INVALID);
//Restore l'objet stoqué dans le fichier de données sCampaignName, de référence sVarName, sur la locatin locLocation //Restore également toutes les variables locales associées à l'objet //Si oOwner est spécifié, l'objet sera créé dans son inventaire si possible //oPlayer: joueur associé à l'objet stoqué, aucun si non spécifié object ReVaCampaignObject(string sCampaignName, string sVarName, location locLocation, object oOwner = OBJECT_INVALID, object oPlayer=OBJECT_INVALID);
void ERROR(string sMessage, int bDMs = TRUE) { WriteTimestampedLogEntry(sMessage); if(bDMs) SendMessageToAllDMs(sMessage); }
//Enregistrer la variable locale sur oObject de type Vector, de nom sName et de valeur vVector void SetLocalVector(object oObject, string sName, vector vVector) { SetLocalFloat(oObject, sName + "x", vVector.x); SetLocalFloat(oObject, sName + "y", vVector.y); SetLocalFloat(oObject, sName + "z", vVector.z); }
//Récupère la variable locale de type Vector sur oObject, de nom sName //Valeur renvoyée en cas d'erreur : 0.0f, 0.0f, 0.0f vector GetLocalVector(object oObject, string sName) { return Vector(GetLocalFloat(oObject, sName + "x"), GetLocalFloat(oObject, sName + "y"), GetLocalFloat(oObject, sName + "z")); }
//Efface la variable locale de type Vector sur l'object oObject, de nom sName void DeleteLocalVector(object oObject, string sName) { DeleteLocalFloat(oObject, sName + "x"); DeleteLocalFloat(oObject, sName + "y"); DeleteLocalFloat(oObject, sName + "z"); }
//Enregistrer la variable locale sur oObject de type Float, de nom sName et de valeur fValue //en utilisant le système de peristance StVa void SetVariableFloat(object oObject, string sName, float fValue) { string sType = "1";
string sList = GetLocalString(oObject, "StVa_list"); if(FindSubString(sList, sType + sName) == -1) SetLocalString(oObject, "StVa_list", sList + sType + sName + ";");
SetLocalFloat(oObject, sName, fValue); }
//Récupère la variable locale de type Float sur oObject, de nom sName //en utilisant le système de peristance StVa //Valeur renvoyée en cas d'erreur : 0.0f float GetVariableFloat(object oObject, string sName) { return GetLocalFloat(oObject, sName); }
//Enregistrer la variable locale sur oObject de type Integer, de nom sName et de valeur nValue //en utilisant le système de peristance StVa void SetVariableInt(object oObject, string sName, int nValue) { string sType = "2";
string sList = GetLocalString(oObject, "StVa_list"); if(FindSubString(StVa_list, sType + sName) == -1) SetLocalString(oObject, "StVa_list", sList + sType + sName + ";");
SetLocalInt(oObject, sName, nValue); }
//Récupère la variable locale de type Int sur oObject, de nom sName //en utilisant le système de peristance StVa //Valeur renvoyée en cas d'erreur : 0 int GetVariableInt(object oObject, string sName) { return GetLocalInt(oObject, sName); }
//Enregistrer la variable locale sur oObject de type Vector, de nom sName et de valeur vVector //en utilisant le système de peristance StVa void SetVariableVector(object oObject, string sName, vector vVector) { string sType = "3";
string sList = GetLocalString(oObject, "StVa_list"); if(FindSubString(StVa_list, sType + sName) == -1) SetLocalString(oObject, "StVa_list", sList + sType + sName + ";");
SetLocalVector(oObject, sName, vVector); }
//Récupère la variable locale de type Vector sur oObject, de nom sName //en utilisant le système de peristance StVa //Valeur renvoyée en cas d'erreur : 0.0f, 0.0f, 0.0f vector GetVariableVector(object oObject, string sName) { return GetLocalVector(oObject, sName); }
//Enregistrer la variable locale sur oObject de type Location, de nom sName et de valeur lLocation //en utilisant le système de peristance StVa void SetVariableLocation(object oObject, string sName, location lLocation) { string sType = "4";
string sList = GetLocalString(oObject, "StVa_list"); if(FindSubString(StVa_list, sType + sName) == -1) SetLocalString(oObject, "StVa_list", sList + sType + sName + ";");
SetLocalLocation(oObject, sName, lLocation); }
//Récupère la variable locale de type Location sur oObject, de nom sName //en utilisant le système de peristance StVa location GetVariableLocation(object oObject, string sName) { return GetLocalLocation(oObject, sName); }
//Enregistrer la variable locale sur oObject de type String, de nom sName et de valeur sString //en utilisant le système de peristance StVa void SetVariableString(object oObject, string sName, string sString) { string sType = "5";
string sList = GetLocalString(oObject, "StVa_list"); if(FindSubString(StVa_list, sType + sName) == -1) SetLocalString(oObject, "StVa_list", sList + sType + sName + ";");
SetLocalString(oObject, sName, sString); }
//Récupère la variable locale de type String sur oObject, de nom sName //en utilisant le système de peristance StVa //Valeur renvoyée en cas d'erreur : "" string GetVariableString(object oObject, string sName) { return GetLocalString(oObject, sName); }
void DeleteVariable(object oObject, string sName, int nType) { string sList = GetLocalString(oObject, "StVa_list"); int nLength = GetStringLength(sList);
string sType = IntToString(nType); int nStart = FindSubString(sList, sType + sName); int nNameLength = GetStringLength(sName);
sList = GetSubString(sList, 0, nStart - 1) + GetSubString(sList, nStart + nNameLength + 1, nLength); }
//Récupère la variable locale de type Float sur oObject, de nom sName //en utilisant le système de peristance StVa //Valeur renvoyée en cas d'erreur : 0.0f void DeleteVariableFloat(object oObject, string sName) { DeleteVariable(oObject, sName, 1); DeleteLocalFloat(oObject, sName); }
//Efface la variable locale de type Int sur l'object oObject, de nom sName //en utilisant le système de peristance StVa void DeleteVariableInt(object oObject, string sName) { DeleteVariable(oObject, sName, 2); DeleteLocalInt(oObject, sName); }
//Efface la variable locale de type Vector sur l'object oObject, de nom sName //en utilisant le système de peristance StVa void DeleteVariableVector(object oObject, string sName) { DeleteVariable(oObject, sName, 3); DeleteLocalVector(oObject, sName); }
//Efface la variable locale de type Location sur l'object oObject, de nom sName //en utilisant le système de peristance StVa void DeleteVariableLocation(object oObject, string sName) { DeleteVariable(oObject, sName, 4); DeleteLocalLocation(oObject, sName); }
//Efface la variable locale de type String sur l'object oObject, de nom sName //en utilisant le système de peristance StVa void DeleteVariableString(object oObject, string sName) { DeleteVariable(oObject, sName, 5); DeleteLocalString(oObject, sName); }
//Stoque l'objet oObject dans le fichier de données sCampaignName et de référence sVarName //Stoque également toutes les variables locales associées à l'objet //oPlayer: joueur associé à l'objet stoqué, aucun si non spécifié //Renvoie 1 si l'opération réussie, 0 si un échec se produit int StVaCampaignObject(string sCampaignName, string sVarName, object oObject, object oPlayer=OBJECT_INVALID) { string sList = GetLocalString(oObject, "StVa_list"); int nLength = GetStringLength(sList); string sChar, sName; int nType;
int iPass = 0; for(iPass; iPass <= nLength; iPass++) { sChar = GetSubString(sList, iPass, 1); if(sChar == ";") { switch(nType) { case 1: SetCampaignFloat(sCampaignName, sVarName + sName, GetLocalFloat(oObject, sName), oPlayer); break; case 2: SetCampaignInt(sCampaignName, sVarName + sName, GetLocalInt(oObject, sName), oPlayer); break; case 3: SetCampaignVector(sCampaignName, sVarName + sName, GetLocalVector(oObject, sName), oPlayer); break; case 4: SetCampaignLocation(sCampaignName, sVarName + sName, GetLocalLocation(oObject, sName), oPlayer); break; case 5: SetCampaignString(sCampaignName, sVarName + sName, GetLocalString(oObject, sName), oPlayer); break; default: ERROR("Système StVa : nType inexistant"); } sName = ""; nType = 0; } else { if(!nType) nType = StringToInt(sChar); else sName += sChar; } }
SetCampaignString(sCampaignName, sVarName + "StVa_list", sList); int nResult = StoreCampaignObject(sCampaignName, sVarName, oObject, oPlayer = OBJECT_INVALID);
return nResult; }
void RecallVariables(object oObject, string sCampaignName, string sVarName, object oPlayer) { string sList = GetCampaignString(sCampaignName, sVarName + "StVa_list", oPlayer); int nLength = GetStringLength(sList); string sChar, sName; int nType;
int iPass = 0; for(iPass; iPass <= nLength; iPass++) { sChar = GetSubString(sList, iPass, 1); if(sChar == ";") { switch(nType) { case 1: SetLocalFloat(oObject, sName, GetCampaignFloat(sCampaignName, sVarName + sName, oPlayer)); break; case 2: SetLocalInt(oObject, sName, GetCampaignInt(sCampaignName, sVarName + sName, oPlayer)); break; case 3: SetLocalVector(oObject, sName, GetCampaignVector(sCampaignName, sVarName + sName, oPlayer)); break; case 4: SetLocalLocation(oObject, sName, GetCampaignLocation(sCampaignName, sVarName + sName, oPlayer)); break; case 5: SetLocalString(oObject, sName, GetCampaignString(sCampaignName, sVarName + sName, oPlayer)); break; default: ERROR("Système StVa : nType inexistant"); } sName = ""; nType = 0; } else { if(!nType) nType = StringToInt(sChar); else sName += sChar; } SetLocalString(oObject, "StVa_list", sList); } }
//Restore l'objet stoqué dans le fichier de données sCampaignName, de référence sVarName, sur la locatin locLocation //Restore également toutes les variables locales associées à l'objet //Si oOwner est spécifié, l'objet sera créé dans son inventaire si possible //oPlayer: joueur associé à l'objet stoqué, aucun si non spécifié object ReVaCampaignObject(string sCampaignName, string sVarName, location locLocation, object oOwner = OBJECT_INVALID, object oPlayer=OBJECT_INVALID) { object oObject = RetrieveCampaignObject(sCampaignName, sVarName, locLocation, oOwner, oPlayer); RecallVariables(oObject, sCampaignName, sVarName, oPlayer); return oObject; }
pour l'instant, la biblio ne gère par le paramètre "oPlayer", je m'en occuperais le plus vite possible
|