Tak prosím:
function round(num, idp)
local mult = 10^(idp or 0)
return math.floor(num * mult + 0.5) / mult
end
function pvp_enter_cmd(player,args,type)
if not player:isInCombat() and not player:isInFlight() and not player:isDead() then
local myx = player:GetPositionX();
local myy = player:GetPositionY();
local myz = player:GetPositionZ();
local mymap = player:GetMapId();
local mypvpid = tonumber(player:GetGUIDLow());
queryString = "SELECT `time_enter` FROM `pvp_cmd_data` WHERE `playerid`="..mypvpid;
local query = sDatabase:Query(queryString)
local pvptimenow = os.time();
if query ~= nil and query:GetRowCount() > 0 then
local gotpvpdata = query:Fetch()
local cooldown = gotpvpdata[0]:GetInt32()
--local mymap = gotpvpdata[1]:GetString()
if (pvptimenow - cooldown) >= 1800 then
sDatabase:Execute("DELETE FROM `pvp_cmd_data` WHERE `playerid`="..mypvpid.."");
sDatabase:Execute("INSERT INTO `pvp_cmd_data` VALUES("..pvptimenow..", "..mypvpid..", "..mymap..", "..pvptimenow..", 1, "..myx..", "..myy..", "..myz..")")
if player:isGameMaster() then
player:TeleportTo( 0 , -13228.1, 227.833, 32.8926 , 1.06 ,true ,true ,true )
else
player:TeleportTo( 0 , -13228.1, 227.833, 32.8926 , 1.06 ,true ,true,false )
end
else
local pvpwaittime = ((1800 - (pvptimenow - cooldown)) / 60)
local newtime = round(pvpwaittime, 1)
player:SendSysMessage("Jeste to nemuzes provest, pockej jeste "..newtime.." minut.")
end
else
--sDatabase:Execute("INSERT INTO `pvp_cmd_data` VALUES("..pvptimenow..", "..mypvpid..", "..mymap..","..pvptimenow..",1)")
sDatabase:Execute("INSERT INTO `pvp_cmd_data` VALUES("..pvptimenow..", "..mypvpid..", "..mymap..", "..pvptimenow..", 1, "..myx..", "..myy..", "..myz..")")
if player:isGameMaster() then
player:TeleportTo( 0 , -13228.1, 227.833, 32.8926 , 1.06 ,true ,true ,true )
else
player:TeleportTo( 0 , -13228.1, 227.833, 32.8926 , 1.06 ,true ,true ,false )
end
end
end
return true
end
register_lua_script_command(".pvpenter","pvp_enter_cmd")
function pvp_leave_cmd(player,args,type)
if not player:isInCombat() and not player:isInFlight() and not player:isDead() then
local mypvpid = tonumber(player:GetGUIDLow());
queryString = "SELECT `mymap` , `time_leave` , `in_arena` , `myx` , `myy` , `myz` FROM `pvp_cmd_data` WHERE `playerid`="..mypvpid;
local query = sDatabase:Query(queryString)
local pvptimenow = os.time();
if query ~= nil and query:GetRowCount() > 0 then
local gotpvpdata = query:Fetch()
local gomapid = gotpvpdata[0]:GetInt32()
local cooldown = gotpvpdata[1]:GetInt32()
local canleave = gotpvpdata[2]:GetInt32()
local gox = gotpvpdata[3]:GetInt32()
local goy = gotpvpdata[4]:GetInt32()
local goz = (gotpvpdata[5]:GetInt32()+1)
if canleave == 1 then
if (pvptimenow - cooldown) >= 60 then
--player:TeleportTo( 0 , -14406.59, 419.35, 22.39 , 1.06 ,true ,true )
if player:isGameMaster() then
player:TeleportTo( gomapid , gox , goy , goz , 1.06 ,true ,true, true )
else
player:TeleportTo( gomapid , gox , goy , goz , 1.06 ,true ,true, false )
end
sDatabase:Execute("UPDATE `pvp_cmd_data` SET `in_arena`='0' WHERE `playerid`='"..mypvpid.."'")
else
local pvpwaittime = ((60 - (pvptimenow - cooldown)) / 60)
local newtime = round(pvpwaittime, 1)
player:SendSysMessage("Prave jsi sem prisel, musis pockat minimalne "..newtime.." minut.")
end
else
player:SendSysMessage("Musis byt v Arene! Napis .pvpenter")
end
end
end
return true
end
register_lua_script_command(".pvpleave","pvp_leave_cmd")