srkapetinha 3 Postado Janeiro 16, 2016 Share Postado Janeiro 16, 2016 Bom Dia pessoal do Xtibia, então, eu to querendo fazer uma quest de addon, só que eu preciso que o player tenha que ter 3 itens para passar na porta... é só isso, deve ser simples para quem manja de script, oque não é meu caso REP+ para quem puder me ajudar... Obrigado Link para o comentário https://xtibia.com/forum/topic/238821-porta-que-s%C3%B3-abre-se-tiver-3-itens/ Compartilhar em outros sites More sharing options...
0 Caronte 446 Postado Janeiro 16, 2016 Share Postado Janeiro 16, 2016 local items = { --[Quantidade] = ITEMID, [10] = 2160, [2] = 3031, } function onUse(cid, item, fromPosition, itemEx, toPosition) for count, id in pairs(items) do if getPlayerItemCount(cid, id) < count then doPlayerSendCancel(cid, "Voce nao tem "..(count - getPlayerItemCount(cid, id)).." ".. getItemNameById(id).." para passar.") doSendMagicEffect(fromPosition, CONST_ME_POFF) return false end end return true end Link para o comentário https://xtibia.com/forum/topic/238821-porta-que-s%C3%B3-abre-se-tiver-3-itens/#findComment-1681565 Compartilhar em outros sites More sharing options...
0 srkapetinha 3 Postado Janeiro 16, 2016 Autor Share Postado Janeiro 16, 2016 local items = { --[Quantidade] = ITEMID, [10] = 2160, [2] = 3031, } function onUse(cid, item, fromPosition, itemEx, toPosition) for count, id in pairs(items) do if getPlayerItemCount(cid, id) < count then doPlayerSendCancel(cid, "Voce nao tem "..(count - getPlayerItemCount(cid, id)).." ".. getItemNameById(id).." para passar.") doSendMagicEffect(fromPosition, CONST_ME_POFF) return false end end return true end Eu posso colocar quantos itens eu quiser? e eu tenho que por algo na porta no remeres? Link para o comentário https://xtibia.com/forum/topic/238821-porta-que-s%C3%B3-abre-se-tiver-3-itens/#findComment-1681567 Compartilhar em outros sites More sharing options...
0 Caronte 446 Postado Janeiro 16, 2016 Share Postado Janeiro 16, 2016 (editado) Pera aí, esqueci de uma coisa, as portas já tem um arquivo. vá na pasta others/doors.lua em baixo de: function onUse(cid, item, fromPosition, itemEx, toPosition) , e coloque isso if item.uid == 1234 then local items = { --[Quantidade] = ITEMID, [10] = 2160, [2] = 2148, } for count, id in pairs(items) do if getPlayerItemCount(cid, id) < count then doPlayerSendTextMessage(cid,20, "Voce nao tem "..(count - getPlayerItemCount(cid, id)).." ".. getItemNameById(id).." para passar.") doSendMagicEffect(fromPosition, CONST_ME_POFF) return false end end doorEnter(cid, item, toPosition) return true end Na porta você deve colocar uniqueId 1234, você pode alterar no script o 1234 para outro, e colocar no remeres esse outro... o player só passará se tiver todos os items da tabela, seguindo o exemplo... Editado Janeiro 16, 2016 por Caronte Link para o comentário https://xtibia.com/forum/topic/238821-porta-que-s%C3%B3-abre-se-tiver-3-itens/#findComment-1681569 Compartilhar em outros sites More sharing options...
0 srkapetinha 3 Postado Janeiro 16, 2016 Autor Share Postado Janeiro 16, 2016 (editado) Pera aí, esqueci de uma coisa, as portas já tem um arquivo. vá na pasta others/doors.lua em baixo de: function onUse(cid, item, fromPosition, itemEx, toPosition) , e coloque isso if item.uid == 1234 then local items = { --[Quantidade] = ITEMID, [10] = 2160, [2] = 2148, } for count, id in pairs(items) do if getPlayerItemCount(cid, id) < count then doPlayerSendTextMessage(cid,20, "Voce nao tem "..(count - getPlayerItemCount(cid, id)).." ".. getItemNameById(id).." para passar.") doSendMagicEffect(fromPosition, CONST_ME_POFF) return false end end doorEnter(cid, item, toPosition) return true end Na porta você deve colocar uniqueId 1234, você pode alterar no script o 1234 para outro, e colocar no remeres esse outro... o player só passará se tiver todos os items da tabela, seguindo o exemplo... Vou testar aqui se der algum problema eu te falo, se der certo eu edito aqui e dou REP+ , valeeeu, obrigado mesmo. @EDIT 1 Caronte, tem como quando a pessoa não tiver os itens, a mensagem mostrar todos itens que precisa? Ele amostra só o primeiro, ai se eu pego o primeiro que ele mostra o segundo, queria que mostrasse todos os itens que precisa de uma só vez... E outra coisa, se eu quiser por essa porta em outra quest com itens diferentes,oque eu tenho que mudar? ou colocar? @EDIT 2 Quando eu tenho os 3 itens, diz "You cannot use this object" , não dá pra entrar mesmo assim Editado Janeiro 16, 2016 por srkapetinha Link para o comentário https://xtibia.com/forum/topic/238821-porta-que-s%C3%B3-abre-se-tiver-3-itens/#findComment-1681570 Compartilhar em outros sites More sharing options...
0 Caronte 446 Postado Janeiro 18, 2016 Share Postado Janeiro 18, 2016 Eu esqueci de falar que tem que ser com um "Gate of Expertise" , me manda uma mensagem para EU me lembrar depois De editar para aparecer tudo, porque estou De celular... Link para o comentário https://xtibia.com/forum/topic/238821-porta-que-s%C3%B3-abre-se-tiver-3-itens/#findComment-1682017 Compartilhar em outros sites More sharing options...
0 samlecter 133 Postado Janeiro 19, 2016 Share Postado Janeiro 19, 2016 Pera aí, esqueci de uma coisa, as portas já tem um arquivo. vá na pasta others/doors.lua em baixo de: function onUse(cid, item, fromPosition, itemEx, toPosition) , e coloque isso if item.uid == 1234 then local items = { --[Quantidade] = ITEMID, [10] = 2160, [2] = 2148, } for count, id in pairs(items) do if getPlayerItemCount(cid, id) < count then doPlayerSendTextMessage(cid,20, "Voce nao tem "..(count - getPlayerItemCount(cid, id)).." ".. getItemNameById(id).." para passar.") doSendMagicEffect(fromPosition, CONST_ME_POFF) return false end end doorEnter(cid, item, toPosition) return true end Na porta você deve colocar uniqueId 1234, você pode alterar no script o 1234 para outro, e colocar no remeres esse outro... o player só passará se tiver todos os items da tabela, seguindo o exemplo... Caso eu queira que precise de level e não item, como faço? Link para o comentário https://xtibia.com/forum/topic/238821-porta-que-s%C3%B3-abre-se-tiver-3-itens/#findComment-1682074 Compartilhar em outros sites More sharing options...
0 srkapetinha 3 Postado Janeiro 19, 2016 Autor Share Postado Janeiro 19, 2016 Eu esqueci de falar que tem que ser com um "Gate of Expertise" , me manda uma mensagem para EU me lembrar depois De editar para aparecer tudo, porque estou De celular... Mandei já Caronte, valeu Caso eu queira que precise de level e não item, como faço? http://www.xtibia.com/forum/topic/144346-porta-de-level/ Vê se esse tópico te ajuda amigo! Boa sorte Link para o comentário https://xtibia.com/forum/topic/238821-porta-que-s%C3%B3-abre-se-tiver-3-itens/#findComment-1682169 Compartilhar em outros sites More sharing options...
0 Caronte 446 Postado Janeiro 20, 2016 Share Postado Janeiro 20, 2016 if item.uid == 1234 then local items = { --[Quantidade] = ITEMID, [10] = 2160, [2] = 2148, } local std = "Voce precisa dos seguintes items: " for k, v in pairs(items) do std = std.. k.."-"..getItemDescriptionsById(v).name.." " end for count, id in pairs(items) do if getPlayerItemCount(cid, id) < count then doPlayerSendTextMessage(cid,20, std) doSendMagicEffect(fromPosition, CONST_ME_POFF) return false end end doorEnter(cid, item, toPosition) return true end Link para o comentário https://xtibia.com/forum/topic/238821-porta-que-s%C3%B3-abre-se-tiver-3-itens/#findComment-1682424 Compartilhar em outros sites More sharing options...
0 srkapetinha 3 Postado Janeiro 20, 2016 Autor Share Postado Janeiro 20, 2016 (editado) if item.uid == 1234 then local items = { --[Quantidade] = ITEMID, [10] = 2160, [2] = 2148, } local std = "Voce precisa dos seguintes items: " for k, v in pairs(items) do std = std.. k.."-"..getItemDescriptionsById(v).name.." " end for count, id in pairs(items) do if getPlayerItemCount(cid, id) < count then doPlayerSendTextMessage(cid,20, std) doSendMagicEffect(fromPosition, CONST_ME_POFF) return false end end doorEnter(cid, item, toPosition) return true end Esse eu substituo o anterior que você mandou? Ou eu acrescento? if item.uid == 1234 then local items = { --[Quantidade] = ITEMID, [10] = 2160, [2] = 2148, } local std = "Voce precisa dos seguintes items: " for k, v in pairs(items) do std = std.. k.."-"..getItemDescriptionsById(v).name.." " end for count, id in pairs(items) do if getPlayerItemCount(cid, id) < count then doPlayerSendTextMessage(cid,20, std) doSendMagicEffect(fromPosition, CONST_ME_POFF) return false end end doorEnter(cid, item, toPosition) return true end 2 Coisas, Ele só tá mostrando os 2 itens que você mandou com o script , o 3 que eu coloco aqui no script, não aparece, e continua não abrindo a porta com os itens.. Dá esse erro : Editado Janeiro 20, 2016 por srkapetinha Link para o comentário https://xtibia.com/forum/topic/238821-porta-que-s%C3%B3-abre-se-tiver-3-itens/#findComment-1682492 Compartilhar em outros sites More sharing options...
0 drakylucas 160 Postado Janeiro 20, 2016 Share Postado Janeiro 20, 2016 @@Caronte:Você não pode fazer o que fez, mas pode fazer o contráriose vc colocar a quantidade na esquerda (entre colchetes), a quantidade não pode ser repetida (tipo vc nao pode colocar dois items q precisem de apenas 1 de cada) pq o pairs só vai ler o primeiro.Teste aquihttp://www.lua.org/cgi-bin/demo(usa print pra ler o k,v in pairs) @@srkapetinha, qual versão vc está usando? (tfs 1.x, tfs 0.4, tfs 0.3.6)? cada versão muda bastante o jeito de fazer os scripts, é bom informá-la. Link para o comentário https://xtibia.com/forum/topic/238821-porta-que-s%C3%B3-abre-se-tiver-3-itens/#findComment-1682495 Compartilhar em outros sites More sharing options...
Pergunta
srkapetinha 3
Bom Dia pessoal do Xtibia, então, eu to querendo fazer uma quest de addon, só que eu preciso que o player tenha que ter 3 itens para passar na porta...
é só isso, deve ser simples para quem manja de script, oque não é meu caso
REP+ para quem puder me ajudar...
Obrigado
Link para o comentário
https://xtibia.com/forum/topic/238821-porta-que-s%C3%B3-abre-se-tiver-3-itens/Compartilhar em outros sites
10 respostass a esta questão
Posts Recomendados