Bonjour à tous !
Après avoir bien bossé, je vous propose là quelques unes des fonctions sans prétention que j'ai faites pour mon module, et qui pourraient intéresser du monde.
Prenez, c'est gratuit.

N'hésitez pas à me demander des précisions, ou bien de nouvelles fonctions, éventuellement.
Récupérer la classe d'un personnage :
/******************************************************************************/
/* RECUPERATION DES CLASSES D'UN PERSONNAGE */
/******************************************************************************/
int RecupererClasse(object oPC, int iClasse)
{
if (GetClassByPosition(1, oPC) == iClasse)
return TRUE;
if (GetClassByPosition(2, oPC) == iClasse)
return TRUE;
if (GetClassByPosition(3, oPC) == iClasse)
return TRUE;
return FALSE;
}
Exemple d'utilisation :
if (RecupererClasse(oPC, CLASS_TYPE_BARD))
// Votre blabla
Pouvoir utiliser un DelayCommand sur la fonction CreateObject :
/******************************************************************************/
/* DELAY SUR CREATEOBJECT */
/******************************************************************************/
void DelayCreateObject(int nObjectType, string sTemplate, location lLocation, int bUseAppearAnimation = FALSE, string sNewTag= "")
{
CreateObject(nObjectType, sTemplate, lLocation, bUseAppearAnimation, sNewTag);
}
Exemple d'utilisation :
DelayCommand(15.0, DelayCreateObject(OBJECT_TYPE_CREATURE, "tag", lLocation);
Vider un contenant (coffre, tonneau, etc) :
/******************************************************************************/
/* VIDER UN CONTENANT */
/******************************************************************************/
void ViderContenant(object oContenant)
{
object oItem = GetFirstItemInInventory(oContenant);
while (GetIsObjectValid(oItem))
{
DestroyObject(oItem, 0.0);
oItem = GetNextItemInInventory(oContenant);
}
}
Ajuster les parametres meteo en fonction de la saison du module :
int iPluie = WEATHER_RAIN;
int iNeige = WEATHER_SNOW;
int iClear = WEATHER_CLEAR;
int iRand = Random(100);
int iWeather;
int iSaison;
//:: HIVER
void SaisonHiver()
{
iWeather = iRand >= 50 && iRand < 70 ? iNeige : iRand >= 70 ? iPluie : iClear;
}
//:: PRINTEMPS
void SaisonPrintemps()
{
iWeather = iRand >= 50 ? iPluie : iClear;
}
//:: ETE
void SaisonEte()
{
iWeather = iRand >= 50 ? iPluie : iClear;
}
//:: AUTOMNE
void SaisonAutomne()
{
iWeather = iRand >= 60 ? iPluie : iClear;
}
//:: METEO
void Meteo()
{
switch(GetCalendarMonth)
{
case 1: iSaison = 1; break;
case 2: iSaison = 1; break;
case 3: iSaison = 2; break;
case 4: iSaison = 2; break;
case 5: iSaison = 2; break;
case 6: iSaison = 3; break;
case 7: iSaison = 3; break;
case 8: iSaison = 3; break;
case 9: iSaison = 4; break;
case 10: iSaison = 4; break;
case 11: iSaison = 4; break;
case 12: iSaison = 1; break;
}
switch(iSaison)
{
case 1: SaisonHiver(); break;
case 2: SaisonPrintemps(); break;
case 3: SaisonEte(); break;
case 4: SaisonAutomne(); break;
}
SetWeather(GetModule(), iWeather);
DelayCommand(4000+ Random(4000), Meteo());
}