Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Poprawa Wieża Orków .


Rekomendowane odpowiedzi

Opublikowano

Witam.

 

Od paru h próbuje napisać WO.

Niestety skutków brak oraz nerwów także.

 

Dlatego wzracam się o pomoc do Userów MPC Forum.

 

Chcę tego questa:

 

 

quest wieza_orkow begin
state start begin
when login begin
if pc.get_map_index() == 65 then
if pc.getqf("priv_dt") > 0 then
pc.setqf("priv_dt", 0)
end
end

if pc.get_map_index() == 66 then
if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
pc.warp((5376+532)*100, (512+596+4)*100, 65)
end
pc.set_warp_location(65, 5376+532, 512+596+4)
elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
pc.set_warp_location(65, 5376+532, 512+596+4)
end
end

when deviltower_man.chat."Wejdź do Wieży Orków" with party.is_leader() begin
say_title("Strażnik Wieży Orków:")
if party.get_near_count() < 2 then
say("Wybacz, musisz mieć ze sobą 2 osóby w grupie.")
party.chat("Wasza grupa posiada zbyt mało członków.")
return
end
if pc.get_level() < 45 then
say_title("Strażnik Wieży Orków: ")
say("Chyba zgłupiałeś... Masz za mały poziom")
say("Wróć do mnie, gdy osiągniesz 45 poziom postaci.")
else
say("Wieża Orków skrywa w sobie wiele tajemnic.")
say("Mówią, że gdy ktoś tam wejdzie, to już nie wróci.")
say_reward("Czy chcesz spróbować swoich sił w Wieży[ENTER]Orków?")
local s = select("Wejdź","Nie Wchodź")

if s == 1 then
pc.setqf("priv_dt", 1)
-- join into map!
d.join(66)
end
end
end


when login with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
--local i = nie ważne..
--chat("i: "..i) -- for test
if party.is_leader() == true and pc.getqf("priv_dt") > 0 then
pc.setqf("priv_dt", 0)
d.regen_file("data/dungeon/wo.txt")
notice_all("[Wieża Orków] Grupa "..pc.get_name().." próbuje przejść Wieże Orków!")
d.spawn_mob(8023, 195, 690)
end
end


when kill with npc.get_race() == 8009 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
timer("wieza", 6)
chat(special.devil_tower[1][1].." "..special.devil_tower[1][2])
end
when wieza.timer begin
d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])
d.regen_file("data/dungeon/wo2.txt")
d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/wo3.txt")
end
when kill with npc.get_race() == 691 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/wo4.txt")
d.check_eliminated()
end
function get_4floor_stone_pos()
local positions = {
{368, 629},
{419, 630},
{428, 653},
{422, 679},
{395, 689},
{369, 679},
{361, 658},
}
for i = 1, 6 do
local j = number(i, 7)
if i != j then
local t = positions[i];
positions[i] = positions[j];
positions[j] = t;
end
end
return positions
end
when kill with npc.get_race() == 8036 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
d.setf("levels", 4)
local positions = deviltower_zone.get_4floor_stone_pos()
for i = 1, 6 do
chat(positions[i][1], positions[i][2])
d.set_unique("fake" .. i , d.spawn_mob(8037, positions[i][1], positions[i][2]))
end
chat(positions[7][1], positions[7][2])
local vid = d.spawn_mob(8037, positions[7][1], positions[7][2])
chat(vid)
d.set_unique("real", vid)
server_loop_timer('devil_stone4_updates', 10, pc.get_map_index())
server_timer('devil_stone4_fail1s', 10*60, pc.get_map_index())

d.notice("Brawo, udało się Tobie zniszczyć Metin Zdrady.");
d.notice("Musicie teraz znaleźć prawdziwy Kamień Metin,");
d.notice("by dostać się na kolejne piętro.");
d.notice("Macie na to 10 minut zanim zostaniecie wylogowani !");
d.notice("Śpieszcie się!");
end

when devil_stone4_fail1s.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Pozostało: 10 minut!")
server_timer('devil_stone4_fail2s', 10*60, get_server_timer_arg())
end
end

when devil_stone4_fail2s.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Pozostało: 5 minut!")
server_timer('devil_stone4_fails', 5*60, get_server_timer_arg())
end
end

when devil_stone4_fails.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Nie udało się, zostaniecie wylogowani!")
d.exit_all()
clear_server_timer('devil_stone4_updates', get_server_timer_arg())
end
end

when devil_stone4_updates.server_timer begin
if d.select(get_server_timer_arg()) then
if not d.is_unique_dead("real") then
for i = 1, 6 do
if d.getf("fakedead" .. i) == 0 then
if d.unique_get_hp_perc("fake" .. i) < 50 then
d.purge_unique("fake" .. i)
d.setf("fakedead" .. i, 1)
d.notice("Niestety.. To nie ten kamień!");
end
end
end
else
server_timer("devil_stone4_ends", 5, get_server_timer_arg())
d.notice("Udało się wam zniszczyć prawdziwy Kamień Metin!");
d.notice("Zostaniecie przeniesieni na kolejne piętro.")
clear_server_timer('devil_stone4_fail1s', get_server_timer_arg())
clear_server_timer('devil_stone4_fail2s', get_server_timer_arg())
clear_server_timer('devil_stone4_fails', get_server_timer_arg())
end
else
server_timer('devil_stone4_stop_timers', 1, get_server_timer_arg())
end
end

when devil_stone4_stop_timers.server_timer begin
clear_server_timer('devil_stone4_updates', get_server_timer_arg())
end

when devil_stone4_ends.server_timer begin
if d.select(get_server_timer_arg()) then
d.setf("levels", 5)
d.setf("stone_counts", 5)
d.notice("Świetnie.. Przechodzicie na 5 piętro!")
d.notice("Aby przejść na kolejne musicie zabić wszystkie potwory.")
d.notice("Poczym podnieść Kamień Otwarcia i otworzyć,")
d.notice("wszystkie pięć pieczęci przed czasem!")
d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
server_timer('devil_stone5_fail1s', 5*60, get_server_timer_arg())
clear_server_timer('devil_stone4_updates', get_server_timer_arg())

-- 5ĽÓÄ~Äň¦A˛{
d.set_regen_file("data/dungeon/wo5.txt")

-- 5ĽÓ«Ę¦LĄŰ¦A˛{
d.spawn_mob(20352, 421, 452)
d.spawn_mob(20352, 380, 460)
d.spawn_mob(20352, 428, 414)
d.spawn_mob(20352, 398, 392)
d.spawn_mob(20352, 359, 426)
end
end
when devil_stone5_fail1s.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Pozostało: 15 minut.")
server_timer('devil_stone5_fail2s', 15*60, get_server_timer_arg())
end
end

when devil_stone5_fail2s.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Pozostało: 10 minut.")
server_timer('devil_stone5_fail3s', 10*60, get_server_timer_arg())
end
end

when devil_stone5_fail3s.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Pozostało: 5 minut.")
server_timer('devil_stone5_fails', 5*60, get_server_timer_arg())
end
end

when devil_stone5_fails.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Niestety... Nie udało się! Zostaniecie wylogowani.")
d.exit_all()
end
end

when kill with npc.get_race() == 2401 and pc.in_dungeon() and d.getf("levels") == 5 begin
local KILL_COUNT_FOR_DROP_KEYs = 50
local n =d.getf("counts") + 1
d.setf("counts", n)
if n == KILL_COUNT_FOR_DROP_KEYs then
pc.give_item2(50084, 1)
d.notice("[Wieża Orków] "..pc.get_name().." podniósł Kamień Otwarcia!")
d.setf("counts", 0)
end
end
when 20352.take with item.vnum == 50084 and d.getf("levels") == 5 begin
npc.purge()
item.remove()
d.setf("stone_counts", d.getf("stone_counts") - 1)
if d.getf("stone_counts") <= 0 then
d.setf("levels", 6)
d.clear_regen()
d.regen_file("data/dungeon/wo6.txt")

d.notice("Brawo, udało się! Jesteście na 6 piętrze!")
d.notice("Zabijcie wszystkie potwory!")
d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
timer("mob",6)
clear_server_timer('devil_stone5_fail1s', get_server_timer_arg())
clear_server_timer('devil_stone5_fail2s', get_server_timer_arg())
clear_server_timer('devil_stone5_fail3s', get_server_timer_arg())
clear_server_timer('devil_stone5_fails', get_server_timer_arg())
else
d.notice("[Wieża Orków] Do otwarcia pozostały "..d.getf("stone_counts").." pieczęcie.")
end
end

when mob.timer begin
d.spawn_mob(693, 425, 216);
end

when kill with npc.get_race() == 693 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and d.getf("levels") == 6 begin
notice_in_map("Odrodzony Wódz Orków - Pokonany")
notice_in_map("Idź porozmawiaj z NPC,aby wywalił cię z wieży.")
-- ¶Ç°e¨ě·Ň¸t©Ň¦bŞş¦aąĎ
-- §_«hˇA¶}ł]¤@­Ó·s·Ň¸t
--d.jump_all(special.devil_tower[6][1], special.devil_tower[6][2])
d.kill_all()
-- d.set_warp_at_eliminate(3*60, 66, 5376+532, 512+596+4)
d.check_eliminated()
local reward_alchemist = {20092}
d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
d.setqf("can_refine", 1)
end


--------------------------------------
-- ĄŃ¶i¤J7ĽÓ¦Ü¨ěąF8ĽÓ¤§«e
--------------------------------------

when 20092.chat."KONIEC WIEŻY ORKÓW" with party.is_leader() and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and d.getf("levels") == 6 begin
say_title(""..mob_name(20092)..":")
say("Witaj,")
say("Widzę, że pokonaliście armię Orków,")
say("Gratuluje,zostaniesz wyrzucony z wieży orków.")
wait()
if pc.level >=150 then
say("Zostaniecie przeniesieni pod wieże ")
timer("devil_jump_7s", 6)
return
end
say_title(""..mob_name(20092).."")
say("Zostaniecie przeniesieni pod wieże")
wait()
pc.warp(590500, 110500)
return
end

when devil_jump_7s.timer begin
d.clear_regen()
d.spawn_mob(1095, 617, 676)
d.setf("levels", 7)
d.regen_file("data/dungeon/wo7.txt")
d.jump_all(2048+590, 6656+638)
end
---------------------------------------------
-- Niebieska Śmierć
---------------------------------------------
when kill with npc.get_race() == 1095 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
timer("devil_jump_8S", 10)
d.clear_regen()
end

---------------------------------------------
-- Niebiański Smok
---------------------------------------------
when devil_jump_8S.timer begin
d.setf("levels", 8)
d.jump_all(2048+590, 6656+155)
d.spawn_mob(692,630,195)
end

when kill with npc.get_race() == 692 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
notice_all("[Wieża Orków] Grupa "..pc.get_name().." zabiła Beran-Setaou!")
d.kill_all()
d.clear_regen()
d.regen_file("data/dungeon/wo8.txt")
timer("devil_end_jumps", 60)
end

when devil_end_jumps.timer begin
d.exit_all()
end
end
state __GOOD__ begin
end
end

 

Przerobić na Wieże Orków , już sporo przerobiłem lecz nadal błędy się pojawiają.

 

Tutaj błąd po wczytaniu questa komendą 

./qc

 

 

 

Za pomoc *LIMIT LIKE* !


pobrane_3.jpg

 


Opublikowano

Nie masz dodanej funkcji 

deviltower_zone.get_4floor_tone_pos

do questlib/quest_functions.

Dzięki błędu już z wczytywaniem nie ma.

 

Lecz teraz klikając Wejdz do wieży orków nic się nie dzieje nie przenosi.

Okej poradziłem sobie , dla tych co będa chcieli skorzystac

 

Podmienić warpy na :

 

 

quest wierza_orkow begin
    state start begin
when login begin
   if pc.get_map_index() == 66 then
-- ¨A«D¦b1LÓ®É, °eSdA~­±.
-- LhLC ?dln
-- 1LÓ  88  577  236 737
-- 2LÓ  91  343  238 504
-- 3LÓ 104  107  248 269
if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
   pc.warp((5376+532)*100, (512+596+4)*100, 65)
end
pc.set_warp_location(65, 5376+532, 512+596+4)
   elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
pc.set_warp_location(65, 5376+532, 512+596+4)
   end
end
        when deviltower_man.chat."Wieża Wygnańców " begin
                say_title("Strażnik Wieży Wygnańców:")
                if party.get_near_count() < 1 then
                        say("Wybacz, musisz mieć ze sobą 2 osoby w grupie.")
                        party.chat("Wasza grupa posiada zbyt mało członków.")
                
            elseif pc.get_level() < 45 then
                say("Wybacz, mogę wpuszczać tylko soby od 90 poziomu.")
                party.chat("Lider grupy nie posiada 90 poziomu.")
 
elseif party.get_near_count() >= 1 and pc.get_level() >= 45 then
                say("Spełniasz wszystkie warunki.. ")
                say("Czy aby na pewno chcesz wejść do Wieży? ")
                say("Czeka tam na Ciebie i Twoich znajomych ogromne ")
                say("niebezpieczeństwo.. Jesteś tego pewien? ")
                local s = select("Wejdź!","Nie wchodzę.. ")
                
                if s == 1 then
                        pc.setqf("priv_dt", 1)
                    -- join into map!
                    d.join(66)
                end
end
end

pobrane_3.jpg

 


Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...