Ir para conteúdo
  • 0

[Resolvido] Script De Exp ;]


exorcist

Pergunta

2 respostass a esta questão

Posts Recomendados

  • 0

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

Editado por Valentine
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...