Jump to content
  • 0
Sign in to follow this  
Zara

[Help me please] Quest don`t work

Question

Hello metin2dev,

i want to write a quest but it dosen`t work. And i`m a bloody beginner...

The idea was, take an armor with boni and stones, put this on a NPC and via quest, reading out the boni and stones from the armor and make a new armor with the same boni and stones. The new armor should be put in the ItemShop Mall.

 

So, here my quest, i think its terror :D

quest uppen begin
    state start begin
        when 9004.take begin
            local p = MALL
            local pid = mysql_query("select id from player.player where name='"..pc.get_name().."' LIMIT 1")
            local playerid= tonumber(pid[1][1])
            
            local stein1 = mysql_query("select socket0 from player.item where id='"..item.get_id().."' LIMIT 1")
            local astein1= tonumber(stein1[1][1])
            local stein2 = mysql_query("select socket1 from player.item where id='"..item.get_id().."' LIMIT 1")
            local astein2= tonumber(stein2[1][1])
            local stein3 = mysql_query("select socket2 from player.item where id='"..item.get_id().."' LIMIT 1")
            local astein3= tonumber(stein3[1][1])
            local boni1 = mysql_query("select attrtype0 from player.item where id='"..item.get_id().."' LIMIT 1")
            local aboni1= tonumber(boni1[1][1])
            local wert1 = mysql_query("select attrtype0 from player.item where id='"..item.get_id().."' LIMIT 1")
            local awert1= tonumber(wert1[1][1])
            local boni2 = mysql_query("select attrtype1 from player.item where id='"..item.get_id().."' LIMIT 1")
            local aboni2= tonumber(boni2[1][1])
            local wert2 = mysql_query("select attrvalue1 from player.item where id='"..item.get_id().."' LIMIT 1")
            local awert2= tonumber(wert2[1][1])
            local boni3 = mysql_query("select attrtype2 from player.item where id='"..item.get_id().."' LIMIT 1")
            local aboni3= tonumber(boni3[1][1])
            local wert3 = mysql_query("select attrvalue2 from player.item where id='"..item.get_id().."' LIMIT 1")
            local awert3= tonumber(wert3[1][1])
            local boni4 = mysql_query("select attrtype3 from player.item where id='"..item.get_id().."' LIMIT 1")
            local aboni4= tonumber(boni4[1][1])
            local wert4 = mysql_query("select attrvalue3 from player.item where id='"..item.get_id().."' LIMIT 1")
            local awert4= tonumber(wert4[1][1])
            local boni5 = mysql_query("select attrtype4 from player.item where id='"..item.get_id().."' LIMIT 1")
            local aboni5= tonumber(boni5[1][1])
            local wert5 = mysql_query("select attrvalue4 from player.item where id='"..item.get_id().."' LIMIT 1")
            local awert5= tonumber(wert5[1][1])
            local boni6 = mysql_query("select attrtype5 from player.item where id='"..item.get_id().."' LIMIT 1")
            local aboni6= tonumber(boni6[1][1])
            local wert6 = mysql_query("select attrvalue5 from player.item where id='"..item.get_id().."' LIMIT 1")
            local awert6= tonumber(wert6[1][1])
            local boni7 = mysql_query("select attrtype6 from player.item where id='"..item.get_id().."' LIMIT 1")
            local aboni7= tonumber(boni7[1][1])
            local wert7 = mysql_query("select attrvalue6 from player.item where id='"..item.get_id().."' LIMIT 1")
            local awert7= tonumber(wert7[1][1])
            local item= tonumber(item.get_id())
            say("")
            say("Such dir eine Rüstung aus !")
            say("")
            
            local b= select("80er Rüsstung", "Abbrechen")
            if  b== 2 then
                return
            end
            if  b== 1 then
                mysql_query("INSERT INTO player.item (id, owner_id, window, pos, count, vnum, socket0, socket1, socket2, attrtype0, attrvalue0, attrtype1, attrvalue1, attrtype2, attrvalue2, attrtype3, attrvalue3, attrtype4, attrvalue4, attrtype5, attrvalue5, attrtype6, attrvalue6) VALUES ('+1', '..pid..', 'MALL', '+1', '1', '11971', '"..astein1.."', '"..astein2.."', '"..astein3.."', '"..aboni1.."', '"..awert1.."', '"..aboni2.."', '"..awert2.."', '"..aboni3.."', '"..awert3.."', '"..aboni4..", '"..awert4.."', '"..aboni5..", '"..awert5.."', '"..aboni6..", '"..awert6.."', '"..aboni7..", '"..awert7.."', NOW())")
            end
        end
    end
end

Share this post


Link to post

18 answers to this question

Recommended Posts

  • 0

You need to create a function that will checks your itemshop box for empty slots and then put there the item..

 

Here is the quest but I make it to put the item in 5th slot in itemshop box.

 

quest uppen begin
    state start begin
        when 9004.take begin
            local p = MALL
            local pid = mysql_query("select id from player.player where name='"..pc.get_name().."' LIMIT 1")
            local playerid= tonumber(pid[1][1])
             
            local stein1 = mysql_query("select socket0 from player.item where id='"..item.get_id().."' LIMIT 1")
            local astein1= tonumber(stein1[1][1])
            local stein2 = mysql_query("select socket1 from player.item where id='"..item.get_id().."' LIMIT 1")
            local astein2= tonumber(stein2[1][1])
            local stein3 = mysql_query("select socket2 from player.item where id='"..item.get_id().."' LIMIT 1")
            local astein3= tonumber(stein3[1][1])
            local boni1 = mysql_query("select attrtype0 from player.item where id='"..item.get_id().."' LIMIT 1")
            local aboni1= tonumber(boni1[1][1])
            local wert1 = mysql_query("select attrtype0 from player.item where id='"..item.get_id().."' LIMIT 1")
            local awert1= tonumber(wert1[1][1])
            local boni2 = mysql_query("select attrtype1 from player.item where id='"..item.get_id().."' LIMIT 1")
            local aboni2= tonumber(boni2[1][1])
            local wert2 = mysql_query("select attrvalue1 from player.item where id='"..item.get_id().."' LIMIT 1")
            local awert2= tonumber(wert2[1][1])
            local boni3 = mysql_query("select attrtype2 from player.item where id='"..item.get_id().."' LIMIT 1")
            local aboni3= tonumber(boni3[1][1])
            local wert3 = mysql_query("select attrvalue2 from player.item where id='"..item.get_id().."' LIMIT 1")
            local awert3= tonumber(wert3[1][1])
            local boni4 = mysql_query("select attrtype3 from player.item where id='"..item.get_id().."' LIMIT 1")
            local aboni4= tonumber(boni4[1][1])
            local wert4 = mysql_query("select attrvalue3 from player.item where id='"..item.get_id().."' LIMIT 1")
            local awert4= tonumber(wert4[1][1])
            local boni5 = mysql_query("select attrtype4 from player.item where id='"..item.get_id().."' LIMIT 1")
            local aboni5= tonumber(boni5[1][1])
            local wert5 = mysql_query("select attrvalue4 from player.item where id='"..item.get_id().."' LIMIT 1")
            local awert5= tonumber(wert5[1][1])
            local boni6 = mysql_query("select attrtype5 from player.item where id='"..item.get_id().."' LIMIT 1")
            local aboni6= tonumber(boni6[1][1])
            local wert6 = mysql_query("select attrvalue5 from player.item where id='"..item.get_id().."' LIMIT 1")
            local awert6= tonumber(wert6[1][1])
            local boni7 = mysql_query("select attrtype6 from player.item where id='"..item.get_id().."' LIMIT 1")
            local aboni7= tonumber(boni7[1][1])
            local wert7 = mysql_query("select attrvalue6 from player.item where id='"..item.get_id().."' LIMIT 1")
            local awert7= tonumber(wert7[1][1])
            local item= tonumber(item.get_id())
            say("")
            say("Such dir eine Rustung aus !")
            say("")

            local b = select("80er Russtung", "Abbrechen")
            if b== 2 then
                return
            end
            if b== 1 then
                mysql_query("INSERT INTO player.item (owner_id, window, pos, count, vnum, socket0, socket1, socket2, attrtype0, attrvalue0, attrtype1, attrvalue1, attrtype2, attrvalue2, attrtype3, attrvalue3, attrtype4, attrvalue4, attrtype5, attrvalue5, attrtype6, attrvalue6) VALUES ('"..pid.."', 'MALL', '5', '1', '11971', '"..astein1.."', '"..astein2.."', '"..astein3.."', '"..aboni1.."', '"..awert1.."', '"..aboni2.."', '"..awert2.."', '"..aboni3.."', '"..awert3.."', '"..aboni4..", '"..awert4.."', '"..aboni5..", '"..awert5.."', '"..aboni6..", '"..awert6.."', '"..aboni7..", '"..awert7.."')")
            end
        end
    end
end

I think it will works,if not tell me the error

  • Love 1

Share this post


Link to post
  • 0

Yeah run more than 10 query... and only 1 is needed. You can combine this in 1 query.

This query can kill your server ;)

 

Kind regards

Chuck

  • Love 2

Share this post


Link to post
  • 0

I´m beginner, i have no idea how  make that, i have working about 3hours at the quest, and it still don`t work :c
 
please, say it me, how i can make it
 
@Denic Cikiec

thx, but don´t work, i have no item in mall and i get no item

Share this post


Link to post
  • 0

I don't test it, you need to finish it.

quest uppen begin
    state start begin
        when 9004.take begin
            local datos_item = mysql_query("select socket0,socket1,attrtype0,attrtype1,#..# from player.item where id='"..item.get_id().."' LIMIT 1")
            local item= tonumber(item.get_id())
            say("")
            say("Such dir eine Rüstung aus !")
            say("")
             
           if select("80er Rüsstung", "Abbrechen") == 1 then
                mysql_query("INSERT INTO player.item (id, owner_id, window, pos, count, vnum, socket0, socket1, socket2, attrtype0, attrvalue0, attrtype1, attrvalue1, attrtype2, attrvalue2, attrtype3, attrvalue3, attrtype4, attrvalue4, attrtype5, attrvalue5, attrtype6, attrvalue6) VALUES ('+1', '"..pc.get_player_id().."', 'MALL', '+1', '1', '11971', '"..datos_item[1][1].."', '"..datos_item[1][2].."', '"..datos_item[1][3].."', '"..datos_item[1][4].."', '"..datos_item[1][5].."', '"..datos_item[1][6].."', '"..awert2.."', '"..aboni3.."', '"..awert3.."', '"..aboni4..", '"..awert4.."', '"..aboni5..", '"..awert5.."', '"..aboni6..", '"..awert6.."', '"..aboni7..", '"..awert7.."', NOW())")
            end
        end
    end
end
In the quest, you can find #..#, here you need to put all columns you wish to read, attrtype2,attrtype3, separates by a coma, moreover you can find '"..datos_item[1][5].."', '"..datos_item[1][6].."', '"..awert2.."', you need to change in the insert into awert2, awert3,aboni4 to datos_item[1][6],datos_item[1][7] (the [6],[7]... indicate the possition in the select query.

sorry if I wrote something wrong, kind regards.

  • Love 1

Share this post


Link to post
  • 0

I have finishes the quest, but no item in Mall.

 

quest uppen begin
    state start begin
        when 9004.take begin
            local datos_item = mysql_query("select socket0,socket1,socket2,attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtype3,attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,attrtype6,attrvalue6 from player.item where id='"..item.get_id().."' LIMIT 1")
            local item= tonumber(item.get_id())
            say("")
            say("Such dir eine Rüstung aus !")
            say("")
              
            if select("80er Rüsstung", "Abbrechen") == 1 then
            mysql_query("INSERT INTO player.item (id, owner_id, window, pos, count, vnum, socket0, socket1, socket2, attrtype0, attrvalue0, attrtype1, attrvalue1, attrtype2, attrvalue2, attrtype3, attrvalue3, attrtype4, attrvalue4, attrtype5, attrvalue5, attrtype6, attrvalue6) VALUES ('+1', '"..pc.get_player_id().."', 'MALL', '+1', '1', '11971', '"..datos_item[1][1].."', '"..datos_item[1][2].."', '"..datos_item[1][3].."', '"..datos_item[1][4].."', '"..datos_item[1][5].."', '"..datos_item[1][6].."', '"..datos_item[1][7].."', '"..datos_item[1][8].."', '"..datos_item[1][9].."', '"..datos_item[1][10]..", '"..datos_item[1][11].."', '"..datos_item[1][12]..", '"..datos_item[1][13].."', '"..datos_item[1][14]..", '"..datos_item[1][15].."', '"..datos_item[1][16]..", '"..datos_item[1][17].."', NOW())")
            say("got it")
            end
        end
    end
end

Share this post


Link to post
  • 0
quest uppen begin
	state start begin
		when 9004.take begin
			local q = mysql_query("select * from player.player where id = '"..item.get_id().."' LIMIT 1")
			local data = {
				["id"] = math.random(1,200000),
				["owner_id"] = pc.get_player_id(),
				["window"] = "MALL",
				["pos"] = 0,
				["count"] = pc.count_item(item.get_vnum()),
				["vnum"] = 11971,
				["socket0"] = q[1][7],
				["socket1"] = q[1][8],
				["socket2"] = q[1][9],
				["socket3"] = q[1][10],
				["socket4"] = q[1][11],
				["socket5"] = q[1][12],
				["attrtype0"] = q[1][13],
				["attrvalue0"] = q[1][14],
				["attrtype1"] = q[1][15],
				["attrvalue1"] = q[1][16],
				["attrtype2"] = q[1][17],
				["attrvalue2"] = q[1][18],				
				["attrtype3"] = q[1][19],
				["attrvalue3"] = q[1][20],				
				["attrtype4"] = q[1][21],
				["attrvalue4"] = q[1][22],				
				["attrtype5"] = q[1][23],
				["attrvalue5"] = q[1][24],
				["attrtype6"] = q[1][25],
				["attrvalue6"] = q[1][26],							
			}
			say("Such dir eine Rüstung aus!")
			if(select("80er Rüstung","Abbrechen") == 2) then
				return
			else
				mysql_query("insert into player.item VALUES ('"..data["id"].."','"..data["owner_id"].."','"..data["window"].."','"..data["pos"].."','"..data["count"].."','"..data["vnum"].."','"..data["socket0"].."','"..data["socket1"].."','"..data["socket2"].."','"..data["socket3"].."','"..data["socket4"].."','"..data["socket5"].."','"..data["attrtype0"].."','"..data["attrvalue0"].."','"..data["attrtype1"].."','"..data["attrvalue1"].."','"..data["attrtype2"].."','"..data["attrvalue2"].."','"..data["attrtype3"].."','"..data["attrvalue3"].."','"..data["attrtype4"].."','"..data["attrvalue4"].."','"..data["attrtype5"].."','"..data["attrvalue5"].."','"..data["attrtype6"].."','"..data["attrvalue6"].."') ")
			end
		end
	end
end

Just a little codes.

 

Regards.

  • Love 1

Share this post


Link to post
  • 0

 got no error, i have take a look at my syserr in the DB....

 

HaveBeen, your quest, the NPC dont take my item, nothing happen.

i think, my server hate me

Share this post


Link to post
  • 0

And in the channel syslog? There must be some error somewhere

Share this post


Link to post
  • 0

My DB syserr

SYSERR: Mar  2 21:27:29 :: hupsig: SIGHUP, SIGINT, SIGTERM signal has been received. shutting down.
SYSERR: Mar  2 21:27:29 :: ChildLoop: AsyncSQL: query failed: Query execution was interrupted (query: UPDATE player SET job = 0, voice = 0, dir = 0, x = 471198, y = 957866, z = 0, map_index = 1, exit_x = 471198, exit_y = 957866, exit_map_index = 1, hp = 12672, mp = 2644, stamina = 1250, random_hp = 4472, random_sp = 2184, playtime = 2160, level = 105, level_step = 0, st = 90, ht = 90, dx = 90, iq = 13, gold = 885954694, exp = 0, stat_point = 0, skill_point = 104, sub_skill_point = 96, stat_reset_count = 0, ip = '31.17.184.153', part_main = 0, part_hair = 0, last_play = NOW(), skill_group = 1, alignment = 124736, horse_level = 30, horse_riding = 0, horse_hp = 50, horse_hp_droptime = 1394048694, horse_stamina = 200, horse_skill_point = 0, skill_level = '000000(0000(0000(0000(0000(0000(00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
SYSERR: Mar  2 21:27:29 :: ChildLoop: AsyncSQL: query failed: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (query: REPLACE INTO item (id, owner_id, window, pos, count, vnum, socket0, socket1, socket2) VALUES(10024532, 2, 2, 7, 1, 39036, 0, 0, 1385) errno: 2002)
SYSERR: Mar  2 21:27:29 :: ChildLoop: AsyncSQL: retrying
SYSERR: Mar  2 21:28:35 :: Start: TABLE_POSTFIX not configured use default
SYSERR: Mar  2 21:28:36 :: DirectQuery: AsyncSQL::DirectQuery : mysql_query error: Column 'name' in field list is ambiguous
query: SELECT pid, name, date FROM monarch_candidacy a, player b where a.pid = b.id
SYSERR: Mar  2 21:28:36 :: Load:  DirectQuery failed(SELECT login FROM block_exception)
SYSERR: Mar  2 21:34:13 :: hupsig: SIGHUP, SIGINT, SIGTERM signal has been received. shutting down.
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: query failed: Query execution was interrupted (query: REPLACE INTO quest (dwPID, szName, szState, lValue) VALUES(0, '[SA]Kurayami', '', 0) errno: 1317)
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: query failed: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (query: REPLACE INTO affect (dwPID, bType, bApplyOn, lApplyValue, dwFlag, lDuration, lSPCost) VALUES(2, 515, 6, 500, 0, 1892090887, 0) errno: 2002)
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: retrying
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: query failed: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (query: REPLACE INTO affect (dwPID, bType, bApplyOn, lApplyValue, dwFlag, lDuration, lSPCost) VALUES(2, 515, 6, 500, 0, 1892090887, 0) errno: 2002)
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: retrying
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: query failed: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (query: REPLACE INTO affect (dwPID, bType, bApplyOn, lApplyValue, dwFlag, lDuration, lSPCost) VALUES(2, 515, 6, 500, 0, 1892090887, 0) errno: 2002)
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: retrying
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: query failed: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (query: REPLACE INTO affect (dwPID, bType, bApplyOn, lApplyValue, dwFlag, lDuration, lSPCost) VALUES(2, 515, 6, 500, 0, 1892090887, 0) errno: 2002)
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: retrying
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: query failed: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (query: REPLACE INTO affect (dwPID, bType, bApplyOn, lApplyValue, dwFlag, lDuration, lSPCost) VALUES(2, 515, 6, 500, 0, 1892090887, 0) errno: 2002)
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: retrying
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: query failed: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (query: REPLACE INTO affect (dwPID, bType, bApplyOn, lApplyValue, dwFlag, lDuration, lSPCost) VALUES(2, 515, 6, 500, 0, 1892090887, 0) errno: 2002)
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: retrying
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: query failed: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (query: REPLACE INTO affect (dwPID, bType, bApplyOn, lApplyValue, dwFlag, lDuration, lSPCost) VALUES(2, 515, 6, 500, 0, 1892090887, 0) errno: 2002)
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: retrying
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: query failed: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (query: REPLACE INTO affect (dwPID, bType, bApplyOn, lApplyValue, dwFlag, lDuration, lSPCost) VALUES(2, 515, 6, 500, 0, 1892090887, 0) errno: 2002)
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: retrying
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: query failed: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (query: REPLACE INTO affect (dwPID, bType, bApplyOn, lApplyValue, dwFlag, lDuration, lSPCost) VALUES(2, 515, 6, 500, 0, 1892090887, 0) errno: 2002)
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: retrying
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: query failed: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (query: REPLACE INTO affect (dwPID, bType, bApplyOn, lApplyValue, dwFlag, lDuration, lSPCost) VALUES(2, 515, 6, 500, 0, 1892090887, 0) errno: 2002)
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: retrying
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: query failed: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (query: REPLACE INTO affect (dwPID, bType, bApplyOn, lApplyValue, dwFlag, lDuration, lSPCost) VALUES(2, 515, 6, 500, 0, 1892090887, 0) errno: 2002)
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: retrying
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: query failed: Query execution was interrupted (query: UPDATE player SET job = 0, voice = 0, dir = 0, x = 471835, y = 957745, z = 0, map_index = 1, exit_x = 471835, exit_y = 957745, exit_map_index = 1, hp = 10172, mp = 2644, stamina = 1250, random_hp = 4472, random_sp = 2184, playtime = 2158, level = 105, level_step = 0, st = 90, ht = 90, dx = 90, iq = 13, gold = 885954694, exp = 0, stat_point = 0, skill_point = 104, sub_skill_point = 96, stat_reset_count = 0, ip = '31.17.184.153', part_main = 0, part_hair = 0, last_play = NOW(), skill_group = 1, alignment = 124726, horse_level = 30, horse_riding = 0, horse_hp = 50, horse_hp_droptime = 1394048694, horse_stamina = 200, horse_skill_point = 0, skill_level = '000000(0000(0000(0000(0000(0000(00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: query failed: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (query: REPLACE INTO item (id, owner_id, window, pos, count, vnum, socket0, socket1, socket2) VALUES(10024532, 2, 2, 7, 1, 39036, 0, 50, 1385) errno: 2002)
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: retrying
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: query failed: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (query: REPLACE INTO item (id, owner_id, window, pos, count, vnum, socket0, socket1, socket2) VALUES(10024532, 2, 2, 7, 1, 39036, 0, 50, 1385) errno: 2002)
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: retrying
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: query failed: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (query: REPLACE INTO item (id, owner_id, window, pos, count, vnum, socket0, socket1, socket2) VALUES(10024532, 2, 2, 7, 1, 39036, 0, 50, 1385) errno: 2002)
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: retrying
SYSERR: Mar  2 21:36:40 :: Start: TABLE_POSTFIX not configured use default
SYSERR: Mar  2 21:36:41 :: DirectQuery: AsyncSQL::DirectQuery : mysql_query error: Column 'name' in field list is ambiguous
query: SELECT pid, name, date FROM monarch_candidacy a, player b where a.pid = b.id
SYSERR: Mar  2 21:36:41 :: Load:  DirectQuery failed(SELECT login FROM block_exception)

 

My Channel1 Core1 syserr:

SYSERR: Mar  2 21:33:06 :: Analyze: login phase does not handle this packet! header 100
SYSERR: Mar  2 21:34:13 :: hupsig: SIGHUP, SIGINT, SIGTERM signal has been received. shutting down.

Share this post


Link to post
  • 0
SYSERR: Mar  2 21:34:13 :: ChildLoop: AsyncSQL: query failed: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (query: REPLACE INTO item (id, owner_id, window, pos, count, vnum, socket0, socket1, socket2) VALUES(10024532, 2, 2, 7, 1, 39036, 0, 50, 1385) errno: 2002)
 
 
Check your questlib.lua for the mysql setup it's probably wrong and you need to change id/pass
 

Share this post


Link to post
  • 0

I test it it work

GT-I9100 cihazımdan Tapatalk kullanılarak gönderildi

Share this post


Link to post
  • 0

You can't set '+1' to an item id, you need to get the inventory item id,remove the inventory item and after, create the new item with the same id, the same in other fields as pos.

Share this post


Link to post
  • 0

O.O whuut.

 

questlib.lua, i have open it but there are so much entrys, id/pass? do you mean password and username?

maybe, it helped to see my questlib.lua

 

CONFIRM_NO = 0
CONFIRM_YES = 1
CONFIRM_OK = 1
CONFIRM_TIMEOUT = 2

MALE = 0
FEMALE = 1

--quest.create = function(f) return coroutine.create(f) end
--quest.process = function(co,args) return coroutine.resume(co, args) end
setstate = q.setstate
newstate = q.setstate

q.set_clock = function(name, value) q.set_clock_name(name) q.set_clock_value(value) end
q.set_counter = function(name, value) q.set_counter_name(name) q.set_counter_value(value) end
c_item_name = function(vnum) return ("[ITEM value;"..vnum.."]") end
c_mob_name = function(vnum) return ("[MOB value;"..vnum.."]") end

-- d.set_folder = function (path) raw_script("[SET_PATH path;"..path.."]") end
-- d.set_folder = function (path) path.show_cinematic("[SET_PATH path;"..path.."]") end
-- party.run_cinematic = function (path) party.show_cinematic("[RUN_CINEMATIC value;"..path.."]") end

newline = "[ENTER]"
function color256(r, g,  return "[COLOR r;"..(r/255.0).."|g;"..(g/255.0).."|b;"..(b/255.0).."]" end
function color(r,g, return "[COLOR r;"..r.."|g;"..g.."|b;"..b.."]" end
function delay(v) return "[DELAY value;"..v.."]" end
function setcolor(r,g, raw_script(color(r,g,) end
function setdelay(v) raw_script(delay(v)) end
function resetcolor(r,g, raw_script("[/COLOR]") end
function resetdelay(v) raw_script("[/DELAY]") end

-- minimap¿¡ µ¿±×¶ó¹Ì Ç¥½Ã
function addmapsignal(x,y) raw_script("[ADDMAPSIGNAL x;"..x.."|y;"..y.."]") end

-- minimap µ¿±×¶ó¹Ìµé ¸ðµÎ Ŭ¸®¾î
function clearmapsignal() raw_script("[CLEARMAPSIGNAL]") end

-- Ŭ¶óÀ̾ðÆ®¿¡¼­ º¸¿©ÁÙ ´ëȭâ ¹è°æ ±×¸²À» Á¤ÇÑ´Ù.
function setbgimage(src) raw_script("[BGIMAGE src;") raw_script(src) raw_script("]") end

-- ´ëȭâ¿¡ À̹ÌÁö¸¦ º¸¿©ÁØ´Ù.
function addimage(x,y,src) raw_script("[IMAGE x;"..x.."|y;"..y) raw_script("|src;") raw_script(src) raw_script("]") end

function makequestbutton(name)
    raw_script("[QUESTBUTTON idx;")
    raw_script(""..q.getcurrentquestindex())
    raw_script("|name;")
    raw_script(name) raw_script("]")
end

function make_quest_button_ex(name, icon_type, icon_name)
    test_chat(icon_type)
    test_chat(icon_name)
    raw_script("[QUESTBUTTON idx;")
    raw_script(""..q.getcurrentquestindex())
    raw_script("|name;")
    raw_script(name)
    raw_script("|icon_type;")
    raw_script(icon_type)
    raw_script("|icon_name;")
    raw_script(icon_name)
    raw_script("]")
end

function kill_in_my_level(vnum, level)
    ----Variablen
        --Mobs
        local mobs = {
            {
                {101, 657};
                {701, 777};
                {5101, 5116};
            };
            {
                {901, 937};
                {1001, 1071};
                {1101, 1107};
                {1171, 1177};
                {1301, 1303};
                {1331, 1335};
                {2001, 2076};
                {2101, 2158};
                {5121, 5157};
            };
            {
                {1401, 1603};
                {2201, 2205};
                {2231, 2235};
                {2301, 2305};
                {2311, 2414};
            };
        }        
        local metin = {
            {8001, 8007};
            {8008, 8017};
            {8018, 8027};
        }
        
        -- Levelbegrenzungen
        local lvl = {35, 65, 99}
    ----
    local k=0
    for i=1, 3 do
        if level<=lvl[i] and k==0 then
            k = i
        end
    end
    for i=1, table.getn(mobs[k]) do
        for p=mobs[k][i][1], mobs[k][i][2] do
            if vnum==p then
                return true
            end
        end
    end    
    for p=metin[k][1], metin[k][2] do
        if vnum==p then
            return true
        end        
    end    
    return false
end
function make_quest_button(name) makequestbutton(name) end

function send_letter_ex(name, icon_type, icon_name) make_quest_button_ex(name, icon_type, icon_name) setskin(NOWINDOW) q.set_title(name) q.start() end

function send_letter(name) makequestbutton(name) setskin(NOWINDOW) q.set_title(name) q.start() end
function clear_letter() q.done() end
function say_title(name) say(color256(255, 230, 186)..name..color256(196, 196, 196)) end
function say_reward(name) say(color256(255, 200, 200)..name..color256(196, 196, 196)) end
function say_pc_name() say(pc.get_name()..":") end
function say_size(width, height) say("[WINDOW_SIZE width;"..width.."|height;"..height.."]") end
function setmapcenterposition(x,y)
    raw_script("[SETCMAPPOS x;")
    raw_script(x.."|y;")
    raw_script(y.."]")
end
function say_item(name, vnum, desc)
    say("[INSERT_IMAGE image_type;item|idx;"..vnum.."|title;"..name.."|desc;"..desc.."]")
end
function say_item_vnum(vnum)
    say_item(item_name(vnum), vnum, "")
end

function setvarchar(name, var)
    local laenge = string.len (var)
    local setchar = 0
    local save_name = 0
    local letter = 0
    while laenge > setchar do
        setchar = setchar + 1
        letter = string.sub (var, setchar, setchar)
        letter = string.byte(letter, 1)
        save_name = ""..name.."_char_"..setchar..""
        pc.setqf(save_name, letter)
    end
    local save_laenge=""..name.."laenge"
    pc.setqf(save_laenge, laenge)
end

function getvarchar(name)
    local save_laenge = ""..name.."laenge"
    local laenge = pc.getqf(save_laenge)
    local save_name = 0
    local var = ""
    local letter = 0
    local getchar = 0
    while laenge > getchar do
        getchar = getchar + 1
        save_name = ""..name.."_char_"..getchar..""
        letter = pc.getqf(save_name)
        if letter!=0 then
            letter = string.char(letter)
        else
            letter = ""
        end
        var = ""..var..""..letter..""
    end
    return var
end

function delvarchar(name)
    local save_laenge = ""..name.."laenge"
    local laenge = pc.getqf(save_laenge)
    local getchar = 0
    while laenge > getchar do
        getchar = getchar + 1
        local save_name = ""..name.."_char_"..getchar..""
        pc.delqf(save_name)
    end
    pc.delqf(save_laenge)
end

function global_setvarchar(name, var)
    local laenge = string.len (var)
    local setchar = 0
    local save_name = 0
    local letter = 0
    while laenge > setchar do
        setchar = setchar + 1
        letter = string.sub (var, setchar, setchar)
        letter = string.byte(letter)
        if letter==91 or letter==93 then
            letter=32
        end
        save_name = ""..name.."_char_"..setchar..""
        game.set_event_flag(save_name, letter)
    end
    local save_laenge=""..name.."laenge"
    game.set_event_flag(save_laenge, laenge)
end

function global_getvarchar(name)
    local save_laenge = ""..name.."laenge"
    local laenge = game.get_event_flag(save_laenge)
    local save_name = 0
    local var = ""
    local letter = 0
    local getchar = 0
    while laenge > getchar do
        getchar = getchar + 1
        save_name = ""..name.."_char_"..getchar..""
        letter = game.get_event_flag(save_name)
        if letter!=0 then
            letter = string.char(letter)
        else
            letter = ""
        end
        
        var = ""..var..""..letter..""
    end
    return var
end

function pc_is_novice()
    if pc.get_skill_group()==0 then
        return true
    else
        return false
    end
end
function pc_get_exp_bonus(exp, text)
    say_reward(text)
    pc.give_exp2(exp)
    set_quest_state("levelup", "run")
end
function pc_get_village_map_index(index)
    return village_map[pc.get_empire()][index]
end

village_map = {
    {1, 3},
    {21, 23},
    {41, 43},
}

function npc_is_same_empire()
    if pc.get_empire()==npc.empire then
        return true
    else
        return false
    end
end

function npc_get_skill_teacher_race(pc_empire, pc_job, sub_job)
    if 1==sub_job then
        if 0==pc_job then
            return WARRIOR1_NPC_LIST[pc_empire]
        elseif 1==pc_job then
            return ASSASSIN1_NPC_LIST[pc_empire]
        elseif 2==pc_job then
            return SURA1_NPC_LIST[pc_empire]
        elseif 3==pc_job then
            return SHAMAN1_NPC_LIST[pc_empire]
        end    
    elseif 2==sub_job then
        if 0==pc_job then
            return WARRIOR2_NPC_LIST[pc_empire]
        elseif 1==pc_job then
            return ASSASSIN2_NPC_LIST[pc_empire]
        elseif 2==pc_job then
            return SURA2_NPC_LIST[pc_empire]
        elseif 3==pc_job then
            return SHAMAN2_NPC_LIST[pc_empire]
        end    
    end

    return 0
end


function pc_find_square_guard_vid()
    if pc.get_empire()==1 then
        return find_npc_by_vnum(11000)
    elseif pc.get_empire()==2 then
        return find_npc_by_vnum(11002)
    elseif pc.get_empire()==3 then
        return find_npc_by_vnum(11004)
    end
    return 0
end

function pc_find_skill_teacher_vid(sub_job)
    local vnum=npc_get_skill_teacher_race(pc.get_empire(), pc.get_job(), sub_job)
    return find_npc_by_vnum(vnum)
end

function pc_find_square_guard_vid()
    local pc_empire=pc.get_empire()
    if pc_empire==1 then
        return find_npc_by_vnum(11000)
    elseif pc_empire==2 then
        return find_npc_by_vnum(11002)
    elseif pc_empire==3 then
        return find_npc_by_vnum(11004)
    end
end

function npc_is_same_job()
    local pc_job=pc.get_job()
    local npc_vnum=npc.get_race()

    -- test_chat("pc.job:"..pc.get_job())
    -- test_chat("npc_race:"..npc.get_race())
    -- test_chat("pc.skill_group:"..pc.get_skill_group())
    if pc_job==0 then
        if table_is_in(WARRIOR1_NPC_LIST, npc_vnum) then return true end
        if table_is_in(WARRIOR2_NPC_LIST, npc_vnum) then return true end
    elseif pc_job==1 then
        if table_is_in(ASSASSIN1_NPC_LIST, npc_vnum) then return true end
        if table_is_in(ASSASSIN2_NPC_LIST, npc_vnum) then return true end
    elseif pc_job==2 then
        if table_is_in(SURA1_NPC_LIST, npc_vnum) then return true end
        if table_is_in(SURA2_NPC_LIST, npc_vnum) then return true end
    elseif pc_job==3 then
        if table_is_in(SHAMAN1_NPC_LIST, npc_vnum) then return true end
        if table_is_in(SHAMAN2_NPC_LIST, npc_vnum) then return true end
    end

    return false
end

function npc_get_job()
    local npc_vnum=npc.get_race()

    if table_is_in(WARRIOR1_NPC_LIST, npc_vnum) then return COND_WARRIOR_1 end
    if table_is_in(WARRIOR2_NPC_LIST, npc_vnum) then return COND_WARRIOR_2 end
    if table_is_in(ASSASSIN1_NPC_LIST, npc_vnum) then return COND_ASSASSIN_1 end
    if table_is_in(ASSASSIN2_NPC_LIST, npc_vnum) then return COND_ASSASSIN_2 end
    if table_is_in(SURA1_NPC_LIST, npc_vnum) then return COND_SURA_1 end
    if table_is_in(SURA2_NPC_LIST, npc_vnum) then return COND_SURA_2 end
    if table_is_in(SHAMAN1_NPC_LIST, npc_vnum) then return COND_SHAMAN_1 end
    if table_is_in(SHAMAN2_NPC_LIST, npc_vnum) then return COND_SHAMAN_2 end
    return 0

end

function time_min_to_sec(value)
    return 60*value
end

function time_hour_to_sec(value)
    return 3600*value
end

function next_time_set(value, test_value)
    local nextTime=get_time()+value
    if is_test_server() then
        nextTime=get_time()+test_value
    end
    pc.setqf("__NEXT_TIME__", nextTime)
end

function next_time_is_now(value)
    if get_time()>=pc.getqf("__NEXT_TIME__") then
        return true
    else
        return false
    end
end

function table_get_random_item(self)
    return self[number(1, table.getn(self))]
end

function table_is_in(self, test)
    for i = 1, table.getn(self) do
        if self[i]==test then
            return true
        end
    end
    return false
end


function giveup_quest_menu(title)
    local s=select("ÁøÇàÇÑ´Ù", "Æ÷±âÇÑ´Ù")
    if 2==s then
    say(title.." Äù½ºÆ®¸¦ Á¤¸»·Î")
    say("Æ÷±âÇϽðڽÀ´Ï±î?")
    local s=select("³×, ±×·¸½À´Ï´Ù", "¾Æ´Õ´Ï´Ù")
    if 1==s then
        say(title.."Äù½ºÆ®¸¦ Æ÷±âÇß½À´Ï´Ù")
        restart_quest()
    end
    end
end

function restart_quest()
    set_state("start")
    q.done()
end

function complete_quest()
    set_state("__COMPLETE__")
    q.done()
end

function giveup_quest()
    set_state("__GIVEUP__")
    q.done()
end

function complete_quest_state(state_name)
    set_state(state_name)
    q.done()
end

function test_chat(log)
    if is_test_server() then
        chat(log)
    end
end

function bool_to_str(is)
    if is then
        return "true"
    else
        return "false"
    end
end

WARRIOR1_NPC_LIST     = {20300, 20320, 20340, }
WARRIOR2_NPC_LIST     = {20301, 20321, 20341, }
ASSASSIN1_NPC_LIST     = {20302, 20322, 20342, }
ASSASSIN2_NPC_LIST     = {20303, 20323, 20343, }
SURA1_NPC_LIST         = {20304, 20324, 20344, }
SURA2_NPC_LIST         = {20305, 20325, 20345, }
SHAMAN1_NPC_LIST     = {20306, 20326, 20346, }
SHAMAN2_NPC_LIST     = {20307, 20327, 20347, }

function skill_group_dialog(e, j, g) -- e = Á¦±¹, j = Á÷¾÷, g = ±×·ì
    e = 1 -- XXX ¸Þ½ÃÁö°¡ ³ª¶óº°·Î ÀÖ´Ù°¡ Çϳª·Î ÅëÇյǾúÀ½
    

    -- ´Ù¸¥ Á÷¾÷À̰ųª ´Ù¸¥ Á¦±¹ÀÏ °æ¿ì
    if pc.job != j then
        say(locale.skill_group.dialog[e][pc.job][3])
    elseif pc.get_skill_group() == 0 then
        if pc.level < 5 then
            say(locale.skill_group.dialog[e][j][g][1])
            return
        end
        say(locale.skill_group.dialog[e][j][g][2])
        local answer = select(locale.yes, locale.no)

        if answer == 1 then
            --say(locale.skill_group.dialog[e][j][g][2])
            pc.set_skill_group(g)
        else
            --say(locale.skill_group.dialog[e][j][g][3])
        end
    --elseif pc.get_skill_group() == g then
        --say(locale.skill_group.dialog[e][j][g][4])
    --else
        --say(locale.skill_group.dialog[e][j][g][5])
    end
end

function show_horse_menu()
    if horse.is_mine() then            
        say(locale.horse_menu.menu)

        local s = 0
        if horse.is_dead() then
            s = select(locale.horse_menu.revive, locale.horse_menu.ride, locale.horse_menu.unsummon, locale.horse_menu.close)
        else
            s = select(locale.horse_menu.feed, locale.horse_menu.ride, locale.horse_menu.unsummon, locale.horse_menu.close)
        end

        if s==1 then
            if horse.is_dead() then
                horse.revive()
            else
                local food = horse.get_grade() + 50054 - 1
                if pc.countitem(food) > 0 then
                pc.removeitem(food, 1)
                horse.feed()
                else
                say(locale.need_item_prefix..item_name(food)..locale.need_item_postfix);
                end
            end
        elseif s==2 then
            horse.ride()
        elseif s==3 then
            horse.unsummon()
        elseif s==4 then
            -- do nothing
        end
    end
end

npc_index_table = {
    ['race'] = npc.getrace,
    ['empire'] = npc.get_empire,
}

pc_index_table = {
    ['weapon']        = pc.getweapon,
    ['level']        = pc.get_level,
    ['hp']        = pc.gethp,
    ['maxhp']        = pc.getmaxhp,
    ['sp']        = pc.getsp,
    ['maxsp']        = pc.getmaxsp,
    ['exp']        = pc.get_exp,
    ['nextexp']        = pc.get_next_exp,
    ['job']        = pc.get_job,
    ['money']        = pc.getmoney,
    ['gold']         = pc.getmoney,
    ['name']         = pc.getname,
    ['playtime']     = pc.getplaytime,
    ['leadership']     = pc.getleadership,
    ['empire']         = pc.getempire,
    ['skillgroup']     = pc.get_skill_group,
    ['x']         = pc.getx,
    ['y']         = pc.gety,
    ['local_x']     = pc.get_local_x,
    ['local_y']     = pc.get_local_y,
}

item_index_table = {
    ['vnum']        = item.get_vnum,
    ['name']        = item.get_name,
    ['size']        = item.get_size,
    ['count']        = item.get_count,
    ['type']        = item.get_type,
    ['sub_type']    = item.get_sub_type,
    ['refine_vnum']    = item.get_refine_vnum,
    ['level']        = item.get_level,
}

guild_war_bet_price_table =
{
    10000,
    30000,
    50000,
    100000
}

function npc_index(t,i)
    local npit = npc_index_table
    if npit[i] then
    return npit[i]()
    else
    return rawget(t,i)
    end
end

function pc_index(t,i)
    local pit = pc_index_table
    if pit[i] then
    return pit[i]()
    else
    return rawget(t,i)
    end
end

function item_index(t, i)
    local iit = item_index_table
    if iit[i] then
    return iit[i]()
    else
    return rawget(t, i)
    end
end

setmetatable(pc,{__index=pc_index})
setmetatable(npc,{__index=npc_index})
setmetatable(item,{__index=item_index})

--coroutineÀ» ÀÌ¿ëÇÑ ¼±ÅÃÇ× Ã³¸®
function select(...)
    return q.yield('select', arg)
end

function select_table(table)
    return q.yield('select', table)
end

-- coroutineÀ» ÀÌ¿ëÇÑ ´ÙÀ½ ¿£ÅÍ ±â´Ù¸®±â
function wait()
    q.yield('wait')
end

function input()
    return q.yield('input')
end

function confirm(vid, msg, timeout)
    return q.yield('confirm', vid, msg, timeout)
end

function select_item()
    setskin(NOWINDOW)
    return q.yield('select_item')
end

--Àü¿ª º¯¼ö Á¢±Ù°ú °ü·ÃµÈ °è¿­
NOWINDOW = 0
NORMAL = 1
CINEMATIC = 2
SCROLL = 3

WARRIOR = 0
ASSASSIN = 1
SURA = 2
SHAMAN = 3

COND_WARRIOR_0 = 8
COND_WARRIOR_1 = 16
COND_WARRIOR_2 = 32
COND_WARRIOR = 56

COND_ASSASSIN_0 = 64
COND_ASSASSIN_1 = 128
COND_ASSASSIN_2 = 256
COND_ASSASSIN = 448

COND_SURA_0 = 512
COND_SURA_1 = 1024
COND_SURA_2 = 2048
COND_SURA = 3584

COND_SHAMAN_0 = 4096
COND_SHAMAN_1 = 8192
COND_SHAMAN_2 = 16384
COND_SHAMAN = 28672

PART_MAIN = 0
PART_HAIR = 3

GUILD_CREATE_ITEM_VNUM = 70101

QUEST_SCROLL_TYPE_KILL_MOB = 1
QUEST_SCROLL_TYPE_KILL_ANOTHER_EMPIRE = 2

apply = {
    ["MAX_HP"]        = 1,
    ["MAX_SP"]        = 2,
    ["CON"]            = 3,
    ["INT"]            = 4,
    ["STR"]            = 5,
    ["DEX"]            = 6,
    ["ATT_SPEED"]        = 7,
    ["MOV_SPEED"]        = 8,
    ["CAST_SPEED"]        = 9,
    ["HP_REGEN"]        = 10,
    ["SP_REGEN"]        = 11,
    ["POISON_PCT"]        = 12,
    ["STUN_PCT"]        = 13,
    ["SLOW_PCT"]        = 14,
    ["CRITICAL_PCT"]    = 15,
    ["PENETRATE_PCT"]    = 16,
    ["ATTBONUS_HUMAN"]    = 17,
    ["ATTBONUS_ANIMAL"]    = 18,
    ["ATTBONUS_ORC"]    = 19,
    ["ATTBONUS_MILGYO"]    = 20,
    ["ATTBONUS_UNDEAD"]    = 21,
    ["ATTBONUS_DEVIL"]    = 22,
    ["STEAL_HP"]        = 23,
    ["STEAL_SP"]        = 24,
    ["MANA_BURN_PCT"]    = 25,
    ["DAMAGE_SP_RECOVER"]    = 26,
    ["BLOCK"]        = 27,
    ["DODGE"]        = 28,
    ["RESIST_SWORD"]    = 29,
    ["RESIST_TWOHAND"]    = 30,
    ["RESIST_DAGGER"]    = 31,
    ["RESIST_BELL"]        = 32,
    ["RESIST_FAN"]        = 33,
    ["RESIST_BOW"]        = 34,
    ["RESIST_FIRE"]        = 35,
    ["RESIST_ELEC"]        = 36,
    ["RESIST_MAGIC"]    = 37,
    ["RESIST_WIND"]        = 38,
    ["REFLECT_MELEE"]    = 39,
    ["REFLECT_CURSE"]    = 40,
    ["POISON_REDUCE"]    = 41,
    ["KILL_SP_RECOVER"]    = 42,
    ["EXP_DOUBLE_BONUS"]    = 43,
    ["GOLD_DOUBLE_BONUS"]    = 44,
    ["ITEM_DROP_BONUS"]    = 45,
    ["POTION_BONUS"]    = 46,
    ["KILL_HP_RECOVER"]    = 47,
    ["IMMUNE_STUN"]        = 48,
    ["IMMUNE_SLOW"]        = 49,
    ["IMMUNE_FALL"]        = 50,
    ["SKILL"]        = 51,
    ["BOW_DISTANCE"]    = 52,
    ["ATT_GRADE_BONUS"]    = 53,
    ["DEF_GRADE_BONUS"]    = 54,
    ["MAGIC_ATT_GRADE"]    = 55,
    ["MAGIC_DEF_GRADE"]    = 56,
    ["CURSE_PCT"]        = 57,
    ["MAX_STAMINA"]        = 58,
    ["ATTBONUS_WARRIOR"]    = 59,
    ["ATTBONUS_ASSASSIN"]    = 60,
    ["ATTBONUS_SURA"]    = 61,
    ["ATTBONUS_SHAMAN"]    = 62,
    ["ATTBONUS_MONSTER"]    = 63,
}

-- ·¹º§¾÷ Äù½ºÆ® 
special = {}

special.fortune_telling =
{
--  { prob    Å©¸®    item    money    remove money
    { 1,    0,    20,    20,    0    }, -- 10
    { 499,    0,    10,    10,    0    }, -- 5
    { 2500,    0,    5,    5,    0    }, -- 1
    { 5000,    0,    0,    0,    0    },
    { 1500,    0,    -5,    -5,    20000    },
    { 499,    0,    -10,    -10,    20000    },
    { 1,    0,    -20,    -20,    20000    },
}

special.questscroll_reward =
{
    {1,    1500,    3000,    30027,    0,    0    },
    {2,    1500,    3000,    30028,    0,    0    },
    {3,    1000,    2000,    30034,    30018,    0    },
    {4,    1000,    2000,    30034,    30011,    0    },
    {5,    1000,    2000,    30011,    30034,    0    },
    {6,    1000,    2000,    27400,    0,    0    },
    {7,    2000,    4000,    30023,    30003,    0    },
    {8,    2000,    4000,    30005,    30033,    0    },
    {9,    2000,    8000,    30033,    30005,    0    },
    {10,    4000,    8000,    30021,    30033,    30045},
    {11,    4000,    8000,    30045,    30022,    30046},
    {12,    5000,    12000,    30047,    30045,    30055},
    {13,    5000,    12000,    30051,    30017,    30058},
    {14,    5000,    12000,    30051,    30007,    30041},
    {15,    5000,    15000,    30091,    30017,    30018},
    {16,    3500,    6500,    30021,    30033,    0    },
    {17,    4000,    9000,    30051,    30033,    0    },
    {18,    4500,    10000,    30056,    30057,    30058},
    {19,    4500,    10000,    30059,    30058,    30041},
    {20,    5000,    15000,    0,    0,    0    },
}

special.active_skill_list = {
    {
        { 1, 2, 3, 4, 5},
        { 16, 17, 18, 19, 20},
    },
    {
        {31, 32, 33, 34, 35},
        {46, 47, 48, 49, 50},
    },
    {
        {61, 62, 63, 64, 65, 66},
        {76, 77, 78, 79, 80, 81},
    },
    {
        {91, 92, 93, 94, 95, 96},
        {106, 107, 108, 109, 110, 111},
    },
}

special.skill_reset_cost = {
    2000,
    2000,
    2000,
    2000,
    2000,
    2000,
    4000,
    6000,
    8000,
    10000,
    14000,
    18000,
    22000,
    28000,
    34000,
    41000,
    50000,
    59000,
    70000,
    90000,
    101000,
    109000,
    114000,
    120000,
    131000,
    141000,
    157000,
    176000,
    188000,
    200000,
    225000,
    270000,
    314000,
    348000,
    393000,
    427000,
    470000,
    504000,
    554000,
    600000,
    758000,
    936000,
    1103000,
    1276000,
    1407000,
    1568000,
    1704000,
    1860000,
    2080000,
    2300000,
    2700000,
    3100000,
    3500000,
    3900000,
    4300000,
    4800000,
    5300000,
    5800000,
    6400000,
    7000000,
    8000000,
    9000000,
    10000000,
    11000000,
    12000000,
    13000000,
    14000000,
    15000000,
    16000000,
    17000000,
}

special.levelup_img =
{
    [101] = "dog.tga",
    [102] = "wolf.tga",
    [103] = "wolf.tga",
    [104] = "wolf.tga",
    [105] = "wolf.tga",
    [105] = "wolf.tga",
    [106] = "wolf.tga",
    [107] = "wolf.tga",
    [108] = "wild_boar.tga",
    [109] = "wild_boar.tga",
    [110] = "bear.tga",
    [111] = "bear.tga",
    [112] = "bear.tga",
    [113] = "bear.tga",
    [114] = "tiger.tga",
    [115] = "tiger.tga",

    [301] = "bak_inf.tga",
    [302] = "bak_gung.tga",
    [303] = "bak_gen1.tga",
    [304] = "bak_gen2.tga",

    [401] = "huk_inf.tga",
    [402] = "huk_dol.tga",
    [403] = "huk_gen1.tga",
    [404] = "huk_gen2.tga",

    [501] = "o_inf.tga",
    [502] = "o_jol.tga",
    [503] = "o_gung.tga",
    [504] = "o_jang.tga",

    [601] = "ung_inf.tga",
    [602] = "ung_chuk.tga",
    [603] = "ung_tu.tga",

    [701] = "mil_chu.tga",
    [702] = "mil_na.tga",
    [703] = "mil_na.tga",
    [704] = "mil_na.tga",
    [735] = "mil_jip.tga",

    [901] = "sigwi.tga",
    [903] = "gwoijil.tga",
    
    [2001] = "spider.tga",
    [2002] = "spider.tga",
    [2003] = "spider.tga",
    [2004] = "spider.tga",
    [2005] = "spider.tga",

    [2102] = "2102.tga",
    [2103] = "2103.tga",

}

special.levelup_quest = {
    -- monster kill  monster   kill
    --    vnum        qty.         vnum        qty.     exp percent
{    0    ,    0    ,    0    ,    0    ,    0    }    ,    --    lev    1
{    101    ,    10    ,    102    ,    5    ,    10    }    ,    --    lev    2
{    101    ,    20    ,    102    ,    10    ,    10    }    ,    --    lev    3
{    102    ,    15    ,    103    ,    5    ,    10    }    ,    --    lev    4
{    103    ,    10    ,    104    ,    10    ,    10    }    ,    --    lev    5
{    104    ,    20    ,    108    ,    10    ,    10    }    ,    --    lev    6
{    108    ,    10    ,    105    ,    5    ,    10    }    ,    --    lev    7
{    108    ,    20    ,    105    ,    10    ,    10    }    ,    --    lev    8
{    105    ,    15    ,    109    ,    5    ,    10    }    ,    --    lev    9
{    105    ,    20    ,    109    ,    10    ,    10    }    ,    --    lev    10
{    109    ,    10    ,    110    ,    5    ,    10    }    ,    --    lev    11
{    110    ,    15    ,    106    ,    10    ,    10    }    ,    --    lev    12
{    106    ,    20    ,    111    ,    5    ,    10    }    ,    --    lev    13
{    111    ,    15    ,    107    ,    5    ,    10    }    ,    --    lev    14
{    111    ,    20    ,    107    ,    10    ,    10    }    ,    --    lev    15
{    107    ,    15    ,    114    ,    5    ,    10    }    ,    --    lev    16
{    107    ,    20    ,    114    ,    10    ,    10    }    ,    --    lev    17
{    114    ,    10    ,    112    ,    10    ,    10    }    ,    --    lev    18
{    112    ,    20    ,    113    ,    10    ,    10    }    ,    --    lev    19
{    113    ,    20    ,    302    ,    15    ,    10    }    ,    --    lev    20
{    302    ,    20    ,    115    ,    10    ,    "2-10"    }    ,    --    lev    21
{    115    ,    25    ,    304    ,    10    ,    "2-10"    }    ,    --    lev    22
{    304    ,    20    ,    401    ,    40    ,    "2-10"    }    ,    --    lev    23
{    401    ,    60    ,    402    ,    80    ,    "2-10"    }    ,    --    lev    24
{    501    ,    80    ,    404    ,    20    ,    "2-10"    }    ,    --    lev    25
{    502    ,    80    ,    406    ,    20    ,    "2-10"    }    ,    --    lev    26
{    406    ,    30    ,    504    ,    20    ,    "2-10"    }    ,    --    lev    27
{    631    ,    35    ,    504    ,    30    ,    "2-10"    }    ,    --    lev    28
{    631    ,    40    ,    632    ,    30    ,    "2-10"    }    ,    --    lev    29
{    632    ,    40    ,    2102    ,    30    ,    "2-10"    }    ,    --    lev    30
{    632    ,    50    ,    2102    ,    45    ,    "2-5"    }    ,    --    lev    31
{    633    ,    45    ,    2001    ,    40    ,    "2-5"    }    ,    --    lev    32
{    701    ,    35    ,    2103    ,    30    ,    "2-5"    }    ,    --    lev    33
{    701    ,    40    ,    2103    ,    40    ,    "2-5"    }    ,    --    lev    34
{    702    ,    40    ,    2002    ,    30    ,    "2-5"    }    ,    --    lev    35
{    704    ,    20    ,    2106    ,    20    ,    "2-5"    }    ,    --    lev    36
{    733    ,    30    ,    2003    ,    20    ,    "2-5"    }    ,    --    lev    37
{    734    ,    40    ,    2004    ,    20    ,    "2-5"    }    ,    --    lev    38
{    706    ,    40    ,    2005    ,    30    ,    "2-5"    }    ,    --    lev    39
{    707    ,    40    ,    2108    ,    20    ,    "2-5"    }    ,    --    lev    40
{    901    ,    40    ,    5123    ,    25    ,    "2-5"    }    ,    --    lev    41
{    902    ,    30    ,    5123    ,    30    ,    "2-5"    }    ,    --    lev    42
{    902    ,    40    ,    2031    ,    35    ,    "2-5"    }    ,    --    lev    43
{    903    ,    40    ,    2031    ,    40    ,    "2-5"    }    ,    --    lev    44
{    731    ,    50    ,    2032    ,    45    ,    "2-5"    }    ,    --    lev    45
{    732    ,    30    ,    5124    ,    30    ,    "2-5"    }    ,    --    lev    46
{    903    ,    35    ,    5125    ,    30    ,    "2-5"    }    ,    --    lev    47
{    904    ,    40    ,    5125    ,    35    ,    "2-5"    }    ,    --    lev    48
{    733    ,    40    ,    2033    ,    45    ,    "2-5"    }    ,    --    lev    49
{    734    ,    40    ,    5126    ,    20    ,    "2-5"    }    ,    --    lev    50
{    735    ,    50    ,    5126    ,    30    ,    "1-4"    }    ,    --    lev    51
{    904    ,    45    ,    2034    ,    45    ,    "1-4"    }    ,    --    lev    52
{    904    ,    50    ,    2034    ,    50    ,    "1-4"    }    ,    --    lev    53
{    736    ,    40    ,    1001    ,    30    ,    "1-4"    }    ,    --    lev    54
{    737    ,    40    ,    1301    ,    35    ,    "1-4"    }    ,    --    lev    55
{    905    ,    50    ,    1002    ,    30    ,    "1-4"    }    ,    --    lev    56
{    905    ,    60    ,    1002    ,    40    ,    "1-4"    }    ,    --    lev    57
{    906    ,    45    ,    1303    ,    40    ,    "1-4"    }    ,    --    lev    58
{    906    ,    50    ,    1303    ,    45    ,    "1-4"    }    ,    --    lev    59
{    907    ,    45    ,    1003    ,    40    ,    "1-4"    }    ,    --    lev    60

}

special.levelup_reward1 =
{
    -- warrior assassin  sura  shaman
    {     0,        0,      0,      0 },
    { 11200,    11400,  11600,  11800 }, -- °©¿Ê lev2
    { 12200,    12340,  12480,  12620 }, -- Åõ±¸ lev3
    { 13000,    13000,  13000,  13000 }  -- ¹æÆÐ lev4
}

-- levelup_reward1 Å×À̺í Å©±âº¸´Ù ·¹º§ÀÌ ³ô¾ÆÁö¸é ¾Æ·¡
-- Å×À̺íÀ» ÀÌ¿ëÇÏ¿© ¾ÆÀÌÅÛÀ» ÁØ´Ù.
special.levelup_reward3 = {
    -- pct   item #  item count
    {   33,  27002,  10 }, -- 25%
    {   67,  27005,  10 }, -- 25%
  --{   75,  27101,   5 }, -- 25%
    {  100,  27114,   5 }, -- 25%
}

special.levelup_reward_gold21 =
{
    { 10000,    20 },
    { 20000,    50 },
    { 40000,    25 },
    { 80000,    3 },
    { 100000,    2 },
}
special.levelup_reward_gold31 =
{
    { 20000,    20 },
    { 40000,    40 },
    { 60000,    25 },
    { 80000,    10 },
    { 100000,    5 },
}
special.levelup_reward_gold41 =
{
    { 40000,    20 },
    { 60000,    40 },
    { 80000,    25 },
    { 100000,    10 },
    { 150000,    5 },
}
special.levelup_reward_gold51 =
{
    { 60000,    20 },
    { 80000,    40 },
    { 100000,    25 },
    { 150000,    10 },
    { 200000,    5 },
}

special.levelup_reward_exp21 =
{
    { 2,    9 },
    { 3,    14 },
    { 4,    39 },
    { 6,    24 },
    { 8,    9 },
    { 10,    4 },
}

special.levelup_reward_exp31 =
{
    { 2,    10 },
    { 2.5,    15 },
    { 3,    40 },
    { 3.5,    25 },
    { 4,    8 },
    { 4.5,    5 },
    { 5,    2 },
}
special.levelup_reward_exp41 =
{
    { 2,    10 },
    { 2.5,    15 },
    { 3,    40 },
    { 3.5,    25 },
    { 4,    8 },
    { 4.5,    5 },
    { 5,    2 },
}
special.levelup_reward_exp51 =
{
    { 1,    10 },
    { 1.5,    15 },
    { 2,    40 },
    { 2.5,    25 },
    { 3,    8 },
    { 3.5,    5 },
    { 4,    2 },
}

special.levelup_reward_item_21 =
{
    -- no couple ring
    { { 27002, 10 }, { 27005, 10 }, { 27114, 10 } }, -- lev 21
    { 15080, 15100, 15120, 15140 }, -- lev 22
    { 16080, 16100, 16120, 16140 }, -- lev 23
    { 17080, 17100, 17120, 17140 }, -- lev 24
    { { 27002, 10 }, { 27005, 10 }, { 27114, 10 } }, -- lev 25
    { { 27003, 20 }, { 27006, 20 }, { 27114, 10 } }, -- over lev 25

    -- with couple ring
    -- { { 27002, 10 }, { 27005, 10 }, { 27114, 10 }, { 70301, 1 } }, -- lev 21
    -- { 15080, 15100, 15120, 15140, 70301 }, -- lev 22
    -- { 16080, 16100, 16120, 16140, 70301 }, -- lev 23
    -- { 17080, 17100, 17120, 17140, 70301 }, -- lev 24
    -- { { 27002, 10 }, { 27005, 10 }, { 27114, 10 }, { 70301, 1 } }, -- lev 25
    -- { { 27003, 20 }, { 27006, 20 }, { 27114, 10 } }, -- over lev 25
}

special.warp_to_pos = {
-- ½Â·æ°î
    {
    { 402100, 673900 },
    { 270400, 739900 },
    { 321300, 808000 },
    },
--µµ¿°È­Áö
    {
--A 5994 7563
--B 5978 6222
--C 7307 6898
    { 599400, 756300 },
    { 597800, 622200 },
    { 730700, 689800 },
    },
--¿µºñ»ç¸·
    {
--A 2178 6272
    { 217800, 627200 },
--B 2219 5027
    { 221900, 502700 },
--C 3440 5025
    { 344000, 502500 },
    },
--¼­ÇÑ»ê
    {
--A 4342 2906
    { 434200, 290600 },
--B 3752 1749
    { 375200, 174900 },
--C 4918 1736
    { 491800, 173600 },
    },
}

special.devil_tower =
{
    --{ 123, 608 },
    { 2048+126, 6656+384 },
    { 2048+134, 6656+147 },
    { 2048+369, 6656+629 },
    { 2048+369, 6656+401 },
    { 2048+374, 6656+167 },
    { 2048+579, 6656+616 },
    { 2048+578, 6656+392 },
    { 2048+575, 6656+148 },
}

special.lvq_map = {
    { -- "A1" 1
        {},
    
        { { 440, 565 }, { 460, 771 }, { 668, 800 },},
        { { 440, 565 }, { 460, 771 }, { 668, 800 },},
        { { 440, 565 }, { 460, 771 }, { 668, 800 },},
        {{496, 401}, {494, 951}, {542, 1079}, {748, 9741},},
        {{496, 401}, {494, 951}, {542, 1079}, {748, 9741},},
        {{496, 401}, {494, 951}, {542, 1079}, {748, 9741},},
        {{496, 401}, {494, 951}, {542, 1079}, {748, 9741},},
        {{496, 401}, {494, 951}, {542, 1079}, {748, 9741},},
        {{496, 401}, {494, 951}, {542, 1079}, {748, 9741},},
        {{496, 401}, {494, 951}, {542, 1079}, {748, 9741},},
        
        {{496, 401}, {494, 951}, {542, 1079}, {748, 9741},},
        {{853,557}, {845,780}, {910,956},},
        {{853,557}, {845,780}, {910,956},},
        {{340, 179}, {692, 112}, {787, 256}, {898, 296},},
        {{340, 179}, {692, 112}, {787, 256}, {898, 296},},
        {{340, 179}, {692, 112}, {787, 256}, {898, 296},},
        {{340, 179}, {692, 112}, {787, 256}, {898, 296},},
        {{340, 179}, {692, 112}, {787, 256}, {898, 296},},
        {{340, 179}, {692, 112}, {787, 256}, {898, 296},},
        {{340, 179}, {692, 112}, {787, 256}, {898, 296},},
        
        {{224,395}, {137,894}, {206,830}, {266,1067},},
        {{224,395}, {137,894}, {206,830}, {266,1067},},
        {{224,395}, {137,894}, {206,830}, {266,1067},},
        {{405,74}},
        {{405,74}},
        {{405,74}},
        {{405,74}},
        {{405,74}},
        {{405,74}},
        {{405,74}},
        
        {{405,74}}, {{405,74}}, {{405,74}}, {{405,74}}, {{405,74}}, {{405,74}}, {{405,74}}, {{405,74}}, {{405,74}}, {{405,74}},
        
        {{405,74}}, {{405,74}}, {{405,74}}, {{405,74}}, {{405,74}}, {{405,74}}, {{405,74}}, {{405,74}}, {{405,74}},
    },


    { -- "A2" 2
        {},
        
        {{ 640,1437 }}, {{ 640,1437 }}, {{ 640,1437 }}, {{ 640,1437 }}, {{ 640,1437 }}, {{ 640,1437 }}, {{ 640,1437 }}, {{ 640,1437 }}, {{ 640,1437 }}, {{ 640,1437 }},
        
        {{ 640,1437 }}, {{ 640,1437 }}, {{ 640,1437 }}, {{ 640,1437 }}, {{ 640,1437 }}, {{ 640,1437 }}, {{ 640,1437 }}, {{ 640,1437 }}, {{ 640,1437 }}, {{ 640,1437 }},
        
        {{ 640,1437 }}, {{ 640,1437 }}, {{ 640,1437 }}, {{640,1437}}, {{640,1437}}, {{640,1437}}, {{640,1437}}, {{640,1437}}, {{640,1437}}, {{640,1437}},
        
        {{640,1437}}, {{640,1437}}, {{640,1437}}, {{640,1437}}, {{640,1437}}, {{640,1437}}, {{640,1437}}, {{640,1437}}, {{640,1437}}, {{640,1437}},
        
        {{640,1437}},
        {{640,1437}},
        {{640,1437}},
        {{244,1309}, {4567,1080}, {496,885}, {798,975}, {1059,1099}, {855,1351},},
        {{244,1309}, {4567,1080}, {496,885}, {798,975}, {1059,1099}, {855,1351},},
        {{244,1309}, {4567,1080}, {496,885}, {798,975}, {1059,1099}, {855,1351},},
        {{244,1309}, {4567,1080}, {496,885}, {798,975}, {1059,1099}, {855,1351},},
        {{193,772}, {390,402}, {768,600}, {1075,789}, {1338,813},},
        {{193,772}, {390,402}, {768,600}, {1075,789}, {1338,813},},
    },



    { -- "A3" 3
        {},

        {{ 948,804 }}, {{ 948,804 }}, {{ 948,804 }}, {{ 948,804 }}, {{ 948,804 }}, {{ 948,804 }}, {{ 948,804 }}, {{ 948,804 }}, {{ 948,804 }}, {{ 948,804 }},
        {{ 948,804 }}, {{ 948,804 }}, {{ 948,804 }}, {{ 948,804 }}, {{ 948,804 }}, {{ 948,804 }}, {{ 948,804 }}, {{ 948,804 }}, {{ 948,804 }}, {{ 948,804 }},

        {{ 948,804 }},
        {{ 948,804 }},
        {{ 948,804 }},
        {{438, 895}, {725, 864}, {632, 671},},
        {{438, 895}, {725, 864}, {632, 671},},
        {{438, 895}, {725, 864}, {632, 671},},
        {{438, 895}, {725, 864}, {632, 671},},
        {{438, 895}, {725, 864}, {632, 671},},
        {{847, 412}, {844, 854}, {823, 757}, {433, 407},},
        {{847, 412}, {844, 854}, {823, 757}, {433, 407},},
        {{847, 412}, {844, 854}, {823, 757}, {433, 407},},
        {{847, 412}, {844, 854}, {823, 757}, {433, 407},},
        {{847, 412}, {844, 854}, {823, 757}, {433, 407},},
        {{316,168}, {497,130}, {701,157}, {858,316},},
        {{316,168}, {497,130}, {701,157}, {858,316},},
        {{316,168}, {497,130}, {701,157}, {858,316},},
        {{316,168}, {497,130}, {701,157}, {858,316},},
        {{316,168}, {497,130}, {701,157}, {858,316},},
        {{316,168}, {497,130}, {701,157}, {858,316},},
        {{316,168}, {497,130}, {701,157}, {858,316},},
        {{200,277}, {130,646}, {211,638}, {291,851},},
        {{200,277}, {130,646}, {211,638}, {291,851},},
        {{200,277}, {130,646}, {211,638}, {291,851},},
        {{100,150}},
        {{100,150}},
        {{100,150}},
        {{100,150}},
        {{100,150}},
        {{100,150}},
    },

    {}, -- 4
    {}, -- 5
    {}, -- 6
    {}, -- 7
    {}, -- 8
    {}, -- 9
    {}, -- 10
    {}, -- 11
    {}, -- 12
    {}, -- 13
    {}, -- 14
    {}, -- 15
    {}, -- 16
    {}, -- 17
    {}, -- 18
    {}, -- 19
    {}, -- 20

    { -- "B1" 21
        {},
        
        {{412,635}, {629,428}, {829,586},},
        {{412,635}, {629,428}, {829,586},},
        {{412,635}, {629,428}, {829,586},},
        {{329,643}, {632,349}, {905,556},},
        {{329,643}, {632,349}, {905,556},},
        {{329,643}, {632,349}, {905,556},},
        {{329,643}, {632,349}, {905,556},},
        {{329,643}, {632,349}, {905,556},},
        {{329,643}, {632,349}, {905,556},},
        {{329,643}, {632,349}, {905,556},},

        {{329,643}, {632,349}, {905,556},},
        {{866,822}, {706,224}, {247,722},},
        {{866,822}, {706,224}, {247,722},},
        {{617,948}, {353,221},},
        {{617,948}, {353,221},},
        {{617,948}, {353,221},},
        {{617,948}, {353,221},},
        {{617,948}, {353,221},},
        {{617,948}, {353,221},},
        {{617,948}, {353,221},},
    
        {{496,1089}, {890,1043},},
        {{496,1089}, {890,1043},},
        {{496,1089}, {890,1043},},
        {{876,1127}},
        {{876,1127}},
        {{876,1127}},
        {{876,1127}},
        {{876,1127}},
        {{876,1127}},
        {{876,1127}},
    
        {{876,1127}}, {{876,1127}}, {{876,1127}}, {{876,1127}}, {{876,1127}},    {{876,1127}},    {{876,1127}},    {{876,1127}},    {{876,1127}}, {{876,1127}},
        {{876,1127}}, {{876,1127}}, {{876,1127}}, {{908,87}},    {{908,87}},        {{908,87}},        {{908,87}},        {{908,87}},        {{908,87}},
    },

    { -- "B2" 22
        {},

        {{ 95,819 }}, {{ 95,819 }}, {{ 95,819 }}, {{ 95,819 }}, {{ 95,819 }}, {{ 95,819 }}, {{ 95,819 }}, {{ 95,819 }}, {{ 95,819 }}, {{ 95,819 }},
        {{ 95,819 }}, {{ 95,819 }}, {{ 95,819 }}, {{ 95,819 }}, {{ 95,819 }}, {{ 95,819 }}, {{ 95,819 }}, {{ 95,819 }}, {{ 95,819 }}, {{ 95,819 }},
        {{ 95,819 }}, {{ 95,819 }}, {{ 95,819 }}, {{746,1438}}, {{746,1438}}, {{746,1438}}, {{746,1438}}, {{746,1438}}, {{746,1438}}, {{746,1438}},
        {{746,1438}}, {{746,1438}}, {{746,1438}}, {{746,1438}}, {{746,1438}}, {{746,1438}}, {{746,1438}}, {{746,1438}}, {{746,1438}}, {{746,1438}},

        {{746,1438}},
        {{746,1438}},
        {{746,1438}},
        {{ 172,810}, {288,465}, {475,841}, {303,156}, {687,466},},
        {{ 172,810}, {288,465}, {475,841}, {303,156}, {687,466},},
        {{ 172,810}, {288,465}, {475,841}, {303,156}, {687,466},},
        {{ 172,810}, {288,465}, {475,841}, {303,156}, {687,466},},
        {{787,235}, {1209,382}, {1350,571}, {1240,852}, {1254,1126}, {1078,1285}, {727,1360},},
        {{787,235}, {1209,382}, {1350,571}, {1240,852}, {1254,1126}, {1078,1285}, {727,1360},},
    },


    { -- "B3" 23
        {},
        
        {{ 106,88 }}, {{ 106,88 }}, {{ 106,88 }}, {{ 106,88 }}, {{ 106,88 }}, {{ 106,88 }}, {{ 106,88 }}, {{ 106,88 }}, {{ 106,88 }}, {{ 106,88 }},
        {{ 106,88 }}, {{ 106,88 }}, {{ 106,88 }}, {{ 106,88 }}, {{ 106,88 }}, {{ 106,88 }}, {{ 106,88 }}, {{ 106,88 }}, {{ 106,88 }}, {{ 106,88 }},

         {{ 106,88 }},
        {{ 106,88 }},
        {{ 106,88 }},
        {{230, 244}, {200, 444}, {594, 408},},
        {{230, 244}, {200, 444}, {594, 408},},
        {{230, 244}, {200, 444}, {594, 408},},
        {{230, 244}, {200, 444}, {594, 408},},
        {{230, 244}, {200, 444}, {594, 408},},
        {{584,204}, {720,376}, {861,272},},
        {{584,204}, {720,376}, {861,272},},
        {{584,204}, {720,376}, {861,272},},
        {{584,204}, {720,376}, {861,272},},
        {{584,204}, {720,376}, {861,272},},
        {{566,694}, {349,574}, {198,645},},
        {{566,694}, {349,574}, {198,645},},
        {{566,694}, {349,574}, {198,645},},
        {{566,694}, {349,574}, {198,645},},
        {{566,694}, {349,574}, {198,645},},
        {{566,694}, {349,574}, {198,645},},
        {{566,694}, {349,574}, {198,645},},
        {{816,721}, {489,823},},
        {{816,721}, {489,823},},
        {{816,721}, {489,823},},
        {{772,140}},
        {{772,140}},
        {{772,140}},
        {{772,140}},
        {{772,140}},
        {{772,140}},
    },

    {}, -- 24
    {}, -- 25
    {}, -- 26
    {}, -- 27
    {}, -- 28
    {}, -- 29
    {}, -- 30
    {}, -- 31
    {}, -- 32
    {}, -- 33
    {}, -- 34
    {}, -- 35
    {}, -- 36
    {}, -- 37
    {}, -- 38
    {}, -- 39
    {}, -- 40

    { -- "C1" 41
        {},

        {{385,446}, {169,592}, {211,692}, {632,681},},
        {{385,446}, {169,592}, {211,692}, {632,681},},
        {{385,446}, {169,592}, {211,692}, {632,681},},
        {{385,374}, {227,815}, {664,771},},
        {{385,374}, {227,815}, {664,771},},
        {{385,374}, {227,815}, {664,771},},
        {{385,374}, {227,815}, {664,771},},
        {{385,374}, {227,815}, {664,771},},
        {{385,374}, {227,815}, {664,771},},
        {{385,374}, {227,815}, {664,771},},
        
        {{385,374}, {227,815}, {664,771},},
        {{169,362}, {368,304}, {626,409}, {187,882}, {571,858},},
        {{169,362}, {368,304}, {626,409}, {187,882}, {571,858},},
        {{178,275}, {365,242}, {644,313}, {194,950}, {559,936},},
        {{178,275}, {365,242}, {644,313}, {194,950}, {559,936},},
        {{178,275}, {365,242}, {644,313}, {194,950}, {559,936},},
        {{178,275}, {365,242}, {644,313}, {194,950}, {559,936},},
        {{178,275}, {365,242}, {644,313}, {194,950}, {559,936},},
        {{178,275}, {365,242}, {644,313}, {194,950}, {559,936},},
        {{178,275}, {365,242}, {644,313}, {194,950}, {559,936},},
        
        {{452,160}, {536,1034}, {184,1044},},
        {{452,160}, {536,1034}, {184,1044},},
        {{452,160}, {536,1034}, {184,1044},},
        {{137,126}},
        {{137,126}},
        {{137,126}},
        {{137,126}},
        {{137,126}},
        {{137,126}},
        {{137,126}},
        
        {{137,126}}, {{137,126}}, {{137,126}}, {{137,126}}, {{137,126}}, {{137,126}}, {{137,126}}, {{137,126}}, {{137,126}}, {{137,126}},
        {{137,126}}, {{137,126}}, {{137,126}}, {{137,126}}, {{137,126}}, {{137,126}}, {{137,126}}, {{137,126}}, {{137,126}},
    },

    { -- "C2" 42
        {},

        {{1409,139}}, {{1409,139}}, {{1409,139}}, {{1409,139}}, {{1409,139}}, {{1409,139}}, {{1409,139}}, {{1409,139}}, {{1409,139}}, {{1409,139}},
        {{1409,139}}, {{1409,139}}, {{1409,139}}, {{1409,139}}, {{1409,139}}, {{1409,139}}, {{1409,139}}, {{1409,139}}, {{1409,139}}, {{1409,139}},
        {{1409,139}}, {{1409,139}}, {{1409,139}}, {{1409,139}}, {{1409,139}}, {{1409,139}}, {{1409,139}}, {{1409,139}}, {{1409,139}}, {{1409,139}},
        {{1409,139}}, {{1409,139}}, {{1409,139}}, {{1409,139}}, {{1409,139}}, {{1409,139}}, {{1409,139}}, {{1409,139}}, {{1409,139}}, {{1409,139}},
    
        {{1409,139}},
        {{1409,139}},
        {{1409,139}},
        {{991,222}, {1201,525}, {613,232}, {970,751}, {1324,790},},
        {{991,222}, {1201,525}, {613,232}, {970,751}, {1324,790},},
        {{991,222}, {1201,525}, {613,232}, {970,751}, {1324,790},},
        {{991,222}, {1201,525}, {613,232}, {970,751}, {1324,790},},
        {{192,211}, {247,600}, {249,882}, {987,981}, {1018,1288}, {1303,1174},},
        {{192,211}, {247,600}, {249,882}, {987,981}, {1018,1288}, {1303,1174},},
    },

    { -- "C3" 43
        {},

        {{901,151}}, {{901,151}}, {{901,151}}, {{901,151}}, {{901,151}}, {{901,151}}, {{901,151}}, {{901,151}}, {{901,151}}, {{901,151}},
        {{901,151}}, {{901,151}}, {{901,151}}, {{901,151}}, {{901,151}}, {{901,151}}, {{901,151}}, {{901,151}}, {{901,151}}, {{901,151}},
    
        {{901,151}},
        {{901,151}},
        {{901,151}},
        {{421, 189}, {167, 353},},
        {{421, 189}, {167, 353},},
        {{421, 189}, {167, 353},},
        {{421, 189}, {167, 353},},
        {{421, 189}, {167, 353},},
        {{679,459}, {505,709},},
        {{679,459}, {505,709},},
        {{679,459}, {505,709},},
        {{679,459}, {505,709},},
        {{679,459}, {505,709},},
        {{858,638}, {234,596},},
        {{858,638}, {234,596},},
        {{858,638}, {234,596},},
        {{858,638}, {234,596},},
        {{858,638}, {234,596},},
        {{858,638}, {234,596},},
        {{858,638}, {234,596},},
        {{635,856}, {324,855},},
        {{635,856}, {324,855},},
        {{635,856}, {324,855},},
        {{136,899}},
        {{136,899}},
        {{136,899}},
        {{136,899}},
        {{136,899}},
        {{136,899}},
    },

    {}, -- 44
    {}, -- 45
    {}, -- 46
    {}, -- 47
    {}, -- 48
    {}, -- 49
    {}, -- 50
    {}, -- 51
    {}, -- 52
    {}, -- 53
    {}, -- 54
    {}, -- 55
    {}, -- 56
    {}, -- 57
    {}, -- 58
    {}, -- 59
    {}, -- 60
}

function BuildSkillList(job, group)
    local skill_vnum_list = {}
    local skill_name_list = {}

    if pc.get_skill_group() != 0 then
        local skill_list = special.active_skill_list[job+1][group]
                
        table.foreachi( skill_list,
            function(i, t)
                local lev = pc.get_skill_level(t)

                if lev > 0 then
                    local name = locale.GM_SKILL_NAME_DICT[t]

                    if name != nil then
                        table.insert(skill_vnum_list, t)
                        table.insert(skill_name_list, name)
                    end
                end
            end
        )
    end

    table.insert(skill_vnum_list, 0)
    table.insert(skill_name_list, locale.cancel)

    return { skill_vnum_list, skill_name_list }
end

PREMIUM_EXP             = 0
PREMIUM_ITEM            = 1
PREMIUM_SAFEBOX         = 2
PREMIUM_AUTOLOOT        = 3
PREMIUM_FISH_MIND       = 4
PREMIUM_MARRIAGE_FAST   = 5
PREMIUM_GOLD            = 6


-- point type start
POINT_NONE                 = 0
POINT_LEVEL                = 1
POINT_VOICE                = 2
POINT_EXP                  = 3
POINT_NEXT_EXP             = 4
POINT_HP                   = 5
POINT_MAX_HP               = 6
POINT_SP                   = 7
POINT_MAX_SP               = 8  
POINT_STAMINA              = 9  --½ºÅ׹̳Ê
POINT_MAX_STAMINA          = 10 --ÃÖ´ë ½ºÅ׹̳Ê

POINT_GOLD                 = 11
POINT_ST                   = 12 --±Ù·Â
POINT_HT                   = 13 --ü·Â
POINT_DX                   = 14 --¹Îø¼º
POINT_IQ                   = 15 --Á¤½Å·Â
POINT_DEF_GRADE            = 16
POINT_ATT_SPEED            = 17 --°ø°Ý¼Óµµ
POINT_ATT_GRADE            = 18 --°ø°Ý·Â MAX
POINT_MOV_SPEED            = 19 --À̵¿¼Óµµ
POINT_CLIENT_DEF_GRADE        = 20 --¹æ¾îµî±Þ
POINT_CASTING_SPEED        = 21 --ÁÖ¹®¼Óµµ (Äð´Ù¿îŸÀÓ*100) / (100 + ÀÌ°ª) = ÃÖÁ¾ Äð´Ù¿î ŸÀÓ
POINT_MAGIC_ATT_GRADE      = 22 --¸¶¹ý°ø°Ý·Â
POINT_MAGIC_DEF_GRADE      = 23 --¸¶¹ý¹æ¾î·Â
POINT_EMPIRE_POINT         = 24 --Á¦±¹Á¡¼ö
POINT_LEVEL_STEP           = 25 --ÇÑ ·¹º§¿¡¼­ÀÇ ´Ü°è.. (1 2 3 µÉ ¶§ º¸»ó 4 µÇ¸é ·¹º§ ¾÷)
POINT_STAT                 = 26 --´É·ÂÄ¡ ¿Ã¸± ¼ö ÀÖ´Â °³¼ö
POINT_SUB_SKILL            = 27 --º¸Á¶ ½ºÅ³ Æ÷ÀÎÆ®
POINT_SKILL                = 28 --¾×Ƽºê ½ºÅ³ Æ÷ÀÎÆ®
POINT_WEAPON_MIN            = 29 --¹«±â ÃÖ¼Ò µ¥¹ÌÁö
POINT_WEAPON_MAX            = 30 --¹«±â ÃÖ´ë µ¥¹ÌÁö
POINT_PLAYTIME             = 31 --Ç÷¹À̽ð£
POINT_HP_REGEN             = 32 --HP ȸº¹·ü
POINT_SP_REGEN             = 33 --SP ȸº¹·ü

POINT_BOW_DISTANCE         = 34 --È° »çÁ¤°Å¸® Áõ°¡Ä¡ (meter)

POINT_HP_RECOVERY          = 35 --ü·Â ȸº¹ Áõ°¡·®
POINT_SP_RECOVERY          = 36 --Á¤½Å·Â ȸº¹ Áõ°¡·®

POINT_POISON_PCT           = 37 --µ¶ È®·ü
POINT_STUN_PCT             = 38 --±âÀý È®·ü
POINT_SLOW_PCT             = 39 --½½·Î¿ì È®·ü
POINT_CRITICAL_PCT         = 40 --Å©¸®Æ¼Äà Ȯ·ü
POINT_PENETRATE_PCT        = 41 --°üÅëŸ°Ý È®·ü
POINT_CURSE_PCT            = 42 --ÀúÁÖ È®·ü

POINT_ATTBONUS_HUMAN       = 43 --Àΰ£¿¡°Ô °­ÇÔ
POINT_ATTBONUS_ANIMAL      = 44 --µ¿¹°¿¡°Ô µ¥¹ÌÁö % Áõ°¡
POINT_ATTBONUS_ORC         = 45 --¿õ±Í¿¡°Ô µ¥¹ÌÁö % Áõ°¡
POINT_ATTBONUS_MILGYO      = 46 --¹Ð±³¿¡°Ô µ¥¹ÌÁö % Áõ°¡
POINT_ATTBONUS_UNDEAD      = 47 --½Ãü¿¡°Ô µ¥¹ÌÁö % Áõ°¡
POINT_ATTBONUS_DEVIL       = 48 --¸¶±Í(¾Ç¸¶)¿¡°Ô µ¥¹ÌÁö % Áõ°¡
POINT_ATTBONUS_INSECT      = 49 --¹ú·¹Á·
POINT_ATTBONUS_FIRE        = 50 --È­¿°Á·
POINT_ATTBONUS_ICE         = 51 --ºù¼³Á·
POINT_ATTBONUS_DESERT      = 52 --»ç¸·Á·
POINT_ATTBONUS_MONSTER     = 53 --¸ðµç ¸ó½ºÅÍ¿¡°Ô °­ÇÔ
POINT_ATTBONUS_WARRIOR     = 54 --¹«»ç¿¡°Ô °­ÇÔ
POINT_ATTBONUS_ASSASSIN    = 55 --ÀÚ°´¿¡°Ô °­ÇÔ
POINT_ATTBONUS_SURA        = 56 --¼ö¶ó¿¡°Ô °­ÇÔ
POINT_ATTBONUS_SHAMAN        = 57 --¹«´ç¿¡°Ô °­ÇÔ

-- ADD_TRENT_MONSTER
POINT_ATTBONUS_TREE         = 58 --³ª¹«¿¡°Ô °­ÇÔ 20050729.myevan UNUSED5
-- END_OF_ADD_TRENT_MONSTER
POINT_RESIST_WARRIOR        = 59 --¹«»ç¿¡°Ô ÀúÇ×
POINT_RESIST_ASSASSIN        = 60 --ÀÚ°´¿¡°Ô ÀúÇ×
POINT_RESIST_SURA            = 61 --¼ö¶ó¿¡°Ô ÀúÇ×
POINT_RESIST_SHAMAN        = 62 --¹«´ç¿¡°Ô ÀúÇ×

POINT_STEAL_HP             = 63 --»ý¸í·Â Èí¼ö
POINT_STEAL_SP             = 64 --Á¤½Å·Â Èí¼ö

POINT_MANA_BURN_PCT        = 65 --¸¶³ª ¹ø

--/ ÇÇÇؽà º¸³Ê½º =/

POINT_DAMAGE_SP_RECOVER    = 66 --°ø°Ý´çÇÒ ½Ã Á¤½Å·Â ȸº¹ È®·ü

POINT_BLOCK                = 67 --ºí·°À²
POINT_DODGE                = 68 --ȸÇÇÀ²

POINT_RESIST_SWORD         = 69
POINT_RESIST_TWOHAND       = 70
POINT_RESIST_DAGGER        = 71
POINT_RESIST_BELL          = 72
POINT_RESIST_FAN           = 73
POINT_RESIST_BOW           = 74  --È­»ì   ÀúÇ×   : ´ë¹ÌÁö °¨¼Ò
POINT_RESIST_FIRE          = 75  --È­¿°   ÀúÇ×   : È­¿°°ø°Ý¿¡ ´ëÇÑ ´ë¹ÌÁö °¨¼Ò
POINT_RESIST_ELEC          = 76  --Àü±â   ÀúÇ×   : Àü±â°ø°Ý¿¡ ´ëÇÑ ´ë¹ÌÁö °¨¼Ò
POINT_RESIST_MAGIC         = 77  --¼ú¹ý   ÀúÇ×   : ¸ðµç¼ú¹ý¿¡ ´ëÇÑ ´ë¹ÌÁö °¨¼Ò
POINT_RESIST_WIND          = 78  --¹Ù¶÷   ÀúÇ×   : ¹Ù¶÷°ø°Ý¿¡ ´ëÇÑ ´ë¹ÌÁö °¨¼Ò

POINT_REFLECT_MELEE        = 79 --°ø°Ý ¹Ý»ç

--/ Ư¼ö ÇÇÇؽà =/
POINT_REFLECT_CURSE        = 80 --ÀúÁÖ ¹Ý»ç
POINT_POISON_REDUCE        = 81 --µ¶µ¥¹ÌÁö °¨¼Ò

--/ Àû ¼Ò¸ê½Ã =/
POINT_KILL_SP_RECOVER        = 82 --Àû ¼Ò¸ê½Ã MP ȸº¹
POINT_EXP_DOUBLE_BONUS        = 83
POINT_GOLD_DOUBLE_BONUS        = 84
POINT_ITEM_DROP_BONUS        = 85

--/ ȸº¹ °ü·Ã =/
POINT_POTION_BONUS            = 86
POINT_KILL_HP_RECOVERY        = 87

POINT_IMMUNE_STUN            = 88
POINT_IMMUNE_SLOW            = 89
POINT_IMMUNE_FALL            = 90
--========

POINT_PARTY_ATTACKER_BONUS        = 91
POINT_PARTY_TANKER_BONUS        = 92

POINT_ATT_BONUS            = 93
POINT_DEF_BONUS            = 94

POINT_ATT_GRADE_BONUS        = 95
POINT_DEF_GRADE_BONUS        = 96
POINT_MAGIC_ATT_GRADE_BONUS    = 97
POINT_MAGIC_DEF_GRADE_BONUS    = 98

POINT_RESIST_NORMAL_DAMAGE        = 99

POINT_HIT_HP_RECOVERY        = 100
POINT_HIT_SP_RECOVERY         = 101
POINT_MANASHIELD            = 102 --Èæ½Å¼öÈ£ ½ºÅ³¿¡ ÀÇÇÑ ¸¶³ª½¯µå È¿°ú Á¤µµ

POINT_PARTY_BUFFER_BONUS        = 103
POINT_PARTY_SKILL_MASTER_BONUS    = 104

POINT_HP_RECOVER_CONTINUE        = 105
POINT_SP_RECOVER_CONTINUE        = 106

POINT_STEAL_GOLD            = 107
POINT_POLYMORPH            = 108 --º¯½ÅÇÑ ¸ó½ºÅÍ ¹øÈ£
POINT_MOUNT                = 109 --Ÿ°íÀÖ´Â ¸ó½ºÅÍ ¹øÈ£

POINT_PARTY_HASTE_BONUS        = 110
POINT_PARTY_DEFENDER_BONUS        = 111
POINT_STAT_RESET_COUNT        = 112 --ÇÇÀÇ ´Ü¾à »ç¿ëÀ» ÅëÇÑ ½ºÅÝ ¸®¼Â Æ÷ÀÎÆ® (1´ç 1Æ÷ÀÎÆ® ¸®¼Â°¡´É)

POINT_HORSE_SKILL            = 113

POINT_MALL_ATTBONUS        = 114 --°ø°Ý·Â +x%
POINT_MALL_DEFBONUS        = 115 --¹æ¾î·Â +x%
POINT_MALL_EXPBONUS        = 116 --°æÇèÄ¡ +x%
POINT_MALL_ITEMBONUS        = 117 --¾ÆÀÌÅÛ µå·ÓÀ² x/10¹è
POINT_MALL_GOLDBONUS        = 118 --µ· µå·ÓÀ² x/10¹è

POINT_MAX_HP_PCT            = 119 --ÃÖ´ë»ý¸í·Â +x%
POINT_MAX_SP_PCT            = 120 --ÃÖ´ëÁ¤½Å·Â +x%

POINT_SKILL_DAMAGE_BONUS        = 121 --½ºÅ³ µ¥¹ÌÁö *(100+x)%
POINT_NORMAL_HIT_DAMAGE_BONUS    = 122 --ÆòŸ µ¥¹ÌÁö *(100+x)%

-- DEFEND_BONUS_ATTRIBUTES
POINT_SKILL_DEFEND_BONUS        = 123 --½ºÅ³ ¹æ¾î µ¥¹ÌÁö
POINT_NORMAL_HIT_DEFEND_BONUS    = 124 --ÆòŸ ¹æ¾î µ¥¹ÌÁö
-- END_OF_DEFEND_BONUS_ATTRIBUTES

-- PC_BANG_ITEM_ADD
POINT_PC_BANG_EXP_BONUS        = 125 --PC¹æ Àü¿ë °æÇèÄ¡ º¸³Ê½º
POINT_PC_BANG_DROP_BONUS        = 126 --PC¹æ Àü¿ë µå·Ó·ü º¸³Ê½º
-- END_PC_BANG_ITEM_ADD
-- POINT_MAX_NUM = 128    common/length.h
-- point type start

function farbe(name) chat(color256(0, 0, 255)..name..color256(0, 0, 255)) end
function say_blue(name) say(color256(0, 0, 255)..name..color256(0, 0, 255)) end
function say_red(name) say(color256(255, 0, 0)..name..color256(255, 0, 0)) end
function say_green(name) say(color256(0, 238, 0)..name..color256(0, 238, 0)) end
function say_gold(name) say(color256(255, 215, 0)..name..color256(255, 215, 0)) end
function say_black(name) say(color256(0, 0, 0)..name..color256(0, 0, 0)) end
function say_white(name) say(color256(255, 255, 255)..name..color256(255, 255, 255)) end
function say_yellow(name) say(color256(255, 255, 0)..name..color256(255, 255, 0)) end
function say_blue2(name) say(color256(0, 206, 209)..name..color256(0, 206, 209)) end


function npc.is_metin()
    local nr = mysql_query("select metin from player.mob_proto where vnum = '"..npc.get_race().."';")
    if tonumber(nr) == 1 then return true
    else return false
    end
end

function give_dm(z)
    os.execute("mysql -u root account --execute='UPDATE account SET cash = cash + ".. z .." WHERE id = ".. pc.get_account_id() ..";'")
    os.execute("mysql -u root log --execute='INSERT INTO voucher_log (account_id, pocet, cas) VALUES (".. pc.get_account_id() ..", ".. z ..", NOW());'")
end

function setenergy(typ,value,timez)
    pc.setqf("energy_value", value)
    pc.setqf("energy_date", get_time() + timez)
    pc.setqf("energy_typ", typ)
end
function setenergytime(timez)
    pc.setqf("energy_date", timez)
end
function getenergytyp()
    return pc.getqf("energy_typ")
end
function getenergyvalue()
    return pc.getqf("energy_value")
end
function getenergytime()
    return pc.getqf("energy_date")
end

function split(str, delim, maxNb)
    if str == nil then return str end
    if string.find(str, delim) == nil then return { str } end
    if maxNb == nil or maxNb < 1 then maxNb = 0 end
    local result = {}
    local pat = "(.-)" .. delim .. "()"
    local nb = 0
    local lastPos
    for part, pos in string.gfind(str, pat) do
        nb = nb + 1
        result[nb] = part
        lastPos = pos
        if nb == maxNb then break end
    end
    if nb ~= maxNb then result[nb + 1] = string.sub(str, lastPos) end
    return result
end



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) -- für MySQL51
    os.execute('mysql '..pre..' -e'..string.format('%q',query)..' > '..fi) -- für MySQL55
    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,
        out[i-1]               = out[i-1] or {}
        out[i-1][a]            = tonumber( or b or 'NULL'
        out[t[1][a]]           = out[t[1][a]] or {}
        out[t[1][a]][i-1]      = tonumber( or b or 'NULL'
    end) end
    return out
end

-- Entferne Leerzeichen vor und nach dem String
function string.trim(str)
    return (string.gsub(str, "^%s*(.-)%s*$", "%1"))
end
-- String zu Array über Seperator
function string.explode(str, sep)
    if sep == "" or str == "" then
        error("Fehlende Parameter")
    end
    local pos, t = 1, {}
    for s, e in function() return string.find(str, sep, pos) end do
        table.insert(t, string.trim(string.sub(str, pos, s-1)))
        pos = e+1
    end
    table.insert(t, string.trim(string.sub(str, pos)))
    return t
end  

function pc.say_msg(text)
    say_reward(text)
end

function string:split(delimiter)
local result = {}
local from = 1
local delim_from, delim_to = string.find(self, delimiter, from)
 
while delim_from do
table.insert(result, string.sub(self, from , delim_from-1))
from = delim_to + 1
delim_from, delim_to = string.find(self, delimiter, from)
end
table.insert(result, string.sub(self, from))
return result
end
 

get_mob_level = { [2051] = 65, [2052] = 67, [2053] = 69, [2054] = 71, [2055] = 73, [11116] = 90, [2061] = 60, [2062] = 62, [2063] = 64, [2064] = 66, [2065] = 68, [2071] = 70, [2072] = 72, [2073] = 74, [2074] = 76, [2075] = 78, [2076] = 78, [11117] = 90, [2091] = 60, [2092] = 79, [2093] = 65, [2094] = 72, [2095] = 70, [2101] = 19, [2102] = 37, [2103] = 39, [2104] = 44, [2105] = 47, [2106] = 48, [2107] = 51, [2108] = 54, [5131] = 22, [2401] = 87, [5132] = 25, [2402] = 89, [5133] = 27, [2131] = 60, [2132] = 62, [2133] = 64, [2134] = 66, [2135] = 68, [101] = 1, [102] = 3, [103] = 4, [2152] = 37, [105] = 9, [106] = 13, [107] = 16, [108] = 7, [109] = 10, [110] = 12, [111] = 15, [112] = 19, [113] = 21, [114] = 18, [115] = 24, [5141] = 35, [131] = 8, [132] = 9, [133] = 11, [134] = 14, [135] = 18, [136] = 21, [137] = 12, [138] = 15, [139] = 17, [140] = 20, [141] = 24, [142] = 26, [143] = 24, [144] = 29, [151] = 9, [152] = 16, [153] = 10, [154] = 21, [2203] = 70, [2204] = 71, [2205] = 72, [2206] = 73, [2207] = 78, [171] = 1, [172] = 3, [173] = 4, [174] = 6, [175] = 9, [2224] = 71, [177] = 16, [178] = 7, [179] = 10, [180] = 12, [181] = 15, [182] = 19, [183] = 21, [184] = 18, [185] = 24, [2234] = 71, [2235] = 72, [191] = 30, [192] = 31, [193] = 33, [194] = 35, [5153] = 49, [5157] = 54, [2291] = 75, [2292] = 99, [2293] = 99, [5161] = 30, [2301] = 65, [2302] = 67, [2303] = 69, [2304] = 70, [2305] = 71, [2306] = 84, [2307] = 86, [2311] = 74, [2312] = 76, [2313] = 77, [2314] = 80, [2315] = 82, [301] = 18, [302] = 20, [303] = 25, [304] = 25, [8501] = 35, [8502] = 30, [8503] = 25, [8504] = 5, [8505] = 10, [8506] = 12, [8507] = 15, [8508] = 20, [8509] = 25, [8510] = 21, [8511] = 11, [331] = 18, [332] = 20, [333] = 25, [334] = 25, [351] = 18, [352] = 20, [353] = 25, [354] = 25, [2403] = 89, [2404] = 90, [2411] = 91, [2412] = 93, [2413] = 95, [2414] = 97, [2451] = 84, [5127] = 54, [2452] = 86, [2431] = 80, [2432] = 82, [2433] = 82, [2434] = 83, [2454] = 90, [391] = 23, [392] = 26, [393] = 28, [394] = 31, [395] = 23, [396] = 26, [397] = 28, [398] = 31, [401] = 26, [402] = 27, [403] = 29, [404] = 30, [405] = 33, [406] = 35, [8600] = 73, [8601] = 86, [8602] = 73, [8603] = 86, [8604] = 73, [8605] = 86, [8606] = 73, [8607] = 86, [8608] = 73, [8609] = 86, [8610] = 73, [8611] = 86, [8612] = 73, [8613] = 86, [8614] = 73, [8615] = 86, [8616] = 86, [11108] = 70, [431] = 31, [432] = 33, [433] = 35, [434] = 36, [435] = 38, [436] = 40, [2491] = 93, [2492] = 95, [2493] = 97, [2494] = 88, [2495] = 90, [451] = 26, [452] = 27, [453] = 29, [454] = 30, [455] = 33, [456] = 35, [2505] = 83, [2506] = 84, [2507] = 85, [2508] = 79, [2509] = 80, [2510] = 81, [2511] = 82, [2512] = 83, [2513] = 84, [2514] = 86, [1175] = 65, [491] = 32, [492] = 37, [493] = 39, [494] = 45, [2543] = 81, [2544] = 82, [2545] = 83, [2546] = 84, [2547] = 86, [501] = 29, [502] = 32, [503] = 35, [504] = 36, [531] = 35, [532] = 37, [533] = 40, [534] = 42, [2591] = 89, [2592] = 89, [2593] = 89, [2594] = 89, [2595] = 89, [2596] = 89, [2597] = 91, [2598] = 91, [551] = 29, [552] = 32, [553] = 35, [554] = 36, [2482] = 92, [2483] = 94, [2484] = 96, [5134] = 29, [591] = 42, [595] = 42, [601] = 26, [602] = 29, [603] = 31, [604] = 33, [2151] = 19, [104] = 6, [631] = 34, [632] = 36, [633] = 39, [634] = 40, [635] = 44, [636] = 46, [637] = 49, [2155] = 47, [2156] = 48, [651] = 34, [652] = 36, [653] = 39, [654] = 40, [2157] = 51, [656] = 46, [657] = 49, [2158] = 54, [2501] = 79, [2502] = 80, [2503] = 81, [5001] = 10, [2504] = 82, [691] = 50, [692] = 55, [693] = 60, [701] = 35, [702] = 38, [703] = 41, [704] = 44, [705] = 48, [706] = 49, [707] = 51, [731] = 52, [732] = 53, [733] = 54, [734] = 54, [735] = 55, [736] = 56, [737] = 57, [751] = 35, [752] = 38, [753] = 41, [754] = 44, [755] = 48, [756] = 49, [757] = 51, [771] = 52, [772] = 53, [773] = 54, [774] = 54, [775] = 55, [776] = 56, [777] = 57, [7050] = 35, [2481] = 91, [791] = 54, [792] = 62, [793] = 64, [794] = 72, [795] = 54, [796] = 62, [7051] = 31, [7001] = 52, [7002] = 53, [2191] = 67, [7004] = 54, [7005] = 55, [7006] = 56, [7007] = 56, [7008] = 52, [2192] = 72, [7010] = 54, [11107] = 70, [7012] = 52, [7013] = 53, [7014] = 54, [7015] = 54, [7016] = 55, [7017] = 56, [7018] = 56, [7019] = 59, [7020] = 59, [7021] = 60, [7022] = 61, [7023] = 62, [7024] = 64, [7025] = 66, [7026] = 67, [7027] = 70, [7028] = 72, [7029] = 35, [7030] = 31, [7031] = 33, [7032] = 35, [7033] = 36, [7034] = 38, [7035] = 40, [7036] = 52, [7037] = 53, [7038] = 54, [7039] = 54, [7040] = 55, [7041] = 56, [7042] = 57, [7043] = 81, [7044] = 81, [901] = 49, [902] = 51, [903] = 53, [904] = 55, [905] = 58, [906] = 58, [907] = 59, [5004] = 80, [5005] = 85, [7054] = 36, [2541] = 79, [7056] = 40, [7057] = 52, [7058] = 53, [7059] = 54, [7060] = 54, [2542] = 80, [7062] = 56, [2201] = 69, [7064] = 81, [7065] = 81, [7066] = 82, [7067] = 83, [7068] = 83, [2202] = 69, [7070] = 85, [7071] = 33, [7072] = 35, [7073] = 36, [7074] = 38, [155] = 24, [932] = 51, [933] = 53, [934] = 55, [935] = 58, [936] = 58, [937] = 59, [7082] = 83, [7083] = 83, [7084] = 84, [7085] = 85, [7086] = 35, [7087] = 36, [7088] = 38, [7089] = 40, [7090] = 54, [7091] = 55, [7092] = 56, [7093] = 57, [7094] = 83, [7095] = 83, [7096] = 84, [7097] = 85, [991] = 59, [992] = 60, [993] = 61, [1001] = 57, [1002] = 58, [1003] = 59, [1004] = 60, [5101] = 22, [5102] = 25, [5103] = 27, [5104] = 29, [5111] = 35, [5112] = 37, [5113] = 39, [5114] = 40, [5115] = 41, [5116] = 42, [5121] = 45, [5122] = 47, [5123] = 49, [5124] = 52, [5125] = 53, [5126] = 54, [1031] = 67, [1032] = 69, [1033] = 70, [1034] = 71, [1035] = 72, [1036] = 73, [1037] = 71, [1038] = 72, [1039] = 73, [1040] = 74, [1041] = 75, [2222] = 69, [5142] = 37, [5143] = 39, [5144] = 40, [5145] = 41, [5146] = 42, [2223] = 70, [11109] = 70, [5151] = 45, [5152] = 47, [176] = 13, [5154] = 52, [5155] = 53, [5156] = 54, [1061] = 67, [1062] = 69, [1063] = 70, [1064] = 71, [1065] = 72, [1066] = 73, [1067] = 71, [1068] = 72, [1069] = 73, [1070] = 74, [1071] = 75, [2227] = 90, [1091] = 75, [1092] = 75, [1093] = 78, [1094] = 75, [1095] = 82, [1096] = 75, [2231] = 69, [1101] = 62, [1102] = 63, [1103] = 64, [1104] = 64, [1105] = 65, [1106] = 66, [1107] = 66, [2233] = 70, [1131] = 81, [1132] = 81, [1133] = 82, [1134] = 83, [1135] = 83, [1136] = 84, [1137] = 85, [1151] = 52, [1152] = 53, [1153] = 54, [1154] = 54, [1155] = 55, [1156] = 56, [1157] = 56, [2221] = 69, [1171] = 62, [1172] = 63, [1173] = 64, [1174] = 64, [2153] = 39, [1176] = 66, [1177] = 66, [1191] = 70, [1192] = 70, [11110] = 70, [2154] = 44, [11505] = 100, [11506] = 100, [11507] = 100, [11508] = 100, [11509] = 100, [11510] = 100, [2225] = 72, [1301] = 57, [1302] = 59, [1303] = 58, [1304] = 75, [1305] = 61, [1306] = 75, [1307] = 80, [1308] = 40, [1309] = 65, [1310] = 95, [7045] = 82, [7046] = 83, [2226] = 60, [7047] = 83, [7048] = 84, [1331] = 57, [1332] = 59, [1333] = 58, [1334] = 75, [1335] = 61, [5002] = 75, [5003] = 1, [7052] = 33, [11111] = 70, [7053] = 35, [7055] = 38, [1401] = 66, [1402] = 73, [1403] = 77, [7061] = 55, [7003] = 54, [7063] = 57, [5162] = 43, [7069] = 84, [5163] = 55, [931] = 49, [7076] = 54, [2232] = 69, [1501] = 69, [1502] = 72, [1503] = 76, [7078] = 55, [7079] = 56, [7080] = 57, [7081] = 82, [7075] = 40, [11100] = 50, [7077] = 54, [7009] = 53, [1601] = 68, [1602] = 70, [1603] = 75, [11101] = 50, [11102] = 50, [11113] = 90, [11103] = 50, [11104] = 50, [7049] = 85, [11105] = 50, [11106] = 70, [655] = 44, [1901] = 72, [1902] = 77, [1903] = 82, [1904] = 40, [1905] = 65, [1906] = 95, [11112] = 90, [2453] = 88, [11114] = 90, [2001] = 43, [2002] = 45, [2003] = 48, [2004] = 50, [2005] = 52, [11115] = 90, [2031] = 50, [2032] = 52, [2033] = 54, [2034] = 56, [2035] = 58, [2036] = 58, }

dofile("/usr/home/game/quest/cube.lua")

Share this post


Link to post
  • 0

now, i have add a my.cnf at /etc/my.cnf with the code:

[client]
socket = /tmp/mysql.sock

[mysqld]
socket = /tmp/mysql.sock

 

no mysql.sock error and quest dont`t work...... i use the invoice files

Share this post


Link to post
  • 0

You had nothing at my.cnf? D: That explains it

 

Okay, now have a look at the db syslog/syserr again.

Share this post


Link to post
  • 0

error was the same, than no error but no item, quest dont work. i have reinstall mysql 55 without my.cnf. now, the same... no error and no working quest. i get crazy

 

 

and i try the quest with the lauling files v3 too, but no error, no working quest Oo

 

maybe, i use crap files ? i dont understand ths all.....

Share this post


Link to post
  • 0

You can simply use item.get_value and item.set_value instead of mysql_query.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.