1º Passo :
Abra o arquivo "Items.xml" (pasta Data / Items)
Com o editor de sua preferência, use o comando de busca (geralmente "Ctrl + F") e digite a ID "7697".
Vai achar o item "signet ring" que estará assim: (na maioria dos OTServ's)
<item id="7697" article="a" name="signet ring">
<attribute key="weight" value="80" />
<attribute key="slotType" value="ring" />
</item>
Substitua isso por :
<item id="7697" article="a" name="experience ring">
<attribute key="weight" value="500" />
<attribute key="description" value="Este anel lhe da 2x mais experiencia (ativo)." />
<attribute key="slotType" value="ring" />
<attribute key="duration" value="4320" />
<attribute key="decayTo" value="0" />
<attribute key="showduration" value="1" />
<attribute key="transformDeEquipTo" value="7708" />
</item>
Logo em seguida, procure pela ID "7708".
Encontrará o item "ring" que estará assim: (na maioria dos OTServ's)
<item id="7708" article="a" name="ring">
<attribute key="weight" value="40" />
<attribute key="slotType" value="ring" />
</item>
Substitua isso por :
<item id="7708" article="a" name="ring experience">
<attribute key="weight" value="500" />
<attribute key="slotType" value="ring" />
<attribute key="stopduration" value="1" />
<attribute key="showduration" value="1" />
<attribute key="transformEquipTo" value="7697" />
</item>
Pronto, em Items.xml não mexeremos mais.
2º Passo :
Abra o arquivo "Movements.xml" (pasta Data / Movements)
Adicione as tags abaixo:
<movevent type="Equip" itemid="7697" slot="ring" event="script" value="exp_ring.lua"/>
<movevent type="DeEquip" itemid="7697" slot="ring" event="script" value="exp_ring.lua"/>
<movevent type="Equip" itemid="7708" slot="ring" event="script" value="exp_ring.lua"/>
<movevent type="DeEquip" itemid="7708" slot="ring" event="script" value="exp_ring.lua"/>
Pronto, em "movements.xml" é só.
3º Passo :
Aqui, temos duas opções...
O Exp Ring Tradicional é para server com Experiência fixa, ou seja, a EXP é sempre a mesma..
Já o Exp Ring por Stages é para server que a Experiência varia de acordo com o level do player.
EXP RING Tradicional:
Abra a pasta (Data / Movements / Scripts) e crie um arquivo com o nome "exp_ring.lua" (pode copiar um arquivo existente e renomeá-lo).
Após fazer isto, abra este arquivo (exp_ring.lua) e cole o código abaixo dentro.
Obs: se tiver algo escrito do arquivo, apague-o e deixe somente o código abaixo.
function onEquip(cid, item, slot)
doTransformItem(item.uid, 7697, 1)
doPlayerSendTextMessage(cid, 22, 'Agora ganha 2x mais experiencia!')
doPlayerSetExperienceRate(cid, getConfigValue("rateExperience")*0.2)
return TRUE
end
function onDeEquip(cid, item, slot)
doTransformItem(item.uid, 7708, 1)
doPlayerSendTextMessage(cid, 22, 'Experiencia extra cancelada.')
doPlayerSetExperienceRate(cid, 1)
return TRUE
end
EXP RING por Stages:
Abra a pasta (Data / Movements / Scripts) e crie um arquivo com o nome "exp_ring.lua" (pode copiar um arquivo existente e renomeá-lo).
Após fazer isto, abra este arquivo (exp_ring.lua) e cole o código abaixo dentro.
Obs: se tiver algo escrito do arquivo, apague-o e deixe somente o código abaixo.
function onEquip(cid, item, slot)
local rate = {}
if getPlayerLevel(cid) <= 200 then
rate = 1.3
elseif getPlayerLevel(cid) > 200 and getPlayerLevel(cid) <= 280 then
rate = 1.15
elseif getPlayerLevel(cid) > 280 then
rate = 1.05
end
doTransformItem(item.uid, 7697, 1)
doPlayerSendTextMessage(cid, 22, "Sua experiencia foi aumentada em "..((rate - 1)*100).." %.")
doPlayerSetExperienceRate(cid, rate)
return TRUE
end
function onDeEquip(cid, item, slot)
doTransformItem(item.uid, 7708, 1)
doPlayerSendTextMessage(cid, 22, "Sua experiencia esta de volta ao normal.")
doPlayerSetExperienceRate(cid, 1.0)
return TRUE
end
Creditos : 100% Adriano Swatt.
Ajudei = REP +