Updated script with (severely unbalanced) experience gain upon killing enemies again-
INIT Section-
DB_ExperienceTable(1, 100);
DB_ExperienceTable(2, 300);
DB_ExperienceTable(3, 500);
DB_ExperienceTable(4, 1000);
DB_ExperienceTable(5, 1500);
DB_ExperienceTable(6, 2000);
DB_ExperienceTable(7, 2700);
DB_ExperienceTable(8, 3400);
DB_ExperienceTable(9, 4200);
DB_ExperienceTable(10, 5000);
DB_ExperienceTable(11, 6000);
DB_ExperienceTable(12, 7000);
DB_ExperienceTable(13, 8000);
DB_ExperienceTable(14, 10000);
DB_ExperienceTable(15, 11000);
DB_ExperienceTable(16, 12000);
DB_ExperienceTable(17, 13000);
DB_ExperienceTable(18, 14000);
DB_ExperienceTable(19, 15000);
DB_ExperienceTable(20, 20000);
KB Section-
IF
CharacterDied(_Character)
AND
Time(_,_,_TH)
THEN
DB_DeadCharacters(_Character, _TH);
IF
CharacterEnteredCombat(_Character,_)
AND
_Character.isPlayer()
THEN
ProcResurrectCharacters();
PROC
ProcResurrectCharacters()
AND
Time(_,_,_TH)
AND
DB_DeadCharacters(_Character, _deadTime)
AND
IntegerSubtract(_TH, _deadTime, _delta)
AND
_delta >= 1
THEN
CharacterResurrect(_Character);
NOT DB_DeadCharacters(_Character, _deadTime);
ProcResurrectCharacters();
IF
CharacterDied(_Char)
AND
DB_DeathList(_Char)
AND
CharacterGetLevel(_Char, _level)
AND
DB_ExperienceTable(_level, _exp)
THEN
PartyAddExperience(_exp);
NOT DB_DeathList(_Char);
IF
CharacterDied(_Char)
THEN
DB_DeathList(_Char);
There's a little bit of a delay between killing enemies and gaining exp, but it works. Does anyone know what exactly goes into the experience points gained upon killing an enemy? I just made up random experience point values for this Proof-of-Concept test, and I would like to make them more realistic.
A bit more testing, and I discovered a few things-
If enemies die in one map (Cyseal) and combat is started in another (Homestead), then the characters are properly resurrected in the map they died on.
If an NPC starts off friendly and becomes hostile before death (city guard for example), then upon resurrection they will be friendly again.
----
Beyond the Experience point adjustment that needs to be made, what time limit would be appropriate between respawns? Right now it's just 1 minute (if I'm reading the function correctly) for testing purposes.