Играй в любимую игру на ста... (2)

[ Сегодня были () · Новые сообщения · Правила форума (обновлено) · Поиск · Реклама ]
  • Страница 1 из 1
  • 1
Топ серверов пиратии Go piratia » Серверная » Рейты, дроп, монстры, нпсы, предметы, феи » ItemTimer
ItemTimer
Souls_Helling Дата: Среда, 29.04.2020, 08:33 | Сообщение # 1
Офлайн

Высший ранг (450+)
Сообщений: 1203
Награды: 14
Репутация: 42
Замечания: 0%
DirectoryTimer = "script/AddonSystem/ItemTimerLog/"

function CheckTimerTable(cha_role)

local file = io.open( GetResPath(DirectoryTimer)..GetRoleID(cha_role)..".txt", "r" )

if file == nil then
file = io.open( GetResPath(DirectoryTimer)..GetRoleID(cha_role)..".txt", "w" )
file:write("\200\236\255 \239\229\240\241\238\237\224\230\224 ["..GetChaDefaultName(cha_role).."]")
end

file:close()

return 1

end

function ItemNoInTable(cha_role, item_id)

local file = io.open( GetResPath(DirectoryTimer)..GetRoleID(cha_role)..".txt", "r" )

local is_valid = 0

for line in file:lines() do 

local str = explode(" ", line)

if (tonumber(str[1]) == item_id) then

is_valid = 1
break

end

end

file:close()

return is_valid

end

function InsertNewTimer(cha_role, item_id, timer_time)

local file = io.open( GetResPath(DirectoryTimer)..GetRoleID(cha_role)..".txt", "a+" )
file:write("\n"..item_id.." "..timer_time )
file:close()

end

function IsVaildIdTime(cha_role, item_id)

local file = io.open( GetResPath(DirectoryTimer)..GetRoleID(cha_role)..".txt", "r" )

local time = 0

for line in file:lines() do 

local str = explode(" ", line)

if (tonumber(str[1]) == item_id) then

time = tonumber(str[2])
break

end

end

file:close()

return time

end

function GetWaitTime(wait_time)

local result = 0


if (wait_time - os.time() > 0) then
result = wait_time - os.time()
end

return result

end

function UpdateOldTimer(cha_role, item_id, timer_time)

ItemArray = ""

local file_read = io.open( GetResPath(DirectoryTimer)..GetRoleID(cha_role)..".txt", "r" )

local number_line = 0

for line in file_read:lines() do 

if (number_line > 0) then

local str = explode(" ", line)

if (tonumber(str[1]) == item_id) then

ItemArray =ItemArray.."\n"..str[1].." "..timer_time

else

ItemArray = ItemArray.."\n"..line

end

else

ItemArray = ItemArray..line

end

number_line = number_line + 1

end

file_read:close()


local file_write = io.open( GetResPath(DirectoryTimer)..GetRoleID(cha_role)..".txt", "w+" )

file_write:write(ItemArray)

file_write:close()

end

function GetNameByDate (waitValid)

local dates = ""

if (waitValid < 60) then

dates = "00:"..waitValid

else

local ojidanie = math.floor(waitValid / 60)
local ostatok = waitValid - (ojidanie * 60)

if (ojidanie < 10) then

if (ostatok < 10) then

dates = "0"..ojidanie..":".."0"..ostatok

else

dates = "0"..ojidanie..":"..ostatok

end

else

if (ostatok < 10) then

dates = ojidanie..":".."0"..ostatok

else

dates = ojidanie..":"..ostatok

end

end



end

return dates

end

function SetTimer(cha_role, item_id, timer_time, state_name, state_lv)

if (CheckTimerTable(cha_role) == 1) then

local StateLv = GetChaStateLv( cha_role, state_name )

if (StateLv == state_lv and ItemNoInTable(cha_role, item_id) == 1) then

local wait_time = IsVaildIdTime(cha_role, item_id)
local waitValid = GetWaitTime(wait_time)
local getWaitName  = GetNameByDate(waitValid)
if (waitValid > 0) then
SystemNotice(cha_role, "["..GetItemName(item_id).."] \243\230\229 \232\241\239\238\235\252\231\243\229\242\241\255, \238\241\242\224\235\238\241\252 \239\238\228\238\230\228\224\242\252 "..getWaitName..".")
end

return 0

else


local new_timer = os.time() + timer_time

if (ItemNoInTable(cha_role, item_id) == 0) then

InsertNewTimer(cha_role, item_id, new_timer)

else

UpdateOldTimer(cha_role, item_id, new_timer)

end

end

end

return 1

end
 

Топ серверов пиратии Go piratia » Серверная » Рейты, дроп, монстры, нпсы, предметы, феи » ItemTimer
  • Страница 1 из 1
  • 1
Поиск:

Правила чата
Мини-чат
+Мини-чат
0