Best Studio 1
Best Studio
Agora Metin2 1
Agora Metin2
raderde 1
raderde
Cannn6161 1
Cannn6161
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Mt2Hizmet 1
Mt2Hizmet
melankolıa18 1
melankolıa18
romegames 1
romegames
Krutzo 1
Krutzo
shrpnl 1
shrpnl
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Yeni Quest Destek Lütfen

  • Konuyu başlatan Konuyu başlatan furkages
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 4
  • Görüntüleme Görüntüleme 75

furkages

Level 1
Üye
Katılım
12 Nis 2024
Konular
2
Mesajlar
5
Online süresi
1d 8h
Reaksiyon Skoru
2
Altın Konu
0
TM Yaşı
2 Yıl 1 Ay 23 Gün
Başarım Puanı
22
MmoLira
221
DevLira
3
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

Arkadaşlar Merhaba

Şimdi Kristal Oda gibi bir map yaptım buranın kullanımı ile aynı olmasını istiyorum yani quest lazım bu konuda destek olur musunuz


npc üzerinden gidilebilecek npc ye 10 tane kıvrık anahtar verdikten sonra gireiblecek
Odaya sadece 1 kişi girebilecek ve içerisi doluyken başkası giremiycek
ve içerideki kırmızı ejder varsayalım mob:2291 bu ejderi kestikten sonra oyuncuyu 5 dakika içerisinde odadan atıcak otomatik bulunduğu bağrağın 1. köyüne
ve ejder 1 saat sonra tekrar canlanmasını istiyorum

bu questte yardımcı olabilecek var mı bana
 

En Çok Reaksiyon Alan Mesajlar

Bu sistem tamamen quest ile yapılabilecek bir şey, source’a girmen gerekmiyor. Ama düzgün çalışması için mantığı baştan doğru kurmak lazım. Ben parça parça, anlaşılır şekilde anlatayım

İstediğin şey aslında tek kişilik bir boss odası sistemi. Bunun için üç temel kontrol kullanılıyor

  • oda dolu mu boş mu
    boss cooldown süresi
    oyuncunun içeride kalma süresi
Bunların hepsi quest flag ve timer ile çözülüyor.

Önce giriş kısmı. NPC’ye tıklanınca yapılacak kontroller şunlar:

  • oyuncuda 10 adet kıvrık anahtar var mı
    oda şu an dolu mu
    ejder henüz cooldown’da mı
Eğer bu üçü de uygunsa anahtarlar alınır ve oyuncu odaya gönderilir. Aynı anda bir kişi girebilmesi için global bir flag kullanılır. İlk giren bu flag’i “dolu” yapar, çıkana kadar kimse giremez.

Bu noktada önemli olan şu:

Flag map bazlı değil, global olur. O yüzden gerçekten tek kişi girebilir.
Oyuncu içeri girdikten sonra ejder zaten map’te spawnlıysa kesmesini beklersin. Ejder öldüğü anda iki şey yapılır:

  • ejder için 1 saatlik yeniden doğma süresi başlatılır
    oyuncu için 5 dakikalık çıkış süresi başlatılır
Yani ejder kesildiği anda oyuncu hemen atılmaz. 5 dakika içeride kalabilir, süre dolunca otomatik olarak dışarı gönderilir.

5 dakikalık süre dolduğunda oyuncu, kendi bayrağına göre 1. köye ışınlanır. Bu işlem yapılırken oda dolu flag’i de sıfırlanır ki başka biri girebilsin.
Ejderin 1 saat sonra tekrar kesilebilir olması da yine aynı mantıkla yapılır. Ejder öldüğünde bir zaman değeri tutulur. NPC’den girişte bu süre kontrol edilir. Süre dolmadan kimse içeri alınmaz.

Burada dikkat etmen gereken birkaç nokta var:

  • Oda mutlaka ayrı bir map olmalı
    O map’e başka bir yerden warp olmamalı
    O map’te sadece ejder spawnlı olmalı
    Server restart olursa flag’ler sıfırlanır, bunu bilerek kullanmalısı
Özetle sistemin mantığı şu:

  • NPC → anahtar + flag kontrolü
    Giriş → flag dolu
    Boss ölür → cooldown başlar + 5 dk timer
    Süre biter → oyuncu köye atılır + flag boşaltılır

Kod:
quest dragon_room begin
    state start begin

        -- GİRİŞ NPC'Sİ
        when 20001.click begin  -- NPC vnum (değiştir)
            if pc.count_item(50084) < 10 then
                say("Girmek için 10 adet Kıvrık Anahtar gerekir.")
                return
            end

            if game.get_event_flag("dragon_room_busy") == 1 then
                say("Oda şu anda dolu, lütfen bekleyin.")
                return
            end

            if game.get_event_flag("dragon_respawn_time") > get_time() then
                local left = game.get_event_flag("dragon_respawn_time") - get_time()
                say("Ejder henüz tekrar canlanmadı.")
                say("Kalan süre: " .. math.floor(left/60) .. " dakika")
                return
            end

            pc.remove_item(50084, 10)
            game.set_event_flag("dragon_room_busy", 1)

            pc.warp(123456, 654321) -- EJDER ODASI KOORDİNATI (değiştir)
        end

        -- EJDER ÖLÜNCE
        when 2291.kill begin
            say("Kırmızı Ejder'i yendin.")
            say("5 dakika içinde odadan çıkarılacaksın.")

            game.set_event_flag("dragon_respawn_time", get_time() + 3600) -- 1 saat
            timer("dragon_kick_out", 300) -- 5 dakika
        end

        -- 5 DAKİKA SONRA OYUNCUYU AT
        when dragon_kick_out.timer begin
            local empire = pc.get_empire()

            if empire == 1 then
                pc.warp(469300, 964200) -- Kırmızı 1. köy
            elseif empire == 2 then
                pc.warp(55700, 157900) -- Sarı 1. köy
            else
                pc.warp(969600, 278400) -- Mavi 1. köy
            end

            game.set_event_flag("dragon_room_busy", 0)
        end

    end
end




Mantık Özeti

  • NPC’den giriş
    10 adet Kıvrık Anahtar ister
    Odaya aynı anda sadece 1 kişi girer
    İçeride Kırmızı Ejder (2291) kesilir
    Ejder kesilince:

    • 1 saat cooldown başlar
      Oyuncu 5 dakika sonra otomatik köye atılır


    Oda boşalınca başka biri girebilir


KULLANMADAN ÖNCE DİKKAT

  • 20001 → giriş NPC vnum’un
    50084 → kıvrık anahtar item vnum
    2291 → kırmızı ejder vnum
    pc.warp() içindeki koordinatları kendi map’ine göre ayarla
    Oda ayrı ve izole bir map olmalı
    Server restart olursa flag’ler sıfırlanır (normaldir)

🔹 KURULUM

  1. Dosyayı quest klasörüne at
    Derle
Kod:
 ./qc dragon_room.quest

3= Oyunda: reload q veya reboot
Bu sistem tamamen quest ile yapılabilecek bir şey, source’a girmen gerekmiyor. Ama düzgün çalışması için mantığı baştan doğru kurmak lazım. Ben parça parça, anlaşılır şekilde anlatayım

İstediğin şey aslında tek kişilik bir boss odası sistemi. Bunun için üç temel kontrol kullanılıyor
  • oda dolu mu boş mu
  • boss cooldown süresi
  • oyuncunun içeride kalma süresi
Bunların hepsi quest flag ve timer ile çözülüyor.

Önce giriş kısmı. NPC’ye tıklanınca yapılacak kontroller şunlar:
  • oyuncuda 10 adet kıvrık anahtar var mı
  • oda şu an dolu mu
  • ejder henüz cooldown’da mı
Eğer bu üçü de uygunsa anahtarlar alınır ve oyuncu odaya gönderilir. Aynı anda bir kişi girebilmesi için global bir flag kullanılır. İlk giren bu flag’i “dolu” yapar, çıkana kadar kimse giremez.

Bu noktada önemli olan şu:

Flag map bazlı değil, global olur. O yüzden gerçekten tek kişi girebilir.
Oyuncu içeri girdikten sonra ejder zaten map’te spawnlıysa kesmesini beklersin. Ejder öldüğü anda iki şey yapılır:
  • ejder için 1 saatlik yeniden doğma süresi başlatılır
  • oyuncu için 5 dakikalık çıkış süresi başlatılır
Yani ejder kesildiği anda oyuncu hemen atılmaz. 5 dakika içeride kalabilir, süre dolunca otomatik olarak dışarı gönderilir.

5 dakikalık süre dolduğunda oyuncu, kendi bayrağına göre 1. köye ışınlanır. Bu işlem yapılırken oda dolu flag’i de sıfırlanır ki başka biri girebilsin.
Ejderin 1 saat sonra tekrar kesilebilir olması da yine aynı mantıkla yapılır. Ejder öldüğünde bir zaman değeri tutulur. NPC’den girişte bu süre kontrol edilir. Süre dolmadan kimse içeri alınmaz.

Burada dikkat etmen gereken birkaç nokta var:
  • Oda mutlaka ayrı bir map olmalı
  • O map’e başka bir yerden warp olmamalı
  • O map’te sadece ejder spawnlı olmalı
  • Server restart olursa flag’ler sıfırlanır, bunu bilerek kullanmalısı
Özetle sistemin mantığı şu:
  • NPC → anahtar + flag kontrolü
  • Giriş → flag dolu
  • Boss ölür → cooldown başlar + 5 dk timer
  • Süre biter → oyuncu köye atılır + flag boşaltılır

Kod:
quest dragon_room begin
    state start begin

        -- GİRİŞ NPC'Sİ
        when 20001.click begin  -- NPC vnum (değiştir)
            if pc.count_item(50084) < 10 then
                say("Girmek için 10 adet Kıvrık Anahtar gerekir.")
                return
            end

            if game.get_event_flag("dragon_room_busy") == 1 then
                say("Oda şu anda dolu, lütfen bekleyin.")
                return
            end

            if game.get_event_flag("dragon_respawn_time") > get_time() then
                local left = game.get_event_flag("dragon_respawn_time") - get_time()
                say("Ejder henüz tekrar canlanmadı.")
                say("Kalan süre: " .. math.floor(left/60) .. " dakika")
                return
            end

            pc.remove_item(50084, 10)
            game.set_event_flag("dragon_room_busy", 1)

            pc.warp(123456, 654321) -- EJDER ODASI KOORDİNATI (değiştir)
        end

        -- EJDER ÖLÜNCE
        when 2291.kill begin
            say("Kırmızı Ejder'i yendin.")
            say("5 dakika içinde odadan çıkarılacaksın.")

            game.set_event_flag("dragon_respawn_time", get_time() + 3600) -- 1 saat
            timer("dragon_kick_out", 300) -- 5 dakika
        end

        -- 5 DAKİKA SONRA OYUNCUYU AT
        when dragon_kick_out.timer begin
            local empire = pc.get_empire()

            if empire == 1 then
                pc.warp(469300, 964200) -- Kırmızı 1. köy
            elseif empire == 2 then
                pc.warp(55700, 157900) -- Sarı 1. köy
            else
                pc.warp(969600, 278400) -- Mavi 1. köy
            end

            game.set_event_flag("dragon_room_busy", 0)
        end

    end
end




Mantık Özeti
  • NPC’den giriş
  • 10 adet Kıvrık Anahtar ister
  • Odaya aynı anda sadece 1 kişi girer
  • İçeride Kırmızı Ejder (2291) kesilir
  • Ejder kesilince:
    • 1 saat cooldown başlar
    • Oyuncu 5 dakika sonra otomatik köye atılır

  • Oda boşalınca başka biri girebilir


KULLANMADAN ÖNCE DİKKAT
  • 20001 → giriş NPC vnum’un
  • 50084 → kıvrık anahtar item vnum
  • 2291 → kırmızı ejder vnum
  • pc.warp() içindeki koordinatları kendi map’ine göre ayarla
  • Oda ayrı ve izole bir map olmalı
  • Server restart olursa flag’ler sıfırlanır (normaldir)

🔹 KURULUM
  1. Dosyayı quest klasörüne at
  2. Derle
Kod:
 ./qc dragon_room.quest

3= Oyunda: reload q veya reboot
 
Bu sistem tamamen quest ile yapılabilecek bir şey, source’a girmen gerekmiyor. Ama düzgün çalışması için mantığı baştan doğru kurmak lazım. Ben parça parça, anlaşılır şekilde anlatayım

İstediğin şey aslında tek kişilik bir boss odası sistemi. Bunun için üç temel kontrol kullanılıyor
  • oda dolu mu boş mu
  • boss cooldown süresi
  • oyuncunun içeride kalma süresi
Bunların hepsi quest flag ve timer ile çözülüyor.

Önce giriş kısmı. NPC’ye tıklanınca yapılacak kontroller şunlar:
  • oyuncuda 10 adet kıvrık anahtar var mı
  • oda şu an dolu mu
  • ejder henüz cooldown’da mı
Eğer bu üçü de uygunsa anahtarlar alınır ve oyuncu odaya gönderilir. Aynı anda bir kişi girebilmesi için global bir flag kullanılır. İlk giren bu flag’i “dolu” yapar, çıkana kadar kimse giremez.

Bu noktada önemli olan şu:

Flag map bazlı değil, global olur. O yüzden gerçekten tek kişi girebilir.
Oyuncu içeri girdikten sonra ejder zaten map’te spawnlıysa kesmesini beklersin. Ejder öldüğü anda iki şey yapılır:
  • ejder için 1 saatlik yeniden doğma süresi başlatılır
  • oyuncu için 5 dakikalık çıkış süresi başlatılır
Yani ejder kesildiği anda oyuncu hemen atılmaz. 5 dakika içeride kalabilir, süre dolunca otomatik olarak dışarı gönderilir.

5 dakikalık süre dolduğunda oyuncu, kendi bayrağına göre 1. köye ışınlanır. Bu işlem yapılırken oda dolu flag’i de sıfırlanır ki başka biri girebilsin.
Ejderin 1 saat sonra tekrar kesilebilir olması da yine aynı mantıkla yapılır. Ejder öldüğünde bir zaman değeri tutulur. NPC’den girişte bu süre kontrol edilir. Süre dolmadan kimse içeri alınmaz.

Burada dikkat etmen gereken birkaç nokta var:
  • Oda mutlaka ayrı bir map olmalı
  • O map’e başka bir yerden warp olmamalı
  • O map’te sadece ejder spawnlı olmalı
  • Server restart olursa flag’ler sıfırlanır, bunu bilerek kullanmalısı
Özetle sistemin mantığı şu:
  • NPC → anahtar + flag kontrolü
  • Giriş → flag dolu
  • Boss ölür → cooldown başlar + 5 dk timer
  • Süre biter → oyuncu köye atılır + flag boşaltılır

Kod:
quest dragon_room begin
    state start begin

        -- GİRİŞ NPC'Sİ
        when 20001.click begin  -- NPC vnum (değiştir)
            if pc.count_item(50084) < 10 then
                say("Girmek için 10 adet Kıvrık Anahtar gerekir.")
                return
            end

            if game.get_event_flag("dragon_room_busy") == 1 then
                say("Oda şu anda dolu, lütfen bekleyin.")
                return
            end

            if game.get_event_flag("dragon_respawn_time") > get_time() then
                local left = game.get_event_flag("dragon_respawn_time") - get_time()
                say("Ejder henüz tekrar canlanmadı.")
                say("Kalan süre: " .. math.floor(left/60) .. " dakika")
                return
            end

            pc.remove_item(50084, 10)
            game.set_event_flag("dragon_room_busy", 1)

            pc.warp(123456, 654321) -- EJDER ODASI KOORDİNATI (değiştir)
        end

        -- EJDER ÖLÜNCE
        when 2291.kill begin
            say("Kırmızı Ejder'i yendin.")
            say("5 dakika içinde odadan çıkarılacaksın.")

            game.set_event_flag("dragon_respawn_time", get_time() + 3600) -- 1 saat
            timer("dragon_kick_out", 300) -- 5 dakika
        end

        -- 5 DAKİKA SONRA OYUNCUYU AT
        when dragon_kick_out.timer begin
            local empire = pc.get_empire()

            if empire == 1 then
                pc.warp(469300, 964200) -- Kırmızı 1. köy
            elseif empire == 2 then
                pc.warp(55700, 157900) -- Sarı 1. köy
            else
                pc.warp(969600, 278400) -- Mavi 1. köy
            end

            game.set_event_flag("dragon_room_busy", 0)
        end

    end
end




Mantık Özeti
  • NPC’den giriş
  • 10 adet Kıvrık Anahtar ister
  • Odaya aynı anda sadece 1 kişi girer
  • İçeride Kırmızı Ejder (2291) kesilir
  • Ejder kesilince:
    • 1 saat cooldown başlar
    • Oyuncu 5 dakika sonra otomatik köye atılır

  • Oda boşalınca başka biri girebilir


KULLANMADAN ÖNCE DİKKAT
  • 20001 → giriş NPC vnum’un
  • 50084 → kıvrık anahtar item vnum
  • 2291 → kırmızı ejder vnum
  • pc.warp() içindeki koordinatları kendi map’ine göre ayarla
  • Oda ayrı ve izole bir map olmalı
  • Server restart olursa flag’ler sıfırlanır (normaldir)

🔹 KURULUM
  1. Dosyayı quest klasörüne at
  2. Derle
Kod:
 ./qc dragon_room.quest

3= Oyunda: reload q veya reboot
ellerine sağlık saipariş versen böyle hazırlayamazlar cuk diye oturdu :D emeğine sağlık
 

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

Geri
Üst