Postado Abril 6, 2015 10 anos Pessoal, eu tenho um script que da bonus 50% exp para P.A, e que funcioa 100% Ele esta no creature scripts, com evento kill registrado no login. local rate = 50 --- porcentagem que irá ganhar a mais. function onKill(cid, target, lastHit) if isPremium(cid) then local monster = Monster(target) if not monster then return true end for id, damage in pairs(monster:getDamageMap()) do local player = Player(id) if player then local experience = damage.total / monster:getType():getHealth() * monster:getType():getExperience() local expFormula = ((experience / 100) * rate) player:addExperience(math.floor(expFormula), true) local mensagem_premium = "You have "..player:getPremiumDays().." and 50% more experience." if isPremium(cid) then player:sendTextMessage(MESSAGE_STATUS_DEFAULT, mensagem_premium) end end end end return true end Agora, eu tentei fazer um double exp, um item que da um storage por x tempo, e quem tem o storage ganha 2 exp. Usei o mesmo script para fazer isso, mas não deu certo (eu registrei o evento no login) local rate = 100 --- porcentagem que irá ganhar a mais. function onKill(cid, target, lastHit) local thing = self:getStorageValue(80000) if thing > os.time() then local monster = Monster(target) if not monster then return true end for id, damage in pairs(monster:getDamageMap()) do local player = Player(id) if player then local experience = damage.total / monster:getType():getHealth() * monster:getType():getExperience() local expFormula = ((experience / 100) * rate) player:addExperience(math.floor(expFormula), true) end end end return true end Não da certo, alguém sabe onde ta errando?
Postado Abril 6, 2015 10 anos Não tenho certeza, mas um ganhar exp por matar o bixo, e o outro por clicar em item, então as funções mudam. E se não me engano, double exp é em mods ou actions e/ ou sem creaturescripts. Editado Abril 6, 2015 10 anos por thiagobji (veja o histórico de edições)
Postado Abril 6, 2015 10 anos Autor Não thiago, você não entendeu. O primeiro script, que ESTA FUCIONANDO, da 50% exp para player que for premium if isPremium(cid) then O segundo script, que da double exp para o player que tiver o storage, a diferença dos 2 scripts é só a do if local thing = self:getStorageValue(80000) if thing > os.time() then Não importa se o player conseguiu o storage por item ou não, não faz diferença. Se o primeiro script ta funcionando, porque o segundo não esta? Sendo que eu só mudei o que era necessário para adquirir o double exp.
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.