From 38be365dd3ef73dee144bc674b4feb435725857a Mon Sep 17 00:00:00 2001 From: Agent X <44549182+Agent-11@users.noreply.github.com> Date: Sat, 23 Dec 2023 11:37:02 -0500 Subject: [PATCH] Remove mod version of Cheats I plan to readd normal cheats when I get the chance. I do not agree with removing cheats from the game and just having a shoddily made Lua mod to replace it. --- mods/cheats.lua | 613 ------------------------------------------------ 1 file changed, 613 deletions(-) delete mode 100644 mods/cheats.lua diff --git a/mods/cheats.lua b/mods/cheats.lua deleted file mode 100644 index 6b3a2815..00000000 --- a/mods/cheats.lua +++ /dev/null @@ -1,613 +0,0 @@ --- name: Cheats --- description: The Official Cheats have been Recreated into a Single Mod, Due to the Removal of Cheats as a Settings Option \n\nMod By JairoThePlumber, Coolio and Blocky \n\nSyncing fixed by Blocky and Coolio\n\nBLJ Anywhere and Rapid Fire made by Sunk\n\nAlways Triple Jump made by Bread\n\nMenu made also by Blocky --- incompatible: cheats - ---localise function for performance - -local approach_s32, collision_find_surface_on_ray, disable_time_stop_including_mario, enable_time_stop_including_mario, djui_hud_get_screen_width, djui_hud_measure_text, -djui_hud_set_color, djui_hud_set_font, djui_hud_print_text, djui_hud_render_rect, djui_hud_get_mouse_x, djui_hud_get_mouse_y, djui_hud_render_texture, play_sound, -djui_hud_set_resolution, hook_chat_command, hook_event = - -approach_s32, collision_find_surface_on_ray, disable_time_stop_including_mario, enable_time_stop_including_mario, djui_hud_get_screen_width, djui_hud_measure_text, -djui_hud_set_color, djui_hud_set_font, djui_hud_print_text, djui_hud_render_rect, djui_hud_get_mouse_x, djui_hud_get_mouse_y, djui_hud_render_texture, play_sound, -djui_hud_set_resolution, hook_chat_command, hook_event - --- Cheats in Order -- -for i = 0, MAX_PLAYERS - 1 do - gPlayerSyncTable[i].Moon_Jump = false - gPlayerSyncTable[i].God_Mode = false - gPlayerSyncTable[i].Infinite_lives = false - gPlayerSyncTable[i].Super_Speed = false - gPlayerSyncTable[i].Responsive_Controls = false - gPlayerSyncTable[i].Rapid_Fire = false - gPlayerSyncTable[i].BLJ_Anywhere = false - gPlayerSyncTable[i].Always_Triple_Jump = false -end - -local function lang() - local l = gLang[smlua_text_utils_get_language()] - return l == nil and gLang["English"] or l -end - --- Text For Languages -- -gLang = { - ["English"] = { - MJ = "Moon Jump", - GM = "God Mode", - IL = "Infinite Lives", - SS = "Super Speed", - RC = "Responsive Controls", - RF = "Rapid Fire", - BLJA = "BLJ Anywhere", - ATJ = "Always Triple Jump", - CHEATS = 'cheats', - EXIT = 'Exit', - DESC = '- Opens the Cheats menu.', - EXIT_DESC = "Exit the cheat menu.", - MJ_DESC = "Allows Mario to jump very high.", - GM_DESC = "Makes Mario invincible.", - IL_DESC = "Gives Mario infinite lives.", - SS_DESC = "Increases Mario's movement speed.", - RC_DESC = "Improves control responsiveness.", - RF_DESC = "Enables rapid fire for Mario's A button.", - BLJA_DESC = "Allows Backwards Long Jumps anywhere.", - ATJ_DESC = "Allows Mario to always perform a triple jump.", - }, - - ["Spanish"] = { - MJ = "Salto Lunar", - GM = "Modo Dios", - IL = "Vidas Infinitas", - SS = "Super Velocidad", - RC = "Controles Responsivos", - RF = "Pulsación Rápida", - BLJA = "BLJ Donde Sea", - ATJ = "Siempre Hacer Salto Triple", - CHEATS = 'trucos', - EXIT = 'Dejar', - DESC = '- Abre el menú Trucos.', - EXIT_DESC = "Sal del menú de trucos.", - MJ_DESC = "Permite a Mario saltar muy alto.", - GM_DESC = "Hace que Mario sea invencible.", - IL_DESC = "Le da a Mario vidas infinitas.", - SS_DESC = "Aumenta la velocidad de movimiento de Mario.", - RC_DESC = "Mejora la capacidad de respuesta del control.", - RF_DESC = "Permite disparar rápidamente el botón A de Mario.", - BLJA_DESC = "Permite saltos largos hacia atrás en cualquier lugar.", - ATJ_DESC = "Permite a Mario realizar siempre un Salto Triple.", - }, - - ["French"] = { - MJ = "Saut Antigravité", - GM = "Mode Invincible", - IL = "Vies Infinies", - SS = "Super Vitesse", - RC = "Contrôles Réactifs", - RF = "Tir Rapide", - BLJA = "BLJ N'importe Où", - ATJ = "Triple Sauts Infinis", - CHEATS = 'triche', - EXIT = 'Partir', - DESC = '- Ouvrez le menu Astuces.', - EXIT_DESC = "Quittez le menu de triche.", - MJ_DESC = "Permet à Mario de sauter très haut.", - GM_DESC = "Rend Mario invincible.", - IL_DESC = "Donne à Mario des vies infinies.", - SS_DESC = "Augmente la vitesse de déplacement de Mario.", - RC_DESC = "Améliore la réactivité du contrôle.", - RF_DESC = "Permet un tir rapide pour le bouton A de Mario.", - BLJA_DESC = "PPermet des sauts longs en arrière n'importe où.", - ATJ_DESC = "Permet à Mario de toujours effectuer un triple saut.", - }, - - ["Portuguese"] = { - MJ = "Pulo da Lua", - GM = "Modo Deus", - IL = "Vidas Infinitas", - SS = "Super Velocidade", - RC = "Controle Responsivos", - RF = "Fogo Rápido", - BLJA = "BLJ Em Qualquer Lugar", - ATJ = "Sempre Fazer Triple Jump", - CHEATS = 'trapaças', - EXIT = 'Deixar', - DESC = '- Abra o menu Truques.', - EXIT_DESC = "Saia do menu de truques.", - MJ_DESC = "Permite que Mario salte muito alto.", - GM_DESC = "Makes Mario invincible.", - IL_DESC = "Torna Mario invencível.", - SS_DESC = "Aumenta a velocidade de movimento de Mario.", - RC_DESC = "Melhora a capacidade de resposta do controle.", - RF_DESC = "Ativa o disparo rápido para o botão A de Mario.", - BLJA_DESC = "Permite saltos longos para trás em qualquer lugar.", - ATJ_DESC = "Permite que Mario sempre execute um salto triplo.", - }, - - ["German"] = { - MJ = "Mond-Sprung", - GM = "Gott Modus", - IL = "Unbegrenzte Leben", - SS = "Supergeschwindigkeit", - RC = "Reaktionsschnelle Steuerung", - RF = "Schnellfeuer", - BLJA = "Überall Rückwertsweitspringen", - ATJ = "Immer Dreisprung", - CHEATS = 'betrugt', - EXIT = 'Verlassen', - DESC = '- Öffnet das Cheats-Menü.', - EXIT_DESC = "Verlassen Sie das Cheat-Menü.", - MJ_DESC = "Ermöglicht Mario, sehr hoch zu springen.", - GM_DESC = "Macht Mario unbesiegbar.", - IL_DESC = "Gibt Mario unendlich viele Leben.", - SS_DESC = "Erhöht Marios Bewegungsgeschwindigkeit.", - RC_DESC = "Verbessert die Reaktionsfähigkeit der Steuerung.", - RF_DESC = "Enables rapid fire for Mario's A button.", - BLJA_DESC = "Ermöglicht Schnellfeuer für Marios A-Taste.", - ATJ_DESC = "Ermöglicht Mario, immer einen Dreisprung auszuführen.", - }, - - ["Russian"] = { - MJ = "Супер прыжок", - GM = "Режим бога", - IL = "Бесконечные жизни", - SS = "Супер cкорость", - RC = "Отзывчивое управление", - RF = "Быстрый огонь", - BLJA = "BLJ в любом месте", - ATJ = "Всегда тройной прыжок", - CHEATS = 'cheats', - EXIT = 'Покинуть', - DESC = '- Открывает меню читов.', - EXIT_DESC = "Выйдите из чит-меню.", - MJ_DESC = "Позволяет Марио прыгать очень высоко.", - GM_DESC = "Делает Марио непобедимым.", - IL_DESC = "Дает Марио бесконечное количество жизней.", - SS_DESC = "Увеличивает скорость передвижения Марио.", - RC_DESC = "Улучшает оперативность управления.", - RF_DESC = "Включает быстрый огонь для кнопки A Марио.", - BLJA_DESC = "Позволяет совершать прыжки назад в длину в любом месте.", - ATJ_DESC = "Позволяет Марио всегда выполнять тройной прыжок.", - }, - - ["Italian"] = { - MJ = "Salto della Luna", - GM = "Modalità Dio", - IL = "Vite Infinite", - SS = "Super Velocità", - RC = "Controlli Reattivi", - RF = "Fuoco Rapido", - BLJA = "BLJ Ovunque", - ATJ = "Sempre Salto Triplo", - CHEATS = 'trucchi', - EXIT = 'lasciare', - DESC = '- Apre il menu Trucchi.', - EXIT_DESC = "Esci dal menu dei trucchi.", - MJ_DESC = "Permette a Mario di saltare molto in alto.", - GM_DESC = "Rende Mario invincibile.", - IL_DESC = "Dà a Mario vite infinite.", - SS_DESC = "Aumenta la velocità di movimento di Mario.", - RC_DESC = "Migliora la reattività del controllo.", - RF_DESC = "Abilita il fuoco rapido per il pulsante A di Mario.", - BLJA_DESC = "Permette salti in lungo all'indietro ovunque.", - ATJ_DESC = "Permette a Mario di eseguire sempre un triplo salto.", - }, - - ["Czech"] = { - MJ = "Nekonečný Skok", - GM = "Nenech Se Zranit", - IL = "Nekonečné Životy", - SS = "Super Rychlost", - RC = "Citlivé Ovládání", - RF = "Rychle Mačkat Tlačítko", - BLJA = "BLJ Všude", - ATJ = "Vždy Trojitý Skok", - CHEATS = 'cheaty', - EXIT = 'opustit', - DESC = '- Otevře nabídku Cheatů.', - EXIT_DESC = "Opusťte cheat menu.", - MJ_DESC = "Umožňuje Mariovi skákat velmi vysoko.", - GM_DESC = "Učiní Maria neporazitelným.", - IL_DESC = "Dává Mariovi nekonečné životy.", - SS_DESC = "Zvyšuje Mariovu rychlost pohybu.", - RC_DESC = "Zlepšuje odezvu ovládání.", - RF_DESC = "Umožňuje rychlou střelbu pro Mariovo tlačítko A.", - BLJA_DESC = "Umožňuje dlouhé skoky vzad kdekoli.", - ATJ_DESC = "Umožňuje Mariovi vždy provést trojitý skok.", - }, - - ["Dutch"] = { - MJ = "Maan Sprong", - GM = "God Modus", - IL = "Oneindige Levens", - SS = "Super Snelheid", - RC = "Snel Reagerende Controles", - RF = "Snel Vuur", - BLJA = "BLJ Overal", - ATJ = "Altijd Drievoudige Sprong", - CHEATS = 'cheats', - EXIT = 'Verlaten', - DESC = '- Opent het Cheats-menu.', - EXIT_DESC = "Verlaat het cheatmenu.", - MJ_DESC = "Hiermee kan Mario heel hoog springen.", - GM_DESC = "Maakt Mario onoverwinnelijk.", - IL_DESC = "Geeft Mario oneindige levens.", - SS_DESC = "Verhoogt de bewegingssnelheid van Mario.", - RC_DESC = "Verbetert het reactievermogen van de besturing.", - RF_DESC = "Maakt snel vuren voor Mario's A-knop mogelijk.", - BLJA_DESC = "Maakt achteruit lange sprongen overal mogelijk.", - ATJ_DESC = "Hiermee kan Mario altijd een hinkstapsprong uitvoeren." - }, - - ["Polish"] = { - MJ = "Skok Ksiezycowy", - GM = "Tryb Boga", - IL = "Nieskonczone Zycia", - SS = "Super Szybkosc", - RC = "Responsywne Sterowanie", - RF = "Szybkostrzelnosc", - BLJA = "BLJ Gdziekolwiek", - ATJ = "Potrojny Skok Zawsze", - CHEATS = 'oszustwa', - EXIT = 'Wyjście', - DESC = '- Otwiera menu Kody.', - EXIT_DESC = "Wyjdź z menu cheatów.", - MJ_DESC = "Pozwala Mario skakać bardzo wysoko.", - GM_DESC = "Uczyń Mario niepokonanym.", - IL_DESC = "Daje Mario nieskończone życie.", - SS_DESC = "Zwiększa prędkość ruchu Mario.", - RC_DESC = "Poprawia responsywność sterowania.", - RF_DESC = "Umożliwia szybkie strzelanie przyciskiem A Mario.", - BLJA_DESC = "Umożliwia dalekie skoki do tyłu w dowolnym miejscu.", - ATJ_DESC = "Pozwala Mario zawsze wykonać potrójny skok.", - } -} - -local menu = false - --- Moon Jump -- - -local function limit_angle(a) - return (a + 0x8000) % 0x10000 - 0x8000 -end - -local function moon_jump_update(m) - if gPlayerSyncTable[m.playerIndex].Moon_Jump then - if (m.controller.buttonDown & L_TRIG) ~= 0 then - m.faceAngle.y = m.intendedYaw - approach_s32(limit_angle(m.intendedYaw - m.faceAngle.y), 0, 0x800, 0x800) - m.vel.y = 40 - - if (m.action == ACT_FORWARD_GROUND_KB or - m.action == ACT_BACKWARD_GROUND_KB or - m.action == ACT_SOFT_FORWARD_GROUND_KB or - m.action == ACT_HARD_BACKWARD_GROUND_KB or - m.action == ACT_FORWARD_AIR_KB or - m.action == ACT_BACKWARD_AIR_KB or - m.action == ACT_HARD_FORWARD_AIR_KB or - m.action == ACT_HARD_BACKWARD_AIR_KB or - m.action == ACT_AIR_HIT_WALL) then - set_mario_action(m, ACT_FREEFALL, 0) - end - end - end -end - -local function moon_jump_command() - gPlayerSyncTable[0].Moon_Jump = not gPlayerSyncTable[0].Moon_Jump - --djui_popup_create("Moon Jump is now " .. (gPlayerSyncTable[0].Moon_Jump and "Enabled" or "Disabled"), 1) - return true -end - --- God Mode -- - -local function god_mode_update(m) - if gPlayerSyncTable[m.playerIndex].God_Mode then - m.health = 0x880 - m.healCounter = 0 - m.hurtCounter = 0 - end -end - -local function god_mode_fall_update(m, type) - if gPlayerSyncTable[m.playerIndex].God_Mode then - if type == STEP_TYPE_AIR and m.vel.y < 0 then - ray = collision_find_surface_on_ray(m.pos.x, m.pos.y, m.pos.z, m.vel.x, m.vel.y, m.vel.z) - if ray.surface ~= nil then - if ray.surface.normal.y ~= 0 then - m.peakHeight = m.pos.y - end - end - end - end -end - -local function god_mode_command() - gPlayerSyncTable[0].God_Mode = not gPlayerSyncTable[0].God_Mode - --djui_popup_create("God Mode is now " .. (gPlayerSyncTable[0].God_Mode and "Enabled" or "Disabled"), 1) - return true -end - --- Infinite Lives -- - -local function infinite_lives_update(m) - if gPlayerSyncTable[0].Infinite_lives then - m.numLives = 100 - end -end - -local function infinite_lives_command() - gPlayerSyncTable[0].Infinite_lives = not gPlayerSyncTable[0].Infinite_lives - --djui_popup_create("Infinite Lives is now " .. (Infinite_lives and "Enabled" or "Disabled"), 1) - return true -end - --- Super Speed -- - -local SUPER_SPEED_MULTIPLIER = 4 - -local function super_speed_update(m) - if gPlayerSyncTable[m.playerIndex].Super_Speed and m.action ~= ACT_BUBBLED then - m.vel.x = m.vel.x * SUPER_SPEED_MULTIPLIER - m.vel.z = m.vel.z * SUPER_SPEED_MULTIPLIER - end -end - -local function super_speed_command() - gPlayerSyncTable[0].Super_Speed = not gPlayerSyncTable[0].Super_Speed - --djui_popup_create("Super Speed is now " .. (gPlayerSyncTable[0].Super_Speed and "Enabled" or "Disabled"), 1) - return true -end - --- Responsive Controls -- - -local function responsive_controls_update(m) - if gPlayerSyncTable[m.playerIndex].Responsive_Controls then - if m.action == ACT_WALKING or - m.action == ACT_HOLD_WALKING or - m.action == ACT_HOLD_HEAVY_WALKING or - m.action == ACT_FINISH_TURNING_AROUND or - m.action == ACT_CRAWLING then - m.faceAngle.y = m.intendedYaw - end - end -end - -local function responsive_controls_command() - gPlayerSyncTable[0].Responsive_Controls = not gPlayerSyncTable[0].Responsive_Controls - --djui_popup_create("Responsive Controls is now " .. (gPlayerSyncTable[0].Responsive_Controls and "Enabled" or "Disabled"), 1) - return true -end - --- Rapid Fire -- - -local function rapid_fire_update(m) - if gPlayerSyncTable[m.playerIndex].Rapid_Fire then - if (m.controller.buttonDown & A_BUTTON) ~= 0 then - m.controller.buttonPressed = m.controller.buttonPressed | A_BUTTON - end - end -end - -local function rapid_fire_command() - gPlayerSyncTable[0].Rapid_Fire = not gPlayerSyncTable[0].Rapid_Fire - --djui_popup_create("Rapid Fire is now " .. (gPlayerSyncTable[0].Rapid_Fire and "Enabled" or "Disabled"), 1) - return true -end - --- BLJ Anywhere -- - -local function blj_anywhere_update(m) - if gPlayerSyncTable[m.playerIndex].BLJ_Anywhere then - if (m.action == ACT_LONG_JUMP) and - (m.controller.buttonDown & Z_TRIG) ~= 0 and - m.forwardVel < -15 then - m.vel.y = -30 - end - end -end - -local function blj_anywhere_command() - gPlayerSyncTable[0].BLJ_Anywhere = not gPlayerSyncTable[0].BLJ_Anywhere - --djui_popup_create("BLJ Anywhere is now " .. (gPlayerSyncTable[0].BLJ_Anywhere and "Enabled" or "Disabled"), 1) - return true -end - --- Always Triple Jump -- - ----@param m MarioState -local function always_triple_jump_update(m, action) - if gPlayerSyncTable[m.playerIndex].Always_Triple_Jump then - if m.forwardVel < 20 and m.action == ACT_DOUBLE_JUMP_LAND and action == ACT_JUMP then - return ACT_TRIPLE_JUMP - end - end -end - - -local function always_triple_jump_command() - gPlayerSyncTable[0].Always_Triple_Jump = not gPlayerSyncTable[0].Always_Triple_Jump - --djui_popup_create("Always Triple Jump is now " .. (gPlayerSyncTable[0].Always_Triple_Jump and "Enabled" or "Disabled"), 1) - return true -end - -local function mario_update(m) - if m.playerIndex ~= 0 then return end - moon_jump_update(m) - god_mode_update(m) - infinite_lives_update(m) - responsive_controls_update(m) -end - -local function before_phys_step(m, type) - god_mode_fall_update(m, type) - super_speed_update(m) -end - -local function before_mario_update(m) - if m.playerIndex ~= 0 then return end - blj_anywhere_update(m) - rapid_fire_update(m) -end - -local function close_menu() - menu = false - selectedOption = 1 - disable_time_stop_including_mario() -end - --- Define menu options -local menuOptions = { - { label = lang().MJ, action = moon_jump_command, status = gPlayerSyncTable[0].Moon_Jump, description = lang().MJ_DESC }, - { label = lang().GM, action = god_mode_command, status = gPlayerSyncTable[0].God_Mode, description = lang().GM_DESC }, - { label = lang().IL, action = infinite_lives_command, status = gPlayerSyncTable[0].Infinite_lives, description = lang().IL_DESC }, - { label = lang().SS, action = super_speed_command, status = gPlayerSyncTable[0].Super_Speed, description = lang().SS_DESC }, - { label = lang().RC, action = responsive_controls_command, status = gPlayerSyncTable[0].Responsive_Controls, description = lang().RC_DESC }, - { label = lang().RF, action = rapid_fire_command, status = gPlayerSyncTable[0].Rapid_Fire, description = lang().RF_DESC }, - { label = lang().BLJA, action = blj_anywhere_command, status = gPlayerSyncTable[0].BLJ_Anywhere, description = lang().BLJA_DESC }, - { label = lang().ATJ, action = always_triple_jump_command, status = gPlayerSyncTable[0].Always_Triple_Jump, description = lang().ATJ_DESC }, - { label = lang().EXIT, action = function() close_menu() end, description = lang().EXIT_DESC }, -} - --- Initialize the selected option -local selectedOption = 1 - --- Set the scale factor for the menu -local menuScale = 2.0 -- Adjust this value as needed - --- Add a title for the menu -local menuTitle = lang().CHEATS -local titleY = 150 - -local function drawMenu() - if not menu then return end - enable_time_stop_including_mario() - - djui_hud_set_color(0, 0, 0, 200) - djui_hud_render_rect(0, 0, 10000, 10000) - - -- Set text color and position for the title - local titleX = ((djui_hud_get_screen_width() - djui_hud_measure_text(menuTitle) * menuScale * 2.5) / 2.1) - - -- Draw the title - djui_hud_set_color(255, 255, 255, 255) - djui_hud_set_font(FONT_HUD) - djui_hud_print_text(menuTitle, titleX, titleY, menuScale * 2.5) - djui_hud_set_font(FONT_NORMAL) - - -- Set text color and position for the menu options - local textY = titleY + 100 - local textSpacing = 30 * menuScale - local rectPadding = 5 - - for i, option in ipairs(menuOptions) do - local textWidth = djui_hud_measure_text(option.label) - local textX = (djui_hud_get_screen_width() - textWidth * menuScale) / 2 - - if i == selectedOption then - -- Draw black rectangle behind the selected option - -- Draw the description with a smaller scale - local descX = (djui_hud_get_screen_width() - djui_hud_measure_text(option.description) * (menuScale - 0.5)) / 2 - local descY = 850 - djui_hud_set_color(255, 255, 255, 255) - djui_hud_set_font(FONT_NORMAL) - djui_hud_print_text(option.description, descX, descY, menuScale - 0.5) - local optionWidth = textWidth * menuScale + rectPadding * 2 - local optionHeight = 16 * menuScale + rectPadding * 2 - djui_hud_set_color(0, 255, 255, 150) - djui_hud_render_rect(textX - rectPadding, (textY + (i - 1) * textSpacing - rectPadding) + 15, optionWidth, optionHeight + 5) - end - - -- Set text color based on the status - if option.status == nil then - djui_hud_set_color(255, 255, 255, 255) -- Green for "On" - elseif option.status then - djui_hud_set_color(0, 255, 0, 255) -- Green for "On" - else - djui_hud_set_color(255, 0, 0, 255) -- Red for "Off" - end - - -- Draw the menu option with scale - djui_hud_print_text(option.label, textX, textY + (i - 1) * textSpacing, menuScale) - end -end - ----comment ------@param m MarioState --- Add a cooldown for menu navigation -local cooldown = 5 -local cooldownCounter = 0 - -local function updateMenu() - if not menu then return end - local m = gMarioStates[0] - if m.playerIndex ~= 0 then return end - - local stickY = m.controller.stickY - local mouseX = djui_hud_get_mouse_x() - local mouseY = djui_hud_get_mouse_y() - - djui_hud_render_texture(gTextures.star, mouseX - 8, mouseY - 8, 2, 2) - - if selectedOption < 1 then - selectedOption = #menuOptions - elseif selectedOption > #menuOptions then - selectedOption = 1 - end - - if cooldownCounter > 0 then - cooldownCounter = cooldownCounter - 1 - else - for i, option in ipairs(menuOptions) do - local textWidth = djui_hud_measure_text(option.label) - local textX = (djui_hud_get_screen_width() - textWidth * menuScale) / 2 - local textY = titleY + 100 + (i - 1) * (30 * menuScale) - local optionWidth = textWidth * menuScale - local optionHeight = 16 * menuScale - - -- Check if the mouse is within the bounds of the option - if mouseX >= textX and mouseX <= textX + optionWidth and mouseY >= textY and mouseY <= textY + optionHeight then - selectedOption = i - end - end - - if stickY > 0.5 then - -- Move selection down - selectedOption = selectedOption - 1 - play_sound(SOUND_MENU_CHANGE_SELECT, gMarioStates[0].pos) - cooldownCounter = cooldown - elseif stickY < -0.5 then - -- Move selection up - selectedOption = selectedOption + 1 - play_sound(SOUND_MENU_CHANGE_SELECT, gMarioStates[0].pos) - cooldownCounter = cooldown - elseif m.controller.buttonPressed & A_BUTTON ~= 0 or m.controller.buttonPressed & B_BUTTON ~= 0 then - play_sound(SOUND_MENU_CLICK_FILE_SELECT, gMarioStates[0].pos) - -- Execute the selected menu option - menuOptions[selectedOption].action() - if menuOptions[selectedOption].status ~= nil then - menuOptions[selectedOption].status = not menuOptions[selectedOption].status - end - elseif m.controller.buttonPressed & START_BUTTON ~= 0 then - close_menu() - end - end -end - --- Main loop -local function hud_render() - djui_hud_set_resolution(RESOLUTION_DJUI) - drawMenu() - updateMenu() -end - -local function menu_command() - menu = true - return true -end - -hook_chat_command(lang().CHEATS, lang().DESC, menu_command) -hook_event(HOOK_ON_HUD_RENDER, hud_render) -hook_event(HOOK_MARIO_UPDATE, mario_update) -hook_event(HOOK_ALLOW_HAZARD_SURFACE, function (m) return not gPlayerSyncTable[m.playerIndex].God_Mode end) -hook_event(HOOK_BEFORE_PHYS_STEP, before_phys_step) -hook_event(HOOK_BEFORE_MARIO_UPDATE, before_mario_update) -hook_event(HOOK_BEFORE_SET_MARIO_ACTION,always_triple_jump_update) \ No newline at end of file