HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. 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
Teşekkür ederimPAYLAŞIM İÇİN TEŞEKKÜRLER,ELİNE SAĞLIK.

