Çözüldü attempt to index field `npsistem' (a nil value)

Çözüldü 
Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

coskun66

Üye
Üye
Mesaj
105
Çözümler
4
Beğeni
30
Puan
699
Ticaret Puanı
0
np sistemi:
quest npsistemv3 begin
    state start begin
        when kill with npc.is_pc() begin
            local npcek = mysql_query('SELECT * FROM player.player WHERE name = \\"'..pc.get_name()..'\\"')
            local np = npcek.npsistem[1]
            local rakip_seviye = npc.get_level()
            if npc.empire != pc.empire then
                if rakip_seviye >= 70 and rakip_seviye <= 80 then
                    local vid = npc.get_vid()
                    local old_pc = pc.select(vid)
                    if old_pc != 0 then
                        local npcek2 = mysql_query('SELECT * FROM player.player WHERE name = \\"'..pc.get_name()..'\\"')
                        local nprakip = npcek2.npsistem[1]
                        local npdus = nprakip -1                       
                        if nprakip < 0 then
                            mysql_query('UPDATE player.player SET npsistem = \\"0\\" WHERE name = \\"'..pc.get_name()..'\\"')
                            chat("NP YOKKİ NE ALACAN NE VERECEN")
                        else
                            mysql_query('UPDATE player.player SET npsistem = \\"'..npdus..'\\" WHERE name = \\"'..pc.get_name()..'\\"')
                        end
                        chat(" 1 NP Puanı Kaybettin ")
                        chat(" Toplam NP Puanın: "..nprakip.." ")
                        pc.select(old_pc)
                        local np1 = np + 1
                        mysql_query('UPDATE player.player SET npsistem = \\"'..np1..'\\" WHERE name = \\"'..pc.get_name()..'\\"')
                        cmdchat("np")
                        chat(" Rakibinin seviyesi "..rakip_seviye.." olduğu için 1 NP Kazandın. ")
                        chat(" Rakibinin  NP puanı 1 seviye düştü. ")
                        chat(" Toplam NP Puanın : "..np1.." ")
                    end
                elseif rakip_seviye > 80 and rakip_seviye <= 90 then
                    local vid = npc.get_vid()
                    local old_pc = pc.select(vid)
                    if old_pc != 0 then
                        local npcek2 = mysql_query('SELECT * FROM player.player WHERE name = \\"'..pc.get_name()..'\\"')
                        local nprakip = npcek2.npsistem[1]
                        local npdus = nprakip -2                       
                        if nprakip < 0 then
                            mysql_query('UPDATE player.player SET npsistem = \\"0\\" WHERE name = \\"'..pc.get_name()..'\\"')
                            chat("NP YOKKİ NE ALACAN NE VERECEN")
                        else
                            mysql_query('UPDATE player.player SET npsistem = \\"'..npdus..'\\" WHERE name = \\"'..pc.get_name()..'\\"')
                        end
                        chat(" 2 NP Puanı Kaybettin ")
                        chat(" Toplam NP Puanın: "..nprakip.." ")
                        pc.select(old_pc)
                        local np1 = np + 2
                        mysql_query('UPDATE player.player SET npsistem = \\"'..np1..'\\" WHERE name = \\"'..pc.get_name()..'\\"')
                        cmdchat("np")
                        chat(" Rakibinin seviyesi "..rakip_seviye.." olduğu için 1 NP Kazandın. ")
                        chat(" Rakibinin  NP puanı 2 seviye düştü. ")
                        chat(" Toplam NP Puanın : "..np1.." ")
                    end
                elseif rakip_seviye > 90 and rakip_seviye <= 105 then
                    local vid = npc.get_vid()
                    local old_pc = pc.select(vid)
                    if old_pc != 0 then
                        local npcek2 = mysql_query('SELECT * FROM player.player WHERE name = \\"'..pc.get_name()..'\\"')
                        local nprakip = npcek2.npsistem[1]
                        local npdus = nprakip -3                       
                        if nprakip < 0 then
                            mysql_query('UPDATE player.player SET npsistem = \\"0\\" WHERE name = \\"'..pc.get_name()..'\\"')
                            chat("NP YOKKİ NE ALACAN NE VERECEN")
                        else
                            mysql_query('UPDATE player.player SET npsistem = \\"'..npdus..'\\" WHERE name = \\"'..pc.get_name()..'\\"')
                        end
                        chat(" 3 NP Puanı Kaybettin ")
                        chat(" Toplam NP Puanın: "..nprakip.." ")
                        pc.select(old_pc)
                        local np1 = np + 3
                        mysql_query('UPDATE player.player SET npsistem = \\"'..np1..'\\" WHERE name = \\"'..pc.get_name()..'\\"')
                        cmdchat("np")
                        chat(" Rakibinin seviyesi "..rakip_seviye.." olduğu için 1 NP Kazandın. ")
                        chat(" Rakibinin  NP puanı 3 seviye düştü. ")
                        chat(" Toplam NP Puanın : "..np1.." ")
                    end
                end
            end
        end
    end   
end

elimde forumlardan buldugum bır quest var ve oyuna attıgımda hıc bırsey olmuyor bana kesılınce -1 kesınce +1 +2 +3 seklınde np vermesı gereklı okadar...


syser kayıtları

syserr kayıtları:
SYSERR: Jun 23 03:16:01 :: pid_init:
Start of pid: 1009

SYSERR: Jun 23 03:16:42 :: heart_idle: losing 39 seconds. (lag occured)
SYSERR: Jun 23 03:17:51 :: RunState: LUA_ERROR: [string "npsistemv3"]:2: attempt to index field `npsistem' (a nil value) WITH ERRORCODE 1
SYSERR: Jun 23 03:17:51 :: RunState: LUA_STATE: index 0 ref 3
SYSERR: Jun 23 03:17:51 :: WriteRunningStateToSyserr: LUA_ERROR: quest npsistemv3.start click
SYSERR: Jun 23 03:19:02 :: RunState: LUA_ERROR: [string "npsistemv3"]:2: attempt to index field `npsistem' (a nil value) WITH ERRORCODE 1
SYSERR: Jun 23 03:19:02 :: RunState: LUA_STATE: index 0 ref 3
SYSERR: Jun 23 03:19:02 :: WriteRunningStateToSyserr: LUA_ERROR: quest npsistemv3.start click

sylog kayıtları

sylog:
SYSERR: Jun 23 03:16:01 :: pid_init:
Start of pid: 1009

SYSERR: Jun 23 03:16:42 :: heart_idle: losing 39 seconds. (lag occured)
SYSERR: Jun 23 03:17:51 :: RunState: LUA_ERROR: [string "npsistemv3"]:2: attempt to index field `npsistem' (a nil value) WITH ERRORCODE 1
SYSERR: Jun 23 03:17:51 :: RunState: LUA_STATE: index 0 ref 3
SYSERR: Jun 23 03:17:51 :: WriteRunningStateToSyserr: LUA_ERROR: quest npsistemv3.start click
SYSERR: Jun 23 03:19:02 :: RunState: LUA_ERROR: [string "npsistemv3"]:2: attempt to index field `npsistem' (a nil value) WITH ERRORCODE 1
SYSERR: Jun 23 03:19:02 :: RunState: LUA_STATE: index 0 ref 3
SYSERR: Jun 23 03:19:02 :: WriteRunningStateToSyserr: LUA_ERROR: quest npsistemv3.start click
 
Player>player design tablosundan npsistem tablosu varsa leght değerini değiştirip kaydet ve tekrar dene. Çözüm olmazsa birisi illa çözüm ekliyecektir.
Kullanım amacını söylersen belki ona göre quest yazabilirim sana
 
bu konuda quest kullanmanızı önermem, source üzerinde eklemeler yapmanız daha stabil ve yüksüz olacaktır
 
Player>player design tablosundan npsistem tablosu varsa leght değerini değiştirip kaydet ve tekrar dene. Çözüm olmazsa birisi illa çözüm ekliyecektir.
Kullanım amacını söylersen belki ona göre quest yazabilirim sana
yorumunuz için teşekkürler benim amacım bir np sistemi bu np sistemini bir iteme dönüştürecem mesela 20 np kastı questle bir iteme tıkladıgında 1 np ekleyecek 21 oldu bunu tekrar iteme donusturecek questten 10 tane envanterıne alacam mesela "np" diye ben bır harıta ekleyecem bu harıtaya 10 np ıle gırılecek tabi içeride bir birine girecekleri için kesince np eksilecek rekabet olacak o harıtada neyse np 0 oldugunda sadece mesela atıyorum 115 indexli mapta ıse sehre ısınlayacak aslında yapmak ıstedıgım sıstem bu ama np sıstemı calıstıamadım
 
yorumunuz için teşekkürler benim amacım bir np sistemi bu np sistemini bir iteme dönüştürecem mesela 20 np kastı questle bir iteme tıkladıgında 1 np ekleyecek 21 oldu bunu tekrar iteme donusturecek questten 10 tane envanterıne alacam mesela "np" diye ben bır harıta ekleyecem bu harıtaya 10 np ıle gırılecek tabi içeride bir birine girecekleri için kesince np eksilecek rekabet olacak o harıtada neyse np 0 oldugunda sadece mesela atıyorum 115 indexli mapta ıse sehre ısınlayacak aslında yapmak ıstedıgım sıstem bu ama np sıstemı calıstıamadım
Sen düz np sistemi istiyorsun sandım biraz detayli özel sistem istiyorsun. Bulunduğu haritada if sorgusunu tekrar döngüsüne felan sokup 0 olduğunda dışarı cikartma olmasi gerekiyor. Sen bence combat zone systemi ekle derim np ile uğraşma
 
Sql sorguları düzgün çalışıyor mu?
Sanırsam şurada hata veriyor.
Lua (Quest):
            local np = npcek.npsistem[1]
 
player.player tablosuna npsistem adında bir alan oluşturmadınız mı yani?
 
hayır :) buyuk bır lınçmı gelıyor yoksa
Linçleme taraftarı değilim ancak orada tablodan bir alanı almaya çalışıyor. Tabloda o alan olmadığı için tabii ki de hata vermesi normal. :)

saolun hepınız oldu sistem peki whistle ben bu np puanını nasıl eşyaya dönüstürürüm :)
Galiba hata çözüldü. Şimdi ben bu konuyu çözüldü işaretleyip kapatıyorum. Np'yi eşyaya çevirmek için ayrı bi quest yazmanız gerekecek.
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst