I doubt that it will help - as I said, the triggers work perfectly in the editor or when the map is started with two players only. But desperate times call for desperate measures, so here it is:
// Init quest vars
rmCreateTrigger("InitQuestVar");
rmSwitchToTrigger(rmTriggerID("InitQuestVar"));
rmSetTriggerActive(true);
rmSetTriggerLoop(false);
rmSetTriggerRunImmediately(true);
rmSetTriggerPriority(4);
for (i = 1; <=cNumberNonGaiaPlayers)
{
rmAddTriggerEffect("Quest Var Set");
rmSetTriggerEffectParam("QVName", "CounterActive"+i);
rmSetTriggerEffectParamInt("Value", 0);
} // Initial message
rmCreateTrigger("KotHMessage");
rmSwitchToTrigger(rmTriggerID("KotHMessage"));
rmSetTriggerActive(true);
rmSetTriggerLoop(false);
rmSetTriggerRunImmediately(true);
rmSetTriggerPriority(4);
rmAddTriggerCondition("Timer");
rmSetTriggerConditionParamInt("Param1", 2);
rmAddTriggerEffect("Send Chat");
rmSetTriggerEffectParamInt("PlayerID", 0);
rmSetTriggerEffectParam("Message", " ");
rmAddTriggerEffect("Send Chat");
rmSetTriggerEffectParamInt("PlayerID", 0);
rmSetTriggerEffectParam("Message", " ");
rmAddTriggerEffect("Send Chat");
rmSetTriggerEffectParamInt("PlayerID", 0);
rmSetTriggerEffectParam("Message", "King of the Valleys, King of the Hill style!");
rmAddTriggerEffect("Send Chat");
rmSetTriggerEffectParamInt("PlayerID", 0);
rmSetTriggerEffectParam("Message", "Capture all trading posts to start victory counter.");
rmAddTriggerEffect("Send Chat");
rmSetTriggerEffectParamInt("PlayerID", 0);
rmSetTriggerEffectParam("Message", "Destroy two trading posts to stop victory counter.");
rmAddTriggerEffect("Send Chat");
rmSetTriggerEffectParamInt("PlayerID", 0);
rmSetTriggerEffectParam("Message", " ");
rmAddTriggerEffect("Send Chat");
rmSetTriggerEffectParamInt("PlayerID", 0);
rmSetTriggerEffectParam("Message", " ");
// Counters & victory
for (i = 1; <=cNumberNonGaiaPlayers)
{
//Create all triggers first
rmCreateTrigger("StartCounter"+i);
rmCreateTrigger("StopCounter"+i);
rmCreateTrigger("Victory"+i); // Define triggers
rmSwitchToTrigger(rmTriggerID("StartCounter"+i));
rmSetTriggerActive(true);
rmSetTriggerLoop(true);
rmSetTriggerRunImmediately(false);
rmSetTriggerPriority(4);
rmAddTriggerCondition("Player Unit Count");
rmSetTriggerConditionParamInt("PlayerID", i);
rmSetTriggerConditionParam("ProtoUnit", "TradingPost");
rmSetTriggerConditionParam("Op", "==");
rmSetTriggerConditionParamInt("Count", numTradingPosts);
rmAddTriggerCondition("Quest Var Check");
rmSetTriggerConditionParam("QuestVar", "CounterActive"+i);
rmSetTriggerConditionParam("Op", "==");
rmSetTriggerConditionParamInt("Value", 0);
rmAddTriggerEffect("Counter:Add Timer");
rmSetTriggerEffectParam("Name", "Countdown"+i);
rmSetTriggerEffectParamInt("Start", 600);
rmSetTriggerEffectParamInt("Stop", 0);
rmSetTriggerEffectParam("Msg", rmGetPlayerName(i)+" will win in");
rmSetTriggerEffectParamInt("Event", rmTriggerID("Victory"+i));
rmAddTriggerEffect("Send Chat");
rmSetTriggerEffectParamInt("PlayerID", 0);
rmSetTriggerEffectParam("Message", rmGetPlayerName(i)+" has captured all trading posts!");
rmAddTriggerEffect("Quest Var Set");
rmSetTriggerEffectParam("QVName", "CounterActive"+i);
rmSetTriggerEffectParamInt("Value", 1);
rmSwitchToTrigger(rmTriggerID("StopCounter"+i));
rmSetTriggerActive(true);
rmSetTriggerLoop(true);
rmSetTriggerRunImmediately(false);
rmSetTriggerPriority(4);
rmAddTriggerCondition("Player Unit Count");
rmSetTriggerConditionParamInt("PlayerID", i);
rmSetTriggerConditionParam("ProtoUnit", "TradingPost");
rmSetTriggerConditionParam("Op", "<");
rmSetTriggerConditionParamInt("Count", (numTradingPosts - 1));
rmAddTriggerCondition("Quest Var Check");
rmSetTriggerConditionParam("QuestVar", "CounterActive"+i);
rmSetTriggerConditionParam("Op", "==");
rmSetTriggerConditionParamInt("Value", 1);
rmAddTriggerEffect("Counter Stop");
rmSetTriggerEffectParam("Name", "Countdown"+i);
rmAddTriggerEffect("Send Chat");
rmSetTriggerEffectParamInt("PlayerID", 0);
rmSetTriggerEffectParam("Message", "Two trading posts of "+rmGetPlayerName(i)+" have been destroyed and the victory counter stopped!");
rmAddTriggerEffect("Quest Var Set");
rmSetTriggerEffectParam("QVName", "CounterActive"+i);
rmSetTriggerEffectParamInt("Value", 0); rmSwitchToTrigger(rmTriggerID("Victory"+i));
rmSetTriggerActive(false);
rmSetTriggerLoop(false);
rmSetTriggerRunImmediately(false);
rmSetTriggerPriority(4);
rmAddTriggerEffect("Set Player Won");
rmSetTriggerEffectParamInt("Player", i);
rmAddTriggerEffect("End Game");
}
Ok - ideas, anyone?