Ir para conteúdo

Featured Replies

Postado

É 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 por Fabiano Alberto (veja o histórico de edições)

SE AJUDEI REP+ ;D, NÃO CUSTA NADA.

uRti.png

<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

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

 

wMwSJFE.png?1

 

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo