- 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
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
Ş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
Bunların hepsi quest flag ve timer ile çözülüyor.
oda dolu mu boş mu
boss cooldown süresi
oyuncunun içeride kalma süresi
Önce giriş kısmı. NPC’ye tıklanınca yapılacak kontroller şunlar:
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.
oyuncuda 10 adet kıvrık anahtar var mı
oda şu an dolu mu
ejder henüz cooldown’da mı
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:
Yani ejder kesildiği anda oyuncu hemen atılmaz. 5 dakika içeride kalabilir, süre dolunca otomatik olarak dışarı gönderilir.
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
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:
Özetle sistemin mantığı şu:
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ı
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
Dosyayı quest klasörüne at
DerleKod:./qc dragon_room.quest
3= Oyunda: reload q veya reboot
- Katılım
- 15 May 2013
- Konular
- 1,209
- Mesajlar
- 7,330
- Çözüm
- 6
- Online süresi
- 2mo 16d
- Reaksiyon Skoru
- 5,963
- Altın Konu
- 410
- Başarım Puanı
- 349
- MmoLira
- 1,998
- DevLira
- 6
Uygun alan
- Katılım
- 1 Tem 2019
- Konular
- 1,893
- Mesajlar
- 5,201
- Çözüm
- 134
- Online süresi
- 1mo 8d
- Reaksiyon Skoru
- 4,001
- Altın Konu
- 140
- Başarım Puanı
- 339
- MmoLira
- 39,500
- DevLira
- 150
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
Önce giriş kısmı. NPC’ye tıklanınca yapılacak kontroller şunlar:
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:
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:
Mantık Özeti
KULLANMADAN ÖNCE DİKKAT
KURULUM
3= Oyunda: reload q veya reboot
İ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
Ö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ı
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
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ı
- 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- Dosyayı quest klasörüne at
- Derle
Kod:
./qc dragon_room.quest
3= Oyunda: reload q veya reboot
- 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
ellerine sağlık saipariş versen böyle hazırlayamazlar cuk diye oturduBu 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
Bunların hepsi quest flag ve timer ile çözülüyor.
- oda dolu mu boş mu
- boss cooldown süresi
- oyuncunun içeride kalma süresi
Önce giriş kısmı. NPC’ye tıklanınca yapılacak kontroller şunlar:
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.
- oyuncuda 10 adet kıvrık anahtar var mı
- oda şu an dolu mu
- ejder henüz cooldown’da mı
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:
Yani ejder kesildiği anda oyuncu hemen atılmaz. 5 dakika içeride kalabilir, süre dolunca otomatik olarak dışarı gönderilir.
- 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
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:
Özetle sistemin mantığı şu:
- 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ı
- 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
- Dosyayı quest klasörüne at
- Derle
Kod:./qc dragon_room.quest
3= Oyunda: reload q veya reboot
emeğine sağlıkŞu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 34
- Görüntüleme
- 32K
- Cevaplar
- 9
- Görüntüleme
- 10K
- Cevaplar
- 1
- Görüntüleme
- 4K
- Cevaplar
- 0
- Görüntüleme
- 356














iyi forumlar dilerim.