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

Event Świąteczny


Rekomendowane odpowiedzi

Opublikowano
Cześć, wrzucam Wam spóźniony o 2 miesiące event świąteczny z Malestia.pl.

 

Przebieg eventu... ehh, możecie sobie oglądnąć serie lets playerów lub po prostu odczytać to z kodu.

 

Niektóre rzeczy nie będą Wam działać, np. nadawanie tytułów.

Do tego eventu była też mapa, ale gdzieś ją zgubiłem, także nie mam jak jej udostępnić.  xD

 

Quest:




--[[
Made by Tharel
Wykonano na potrzeby serwera Malestia.pl

Event Świąteczny 2014

WYMAGANA BIBLIOTEKA ChirstmasLib.lua
]]
define SKARPETA 88901
define SKARPETA_W 88902
define KLUCZ 88903
quest christmasEvent begin
state start begin
----------------------------------------------------------------------------------------
function load() -- ładowanie bibliotek
return {["func"] = require(QUESTDIR.."full/eventy/ChristmasEvent/ChristmasLib.lua")} -- wymagana zmiana ścieżki
end
---------------- debug -----------------
--[[when 20016.chat."swieta reset" with pc.is_gm() begin
say("elo")
if select("qf","state") == 1 then
pc.delqf("santa_first_time")
pc.delqf("first_time_on_map")
else
say()
local cze = tostring(input())
if cze == "" then return else
set_quest_state(cze, "run")
end
end
end]]
----------------------------------------
when login with christmasEvent.load().func.is_on_map() begin
if not christmasEvent.load().func.event_is_on() then
syschat("[INFORMACJA] Event Świąteczny jest wyłączony, zostaniesz przeniesony do miasta!")
warp_to_village()
else return
end
end
when kill with not npc.is_pc() and christmasEvent.load().func.event_is_on() and christmasEvent.load().func.is_on_map() begin
christmasEvent.load().func.skarpety_drop()
end
when kill with not npc.is_pc() and christmasEvent.load().func.event_is_on() and not christmasEvent.load().func.is_on_map() begin
if game.get_event_flag("skarpeta_drop") > 0 then
local npc_lvl = pc.get_level() - mob_level[npc.get_race()]
if pc.get_level() >= 30 and npc_lvl < 15 and number(1,game.get_event_flag("skarpeta_drop")) == 1 then
game.drop_item_with_ownership(88901)
end
else return
end
if pc.get_level() >= 30 and pc.get_level() <= 60 and npc.get_race() == 8061 then
game.drop_item_with_ownership(50134, number(1,5))
elseif pc.get_level() >= 60 and pc.get_level() <= 90 and npc.get_race() == 8062 then
game.drop_item_with_ownership(50134, number(1,10))
elseif pc.get_level() >= 90 and npc.get_race() == 8063 then
game.drop_item_with_ownership(50134, number(1,15))
end
end
when 20126.chat."Święta" with christmasEvent.load().func.event_is_on() and not christmasEvent.load().func.is_on_map() begin
if pc.get_name() == "OficerPL" and pc.getqf("swieta_oficerpl") != 1 then
npc_name()
say("Byłeś niegrzeczny w tym roku! Administracja")
say("nie pochwala niegrzecznych graczy!")
pc.setqf("swieta_oficerpl", 1)
wait()
pc.dc()
elseif pc.getqf("santa_first_time") < 1 then
npc_name()
say("Ho ho ho...! Witaj "..pc.get_name().."!")
say("Byłeś grzeczny tego roku? Ha ha! Na pewno nie!")
say("(...) no doobra nie smuć się, rózg nie przyniosłem")
say("ale w tegoroczne Święta niczego za darmo nie")
say("dostaniesz. W tym roku, zamieniam Skarpety")
say("na nagrody! Masz takie? Jeżeli tak, pogadaj ")
say("ze mną to zobaczymy co da się zrobić!")
pc.setqf("santa_first_time", 1)
local santa_select_first = select("Co zdobędę z skarpet?","Ok! To idę dropić!")
if santa_select_first == 2 then
npc_name()
say("No to zwijaj się, bo czasu mało![ENTER]Wesołych Świąt!")
else
npc_name()
say("Hah! Dobre pytanie! A wiesz co Ci powiem?")
say("NIE WIEM! Ha ha ha! Ale mogę Ci coś na")
say("sto procent powiedzieć, że dam Ci Świąteczny")
say("Klucz za 5 skarpet i jedną bryłę brązu!")
say("Ty w ogóle wiesz co to za Klucz? Zapewne nie...")
say("Dzięki temu kluczowi dostaniesz się do mojej")
say("ojczyzny, Laponi. W każdym razie, pogadamy jak")
say("przyniesiesz mi wymagane przedmioty.[ENTER]Wesołych Świąt!")
end
else
npc_name()
say("Witaj! Co tam? Masz jakieś skarpety?")
if pc.count_item(SKARPETA) > 0 then
say("Ah, tak widzę jak Ci odstają z kieszeni!")
say("Chcesz je na coś wymienić?")
local santa_select1 = select("Wymień na nagrody","Wymień na Świąteczny Klucz","Anuluj")
if santa_select1 == 3 then return
elseif santa_select1 == 1 then
npc_name()
say("Ha ha ha! Kocham takie losowanie...!")
say("Zobaczmy co jest w środku...")
say("(...) Ah mam!")
if not pc.can_warp() or pc.count_item(SKARPETA) < 1 then return end
local santa_prize_sock = {27102, 71050, 71084, 71085, 25040, 71027, 71028, 71029, 71030, 71044, 71045, 27987, 50050, 50132, 60041,
60031, 60032, 60034, 60035, 60151, 60161}
local getprize = santa_prize_sock[number(1,table.getn(santa_prize_sock))]
local count = number(1,3)
say_item_vnum(getprize)
say("Patrz co masz!! To "..count.."x "..item_name(getprize).."!")
say("Ha ha! Wesołych Świąt!")
pc.give_item2(getprize, count)
pc.remove_item(SKARPETA, 1)
elseif santa_select1 == 2 then
npc_name()
say("Świąteczny Klucz? Wiesz do czego on słuzy?")
say("Dzięki temu kluczowi dostaniesz się do mojej")
say("ojczyzny, Laponi. Czy na pewno chcesz go dostać?[ENTER]")
say_reward("Wejście do Laponi, odblokowuje się dopiero")
say_reward("na 30 poziomie!")
if select(locale.yes,locale.no) == 2 then return else
if pc.count_item(SKARPETA) < 5 or pc.get_gold() < 1000000 then
npc_name()
say("Hola hola! Myślisz, że tak prosto dostaniesz")
say("Klucz? Ha ha! Aby dostać klucz, potrzebujesz")
say("Przynajmniej 5 Skarpet i 1.000.000 Yang!")
return
else
npc_name()
say("W takim razie trzymaj! Oto klucz! Użyj go, a")
say("on teleportuje Cię do Laponi.")
say("Wesołych Świąt![ENTER]")
if pc.count_item(SKARPETA) < 5 and pc.get_gold() < 1000000 or not pc.can_warp() then return
else
pc.remove_item(SKARPETA, 5)
pc.change_money(-1000000)
pc.give_item2(KLUCZ)
end
end
end
end
else
say("Nie masz? No to na co czekasz!")
end
end
end
when KLUCZ.use with christmasEvent.load().func.event_is_on() begin
if pc.get_map_index() >= 259 and pc.get_map_index() <= 261 then
say_title("Informacja:[ENTER]")
say("Jesteś już w Laponi!")
return
elseif pc.get_level() < 30 then
say_title("Informacja:[ENTER]")
say("Aby wejść do Laponi musisz posiadać min. 30 poziom!")
else
say_title("Informacja:[ENTER]")
say("Czy chcesz wejść do Laponi?")
if select(locale.yes,locale.no) == 2 then return else
item.remove(1)
if pc.get_level() >= 30 and pc.get_level() <= 60 then
pc.warp(20066400, 20063700)
elseif pc.get_level() > 60 and pc.get_level() <= 90 then
pc.warp(21066400, 21063700)
elseif pc.get_level() > 90 then
pc.warp(22066400, 22063700)
end
end
end
end
when login with christmasEvent.load().func.is_on_map() and christmasEvent.load().func.event_is_on() begin
if pc.get_level() >= 30 and pc.get_level() <= 60 and pc.get_map_index() != 259 then
warp_to_village()
elseif pc.get_level() > 60 and pc.get_level() <= 90 and pc.get_map_index() != 260 then
warp_to_village()
elseif pc.get_level() > 90 and pc.get_map_index() != 261 then
warp_to_village()
end
if pc.getqf("first_time_on_map") < 1 then
say_title("Informacja:[ENTER]")
say("Znajdujesz się w mroźnych krainach Laponi,")
say("miej się na baczności, nie jedno niebezpieczeństwo")
say("na Ciebie tutaj czeka. Czeka również na Ciebie")
say("Święty Mikołaj. Znajdź go!")
pc.setqf("first_time_on_map", 1)
else return
end
end
when 20126.chat."Laponia" with christmasEvent.load().func.event_is_on() and christmasEvent.load().func.is_on_map() and pc.getqf("first_time_on_map") <= 1 begin
npc_name()
say("Witaj! Cieszę się, że się znów widzimy!")
say("Laponia to niespokojne ziemie, jak widzisz,")
say("wszędzie wokół nas widać te straszliwe yeti...")
say("Są obrzydliwe i śmierdzące! Nie wiem co z nimi")
say("Mogę zrobić... zawsze kradną nam sporo skarpetek")
say("z prezentami... Zaraz, zaraz, przecież możesz...!")
say("Tak! Możesz nam pomóc, to wspaniale! Racja! Patrz:")
say("Zabijaj Yeti i zwracaj nam skarpetki, zawieszając")
say("je na choince, na pewno dostaniesz jakiś odjazdowy")
say("prezent! Wesołych Świąt!")
pc.setqf("first_time_on_map", 2)
end
when 20126.chat."Rozpocznij misje" with christmasEvent.load().func.event_is_on() and christmasEvent.load().func.is_on_map() and pc.getqf("christmas_questline") < 1 begin
npc_name()
say("Ha ha! Czy chcesz rozpocząć ciąg misji eventowych?")
if select(locale.yes,locale.no) == 2 then return else
npc_name()
say("W takim razie wyruszaj w podróż![ENTER]")
say_reward("Aby zakończyć proces przeloguj się.")
set_quest_state("christmas_quest_01", "run") -- nadanie quest_state (rozpoczynamy misje fabularne)
end
end
when 20505.click with christmasEvent.load().func.event_is_on() and christmasEvent.load().func.is_on_map() begin
say_title("Informacja:[ENTER]")
say("Przed tobą leżą martwe zwłoki poległego żołnierza.")
say("Na jego zbroi widać szpony Yeti. Mimo żadnego")
say("znaku życia, czujesz tajemniczą moc, która mówi")
say("Ci, abyś złożył dar w postaci 250.000 Yang.")
local tushui_select = select("Oddaj yang","Odejdź ")
if tushui_select == 2 then return else
if get_time() < pc.getqf("tushui_duration") then
say_title("Informacja:[ENTER]")
say("Dar możesz składać raz na jeden dzień!")
return
elseif pc.get_gold() < 250000 then
say_title("Informacja:[ENTER]")
say("Nie posiadasz odpowiedniej ilości yang.")
else
say_title("Informacja:[ENTER]")
say("Tajemnicza moc dziękuje Ci.[ENTER]")
say_reward("Dar możesz składać co 12 godzin!")
pc.change_money(-250000)
pc.setqf("tushui_gift", pc.getqf("tushui_gift")+1)
pc.setqf("tushui_duration",get_time()+60*60*12)
if pc.getqf("tushui_gift") == 10 then
showInfo(2, "Święta", "Oddaj_dar_dla_Tu-Shui_10_razy!", "Gratulacje!", "pucharinfo")
end
end
end
end
when 20126.chat."Skarpety" with christmasEvent.load().func.event_is_on() and christmasEvent.load().func.is_on_map() begin
npc_name()
say("Ho ho ho! Zamienimy się? Jeżeli chcesz to zamienie")
say("Ci 10 zwykłych Skarpet na 1 Wypchaną Skarpetę.")
say("To jak?")
local wybor = select("Wymień 1 szt.","Wymień wszystkie","Anuluj")
if wybor == 3 then return
elseif wybor == 1 then
npc_name()
if pc.count_item(SKARPETA) < 10 then
say("Nie masz 10 skarpet! Wypad!")
else
say("Spooooko!! Ho ho ho! Wesołych Świąt!")
if pc.count_item(SKARPETA) < 10 or not pc.can_warp() then return end
pc.remove_item(SKARPETA, 10)
pc.give_item2(SKARPETA_W)
end
else
npc_name()
if pc.count_item(SKARPETA) < 10 then
say("Nie masz 10 skarpet! Wypad!")
else
say("Spooooko!! Ho ho ho! Wesołych Świąt!")
local ile_dostane = math.floor(pc.count_item(SKARPETA)/10)
if pc.count_item(SKARPETA) < (ile_dostane*10) or not pc.can_warp() then return end
pc.remove_item(SKARPETA, ile_dostane*10)
pc.give_item2(SKARPETA_W, ile_dostane)
end
end
end
when 20126.chat."Skończyłem Święta!" with christmasEvent.load().func.event_is_on() and christmasEvent.load().func.is_on_map() begin
npc_name()
say("Cooo?! Ho ho ho! Powiadasz, że skończyłeś wszystkie")
say("wyzwania, które dla Ciebie przygotowałem tego roku?")
say("Podsumujmy:[ENTER]")
if pc.getf("christmas_questline","christmas_questline") == 1 then
say_zielony("Skończyłeś całą linie misji świątecznych.")
else
say_reward("Nie skończyłeś jeszcze całej linii misji świątecznych.")
end
if pc.getf("christmas_dungeon","christmas_dungeon") >= 5 then
say_zielony("Zabiłeś 5 razy Świątecznego Ducha.")
else
say_reward("Nie zabiłeś jeszcze 5 razy Świątecznego Ducha.")
end
if pc.getqf("tushui_gift") >= 10 then
say_zielony("Oddałeś już 10 razy dar dla Tu-Shui.")
else
say_reward("Nie oddałeś jeszcze 10 razy daru dla Tu-Shui.")
end
wait()
if pc.getf("christmas_questline","christmas_questline") == 1 and
pc.getf("christmas_dungeon","christmas_dungeon") >= 5 and
pc.getqf("tushui_gift") >= 10 then
npc_name()
say("Tak! Zasługujesz na nagrodę, jestem z Ciebie dumny!")
say("Z okazji Świąt otrzymujesz:[ENTER]")
say_reward("- Tytuł Świąteczny")
say("Ho ho ho! Widzimy się już za rok!")
showInfo(2, "Święta", "Zdobądź_tytuł_Świąteczny.", "Gratulacje!", "pucharinfo")
addTitle("Swiateczny")
else
npc_name()
say("Obawiam się jednak, że nie skończyłeś jeszcze")
say("wszystkich wyzwań, wracaj do pracy, czasu jest")
say("mało!")
end
end
end
end



 

LIB:




local M = {}
local function event_is_on()
if game.get_event_flag("christmas_event") > 0 then
return true
else return false
end
end
local function is_on_map()
if pc.get_map_index() >= 259 and pc.get_map_index() <= 261 then
return true
else return false
end
end
local function skarpety_drop()
if game.get_event_flag("wypchana_drop") > 0 then
if is_on_map() and event_is_on() and not npc.is_pc() and number(1,game.get_event_flag("wypchana_drop")) == 1 then
game.drop_item_with_ownership(88902)
else return
end
else return
end
end
local function is_on_dungeon()
if pc.get_map_index() >= 2620000 and pc.get_map_index() < 2630000 or
pc.get_map_index() >= 2630000 and pc.get_map_index() < 2640000 or
pc.get_map_index() >= 2640000 and pc.get_map_index() < 2650000 then
return true
else return false
end
end
M.event_is_on = event_is_on
M.is_on_map = is_on_map
M.skarpety_drop = skarpety_drop
M.is_on_dungeon = is_on_dungeon
return M

--[[
Biblioteka wykonana na potrzeby Eventu Świątecznego

Made by Tharel
]]



 

 

Wszystko macie tutaj:


Skan:

Opublikowano

No kumple, macie jak nie ogarniacie o co biega.

 

function npc_name()

say_title(mob_name(npc.race)..":")

end

 

Quest jak najbardziej pozytywny. Dzięki za pomysł na organizację funkcji i małą optymalizację w questach. Fajnie zrobiłeś tutaj wczytywanie liba, ja robiłem to przez dofile w questlibie, ale chyba znowu przepiszę sobie wszystkie questy w podobny sposób.

  • 1 miesiąc temu...

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...