Postado Janeiro 24, 2018 7 anos Autor 17 horas atrás, Nazo disse: Ahhh, agora ficou mais prático de entender xd Vê se funciona, se seu tfs for 1.x é provável que sim. TAG XML em creaturescripts: <event type="kill" name="resetStages" event="script" value="resetstages.lua"/> No creaturescripts/scripts/login.lua: player:registerEvent("resetStages") Em creaturescripts/scripts/ crie o resetstages.lua e coloque o seguinte conteúdo: -- by Nazo (tibiaking.com) config = { storage = 12129 -- storage dos resets } function onKill(cid, target, lastHit) if(getPlayerStorageValue(cid,config.storage) >= 1)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 * Game.getExperienceStage(player:getLevel())) / 100) if(getPlayerStorageValue(cid, config.storage) < 10) then expFormula = expFormula * getPlayerStorageValue(cid, config.storage)*10 else expFormula = expFormula * 90 end player:addExperience(math.floor(expFormula), true) end end end return true end O que acontece aqui, é que o script pega o número de resets do players, multiplica por 10 e tira de porcentagem no monstro morto, exemplo: Tenho 5 resets, matei um monstro que dá 100 de xp, o script multiplica meus resets por 10 (que dá 50) e tira de porcentagem da xp, assim eu ganharia 50 de xp, invés de 100. Caso eu tenha 10 ou mais resets, eu ganho 10% da xp real do monstro apenas. TFS 0.4, não testei pois estou no trabalho , mas quando chegar em casa eu testo obrigado ❤ 17 horas atrás, Nazo disse: Ahhh, agora ficou mais prático de entender xd Vê se funciona, se seu tfs for 1.x é provável que sim. TAG XML em creaturescripts: <event type="kill" name="resetStages" event="script" value="resetstages.lua"/> No creaturescripts/scripts/login.lua: player:registerEvent("resetStages") Em creaturescripts/scripts/ crie o resetstages.lua e coloque o seguinte conteúdo: -- by Nazo (tibiaking.com) config = { storage = 12129 -- storage dos resets } function onKill(cid, target, lastHit) if(getPlayerStorageValue(cid,config.storage) >= 1)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 * Game.getExperienceStage(player:getLevel())) / 100) if(getPlayerStorageValue(cid, config.storage) < 10) then expFormula = expFormula * getPlayerStorageValue(cid, config.storage)*10 else expFormula = expFormula * 90 end player:addExperience(math.floor(expFormula), true) end end end return true end O que acontece aqui, é que o script pega o número de resets do players, multiplica por 10 e tira de porcentagem no monstro morto, exemplo: Tenho 5 resets, matei um monstro que dá 100 de xp, o script multiplica meus resets por 10 (que dá 50) e tira de porcentagem da xp, assim eu ganharia 50 de xp, invés de 100. Caso eu tenha 10 ou mais resets, eu ganho 10% da xp real do monstro apenas. Meu amigo, deu erro no meu console na hora que mato o monstro , ele não morre a vida dele some tudo mas ainda continua vivo... [19:4:25.754] [Error - CreatureScript Interface] [19:4:25.754] data/creaturescripts/scripts/resetstages.lua:onKill [19:4:25.754] Description: [19:4:25.754] data/creaturescripts/scripts/resetstages.lua:10: attempt to call g lobal 'Monster' (a nil value) [19:4:25.754] stack traceback: [19:4:25.754] data/creaturescripts/scripts/resetstages.lua:10: in function <da ta/creaturescripts/scripts/resetstages.lua:7> @Nazo Editado Janeiro 24, 2018 7 anos por StormsHard (veja o histórico de edições)
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.