Bem esse script é baseado em um antigo post do Gustavo ( http://www.xtibia.co...to-save-player/ ) aqui no XTibia, um sistema que executa um save a cada 30 Minutos no Player assim evitando de rollback caso o servidor cair.
Sistema de LOG_IP, é uma boa eu uso pra gravar o IP do player, ajuda muito a identificar players que tentam Nukar o servidor, assim facilitando deletar os personagens dele !
savePlayer.lua
local save = {}
function saveRepeat(cid)
if not isPlayer(cid) then return true end
doPlayerSave(cid)
doPlayerSendTextMessage(cid,19, 'Your character\'s progress is saved.')
doSendMagicEffect(getThingPos(cid), 11)
save[cid] = addEvent(saveRepeat, math.random(30,43) *60*1000, cid)
end
function onLogin(cid)
save[cid] = addEvent(saveRepeat, math.random(30,43)*60*1000, cid)
return true
end
function onLogout(cid)
stopEvent(save[cid])
return true
end
vá no creaturescripts.xml e adicione isso.
<event type="login" name="savePlayer" event="script" value="savePlayer.lua" />
<event type="logout" name="savePlayer_L" event="script" value="savePlayer.lua" />
apos feito isso, vá até o login.lua e adicione isso antes o return true
registerCreatureEvent(cid, "savePlayer_L")
Sistema log_IP.lua
function onLogin(cid)
local tmp = {playerName = getPlayerName(cid), ip = getPlayerIp(cid)}
db.executeQuery("UPDATE `players` SET `ip` = '" .. doConvertIntegerToIp(tmp.ip) .. "' WHERE name = '"..tmp.playerName.."';")
return true
end
Após feito o arquivo do Script, execute esse comando no seu Banco de dados.
ALTER TABLE players ADD ip varchar(255) NOT NULL
Créditos: OTland Sync