Yardım pc.block_exp ve pc.unblock_exp fonksiyonu olan atabilir mi

  • Konuyu açan Konuyu açan dorje
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 9
  • Gösterim Gösterim 109
Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

dorje

Çaylak Üye
Üye
Mesaj
41
Çözümler
2
Beğeni
3
Puan
19
Ticaret Puanı
0
Questi yüklüyorum fakat bu fonksiyonlar olmadığı için çalışmıyor. Elinde olan paylaşırsa ekleyip kullanayım. Diğer questler ile anti exp yaptığımda exp verip timer ile siliyor bu tam olarak işe yaramıyor.
 
@Legandalith hocam buradaki işlemleri uyguladım şu an hiç exp gelmiyor.


char.h:
Genişlet Daralt Kopyala
        bool            block_exp;
        void            SetExp (DWORD exp)
        {
            m_points.exp = exp;
        }
        DWORD            GetNextExp() const;
        LPCHARACTER        DistributeExp();    // 제일 많이 때린 사람을 리턴한다.
        void            DistributeHP (LPCHARACTER pkKiller);
        void            DistributeSP (LPCHARACTER pkKiller, int iMethod=0);

@hasanmacit hocam müsaitsen bir göz atabilir misin ?
 
Son düzenleme:
Amaçta o değil mi zaten? Questinde ne yapmaya çalışıyorsun? dediğim linkte istediğin fonksiyonlar olduğu için o linki attım. Eğer oradaki questi kullanıcaksan o bir anti exp ring questi,
Kod:
Genişlet Daralt Kopyala
when itemvnum.use begin
kısmında bir iteme bağlayabilirsin. yani açılır/kapanır bir şekile girmiş olur, eğer farklı bir amacın varsa değiştirilebilir tabii.
 
Amaçta o değil mi zaten? Questinde ne yapmaya çalışıyorsun? dediğim linkte istediğin fonksiyonlar olduğu için o linki attım. Eğer oradaki questi kullanıcaksan o bir anti exp ring questi,
Kod:
Genişlet Daralt Kopyala
when itemvnum.use begin
kısmında bir iteme bağlayabilirsin. yani açılır/kapanır bir şekile girmiş olur, eğer farklı bir amacın varsa değiştirilebilir tabii.
Hocam ilgilendiğiniz için teşekkürler. Ben ifade edemedim haklısınız quest içerisindeki itemi kullanmadığım halde hatta envanterimde yokken yeni sıfır bir karakterle login olduğumda da exp kazanamıyorum exp gelmiyordan kastım buydu.


quest kodları:
Genişlet Daralt Kopyala
quest anti_exp_yzk begin
    state start begin
        when login begin
            if pc.getqf("antiexp") == 1 then
                pc.block_exp()
                chat("Anti EXP hala açık.")
            end
        end
        when 40003.use begin
            if pc.getqf("antiexp") == 0 then
                pc.block_exp()
                pc.setqf("antiexp", 1)
                chat("Anti EXP açıldı. Artık, EXP kazanmayacaksın.")
            elseif pc.getqf("antiexp") == 1 then
                pc.unblock_exp()
                pc.setqf("antiexp", 0)
                chat("Anti EXP kapatıldı. Artık, EXP kazanabilirsin.")
            end
        end
    end
end
 
Şu şekilde deneyebilir misin?

Kod:
Genişlet Daralt Kopyala
when login begin
    if pc.getqf("antiexp") == 1 then
        pc.block_exp()
        chat("Anti EXP hala açık.")
    else
        pc.unblock_exp()
    end
end
 
Şu şekilde deneyebilir misin?

Kod:
Genişlet Daralt Kopyala
when login begin
    if pc.getqf("antiexp") == 1 then
        pc.block_exp()
        chat("Anti EXP hala açık.")
    else
        pc.unblock_exp()
    end
end
Denedim hocam fakat yine sorun vermedi ben ilettiğiniz konuda eklemeleri yaptım questi okuttum fakat hiç aktif etmeden yüzüğü denediğimde exp alamadım ya login taraflı quest de bir problem olabilir yada kodları yanlış ekledim konudaki gibi;


1.şekil:
Genişlet Daralt Kopyala
        void            SetExp (DWORD exp)
        bool            block_exp;
        {
            m_points.exp = exp;
        }

bu şekilde yaptığımda proje derlenmedi ve hata aldım bende aşağıdaki gibi ekledim:

2.şekil:
Genişlet Daralt Kopyala
        void            SetExp (DWORD exp)
        {
            m_points.exp = exp;
        }
        bool            block_exp;
böyle derleyebildim hata almadım fakat şu an exp alamıyorum hiç bir şekilde
 
O zaman son bir kez bir şey denemeni isteyeceğim:

Lua (Quest):
Genişlet Daralt Kopyala
when login begin
    if not pc.getqf("antiexp") or pc.getqf("antiexp") == 0 then
        pc.unblock_exp()
    else
        pc.block_exp()
    end
end

Ekstra olarak yeni karakter oluşturduğunda antiexp quest flag'ı ne olarak kayıt oluyor ona bakabilirsin. Eğer bu da çalışmazsa benim bilmediğim bir şey :unsure:
 
Source tarafını yanlış eklemişsinizdir, çalışıyor:


Kullandığım quest:
antiexp.quest:
Genişlet Daralt Kopyala
quest antiexp begin
    state start begin
        when login begin
            if pc.getqf("antiexp") == 1 then
                pc.block_exp()
                chat("Anti EXP aktif")
            end
            send_letter(" AntiExp Aç-Kapa ")
        end
        when button begin
            if pc.getqf("antiexp") == 0 then
                pc.block_exp()
                pc.setqf("antiexp", 1)
                chat("Anti EXP aktif.")
            elseif pc.getqf("antiexp") == 1 then
                pc.unblock_exp()
                pc.setqf("antiexp", 0)
                chat("Anti EXP pasif.")
            end
            send_letter(" AntiExp Aç-Kapa ")
        end
    end
end
 
Geri
Üst