Fethi Polat 1
Fethi Polat
ShadowFon 1
ShadowFon
bikral 1
bikral
-TuRKuaZ- 1
-TuRKuaZ-
SLyFeLLowTR 1
SLyFeLLowTR
TGamesZeus 1
TGamesZeus
Best Studio 1
Best Studio
berkmenoo 1
berkmenoo
InfernoShade 1
InfernoShade
Hikaye Ekle

Cevaplandı Oyuncuya Hediye Verdirme Questi

  • Konuyu başlatan Konuyu başlatan 3ONARCH
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 8
  • Görüntüleme Görüntüleme 263

3ONARCH

Level 1
Üye
Katılım
14 Ara 2024
Konular
8
Mesajlar
39
Çözüm
1
Online süresi
2d 2h
Reaksiyon Skoru
14
Altın Konu
0
TM Yaşı
1 Yıl 6 Ay 2 Gün
Başarım Puanı
22
MmoLira
718
DevLira
3
Ticaret - 0%
0   0   0

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!

Selamın Aleyküm :)
arkadaşlar geçen bu konu için yardım istemiştim sağolsun bir kaç kişi yardımcı olmaya çalıştı sorunumu daha sonra halletmiştik fakat şöyle bir problem gözüme çarptı test hesapla denediğim zaman kendisi level aldığında ekrana quest gelmiyor son levelde 3'ü birden geliyor ama gm karakteriyle level verdiğim zaman hepsi sorunsuz geliyor yardımcı olabilecek varmı ?
5 adet resim bırakıyorum normalde olması gereken bunlar fakat gm karakteriyle verdim tek sorun bu :)
kod kısmı da şu şekilde aynı koddan 3 adet kopyaladım dosya isimleri farklı şekilde puttyden okuttum.

quest hediye begin
state start begin
when levelup with pc.get_level() >= 250 begin
say_title("TEBRİK EDERİZ !")
say("Seviyen 250 Oldu,")
say("Yolu Bitirdin Sayılır Az Kaldı Sabret !")
say("")
say("Envanterine Minik Bir Hediye Gönderdik Umarım Seversin..")
say_title("İyi Oyunlar Dileriz.")

pc.give_item2(53002, 1)
pc.give_item2(30130, 200)

set_state(_COMPLETE_)
end
end

state _COMPLETE_ begin

end
end
 

Ekli dosyalar

  • Screenshot_2.png
    Screenshot_2.png
    469 KB · Görüntüleme: 0
  • Screenshot_1.png
    Screenshot_1.png
    518.1 KB · Görüntüleme: 0
  • Screenshot_3.png
    Screenshot_3.png
    440 KB · Görüntüleme: 0
  • Screenshot_4.png
    Screenshot_4.png
    50.1 KB · Görüntüleme: 0
  • Screenshot_5.png
    Screenshot_5.png
    16.3 KB · Görüntüleme: 0
Sorunuz hayla devam ediyormu ? Sorun çözümlendiyse çözüldü diye işaretlermisniz
 

1. when levelup Koşulu:

when levelup tetikleyicisi, oyuncunun doğal olarak XP kazanarak level atladığında çalışır. Ancak GM komutuyla level verdiğinizde bu tetikleyici devreye girmez. Bunun bir çözümü yok; bu beklenen bir durumdur. Doğru testi yapmak için GM karakterinizde XP ile seviye atlamayı deneyin.

2. Quest'in Erişim Seviyesi:

Quest'in tetiklenebilmesi için state start kısmında yazan şartların doğru olduğundan emin olun. Örneğin, aşağıdaki gibi bir erişim sınırı olup olmadığını kontrol edin:

lua
Kodu kopyala
quest hediye begin
state start begin
when login or levelup with pc.get_level() >= 250 begin

Eğer levelup dışındaki bir tetikleyici ile testi yapmak isterseniz, login koşulunu da ekleyebilirsiniz. Böylece oyuncu giriş yaptığında seviyesine bağlı olarak kontrol edilir.


3. Sorun: Son Levelde Tetiklenme:

Eğer test hesabında yalnızca son seviyeye ulaştığınızda çalışıyorsa, problem muhtemelen set_state(_COMPLETE_) komutunda. Bu komut, quest'in bir daha çalışmaması için durumu "tamamlanmış" olarak işaretler. Doğal levellenmede tüm tetikleyiciler aynı anda çalışmaz.

Düzeltme olarak şunu deneyin:
[CODE title="düzeltme"]quest hediye begin
state start begin
when login or levelup with pc.get_level() == 250 begin
if pc.getqf("quest_completed") == 0 then
say_title("TEBRİK EDERİZ!")
say("Seviyen 250 Oldu, ödüller envanterinde!")
pc.give_item2(53002, 1)
pc.give_item2(30130, 200)
pc.setqf("quest_completed", 1)
end
end
end
end
[/CODE]


Bu düzenlemede:

  • login tetikleyicisi, giriş yapıldığında da kontrol edilmesini sağlar.
  • pc.getqf("quest_completed") kontrolü, ödüllerin sadece bir kez verilmesini garantiler.

4. Doğru Test Yapın:

Sorunu çözmek için şunları deneyebilirsiniz:

  1. Oyuncu hesabınızla XP kazanarak doğal seviye atlamayı test edin.
  2. Giriş tetikleyicisini (login) kullanarak ödülün doğru verildiğini doğrulayın.
  3. GM komutuyla test yaparken quest'i manuel olarak tetiklemeniz gerektiğini unutmayın.
 
değerli yorumun için ve önerilerin için teşekkür ederim, level saatinin questinde iki satır kod var birisi eşyanın kodu diğeri de tıkladığımızda vereceği exp miktarı hediye questine gelirsek normal exp kazandığımızda yani slotları keserek elde ettiğimiz exp ile seviye atladığımızda sorunsuz çalışıyor gm karakteriyle level verince yine sorun yok çalışıyor fakat level saatiyle alınca maalesef olmadı 😃 hediye questini level questinden çektirdim veya tam tersi level saati kodlarını özel yaptım hediyeye çektirmesi gerektiğini yaptırdım yine olmadı.
 
Rica ederim sorununu umarım çözebiliriz dostum, sorunu çözmek için birkaç farklı yaklaşım deneyebiliriz:


1. Level Saati Tetikleyici Kontrolü

Level saatiyle EXP kazanıldığında levelup tetikleyicisi düzgün çalışmıyorsa, bunu manuel olarak zorlamanız gerekebilir. Level saati sisteminin kodunda aşağıdaki eklemeleri yapabilirsiniz:

lua
[CODE title="Kod"]
if pc.get_level() >= 250 then
game.set_event_flag("hediye_aktif", 1) -- Bir bayrak tetiklenir
set_state(start) -- Hediye questini başlatabilir
end
[/CODE]
Bu kodla, seviye kontrolü ve hediye quest tetiklemesi doğrudan yapılabilir.


2. Level Saati ve Hediye Quest'i Arasında Bayrak (Event Flag) Kullanımı

Hediye questini doğrudan tetiklemek için game.set_event_flag kullanabilirsiniz. Bu yöntem, level saati ile normal EXP kazancı arasındaki farkı kapatmaya yardımcı olur.

Örnek: Level Saati Koduna Ek​

lua
[CODE title="Kod"]
when use begin
local exp_verilecek = 50000000 -- Verilecek EXP miktarı
pc.give_exp(exp_verilecek)

-- Seviye kontrolü ve quest tetikleme
if pc.get_level() == 250 then
game.set_event_flag("hediye_aktif", 1)
end
end
[/CODE]

Örnek: Hediye Quest'e Ek​

Hediye questinde event_flag kontrolü yapabilirsiniz:

lua
[CODE title="Kod"]
quest hediye begin
state start begin
when levelup with pc.get_level() == 250 or game.get_event_flag("hediye_aktif") == 1 begin
say_title("TEBRİK EDERİZ!")
say("250 seviyesine ulaştınız!")
pc.give_item2(53002, 1)
pc.give_item2(30130, 200)

game.set_event_flag("hediye_aktif", 0) -- Bayrağı sıfırla
set_state(_COMPLETE_)
end
end

state _COMPLETE_ begin
end
end
[/CODE]

3. Level Saati Kodunu Hediye Questine Doğrudan Dahil Etme

Eğer bayrak (event flag) yöntemi karmaşık geliyorsa, level saati kodlarını hediye questine entegre edebilirsiniz.

lua
[CODE title="Kod"]
when use begin
local exp_verilecek = 50000000
pc.give_exp(exp_verilecek)

-- Hediye tetikleme
if pc.get_level() == 250 then
say_title("TEBRİK EDERİZ!")
say("250 seviyesine ulaştınız!")
pc.give_item2(53002, 1)
pc.give_item2(30130, 200)
end
end
[/CODE]
Bu yöntemle ayrı bir levelup tetikleyicisine gerek kalmadan, level saati sistemi üzerinden hediye verilebilir.


4. Debug Mesajlarıyla Takip Etme

Hangi durumda tetiklenmediğini daha iyi anlayabilmek için debug mesajları ekleyin. Örneğin:
lua
[CODE title="Kod"]
when levelup with pc.get_level() == 250 begin
pc.chat("Debug: Levelup çalıştı!")
say_title("TEBRİKLER!")
-- Diğer kodlar
end

when use begin
pc.chat("Debug: Level saati kullanıldı!")
-- Diğer kodlar
end
[/CODE]

5. Olası Sorunlar ve Çözümler

  • Level saatiyle EXP kazancında levelup tetiklenmiyorsa:
    Oyun, saati sadece EXP verme işlemi olarak algılayabilir. Bu durumda, saati kullanarak seviyeye ulaşıldığında manuel olarak levelup tetikleyicisini zorlamanız gerekir.
  • Hediye quest tetiklenmiyorsa:
    levelup tetikleyicisi yerine bayrak veya başka bir yöntemle tetikleme yapılmalıdır.
 

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

Geri
Üst