Ir para conteúdo
  • Cadastre-se

(Resolvido)Ring


Ir para solução Resolvido por Bruno Minervino,

Posts Recomendados

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.

Link para o post
Compartilhar em outros sites

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 por sxeinjected (veja o histórico de edições)

Ajudei ? Clique em GOSTEI!

Skype : neoowned
Link para o post
Compartilhar em outros sites

 

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.

Link para o post
Compartilhar em outros sites
  • 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
end
Usando a mesma lógica do post acima, apenas alterando algumas coisas. Editado por Bruno Minervino (veja o histórico de edições)

Atenciosamente,

Bruno Minervino

Link para o post
Compartilhar em outros sites

tente usar com esses ID que esta no SCRIPT ,apenas para fazer um teste.

 

Deu no mesmo... 

 

@EDIT:

 

@Bruno~

Aconteceu o mesmo... eu optei por usar os id's 7697 e 7708, será que esse será o erro?

Editado por ScythePhantom (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

@Bruno Minervino,entendi...,sou leigo no assunto ainda rsrs,apenas vou modificando até dar certo,valeu pela dica !!,vamos aguardar o @ScythePhantom,para ver se deu certo..

 

E estou aguardando a continuação do seus tutoriais de programação em C# hehe


@Scythephantom ,você usou a correção que o Bruno fez no script,?

Ajudei ? Clique em GOSTEI!

Skype : neoowned
Link para o post
Compartilhar em outros sites

@Bruno Minervino,entendi...,sou leigo no assunto ainda rsrs,apenas vou modificando até dar certo,valeu pela dica !!,vamos aguardar o @ScythePhantom,para ver se deu certo..

 

E estou aguardando a continuação do seus tutoriais de programação em C# hehe

@Scythephantom ,você usou a correção que o Bruno fez no script,?

 

Olha, decidi mudar os id's por esses... ring ativo; 2121, e, ring inativo; 10510... Dessa vez não deu erro, porém nenhuma mensagem foi dada ao player e não foi feita nenhuma alteração em sua experience também.

Link para o post
Compartilhar em outros sites

Você está alterando os id no expring.lua também ??

Tente usar o script original,depois colocamos o ring que você quer.

Ajudei ? Clique em GOSTEI!

Skype : neoowned
Link para o post
Compartilhar em outros sites

Você está alterando os id no expring.lua também ??

Tente usar o script original,depois colocamos o ring que você quer.

 

Sim, estou... E eu já usei o original e deu no mesmo.

Link para o post
Compartilhar em outros sites

Deu no mesmo... 

 

@EDIT:

 

@Bruno~

Aconteceu o mesmo... eu optei por usar os id's 7697 e 7708, será que esse será o erro?

Alterei o meu post, tenta agora.

Atenciosamente,

Bruno Minervino

Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo