- Katılım
- 18 Tem 2019
- Konular
- 11
- Mesajlar
- 314
- Online süresi
- 2mo 1d
- Reaksiyon Skoru
- 169
- Altın Konu
- 0
- Başarım Puanı
- 98
- MmoLira
- 3,066
- DevLira
- 15
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!
Bir zamanlar server için çok eskiden kodladığım bir quest. İşine yarayacaklar olacaktır diye düşünerek paylaşıyorum.
Çalışma Mantığı
1. GM Paneli (20020 NPC üzerinden)
- GM oyuna girip “GM
iyasa Kontrol” seçeneğini açarsa:- Eğer sistem kapalıysa:
- GM’den item vnum (örneğin 299), yang fiyatı ve kaç dakika aktif kalacağı bilgisi istenir.
- Bu bilgiler girildikten sonra game.set_event_flag ile sistem açılır.
- Tüm oyunculara notice_all ile duyuru yapılır: item adı, fiyatı ve süresi.
- Eğer sistem zaten açıksa:
- GM’e “Sistem açık” mesajı gösterilir.
- İsterse kapatabilir (piyasa_acik = 0).
- Eğer sistem kapalıysa:
2. Oyuncu Paneli (20020 NPC üzerinden)
- Oyuncu “Piyasa Kontrol” seçeneğini açarsa ve sistem aktifse:
- Oyuncuya item adı ve alış fiyatı gösterilir.
- Eğer oyuncu “Evet” derse:
- Envanterinde o item var mı kontrol edilir.
- Varsa → item 1 adet silinir (pc.remove_item) ve oyuncuya belirlenen yang eklenir (pc.change_gold).
- Eğer süre bitmişse (item_time < get_time()), sistem otomatik kapanır ve notice_all ile duyurulur.
- Eğer item yoksa → “Envanterinde bulunamadı” mesajı çıkar.
3. Login Event
- Oyuncu oyuna girdiğinde sistem açıksa:
- Ona özel notice çıkar: “Piyasa Kontrol Sistemi Aktif!”
- Item adı ve fiyatı gösterilir.
Özet
- Amaç: GM’in belirlediği itemi, belirlenen fiyattan oyuncuların NPC’ye satabilmesini sağlamak.
- Mantık:
- GM açıyor → item, fiyat ve süre belirliyor.
- Oyuncular NPC’ye gidip itemi satıyor → karşılığında yang alıyor.
- Süre bitince sistem otomatik kapanıyor.
Kod:state start begin when 20020.chat."GM:Piyasa Kontrol " with pc.is_gm() begin if game.get_event_flag("piyasa_acik") == 0 then say(" Merhaba "..pc.get_name().." ") say("Sistem Durumu: |cffff9999Kapalı!") say(" Piyasa Kontrol Açılsın mı ? ") if select(" Evet "," Hayır ") == 2 then return end say(" Piyasa Kontrol İçin İtem Vnum(Örn: 299) ") piyasa_itemi = tonumber(input()) or nil if piyasa_itemi == 0 then syschat(" Geçersiz İtem Kodu Belirttiniz.") return end say(" Piyasa Kontrol İçin Yang Giriniz. ") piyasa_yang = tonumber(input()) or nil if piyasa_yang == 0 then say(" Geçersiz Bir Yang Belirttiniz ") return end say(" Ne kadar Süre Aktif Kalıcak? ( Dakika ) ") piyasa_dakika = tonumber(input()) or nil if piyasa_dakika == 0 then syschat(" Geçersiz Bir Süre Belirttiniz.") return end game.set_event_flag("item_time", get_time()+piyasa_dakika*60) game.set_event_flag("piyasa_acik", 1) notice_all(" Piyasa Kontrol Açıldı! ") notice_all(" Piyasa Kontrol İtemi : |cffff9999"..item_name(piyasa_itemi).." ") notice_all("İtem'in Alış-Satış Fiyatı:|cffff9999 "..piyasa_yang.." Yang") notice_all(" Etkinlik Süresi : "..piyasa_dakika.." Dakika") else say("Sistem Durumu:|cff07eb96Açık!") say(" Piyasa Kontrol Sistemini Kapatmak istiyor musun ? ") if select(" Evet ", " Hayır ")==2 then return end game.set_event_flag("piyasa_acik", 0) piyasa_itemi = nil notice_all(" Piyasa Kontrol Sistemi Kapatıldı! ") end end when 20020.chat."Piyasa Kontrol" with game.get_event_flag("piyasa_acik") == 1 and not npc.is_pc() begin say(" Merhaba, "..pc.get_name().." ") say("Piyasa Kontrol Altına almak için buradayım.") say("İşleme Devam etmek istiyor musunuz ?") say("Şuan Piyasa Kontrol Listesindeki İtemler;") say("|cff07eb96 İtem Adı:|cffff9999"..item_name(piyasa_itemi).."") say("|cff07eb96 Alış Fiyati:|cffff9999"..piyasa_yang.." Yang") local secimyap = select("Evet","Kapat") if secimyap == 1 then if pc.count_item(piyasa_itemi) < 1 then say(""..pc.get_name()..", Envanterinde") say("|cffff9999"..item_name(piyasa_itemi).."|ccccc1459 Bulunamadı. ") else pc.change_gold(piyasa_yang) pc.remove_item(piyasa_itemi,1) if game.get_event_flag("item_time") < get_time() then notice_all(" Piyasa Kontrol Sistemi Kapatıldı! ") game.set_event_flag("piyasa_acik", 0) return end end end end when login with game.get_event_flag("piyasa_acik") == 1 begin notice(" Piyasa Kontrol Sistemi Aktif! ") notice(" Piyasa Kontrol İtemi : |cffff9999 "..item_name(piyasa_itemi).." ") end end
- 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
PAYLAŞIM İÇİN TEŞEKKÜRLER,ELİNE SAĞLIK.
- Katılım
- 18 Tem 2019
- Konular
- 11
- Mesajlar
- 314
- Online süresi
- 2mo 1d
- Reaksiyon Skoru
- 169
- Altın Konu
- 0
- Başarım Puanı
- 98
- MmoLira
- 3,066
- DevLira
- 15
Teşekkür ederimPAYLAŞIM İÇİN TEŞEKKÜRLER,ELİNE SAĞLIK.














