-- name: Disable Cannons -- description: A mod that disables cannons, best with Hide and Seek.\n\nYou can use\n\n/cannons\n\nto turn them on or off.\n\nDEFAULT IS OFF! -- pausable: false gGlobalSyncTable.cannons = false local function on_ban_cannon_command() gGlobalSyncTable.cannons = not gGlobalSyncTable.cannons return true end ---@param o Object local function cannon_lid_init(o) o.oFlags = OBJ_FLAG_PERSISTENT_RESPAWN | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE o.collisionData = gGlobalObjectCollisionData.cannon_lid_seg8_collision_08004950 cur_obj_set_home_once() end ---@param o Object local function cannon_lid_loop(o) --Condition for Cannons in a Level if gGlobalSyncTable.cannons then obj_set_model_extended(o, E_MODEL_NONE) else obj_set_model_extended(o, E_MODEL_DL_CANNON_LID) load_object_collision_model() end end id_bhvCannonLid = hook_behavior(nil, OBJ_LIST_SURFACE, false, cannon_lid_init, cannon_lid_loop, "cannonLid") id_bhvCannonClosed = hook_behavior(id_bhvCannonClosed, OBJ_LIST_SURFACE, false, function (o) spawn_non_sync_object(id_bhvCannonLid, E_MODEL_DL_CANNON_LID, o.oPosX, o.oPosY - 5, o.oPosZ, function (obj) obj.oFaceAnglePitch = o.oFaceAnglePitch obj.oFaceAngleYaw = o.oFaceAngleYaw obj.oFaceAngleRoll = o.oFaceAngleRoll end) o.activeFlags = ACTIVE_FLAG_DEACTIVATED end, nil, nil) ----------- -- hooks -- ----------- if network_is_server() then hook_chat_command("cannons", "Turn cannons on or off", on_ban_cannon_command) end