BLooDStarz GM Etkinlik Quest

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 42

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
İlk Olarak Selamun Aleyküm Direk Konuya Geçeceğim Konuyu Uzatmadan


Kod:
quest gmetkinlik begin    state start begin         when letter with pc.is_gm() begin             send_letter("GM: Etkinlik")             end         when info or button with pc.is_gm() begin                     local event = select("Ramazan ay'ı etkinliği","Yağmacıları Avla etkinliği ","Sertifika etkinliği ","Hallowen etkinliği ","Olimpiyat etkinliği","Noel etkinliği","Sevgililer Günü etkinliği","Dünya Kupası etkinliği","Ayışığı Define Sandığı etkinliği","Altıgen Hediye Paketi etkinliği","Kostüm etkinliği","Çöl Fırtınası Sandığı etkinliği","Sonsuz Kış Sandığı etkinliği","Kapat")                     if event == 1 then                     local event2 = select("Ramazan etkinliği başlat","Ramazan etkinliği bitir","Vazgeç ")                     if event2 == 1 then                     notice_all("Etkinlik: 'Ramazan Ayı' etkinliği başladı!")                     notice_all("Etkinlik: 'Tarihçi' ve 'Niyetli Vatandaş' ile görüş. ")                     game.set_event_flag("ramadan_drop",1)                     game.set_event_flag("ramadan_reward",1)                     send_letter("GM: Etkinlik")                     elseif event2 == 2 then                     notice_all("Etkinlik: 'Ramazan Ayı' etkinliği sona erdi.")                     notice_all("Etkinlik: 'Tarihçi' ve 'Niyetli Vatandaş' köylerine geri döndü.")                     game.set_event_flag("ramadan_reward",0)                     game.set_event_flag("ramadan_drop",0)                     send_letter("GM: Etkinlik")                     elseif event2 == 3 then                     return                     send_letter("GM: Etkinlik")                     end                     elseif event == 2 then                     local event3 = select("Yağmacıları Avla etkinliği başlat ","Yağmacıları Avla etkinliği bitir","Vazgeç ")                     if event3 == 1 then                     notice_all("Etkinlik: 'Yağmacıları Avla' etkinliği başladı. ")                     notice_all("Etkinlik: Handu Up ve Wonda Rim ile görüş. ")                     game.set_event_flag("harvest_festival",1)                     send_letter("GM: Etkinlik")                     elseif event3 == 2 then                     notice_all("Etkinlik: 'Yağmacıları Avla' etkinliği sona erdi.")                     notice_all("Etkinlik: 'Handu-Up' ve 'Wonda-Rim' köylerine geri döndü.")                     game.set_event_flag("harvest_festival",0)                     send_letter("GM: Etkinlik")                     elseif event3 == 3 then                     return                     send_letter("GM: Etkinlik")                     end                     elseif event == 3 then                     local event4 = select("Sertifika etkinliği başlat ","Sertifika etkinliği kapat","Vazgeç ")                     if event4 == 1 then                     notice_all("Etkinlik: 'Sertifika' etkinliği başladı. ")                     notice_all("Etkinlik: Metin Taşlarından ''Sertifika'' elde edebilirsin. ")                     game.set_event_flag("sertifika_drop",1)                     send_letter("GM: Etkinlik")                     elseif event4 == 2 then                     notice_all("Etkinlik: 'Sertifika' etkinliği sona erdi.")                     game.set_event_flag("sertifika_drop",0)                         send_letter("GM: Etkinlik")                     elseif event4 == 3 then                     return                     send_letter("GM: Etkinlik")                     end                     elseif event == 4 then                     local event5 = select("Hallowen etkinliği başlat ","Hallowen etkinliği bitir ","Vazgeç ")                     if event5 == 1 then                     notice_all("Etkinlik: 'Hallowen' etkinliği başladı. ")                     notice_all("Etkinlik: 'Jack Pumpkin' ile görüş. ")                     game.set_event_flag("halloween_hair",1)                     send_letter("GM: Etkinlik")                     elseif event5 == 2 then                         notice_all("Etkinlik: 'Hallowen' etkinliği sona erdi. ")                     notice_all("Etkinlik: 'Jack Pumpkin' köyüne geri döndü. ")                     game.set_event_flag("halloween_hair",0)                     send_letter("GM: Etkinlik")                     elseif event5 == 3 then                                 return                     send_letter("GM: Etkinlik")                     end                     elseif event == 5 then                     local event6 = select("Olimpiyat etkinliği başlat ","Olimpiyat etkinliği bitir ","Vazgeç ")                     if event6 == 1 then                     notice_all("Etkinlik: 'Olimpiyat' etkinliği başladı. ")                     notice_all("Etkinlik: 'Yu-Hwan' ile görüş. ")                     game.set_event_flag("medal_part_drop",1)                     send_letter("GM: Etkinlik")                     elseif event6 == 2 then                      notice_all("Etkinlik: 'Olimpiyat' etkinliği sona erdi. ")                     game.set_event_flag("medal_part_drop",0)                     send_letter("GM: Etkinlik")                     elseif event6 == 3 then                         return                     send_letter("GM: Etkinlik")                     end                     elseif event == 6 then                     local event7 = select("Noel etkinliği başlat ","Noel etkinliği bitir ","Vazgeç ")                     if event7 == 1 then                     notice_all("Etkinlik: 'Noel' etkinliği başladı. ")                     notice_all("Etkinlik: 'Noel Baba' ile görüş. ")                     game.set_event_flag("new_xmas_event",1)                     send_letter("GM: Etkinlik")                     elseif event7 == 2 then                      notice_all("Etkinlik: 'Noel' etkinliği sona erdi. ")                     notice_all("Etkinlik: 'Noel Baba' köyüne geri döndü. ")                     game.set_event_flag("new_xmas_event",0)                     send_letter("GM: Etkinlik")                     elseif event7 == 3 then                         return                     send_letter("GM: Etkinlik")                     end                     elseif event == 7 then                     local event8 = select("Sevgililer günü etkinliği başlat ","Sevgililer günü etkinliği bitir ","Vazgeç ")                     if event8 == 1 then                     notice_all("Etkinlik: ''Sevgililer günü'' etkinliği başladı. ")                     notice_all("Etkinlik: Tüm canavarlardan Gül, Çikolata ve Amor Sandığı elde edebilirsin. ")                     game.set_event_flag("valentin_drop",1)                     send_letter("GM: Etkinlik")                     elseif event8 == 2 then                      notice_all("Etkinlik: ''Sevgililer günü'' etkinliği sona erdi. ")                     game.set_event_flag("valentin_drop",0)                     send_letter("GM: Etkinlik")                     elseif event8 == 3 then                         return                                         send_letter("GM: Etkinlik")                     end                     elseif event == 8 then                                                      local event9 = select("Dünya kupası etkinliği başlat ","Dünya kupası etkinliği bitir ","Vazgeç ")                     if event9 == 1 then                     notice_all("Etkinlik: ''Dünya kupası'' etkinliği başladı. ")                     notice_all("Etkinlik: Tüm canavarlardan Futbol Topu elde edebilirsin. ")                     notice_all("Etkinlik: Altın Futbol Topu ödülü için ''Yu-Hwan'' ile görüş.  ")                     game.set_event_flag("new_football_2014_event",1)                     game.set_event_flag("football_drop",1)                     send_letter("GM: Etkinlik")                     elseif event9 == 2 then                      notice_all("Etkinlik: ''Dünya kupası'' etkinliği sona erdi. ")                     game.set_event_flag("new_football_2014_event",0)                     game.set_event_flag("football_drop",0)                     send_letter("GM: Etkinlik")                     elseif event9 == 3 then                         return                                         send_letter("GM: Etkinlik")                     end                     elseif event == 9 then                     local event10 = select("Ayışığı Define Sandığı etkinliği başlat ","Ayışığı Define Sandığı etkinliği bitir ","Vazgeç ")                     if event10 == 1 then                     notice_all("Etkinlik: ''Ayışığı Define Sandığı'' etkinliği başladı. ")                     notice_all("Etkinlik: Tüm canavarlardan Ayışığı Define Sandığı elde edebilirsin. ")                     game.set_event_flag("event_ayisigi_drop",1)                     send_letter("GM: Etkinlik")                     elseif event10 == 2 then                      notice_all("Etkinlik: ''Ayışığı Define Sandığı'' etkinliği sona erdi. ")                     game.set_event_flag("event_ayisigi_drop",0)                     send_letter("GM: Etkinlik")                     elseif event10 == 3 then                         return                                         send_letter("GM: Etkinlik")                     end                     elseif event == 10 then                                         local event11 = select("Altıgen Hediye Paketi etkinliği başlat ","Altıgen Hediye Paketi etkinliği bitir ","Vazgeç ")                     if event11 == 1 then                     notice_all("Etkinlik: ''Altıgen Hediye Paketi'' etkinliği başladı. ")                     notice_all("Etkinlik: Tüm canavarlardan Altıgen Hediye Paketi elde edebilirsin. ")                     game.set_event_flag("event_altigen_drop",1)                     send_letter("GM: Etkinlik")                     elseif event11 == 2 then                      notice_all("Etkinlik: ''Altıgen Hediye Paketi'' etkinliği sona erdi. ")                     game.set_event_flag("event_altigen_drop",0)                     send_letter("GM: Etkinlik")                     elseif event11 == 3 then                         return                                         send_letter("GM: Etkinlik")                     end                     elseif event == 11 then                     local event12 = select("Kostüm etkinliği başlat ","Kostüm etkinliği bitir ","Vazgeç ")                     if event12 == 1 then                     notice_all("Etkinlik: ''Kostüm'' etkinliği başladı. ")                     notice_all("Etkinlik: 30. seviye ve üzeri Metin Taşlarından ''Kostüm'' elde edebilirsin. ")                     game.set_event_flag("costume_drop",1)                     send_letter("GM: Etkinlik")                     elseif event12 == 2 then                      notice_all("Etkinlik: ''Kostüm'' etkinliği sona erdi. ")                     game.set_event_flag("costume_drop",0)                     send_letter("GM: Etkinlik")                     elseif event12 == 3 then                         return                                         send_letter("GM: Etkinlik")                     end                     elseif event == 12 then                     local event13 = select("Çöl Fırtınası Sandığı etkinliği başlat ","Çöl Fırtınası Sandığı etkinliği bitir ","Vazgeç ")                     if event13 == 1 then                     notice_all("Etkinlik: ''Çöl Fırtınası Sandığı'' etkinliği başladı. ")                     notice_all("Etkinlik: Metin Taşlarından ve Patronlardan ''Çöl Fırtınası Sandığı'' elde edebilirsin. ")                     game.set_event_flag("col_firtinasi_drop",1)                     send_letter("GM: Etkinlik")                     elseif event13 == 2 then                      notice_all("Etkinlik: ''Çöl Fırtınası Sandığı'' etkinliği sona erdi. ")                     game.set_event_flag("col_firtinasi_drop",0)                     send_letter("GM: Etkinlik")                     elseif event13 == 3 then                         return                                         send_letter("GM: Etkinlik")                     end                     elseif event == 13 then                     local event14 = select("Sonsuz Kış Sandığı etkinliği başlat ","Sonsuz Kış Sandığı etkinliği bitir ","Vazgeç ")                     if event14 == 1 then                     notice_all("Etkinlik: ''Sonsuz Kış Sandığı'' etkinliği başladı. ")                     notice_all("Etkinlik: Metin Taşlarından ve Patronlardan ''Sonsuz Kış Sandığı'' elde edebilirsin. ")                     game.set_event_flag("sonsuz_kis_drop",1)                     send_letter("GM: Etkinlik")                     elseif event14 == 2 then                      notice_all("Etkinlik: ''Sonsuz Kış Sandığı'' etkinliği sona erdi. ")                     game.set_event_flag("sonsuz_kis_drop",0)                     send_letter("GM: Etkinlik")                     elseif event14 == 3 then                         return                                         send_letter("GM: Etkinlik")                     end                     elseif event == 14 then                     send_letter("GM: Etkinlik")                     return                     end                 end             end         end[/FONT]


Çöl Fırtına Event Quest


Kod:
quest event_colfirtinasi_2014 begin    state start begin        when 691.kill or 791.kill or 792.kill or 1192.kill or 1304.kill or 1901.kill or 2091.kill or 2191.kill or 2206.kill or 2306.kill or 2595.kill or 2596.kill or 3090.kill or 3091.kill or 3190.kill or 3191.kill or 3290.kill or 3291.kill or 3390.kill or 3391.kill or 3490.kill or 3491.kill or 3590.kill or 3591.kill or 3595.kill or 3596.kill or 3690.kill or 3691.kill or 3790.kill or 3791.kill or 3890.kill or 3891.kill or 3901.kill or 3902.kill or 3903.kill or 3904.kill or 3905.kill or 3906.kill or 6091.kill or 6191.kill or 8001.kill or 8002.kill or 8003.kill or 8004.kill or 8005.kill or 8006.kill or 8007.kill or 8008.kill or 8009.kill or 8010.kill or 8011.kill or 8012.kill or 8013.kill or 8014.kill or 8024.kill or 8025.kill or 8026.kill or 8027.kill or 8051.kill or 8052.kill or 8053.kill or 8054.kill or 8055.kill or 8056.kill with game.get_event_flag("col_firtinasi_drop") == 1 and not npc.is_pc() begin            if npc.get_level() > pc.get_level() - 10 then                local s = number(1,25)                if s == 1 then                game.drop_item_with_ownership("38054",1)                return                end            end        end    endend


Altıgen Event Quest


Kod:
quest event_altigen_2014 begin    state start begin        when kill with game.get_event_flag("event_altigen_drop") == 1 and not npc.is_pc() begin            if npc.get_level() > pc.get_level() - 10 then                local s = number(1,250)                if s == 1 then                game.drop_item_with_ownership("50037",1)                return                end            end        end    endend




Ay Işığı Event Quest


Kod:
quest event_ayisigi_2014 begin    state start begin        when kill with game.get_event_flag("event_ayisigi_drop") == 1 and not npc.is_pc() begin            if npc.get_level() > pc.get_level() - 10 then                local s = number(1,250)                if s == 1 then                game.drop_item_with_ownership("50011",1)                return                end            end        end    endend




Costume Event Quest


Kod:
quest event_costume_2014 begin    state start begin        when 8006.kill or 8007.kill or 8008.kill or 8009.kill or         8010.kill or 8011.kill or 8012.kill or 8013.kill or         8014.kill or 8024.kill or 8025.kill or 8026.kill or         8027.kill or 8051.kill or 8052.kill or 8053.kill or         8054.kill or 8055.kill or 8056.kill or 8057.kill or         8058.kill with pc.is_gm() == false begin            if game.get_event_flag("costume_drop") == 1 then                local plvl = pc.get_level()                local mlvl                local chance = number(1,10)                local vnumlist_m = {41041,41043,41045,41049,41051,41053,41095,41097,41099,41101,41103,41105,41107,41109,41111,41113}                local vnumlist_w = {41042,41044,41046,41050,41052,41054,41096,41098,41100,41102,41104,41106,41108,41110,41112,41114}                local drop = number(1,16)                if npc.get_race() < 8015 then                    mlvl = (npc.get_race()-8000)*5                else                    mlvl = (npc.get_race()-8009)*5                end                                                if mlvl-plvl >= -10 then                    if chance*10 == 100 then                        if pc.get_sex() == 1 then                            game.drop_item_with_ownership(vnumlist_w[drop],1)                        else                            game.drop_item_with_ownership(vnumlist_m[drop],1)                        end                    end                end            end        end                when 8006.kill or 8007.kill or 8008.kill or 8009.kill or         8010.kill or 8011.kill or 8012.kill or 8013.kill or         8014.kill or 8024.kill or 8025.kill or 8026.kill or         8027.kill or 8051.kill or 8052.kill or 8053.kill or         8054.kill or 8055.kill or 8056.kill or 8057.kill or         8058.kill with pc.is_gm() == true begin            if game.get_event_flag("costume_drop") == 1 then                local plvl = pc.get_level()                local mlvl                local chance = number(1,10)                local vnumlist_m = {41041,41043,41045,41049,41051,41053,41095,41097,41099,41101,41103,41105,41107,41109,41111,41113}                local vnumlist_w = {41042,41044,41046,41050,41052,41054,41096,41098,41100,41102,41104,41106,41108,41110,41112,41114}                local drop = number(1,16)                if npc.get_race() < 8015 then                    mlvl = (npc.get_race()-8000)*5                else                    mlvl = (npc.get_race()-8009)*5                end                                chat("Leveldif: "..mlvl-plvl.." Chance: "..chance.." Sex: "..pc.get_sex().." Drop: "..drop..".")                                if mlvl-plvl >= -10 then                    if chance*10 == 100 then                        if pc.get_sex() == 1 then                            game.drop_item_with_ownership(vnumlist_w[drop],1)                        else                            game.drop_item_with_ownership(vnumlist_m[drop],1)                        end                    end                end            end        end    endend




Holloween Event Quest


Kod:
quest event_halloween_hair begin    state start begin        function is_running()            return (game.get_event_flag("halloween_hair") > 0)    --npc spawn        end         function setting()            return {              ["pumpkin"]    = 30321,        -- Halloween Pumpkin            ["wand"]    = 30322,        -- Halloween magic wand             ["coupon"]    = 30323,        -- Hair coupon            ["box"]        = 50215,        -- Halloween giftbox            ["pumpkin_head"]= 33008        -- Pumpkin head NPC            }        end         function get_hair_option(index)            local option_list = {                {                     ["apply"]        = apply.ATTBONUS_MONSTER,                    ["value"]        = 10,                    ["duration"]    = 604800,    -- 7 days                },                {                     ["apply"]        = apply.ATTBONUS_SURA,                    ["value"]        = 10,                    ["duration"]    = 604800,    -- 7 days                },                {                     ["apply"]        = apply.ATTBONUS_SHAMAN,                    ["value"]        = 10,                    ["duration"]    = 604800,    -- 7 days                },                {                     ["apply"]        = apply.ATTBONUS_WARRIOR,                    ["value"]        = 10,                    ["duration"]    = 604800,    -- 7 days                },                {                     ["apply"]        = apply.ATTBONUS_ASSASSIN,                    ["value"]        = 10,                    ["duration"]    = 604800,    -- 7 days                },                {                     ["apply"]        = apply.MAX_HP_PCT,                    ["value"]        = 1,                    ["duration"]    = 21600,    -- 6 hours                },                {                     ["apply"]        = apply.MAX_SP_PCT,                    ["value"]        = 1,                    ["duration"]    = 86400,    -- 24 hours                },            }             return option_list[index]        end         function get_random_hair_option_index()            local index = 1             -- hair_option[1] ~ [5] : 5%            -- hair_option[6] : 15%            -- hair_option[7] ~ 80%             local rand = number(1, 100)            if rand <= 5 then                index = rand            elseif rand <= 85 then                index = 7            else                index = 6            end             return index        end         function get_hair_info_by_race(race)            hair_info_by_race = {            --    VNUM, SHAPE                { 74020, 1018 },        -- 1 : Warrior(M)                { 74270, 2018 },        -- 2 : Assassin(W)                { 74520, 3018 },        -- 3 : Sura(M)                { 74770, 4018 },        -- 4 : Shaman(W)                { 75020, 1018 },        -- 5 : Warrior(W)                { 75220, 2018 },        -- 6 : Assassin(M)                { 75420, 3018 },        -- 7 : Sura(W)                { 75620, 4018 },        -- 8 : Shaman(M)            }             return hair_info_by_race[race]        end                    when login or enter with game.get_event_flag("halloween_hair") > 0 begin            local setting = event_halloween_hair.setting()            local mapIndex = pc.get_map_index()            if mapIndex == 1 or mapIndex == 21 or mapIndex == 41 then                if find_npc_by_vnum(setting.pumpkin_head) == 0 then                      if mapIndex == 1 then                        mob.spawn(setting.pumpkin_head, 608, 617, 1, 1, 1)                    elseif mapIndex == 21 then                        mob.spawn(setting.pumpkin_head, 596, 610, 1, 1, 1)                    elseif mapIndex == 41 then                        mob.spawn(setting.pumpkin_head, 357, 743, 1, 1, 1)                    end                end            end         end         when 33008.chat.gameforge.event_halloween_hair._10_npcChat with pc.getqf("first_notice") < 1 begin            local setting = event_halloween_hair.setting()             say_title(gameforge.event_halloween_hair._20_sayTitle)            say(gameforge.event_halloween_hair._30_say)            wait()             say_title(gameforge.event_halloween_hair._20_sayTitle)            say(gameforge.event_halloween_hair._40_say)            wait()             say_title(gameforge.event_halloween_hair._20_sayTitle)            say(gameforge.event_halloween_hair._50_say)             pc.setqf("first_notice", 1)             if not event_halloween_hair.is_running() then                npc.purge()            end        end           when 33008.chat.gameforge.event_halloween_hair._60_npcChat with pc.getqf("first_notice") == 1 begin            local setting = event_halloween_hair.setting()             say_title(gameforge.event_halloween_hair._20_sayTitle)            say(gameforge.event_halloween_hair._70_say)            wait()             say_title(gameforge.event_halloween_hair._20_sayTitle)            say(gameforge.event_halloween_hair._80_say)            wait()             if pc.count_item(setting.coupon) == 0 then                say_title(gameforge.event_halloween_hair._20_sayTitle)                say(gameforge.event_halloween_hair._90_say)                wait()                 say_title(gameforge.event_halloween_hair._20_sayTitle)                say(gameforge.event_halloween_hair._100_say)                wait()            else                say_title(gameforge.event_halloween_hair._20_sayTitle)                say(gameforge.event_halloween_hair._110_say)                wait()                 say_title(gameforge.event_halloween_hair._20_sayTitle)                say(gameforge.event_halloween_hair._120_say)                wait()                say(gameforge.event_halloween_hair._130_say)                local s = select(gameforge.event_halloween_hair._140_select_1, gameforge.event_halloween_hair._140_select_2)                if s == 2 then                    return                end                -- remove a hair coupon                pc.remove_item(setting.coupon, 1)                 -- Give a hair item to user, and prepare for setting random options to it                local race    = pc.get_race() + 1                local index    = event_halloween_hair.get_random_hair_option_index()        --                 local option= event_halloween_hair.get_hair_option(index)                -- hair option (apply, value, duration)                local hair_info = event_halloween_hair.get_hair_info_by_race(race)                        local vnum, shape = hair_info[1], hair_info[2]                 pc.give_item2_select(vnum)                item.set_socket(0, option.duration)                item.set_value(0, option.apply, option.value)            end -- if             if not event_halloween_hair.is_running() then                npc.purge()            end        end      --when         -- When using 'Halloween magic wand'        when 30322.use begin            local setting = event_halloween_hair.setting()            if pc.count_item(setting.pumpkin) > 0 then                pc.remove_item(setting.pumpkin, 1)                pc.remove_item(setting.wand, 1)                pc.give_item2(setting.box, 1)            end        end         when 74020.use or 74270.use or 74520.use or 74770.use or 75020.use or 75220.use or 75420.use or 75620.use begin             local index = item.get_socket(1)             -- If this item was created by command(ex: /i 74020) then socket value is zero. Thus, give a random option.            if 0 == index then                index = event_halloween_hair.get_random_hair_option_index()            end             local option = event_halloween_hair.get_hair_option(index)            local hair_info = event_halloween_hair.get_hair_info_by_race(pc.get_race() + 1)            local vnum, shape = hair_info[1], hair_info[2]             pc.set_part(PART_HAIR, shape)            affect.remove_hair()            affect.add_hair(option.apply, option.value, option.duration)             pc.setf("hair", "limit_time", get_time() + option.duration)             -- Copied from "hair.leave_log" function in "hair.quest" file            char_log(0, "CHANGE_HAIR", string.format("USE_ITEM(%d)", vnum))             char_log(0, "CHANGE_HAIR", string.format("END_SEC(%d)", get_time() + option.duration))            char_log(0, "CHANGE_HAIR", "CHANGE_HAIR_END")             item.remove()        end    end  --stateend        --quest




Ramazan Event Quest


Kod:
quest event_ramadan begin    state start begin        function is_running()            return (game.get_event_flag("ramadan_drop") > 0)    --npc spawn        end        function reward_period()            return (game.get_event_flag("ramadan_reward") > 0)    --reward menu appear        end                     function setting()            return {              ["bread"]    = 30315,            ["candy"]    = 50183,            ["plate"]    = 30316,            ["iftar"]    = 30317,            ["fruit"]    = 30318,            ["box"]        = 50182,            ["horse1"]    = 71131,            ["horse2"]    = 71132,            ["horse3"]    = 71133,            ["horse4"]    = 71134,            ["historian"]    = 33002,            ["beggar1"]        = 33003,             ["beggar2"]        = 33004,            ["beggar3"]        = 33005,             ["beggar4"]        = 33006,             ["beggar5"]        = 33007             }        end                when login or enter with event_ramadan.is_running() begin            local setting = event_ramadan.setting()            local mapIndex = pc.get_map_index()            if mapIndex == 1 or mapIndex == 21 or mapIndex == 41 then                if find_npc_by_vnum(setting.historian) == 0 then                      if mapIndex == 1 then                        mob.spawn(setting.historian, 608, 617, 1, 1, 1)                    elseif mapIndex == 21 then                        mob.spawn(setting.historian, 596, 610, 1, 1, 1)                    elseif mapIndex == 41 then                        mob.spawn(setting.historian, 357, 743, 1, 1, 1)                    end                end                 if find_npc_by_vnum(setting.beggar1) == 0 then                 if mapIndex == 1 then                        mob.spawn(setting.beggar1, 619, 701, 1, 1, 1)                    elseif mapIndex == 21 then                        mob.spawn(setting.beggar1, 564, 613, 1, 1, 1)                    elseif mapIndex == 41 then                        mob.spawn(setting.beggar1, 344, 723, 1, 1, 1)                    end                end                if  find_npc_by_vnum(setting.beggar2) == 0 then                     if mapIndex == 1 then                        mob.spawn(setting.beggar2, 697, 580, 1, 1, 1)                    elseif mapIndex == 21 then                        mob.spawn(setting.beggar2, 699, 658, 1, 1, 1)                    elseif mapIndex == 41 then                        mob.spawn(setting.beggar2, 443, 733, 1, 1, 1)                    end                end                    if   find_npc_by_vnum(setting.beggar3) == 0  then                    if mapIndex == 1 then                        mob.spawn(setting.beggar3, 646, 515, 1, 1, 1)                    elseif mapIndex == 21 then                        mob.spawn(setting.beggar3, 613, 715, 1, 1, 1)                    elseif mapIndex == 41 then                        mob.spawn(setting.beggar3, 428, 651, 1, 1, 1)                    end                end                if  find_npc_by_vnum(setting.beggar4) == 0 then                    if mapIndex == 1 then                        mob.spawn(setting.beggar4, 554, 550, 1, 1, 1)                    elseif mapIndex == 21 then                        mob.spawn(setting.beggar4, 635, 539, 1, 1, 1)                    elseif mapIndex == 41 then                        mob.spawn(setting.beggar4, 303, 587, 1, 1, 1)                    end                end                if  find_npc_by_vnum(setting.beggar5) == 0 then                    if mapIndex == 1 then                        mob.spawn(setting.beggar5, 702, 629, 1, 1, 1)                    elseif mapIndex == 21 then                        mob.spawn(setting.beggar5, 529, 547, 1, 1, 1)                    elseif mapIndex == 41 then                        mob.spawn(setting.beggar5, 456, 673, 1, 1, 1)                    end                end        end   --if        end --when                --gameforge.event_ramadan._010_npcChat    Historiker?         -- (Referenz 33002 Mob)        when 33002.chat.gameforge.event_ramadan._010_npcChat with pc.getf("event_ramadan","first_notice")==0  begin            local setting = event_ramadan.setting()            --gameforge.event_ramadan._020_sayTitle    Historiker: (referenz auf mob: 33002)            say_title(gameforge.event_ramadan._020_sayTitle)            -- gameforge.event_ramadan._030_say    review the old and learn the new! why do you find me ?            say("")            say(gameforge.event_ramadan._030_say)            wait()             say_pc_name()            -- gameforge.event_ramadan._040_say    Tut mir leid, kennen wir uns?            say(gameforge.event_ramadan._040_say)            wait()             say_title(gameforge.event_ramadan._020_sayTitle)            --gameforge.event_ramadan._050_say    Entschuldige, ich vergaß mich vorzustellen. Ich bin der viel gereiste Historiker.             --                                    Wenn du Fragen zur Geschichte hast scheue dich nicht mich zu fragen.            say(gameforge.event_ramadan._050_say)            wait()                        say_pc_name()            -- gameforge.event_ramadan._060_say    Es ehrt mich dich kennen zu lernen. Ich sollte dich öfter aufsuchen            say(gameforge.event_ramadan._060_say)                         pc.setqf("first_notice",1)        end          -- Brot: Brotkringel    -- Süßigkeit: Haloa, baklawa, irgendwas süßes (ihr wisst bescheid)    -- gameforge.event_ramadan._070_npcChat    Was Süßes    when 33002.chat.gameforge.event_ramadan._070_npcChat with pc.getf("event_ramadan","first_notice")==1 begin                local setting = event_ramadan.setting()        if pc.count_item(setting.bread) == 0  then            say_title(gameforge.event_ramadan._020_sayTitle)            -- gameforge.event_ramadan._80_say    Kennst du dich mit Süßigkeiten aus? Es wird Baklava (bitte absprechen und referenz auf item: 50183) genannt.            say(gameforge.event_ramadan._80_say)            -- gameforge.event_ramadan._90_select_1    Ja, das kenne ich            -- gameforge.event_ramadan._90_select_2    Nein, tut mir leid            local s=select(gameforge.event_ramadan._90_select_1 ,gameforge.event_ramadan._90_select_2)            if 2==s then                --gameforge.event_ramadan._020_sayTitle    Historiker:                say_title(gameforge.event_ramadan._020_sayTitle)                --gameforge.event_ramadan._100_say    Schade, bis zum nächsten mal.                say(gameforge.event_ramadan._100_say)                return            end            say_title(gameforge.event_ramadan._020_sayTitle)            --gameforge.event_ramadan._110_say    Dann weißt du ja was ich meine. Wenn ein solches erhalten willst bringe mir bitte ein Brot (bitte abspreche und referenz auf item: 30315).            say(gameforge.event_ramadan._110_say)            wait()            say_title(gameforge.event_ramadan._020_sayTitle)            -- gameforge.event_ramadan._120_say    Ich würde dir gerne ein Baklava (item: 50183) für 10 Brote (item: 30315) geben. Bist du damit einverstanden?            say(gameforge.event_ramadan._120_say)            -- gameforge.event_ramadan._130_select_1    Gerne            -- gameforge.event_ramadan._130_select_2    Hab keine Zeit            local s=select(gameforge.event_ramadan._130_select_1,gameforge.event_ramadan._130_select_2)            if 2==s then                say_title(gameforge.event_ramadan._020_sayTitle)                say(gameforge.event_ramadan._100_say)            return            end            say_title(gameforge.event_ramadan._020_sayTitle)            -- gameforge.event_ramadan._140_say    Ich würde dir gerne ein Baklava (item: 50183) für 10 Brote (item: 30315) geben. Bist du damit einverstanden?            say(gameforge.event_ramadan._140_say)        elseif    pc.count_item(setting.bread) > 0 and  pc.count_item(setting.bread) < 10  then            say_title(gameforge.event_ramadan._020_sayTitle)            -- gameforge.event_ramadan._150_say    Das sind zu wenig Brote, ich kann damit nicht viel anfangen.            say(gameforge.event_ramadan._150_say)        elseif    pc.count_item(setting.bread) >= 10  then            say_title(gameforge.event_ramadan._020_sayTitle)            -- gameforge.event_ramadan._160_say    Das sind genug Brote, dafür kann ich dir gerne das Baklava geben.            say(gameforge.event_ramadan._160_say)            wait()                say_title(gameforge.event_ramadan._020_sayTitle)            -- gameforge.event_ramadan._170_say    Sammle mehr und ich kann dir mehr davon bereiten            say(gameforge.event_ramadan._170_say)            pc.give_item2(setting.candy,1)            pc.remove_item(setting.bread,10)        end  --if        if not event_ramadan.is_running() then            npc.purge()        end    end      --when        -- gameforge.event_ramadan._180_npcChat    Leckeres Brot (item: 30315)        when 33002.chat.gameforge.event_ramadan._180_npcChat with pc.getqf("first_notice")== 1 begin            local setting = event_ramadan.setting()            say_title(gameforge.event_ramadan._020_sayTitle)            -- gameforge.event_ramadan._180_say    Ich bin gesättigt mit dem leckeren Brot das du mir brachtest            say(gameforge.event_ramadan._180_say)            -- gameforge.event_ramadan._190_say    Hast du gewusst das es viele Bettler gibt die Hunger haben? Es wäre schön wenn du auch mit Ihnen das Fastenbrechen begehen würdest            say(gameforge.event_ramadan._190_say)            -- gameforge.event_ramadan._200_say    Bringe es Ihnen am besten auf einem Teller (bitte absprechen und refernz auf item:30316)            say(gameforge.event_ramadan._200_say)            say_item_vnum(setting.plate)            wait()            say_title(gameforge.event_ramadan._020_sayTitle)            -- gameforge.event_ramadan._210_say    Danke für dein Brot es ist gut. So eine weise Person sollte auch Barmherzig sein. Man wird es dir vergelten.            say(gameforge.event_ramadan._210_say)        end            -- gameforge.event_ramadan._220_npcChat    Hunger ...        when 33003.chat.gameforge.event_ramadan._220_npcChat or 33004.chat.gameforge.event_ramadan._220_npcChat or 33005.chat.gameforge.event_ramadan._220_npcChat or 33006.chat.gameforge.event_ramadan._220_npcChat or 33007.chat.gameforge.event_ramadan._220_npcChat begin            local setting = event_ramadan.setting()            if pc.count_item(setting.iftar) == 0  then                 -- gameforge.event_ramadan._230_sayTitle    Bettler: (referenz auf Mob: 33003~33007)                say_title(gameforge.event_ramadan._230_sayTitle)                say("")                -- gameforge.event_ramadan._240_say    Ich bin wirklich hungrig. Habe erbarmen und bringe mir ein Iftar (bitte mit Abdel absprechen und referenz auf item: 30317). Bitte bringe es mir, damit ich nicht verhungere.                say(gameforge.event_ramadan._240_say)             elseif pc.count_item(setting.iftar) > 0  then                                 say_title(gameforge.event_ramadan._230_sayTitle)                say("")                -- gameforge.event_ramadan._250_say    Das ist doch ein Iftar (referenz: 30317)? Ein warmes leckeres Brot (referenz entsprechend). Willst du diese mir geben? Es wäre mir wertvoll!                say(gameforge.event_ramadan._250_say)                -- gameforge.event_ramadan._260_select_1    Nimm du Hungriger                -- gameforge.event_ramadan._260_select_2    Nein, ich behalte es                local s = select(gameforge.event_ramadan._260_select_1,gameforge.event_ramadan._260_select_2)                if 2==s then                    say_title(gameforge.event_ramadan._230_sayTitle)                    say("")                    -- gameforge.event_ramadan._270_say    Du Unbarmherziger sei nicht so geizig mit deinem Essen. Falls du deine Meinung änderst, weißt du wo du mich findest.                    say(gameforge.event_ramadan._270_say)                    return                end                -- reward                say_title(gameforge.event_ramadan._230_sayTitle)                say("")                -- gameforge.event_ramadan._280_say    Es sei dir gedankt. Du bist wahrlich eine weise Person. Möge deine gute Tat hiermit belohnt sein.                say(gameforge.event_ramadan._280_say)                                pc.give_item2(setting.box,1)                pc.remove_item(setting.iftar,1)                end --if                 if not event_ramadan.is_running() then                    npc.purge()                end            end                    -- gameforge.event_ramadan._290_npcChat    Die Frucht des Segens        when 33002.chat.gameforge.event_ramadan._290_npcChat with  pc.getf("event_ramadan","fig_exchange")==0 begin            local setting = event_ramadan.setting()            if get_time() > pc.getqf("duration") then                say_title(gameforge.event_ramadan._020_sayTitle)                say("")                -- gameforge.event_ramadan._300_say    Ich hab auf meinen Reisen die "Frucht des Segens" (bitte Item: 30318 referenzien und ändern) kennen gelernt. Diese Frucht belohnt den Fleißigen der regelmäßig zur selben Stunde wiederkehrt.                say(gameforge.event_ramadan._300_say)                pc.give_item2(setting.fruit)                pc.setqf("duration",get_time()+60*60*24)             --24h            else                    say_title(gameforge.event_ramadan._020_sayTitle)                -- gameforge.event_ramadan._310_say    Entschuldige, dich hab ich heute gesehen und du wurdest schon belohnt. Denk daran: Nur der wahrlich geduldige erreicht sein Ziel.                say(gameforge.event_ramadan._310_say)            end        end        -- gameforge.event_ramadan._320_npcChat    Das Glück des Tüchtigen        when 33002.chat.gameforge.event_ramadan._320_npcChat with event_ramadan.reward_period() and  pc.getf("event_ramadan","fig_exchange")==0 begin            local setting = event_ramadan.setting()            say_title(gameforge.event_ramadan._020_sayTitle)            say("")            -- gameforge.event_ramadan._330_say    Ich habe dich schon erwartet. Meine Zeit hier geht zu Ende und ich ziehe in die Welt um neue Geschichten zu lernen.            say(gameforge.event_ramadan._330_say)            wait()            if  pc.count_item(setting.fruit)>= 5 then        --more than 5                say_title(gameforge.event_ramadan._020_sayTitle)                say("")                -- gameforge.event_ramadan._340_say    Du hast %d Früchte des Segens (Item: 30318) für mich verwahrt.                say(string.format(gameforge.event_ramadan._340_say, pc.count_item(setting.fruit)))                -- gameforge.event_ramadan._350_say    Würdest du mir diese geben für meine Reise? Ich will es dir auch entlohnen.                say(gameforge.event_ramadan._350_say)                -- gameforge.event_ramadan._360_select_1    Hier nimm                -- gameforge.event_ramadan._360_select_2    Nein                local s=select(gameforge.event_ramadan._360_select_1, gameforge.event_ramadan._360_select_2)                if 2==s then                     say_title(gameforge.event_ramadan._020_sayTitle)                    say("")                    -- gameforge.event_ramadan._370_say    Überlege es dir und ich warte auch dich.                    say(gameforge.event_ramadan._370_say)                    return                end                say_title(gameforge.event_ramadan._020_sayTitle)                say("")                -- gameforge.event_ramadan._380_say    Danke für deine Großzügigkeit und deinen Fleiß. Bitte nehme dieses:                say(gameforge.event_ramadan._380_say)                -- Item: Siegel des Rappen                -- gameforge.event_ramadan._390_sayReward    Siegel des Rappen (referenz auf items:71131~4)                say_reward(gameforge.event_ramadan._390_sayReward)                say("")                if pc.count_item(setting.fruit)>= 5 and pc.count_item(setting.fruit)<= 10 then                    pc.give_item2(setting.horse1,1)                elseif pc.count_item(setting.fruit)>= 11 and pc.count_item(setting.fruit)<= 19 then                    pc.give_item2(setting.horse2,1)                elseif pc.count_item(setting.fruit)>= 20 and pc.count_item(setting.fruit)<= 27 then                    pc.give_item2(setting.horse3,1)                elseif pc.count_item(setting.fruit)>= 28 then                    pc.give_item2(setting.horse4,1)                end                pc.remove_item(setting.fruit,pc.count_item(setting.fruit))                pc.setqf("fig_exchange",1)            else                                        --less  than  5                say_title(gameforge.event_ramadan._020_sayTitle)                say("")                -- gameforge.event_ramadan._400_say    Du hast weniger als 5? Schade damit kann ich nicht viel anfangen. Vielleicht beim nächsten mal.                say(gameforge.event_ramadan._400_say)            end    end    when 30316.use begin        local setting = event_ramadan.setting()        if pc.count_item(setting.bread) >= 10 then            pc.remove_item(setting.bread, 10)            pc.remove_item(setting.plate, 1)            pc.give_item2(setting.iftar, 1)        end    end     end --stateend        --quest




Sertfika Event Quest


Kod:
quest event_sertifika_2014 begin    state start begin        when 691.kill or 791.kill or 792.kill or 1192.kill or 1304.kill or 1901.kill or 2091.kill or 2191.kill or 2206.kill or 2306.kill or 2595.kill or 2596.kill or 3090.kill or 3091.kill or 3190.kill or 3191.kill or 3290.kill or 3291.kill or 3390.kill or 3391.kill or 3490.kill or 3491.kill or 3590.kill or 3591.kill or 3595.kill or 3596.kill or 3690.kill or 3691.kill or 3790.kill or 3791.kill or 3890.kill or 3891.kill or 3901.kill or 3902.kill or 3903.kill or 3904.kill or 3905.kill or 3906.kill or 8001.kill or 8002.kill or 8003.kill or 8004.kill or 8005.kill or 8006.kill or 8007.kill or 8008.kill or 8009.kill or 8010.kill or 8011.kill or 8012.kill or 8013.kill or 8014.kill or 8024.kill or 8025.kill or 8026.kill or 8027.kill or 8051.kill or 8052.kill or 8053.kill or 8054.kill or 8055.kill or 8056.kill with game.get_event_flag("sertifika_drop") == 1 and not npc.is_pc() begin            if npc.get_level() > pc.get_level() - 10 then                local s = number(1,18)                if s == 1 then                notice(""..item_name(52701).." buldum! ")                game.drop_item_with_ownership("52701",1)                elseif s == 2 then                notice(""..item_name(52702).." buldum! ")                game.drop_item_with_ownership("52702",1)                elseif s == 3 then                notice(""..item_name(52703).." buldum! ")                game.drop_item_with_ownership("52203",1)                elseif s == 4 then                notice(""..item_name(52704).." buldum! ")                game.drop_item_with_ownership("52704",1)                elseif s == 5 then                notice(""..item_name(52705).." buldum! ")                game.drop_item_with_ownership("52705",1)                end            end        end        endend




Sonsuz Kış Event Quest


Kod:
quest event_sonsuz_kis_2014 begin     state start begin        when 691.kill or 791.kill or 792.kill or 1192.kill or 1304.kill or 1901.kill or 2091.kill or 2191.kill or 2206.kill or 2306.kill or 2595.kill or 2596.kill or 3090.kill or 3091.kill or 3190.kill or 3191.kill or 3290.kill or 3291.kill or 3390.kill or 3391.kill or 3490.kill or 3491.kill or 3590.kill or 3591.kill or 3595.kill or 3596.kill or 3690.kill or 3691.kill or 3790.kill or 3791.kill or 3890.kill or 3891.kill or 3901.kill or 3902.kill or 3903.kill or 3904.kill or 3905.kill or 3906.kill or 6091.kill or 6191.kill or 8001.kill or 8002.kill or 8003.kill or 8004.kill or 8005.kill or 8006.kill or 8007.kill or 8008.kill or 8009.kill or 8010.kill or 8011.kill or 8012.kill or 8013.kill or 8014.kill or 8024.kill or 8025.kill or 8026.kill or 8027.kill or 8051.kill or 8052.kill or 8053.kill or 8054.kill or 8055.kill or 8056.kill with game.get_event_flag("sonsuz_kis_drop") == 1 and not npc.is_pc() begin            if npc.get_level() > pc.get_level() - 10 then                local s = number(1,25)                if s == 1 then                game.drop_item_with_ownership("38053",1)                return                end            end        end    endend






Okudugunuz İçin Teşekürler Bi Yorum Esirgemeyiniz

BLooDStarz • GM Etkinlik Quest Sistemi

Metin2 sunucularında oyun içi etkinlikler, oyuncu etkileşimini artırmak ve sunucu dengesini korumak açısından büyük önem taşır. Bu bağlamda BLooDStarz tarafından geliştirilen GM Etkinlik Quest sistemi, Metin2 sunucularında yetkililerin etkinlik başlatmasını kolaylaştıran ve oyun içi deneyimi zenginleştiren gelişmiş bir quest yapısıdır. Bu sistem özellikle Metin2 Quest sistemlerine odaklı geliştirilmiş, Lua tabanlı çalışmaktadır ve quest geliştiricileri için önemli bir referans niteliğindedir.

BLooDStarz GM Etkinlik Quest Nedir?

BLooDStarz GM Etkinlik Quest, Metin2 sunucusunda yetkili (GM) kullanıcıların belirli komutlar aracılığıyla etkinlik başlatmasına olanak tanıyan, etkinliğin başlama, devam etme ve bitiş süreçlerini yöneten bir quest yapısıdır. Bu sistem sayesinde, oyuncular için eğlenceli ve ödül odaklı etkinlikler organize edilebilir. Ayrıca, quest geliştiricileri için örnek alınabilecek düzeyde detaylı bir yapıya sahiptir.

Quest Sisteminin Özellikleri

BLooDStarz GM Etkinlik Quest sisteminin temel özellikleri arasında şunlar yer alır:

- Yetkililerin etkinlik başlatması için özel trigger mekanizmaları.
- Oyun içi NPC'ler üzerinden etkinlik başlatımı.
- Etkinlik süresince zamanlayıcı (timer) entegrasyonu.
- Oyuncuların etkinliğe katılımını sağlayan flag ve state yönetimi.
- Etkinlik sonucuna göre otomatik ödül dağıtım sistemi.
- Quest zinciri (chain) mantığı ile çalışan alt sistemler.

Quest Script Yapısı ve Lua Kullanımı

Bu sistem, Metin2 Lua dilinde yazılmıştır. Quest dosyaları genellikle syserr.log üzerinden debug edilerek test edilir. BLooDStarz GM Etkinlik Quest dosyası, quest begin ve end blokları arasında tanımlanmış fonksiyonlar içerir. Her bir etkinlik durumu için ayrı state tanımlanmıştır. Bu yapı, Metin2 quest geliştirme sürecinde büyük kolaylık sağlar. Örneğin, bir etkinlik başlatıldığında start_event adlı bir fonksiyon devreye girer ve etkinliğin süresi boyunca timer yardımıyla kontrol sağlanır.

Quest Hatalarının Giderilmesi

Her Metin2 quest geliştirme sürecinde hata almak kaçınılmazdır. BLooDStarz GM Etkinlik Quest sistemi de bazı durumlarda quest hata alabilir. Bunlar genellikle debug işlemleriyle tespit edilir. Hatalar çoğunlukla lua syntax hatası, eksik flag tanımlaması veya quest fonksiyonu eksikliği şeklinde ortaya çıkar. Metin2 quest debug işlemleri için syserr.log dosyası detaylı analiz için kullanılmalıdır.

Ödüller ve Etkinlik Yönetimi

GM Etkinlik Quest sistemi, etkinlik tamamlandığında oyunculara özel ödüller sunar. Bu ödüller item bazlı olabileceği gibi experience veya gold gibi değerlerle de şekillenebilir. Reward sistemi, quest dosyasında tanımlanır ve etkinlik sonunda aktif hale gelir. Bu sayede oyuncular etkinliklere daha fazla motive olur ve sunucu trafiği artırılır.

Sonuç

BLooDStarz GM Etkinlik Quest, Metin2 sunucularında etkinlik yönetimi için harika bir örnektir. Quest geliştiricileri için örnek alınabilecek detaylara sahip bu sistem, Lua bilgisi olan geliştiriciler tarafından kolayca özelleştirilebilir. Metin2 lobby sunucularında benzer sistemler geliştirilerek oyuncu etkileşimi artırılabilir.


BLooDStarz • GM Event Quest System

In-game events on Metin2 servers play a crucial role in increasing player engagement and maintaining server balance. In this context, the GM Event Quest system developed by BLooDStarz facilitates event management for administrators on Metin2 servers and enriches the in-game experience. This system is based on Lua, focuses on Metin2 quest systems, and serves as an important reference for quest developers.

What is BLooDStarz GM Event Quest?

BLooDStarz GM Event Quest is a quest structure that allows administrators (GMs) on Metin2 servers to start events via specific commands and manages the initiation, continuation, and conclusion phases of these events. Thanks to this system, fun and reward-based events can be organized for players. Additionally, it features a highly detailed structure suitable as a reference for quest developers.

Features of the Quest System

Key features of the BLooDStarz GM Event Quest system include:

- Special trigger mechanisms for admins to start events.
- Event initiation through in-game NPCs.
- Timer integration during the event duration.
- Player participation management via flag and state.
- Automatic reward distribution system upon event completion.
- Subsystems operating with a quest chain logic.

Quest Script Structure and Lua Usage

This system is written in Metin2 Lua. Quest files are usually tested via syserr.log. The BLooDStarz GM Event Quest file includes functions defined within quest begin and end blocks. Each event state has its own state definition. This structure provides great convenience during the Metin2 quest development process. For instance, when an event starts, a function named start_event is triggered and controls the event duration using a timer.

Fixing Quest Errors

Errors are inevitable during every Metin2 quest development phase. The BLooDStarz GM Event Quest system may also encounter quest errors in certain situations. These are typically detected through debug operations. Most errors occur due to lua syntax errors, missing flag definitions, or incomplete quest functions. The syserr.log file should be used for detailed analysis during Metin2 quest debug processes.

Rewards and Event Management

The GM Event Quest system offers special rewards to players upon event completion. These rewards can be based on items or values like experience or gold. The reward system is defined in the quest file and activates after the event ends. This motivates players more towards participating in events and increases server traffic.

Conclusion

BLooDStarz GM Event Quest is an excellent example for event management on Metin2 servers. With detailed structures suitable as examples for quest developers, this system can be easily customized by developers familiar with Lua. Similar systems can be developed on Metin2 lobby servers to enhance player engagement.
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Benzer konular

Geri
Üst Alt