Hikayeler

Reklam vermek için turkmmo@gmail.com

Ramazan etkinliği (QUEST)

DoomDEV

Yürüdüğün Yolda Emin Adımlarla İlerle
TM Üye
Katılım
13 Nis 2021
Konular
48
Mesajlar
153
Online süresi
8g 5584s
Reaksiyon Skoru
137
Altın Konu
0
Başarım Puanı
80
Yaş
24
TM Yaşı
5 Yıl 6 Gün
MmoLira
81
DevLira
0

Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!

Merhabalar hoca efendiler.
Sıfırdan Files Yazanlar İçindir bir teşekkürü çok görmeyin!



Ramazan ayındayız neden ramazan etkinliği questini paylaşmıyalım dedim.
Filezzilla veyatta WinSCP bağlanıyoruz sonra.

Aşşağıda verdiğim kodu yeni bir not defteri oluşturup içine atınız.
Sol üstten farklı kaydet diyip lua olarak kayıt ediniz.
cd/usr/game/share/locale/turkey dizinine atıyoruz.

Ayarlamayı unutmayın arkadaşlar!
Putty'e bağlanıyoruz.
Login: Root
Password: Şifreniz ne ise o.

Şu Şekilde devam ediyoruz.

cd /usr/game/share/locale/turkey/quest

./qc ramadan_etkinlik.quest

İyi düzenlemeler.
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 --state
end        --quest
 
paylaşım için teşekkürler
 
Paylaşım için teşekkürler.
 
Paylaşım için teşekkürler.
 
Paylaşım için teşekkürler.
 

Şu an konuyu görüntüleyenler (Toplam : 1, Üye: 0, Misafir: 1)

Geri
Üst