era pra voltar, aqui eu testei e funcionou ![]()
info
Grupo: Conde
Registrado: 20/09/12
Posts: 711
Reputação: +86
Char no Tibia: noé

Bom eu fiz o seguinte. Entrei no char.. fiz o comando reloguei..
e desloguei e deixer o server online por 2 horas com o player OFF
Coloquei no script 1 hora só
local Tempo = 1
e quando voltei a entrar não tinha funcionado ! =s
eu ainda usava o comando
Editado Outubro 2 por texz
info
Grupo: Marquês
Registrado: 16/06/07
Posts: 1.2k
Reputação: +377
Gênero: Masculino
Char no Tibia: Nenhum

Maenilse, o problema do seu código é que você não manda o GUID direto pra atualizar no banco de dados quando o jogador está offline. Consertei aqui e adicionei um onLogin pro caso de o servidor cair (se não o cara ia ficar VIP pra sempre).
Código do/a Maenilse consertado:
local storage = 920304 -- storage que ficara armazenado que o player usou o comando
local mensJapegou = "Voce ja pegou seu Tutor por um dia!" -- mensagem de quando ele ja pegou!
local mensPass = "Parabens, agora voce se tornou tutor por um dia!" -- mensagem de parabens
local backGroup = 1 -- Group ID que ira ficar depois de 1 dia
local Tempo = 24
function onSay(cid, words, param, channel)
if getPlayerStorageValue(cid, storage) ~= -1 then
doPlayerSendCancel(cid, mensJapegou)
doSendMagicEffect(getCreaturePosition(cid), 2)
return TRUE
end
setPlayerGroupId(cid, 2)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, mensPass)
doSendMagicEffect(getCreaturePosition(cid), 28)
setPlayerStorageValue(cid, storage, os.time() + Tempo * 3600)
addEvent(removeTutor, Tempo * 60 * 60 * 1000, getPlayerGUID(cid), cid)
return TRUE
end
function removeTutor(guid, cid)
if isCreature(cid) then doRemoveCreature(cid) end
db.executeQuery("UPDATE `players` SET `group_id` = 1 WHERE `id` = "..guid)
return TRUE
end
E aí você registra no creaturescripts.xml essa tag aqui:
<event type="login" name="noVIP" event="script" value="novip.lua"/>
E salva esse código na pasta creaturescripts/scripts como novip.lua
function removeTutor(guid, cid)
if isCreature(cid) then doRemoveCreature(cid) end
db.executeQuery("UPDATE `players` SET `group_id` = 1 WHERE `id` = "..guid)
return TRUE
end
function onLogin(cid)
if getPlayerStorageValue(cid, 920304) >= os.time() and getPlayerGroupId(cid) == 2 then
doPlayerSendTextMessage(cid, 25, 'Seu tempo VIP terminou!')
mayNotMove(cid, true)
addEvent(removeTutor, 2000, getPlayerGUID(cid), cid)
end
return true
end
Editado Outubro 3 por omega blueheaven
info
Grupo: Conde
Registrado: 20/09/12
Posts: 711
Reputação: +86
Char no Tibia: noé

puts vacilo meu, nem tinha visto o erro na query, vlw ae por ajeitar o codigo omega.
Maenilse, o problema do seu código é que você não manda o GUID direto pra atualizar no banco de dados quando o jogador está offline. Consertei aqui e adicionei um onLogin pro caso de o servidor cair (se não o cara ia ficar VIP pra sempre).
Código do/a Maenilse consertado:
local storage = 920304 -- storage que ficara armazenado que o player usou o comando local mensJapegou = "Voce ja pegou seu Tutor por um dia!" -- mensagem de quando ele ja pegou! local mensPass = "Parabens, agora voce se tornou tutor por um dia!" -- mensagem de parabens local backGroup = 1 -- Group ID que ira ficar depois de 1 dia local Tempo = 24 function onSay(cid, words, param, channel) if getPlayerStorageValue(cid, storage) ~= -1 then doPlayerSendCancel(cid, mensJapegou) doSendMagicEffect(getCreaturePosition(cid), 2) return TRUE end setPlayerGroupId(cid, 2) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, mensPass) doSendMagicEffect(getCreaturePosition(cid), 28) setPlayerStorageValue(cid, storage, os.time() + Tempo * 3600) addEvent(removeTutor, Tempo * 60 * 60 * 1000, getPlayerGUID(cid), cid) return TRUE end function removeTutor(guid, cid) if isCreature(cid) then doRemoveCreature(cid) end db.executeQuery("UPDATE `players` SET `group_id` = 1 WHERE `id` = "..guid) return TRUE end
E aí você registra no creaturescripts.xml essa tag aqui:
<event type="login" name="noVIP" event="script" value="novip.lua"/>E salva esse código na pasta creaturescripts/scripts como novip.lua
function removeTutor(guid, cid) if isCreature(cid) then doRemoveCreature(cid) end db.executeQuery("UPDATE `players` SET `group_id` = 1 WHERE `id` = "..guid) return TRUE end function onLogin(cid) if getPlayerStorageValue(cid, 920304) >= os.time() and getPlayerGroupId(cid) == 2 then doPlayerSendTextMessage(cid, 25, 'Seu tempo VIP terminou!') mayNotMove(cid, true) addEvent(removeTutor, 2000, getPlayerGUID(cid), cid) end return true end
Agora então esta tudo ok ?
info
Grupo: Marquês
Registrado: 16/06/07
Posts: 1.2k
Reputação: +377
Gênero: Masculino
Char no Tibia: Nenhum

Espero que sim
.
Vou mover seu tópico pra resolvidos e se não tiver, me avisa que eu movo de volta.
Aconteceu o seguinte !
O player ao relogar volta ao normal =s antes mesmo da hora
Editado Outubro 4 por texz
info
Grupo: Marquês
Registrado: 16/06/07
Posts: 1.2k
Reputação: +377
Gênero: Masculino
Char no Tibia: Nenhum

Opa, tem razão. Corrigi aqui, testa aí:
function removeTutor(guid, cid)
if isCreature(cid) then doRemoveCreature(cid) end
db.executeQuery("UPDATE `players` SET `group_id` = 1 WHERE `id` = "..guid)
return TRUE
end
function onLogin(cid)
if getPlayerStorageValue(cid, 920304) < os.time() and getPlayerGroupId(cid) == 2 then
doPlayerSendTextMessage(cid, 25, 'Seu tempo VIP terminou!')
mayNotMove(cid, true)
addEvent(removeTutor, 2000, getPlayerGUID(cid), cid)
end
return true
end
como ficaria aqui
Tempo * 60 * 60 * 1000,
Se eu fosse usar
LOCAL TEMPO = 10
EM MINUTOS APENAS PARA TEST..
?
Tempo * 60 * 1000,
ASSIM ?




info
Grupo: Campones
Registrado: 04/10/08
Posts: 53
Reputação: +2
Char no Tibia: sir basi
Opa.
Eu fiz a modificação desse seu ai Maenilse
pra 1 hora . Fiz o comando em um char test de deixei ele off por 1 hora.. não voltou ao normal =s