Bug safado Double exp!

Nosifero
em Scripts

Nosifero

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 14/11/11Posts: 84Gênero: MasculinoChar no Tibia: Nosifero

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

warotserv

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/09/13Posts: 25

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.

Nosifero

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 14/11/11Posts: 84Gênero: MasculinoChar no Tibia: Nosifero

Não consigo fazer o script funcionar certinho ... Não sou tão bom em programação ainda, acho que deveria mudar o script :(

warotserv

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/09/13Posts: 25

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.

Nosifero

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 14/11/11Posts: 84Gênero: MasculinoChar no Tibia: Nosifero

hmmmmmmmmmmmm

warotserv

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/09/13Posts: 25

Nosifero, caso ainda não tenha conseguido por favor, me fale.