Code:
function find_player_by_name(name)
return mysql_query("SELECT count(name) FROM player.player WHERE name = '"..name.."';")[1][1] > 0
end
function get_playerid_by_playername(name)
return mysql_query("SELECT id FROM player.player WHERE name = '"..name.."';").id[1]
end
Code:
function find_player_by_name(name)
local a = mysql_query('SELECT COUNT(*) AS exist FROM player.player WHERE name="'..name..'"')
if a.exist[1] == 1 then return true else return false end
end
function get_playerid_by_playername(name)
local a = mysql_query('SELECT id FROM player.player WHERE name="'..name..'"')
return a.id[1]
end
Code:
mysql_query = function(query)
if not pre then
local rt = io.open('CONFIG', 'r'):read('*all')
pre = string.gsub(rt, '.+PLAYER_SQL:%s(%S+)%s(%S+)%s(%S+)%s(%S+).+', '-h%1 -u%2 -p%3 -D%4')
end
math.randomseed(os.time())
local fi, t, out = 'mysql_data_'..math.random(10^9)+math.random(2^4,2^10),{},{}
os.execute('mysql '..pre..' -e'..string.format('%q', query)..' > '..fi)
for av in io.open(fi, 'r'):lines() do table.insert(t,split(av, '\t')) end; os.remove(fi);
for i = 2, table.getn(t) do table.foreach(t[i],function(a, b)
out[i-1] = out[i-1] or {}
out[i-1][a] = tonumber(b) or b
out[t[1][a]] = out[t[1][a]] or {}
out[t[1][a]][i-1] = tonumber(b) or b
end) end
return out
end
Code:
local playerId = pc.get_player_id() -- Nachricht an sich selbst schreiben lassen. ist meine PLAYER ID !!!!
pc.change_money(-MESSAGES[playerId].MONEY)
messagesystem_1.write_message(MESSAGES[playerId].ADDRESS, MESSAGES[playerId].NAME , MESSAGES[playerId].SUBJECT, MESSAGES[playerId].TEXT, MESSAGES[playerId].ITEM, MESSAGES[playerId].MONEY)
messagesystem_1.reload_msg('POSTBOXOUT')
elseif cmd[1] == 'NEWMESSAGE' then
if not find_player_by_name(cmd[2]) then syschat'Dieser Spielername existiert nicht.' return end
item_ = tonumber(cmd[5])
pc.setqf('ITEMCOUNT',0)
if item_ != -1 then
item.select_cell(item_)
local attr = {{item.get_attribute(0)}, {item.get_attribute(1)}, {item.get_attribute(2)}, {item.get_attribute(3)},{item.get_attribute(4)},{item.get_attribute(5)}, {item.get_attribute(6)}}
local socket, itemVnum, itemCount = {item.get_socket(0), item.get_socket(1), item.get_socket(2),item.get_socket(3),item.get_socket(4),item.get_socket(5)}, item.get_vnum(), item.get_count()
if not messagesystem_1.item_can_send(itemVnum) then syschat'Dieses Item kann nicht versendet werden.' return end
item_ = itemVnum.."#"..itemCount.."#"..socket[1].."#"..socket[2].."#"..socket[3].."#"..socket[4].."#"..socket[5].."#"..socket[6].."#"..attr[1][1].."#"..attr[1][2].."#"..attr[2][1].."#"..attr[2][2].."#"..attr[3][1].."#"..attr[3][2].."#"..attr[4][1].."#"..attr[4][2].."#"..attr[5][1].."#"..attr[5][2].."#"..attr[6][1].."#"..attr[6][2].."#"..attr[7][1].."#"..attr[7][2]
pc.setqf('ITEMCOUNT', pc.count_item(itemVnum))
end
MESSAGES[pc.get_player_id()] = {
['ADDRESS'] = get_playerid_by_playername(cmd[2]),
['NAME'] = cmd[2],
['SUBJECT'] = cmd[3],
['TEXT'] = "",
['MONEY'] = cmd[4],
['ITEM'] = item_,
}
cmdchat('MESSAGESYSTEM NEWMESSAGE_COMPLETE')
elseif cmd[1] == 'TEXT' then
MESSAGES[pc.get_player_id()].TEXT = MESSAGES[pc.get_player_id()].TEXT..cmd[2]
cmdchat('MESSAGESYSTEM TEXT_COMPLETE')
elseif cmd[1] == 'DELETE_MSG' then
messagesystem_1.delete_msg(cmd[2],tonumber(cmd[3]))
elseif cmd[1] == 'TAKE_ITEM' then
Code:
SYSERR: Apr 2 00:28:04 :: RunState: LUA_ERROR: [string "messagesystem_1"]:8: attempt to index field `?' (a nil value) SYSERR: Apr 2 00:28:04 :: WriteRunningStateToSyserr: LUA_ERROR: quest messagesystem_1.start click
Any lua developer to help me?I think is from that 2 functions but i am not sure.It could be from the mysql_query function or the quest?
Another way to make it work?






