http://www.xtibia.co...xp-por-hit-v20/
Esse seria um com Stages?
Se não for, te dou a solução, esse é o Script feito pelo comedinhasss.
rateExp = 50 -- 0 a 20 rateExp1 = 40 -- 21 a 50 rateExp2 = 30 -- 51 a 100 rateExp3 = 15 -- 101 a 200 rateExp4 = 7 -- 201 a 300 rateExp5 = 5 -- 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, "Você Ganhou "..expg.." exp.") doPlayerAddExp(sid, expg) elseif isPlayer(sid) and getPlayerLevel(sid) > 20 and getPlayerLevel(sid) <= 50 then local expg1 = CalculeExp(getCreatureMaxHealth(cid), getMonsterExperience(getCreatureName(cid)) * rateExp1, value) doPlayerSendTextMessage(sid, 23, "Você Ganhou "..expg1.." exp.") doPlayerAddExp(sid, expg1) elseif isPlayer(sid) and getPlayerLevel(sid) > 50 and getPlayerLevel(sid) <= 100 then local expg2 = CalculeExp(getCreatureMaxHealth(cid), getMonsterExperience(getCreatureName(cid)) * rateExp2, value) doPlayerSendTextMessage(sid, 23, "Você Ganhou "..expg2.." exp.") doPlayerAddExp(sid, expg2) elseif isPlayer(sid) and getPlayerLevel(sid) > 100 and getPlayerLevel(sid) <= 200 then local expg3 = CalculeExp(getCreatureMaxHealth(cid), getMonsterExperience(getCreatureName(cid)) * rateExp3, value) doPlayerSendTextMessage(sid, 23, "Você Ganhou "..expg3.." exp.") doPlayerAddExp(sid, expg3) elseif isPlayer(sid) and getPlayerLevel(sid) > 200 and getPlayerLevel(sid) <= 300 then local expg4 = CalculeExp(getCreatureMaxHealth(cid), getMonsterExperience(getCreatureName(cid)) * rateExp4, value) doPlayerSendTextMessage(sid, 23, "Você Ganhou "..expg4.." exp.") doPlayerAddExp(sid, expg4) elseif isPlayer(sid) and getPlayerLevel(sid) > 300 and getPlayerLevel(sid) <= 350 then local expg5 = CalculeExp(getCreatureMaxHealth(cid), getMonsterExperience(getCreatureName(cid)) * rateExp5, value) doPlayerSendTextMessage(sid, 23, "Você Ganhou "..expg5.." exp.") doPlayerAddExp(sid, expg5) elseif isPlayer(sid) and getPlayerLevel(sid) > 350 then local expg6 = CalculeExp(getCreatureMaxHealth(cid), getMonsterExperience(getCreatureName(cid)) * rateExp6, value) doPlayerSendTextMessage(sid, 23, "Você Ganhou "..expg6.." exp.") doPlayerAddExp(sid, expg6) elseif isPlayer(sid) and item.itemid = expringid then local expbonus = CalculeExp(getCreatureMaxHealth(cid), getMonsterExperience(getCreatureName(cid)) * expbonus, 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




info
Grupo: Cavaleiro
Registrado: 13/06/11
Posts: 172
Reputação: +6
quero um exp por hit
mas eu quero que ele tenha stages
do rep+