PROC
CheckCounter((INTEGER)_Count,(STRING)_CounterDB)
AND
KillCounterCounts(_CounterDB,_OldCount)
THEN
NOT KillCounterCounts(_CounterDB,_OldCount);
KillCounterCounts(_CounterDB,_Count);
PROC
ClearCounterDB((STRING)_CounterDB)
AND
KillCounterDB(_Character,_CounterDB)
THEN
NOT KillCounterDB(_Character,_CounterDB);
PROC
ClearCounterDB((STRING)_CounterDB)
AND
KillCounterTestDB(_Char,_CounterDB)
THEN
NOT KillCounterTestDB(_Char,_CounterDB);
PROC
CheckCounter(_Count,_CounterDB)
AND
KillCounter((STRING)_CounterDB,(INTEGER)_TargetCount)
AND
_Count == _TargetCount
THEN
NOT KillCounter(_CounterDB,_TargetCount);
ClearCounterDB(_CounterDB);
KillCounterReached(_CounterDB);
NOT KillCounterCounterDefined(_CounterDB);
NOT KillCounterCounts(_CounterDB,_TargetCount);
PROC
CheckCounter(_Count, _CounterDB)
AND
KillCounter((STRING)_CounterDB,(INTEGER)_TargetCount)
AND
IntegerSubtract(_TargetCount, 1, _New)
AND
_Count == _New
AND
KillCounterDB(_LastCharacter, _CounterDB)
THEN
LastManStandingDB((CHARACTER)_LastCharacter, (STRING)_CounterDB);
IF
CharacterDying(_Character)
AND
KillCounterDB(_Character,_CounterDB)
AND
dbCombat(_Character,_ID)
THEN
ProcSetCounterCombatID(_CounterDB,_ID);
ProcCheckCounterCombatOver(_CounterDB,_ID);
PROC
ProcClearCounterCombatID((STRING)_Counter)
AND
DB_CounterCombatID(_Counter,_OldID)
THEN
NOT DB_CounterCombatID(_Counter,_OldID);
PROC
ProcSetCounterCombatID((STRING)_Counter,(INTEGER)_ID)
THEN
ProcClearCounterCombatID(_Counter);
DB_CounterCombatID(_Counter,_ID);
IF
CharacterEnteredCombat(_Char, _ID)
AND
KillCounterDB(_Char, _Counter)
THEN
ProcClearCounterCombatID(_Counter);
IF
CharacterEnteredCombat(_LastMan, _ID)
AND
KillCounterDB(_LastMan, _Counter)
AND
KillCounter(_Counter,1)
THEN
LastManStandingDB((CHARACTER)_LastMan, (STRING)_Counter);
IF
CharacterKilledByCharacter(_LastMan, _Killer)
AND
LastManStandingDB(_LastMan, _CounterDB)
THEN
NOT LastManStandingDB(_LastMan, _CounterDB);
LastManInCombatKilledBy((CHARACTER)_Killer, (STRING)_CounterDB);
IF
CharacterDied(_Character)
AND
KillCounterDB(_Character,_CounterDB)
AND
KillCounterCounts(_CounterDB,_Count)
AND
IntegerSum(_Count,1,_NewCount)
THEN
NOT KillCounterDB(_Character,_CounterDB);
KillCounterTestDB(_Character,_CounterDB);
CheckCounter(_NewCount,_CounterDB);
IF
CharacterResurrected(_Character)
AND
KillCounterTestDB(_Character,_CounterDB)
AND
KillCounterCounts(_CounterDB,_Count)
AND
IntegerSubtract(_Count,1,_NewCount)
THEN
KillCounterDB(_Character,_CounterDB);
NOT KillCounterTestDB(_Character,_CounterDB);
CheckCounter(_NewCount,_CounterDB);
IF
KillCounterDB(_Character,_CounterDB)
AND
NOT KillCounterCounterDefined(_CounterDB)
THEN
KillCounterCounts(_CounterDB,0);
KillCounterCounterDefined(_CounterDB);
IF
CharacterLeftCombat(_Player, _CombatID)
AND
_Player.isPlayer()
AND
CombatGetNumberOfInvolvedPartyMembers(_CombatID, 0)
AND
DB_CounterCombatID(_CounterDB,_CombatID)
THEN
KillCounterCombatOver(_CombatID, _CounterDB);
IF
dbCombat(_Char, _CombatID)
AND
KillCounterDB(_Char,_CounterDB)
THEN
ProcClearCombatOverDB(_CounterDB);
PROC
ProcClearCombatOverDB((STRING)_CounterDB)
AND
KillCounterCombatOver(_OldCombatID, _CounterDB)
THEN
NOT KillCounterCombatOver(_OldCombatID, _CounterDB);
//killed people outside of combat
IF
KillCounterReached((STRING)_CounterDB)
AND
NOT DB_CounterCombatID(_CounterDB,_)
THEN
ReactOnKillCounter(_CounterDB);
NOT KillCounterReached(_CounterDB);
IF
KillCounterReached((STRING)_CounterDB)
AND
KillCounterCombatOver(_CombatID, _CounterDB)
THEN
ReactOnKillCounter(_CounterDB);
NOT KillCounterCombatOver(_CombatID, _CounterDB);
NOT KillCounterReached(_CounterDB);
//Wasn't involved in combat
PROC
ProcCheckCounterCombatOver((STRING)_CounterDB,(INTEGER)_CombatID)
THEN
NOT KillCounterCombatOver(_CombatID, _CounterDB);
PROC
ProcCheckCounterCombatOver((STRING)_CounterDB,(INTEGER)_CombatID)
AND
CombatGetNumberOfInvolvedPartyMembers(_CombatID, 0)
THEN
KillCounterCombatOver(_CombatID, _CounterDB);