Ir para conteúdo

Pergunta

Amigos to usando esse certo script meu servidor, ele funciona bem para alguns player porem para outros ele fala que está sendo usado, não estou conseguindo arrumar, o script seria para double exp....

 

local config = {
rate = 2, -- 4x More Experience
time = 1, -- Hours of Exp Time
storage = 21123
}
local function endExpRate(cid)
if isPlayer(cid) == TRUE then
doPlayerSetRate(cid, SKILL__LEVEL, 1) -- config.lua rate
setPlayerStorageValue(cid, config.storage, -1)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Your extra experience time has ended.")
end
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
if(getPlayerStorageValue(cid, config.storage) < 0) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Your extra experience rate is now: " .. config.rate .. ". It will last for ".. config.time .." hours.")
doPlayerSetRate(cid, SKILL__LEVEL, config.rate)
setPlayerStorageValue(cid, config.storage, os.time() + config.time * 3600)
addEvent(endExpRate, config.time * 3600 * 1000, cid)
doRemoveItem(item.uid, 1)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You still have extra experience time left.")
end
return TRUE

end

 

 

 

 

Nãos ei por o script em lua nesses fórum ehehehhe

Link para o comentário
https://xtibia.com/forum/topic/221661-bug-safado-double-exp/
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Tem que checar se o player está offline e tratar essa "excessão" na função "endExpRate()", não? Vamos supor que na hora de chamar essa função ele esteja offline, ele continuará tendo a exp dobrada.

 

Tentarei ajudar mais:

 

crie mais duas funções nesse script, onLogout e onLogin.

 

Em onLogout você salvará o tempo restante e em onLogin você irá checar, pela storage, se o player ainda possui a experiência dobrada e adicionará um novo evento.

Espero ter ajudado.

Editado por warotserv
Link para o comentário
https://xtibia.com/forum/topic/221661-bug-safado-double-exp/#findComment-1565371
Compartilhar em outros sites

  • 0

function onLogout(params)

if(getPlayerStorageValue(cid, config.storage) > 0) then

setPlayerStorageValue(cid, config.storage, -1)

end

end

 

function onDeath(params)

if(getPlayerStorageValue(cid, config.storage) > 0) then

setPlayerStorageValue(cid, config.storage, -1)

end

end

 

 

 

editado, leia de novo.

Editado por warotserv
Link para o comentário
https://xtibia.com/forum/topic/221661-bug-safado-double-exp/#findComment-1565411
Compartilhar em outros sites

×
×
  • Criar Novo...