Ir para conteúdo
  • 0

Piso ou porta que só entra quem tiver x item


HenrikDiamond

Pergunta

Olá Galera do Xtibia u,U, Hoje estou aki para pedir um script para alguem q conheça do ramo...

 

É o seguinte, tenho um servidor de poketíbia (PDA sem level), que estou querendo fazer uma victory road e a elite dos 4!

Mas pra conseguir ir pra elite dos 4, gostaria que precisasse ter todas as insignias para tentar derrotar a elite dos 4!

Por isso estou precisando desse script, UM QUE SÓ PASSE QUEM TIVER AS 8 INSIGNIAS, ou talvez algum npc que troque as insignias por algum item X, e precise desse item pra teleportar pra elite!

 

isso que pensei, quem poder me ajudar, tá valendo Rep+

 

--Id das Insignias: 12251 até 12259!

 

Grato!

 

@edit

 

ou Pra ficar mais fácil, gostaria de um npc que trocaria as insignias pelo item 2319, e esse item teleportasse até a elite 4!

Editado por HenrikDiamond
Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Apenas copiando o código, sem nem ao menos ler as observações que deixo, é óbvio que vai dar erro.

 

local ids = {...}    --Coloque aqui o ID das insígnias. Ex. de como a tabela poderia ficar, se fossem 4 items, sendo eles de ID: 1928, 1929, 1930 e 1931- {1928, 1929, 1930, 1931}
Link para o comentário
Compartilhar em outros sites

  • 0

Ainda nao....

 

o erro é esse:

 

[28/02/2014 17:45:17] [Error - LuaScriptInterface::loadFile] data/npc/scripts/tradeelite.lua:22: function arguments expected near ','
[28/02/2014 17:45:17] [Warning - NpcScript::NpcScript] Cannot load script: data/npc/scripts/tradeelite.lua
[28/02/2014 17:45:17] data/npc/scripts/tradeelite.lua:22: function arguments expected near ','

 

 

Meu script do npc

 

 

Elite pass:

 

<?xml version="1.0" encoding="UTF-8"?>

<npc name="Elite Pass" script="tradeelite.lua" walkinterval="350000" floorchange="0" speed="0" lookdir="2">

<health now="150" max="150"/>

<look type="1444" head="91" body="114" legs="86" feet="0"/>

<parameters>

</parameters>

</npc>

 

 

 

 

 

Tradeelite.lua:

 

 

 

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
local ids = {12251, 12252, 12253, 12254, 12255, 12256, 12257, 12258, 12259} --Coloque aqui o ID das insígnias. Ex. de como a tabela poderia ficar, se fossem 4 items, sendo eles de ID: 1928, 1929, 1930 e 1931- {1928, 1929, 1930, 1931}
local strange = 2319
local check = 0
if msgcontains(msg:lower(), "badges") or msgcontains(msg:lower(), "badge") then
selfSay("Você gostaria de trocar suas 8 insígnias por um "..getItemNameById(strange).."?")
talkState[talkUser] = 1
return true
elseif (msgcontains(msg:lower, "yes") or msgcontains(msg:lower(), "sim")) and talkState[talkUser] == 1 then
for i = 1, #ids do
if getPlayerItemCount(cid, ids) >= 1 then
check = check + 1
end
end
if check == #ids then
selfSay("Certo, aqui está seu "..getItemNameById(strange).."!")
for i = 1, #ids do
doPlayerRemoveItem(cid, ids, 1)
end
doPlayerAddItem(cid, strange, 1)
talkState[talkUser] = 0
return true
else
selfSay("Você não tem 8 insígnias.")
talkState[talkUser] = 0
return true
end
elseif (msgcontains(msg:lower(), "no") or msgcontains(msg:lower(), "nao")) and talkState[talkUser] == 1 then
selfSay("Tudo bem, então. Até logo!")
talkState[talkUser] = 0
return true
end
return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

 

Link para o comentário
Compartilhar em outros sites

  • 0



local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)

NpcSystem.parseParameters(npcHandler)

local talkState = {}

function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end

function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end

function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end

function onThink() npcHandler:onThink() end

function creatureSayCallback(cid, type, msg)

if(not npcHandler:isFocused(cid)) then

return false

end

 

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

local ids = {12251, 12252, 12253, 12254, 12255, 12256, 12257, 12258, 12259} --Coloque aqui o ID das insígnias. Ex. de como a tabela poderia ficar, se fossem 4 items, sendo eles de ID: 1928, 1929, 1930 e 1931- {1928, 1929, 1930, 1931}

local strange = 2319

local check = 0

if msgcontains(msg:lower(), "badges") or msgcontains(msg:lower(), "badge") then

selfSay("Você gostaria de trocar suas 8 insígnias por um "..getItemNameById(strange).."?")

talkState[talkUser] = 1

return true

elseif (msgcontains(msg:lower(), "yes") or msgcontains(msg:lower(), "sim")) and talkState[talkUser] == 1 then

for i = 1, #ids do

if getPlayerItemCount(cid, ids) >= 1 then

check = check + 1

end

end

if check == #ids then

selfSay("Certo, aqui está seu "..getItemNameById(strange).."!")

for i = 1, #ids do

doPlayerRemoveItem(cid, ids, 1)

end

doPlayerAddItem(cid, strange, 1)

talkState[talkUser] = 0

return true

else

selfSay("Você não tem 8 insígnias.")

talkState[talkUser] = 0

return true

end

elseif (msgcontains(msg:lower(), "no") or msgcontains(msg:lower(), "nao")) and talkState[talkUser] == 1 then

selfSay("Tudo bem, então. Até logo!")

talkState[talkUser] = 0

return true

end

return true

end

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

Link para o comentário
Compartilhar em outros sites

  • 0

é agora deu pra sumonar o npc, mas ele nao troca os items. Irei encontrar outra maneira de fazer isso. Pois nao deve dar pra trocar um item que nao pode se mover, ainda mais que as badges sao items que nao saem do slot. De qualquer forma, obrigado a todos que colaboraram e já podem fechar o topico!

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...