Ir para conteúdo
  • Cadastre-se

(Resolvido)Usar X item apenas com X item


Ir para solução Resolvido por Adriano SwaTT,

Posts Recomendados

Olá, gostaria de pedir um script que funcionasse da seguinte maneira, o player em questão apenas usaria X item tendo em mão X item.

 

Exemplo: Só poderá usar o arrow id; 2352 se estiver usando o bow id; 7438... Resumindo, X arrow só poderá ser usado com X bow.

 

Obrigado, REP+

Link para o post
Compartilhar em outros sites
  • Respostas 55
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Acho que a melhor forma de fazer isso é assim:   Suponhamos que seja o arrow, então o script chamará "arrow.lua". local bow = 2417 -- ID DA BOW function onEquip(cid,item)     if (getPlayerSlotIt

ah sim, realmente.. eu fiz isso mesmo, esqueci de registrar para ambas as mãos.   vou editar.

Atualize o script para este: local bows = { [idbow] = {ammunitionID}, -- Arma, Munição [idbow2] = {ammunitionID2}, -- Arma, Munição [idbow3] = {ammunitionID3}, -- Arma, Munição } local slot = nil

No caso, precisa mesmo ser específico no pedido, porque há diferença em usar uma munição somente com determinada arma na mão ou dar use em item com outro em mãos..

No caso seria arma que usaria apenas determinada munição?

 

Aguardo.

Editado por Adriano SwaTT (veja o histórico de edições)

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Só me confirme uma coisa, sua intenção seria apenas de definir cada arrow com sua bow mas o ataque seria normal ao selecionar o monstro ele ficasse atirando?

Ou teria que dar use como se fosse uma runa, usando hotkey no alvo (target)?

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Só me confirme uma coisa, sua intenção seria apenas de definir cada arrow com sua bow mas o ataque seria normal ao selecionar o monstro ele ficasse atirando?

Ou teria que dar use como se fosse uma runa, usando hotkey no alvo (target)?

 

O ataque seria normal, só queria definir cada arrow com sua bow mesmo, apenas isso.

Link para o post
Compartilhar em outros sites

Acho que a melhor forma de fazer isso é assim:

 

Suponhamos que seja o arrow, então o script chamará "arrow.lua".

local bow = 2417 -- ID DA BOW

function onEquip(cid,item)
    if (getPlayerSlotItem(cid,5).itemid == bow) or (getPlayerSlotItem(cid,6).itemid == bow) then
        doDecayItem(item.uid)
    else
        return FALSE, doPlayerSendCancel(cid,'Você precisa estar usando o '..getItemNameById(bow)..'.')
    end
    return TRUE
end

 

Aí em movements.xml, registra a id da munição que quer que seja usada apenas por esta bow.

<movevent type="Equip" itemid="2544" slot="ammo" event="script" value="arrow.lua"/>
    <movevent type="DeEquip" itemid="2544" slot="ammo" event="script" value="arrow.lua"/>

 

Boa sorte.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Acho que a melhor forma de fazer isso é assim:

 

Suponhamos que seja o arrow, então o script chamará "arrow.lua".

local bow = 2417 -- ID DA BOW

function onEquip(cid,item)
    if (getPlayerSlotItem(cid,5).itemid == bow) or (getPlayerSlotItem(cid,6).itemid == bow) then
        doDecayItem(item.uid)
    else
        return FALSE, doPlayerSendCancel(cid,'Você precisa estar usando o '..getItemNameById(bow)..'.')
    end
    return TRUE
end

Aí em movements.xml, registra a id da munição que quer que seja usada apenas por esta bow.

<movevent type="Equip" itemid="2544" slot="ammo" event="script" value="arrow.lua"/>
    <movevent type="DeEquip" itemid="2544" slot="ammo" event="script" value="arrow.lua"/>

Boa sorte.

 

Em tese funcionou, porém não aparece mensagem alguma ao player, e se caso a bow correta estiver sendo utilizada, e outra for colocada no lugar, a arrow funciona, o ideal seria que ela só funcionasse com apenas aquele bow, há possibilidade? 

Link para o post
Compartilhar em outros sites

Sim, vejo pra você quando voltar.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Em movements.xml:

<movevent type="Equip" itemid="2546" slot="ammo" event="script" value="arrow.lua" />
Em movements/scripts crie o arquivo arrow.lua com este conteúdo:

local bowID = 2456 -- id da bow escolhida

function onEquip(cid, item)
    if getPlayerSlotItem(cid, 6).itemid == bowID or getPlayerSlotItem(cid, 5).itemid == bowID then
		return true
	end
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Voce precisa estar equipado com um '..getItemNameById(bowID)..' para usar seu '..getItemNameById(item.itemid)..'.')
	return false
end

Atenciosamente,

Bruno Minervino

Link para o post
Compartilhar em outros sites

Em movements.xml:

<movevent type="Equip" itemid="2546" slot="ammo" event="script" value="arrow.lua" />
Em movements/scripts crie o arquivo arrow.lua com este conteúdo:

local bowID = 2456 -- id da bow escolhida

function onEquip(cid, item)
    if getPlayerSlotItem(cid, 6).itemid == bowID or getPlayerSlotItem(cid, 5).itemid == bowID then
		return true
	end
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Voce precisa estar equipado com um '..getItemNameById(bowID)..' para usar seu '..getItemNameById(item.itemid)..'.')
	return false
end

 

Olha, em tese funcionou... a mensagem foi dada e o item só pôde ser usado com a bow, porém se o player já estiver usando a bow certa com a arrow e o player jogar outra bow no slot, a arrow funciona. A outra questão é que a mensagem é dada no default, e isso causa um pouco de "trash" há possibilidade de ser algo como "return doPlayerSendCancel"? (isso não tem tanta importância).

Link para o post
Compartilhar em outros sites

adriano poe o check no item do Bolt do cara se tentar equipar ele se o item no lugar move ele para backpack..


adiciona o dequip no crossbow

 

 

prefiro usando o crossbow tipo
 
      <movevent type="Equip" itemid="ID" slot="ammo" event="script" value="crossbow.lua"/>
        <movevent type="DeEquip" itemid="ID" slot="ammo" event="script" value="crossbow.lua"/>
local boltID =  ??? -- id da bolt
local bowID = ??? -- bow id


function onEquip(cid, item)
if getPlayerSlotItem(cid, CONST_SLOT_AMMO) = boltID then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Você equipou o '..getItemNameById(BowID)..' . ')
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Você não pode equipar o  '..getItemNameById(BowID)..' por não ter o '..getItemNameById(boltID)..' no slot. ')
return false
end
return true
end


function onDeEquip(cid, item, slot)
if getPlayerSlotItem(cid, CONST_SLOT_AMMO) == boltID then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Você so pode desequipar se tirar a '..getItemNameById(boltID)..'. ')
​return false
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Você Desequipou o '..getItemNameById(BowID)..' . ')
end
return true
end
 
 
ele so vai conseguir tirar o crossbow se tirar a bolt
Editado por kbpaulo (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

 

adriano poe o check no item do Bolt do cara se tentar equipar ele se o item no lugar move ele para backpack..

adiciona o dequip no crossbow

 

 

prefiro usando o crossbow tipo
 
      <movevent type="Equip" itemid="ID" slot="ammo" event="script" value="crossbow.lua"/>
        <movevent type="DeEquip" itemid="ID" slot="ammo" event="script" value="crossbow.lua"/>
local boltID =  ??? -- id da bolt
local bowID = ??? -- bow id


function onEquip(cid, item)
if getPlayerSlotItem(cid, CONST_SLOT_AMMO) = boltID then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Você equipou o '..getItemNameById(BowID)..' . ')
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Você não pode equipar o  '..getItemNameById(BowID)..' por não ter o '..getItemNameById(boltID)..' no slot. ')
return false
end
return true
end


function onDeEquip(cid, item, slot)
if getPlayerSlotItem(cid, CONST_SLOT_AMMO) == boltID then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Você so pode desequipar se tirar a '..getItemNameById(boltID)..'. ')
​return false
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Você Desequipou o '..getItemNameById(BowID)..' . ')
end
return true
end
 
 
ele so vai conseguir tirar o crossbow se tirar a bolt

 

 

Qual id eu coloco na tag? bow ou arrow?

 

@EDIT:

 

ahahaha.png

 

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

deu erro nao foi mal  lem cima ta com 1 igual =   e 2 igual == mals

Link para o post
Compartilhar em outros sites

deu erro nao foi mal  lem cima ta com 1 igual =   e 2 igual == mals

 

Continua dando erro...

 

Eu vou salva o script e dá esse erro:

 

9YT26Mt.png?1

 

Porém eu salvo mesmo assim e o erro persiste...

 

SCRIPT:

 

 

local boltID ==  2352 -- id da bolt

local bowID == 7438 -- bow id
 
 
function onEquip(cid, item)
if getPlayerSlotItem(cid, CONST_SLOT_AMMO) = boltID then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Você equipou o '..getItemNameById(BowID)..' . ')
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Você não pode equipar o  '..getItemNameById(BowID)..' por não ter o '..getItemNameById(boltID)..' no slot. ')
return false
end
return true
end
 
 
function onDeEquip(cid, item, slot)
if getPlayerSlotItem(cid, CONST_SLOT_AMMO) == boltID then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Você so pode desequipar se tirar a '..getItemNameById(boltID)..'. ')
?return false
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Você Desequipou o '..getItemNameById(BowID)..' . ')
end
return true
end
Editado por ScythePhantom (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

aghauahauaha

 

se pois 2 igual == lem cima no local era no equipe

 

 

local boltID =  2352 -- id da bolt
local bowID = 7438 -- bow id




function onEquip(cid, item)
if getPlayerSlotItem(cid, CONST_SLOT_AMMO) == boltID then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Você equipou o '..getItemNameById(BowID)..' . ')
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Você não pode equipar o  '..getItemNameById(BowID)..' por não ter o '..getItemNameById(boltID)..' no slot. ')
return false
end
return true
end




function onDeEquip(cid, item, slot)
if getPlayerSlotItem(cid, CONST_SLOT_AMMO) == boltID then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Você so pode desequipar se tirar a '..getItemNameById(boltID)..'. ')
return false
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Você Desequipou o '..getItemNameById(BowID)..' . ')
end
return true
end

segue anexo do script.


xd

Crossbow.lua

Crossbow.lua

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

aghauahauaha

 

se pois 2 igual == lem cima no local era no equipe

 

 

local boltID =  2352 -- id da bolt
local bowID = 7438 -- bow id




function onEquip(cid, item)
if getPlayerSlotItem(cid, CONST_SLOT_AMMO) == boltID then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Você equipou o '..getItemNameById(BowID)..' . ')
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Você não pode equipar o  '..getItemNameById(BowID)..' por não ter o '..getItemNameById(boltID)..' no slot. ')
return false
end
return true
end




function onDeEquip(cid, item, slot)
if getPlayerSlotItem(cid, CONST_SLOT_AMMO) == boltID then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Você so pode desequipar se tirar a '..getItemNameById(boltID)..'. ')
return false
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Você Desequipou o '..getItemNameById(BowID)..' . ')
end
return true
end

segue anexo do script.

xd

 

Agora não deu erro, porém não funcionou... nada aconteceu, nenhuma mensagem ou nada.

Link para o post
Compartilhar em outros sites

manda o  script q vc pois e a tag.. todas as 2 para conferir.

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