@ мннЭмннЭРнн мЭРнн мЭмЭм РЭР @DD433CDD3C4C3C4CDC43CC43CD@DDююрэноэоэооэююноэоэнэоэнэрюю@DDD4333DD434C434CD343D343CD433CDDD333C333C333CD33DC33DC33CC43DЙЋЙЋ ™ЙЋЊ™ЙЋЊ™ЙЋЊЙЋ ЙЋА ююЮЬ.""ь.џ/ь.//т."/т."/т.""тююююDDD@3334ѓџџ4џDD4ODD4OCC4OCC4O3CDDD333џџ?CDDџCDDєC43єC44єC4CєC333УCCCУCC3УCDCУCCCУ333УCDDФ333У@DD@@@DD@@ЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬ<УЬЬ33ЬЬ<УЬЬЬЬЬЬЬЬЬ\UUХeffVUUfVeVfVeVUVefVVefVU\UUХЬЬ3С1111311313С433C433D43C443C343434C334433@DDD34CD4CDCD33CC33C3D3C3C4C33DDDDDмннЭмннЭмннЭмннЭмннЭмннЭмннЭмннЭЬЬЬЬlffЦЬЬЬЬlЦlЦlЦlЦlffЦlffЦЬЬЬЬ4OCC4OCC4OCC4ODD4ODD4ѓџџ@333DDD44єC44єC44єCDDєCDDџCџџ?C333DDDCD0CD3CDD3CDD3CDD0CDCD@"""""" """"" "   """" " `ff```ff```ff```ff``ff`ff`````ff`ff`````f``ff`````ff`ff```ff``ff`ff```ff```ff````f``ff`f```f```f``ff````ff``````````````````f`````ff````````ff`ff```````````ff`````ff````ff```````ff`ff```ff```ff```ff```ff```ff`ff`ff```ff`f``ff```````````ff```````ff`````````````ff`ff```ffff````ff```````````ff``````ff``````ff`ffffffff```f``ff`ff`ff`ff````ff`ff``f``ff`ff```ff`ffffffff`ff```ff``ff`ff```ff`````````````````````````````ff`ff``ff````````````ff``ff`ff```ff`ff`рюююонннююоноэоноэюнонюнонэюоннэюююнннэнннэнннэнннюнннюнннэнннюоннэоннюонэоонэнонннонннооннрюююннэюоэюэюннээннэнюнэнэоэннююююю >```````` `` `` `` `````` `` `@ @@ @  @@@@ Р@@ @@Р @@@ @@ @@ @ @Р @@@ @@ @@  @@ @ @`€ Рр˜/Р?UUUUPUPUUPPUPUPUPUPU`fff`f`ff``f`fPUPPPPPPPPUPUPUPUPUPf``ff``ff`UPPPPPPUUUUUUf``ff`ffffPUPPPPPUPPUUUUUf``````ffPUUUPPPUUPPUPUPUPUPUfff```ff``f`fрююЬ р""ТЬ Ь3333000303330303ЬЬЬ Ь ЬЬ ЬЬЬ Ь Ь ЬЬЬЬ РЬрђџТР ЬР ЬРЬ0000000303033030ЬЬЬ ЬЬЬР ЬР ЬРЬРР ЬЬрђђ"Ь РЬРЬ0300000333333ЬЬЬЬ ЬЬЬРЬРРЬРЬ РЬЬЬЬЬр"ђ"Ь Р РЬ00000330033033ЬЬРЬЬЬЬР РР РЬРЬР Ь р"ђ"Р ЬЬ РЬ 3330003300303330303ЬЬ ЬЬ ЬЬ ЬЬ ЬЬ Ь РЬ ЬЬ ЬЬРЬр"""рюююЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬ""""""""""""""""""""""""""""""""""""""""""""""""""""""""""мЭннн,""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""мЭннн,""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""мЭнннLDDD""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""Тннн<333$"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""Тннн<333$"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""Тннн<333$"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""ТнЬннн= 500 then sfx(2, 120, 10) elseif item.v >= 250 then sfx(0, 144, 8) else sfx(1, 96, 10) end state = "pull" break end end end function drawBackground() rect(0, 24, 240, 40, 15) rect(0, 64, 240, 40, 1) rect(0, 104, 240, 32, 0) end function drawItems() for _, item in ipairs(items) do if caught == item then item.x = startX + math.cos(angle) * length item.y = startY + math.sin(angle) * length end if item.x > 0 then spr(item.id, item.x - (item.w*4), item.y - (item.h*4), 0, 1, 0, 0, item.w, item.h) end end end function drawRope(sx, sy, ang, len) if len > 0 then for i = 1, len, 6 do local px = sx + math.cos(ang) * i local py = sy + math.sin(ang) * i spr(22, px - 4, py - 4, 0) end end local tipX, tipY = sx + math.cos(ang) * len, sy + math.sin(ang) * len local is_bombing = btn(0) if state == "pull" and is_bombing and bombs > 0 then spr(7, tipX - 4, tipY - 4, 0) else spr(1, tipX - 4, tipY - 4, 0) end end function drawHUD() rect(0, 0, 240, 24, 0) line(0, 24, 240, 24, 12) drawMetin("SCORE: "..pad(score, 5), 5, 5, 14) drawMetin("GOAL: "..pad(target_score, 5), 148, 5) drawMetin("LVL: "..pad(level, 3).."/256", 5, 15) drawMetin("TIME: "..pad(math.ceil(time), 2), 172, 15) spr(7, 128, 15, 0) drawMetin(pad(bombs, 3), 138, 15, 12) spr(15, 110, 5, 0) if score >= target_score and (state == "swing" or state == "pull") then if (t // 60) %2 == 0 then rect(150, 28, 80, 12, 12) drawMetin("X: MARKET", 150, 30, 15) end if btnp(5) then state = "endstate"; state_timer = 0 end end end -- ============================================ -- 4. STATE FUNCTIONS -- ============================================ function intro() cls(0) spr(8, 58, 42, 0, 3) spr(9, 80, 42, 0, 3) spr(24, 58, 65, 0, 3) spr(25, 80, 65, 0, 3) drawMetin("HEXABEE", 108, 50) drawMetin("RETRO", 108, 70) drawMetin("FROM KAYSERI/TURKEY", 45, 95) drawMetin("WWW.HEXABEE.COM.TR/RETRO", 20, 128) local perde_genisligi = math.max(0, 8 - (state_timer / 20)) if perde_genisligi > 0 then for y = 0, 136, 8 do rect(0, y, 240, perde_genisligi, 0) end end if btnp(4) or state_timer > 210 then if state_timer > 30 then state = "menu"; state_timer = 0 end end state_timer = state_timer + 1 end function menu() cls(0) map(0) spr(28, 80, 115); spr(29, 88, 115); spr(30, 96, 115); spr(31, 104, 115) drawMetin("2026 - HEXABEE RETRO", 10, 128, 12) drawMetin("THE GOLD'EROR", 50, 80, 4) if (t // 30) % 2 == 0 then drawMetin("Z: START", 60, 100, 11) end calMuzik(0) if btnp(4) and state_timer > 30 then state = "swing"; state_timer = 0; resetGame(); music(-1) end state_timer = state_timer + 1 end function swing() calMuzik(1) angle = base_angle + math.sin(t * swing_speed) * 1.2 length = 12; time = time - 1/60 if btnp(4) then state = "shoot" end drawBackground(); drawItems(); drawRope(startX, startY, angle, length); drawHUD() if time <= 0 then state = "endstate"; state_timer = 0 end end function shoot() time = time - 2/60 if not caught then length = length + 2.5 end checkCollision() if length > 220 then state = "pull" end drawBackground(); drawItems(); drawRope(startX, startY, angle, length); drawHUD() end function pull() time = time - 2/60 local p_weight = caught and caught.weight or 1 length = length - (2.2 / p_weight) if btnp(0) and bombs > 0 and caught then bombs = bombs - 1; sfx(3, 36, 15); caught.x = -50; caught = nil end if length <= 12 then if caught then score = score + caught.v if score > enYuksekSkor then enYuksekSkor = score; pmem(0, enYuksekSkor) end caught.x = -50 end caught = nil; state = "swing" end drawBackground(); drawItems(); drawRope(startX, startY, angle, length); drawHUD() end function endstate() if market_acik then market_ciz() market_guncelle() return end if state_timer == 0 then if score < target_score then music(2, -1) -- KAYBETME MУœZФАФžФА (Kanal 2) su_an_calan = 2 else su_an_calan = -1 -- DФАKKAT: Burada music(1) У‡ALMIYORUZ. -- Aksi takdirde Market mУМziФŸi aУЇФБlamazdФБ (Kanal 1 УЇakФБХŸmasФБ). end end rectb(0, 40, 240, 60, 12) if score >= target_score then if level >= 256 then if score > enYuksekSkor then enYuksekSkor = score; pmem(0, enYuksekSkor) end drawMetin("CONGRATULATIONS!", 70, 50, 11) drawMetin("YOU ARE THE STRONGEST MINER.", 25, 70, 15) drawMetin("TOTAL EARNINGS: $"..pad(enYuksekSkor, 5), 45, 60, 14) if (btnp(4) or btnp(5)) and state_timer > 60 then resetGame(); state = "menu" end state_timer = state_timer + 1; return end drawMetin("LEVEL COMPLETE!", 70, 50, 11) if state_timer > 60 then if not market_acik then market_ac() end else drawMetin("OPENING MARKET...", 60, 65, 15) end else if score > enYuksekSkor then enYuksekSkor = score; pmem(0, enYuksekSkor) end drawMetin("GAME OVER!", 80, 50, 3) drawMetin("Z/X: MAIN MENU", 70, 80, 12) if (btnp(4) or btnp(5)) and state_timer > 60 then resetGame(); state, state_timer = "menu", 0 end end state_timer = state_timer + 1 end -- ============================================ -- 5. MARKET SYSTEM (ENGLISH + SPR86 + SFX6) -- ============================================ function market_ciz() drawMetin("GOLD-IE MARKET", 65, 28, 11) for i, u in ipairs(market_urunler) do local y = 42 + i*10 local renk = (score >= u.fiyat) and 11 or 8 local vurgu = (i == market_kursor) and "<" or " " drawMetin(vurgu..u.ad, 45, y, renk) drawMetin("+"..pad(u.fiyat, 4), 135, y, renk) if i == market_kursor then drawMetin(u.aciklama, 60, 85, 5) -- SatФБn alma imkanФБ varsa imlecin yanФБna Sprite 86 buton gУЖrselini УЇizdiriyoruz if score >= u.fiyat then spr(86, 185, y, 0) end end end drawMetin("CASH: "..pad(score, 5), 55, 100, 14) drawMetin("[UP/DN] MOVE [Z] BUY", 25, 110, 6) drawMetin("[X] NEXT LEVEL", 45, 120, 6) end function market_guncelle() if not market_acik then return end -- MenУМ iУЇi navigasyon if btnp(2) and market_kursor > 1 then market_kursor = market_kursor - 1; sfx(4) elseif btnp(3) and market_kursor < #market_urunler then market_kursor = market_kursor + 1; sfx(4) end -- [Z] TuХŸu ile anФБnda satФБn alФБm if btnp(4) then local u = market_urunler[market_kursor] if score >= u.fiyat then score = score - u.fiyat sfx(market_ses_id) -- SFX 06 BaХŸarФБlФБ AlФБm Sesi if u.ad == "BOMB x3" then bombs = bombs + 3 end if u.ad == "TIME +10S" then time = time + 10 end if u.ad == "GOAL -100" then target_score = target_score - 100 end else sfx(5) -- Bakiye yetersizse hata sesi end -- [X] TuХŸu ile marketten УЇФБk ve bir sonraki seviyeye geУЇ elseif btnp(5) then -- У–NEMLФА DУœZELTME: su_an_calan -1'i EN BAХžA alФБyoruz ki -- alttaki calMuzik(1) fonksiyonu eski kanal verisini gУЖrmesin. su_an_calan = -1 market_acik = false level = level + 1 target_score = level * 1000 time = 60 initItems() calMuzik(1) -- Sorunsuz bir ХŸekilde Oyun MУМziФŸine (Kanal 1) geУЇiХŸ yap state = "swing" state_timer = 0 end end function market_ac() market_acik = true market_kursor = 1 market_onay = nil -- Market aУЇФБldФБФŸФБ an sadece kendi mУМziФŸini УЇal (Kanal 3 kullanФБlФБyor) calMuzik(3) end -- ============================================ -- 6. MAIN LOOP -- ============================================ function TIC() cls(0) local mx, my, ms = mouse() local mouseTiklandi = (ms == 1 and not oncekiMouseSol) oncekiMouseSol = (ms == 1) if not market_acik and (state == "swing" or state == "shoot" or state == "pull") then local pauseBasildi = keyp(16) or (mouseTiklandi and mx >= 110 and mx <= 118 and my >= 5 and my <= 13) if pauseBasildi then oyunDurdu = not oyunDurdu end end if oyunDurdu then rect(50, 55, 140, 25, 0) rectb(50, 55, 140, 25, 7) drawMetin("PAUSED", 90, 64) drawMetin("PRESS P", 90, 85) else if _G[state] then _G[state]() end t = t + 1 end end