public static void ClientPacketsEXAddKey(int key, ScriptEventCaller sc_ec) { lock (events_clientpacketsEXLock) { _events_clientpacketsEX.Add(key, sc_ec); } }
public static void SelfPacketsEXAddKey(int key, ScriptEventCaller sc_ec) { lock (events_selfpacketsEXLock) { _events_selfpacketsEX.Add(key, sc_ec); } }
public static void EventsAddKey(int key, ScriptEventCaller sc_ec) { lock (eventsLock) { _events.Add(key, sc_ec); } }
public static void ServerPacketsAddKey(int key, ScriptEventCaller sc_ec) { lock (events_serverpacketsLock) { _events_serverpackets.Add(key, sc_ec); } }
private void Call_Event(ScriptEventCaller evn_call, ScriptEvent pop_event) { if (evn_call == null) { return; } //is the file loaded? if (!Files.ContainsKey(evn_call.File)) { System.IO.StreamReader filein = new System.IO.StreamReader(evn_call.File); ScriptFile sf = new ScriptFile(); sf.Name = evn_call.File; sf.ReadScript(filein); filein.Close(); Files.Add(sf.Name, sf); } //find the function int dest_line = Get_Function_Line(evn_call.Function, evn_call.File); if (dest_line == -1) { ScriptEngine.Script_Error("EVENT CALLER: FUNCTION DOES NOT EXIST : " + evn_call.File + " : " + evn_call.Function); Globals.gamedata.CurrentScriptState = ScriptState.Error; return; } //create a new thread at the function... ScriptThread scr_thread = new ScriptThread(); scr_thread.Current_File = evn_call.File; scr_thread.Line_Pos = dest_line + 1; VariableList stack_bottom = new VariableList(); //copy the variables over foreach (ScriptVariable svar in pop_event.Variables) { stack_bottom.Add_Variable(svar); } scr_thread._stack.Add(stack_bottom); scr_thread.ID = GetUniqueThreadID(); Threads.Add(scr_thread.ID, scr_thread); }
public static void SelfPacketsEXAddKey(int key, ScriptEventCaller sc_ec) { lock (events_selfpacketsEXLock) { _events_selfpacketsEX.Add(key, sc_ec); } }
public static void ClientPacketsEXAddKey(int key, ScriptEventCaller sc_ec) { lock (events_clientpacketsEXLock) { _events_clientpacketsEX.Add(key, sc_ec); } }
public static void ServerPacketsAddKey(int key, ScriptEventCaller sc_ec) { lock (events_serverpacketsLock) { _events_serverpackets.Add(key, sc_ec); } }
public static void EventsAddKey(int key, ScriptEventCaller sc_ec) { lock (eventsLock) { _events.Add(key, sc_ec); } }
private void Script_SET_EVENT(string line) { int event_id = Util.GetInt32(Get_String(ref line)); string file = Get_String(ref line); string function = Get_String(ref line); ScriptEventCaller sc_ec = new ScriptEventCaller(); sc_ec.Type = (EventType)event_id; sc_ec.File = file; sc_ec.Function = function.ToUpperInvariant(); switch(sc_ec.Type) { case EventType.ServerPacket: int packet_id = Util.GetInt32(Get_String(ref line)); if (ServerPacketsContainsKey(packet_id)) { ServerPacketsRemoveKey(packet_id); } ServerPacketsAddKey(packet_id, sc_ec); break; case EventType.ServerPacketEX: int packetex_id = Util.GetInt32(Get_String(ref line)); if (ServerPacketsEXContainsKey(packetex_id)) { ServerPacketsEXRemoveKey(packetex_id); } ServerPacketsEXAddKey(packetex_id, sc_ec); break; case EventType.ClientPacket: int cpacket_id = Util.GetInt32(Get_String(ref line)); if (ClientPacketsContainsKey(cpacket_id)) { ClientPacketsRemoveKey(cpacket_id); } ClientPacketsAddKey(cpacket_id, sc_ec); break; case EventType.ClientPacketEX: int cpacketex_id = Util.GetInt32(Get_String(ref line)); if (ClientPacketsEXContainsKey(cpacketex_id)) { ClientPacketsEXRemoveKey(cpacketex_id); } ClientPacketsEXAddKey(cpacketex_id, sc_ec); break; case EventType.SelfPacket: int spacket_id = Util.GetInt32(Get_String(ref line)); //Globals.l2net_home.Add_Text("spacket_id: " + spacket_id.ToString(),Globals.Green); if (SelfPacketsContainsKey(spacket_id)) { SelfPacketsRemoveKey(spacket_id); } SelfPacketsAddKey(spacket_id, sc_ec); break; case EventType.SelfPacketEX: int spacketex_id = Util.GetInt32(Get_String(ref line)); if (SelfPacketsEXContainsKey(spacketex_id)) { SelfPacketsEXRemoveKey(spacketex_id); } SelfPacketsEXAddKey(spacketex_id, sc_ec); break; default: if (EventsContainsKey(event_id)) { EventsRemoveKey(event_id); } EventsAddKey(event_id, sc_ec); break; } }