Hi,
I'm interested in correct clearing variables when map end.
Previously, I used coupe of hooks, like:
Code:
HookEvent("round_end", Event_RoundEnd, EventHookMode_PostNoCopy);
HookEvent("finale_win", Event_RoundEnd, EventHookMode_PostNoCopy);
HookEvent("mission_lost", Event_RoundEnd, EventHookMode_PostNoCopy);
HookEvent("map_transition", Event_RoundEnd, EventHookMode_PostNoCopy);
However I noticed, when I e.g. loaded 2-nd map and I finished voting for transition to 1-st map ("start new campaign" menu item), I'm receving no round_end and no map_transition events:
Quote:
L 10/23/2018 - 18:45:49: [say_event.smx] 2018-10-23, 18:45:49 - EVENT_HAPPENED ---> "vote_started"
L 10/23/2018 - 18:45:49: "Dragokas<2><STEAM_1:1:22512941><Survivor><Bi ker><ALIVE><100+0><setpos_exact 2927.41 2905.29 78.03; setang 9.86 87.96 0.00><Area 40391>" called vote "ChangeMission Hospital"
Server event "vote_cast_yes", Tick 1608:
- "team" = "-1"
- "entityid" = "1"
L 10/23/2018 - 18:45:49: [say_event.smx] 2018-10-23, 18:45:49 - EVENT_HAPPENED ---> "vote_cast_yes"
L 10/23/2018 - 18:45:49: Vote succeeded "ChangeMission #L4D360UI_Campaign_Hospital"
Server event "vote_passed", Tick 1611:
- "details" = "#L4D_vote_passed_mission_change"
- "param1" = "#L4D360UI_Campaign_Hospital"
- "team" = "-1"
L 10/23/2018 - 18:45:49: [say_event.smx] 2018-10-23, 18:45:49 - EVENT_HAPPENED ---> "vote_passed"
L 10/23/2018 - 18:45:51: change mission now vote - changing to Hospital (l4d_hospital01_apartment)
L 10/23/2018 - 18:45:51: Preparing player entities for changelevel
L 10/23/2018 - 18:45:51: Saving Dragokas for transition at 2927.414795 2905.294189 16.031250
L 10/23/2018 - 18:45:51: (SKIN) Dragokas saved model [models/survivors/survivor_biker.mdl] via PlayerSaveData
L 10/23/2018 - 18:45:51: Saving NORMAL for map transition at 2892,3148,16
L 10/23/2018 - 18:45:51: (SKIN) Zoey saved model [models/survivors/survivor_teenangst.mdl] via PlayerSaveData
L 10/23/2018 - 18:45:51: Saving NORMAL for map transition at 2975,2922,16
L 10/23/2018 - 18:45:51: (SKIN) Bill saved model [models/survivors/survivor_namvet.mdl] via PlayerSaveData
L 10/23/2018 - 18:45:51: Saving NORMAL for map transition at 2864,3193,16
L 10/23/2018 - 18:45:51: (SKIN) Louis saved model [models/survivors/survivor_manager.mdl] via PlayerSaveData
L 10/23/2018 - 18:45:51: [say_event.smx] +-------------------------------------------+
L 10/23/2018 - 18:45:51: [say_event.smx] | MAP END |
L 10/23/2018 - 18:45:51: [say_event.smx] +-------------------------------------------+
Server event "player_left_checkpoint", Tick 1678:
- "userid" = "0"
- "entityid" = "1"
- "area" = "40391"
|
So, what is a reliable way to reset resources in my plugins before they are initialized on round_start?
I think:
Code:
public void OnPluginStart()
{
HookEvent("round_end", Event_RoundEnd, EventHookMode_PostNoCopy);
HookEvent("finale_win", Event_RoundEnd, EventHookMode_PostNoCopy);
HookEvent("mission_lost", Event_RoundEnd, EventHookMode_PostNoCopy);
HookEvent("map_transition", Event_RoundEnd, EventHookMode_PostNoCopy);
}
public void OnMapEnd()
{
ResetSettings();
}
public Action Event_RoundEnd(Event event, char[] name, bool dontBroadcast)
{
ResetSettings();
return Plugin_Continue;
}
should be enough. + Maybe, add some bool flag to prevent calling ResetSettings() twice.
Thank you.
__________________