PE

[Problema]Exp Ring

Por Pereirinha1, 12 de jul. de 2010 em Scripts

script
8
2.6k
Pereirinha1P
12 de julho de 2010 às 21:40

Problema:

 

Existem 2 Rings , um serve para quando ele esta equipado e um para quando não está equipado, IDS: 7708 , 7697 [signet Ring e Ring]

 

eu coloquei o 7708 para quando não estiver equipado , e quando equipa-lo transformar para 7697 , até ai funcionou perfeitamente , mais o anel tem 10 horas [36000] e depois é para virar 0 , só que quando eu tiro o anel ele não parava de contar e quando eu colocava o anel e tirava ele voltava pro 600 min , alguem sabe o que posso fazer ? o script do anel é movements.

VodkartV
12 de julho de 2010 às 21:59

coloca o script do anel ai (incluindo as do items.xml)

Pereirinha1P
13 de julho de 2010 às 11:51

items.xml:

<item id="7697" article="a" name="bonus ring">

<attribute key="weight" value="80"/>

<attribute key="slotType" value="ring"/>

<attribute key="decayTo" value="0"/>

<attribute key="duration" value="36000"/>

<attribute key="transformEquipTo" value="7708"/>

<attribute key="showduration" value="1"/>

</item>

<item id="7708" article="a" name="bonus ring">

<attribute key="weight" value="80"/>

<attribute key="slotType" value="ring"/>

<attribute key="showduration" value="1"/>

<attribute key="stopduration" value="1"/>

</item>

 

 

 

movements.xml:

<movevent type="Equip" itemid="7697" slot="ring" event="function" value="onEquipItem"/>

<movevent type="Equip" itemid="7708" slot="ring" event="script" value="bonusring/bonusring.lua"/>

<movevent type="DeEquip" itemid="7708" slot="ring" event="script" value="bonusring/bonusring.lua"/>

 

bonusring.lua:

function onEquip(cid, item, slot)

if(item.itemid ~= 7697) then

doPlayerSendTextMessage(cid, 22, 'BONUS EXP ON')

if getConfigValue("experienceStages") == true then

doPlayerSetExperienceRate(cid, 2)

else

doPlayerSetExperienceRate(cid, getConfigValue("rateExperience")*2)

return TRUE

end

doTransformItem(item.uid, 7708 )

return TRUE

end

return TRUE

end

function onDeEquip(cid, item, slot)

if(item.itemid ~= 7708 ) then

return TRUE

end

doPlayerSendTextMessage(cid, 22, 'BONUS EXP OFF.')

doPlayerSetExperienceRate(cid, 1)

doTransformItem(item.uid, 7697)

return TRUE

end

 

OBS; QUANDO EU COMPRO ELE NO SITE JA CAI NO SLOT DO RING E APAREÇE BONUS EXP ON 3 VEZES , APOS ISSO QUANDO DOU LOOK [NELE ATIVO] O Servidor Trava e cai.

Editado Julho 13 por Sakak

VodkartV
13 de julho de 2010 às 12:55

é cara testei o seu aqui e ele fica infinito...

usa esse:

 

<item id="7697" article="an" name="Bonus Ring">

<attribute key="weight" value="80"/>

<attribute key="slotType" value="ring"/>

<attribute key="transformEquipTo" value="7708"/>

<attribute key="stopduration" value="1"/>

<attribute key="showduration" value="1"/>

</item>

<item id="7708" article="a" name="Bonus Ring">

<attribute key="weight" value="80"/>

<attribute key="slotType" value="ring"/>

<attribute key="decayTo" value="0"/>

<attribute key="duration" value="480"/>

<attribute key="showduration" value="1"/>

</item>

 

 

local rate = 1.5
function onEquip(cid, item, slot) 
if(item.itemid ~= 7697) then 
doPlayerSendTextMessage(cid, 22, 'BONUS EXP ON')
doPlayerSetExperienceRate(cid, rate) 
doTransformItem(item.uid, 7708 ) 
return TRUE
end 
return TRUE
end 
function onDeEquip(cid, item, slot) 
if(item.itemid ~= 7708 ) then 
return TRUE
end 
doPlayerSetExperienceRate(cid, 1.0) 
doPlayerSendTextMessage(cid, 22, 'BONUS EXP OFF.') 
doTransformItem(item.uid, 7697) 
return TRUE
end

 

local rate = 1.5

 

vermelho: representa a % de quantos de exp ele irá receber( no caso 1.5 = 50%)

Pereirinha1P
13 de julho de 2010 às 13:08

pelo que eu vi assim ficaria ao contrario , pois o 7708 ta com o duration e o 7697 está com o stopduration , e como eu ja disse O 7708 É O RING ANTES DE EQUIPAR e o 7697 É APOS EQUIPAR. [ENQUANTO ESTÁ USANDO]

então acho que está invertido.

VodkartV
13 de julho de 2010 às 13:31

ah ta entendi...

tenta inverter ai

 

 

 

<item id="7697" article="an" name="Bonus Ring">

<attribute key="weight" value="80"/>

<attribute key="slotType" value="ring"/>

<attribute key="decayTo" value="0"/>

<attribute key="duration" value="480"/>

<attribute key="showduration" value="1"/>

</item>

<item id="7708" article="a" name="Bonus Ring">

<attribute key="weight" value="80"/>

<attribute key="slotType" value="ring"/>

<attribute key="transformEquipTo" value="7697"/>

<attribute key="stopduration" value="1"/>

<attribute key="showduration" value="1"/>

</item>

 

local rate = 1.5
function onEquip(cid, item, slot) 
if(item.itemid ~= 7708) then 
doPlayerSendTextMessage(cid, 22, 'BONUS EXP ON')
doPlayerSetExperienceRate(cid, rate) 
doTransformItem(item.uid, 7697 ) 
return TRUE
end 
return TRUE
end 
function onDeEquip(cid, item, slot) 
if(item.itemid ~= 7697 ) then 
return TRUE
end 
doPlayerSetExperienceRate(cid, 1.0) 
doPlayerSendTextMessage(cid, 22, 'BONUS EXP OFF.') 
doTransformItem(item.uid, 7708) 
return TRUE
end

 

<movevent type="Equip" itemid="7708" slot="ring" event="function" value="onEquipItem"/>
<movevent type="Equip" itemid="7697" slot="ring" event="script" value="bonusring/bonusring.lua"/>
<movevent type="DeEquip" itemid="7697" slot="ring" event="script" value="bonusring/bonusring.lua"/>

Editado Julho 13 por Vodkart

Pereirinha1P
13 de julho de 2010 às 13:56

EDIT: DEU TUDO CERTO , REP +

Editado Julho 13 por Sakak

AlissowA
13 de julho de 2010 às 14:53

Dúvida Sanada, tópico movido para Dúvidas Sanadas!

 

Tópico movido para Pedidos Atendidos!

 

Dúvida Sanada, tópico movido para Dúvidas Sanadas!