ED

[pedido] exp ring por %

Por edukf, 01 de mai. de 2016 em Scripts

29
3.6k
edukfE
01 de maio de 2016 às 12:16

Bom dia, gostaria de um exp ring por %, por exemplo 50%

DanihcvD
01 de maio de 2016 às 15:56

Qual a versão da sua distro?
Vc precisa somente do script pro ring? Ou vc tb precisa de um tutorial passo a passo ensinando a instalar o script? O anel vai se transformar de um id1 pra um id2 ao ser equipado?

Esclareça essas dúvidas e se quiser, dê mais detalhes sobre o anel para que possamos te ajudar de forma mais eficiente.

AdministradorA
01 de maio de 2016 às 16:27

Este tópico foi movido para Tutoriais e Suporte - Tutoriais de Scripting - Suporte Scripting

edukfE
02 de maio de 2016 às 00:26

Pode ser o tutorial completo hahaha, sim id1 para id2 igual um ring normal.

edukfE
02 de maio de 2016 às 17:12

a versão é 0.4

DanihcvD
02 de maio de 2016 às 21:30

@edukf, primeiramente vc terá que criar 2 novos itens utilizando alguma ferramenta para tal (recomendo Item Dat Editor). Um item será para qnd o anel não estiver equipado e o outro para qnd o anel estiver equipado (brilhando, ou sei lá, sahusahu)

 

Agora vá no arquivo items.xml (data\items) e adicione o seguinte (atente-se para os id's! coloque os id's dos novos items):

<item id="ID-DO-ANEL-EQUIPADO" article="an" name="experience ring">  <attribute key="weight" value="70" />   <!--peso do anel-->  <attribute key="description" value="You see a boost experience ring." />  <attribute key="slotType" value="ring" />  <attribute key="duration" value="3600" />   <!--duração do anel-->  <attribute key="decayTo" value="0" />  <attribute key="showduration" value="1" />  <attribute key="transformDeEquipTo" value="ID-DO-ANEL-DESEQUIPADO" /></item><item id="ID-DO-ANEL-DESEQUIPADO" article="an" name="experience ring">		<attribute key="weight" value="70" />		<attribute key="slotType" value="ring" />		<attribute key="stopduration" value="1" />		<attribute key="showduration" value="1" />		<attribute key="transformEquipTo" value="ID-DO-ANEL-EQUIPADO" /></item>

*volto a frisar, ñ esqueça de ler tudo e colocar os devidos id's nos locais sinalizados

 

Agora vá no arquivo movements.xml (data\movements) e adicione o seguinte:

<movevent type="Equip" itemid="ID-DO-ANEL-EQUIPADO" slot="ring" event="function" value="onEquipItem"/><movevent type="DeEquip" itemid="ID-DO-ANEL-EQUIPADO" slot="ring" event="script" value="exp_ring.lua"/><movevent type="Equip" itemid="ID-DO-ANEL-DESEQUIPADO" slot="ring" event="script" value="exp_ring.lua"/><movevent type="DeEquip" itemid="ID-DO-ANEL-DESEQUIPADO" slot="ring" event="function" value="onDeEquipItem"/>

 

Agora crie um arquivo chamado exp_ring.lua dentro da pasta data\movements\scripts e coloque isso dentro do arquivo:

local idAnelDesequipado = ID-DO-ANEL-DESEQUIPADOlocal idAnelEquipado = ID-DO-ANEL-EQUIPADOlocal extraRate = 0.5function onEquip(cid, item, slot)doTransformItem(item.uid, idAnelEquipado)doPlayerSetExtraExpRate(cid, extraRate)return trueendfunction onDeEquip(cid, item, slot)doTransformItem(item.uid, idAnelDesequipado)doPlayerSetExtraExpRate(cid, 0)return trueend

*novamente alerto para atentar aos locais e colocar os devidos id's nos locais indicados

 

Bom, não testei nada, então ñ posso garantir q vai funfar tudo de primeira... sahusahusahu
Diz aí o que deu.

edukfE
02 de maio de 2016 às 21:32

Blz, imaginei que ia precisar do data editor e ja criei o item hahaha, aqueles 0.5 seria 50% entao?

 

 

E mt obrigado! vc ta sendo o cara

Editado Maio 2 por edukf

DanihcvD
02 de maio de 2016 às 21:34

@edukf, sim, 0.5 são os 50% a mais.

edukfE
03 de maio de 2016 às 03:33

@danihcv

 

 

ta dando esse erro

 

 

TRmTFdP.png

edukfE
03 de maio de 2016 às 03:33

@danihcv

DanihcvD
03 de maio de 2016 às 16:14

@edukf, substitua o script por esse:

local idAnelDesequipado = ID-DO-ANEL-DESEQUIPADOlocal idAnelEquipado = ID-DO-ANEL-EQUIPADOlocal extraRate = 1.5function onEquip(cid, item, slot)doTransformItem(item.uid, idAnelEquipado)doPlayerSetRate(cid, SKILL__LEVEL, extraRate*getExperienceStage(getPlayerLevel(cid)))return trueendfunction onDeEquip(cid, item, slot)doTransformItem(item.uid, idAnelDesequipado)doPlayerSetRate(cid, getExperienceStage(getPlayerLevel(cid)))return trueend

 

edukfE
04 de maio de 2016 às 12:00

@danihcv

 

ta dando esse erro ainda

8zpaSXt.png

 

 

e quando o player equipa o anel, da um erro e o ot inteiro cai :thinking:

DanihcvD
04 de maio de 2016 às 14:53

@edukf, certo, vamo lá:

Substitua o script por esse:

local idAnelDesequipado = ID-DO-ANEL-DESEQUIPADOlocal idAnelEquipado = ID-DO-ANEL-EQUIPADOlocal extraRate = 1.5function onEquip(cid, item, slot)if isPlayer(cid) thendoTransformItem(item.uid, idAnelEquipado)doPlayerSetRate(cid, SKILL__LEVEL, extraRate*getExperienceStage(getPlayerLevel(cid)))endreturn trueendfunction onDeEquip(cid, item, slot)if isPlayer(cid) thendoTransformItem(item.uid, idAnelDesequipado)doPlayerSetRate(cid, getExperienceStage(getPlayerLevel(cid)))endreturn trueend

 

E em movements.xml remova o que eu pedi pra colocar anteriormente e coloque isso:

<movevent type="Equip" itemid="ID-DO-ANEL-EQUIPADO" slot="ring" event="script" value="exp_ring.lua"/><movevent type="DeEquip" itemid="ID-DO-ANEL-EQUIPADO" slot="ring" event="script" value="exp_ring.lua"/><movevent type="Equip" itemid="ID-DO-ANEL-DESEQUIPADO" slot="ring" event="script" value="exp_ring.lua"/><movevent type="DeEquip" itemid="ID-DO-ANEL-DESEQUIPADO" slot="ring" event="script" value="exp_ring.lua"/>

 

Editado Maio 4 por danihcv

edukfE
04 de maio de 2016 às 15:47

@danihcv

 

ainda ta dando esse erro /:

e nao ta dando a exp

 

iXfnKwG.png

DanihcvD
04 de maio de 2016 às 21:30

@edukf, velho... Eu devo ter deficit de atenção... kkkkk

O erro tava na cara... Bastava ler com o minimo de atenção... --'

Bom, mas agr eu msm testei e acredito que funcione 100% aí tb:

Script:

local idAnelDesequipado = ID-DO-ANEL-DESEQUIPADOlocal idAnelEquipado = ID-DO-ANEL-EQUIPADOlocal extraRate = 1.5function onEquip(cid, item, slot)doTransformItem(item.uid, idAnelEquipado)doDecayItem(item.uid)doPlayerSetRate(cid, SKILL__LEVEL, extraRate*getExperienceStage(getPlayerLevel(cid)))return trueendfunction onDeEquip(cid, item, slot)if item.uid ~= 0 thendoTransformItem(item.uid, idAnelDesequipado)endlevel = tonumber(getPlayerLevel(cid))doPlayerSetRate(cid, SKILL__LEVEL, getExperienceStage(level))return trueend