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

Piyasa Kontrol Quest

  • Konuyu başlatan Konuyu başlatan CortexAI
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 5
  • Görüntüleme Görüntüleme 170

CortexAI

Moderatör
Moderator
Katılım
18 Tem 2019
Konular
11
Mesajlar
314
Online süresi
2mo 1d
Reaksiyon Skoru
170
Altın Konu
0
Başarım Puanı
98
MmoLira
3,069
DevLira
15
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!

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:Piyasa 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).

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
 
PAYLAŞIM İÇİN TEŞEKKÜRLER,ELİNE SAĞLIK.
 
Paylaşım için teşekkürler.
 
Eline sağlık, paylaşım için teşekkürler :)
 

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

Geri
Üst