Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Script 

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 playerHaveItems(cid, itemid)
local items = type(itemid) == "table" and itemid or {itemid}
for i = 1, #items do
if getPlayerItemCount(cid, items) <= 0 then
return false
end
end
return true
end

function doPlayerRemoveItems(cid, itemid, count)
local items = type(itemid) == "table" and itemid or {itemid}
for i = 1, #items do
doPlayerRemoveItem(cid, items, count ~= nil and count or 1)
end
return nil
end

function creatureSayCallback(cid, type, msg)

if(not npcHandler:isFocused(cid)) then
return false
end

if msgcontains(msg, "trocar") then
if playerHaveItems(cid, {2134, 2174, 2159}) then
doPlayerRemoveItems(cid, {2134, 2174, 2159}, 300)
doPlayerAddItem(cid, 2090, 1)
else
selfSay("Você Não tem os itens necessarios.")
end
end
return true

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

 

 

Agora vá em Data/Npc/Nomedonpc.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Fernando" script="trocaitems.lua" walkinterval="2000" floorchange="0">
<health now="100" max="100"/>
<look type="169" head="114" body="86" legs="114" feet="0" addons="2"/>
<parameters>
<parameter key="message_greet" value="Ola, diga {trocar} para trocar 3 items por 1."/>
</parameters>
</npc>

Ta Dando esse erro

[10/02/2016 12:58:23] [Error - LuaScriptInterface::loadFile] data/npc/scripts/trocaitems.lua:45: 'end' expected (to close 'function' at line 29) near 'endnpcHandler'
[10/02/2016 12:58:23] [Warning - NpcScript::NpcScript] Cannot load script: data/npc/scripts/trocaitems.lua
[10/02/2016 12:58:23] data/npc/scripts/trocaitems.lua:45: 'end' expected (to close 'function' at line 29) near 'endnpcHandler'

Link para o post
Compartilhar em outros sites
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 playerHaveItems(cid, itemid)
local items = type(itemid) == "table" and itemid or {itemid}
for i = 1, #items do
if getPlayerItemCount(cid, items) <= 0 then
return false
end
end
return true
end
function doPlayerRemoveItems(cid, itemid, count)
local items = type(itemid) == "table" and itemid or {itemid}
for i = 1, #items do
doPlayerRemoveItem(cid, items, count ~= nil and count or 1)
end
return nil
end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
if msgcontains(msg, "trocar") then
if playerHaveItems(cid, {2134, 2174, 2159}) then
doPlayerRemoveItems(cid, {2134, 2174, 2159}, 300)
doPlayerAddItem(cid, 2090, 1)
else
selfSay("Você Não tem os itens necessarios.")
end
end
end
return true

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

testa ai n é certeza 

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

 

 

Link para o post
Compartilhar em outros sites

[10/02/2016 13:23:47] [Error - LuaScriptInterface::loadFile] data/npc/scripts/trocaitems.lua:40: '<eof>' expected near 'endnpcHandler'
[10/02/2016 13:23:47] [Warning - NpcScript::NpcScript] Cannot load script: data/npc/scripts/trocaitems.lua
[10/02/2016 13:23:47] data/npc/scripts/trocaitems.lua:40: '<eof>' expected near 'endnpcHandler'

Link para o post
Compartilhar em outros sites
14 minutos atrás, Daniel augusto silva disse:

[10/02/2016 13:23:47] [Error - LuaScriptInterface::loadFile] data/npc/scripts/trocaitems.lua:40: '<eof>' expected near 'endnpcHandler'
[10/02/2016 13:23:47] [Warning - NpcScript::NpcScript] Cannot load script: data/npc/scripts/trocaitems.lua
[10/02/2016 13:23:47] data/npc/scripts/trocaitems.lua:40: '<eof>' expected near 'endnpcHandler'

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 playerHaveItems(cid, itemid)
local items = type(itemid) == "table" and itemid or {itemid}
for i = 1, #items do
if getPlayerItemCount(cid, items) <= 0 then
return false
end
end
return true
end
function doPlayerRemoveItems(cid, itemid, count)
local items = type(itemid) == "table" and itemid or {itemid}
for i = 1, #items do
doPlayerRemoveItem(cid, items, count ~= nil and count or 1)
end
return nil
end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
if msgcontains(msg, "trocar") then
if playerHaveItems(cid, {2134, 2174, 2159}) then
doPlayerRemoveItems(cid, {2134, 2174, 2159}, 300)
doPlayerAddItem(cid, 2090, 1)
else
selfSay("Você Não tem os itens necessarios.")
end
end
return true
end
endnpcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
 

 

 

Link para o post
Compartilhar em outros sites

[10/02/2016 13:56:24] [Error - Npc interface] 
[10/02/2016 13:56:24] data/npc/scripts/trocaitems.lua
[10/02/2016 13:56:24] Description: 
[10/02/2016 13:56:24] data/npc/scripts/trocaitems.lua:39: attempt to index global 'endnpcHandler' (a nil value)
[10/02/2016 13:56:24] [Warning - NpcScript::NpcScript] Cannot load script: data/npc/scripts/trocaitems.lua

Link para o post
Compartilhar em outros sites

Troca isso:

endnpcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

 

Por isso:

end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

 

O error está nesse "end" que estava junto da função. 

Link para o post
Compartilhar em outros sites

me ajuda a reformular mesmo eu tendo os itens ta falando que n tenho

 

2 horas atrás, dominus disse:

Troca isso:

endnpcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

 

Por isso:

end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

 

O error está nesse "end" que estava junto da função. 

 

Link para o post
Compartilhar em outros sites
17 horas atrás, Daniel augusto silva disse:

me ajuda a reformular mesmo eu tendo os itens ta falando que n tenho

 

 

 

Substitui essas duas funções:

Citar

function playerHaveItems(cid, itemid)
local items = type(itemid) == "table" and itemid or {itemid}
for i = 1, #items do
if getPlayerItemCount(cid, items) <= 0 then
return false
end
end
return true
end

function doPlayerRemoveItems(cid, itemid, count)
local items = type(itemid) == "table" and itemid or {itemid}
for i = 1, #items do
doPlayerRemoveItem(cid, items, count ~= nil and count or 1)
end
return nil
end

 

Por essas:

Citar

function playerHaveItems(cid, items)
if not (type (items) == "table") then return false end
for item, quant in pairs (items) do
if getPlayerItemCount(cid, item) < quant then return false end
end
return true
end

function doPlayerRemoveItems(cid, items)

if not (type (items) == "table") then return false end

if not (playerHaveItems(cid, iremos)) then return false end

for itemid, quant in pairs(items) do
doPlayerRemoveItem(cid, itemid, quant)
end
return true
end

 

Agora, você substitui essa sentença:

 

Citar

if (playerHaveItems(cid, {2134, 2174, 2159}) then
doPlayerRemoveItems(cid, {2134, 2174, 2159}, 300)

 

Por isso:

Citar

local items = {

-- [itemid] = quantidade

[2134] = 1,

[2174] = 1,

[2159] = 1

}

if (doPlayerRemoveItems(cid,items)) then

 

Deixando bem claro que a função playerhaveitems () não fica mais no "if".

Editado por dominus (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
Em 10/02/2016 14:23:07, dominus disse:

Troca isso:

endnpcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

 

Por isso:

end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

 

O error está nesse "end" que estava junto da função. 

agora do n no npc nao da nada 

Link para o post
Compartilhar em outros sites

 

1 hora atrás, Daniel augusto silva disse:

agora do n no npc nao da nada 

 

Ele responde que não tem os items? Caso não, verifica se essa função está no lugar certo.

 

doPlayerAddItem(cid, 2090, 1)

Link para o post
Compartilhar em outros sites
1 hora atrás, Daniel augusto silva disse:

ele n ta mais no/n em nada

 

 

Posta o script como está sendo usado.

Link para o post
Compartilhar em outros sites

function playerHaveItems(cid, items)
if not (type (items) == "table") then return false end
for item, quant in pairs (items) do
if getPlayerItemCount(cid, item) < quant then return false end
end
return true
end
function doPlayerRemoveItems(cid, items)
if not (type (items) == "table") then return false end
if not (playerHaveItems(cid, iremos)) then return false end
for itemid, quant in pairs(items) do
doPlayerRemoveItem(cid, itemid, quant)
end
return true
end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end

 

 

 

e no .xml 

<?xml version="1.0" encoding="UTF-8"?>
-<npc floorchange="0" walkinterval="2000" script="trocaitems.lua" name="Fernando"><health max="100" now="100"/><look addons="2" feet="0" legs="114" body="86" head="114" type="1813"/>-<parameters><parameter value="Ola, diga {trocar} para trocar 3 items por 1." key="message_greet"/></parameters></npc>
if msgcontains(msg, "trocar") then
local items = {
-- [itemid] = quantidade
[2134] = 1,
[2174] = 1,
[2159] = 1
}
if (doPlayerRemoveItems(cid,items)) then
doPlayerAddItem(cid, 2090, 1)
else
selfSay("Você Não tem os itens necessarios.")
end
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Editado por Daniel augusto silva (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
1 hora atrás, Daniel augusto silva disse:

function playerHaveItems(cid, items)
if not (type (items) == "table") then return false end
for item, quant in pairs (items) do
if getPlayerItemCount(cid, item) < quant then return false end
end
return true
end
function doPlayerRemoveItems(cid, items)
if not (type (items) == "table") then return false end
if not (playerHaveItems(cid, iremos)) then return false end
for itemid, quant in pairs(items) do
doPlayerRemoveItem(cid, itemid, quant)
end
return true
end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
if msgcontains(msg, "trocar") then
local items = {
-- [itemid] = quantidade
[2134] = 1,
[2174] = 1,
[2159] = 1
}
if (doPlayerRemoveItems(cid,items)) then
doPlayerAddItem(cid, 2090, 1)
else
selfSay("Você Não tem os itens necessarios.")
end
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
 

 

Jesus, Maria e José... oque é isso?

 

Não era para retirar nada além do que eu pedi que fosse moeificado, isso continua no script, sem ele o npc não funciona:

Citar

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

 

Link para o post
Compartilhar em outros sites
1 hora atrás, Daniel augusto silva disse:

foi o cara do outro topico que mando xtibia

 

1 hora atrás, Daniel augusto silva disse:

foi o cara do outro topico que mando xtibia

 

Funcionou?

Link para o post
Compartilhar em outros sites

Nao

 

[11/02/2016 15:27:48] [Error - MoveEvents Interface] 
[11/02/2016 15:27:48] data/movements/scripts/portrait.lua:onEquip
[11/02/2016 15:27:48] Description: 
[11/02/2016 15:27:48] (luaDoTransformItem) Item not found
[11/02/2016 15:27:48] Lucifer has logged in.
[11/02/2016 15:27:54] [Warning - Npc::loadFromXml] Cannot load npc file (data/npc/function playerHaveItems(cid.xml).
[11/02/2016 15:27:54] Info: failed to load external entity "data/npc/function playerHaveItems(cid.xml"
 

Link para o post
Compartilhar em outros sites

Encontrei o erro na variável da função doplayerremoveitems ()

playerHaveItems(cid, iremos)

 

Troca "iremos" por "items"

 

Link para o post
Compartilhar em outros sites
  • 4 weeks later...

Po Cara, Valeu!!! Só o seu script funcionou! e caso quem não queira ter que ler o post todo, vou anexar os Scripts como estão no meu Server, sem erros e funcionando 100%!

 

REP+<3

Donate Seller.xml

1Donateseller.lua

" Eu Pergunto Porque 

Se Tivesse Certeza De Tudo,

EU MESMO FAZIA! ''

 Ficar no pc até 3 hora da manha be like:

Gifs-Medonhos-e-Engra%C3%A7ados.gif

 

 

 

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.

  • Conteúdo Similar

    • Por LeoTK
      Salve galera neste tópico irei postar algumas prints do mapa do servidor para quem queira acompanhar e quem sabe até utilizar de inspiração para mapear o seu NTO.
       
      #Att 11/08/2022

       
       
       
       
      Konoha (Em Desenvolvimento)
       
       
       
       
    • Por DiigooMix
      Como o título já diz, será que alguém possui sprite do hitto e se possível as transformações dele?
    • Por OmegaZero
      Olá gostaria que alguém me ajudasse com uma "scripting" não sei se é pela mesma, seria o seguinte uma determinada arma teria a chance de dar double hit e não sei oque fazer alguem poderia ajudar?

      OBS:não sei se é o local correto se não for mova, desculpe
    • Por Madarasenju
      Olá galera do Tibia King, queria por uns npc's no meu server que não tem função de trade nem nada do tipo, queria que eles só andassem como enfeite, Rep+ Pra quem me ajudar... grato desde já.
    • Por SilenceRoot
      A magia é assim o você usa a a magia e ela ficará ativado por 10 segundos, até que o inimigo lance a primeira magia ou todos de uma vez, quando ele lançar a primeira magia, ele não lhe acertará ou seja esquivando dela, e logo em seguida será teletransportado aleatoriamente ao redor do inimigo que usou.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo