Yardım Quest multi dil

  • Konuyu açan Konuyu açan adv1453
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 5
  • Gösterim Gösterim 243
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
442
Çözümler
42
Beğeni
221
Puan
869
Ticaret Puanı
0
Aşağıdaki quest'de Loncayı dağıt kısmını dil sistemine entegre etmek istiyorum ama başaramadım.

Python:
Genişlet Daralt Kopyala
        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.webp


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:
Genişlet Daralt Kopyala
"Loncayı dağıt"
Şöyle değiştirip encoding ayarının da ANSI olduğundan emin olup tekrar dener misin?
Kod:
Genişlet Daralt Kopyala
" 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:
Genişlet Daralt Kopyala
"Loncayı dağıt"
Şöyle değiştirip encoding ayarının da ANSI olduğundan emin olup tekrar dener misin?
Kod:
Genişlet Daralt Kopyala
" Loncayı dağıt "

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

1706211204416.webp


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

Yaptığım şey bu;
Python:
Genişlet Daralt Kopyala
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:
Genişlet Daralt Kopyala
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.webp


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:
Genişlet Daralt Kopyala
[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