Yardım Quest multi dil

Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

adv1453

Yardımsever Üye
Yardımsever Üye
MT Üye
Mesaj
438
Çözümler
42
Beğeni
215
Puan
844
Ticaret Puanı
0
Aşağıdaki quest'de Loncayı dağıt kısmını dil sistemine entegre etmek istiyorum ama başaramadım.

Python:
        when 11000.chat."Loncayı dağıt" or 11002.chat."Loncayı dağıt" or 11004.chat."Loncayı dağıt" with pc.hasguild() and pc.isguildmaster() begin
            say_title(string.format("%s:", mob_name(npc.get_race())))
            say("")
            local lang = pc.get_language()
            say(gameforge[lang].guild_manage._3)
            local s = select(gameforge[lang].common.yes, gameforge[lang].common.no)
            if s == 1 then
                say(gameforge[lang].guild_manage._4)
                pc.destroy_guild()
                pc.setqf("new_disband_time",get_global_time())
                pc.setqf("new_withdraw_time",get_global_time())
            end
        end

Aşağıdaki şekillerdeki gibi denedim ama olmadı

1. when 11000.chat.(gameforge[lang].guild_manage._3) or
2. when 11000.chat.gameforge[lang].guild_manage._3 or

1706210767428.png


bu şekilde gözüküyor
 
Türkçe karakter kullanırken, çift tırnak karakteri öncesinde ve sonrasında birer boşluk bırakmadığım için böyle encoding sorunları ile karşılaşmıştım bi ara.
Bunu
Kod:
"Loncayı dağıt"
Şöyle değiştirip encoding ayarının da ANSI olduğundan emin olup tekrar dener misin?
Kod:
" Loncayı dağıt "
 
Türkçe karakter kullanırken, çift tırnak karakteri öncesinde ve sonrasında birer boşluk bırakmadığım için böyle encoding sorunları ile karşılaşmıştım bi ara.
Bunu
Kod:
"Loncayı dağıt"
Şöyle değiştirip encoding ayarının da ANSI olduğundan emin olup tekrar dener misin?
Kod:
" Loncayı dağıt "

Benim bahsetmiş olduğum şey bu değil. Normalde zaten "Loncayı dağıt" olunca da sorunsuz çalışıyor.

1706211204416.png


NPC'ye tıklayınca ssh üzerinde böyle bir hata yazıyor
Kod:
[string "ScriptToString"]:1: attempt to index field `?' (a nil value)

Yaptığım şey bu;
Python:
when 11000.chat.gameforge[lang].guild_manage._4 or 11002.chat.gameforge[lang].guild_manage._4 or 11004.chat.gameforge[lang].guild_manage._4 with pc.hasguild() and pc.isguildmaster() begin

translate.lua içerisinde;
Kod:
gameforge["tr"].guild_manage._4 = "Loncayı dağıt"
 
get_language fonksiyonunun düzgün çalıştığından emin misin? onu print edebilir misin? oyun içi de olur (notice)
 
get_language fonksiyonunun düzgün çalıştığından emin misin? onu print edebilir misin? oyun içi de olur (notice)

Evet buradaki say(gameforge[lang].guild_manage._3) kısmı çalışıyor
1706213429273.png


get_language kısmı chat."Loncayı dağıt" dan sonra çalıştığı için olmuyor olabilir mi?
 
Evet buradaki say(gameforge[lang].guild_manage._3) kısmı çalışıyor
14952 eklentisini görüntüle

get_language kısmı chat."Loncayı dağıt" dan sonra çalıştığı için olmuyor olabilir mi?
Elbette, değişkeni initialize etmeden (oluşturmadan) kullanırsan ya o hafıza adresindeki önceden var olan değeri alırsın ya da kullandığın dil/araç ne ise sana bunun için default bi değer verir. Burada default değer NULL;
Kod:
[string "ScriptToString"]:1: attempt to index field `?' (a nil value)
Npc ile diyaloğa başlarken lang değişkenini kullandığını görmüyorum ama sen yine de öncesine taşıyıp test et
 
Son düzenleme:
Geri
Üst