-- name: evilCoins -- description: Las monedas te persiguen y mueres al recoger una. -- author: Niveles64 -- CONFIGURACIÓN GENERAL DEL MOD (velocidad de las monedas) local COIN_SPEED = 10 -- ESTA PARTE SIRVE PARA DETECTAR CUANDO UN JUGADOR RECOGE UNA MONEDA -- Si el número de monedas aumenta, se le baja la vida a 0 para matarlo local prevCoins = {} local function coin_death(m) if m == nil then return end local i = m.playerIndex if prevCoins[i] == nil then prevCoins[i] = m.numCoins end if m.numCoins > prevCoins[i] then m.health = 0xFF end prevCoins[i] = m.numCoins end -- ESTA PARTE HACE QUE LAS MONEDAS SIGAN A MARIO -- Calcula la distancia entre Mario y la moneda y la mueve hacia él local function follow_coins(behavior) if behavior == nil then return end local obj = obj_get_first_with_behavior_id(behavior) while obj ~= nil do local m = nearest_mario_state_to_object(obj) if m ~= nil and m.marioObj ~= nil then local dx = m.marioObj.oPosX - obj.oPosX local dy = m.marioObj.oPosY - obj.oPosY local dz = m.marioObj.oPosZ - obj.oPosZ local dist = math.sqrt(dx*dx + dz*dz) if dist > 0 then obj.oPosX = obj.oPosX + (dx / dist) * COIN_SPEED obj.oPosZ = obj.oPosZ + (dz / dist) * COIN_SPEED end obj.oPosY = obj.oPosY + dy * 0.05 end obj = obj_get_next_with_same_behavior_id(obj) end end -- ESTA PARTE ACTIVA EL SEGUIMIENTO PARA TODAS LAS MONEDAS local function coins_pursuit() follow_coins(id_bhvYellowCoin) follow_coins(id_bhvRedCoin) follow_coins(id_bhvBlueCoin) end -- HOOKS DEL MOD -- uno revisa si recogiste moneda y otro mueve las monedas cada frame hook_event(HOOK_MARIO_UPDATE, coin_death) hook_event(HOOK_UPDATE, coins_pursuit)