Postado Março 20, 2015 10 anos Olá, gostaria de pedir um script para um ring, o mesmo funcionaria dando uma porcentagem de experiencie ao player enquanto o mesmo estivesse o usando. Obs: Ao equipar o ring uma mensagem fosse mandada ao player dizendo que sua experiencie foi aumenta em X% e ao desequipá-lo, outra mensagem fosse mandada dizendo que a experience extra foi cancelada... O ring teria duração de 1 hora e aumentaria em 20% a experience do player. P.S. Eu já tentei usar vários e todos fizeram meu distro (TFS 0.4.) parar.
Postado Março 20, 2015 10 anos Bom dia ! Tente esse : em movement.xml coloque <!-- Exp Ring --> <movevent type="Equip" itemid="6301" slot="ring" event="function" value="onEquipItem"/> <movevent type="Equip" itemid="6300" slot="ring" event="script" value="expring.lua"/> <movevent type="DeEquip" itemid="6300" slot="ring" event="function" value="onDeEquipItem"/> <movevent type="DeEquip" itemid="6301" slot="ring" event="script" value="expring.lua"/> crie um expring.lua local config = { rate = 2.0, -- 2.0 = 2x de exp a mais } function onDeEquip(cid, item, slot) if(item.itemid == 6301) then doPlayerSetExperienceRate(cid, 1.0) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Sua exp extra acabou.") doTransformItem(item.uid, 6300) getConfigValue(key) end return true end function onEquip(cid, item, slot) if(item.itemid == 6300) then if getConfigValue("experienceStages") == "yes" then doPlayerSetExperienceRate(cid, getExperienceStage(getPlayerLevel(cid))*2) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Sua exp extra foi ativada! E agora: " .. config.rate .. "x duplicou sua exp.") doTransformItem(item.uid, 6301) doDecayItem(getPlayerSlotItem(cid, CONST_SLOT_RING).uid) else doPlayerSetExperienceRate(cid, getConfigValue("rateExperience")*2) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Sua exp extra foi ativada! E agora: " .. config.rate .. "x duplicou sua exp.") doTransformItem(item.uid, 6301) doDecayItem(getPlayerSlotItem(cid, CONST_SLOT_RING).uid) end return true end end e em items.xml,substitua os itens 6300 ,por esse : <item id="6300" article="an" name="experience ring"> <attribute key="transformEquipTo" value="6301" /> <attribute key="weight" value="80" /> <attribute key="slotType" value="ring" /> <attribute key="stopduration" value="1" /> <attribute key="showduration" value="1" /> </item> <item id="6301" article="an" name="experience ring"> <attribute key="weight" value="80" /> <attribute key="slotType" value="ring" /> <attribute key="decayTo" value="0" /> <attribute key="transformDeEquipTo" value="6300" /> <attribute key="duration" value="30000" /> <attribute key="showduration" value="1" /> </item> Editado Março 20, 2015 10 anos por sxeinjected (veja o histórico de edições) Ajudei ? Clique em GOSTEI! Skype : neoowned
Postado Março 20, 2015 10 anos Autor Em 20/03/2015 em 11:08, sxeinjected disse: Bom dia ! Tente esse : em movement.xml coloque <!-- Exp Ring --> <movevent type="Equip" itemid="6301" slot="ring" event="function" value="onEquipItem"/> <movevent type="Equip" itemid="6300" slot="ring" event="script" value="expring.lua"/> <movevent type="DeEquip" itemid="6300" slot="ring" event="function" value="onDeEquipItem"/> <movevent type="DeEquip" itemid="6301" slot="ring" event="script" value="expring.lua"/> crie um expring.lua local config = { rate = 2.0, -- 2.0 = 2x de exp a mais } function onDeEquip(cid, item, slot) if(item.itemid == 6301) then doPlayerSetExperienceRate(cid, 1.0) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Sua exp extra acabou.") doTransformItem(item.uid, 6300) getConfigValue(key) end return true end function onEquip(cid, item, slot) if(item.itemid == 6300) then if getConfigValue("experienceStages") == "yes" then doPlayerSetExperienceRate(cid, getExperienceStage(getPlayerLevel(cid))*2) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Sua exp extra foi ativada! E agora: " .. config.rate .. "x duplicou sua exp.") doTransformItem(item.uid, 6301) doDecayItem(getPlayerSlotItem(cid, CONST_SLOT_RING).uid) else doPlayerSetExperienceRate(cid, getConfigValue("rateExperience")*2) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Sua exp extra foi ativada! E agora: " .. config.rate .. "x duplicou sua exp.") doTransformItem(item.uid, 6301) doDecayItem(getPlayerSlotItem(cid, CONST_SLOT_RING).uid) end return true end end e em items.xml,substitua os itens 6300 ,por esse : <item id="6300" article="an" name="experience ring"> <attribute key="transformEquipTo" value="6301" /> <attribute key="weight" value="80" /> <attribute key="slotType" value="ring" /> <attribute key="stopduration" value="1" /> <attribute key="showduration" value="1" /> </item> <item id="6301" article="an" name="experience ring"> <attribute key="weight" value="80" /> <attribute key="slotType" value="ring" /> <attribute key="decayTo" value="0" /> <attribute key="transformDeEquipTo" value="6300" /> <attribute key="duration" value="30000" /> <attribute key="showduration" value="1" /> </item> Olha, eu optei por usar os id's 7697 e 7708 por não serem "dropáveis", porém o erro continua... ao equipar o ring que dará a experience o TFS para de funcionar e o mesmo é fechado.
Postado Março 20, 2015 10 anos tente usar com esses ID que esta no SCRIPT ,apenas para fazer um teste. Ajudei ? Clique em GOSTEI! Skype : neoowned
Postado Março 20, 2015 10 anos Solução @sxeinjected, Uma vez que você define que o ring vai ser um "scrip", você precisa definir que é uma "function" também, pois a função vai estar dentro do script. @ScythePhantom, Tente assim: <!-- Exp Ring --> <movevent type="Equip" itemid="76979" slot="ring" event="script" value="expring.lua" /> <movevent type="DeEquip" itemid="7708" slot="ring" event="script" value="expring.lua" /> expring.lua: local config = { rate = 2.0, -- 2x de exp a mais itemEquip = 7697, -- item que voce vai equipar para ativar itemDeEquip = 7708 -- item que ele vai ser transformado apos estar equipado } function onEquip(cid, item, slot) doTransformItem(item.uid, config.itemDeEquip, 1) doPlayerSendTextMessage(cid, 22, 'Agora ganha 2x mais experiencia!') doPlayerSetExperienceRate(cid, getConfigValue("rateExperience") * config.rate) return true end function onDeEquip(cid, item, slot) doTransformItem(item.uid, config.itemEquip, 1) doPlayerSendTextMessage(cid, 22, 'Experiencia extra cancelada.') doPlayerSetExperienceRate(cid, 1.0) return true endUsando a mesma lógica do post acima, apenas alterando algumas coisas. Editado Março 20, 2015 10 anos por Bruno Minervino (veja o histórico de edições) Atenciosamente, Bruno Minervino
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.