Postado Janeiro 5, 2012 13 anos É o seguinte galera eu uso exp por hit em meu servidor mais ele esta com uma exp fixa que seria muito ruin para meu servidor, alguem que saiba mexe com isso pode tentar deixar esse script com stages, e tambem que o script funcione com ring de exp...Segue abaixo o script que uso...\/ \/ rateExp = 7 ------------------------------ function CalculeExp(monsterhp, exptotal, hit) local x = hit <= monsterhp and math.ceil(exptotal * hit / monsterhp) or 0 local x2 = x - 20 + math.random(20) return x2 > 0 and x2 or 0 end function isSummon(uid) return uid ~= getCreatureMaster(uid) or false end function onStatsChange(cid, attacker, type, combat, value) if type == STATSCHANGE_HEALTHLOSS then if isMonster(cid) then if isCreature(attacker) then local sid = isSummon(attacker) == true and getCreatureMaster(attacker) or attacker if isPlayer(sid) then local expg = CalculeExp(getCreatureMaxHealth(cid), getMonsterExperience(getCreatureName(cid)) * rateExp, value) doPlayerSendTextMessage(sid, 23, "You gain "..expg.." exp.") doPlayerAddExp(sid, expg) end end end elseif type == STATSCHANGE_HEALTHGAIN then return false end return true end function onCombat(cid, target) if isMonster(target) and not isSummon(target) and not isPlayer(target) then registerCreatureEvent(target, "ExpGain") end return true end AAA claro esqueci de dizer vou dar rep++ clarooo Editado Janeiro 5, 2012 13 anos por Fabiano Alberto (veja o histórico de edições) SE AJUDEI REP+ , NÃO CUSTA NADA. <a href="http://central.evenhost.net/aff.php?aff=020"><img src="http://i.imm.io/uRti.png" width="500" height="82" border="0"></a>
Postado Janeiro 6, 2012 13 anos Eu fiz agora testa ai... rateExp = 50 -- 0 a 20 rateExp1 = 20 -- 21 a 50 rateExp2 = 15 -- 51 a 100 rateExp3 = 10 -- 101 a 200 rateExp4 = 5 -- 201 a 300 rateExp5 = 4 -- 301 a 350 rateExp6 = 3 -- 351 em diante bonus = 1 -- Bonus por estar com exp ring expringid = 1000 -- Id do exp ring ------------------------------ function CalculeExp(monsterhp, exptotal, hit) local x = hit <= monsterhp and math.ceil(exptotal * hit / monsterhp) or 0 local x2 = x - 20 + math.random(20) return x2 > 0 and x2 or 0 end function isSummon(uid) return uid ~= getCreatureMaster(uid) or false end function onStatsChange(cid, attacker, type, combat, value) if type == STATSCHANGE_HEALTHLOSS then if isMonster(cid) then if isCreature(attacker) then local sid = isSummon(attacker) == true and getCreatureMaster(attacker) or attacker if isPlayer(sid) and getPlayerLevel(sid) <= 20 then local expg = CalculeExp(getCreatureMaxHealth(cid), getMonsterExperience(getCreatureName(cid)) * rateExp, value) doPlayerSendTextMessage(sid, 23, "You gain "..expg.." exp.") doPlayerAddExp(sid, expg) elseif isPlayer(sid) and getPlayerLevel(sid) > 21 and getPlayerLevel(sid) <= 50 then local expg1 = CalculeExp(getCreatureMaxHealth(cid), getMonsterExperience(getCreatureName(cid)) * rateExp1, value) doPlayerSendTextMessage(sid, 23, "You gain "..expg1.." exp.") doPlayerAddExp(sid, expg1) elseif isPlayer(sid) and getPlayerLevel(sid) > 51 and getPlayerLevel(sid) <= 100 then local expg2 = CalculeExp(getCreatureMaxHealth(cid), getMonsterExperience(getCreatureName(cid)) * rateExp2, value) doPlayerSendTextMessage(sid, 23, "You gain "..expg2.." exp.") doPlayerAddExp(sid, expg2) elseif isPlayer(sid) and getPlayerLevel(sid) > 101 and getPlayerLevel(sid) <= 200 then local expg3 = CalculeExp(getCreatureMaxHealth(cid), getMonsterExperience(getCreatureName(cid)) * rateExp3, value) doPlayerSendTextMessage(sid, 23, "You gain "..expg3.." exp.") doPlayerAddExp(sid, expg3) elseif isPlayer(sid) and getPlayerLevel(sid) > 201 and getPlayerLevel(sid) <= 300 then local expg4 = CalculeExp(getCreatureMaxHealth(cid), getMonsterExperience(getCreatureName(cid)) * rateExp4, value) doPlayerSendTextMessage(sid, 23, "You gain "..expg4.." exp.") doPlayerAddExp(sid, expg4) elseif isPlayer(sid) and getPlayerLevel(sid) > 301 and getPlayerLevel(sid) <= 350 then local expg5 = CalculeExp(getCreatureMaxHealth(cid), getMonsterExperience(getCreatureName(cid)) * rateExp5, value) doPlayerSendTextMessage(sid, 23, "You gain "..expg5.." exp.") doPlayerAddExp(sid, expg5) elseif isPlayer(sid) and getPlayerLevel(sid) > 351 then local expg6 = CalculeExp(getCreatureMaxHealth(cid), getMonsterExperience(getCreatureName(cid)) * rateExp6, value) doPlayerSendTextMessage(sid, 23, "You gain "..expg6.." exp.") doPlayerAddExp(sid, expg6) elseif isPlayer(sid) and item.itemid == expringid then local expbonus = CalculeExp(getCreatureMaxHealth(cid), getMonsterExperience(getCreatureName(cid)) * bonus, value) doPlayerSendTextMessage(sid, 23, "You gain "..expbonus.." bonus exp.") doPlayerAddExp(sid, expbonus) end end end elseif type == STATSCHANGE_HEALTHGAIN then return false end return true end function onCombat(cid, target) if isMonster(target) and not isSummon(target) and not isPlayer(target) then registerCreatureEvent(target, "ExpGain") end return true end Bruno Carvalho / Ex-Administrador TibiaKing [email protected] Em 26/12/2016 em 03:47, Spraypaint disse: A força da alienação vem dessa fragilidade dos indivíduos, quando apenas conseguem identificar o que os separa e não o que os une. -miltinho
Postado Janeiro 6, 2012 13 anos Autor Dei seu Rep...Vlw mesmo cara...vc e d++ SE AJUDEI REP+ , NÃO CUSTA NADA. <a href="http://central.evenhost.net/aff.php?aff=020"><img src="http://i.imm.io/uRti.png" width="500" height="82" border="0"></a>
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.