LUA Error Handelscenter

05/06/2016 09:16 LyRockZz#1
Heyyo,

habe vor kurzem das Handelscenter von Kilroy eingefügt. Öffnet sich alles und passt auch, aber wenn ich ein Item hinzufügen will bei "Add Item", zeigt er mir folgenden LUA Error an:

[Only registered and activated users can see links. Click Here To Register...]

Welche Function fehlt mir in der questlib.lua? Oder wie kann ich das beheben?
05/06/2016 10:37 #Metho#2
Zeig uns mal bitte den Ausschnitt des angegebenen Fehlers.
05/06/2016 10:47 LyRockZz#3
[Only registered and activated users can see links. Click Here To Register...]

Klicke oben auf "Add Item" füg ich zb das Schwert ein, dann klick ich auf "Put In", dann kommt der LUA Fehler wie oben. Liegts evtl. an der Quest?

PHP Code:
quest y04iL98R80tK begin
    state start begin
        when login begin
            cmdchat
("Handelscenter index/"..q.getcurrentquestindex())
        
end
        when loopi
.timer begin -- debug cause items over 1000
            
if table.getn(HANDELSCENTER[pc.get_player_id()][1])>HANDELSCENTER[pc.get_player_id()][2then
                local q
HANDELSCENTER[pc.get_player_id()][1], HANDELSCENTER[pc.get_player_id()][2]
                
cmdchat("Handelscenter itemvonliste/ITEMS/"..q.id[i].."/"..q.vnum[i].."/"..q.count[i].."/"..q.preis[i].."/"..q.name[i].."/"..q.attrtype0[i].."/"..q.attrvalue0[i].."/"..q.attrtype1[i].."/"..q.attrvalue1[i].."/"..q.attrtype2[i].."/"..q.attrvalue2[i].."/"..q.attrtype3[i].."/"..q.attrvalue3[i].."/"..q.attrtype4[i].."/"..q.attrvalue4[i].."/"..q.attrtype5[i].."/"..q.attrvalue5[i].."/"..q.attrtype6[i].."/"..q.attrvalue6[i].."/"..q.socket0[i].."/"..q.socket1[i].."/"..q.socket2[i].."/"..q.socket3[i].."/"..q.socket4[i].."/"..q.socket5[i].."/"..table.getn(q.id).."/"..i)
                
HANDELSCENTER[pc.get_player_id()][2] = HANDELSCENTER[pc.get_player_id()][2] + 1
            
else
                
cleartimer("loopi")
                
cmdchat("Handelscenter finishsending/")
            
end
        end
        when button 
or info begin
            cleartimer
("loopi")
            
cmdchat("getinputbegin")
            
local INPUT split(input(cmdchat("Handelscenter input/")), "/")
            
cmdchat("getinputend")
            
local MAX_INVENTAR_YANG 1999999999
            
if INPUT[1]=="open" then
                cmdchat
("Handelscenter yangingui/"..mysql_query("SELECT * FROM player.player WHERE id = '"..pc.get_player_id().."' LIMIT 1;").handelsyang[1])
                
local q mysql_query("SELECT * FROM player.handelscenter where not owner_id = '"..pc.get_player_id().."' order by date DESC LIMIT 10;")
                if 
q.id==nil then syschat("Es gibt keine Items zu kaufen."cmdchat("Handelscenter noitems/ITEMS") return end
                
for i=1table.getn(q.id), do
                    
cmdchat("Handelscenter itemvonliste/ITEMS/"..q.id[i].."/"..q.vnum[i].."/"..q.count[i].."/"..q.preis[i].."/"..q.name[i].."/"..q.attrtype0[i].."/"..q.attrvalue0[i].."/"..q.attrtype1[i].."/"..q.attrvalue1[i].."/"..q.attrtype2[i].."/"..q.attrvalue2[i].."/"..q.attrtype3[i].."/"..q.attrvalue3[i].."/"..q.attrtype4[i].."/"..q.attrvalue4[i].."/"..q.attrtype5[i].."/"..q.attrvalue5[i].."/"..q.attrtype6[i].."/"..q.attrvalue6[i].."/"..q.socket0[i].."/"..q.socket1[i].."/"..q.socket2[i].."/"..q.socket3[i].."/"..q.socket4[i].."/"..q.socket5[i].."/"..table.getn(q.id).."/"..i)
                
end
                cmdchat
("Handelscenter finishsending/")
            elseif 
INPUT[1]=="logs" then
                local q 
mysql_query("SELECT * FROM player.handelscenter_logs where owner_id = '"..pc.get_player_id().."' order by date DESC LIMIT 20;")
                if 
q.owner_id==nil then syschat("Gibt keine Logs"cmdchat("Handelscenter nologs/") return end
                
for i=1table.getn(q.owner_id), do
                    if 
q.owner[i]==pc.get_name() then
                        q
.owner[i] = "dir"
                    
end
                    
if q.buyer[i]==pc.get_name() then
                        q
.buyer[i] = "Du"
                    
end
                    text 
string.gsub(os.date("[%d.%m.%Y %H:%M:%S]"tonumber(q.date[i])), "%s""$")
                    
cmdchat("Handelscenter logs/"..q.owner[i].."/"..q.vnum[i].."/"..q.count[i].."/"..q.preis[i].."/"..q.buyer[i].."/"..text)
                
end
                cmdchat
("Handelscenter finishlogs/")
            elseif 
INPUT[1]=="kategorie" then
                local typetable 
= {
                                    [
"Schwerter"] = {10},
                                    [
"Zweihänder"] = {13},
                                    [
"Dolche"] = {11},
                                    [
"Bögen"] = {12},
                                    [
"Glocke"] = {14},
                                    [
"Fächer"] = {15},
                                    [
"Rüstungen"] = {20},
                                    [
"Helme"] = {21},
                                    [
"Schilder"] = {22},
                                    [
"Armbänder"] = {23},
                                    [
"Schuhe"] = {24},
                                    [
"Halsketten"] = {25},
                                    [
"Ohrringe"] = {26},
                                    [
"Kostüme"] = {280},
                                    [
"Frisuren"] = {281},
                                    [
"Gürtel"] = {340},
                                    [
"Steine"] = {100}
                                }
                if 
typetable[INPUT[2]] then
                    local q 
mysql_query("SELECT * FROM player.handelscenter where not owner_id = '"..pc.get_player_id().."' and type='"..typetable[INPUT[2]][1].."' and subtype='"..typetable[INPUT[2]][2].."';")
                    if 
q.id==nil then syschat("Es gibt keine Items zu kaufen."cmdchat("Handelscenter noitems/ITEMS") return end
                    HANDELSCENTER
[pc.get_player_id()] = {q1}
                    
cleartimer("loopi")
                    
loop_timer("loopi"0.03)
                else
                    
local q mysql_query("SELECT * FROM player.handelscenter where not owner_id = '"..pc.get_player_id().."' and (type not in (1,2,28,10,34) or subtype not in (0,1,2,3,4,5,6));")
                    if 
q.id==nil then syschat("Es gibt keine Items zu kaufen."cmdchat("Handelscenter noitems/ITEMS") return end
                    HANDELSCENTER
[pc.get_player_id()] = {q1}
                    
cleartimer("loopi")
                    
loop_timer("loopi"0.03)
                
end
            
elseif INPUT[1]=="change_button" then
                
if INPUT[2]=="OWN_ITEMS" then
                    cmdchat
("Handelscenter yangingui/"..mysql_query("SELECT * FROM player.player WHERE id = '"..pc.get_player_id().."' LIMIT 1;").handelsyang[1])
                    
local q mysql_query("SELECT * FROM player.handelscenter WHERE owner_id='"..pc.get_player_id().."' LIMIT 20;")
                    if 
q.id==nil then syschat("Es gibt keine Items zu kaufen."cmdchat("Handelscenter noitems/OWN_ITEMS") return end
                    
for i=1table.getn(q.id), do
                        
cmdchat("Handelscenter itemvonliste/OWN_ITEMS/"..q.id[i].."/"..q.vnum[i].."/"..q.count[i].."/"..q.preis[i].."/"..q.name[i].."/"..q.attrtype0[i].."/"..q.attrvalue0[i].."/"..q.attrtype1[i].."/"..q.attrvalue1[i].."/"..q.attrtype2[i].."/"..q.attrvalue2[i].."/"..q.attrtype3[i].."/"..q.attrvalue3[i].."/"..q.attrtype4[i].."/"..q.attrvalue4[i].."/"..q.attrtype5[i].."/"..q.attrvalue5[i].."/"..q.attrtype6[i].."/"..q.attrvalue6[i].."/"..q.socket0[i].."/"..q.socket1[i].."/"..q.socket2[i].."/"..q.socket3[i].."/"..q.socket4[i].."/"..q.socket5[i].."/"..table.getn(q.id).."/"..i)
                    
end
                    cmdchat
("Handelscenter finishsending/")
                elseif 
INPUT[2]=="ITEMS" then
                    cmdchat
("Handelscenter yangingui/"..mysql_query("SELECT * FROM player.player WHERE id = '"..pc.get_player_id().."' LIMIT 1000;").handelsyang[1])
                    
local q mysql_query("SELECT * FROM player.handelscenter where not owner_id = '"..pc.get_player_id().."';")
                    if 
q.id==nil then syschat("Es gibt keine Items zu kaufen."cmdchat("Handelscenter noitems/ITEMS") return end
                    
for i=1table.getn(q.id), do
                        
cmdchat("Handelscenter itemvonliste/ITEMS/"..q.id[i].."/"..q.vnum[i].."/"..q.count[i].."/"..q.preis[i].."/"..q.name[i].."/"..q.attrtype0[i].."/"..q.attrvalue0[i].."/"..q.attrtype1[i].."/"..q.attrvalue1[i].."/"..q.attrtype2[i].."/"..q.attrvalue2[i].."/"..q.attrtype3[i].."/"..q.attrvalue3[i].."/"..q.attrtype4[i].."/"..q.attrvalue4[i].."/"..q.attrtype5[i].."/"..q.attrvalue5[i].."/"..q.attrtype6[i].."/"..q.attrvalue6[i].."/"..q.socket0[i].."/"..q.socket1[i].."/"..q.socket2[i].."/"..q.socket3[i].."/"..q.socket4[i].."/"..q.socket5[i].."/"..table.getn(q.id).."/"..i)
                    
end
                    cmdchat
("Handelscenter finishsending/")
                
end
            
elseif INPUT[1]=="buyrem_button" then
                
if INPUT[2]=="OWN_ITEMS" then
                    local q 
mysql_query("SELECT * FROM player.handelscenter WHERE id = '"..INPUT[3].."' LIMIT 1;")
                    if 
q.vnum==nil then syschat("Das Item wurde wohl schon gekauft!"cmdchat("Handelscenter remove/OWN_ITEMS/"..INPUT[4]) return end
                    cmdchat
("Handelscenter yangingui/"..mysql_query("SELECT * FROM player.player WHERE id = '"..pc.get_player_id().."' LIMIT 1;").handelsyang[1])
                    
cmdchat("Handelscenter remove/OWN_ITEMS/"..INPUT[4])
                    
y04iL98R80tK.give_item_from_center(q)
                elseif 
INPUT[2]=="ITEMS" then
                    local q 
mysql_query("SELECT * FROM player.handelscenter WHERE id = '"..INPUT[3].."' LIMIT 1;")
                    if 
q.vnum==nil then syschat("Das Item wurde wohl schon gekauft!"cmdchat("Handelscenter remove/ITEMS/"..INPUT[4]) return end
                    
if tonumber(q.preis[1])>tonumber(mysql_query("SELECT handelsyang FROM player.player WHERE id = '"..pc.get_player_id().."';").handelsyang[1]) then syschat("No enough money") return end
                    mysql_query
("UPDATE player.player SET handelsyang = handelsyang + '"..q.preis[1].."' WHERE id = '"..q.owner_id[1].."';")
                    
mysql_query("UPDATE player.player SET handelsyang = handelsyang - '"..q.preis[1].."' WHERE id = '"..pc.get_player_id().."';")
                    
mysql_query("INSERT INTO player.handelscenter_logs (owner_id, buyer_id, owner, buyer, preis,count,vnum,date) VALUES ('"..pc.get_player_id().."', '"..q.owner_id[1].."', '"..q.name[1].."', '"..pc.get_name().."', '"..q.preis[1].."', '"..q.count[1].."', '"..q.vnum[1].."', '"..get_time().."')")
                    
mysql_query("INSERT INTO player.handelscenter_logs (owner_id, buyer_id, owner, buyer, preis,count,vnum,date) VALUES ('"..q.owner_id[1].."', '"..pc.get_player_id().."', '"..q.name[1].."', '"..pc.get_name().."', '"..q.preis[1].."', '"..q.count[1].."', '"..q.vnum[1].."', '"..get_time().."')"
                    
y04iL98R80tK.give_item_from_center(q)
                    
cmdchat("Handelscenter remove/ITEMS/"..INPUT[4])
                    
cmdchat("Handelscenter yangingui/"..mysql_query("SELECT * FROM player.player WHERE id = '"..pc.get_player_id().."' LIMIT 1;").handelsyang[1])
                
end
            
elseif INPUT[1]=="yangabheben" then
                local inp 
tonumber(INPUT[2])
                if 
inp==nil or inp<1 then return end
                
if inp+pc.get_money()>MAX_INVENTAR_YANG then syschat("So viel kannste nicht im Inventar haben!") return end
                
if inp>tonumber(mysql_query("SELECT handelsyang FROM player.player WHERE id = '"..pc.get_player_id().."';").handelsyang[1]) then syschat("Nicht so viel Geld im Handelscenter") return end
                pc
.change_money(inp)
                
mysql_query("UPDATE player.player SET handelsyang = handelsyang - '"..inp.."' WHERE id = '"..pc.get_player_id().."';")
                
cmdchat("Handelscenter yangingui/"..mysql_query("SELECT * FROM player.player WHERE id = '"..pc.get_player_id().."' LIMIT 1;").handelsyang[1])
            elseif 
INPUT[1]=="yangabgeben" then
                local inp 
tonumber(INPUT[2])
                if 
inp==nil or inp<1 then return end
                
if inp>pc.get_money() then syschat("So viel Yang haste nicht im Inventar!") return end
                
if inp+tonumber(mysql_query("SELECT handelsyang FROM player.player WHERE id = '"..pc.get_player_id().."';").handelsyang[1])>99999999999999 then syschat("Zu viel Yang im Handelscenter!") return end
                pc
.change_money(-inp)
                
mysql_query("UPDATE player.player SET handelsyang = handelsyang + '"..inp.."' WHERE id = '"..pc.get_player_id().."';")
                
cmdchat("Handelscenter yangingui/"..mysql_query("SELECT * FROM player.player WHERE id = '"..pc.get_player_id().."' LIMIT 1;").handelsyang[1])
            elseif 
INPUT[1]=="additem" then
                
if item.select_cell(tonumber(INPUT[2])) then -- Abfrage ob Item vorhanden 
                    
if item.get_vnum()!=tonumber(INPUT[3]) then
                        syschat
("Ein Fehler ist aufgetreten!")
                    else
                        if 
tonumber(mysql_query("SELECT count(*) FROM player.handelscenter WHERE owner_id = '"..pc.get_player_id().."';"))>20 then
                            syschat
("Du kannst nicht mehr als 20 Items ins Handelscenter legen!")
                        else
                            
local sockets = { item.get_socket(0), item.get_socket(1), item.get_socket(2), item.get_socket(3), item.get_socket(4), item.get_socket(5) }
                            
local boni = {{item.get_attr(0)}, {item.get_attr(1)}, {item.get_attr(2)}, {item.get_attr(3)}, {item.get_attr(4)}, {item.get_attr(5)}, {item.get_attr(6)}}
                            
mysql_query("INSERT INTO player.handelscenter (owner_id,name,preis,count,vnum,socket0,socket1,socket2,socket3,socket4,socket5,attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtype3,attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,attrtype6,attrvalue6,type,subtype, date) VALUES ("..(pc.get_player_id())..",'"..(pc.get_name()).."',"..((tonumber(INPUT[4])))..", "..(item.get_count())..","..(item.get_vnum())..", "..(item.get_socket(0))..", "..(item.get_socket(1))..", "..(item.get_socket(2))..", "..(item.get_socket(3))..", "..(item.get_socket(4))..", "..(item.get_socket(5))..","..(boni[1][1])..","..(boni[1][2])..","..(boni[2][1])..","..(boni[2][2])..","..(boni[3][1])..","..(boni[3][2])..","..(boni[4][1])..","..(boni[4][2])..","..(boni[5][1])..","..(boni[5][2])..","..(boni[6][1])..","..(boni[6][2])..","..(boni[7][1])..","..(boni[7][2])..", '"..item.get_type().."', '"..item.get_sub_type().."', '"..get_time().."')")
                            
item.remove()
                            
syschat("Das Item wurde erfolgreich ins Handelscenter gestellt!")
                        
end
                    end
                
else
                    
syschat("Thats not okay!")
                
end
            end
        end
        
function NumberToMoneyString(money)
            
local sourceText tostring(money)
            while 
true do
                
sourceTextstring.gsub(sourceText"^(-?%d+)(%d%d%d)""%1.%2")
                if (
k==0then
                    
break
                
end
            end
            
return sourceText
        end
        
function give_item_from_center(cen)
            
mysql_query("DELETE FROM player.handelscenter WHERE id = "..(cen.id[1])..";")
            
pc.give_item2_select(cen.vnum[1], cen.count[1])
            
item.set_value(0cen.attrtype0[1], cen.attrvalue0[1])
            
item.set_value(1cen.attrtype1[1], cen.attrvalue1[1])
            
item.set_value(2cen.attrtype2[1], cen.attrvalue2[1])
            
item.set_value(3cen.attrtype3[1], cen.attrvalue3[1])
            
item.set_value(4cen.attrtype4[1], cen.attrvalue4[1])
            
item.set_value(5cen.attrtype5[1], cen.attrvalue5[1])
            
item.set_value(6cen.attrtype6[1], cen.attrvalue6[1])
            
item.set_socket(0cen.socket0[1])
            
item.set_socket(1cen.socket1[1])
            
item.set_socket(2cen.socket2[1])
            
item.set_socket(3cen.socket3[1])
            
item.set_socket(4cen.socket4[1])
            
item.set_socket(5cen.socket5[1])
        
end
    end
end 
Das hier ist in der questlib miteingefügt
Code:
HANDELSCENTER = {}
05/13/2016 15:39 LyRockZz#4
#push
05/14/2016 00:56 gerald500#5
du sollst aus der compilten quest zeile 119 herzeigen mit der vollständigen normalen quest kann dir niemand helfen den die kann man sich auch aus kilroys thread holen....
05/17/2016 09:29 LyRockZz#6
PHP Code:
                    cmdchat("Handelscenter yangingui/"..mysql_query("SELECT * FROM player.player WHERE id = '"..pc.get_player_id().."' LIMIT 1;").handelsyang[1]) 
Das ist die Zeile 119 der compilten Quest.
05/19/2016 09:16 LyRockZz#7
#push
05/21/2016 09:24 LyRockZz#8
#push it
05/23/2016 11:55 tobbe23#9
kann es evtl sein, dass die mysql query keinen char bekommt bzw du keine items hast?
im bild steht ja attempt to compare number with nil
das könnte bedeuten, dass die db keinen char hat oder das "..pc.get_player_id().." nicht funktioniert. allerdings habe ich keine ahnung von m2 funktionen.
05/25/2016 13:01 BizepsSupportAccount#10
query stimmt nicht überein oder mysql vers is falsch