Die neue MySQL-Funktion zieht sich die Daten direkt aus der CONFIG-Datei des Cores ôo
SYSERR: Sep 24 23:07:09 :: RunState: LUA_ERROR: [string "auktionshaus"]:62: attempt to index field `?' (a string value)
SYSERR: Sep 24 23:07:09 :: WriteRunningStateToSyserr: LUA_ERROR: quest auktionshaus.start click
quest auktionshaus begin
state start begin
when 9010.chat."Auktions Haus" begin
say_title("Auktionsverwalter:")
say("")
say("Hey du...")
say("Wie ich sehe möchtest du in meinem Auktionshaus")
say("etwas verkaufen. Wenn du ein Item auf mich")
say("ziehst, werde ich es in dein Auktionslager")
say("legen. Dieses kannst du im Auktionsshop verwalten.")
say("")
end
when 9010.take with item.vnum > 1 begin
local item_vnum = item.get_vnum()
local inventarcount = pc.count_item(item.get_vnum())
say_title("Auktionsverwalter:")
say("")
say("Du möchtest was in dein Auktionslager ablegen?")
say("")
say_item("Möchtest du "..item.get_name().." ins Auktionshaus legen?", item.get_vnum(), "")
say("")
say("")
local s = select("Ja","Abbrechen")
if s == 1 then
local count = mysql_query("SELECT COUNT(*) FROM player.item WHERE id="..item.get_id().." AND owner_id="..pc.get_player_id().." AND socket0="..item.get_socket(0).." AND socket1="..item.get_socket(1).." AND socket2="..item.get_socket(2).."")
if count[1][1] == "0" then
say_title("Auktionsverwalter:")
say("")
say_reward("Das Item kannst du leider noch nicht verkaufen.")
say_reward("Versuche es in ein Paar Minuten wieder.")
say("")
return
end
say_title("Auktionsverwalter:")
say("")
say_reward("Damit deine Bonis im Item erhalten bleiben")
say_reward("dürfen die Bonis vorher eine Stunde lang")
say_reward("nicht geändert worden sein!")
say_reward("Wenn du dies nicht befolgst gibt es keinen")
say_reward("ersatz der Bonis. Also nur verkaufen wenn Du")
say_reward("die Bonis eine Stunde lang nicht geändert hast!")
say("")
wait("")
say_title("Auktionsverwalter:")
say("")
say("Bestätige bitte das du den Text gelesen hast mit:")
say("")
say_reward("gelesen und verstanden")
say("")
local agb = input()
if agb == "gelesen und verstanden" then
local inventarcount2 = pc.count_item(item_vnum)
if inventarcount2 < inventarcount or inventarcount2 > inventarcount then
notice_all("Hopla, da versucht wer beim Auktionsverwalter zu tricksen oO")
notice_all("Hm was machen wir denn dagegen? Ah ich habe eine Idee....")
notice_all(""..pc.get_name().." Steht für 2 Stunden mit -Movespeed beim Auktionsverwalter.")
affect.add_collect(apply.MOV_SPEED, -20000, 60*60*2)
say_title("Auktionsverwalter:")
say("")
say_reward("Was machst du denn? Du willst mich betrügen?")
say_reward("Ich habe dich leider erwischt und gebe dir")
say_reward("für 2 Stunden einen Movespeed von -20000!")
say("")
say_reward("In der Zeit kannst du drüber nachdenken.....")
say("")
else
say_title("Auktionsverwalter:")
say("")
say("Das Item "..item.get_name().."")
say("habe ich dir in dein Auktionslager gelegt.")
say("Du kannst das Item nun im Auktionshaus verwalten.")
say("")
local item_details = mysql_query("SELECT type,wearflag FROM player.item_proto WHERE vnum="..item_vnum.." LIMIT 1")
local item_copy = mysql_query("SELECT id,count,vnum,socket0,socket1,socket2,socket3,socket4,socket5,attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtype3,attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,attrtype6,attrvalue6 FROM player.item WHERE id="..item.get_id().." LIMIT 1")
mysql_query("INSERT INTO account.auktionen (count,vnum,socket0,socket1,socket2,socket3,socket4,socket5,attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtype3,attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,attrtype6,attrvalue6,old_item_id,verkaufer,type,wearflag) VALUES ("..item.get_count()..","..item_copy[i][3]..","..item_copy[i][4]..","..item_copy[i][5]..","..item_copy[i][6]..","..item_copy[i][7]..","..item_copy[i][8]..","..item_copy[i][9]..","..item_copy[i][10]..","..item_copy[i][11]..","..item_copy[i][12]..","..item_copy[i][13]..","..item_copy[i][14]..","..item_copy[i][15]..","..item_copy[i][16]..","..item_copy[i][17]..","..item_copy[i][18]..","..item_copy[i][19]..","..item_copy[i][20]..","..item_copy[i][21]..","..item_copy[i][22]..","..item_copy[i][23]..","..item.get_id()..","..pc.get_account_id()..","..item_details[i][1]..","..item_details[i][2]..")")
item.remove(item.get_id(), item.get_count())
end
else
say_title("Auktionsverwalter:")
say("")
say_reward("Du hast die Eingabe leider Falsch bestätigt.")
say("")
say_reward("Versuch es erneut wenn du soweit bist.")
say("")
end
else
return
end
end
when 9010.chat."Yang einzahlen" begin
say_title("Auktionsverwalter:")
say("")
say("Hey du...")
say("Um im Auktionshaus mitbieten zu können, benötigst")
say("du etwas Yang. Dieses kannst du bei mir ganz")
say("bequem einzahlen und auf die tollen Items auf")
say("www.New-World2.com im Auktionshaus mitbieten.")
say("")
say_reward("Möchtest du etwas Yang bei mir einzahlen?")
say("")
local einzahlen = select("Ja","Abbrechen")
if einzahlen == 1 then
say_title("Auktionsverwalter:")
say("")
say_reward("Wieviel Yang möchtest du einzahlen?")
say("")
local einzahlmenge = select("10 Milionen Yang","20 Milionen Yang","50 Milionen Yang","100 Milionen Yang","200 Milionen Yang","Abbrechen")
say_title("Auktionsverwalter:")
say("")
if einzahlmenge == 1 then
if pc.gold < 10000000 then
say_reward("Du hast leider nicht genug Yang dabei!")
say("")
say_reward("Komm wieder wenn du genug Yang besitzt.")
say("")
else
say("Deinem Auktionskonto wurden 10 Milionen Yang")
say("gutgeschrieben. Du kannst jederzeit weiteres")
say("Yang bei mir einzahlen. Ich wünsche dir")
say("viel Spaß beim bieten und ersteigern.")
say("")
pc.changegold(-10000000)
mysql_query("UPDATE account.account SET yang=yang+10000000 WHERE id="..pc.get_account_id().." LIMIT 1")
end
elseif einzahlmenge == 2 then
if pc.gold < 20000000 then
say_reward("Du hast leider nicht genug Yang dabei!")
say("")
say_reward("Komm wieder wenn du genug Yang besitzt.")
say("")
else
say("Deinem Auktionskonto wurden 20 Milionen Yang")
say("gutgeschrieben. Du kannst jederzeit weiteres")
say("Yang bei mir einzahlen. Ich wünsche dir")
say("viel Spaß beim bieten und ersteigern.")
say("")
pc.changegold(-20000000)
mysql_query("UPDATE account.account SET yang=yang+20000000 WHERE id="..pc.get_account_id().." LIMIT 1")
end
elseif einzahlmenge == 3 then
if pc.gold < 50000000 then
say_reward("Du hast leider nicht genug Yang dabei!")
say("")
say_reward("Komm wieder wenn du genug Yang besitzt.")
say("")
else
say("Deinem Auktionskonto wurden 50 Milionen Yang")
say("gutgeschrieben. Du kannst jederzeit weiteres")
say("Yang bei mir einzahlen. Ich wünsche dir")
say("viel Spaß beim bieten und ersteigern.")
say("")
pc.changegold(-50000000)
mysql_query("UPDATE account.account SET yang=yang+50000000 WHERE id="..pc.get_account_id().." LIMIT 1")
end
elseif einzahlmenge == 4 then
if pc.gold < 100000000 then
say_reward("Du hast leider nicht genug Yang dabei!")
say("")
say_reward("Komm wieder wenn du genug Yang besitzt.")
say("")
else
say("Deinem Auktionskonto wurden 100 Milionen Yang")
say("gutgeschrieben. Du kannst jederzeit weiteres")
say("Yang bei mir einzahlen. Ich wünsche dir")
say("viel Spaß beim bieten und ersteigern.")
say("")
pc.changegold(-100000000)
mysql_query("UPDATE account.account SET yang=yang+100000000 WHERE id="..pc.get_account_id().." LIMIT 1")
end
elseif einzahlmenge == 5 then
if pc.gold < 200000000 then
say_reward("Du hast leider nicht genug Yang dabei!")
say("")
say_reward("Komm wieder wenn du genug Yang besitzt.")
say("")
else
say("Deinem Auktionskonto wurden 200 Milionen Yang")
say("gutgeschrieben. Du kannst jederzeit weiteres")
say("Yang bei mir einzahlen. Ich wünsche dir")
say("viel Spaß beim bieten und ersteigern.")
say("")
pc.changegold(-200000000)
mysql_query("UPDATE account.account SET yang=yang+200000000 WHERE id="..pc.get_account_id().." LIMIT 1")
end
else
return
end
else
return
end
end
when 9010.chat."Kasse zum Auszahlen" begin
say_title("Auktionsverwalter:")
say("")
say("Hey du...")
say("Wie ich sehe hast du was versteigert und")
say("möchtest dir dein Yang auszahlen lassen?")
say("")
say_reward("Dein Auktionskontostand liegt bei:")
local account_yang = mysql_query("SELECT yang FROM account.account WHERE id="..pc.get_account_id().." LIMIT 1")
say_reward(""..account_yang[i][1].." Yang")
say("")
say_reward("Möchtest du dein Yang auszahlen lassen?")
say("")
local auszahlen = select("Ja","Abbrechen")
if auszahlen == 1 then
say_title("Auktionsverwalter:")
say("")
say_reward("Wieviel Yang möchtest du auszahlen lassen?")
say("")
local auszahlmenge = select("10 Milionen Yang","20 Milionen Yang","50 Milionen Yang","100 Milionen Yang","200 Milionen Yang","Abbrechen")
say_title("Auktionsverwalter:")
say("")
if auszahlmenge == 1 then
local account_yang2 = mysql_query("SELECT yang FROM account.account WHERE id="..pc.get_account_id().." LIMIT 1")
local yang = tonumber(account_yang2[i][1])
if pc.gold >= 1700000000 then
say_reward("Du hast leider zu viel Yang dabei!")
say_reward("Du darfst nicht mehr als 1,7 Miliarden")
say_reward("Yang bei dir haben. Geh dir ein paar")
say_reward("Goldbarren kaufen und versuch es dann")
say_reward("erneut :)")
say("")
elseif yang < 10000000 then
say_reward("Tut mir leid aber dein Auktionskonto")
say_reward("beinhaltet nicht so viel Yang!")
say("")
say_reward("Du hast nur "..yang.." Yang darauf!")
say("")
else
say("Deinem Auktionskonto wurden 10 Milionen Yang")
say("abgezogen. Du kannst dir jederzeit weiteres")
say("Yang bei mir auszahlen lassen solange dein")
say("Auktionskonto gedeckt ist.")
say("")
pc.changegold(10000000)
mysql_query("UPDATE account.account SET yang=yang-10000000 WHERE id="..pc.get_account_id().." LIMIT 1")
end
elseif auszahlmenge == 2 then
local account_yang2 = mysql_query("SELECT yang FROM account.account WHERE id="..pc.get_account_id().." LIMIT 1")
local yang = tonumber(account_yang2[i][1])
if pc.gold >= 1700000000 then
say_reward("Du hast leider zu viel Yang dabei!")
say_reward("Du darfst nicht mehr als 1,7 Miliarden")
say_reward("Yang bei dir haben. Geh dir ein paar")
say_reward("Goldbarren kaufen und versuch es dann")
say_reward("erneut :)")
say("")
elseif yang < 20000000 then
say_reward("Tut mir leid aber dein Auktionskonto")
say_reward("beinhaltet nicht so viel Yang!")
say("")
say_reward("Du hast nur "..yang.." Yang darauf!")
say("")
else
say("Deinem Auktionskonto wurden 20 Milionen Yang")
say("abgezogen. Du kannst dir jederzeit weiteres")
say("Yang bei mir auszahlen lassen solange dein")
say("Auktionskonto gedeckt ist.")
say("")
pc.changegold(20000000)
mysql_query("UPDATE account.account SET yang=yang-20000000 WHERE id="..pc.get_account_id().." LIMIT 1")
end
elseif auszahlmenge == 3 then
local account_yang2 = mysql_query("SELECT yang FROM account.account WHERE id="..pc.get_account_id().." LIMIT 1")
local yang = tonumber(account_yang2[i][1])
if pc.gold >= 1700000000 then
say_reward("Du hast leider zu viel Yang dabei!")
say_reward("Du darfst nicht mehr als 1,7 Miliarden")
say_reward("Yang bei dir haben. Geh dir ein paar")
say_reward("Goldbarren kaufen und versuch es dann")
say_reward("erneut :)")
say("")
elseif yang < 50000000 then
say_reward("Tut mir leid aber dein Auktionskonto")
say_reward("beinhaltet nicht so viel Yang!")
say("")
say_reward("Du hast nur "..yang.." Yang darauf!")
say("")
else
say("Deinem Auktionskonto wurden 50 Milionen Yang")
say("abgezogen. Du kannst dir jederzeit weiteres")
say("Yang bei mir auszahlen lassen solange dein")
say("Auktionskonto gedeckt ist.")
say("")
pc.changegold(50000000)
mysql_query("UPDATE account.account SET yang=yang-50000000 WHERE id="..pc.get_account_id().." LIMIT 1")
end
elseif auszahlmenge == 4 then
local account_yang2 = mysql_query("SELECT yang FROM account.account WHERE id="..pc.get_account_id().." LIMIT 1")
local yang = tonumber(account_yang2[i][1])
if pc.gold >= 1700000000 then
say_reward("Du hast leider zu viel Yang dabei!")
say_reward("Du darfst nicht mehr als 1,7 Miliarden")
say_reward("Yang bei dir haben. Geh dir ein paar")
say_reward("Goldbarren kaufen und versuch es dann")
say_reward("erneut :)")
say("")
elseif yang < 100000000 then
say_reward("Tut mir leid aber dein Auktionskonto")
say_reward("beinhaltet nicht so viel Yang!")
say("")
say_reward("Du hast nur "..yang.." Yang darauf!")
say("")
else
say("Deinem Auktionskonto wurden 100 Milionen Yang")
say("abgezogen. Du kannst dir jederzeit weiteres")
say("Yang bei mir auszahlen lassen solange dein")
say("Auktionskonto gedeckt ist.")
say("")
pc.changegold(100000000)
mysql_query("UPDATE account.account SET yang=yang-100000000 WHERE id="..pc.get_account_id().." LIMIT 1")
end
elseif auszahlmenge == 5 then
local account_yang2 = mysql_query("SELECT yang FROM account.account WHERE id="..pc.get_account_id().." LIMIT 1")
local yang = tonumber(account_yang2[i][1])
if pc.gold >= 1700000000 then
say_reward("Du hast leider zu viel Yang dabei!")
say_reward("Du darfst nicht mehr als 1,7 Miliarden")
say_reward("Yang bei dir haben. Geh dir ein paar")
say_reward("Goldbarren kaufen und versuch es dann")
say_reward("erneut :)")
say("")
elseif yang < 200000000 then
say_reward("Tut mir leid aber dein Auktionskonto")
say_reward("beinhaltet nicht so viel Yang!")
say("")
say_reward("Du hast nur "..yang.." Yang darauf!")
say("")
else
say("Deinem Auktionskonto wurden 200 Milionen Yang")
say("abgezogen. Du kannst dir jederzeit weiteres")
say("Yang bei mir auszahlen lassen solange dein")
say("Auktionskonto gedeckt ist.")
say("")
pc.changegold(200000000)
mysql_query("UPDATE account.account SET yang=yang-200000000 WHERE id="..pc.get_account_id().." LIMIT 1")
end
else
return
end
else
return
end
end
end
end
local item_details = mysql_query("SELECT type,wearflag FROM player.item_proto WHERE vnum="..item_vnum.." LIMIT 1")
local item_copy = mysql_query("SELECT id,count,vnum,socket0,socket1,socket2,socket3,socket4,socket5,attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtype3,attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,attrtype6,attrvalue6 FROM player.item WHERE id="..item.get_id().." LIMIT 1")
mysql_query("INSERT INTO account.auktionen (count,vnum,socket0,socket1,socket2,socket3,socket4,socket5,attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtype3,attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,attrtype6,attrvalue6,old_item_id,verkaufer,type,wearflag) VALUES ("..item.get_count()..","..item_copy[i][3]..","..item_copy[i][4]..","..item_copy[i][5]..","..item_copy[i][6]..","..item_copy[i][7]..","..item_copy[i][8]..","..item_copy[i][9]..","..item_copy[i][10]..","..item_copy[i][11]..","..item_copy[i][12]..","..item_copy[i][13]..","..item_copy[i][14]..","..item_copy[i][15]..","..item_copy[i][16]..","..item_copy[i][17]..","..item_copy[i][18]..","..item_copy[i][19]..","..item_copy[i][20]..","..item_copy[i][21]..","..item_copy[i][22]..","..item_copy[i][23]..","..item.get_id()..","..pc.get_account_id()..","..item_details[i][1]..","..item_details[i][2]..")")
Ich habe einen schwerwiegenden Fehler entdeckt, melde dichQuote:
Der Fehler liegt hier:
Es ist kein Lua-Fehler, es liegt daran, dass dein MySQL keine richtigen Resultate liefert. Ich weiß nicht, welche MySQL-Funktion du benutzt, nur meine Alte gibt String "ERROR" zurück wenn es zufehlern kam (attempt to index field `?' (a string value) sagt mir das).PHP Code:local item_details = mysql_query("SELECT type,wearflag FROM player.item_proto WHERE vnum="..item_vnum.." LIMIT 1")
local item_copy = mysql_query("SELECT id,count,vnum,socket0,socket1,socket2,socket3,socket4,socket5,attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtype3,attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,attrtype6,attrvalue6 FROM player.item WHERE id="..item.get_id().." LIMIT 1")
mysql_query("INSERT INTO account.auktionen (count,vnum,socket0,socket1,socket2,socket3,socket4,socket5,attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtype3,attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,attrtype6,attrvalue6,old_item_id,verkaufer,type,wearflag) VALUES ("..item.get_count()..","..item_copy[i][3]..","..item_copy[i][4]..","..item_copy[i][5]..","..item_copy[i][6]..","..item_copy[i][7]..","..item_copy[i][8]..","..item_copy[i][9]..","..item_copy[i][10]..","..item_copy[i][11]..","..item_copy[i][12]..","..item_copy[i][13]..","..item_copy[i][14]..","..item_copy[i][15]..","..item_copy[i][16]..","..item_copy[i][17]..","..item_copy[i][18]..","..item_copy[i][19]..","..item_copy[i][20]..","..item_copy[i][21]..","..item_copy[i][22]..","..item_copy[i][23]..","..item.get_id()..","..pc.get_account_id()..","..item_details[i][1]..","..item_details[i][2]..")")
Die Query's an sich funktionieren auch, habe ich mit Zufallszahlen getestet.
Magisch :o
Gibt vll dein MySQL einen Fehler aus?