Ir para conteúdo
  • Cadastre-se

Exp Por Hit v3.0 - Oficial XotservX


Posts Recomendados

  Em 03/12/2012 em 14:54, Rogeriok disse:

Mano e no ,eu caso!!! aqui o Ferumbras Sumonna uns Demons e o summons estão Dando EXP...Tem como resolver isso?

Mostrar mais  

O seu problema deve ser no script do "Demon.xml", posta o script aí pra gente ver.

@@Tópico.

Vou testar este script e ver se é melhor do que o meu.

@@Editado!

O sistema funciona muito bem, está de parabéns.

Muito obrigado por compartilhar.

Ganhou mais um REP+ meu.

Editado por Adriano SwaTT (veja o histórico de edições)

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites
  • Respostas 28
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Instalação Primeiramente abra a pasta de seu ot, e procure pelo arquivo config.lua e procure por essas 2 linhas : experienceStages = false rateExperience = 50 se o experienceStages tiver ativado mude para false, pois o sistema ainda não tem suporte á Stages. e é muito importante o rateExperience tiver como 0, pois ela sera configurada, em outro local agora. exemplo: experienceStages = false rateExperience = 0 agora entre na pasta creaturescripts/scripts e crie um ar

Monstros dão somente a exp usada no monster.xml vezes a rate do server, ele pode healar toda sua vida, porém se ele ja tiver dado a exp, ele não vai dar mais. ta no log

Aqui nao dá erro nenhum, mas nao os monster nao dao experience

Mano não é só o Demon, são todos sumons... da uma olhada ae!

Olha só, eu instalei o script mas não estava dando o Exp em hits...Então acrescentei esta Tag em todos os monsters, ai funcionou...

Obs.: Usei os sistema no meu PC em Win 7, funciona direitinho sem precisar registrar as tags no monstros...Mas quando passei para Vps em linux só funcionou desta Forma.

  Citar
<script>

<event type="statschange" name="ExpGain" event="script" value="exphit.lua"/>

<event type="combat" name="ExpHit" event="script" value="exphit.lua"/>

</script>

Mostrar mais  

Exphit.lua

rateExp = 300 -- 0 a 100

rateExp1 = 200 -- 101 a 125

rateExp2 = 150 -- 126 a 150

rateExp3 = 100 -- 151 a 200

rateExp4 = 75 -- 201 a 250

rateExp5 = 25 -- 251 a 300

rateExp6 = 13 -- 301 a 400

rateExp7 = 7 -- 401 a 450

rateExp8 = 3 -- 451

bonus = 1 -- Bonus por estar com exp ring

expringid = 148 -- 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) <= 100 then

local expg = CalculeExp(getCreatureMaxHealth(cid), getMonsterInfo(getCreatureName(cid)).experience * rateExp, value)

doPlayerSendTextMessage(sid, 23, "Você Ganhou "..expg.." exp.")

doSendAnimatedText(getThingPos(sid), expg, 215)

doPlayerAddExp(sid, expg)

elseif isPlayer(sid) and getPlayerLevel(sid) > 100 and getPlayerLevel(sid) <= 125 then

local expg1 = CalculeExp(getCreatureMaxHealth(cid), getMonsterInfo(getCreatureName(cid)).experience * rateExp1, value)

doPlayerSendTextMessage(sid, 23, "Você Ganhou "..expg1.." exp.")

doSendAnimatedText(getThingPos(sid), expg1, 215)

doPlayerAddExp(sid, expg1)

elseif isPlayer(sid) and getPlayerLevel(sid) > 125 and getPlayerLevel(sid) <= 150 then

local expg2 = CalculeExp(getCreatureMaxHealth(cid), getMonsterInfo(getCreatureName(cid)).experience * rateExp2, value)

doPlayerSendTextMessage(sid, 23, "Você Ganhou "..expg2.." exp.")

doSendAnimatedText(getThingPos(sid), expg2, 215)

doPlayerAddExp(sid, expg2)

elseif isPlayer(sid) and getPlayerLevel(sid) > 150 and getPlayerLevel(sid) <= 200 then

local expg3 = CalculeExp(getCreatureMaxHealth(cid), getMonsterInfo(getCreatureName(cid)).experience * rateExp3, value)

doPlayerSendTextMessage(sid, 23, "Você Ganhou "..expg3.." exp.")

doSendAnimatedText(getThingPos(sid), expg3, 215)

doPlayerAddExp(sid, expg3)

elseif isPlayer(sid) and getPlayerLevel(sid) > 200 and getPlayerLevel(sid) <= 250 then

local expg4 = CalculeExp(getCreatureMaxHealth(cid), getMonsterInfo(getCreatureName(cid)).experience * rateExp4, value)

doPlayerSendTextMessage(sid, 23, "Você Ganhou "..expg4.." exp.")

doSendAnimatedText(getThingPos(sid), expg4, 215)

doPlayerAddExp(sid, expg4)

elseif isPlayer(sid) and getPlayerLevel(sid) > 250 and getPlayerLevel(sid) <= 300 then

local expg5 = CalculeExp(getCreatureMaxHealth(cid), getMonsterInfo(getCreatureName(cid)).experience * rateExp5, value)

doPlayerSendTextMessage(sid, 23, "Você Ganhou "..expg5.." exp.")

doSendAnimatedText(getThingPos(sid), expg5, 215)

doPlayerAddExp(sid, expg5)

elseif isPlayer(sid) and getPlayerLevel(sid) > 300 and getPlayerLevel(sid) <= 450 then

local expg6 = CalculeExp(getCreatureMaxHealth(cid), getMonsterInfo(getCreatureName(cid)).experience * rateExp6, value)

doPlayerSendTextMessage(sid, 23, "Você Ganhou "..expg6.." exp.")

doSendAnimatedText(getThingPos(sid), expg6, 215)

doPlayerAddExp(sid, expg6)

elseif isPlayer(sid) and getPlayerLevel(sid) > 400 and getPlayerLevel(sid) <= 400 then

local expg7 = CalculeExp(getCreatureMaxHealth(cid), getMonsterInfo(getCreatureName(cid)).experience * rateExp7, value)

doPlayerSendTextMessage(sid, 23, "Você Ganhou "..expg7.." exp.")

doSendAnimatedText(getThingPos(sid), expg7, 215)

doPlayerAddExp(sid, expg7)

elseif isPlayer(sid) and getPlayerLevel(sid) > 450 then

local expg8 = CalculeExp(getCreatureMaxHealth(cid), getMonsterInfo(getCreatureName(cid)).experience * rateExp8, value)

doPlayerSendTextMessage(sid, 23, "Você Ganhou "..expg8.." exp.")

doSendAnimatedText(getThingPos(sid), expg8, 215)

doPlayerAddExp(sid, expg8)

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

XLM do Demon.
<?xml version="1.0" encoding="UTF-8"?>

<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="280" manacost="0">

<health now="8200" max="8200"/>

<look type="35" corpse="5995"/>

<targetchange interval="5000" chance="8"/>

<strategy attack="100" defense="0"/>

<flags>

<flag summonable="0"/>

<flag attackable="1"/>

<flag hostile="1"/>

<flag illusionable="0"/>

<flag convinceable="0"/>

<flag pushable="0"/>

<flag canpushitems="1"/>

<flag canpushcreatures="1"/>

<flag targetdistance="1"/>

<flag staticattack="40"/>

<flag runonhealth="0"/>

</flags>

<attacks>

<attack name="melee" interval="2000" skill="70" attack="130"/>

<attack name="manadrain" interval="3000" chance="13" range="7" min="-80" max="-300"/>

<attack name="fire" interval="2000" chance="14" range="7" radius="7" target="1" min="-160" max="-350">

<attribute key="shootEffect" value="fire"/>

<attribute key="areaEffect" value="firearea"/>

</attack>

<attack name="firefield" interval="1000" chance="15" range="7" radius="1" target="1">

<attribute key="shootEffect" value="fire"/>

</attack>

<attack name="energy" interval="3000" chance="30" length="8" spread="0" min="-220" max="-460">

<attribute key="areaEffect" value="energy"/>

</attack>

</attacks>

<defenses armor="50" defense="55">

<defense name="healing" interval="1000" chance="15" min="90" max="200">

<attribute key="areaEffect" value="blueshimmer"/>

</defense>

<defense name="speed" interval="1000" chance="15" speedchange="200" duration="20000">

<attribute key="areaEffect" value="redshimmer"/>

</defense>

</defenses>

<elements>

<element firePercent="100"/>

<element physicalPercent="25"/>

<element earthpercent="20"/>

<element energyPercent="20"/>

<element deathPercent="20"/>

<element icePercent="-25"/>

<element holyPercent="-10"/>

</elements>

<immunities>

<immunity lifedrain="1"/>

<immunity paralyze="1"/>

<immunity invisible="1"/>

</immunities>

<summons maxSummons="2">

<summon name="fire elemental" interval="2000" chance="10" max="2"/>

</summons>

<voices interval="5000" chance="10">

<voice sentence="MUHAHAHAHA!" yell="1"/>

<voice sentence="I SMELL FEEEEEAAAR!" yell="1"/>

<voice sentence="CHAMEK ATH UTHUL ARAK!" yell="1"/>

<voice sentence="Your resistance is futile!"/>

<voice sentence="Your soul will be mine!" yell="0"/>

</voices>

<loot>

<item id="2148" countmax="90" chance="28000"/><!-- gold coin -->

<item id="2148" countmax="80" chance="28000"/><!-- gold coin -->

<item id="2148" countmax="75" chance="28000"/><!-- gold coin -->

<item id="2148" countmax="65" chance="28000"/><!-- gold coin -->

<item id="7368" countmax="5" chance="3100"/><!-- assassin star -->

<item id="5954" chance="1150"/><!-- demon horn -->

<item id="2520" chance="750"/><!-- demon shield -->

<item id="2462" chance="3000"/><!-- devil helmet -->

<item id="2387" chance="21000"/><!-- double axe -->

<item id="2432" chance="6000"/><!-- fire axe -->

<item id="2795" countmax="6" chance="12500"/><!-- fire mushroom -->

<item id="2393" chance="1650"/><!-- giant sword -->

<item id="2179" chance="700"/><!-- golden ring -->

<item id="2418" chance="1650"/><!-- golden sickle -->

<item id="7590" chance="10000"/><!-- great mana potion -->

<item id="7590" chance="10000"/><!-- great mana potion -->

<item id="7590" chance="10000"/><!-- great mana potion -->

<item id="2396" chance="1000"/><!-- ice rapier -->

<item id="1987" chance="100000"><!-- bag -->

<inside>

<item id="2472" chance="150"/><!-- magic plate armor -->

<item id="2514" chance="550"/><!-- mastermind shield -->

<item id="2176" chance="3000"/><!-- orb -->

<item id="2152" countmax="3" chance="23750"/><!-- platinum coin -->

<item id="1982" chance="1000"/><!-- purple tome -->

<item id="2214" chance="900"/><!-- ring of healing -->

<item id="2149" chance="10000"/><!-- small emerald -->

<item id="2165" chance="1500"/><!-- stealth ring -->

<item id="2151" chance="3300"/><!-- talon -->

<item id="8473" chance="12500"/><!-- ultimate health potion -->

<item id="8473" chance="12500"/><!-- ultimate health potion -->

<item id="8473" chance="12500"/><!-- ultimate health potion -->

<item id="2171" chance="1200"/><!-- platinum amulet -->

<item id="2164" chance="800"/><!-- might ring -->

<item id="7382" chance="950"/><!-- demonrage sword -->

<item id="2470" chance="450"/><!-- golden legs -->

<item id="7393" chance="50"/><!-- demon trophy -->

</inside>

</item>

</loot>

<script>

<event type="statschange" name="ExpGain" event="script" value="exphit.lua"/>

<event type="combat" name="ExpHit" event="script" value="exphit.lua"/>

</script>

</monster>

Editado por Rogeriok (veja o histórico de edições)

Assinatura retirada pela direção!

Link para o post
Compartilhar em outros sites

Eu estava fazendo um teste aqui e cheguei a conclusão de uma coisa.

Não sei em qual parte do calculo, pois não olhei direito... Mas a Exp que está dando para o player da parte está sendo meio que dividida por 2.

Vou colar aqui uma parte do Server Log para você fazer as contas.

Pra ficar mais fácil, coloquei em party 2 players e configurei EXP para 40%.

  Citar
01:07 You gain 30 points of experience, but 40% was sent to your partner. (18 points for you and 6 for him).
Mostrar mais  

Esta mensagem que está aparecendo, foi eu que configurei, mas no entanto, não mexi nos calculos do Script.

Raciocínio:

40% de 30, seria no caso, 12.

E como podemos ver no log registrado, está dando 18 pontos para o player que matou o monstro e 6 pontos para o player da party.

Ou seja, para ser exato, teria que ter dado 18 para o player que matou e 12 para o player da party, totalizando 30 pontos de exp, mas não, ele está dando metade disso.

Totalizando em 18+6 pontos, o que da exatamente 24 pontos de experiencia.

Está dividindo a Exp do Membro da party mais 2 vezes.

Da uma olhada pra gente aí.

Fora isso, o Script está muito show.

Editado por Adriano SwaTT (veja o histórico de edições)

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites
  • 2 weeks later...
  Em 05/12/2012 em 02:52, Adriano SwaTT disse:

Eu estava fazendo um teste aqui e cheguei a conclusão de uma coisa.

Não sei em qual parte do calculo, pois não olhei direito... Mas a Exp que está dando para o player da parte está sendo meio que dividida por 2.

Vou colar aqui uma parte do Server Log para você fazer as contas.

Pra ficar mais fácil, coloquei em party 2 players e configurei EXP para 40%.

Esta mensagem que está aparecendo, foi eu que configurei, mas no entanto, não mexi nos calculos do Script.

Raciocínio:

40% de 30, seria no caso, 12.

E como podemos ver no log registrado, está dando 18 pontos para o player que matou o monstro e 6 pontos para o player da party.

Ou seja, para ser exato, teria que ter dado 18 para o player que matou e 12 para o player da party, totalizando 30 pontos de exp, mas não, ele está dando metade disso.

Totalizando em 18+6 pontos, o que da exatamente 24 pontos de experiencia.

Está dividindo a Exp do Membro da party mais 2 vezes.

Da uma olhada pra gente aí.

Fora isso, o Script está muito show.

Expand   Mostrar mais  

Acho que é nessa tag ,

local x2 = x - 20 + math.random(20)

dai vai dar nisso (eu acho)...

Link para o post
Compartilhar em outros sites

Yeeeap...

Creio que seja isso mesmo, porém já arrumei isso.

E basea-se nesta tag mesmo, mas só que achei esquisito pois mostra que foi enviado uma quantidade de exp e na somatória mostra outra.

Mas já está resolvido.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Estatísticas dos Fóruns

    96842
    Tópicos
    519598
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo