Bonjour.
Voilà, j'aimerais utiliser la base de données de Bioware pour stocker points de vies et location de mes joueurs. J'ai donc fait ce script mais ne pouvant le tester en ligne avec plusieurs joueurs et étant débutant en script j'aimerai un avis sur ce script, voire même quelques corrections si nécessaire (et j'ai bien peur que ça soit le cas
)
- Mis dans l'événement OnUserDefined du module :
void main()
{
int nUser = GetUserDefinedEventNumber();
if(nUser == 700)
{
object oPc;
oPc = GetFirstPC();
if (oPc != OBJECT_INVALID)
{
location lPc;
int nPc;
lPc = GetLocation(oPc);
nPc = GetCurrentHitPoints(oPc);
SetCampaignLocation("SAUVEGARDE", "location", lPc, oPc);
SetCampaignInt("SAUVEGARDE", "test", 1, oPc);
SetCampaignInt("SAUVEGARDE", "hitpoints", nPc, oPc);
oPc = GetNextPC();
while (oPc != OBJECT_INVALID)
{
lPc = GetLocation(oPc);
nPc = GetCurrentHitPoints(oPc);
SetCampaignLocation("SAUVEGARDE", "location", lPc, oPc);
SetCampaignInt("SAUVEGARDE", "test", 1, oPc);
SetCampaignInt("SAUVEGARDE", "hitpoints", nPc, oPc);
oPc = GetNextPC();
}
}
DelayCommand(60.0, SignalEvent(OBJECT_SELF, EventUserDefined(700)));
}
}
- Mis dans l'événement OnModuleLoad du module :
void main()
{
SignalEvent(OBJECT_SELF, EventUserDefined(700));
}
- Mis dans l'événement OnClientEnter du module :
void main()
{
object oPc;
location lPc;
int nPc, nTest, nCurrentHp, nMaxHp, nDamageAmount;
effect eSoin, eDamage;
oPc = GetEnteringObject();
lPc = GetCampaignLocation("SAUVEGARDE", "location", oPc);
nTest = GetCampaignInt("SAUVEGARDE", "test", oPc);
nPc = GetCampaignInt("SAUVEGARDE", "hitpoints", oPc);
nCurrentHp = GetCurrentHitPoints(oPc);
nMaxHp = GetMaxHitPoints(oPc);
if (nTest != 0)
{
eSoin = EffectHeal(nMaxHp);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eSoin,oPc);
nDamageAmount = (nMaxHp - nPc);
eDamage = EffectDamage(nDamageAmount, DAMAGE_TYPE_MAGICAL, DAMAGE_POWER_NORMAL);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage,oPc);
AssignCommand(oPc, ActionJumpToLocation(lPc));
}
}
Edit : Mis à jour avec sauvegarde des points de vie, seule la sauvegarde de la position ne fonctionne toujours pas, je vais m'y atteler encore et encore