XF

Ring De Double Exp

Por xFkyx, 19 de mar. de 2012 em Actions e Talkactions

otserv
tibia
script
16
5.5k
xFkyxX
19 de março de 2012 às 19:49

Olá Xtibianos,

 

hoje percebi que não há um ring que da Double Exp ou mais/menos se você quiser.

Então let's go ;D

 

Primeiramente vá em data>moveevents>script e crie um arquivo double_exp.lua e ponha isso:

local config = {
rate = 2, -- quanto de exp ele vai ganhar(porcentagem) ex: 1.5 = + 50%
item1 = 555,  -- qual o item que vai virar
item2 = 666   -- item original
}
function onEquip(cid, item, slot)
doTransformItem(item.uid, item1, 1)
doPlayerSendTextMessage(cid, "Agora você tem 2x mais de experiencia!")
doPlayerSetExperienceRate(cid, getConfigValue("rateExperience")*rate)
return TRUE
end
function onDeEquip(cid, item, slot)
doTransformItem(item.uid, item2, 1)
doPlayerSetExperienceRate(cid, 1)
return TRUE
end

 

 

Se quiser com stages aqui está:

 

function onEquip(cid, item, slot)
local item1 = 12345 -- id do anel antes de por no slot
local item2 = 12345 -- id do anel depois de por no slot
local rate = {}
if getPlayerLevel(cid) <= 200 then
rate = 1.3
elseif getPlayerLevel(cid) > 200 and getPlayerLevel(cid) <= 300 then
rate = 1.15
elseif getPlayerLevel(cid) > 300 and getPlayerLevel(cid) <= 500 then
rate = 1.05
elseif getPlayerLevel(cid) > 500 then
rate = 1.03
end
doTransformItem(item.uid, item2, 1)
doPlayerSendTextMessage(cid, 22, "Agora seu ganho de experiencia está "..((rate - 1)*100).." a mais %.")
doPlayerSetExperienceRate(cid, rate)
return TRUE
end
function onDeEquip(cid, item, slot)
doTransformItem(item.uid, item1, 1)
doPlayerSendTextMessage(cid, 22, "Sua experiencia esta de volta ao normal.")
doPlayerSetExperienceRate(cid, 1.0)
return TRUE
end

 

 

 

 

Depois vá em data>moveevents>moveevents.xml e ponha isso:

<movevent type="Equip" itemid="item id do ring original do script" slot="ring" event="script" value="double_exp.lua">
<movevent type="DeEquip" itemid="item id do ring original do script" slot="ring" event="script" value="double_exp.lua">

 

Em seguida vá em data>item>item.xml e procure o id do ring que você escolheu pra ser quando estiver equipado e substitua por isso: (exemplo)

<item id="7697" article="a" name="experience ring">  -- item id="id do item" name="nome"
			<attribute key="weight" value="500">
			<attribute key="description" value="This ring give you double exp (on).">
			<attribute key="slotType" value="ring">
			<attribute key="duration" value="30"> -- tempo de duração(segundos)
			<attribute key="showduration" value="1">
			<attribute key="transformDeEquipTo" value="7708"> -- quando tirar do slot de ring vai transformar nesse id
</item>

Depois vá em data>item>item.xml e procure o id do ring que você escolheu pra ser quando não estiver equipado e substitua por isso: (exemplo)

<item id="7708" article="a" name="experience ring"> -- id do itemque vai ficar quando não estiver equipado
			<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"> -- id do que você escolheu no outro script que vai transformar quando esquipar
</item>

 

Espero que gostem,

anteciosamente xFykx.

Editado Março 22 por xFkyx

VodkartV
19 de março de 2012 às 21:38

Hmm interessante esse seu script,nunca tinha pensando nisso :p

parabéns,espero ver você futuramente postando mais script...

 

REP+

xFkyxX
19 de março de 2012 às 21:45

Valeu ai pela opinião, e brigado pelo elogio.

Estou pensando em uns scripts pra trazer para cá.

VodkartV
19 de março de 2012 às 21:48

ah não me enganei,eu achei que era alguma parte do set,ring eu já fiz um também até tem um parecido na área de tutoriais,fiz antigamente kk

mas mesmo assim,a maioria dos servidores vendem este tipo de items,muito bom

abraços

yashaY
19 de março de 2012 às 22:09

Só uma dúvida, ele funciona com exp em stages ou só com exp fixa?

Mesmo assim, parabéns pelo script.

xFkyxX
19 de março de 2012 às 22:12

Exp Fixa. Mas se quiser posso ver se ponho em stages tbm ;D

Makelin1M
21 de março de 2012 às 17:27

lol nunca pensei que existia um script desse Aprovado !

yashaY
22 de março de 2012 às 21:41

Exp Fixa. Mas se quiser posso ver se ponho em stages tbm ;D

Se conseguisse seria melhor, pois quase todo mundo usa exp por stages.

xFkyxX
22 de março de 2012 às 21:55

@up

Adicionado, espero que goste(m)

VodkartV
23 de março de 2012 às 14:14

sabe o que eu estava pensando... É o seguinte, que dá para fazer através do onKill e usando stages!

Na hora que você fosse matar o monstro iria checar se no slot tem o anel com ID "XY",caso tivesse ele faria a conta de quanto o jogador ganha ao matar um montro,por exemplo eu no level 300 mato um demon e ganho 6000 de xp,com o anel me dando 50% eu ganharia os 6000 + 3000 de exp, dando um total de 9000!

 

está ai:

 

function onKill(cid, target)
local ringID = 2123
if isPlayer(cid) and isMonster(target) then
if getPlayerSlotItem(cid, CONST_SLOT_RING).itemid == ringID then
local exp = getExperienceStage(getPlayerLevel(cid), getVocationInfo(getPlayerVocation(cid)).experienceMultiplier)
local count = ((getMonsterInfo(string.lower(getCreatureName(target))).experience*1.5*exp)/2)
doPlayerAddExperience(cid, count)
addEvent(doSendAnimatedText, 500, getCreaturePosition(cid), '+'..count, math.random(50,60))
end
else
return TRUE
end
return TRUE
end

 

configurado para dar 50% de bonus xp

Makelin1M
23 de março de 2012 às 14:20

hum fico mas legal assim gostei vodkart

1 mês depois...
BrunooMaciellB
09 de abril de 2012 às 17:33

parabens lek mt bom tutorial explicado e systemas bom ring exp =D

nono182N
11 de abril de 2012 às 00:01

e se eu quisesse pra ser ao invez de um ring,fosse pra players vip?

VildenV
11 de abril de 2012 às 00:19

Depende de como é sua vip.. por storage, premium etc..

VodkartV
11 de abril de 2012 às 09:06

e se eu quisesse pra ser ao invez de um ring,fosse pra players vip?

 

http://www.xtibia.com/forum/topic/138359-double-exp-para-vip/