// will change this when i rework the script system void check_script_reload(CallHandler& handler, const std::string& cmd) { std::vector<std::string> tokens = TokenizeArgs(cmd); if (tokens.size() && tokens[0] == "sv_script_reload") handler.RaiseError("scripts cannot execute sv_script_reload."); }
void l_updateammo(CallHandler& handler, Object::unique_deque& args, Object::unique_list& results) { ident weapon_id = make_ident(ReadNumber<DWORD>(*args[0])); s_halo_weapon* weapon = (s_halo_weapon*)GetObjectAddress(weapon_id); if (!weapon) handler.RaiseError("updateammo: invalid weapon id!"); weapon->SyncAmmo(weapon_id); }
void l_setammo(CallHandler& handler, Object::unique_deque& args, Object::unique_list& results) { ident weapon_id = make_ident(ReadNumber<DWORD>(*args[0])); WORD clip_ammo = ReadNumber<WORD>(*args[1]); WORD pack_ammo = ReadNumber<WORD>(*args[2]); s_halo_weapon* weapon = (s_halo_weapon*)GetObjectAddress(weapon_id); if (!weapon) handler.RaiseError("setammo: invalid weapon id!"); weapon->SetAmmo(pack_ammo, clip_ammo); weapon->SyncAmmo(weapon_id); }
void l_log_msg(CallHandler& handler, Object::unique_deque& args, Object::unique_list&) { //todo: lets hope everything is null terminated. // find calls, and rip pout. DWORD log_id = ReadNumber<DWORD>(*args[0]); COutStream* stream; switch (log_id) { case 1: // game log { // can't treat the gaming log as a normal stream std::vector<std::wstring> msgs = ReadString(*args[1]); for (size_t x = 0; x < msgs.size(); x++) _TRACE_DEBUG_SCRIPT_EVENT(msgs[x].c_str()) return; } break; case 2: //phasor log { //stream = g_PhasorLog.get(); } break; case 3: // rcon log { //stream = g_RconLog.get(); } break; case 4: // script log { //stream = g_ScriptsLog.get(); } break; default: { std::stringstream ss; ss << "log_msg : '" << log_id << "' is not a valid id."; handler.RaiseError(ss.str()); } break; } _TRACE_DEBUG("_l_log_msg: %s", *args[1]) // todo: //WriteMessageToStream(*stream, *args[1]); }
void l_removetimer(CallHandler& handler, Object::unique_deque& args, Object::unique_list& results) { DWORD id = ReadNumber<DWORD>(*args[0]); if (!g_Timers.RemoveTimer(id)) handler.RaiseError("removetimer : invalid timer id or a timer tried removing itself in its callback."); }