Ir para conteúdo
  • Cadastre-se

(Resolvido)[NPC] Diversos Tipos


Ir para solução Resolvido por Wakon,

Posts Recomendados

Ola,

 

Gostaria de pedir o seguintes NPC's.

 

- NPC Travel Especial: que teletransporta o char só se tiver a storage.

 

- NPC Trade Especial: que troca um item e da em seguida a storage para que ele não troque novamente o item

 

- NPC Quest Especial: Que pega um item e da storage.

 

Se for possível favor ou tiver que possa me passar agradeço.

 

Para versão 8.54.

Link para o post
Compartilhar em outros sites
  • Administrador

Travel por storage.

Em npc/scripts crie um arquivo com qual quer nome.lua e adicione

local STORAGE = 5021 -- Storage necessária para viajar
local DESTINO = {x = 160, y = 54, z = 7} -- POSIÇÃO DE DESTINO
 
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
 
function onCreatureAppear(cid)         npcHandler:onCreatureAppear(cid)         end
function onCreatureDisappear(cid)      npcHandler:onCreatureDisappear(cid)         end
function onCreatureSay(cid, type, msg)   npcHandler:onCreatureSay(cid, type, msg:lower())   end
function onThink()                  npcHandler:onThink()                  end
local talkState = {}
 
function creatureSayCallback(cid, type, msg)
   if(not npcHandler:isFocused(cid)) then
      return false
   end
 
   local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
 
   if msgcontains(msg, "cinnabar") then
      selfSay("Você deseja ser teletransportado para cinnabar?", cid)
      talkState[talkUser] = 1
   elseif msgcontains(msg, "yes") and talkState[talkUser] == 1 then
      if getPlayerStorageValue(cid, STORAGE) > 0 then
         selfSay("Aí está!", cid)
         doSendMagicEffect(getThingPos(cid), 10)
         npcHandler:releaseFocus(cid)
         doTeleportThing(cid, DESTINO)
         doSendMagicEffect(DESTINO, 10)
      else
         selfSay("Me desculpe, mas você não tem acesso a cinnabar.", cid)
      end
      talkState[talkUser] = 0
   end
 
   return true
end
 
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
 

Scripts npc trade


local id1 = 9533  --id do item a ser trocado
local id2 = 9533  --id do item a ser recebido
local stor = 34444 -- storage que o npc vai adr pelo item
local quantidade = 150 -- quantos itens player deve ter para trocar por storage 
local palavra = "trocar" --palavra chave pra falar com o npc pra trocar a storage
local mensagem = "BLABLABLALBALBALBLALBALBLA." -- a mensagem que deve ser dita se ele não tiver o item
 
 
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, palavra) then
if playerHaveItems(cid, {id1}) then
doPlayerRemoveItems(cid, {id1}, quantidade)
doPlayerAddItems(cid, {id2}, quantidade)
setPlayerStorageValue(cid, stor, 1)
else
selfSay(mensagem)
end
end 
return true
 
endnpcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Npc que pega item

local id1 = 9533  --id do item a ser removido
local stor = 34444 -- storage que o npc vai adr pelo item
local quantidade = 150 -- quantos itens player deve ter para trocar por storage 
local palavra = "trocar" --palavra chave pra falar com o npc pra trocar a storage
local mensagem = "BLBULBULUBL." -- a mensagem que deve ser dita se ele não tiver o item
 
 
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[i]) <= 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[i], 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, palavra) then
if playerHaveItems(cid, {id1}) then
doPlayerRemoveItems(cid, {id1}, quantidade)
setPlayerStorageValue(cid, stor, 1)
else
selfSay(mensagem)
end
end 
return true
 
endnpcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new()) 

Se der algum erro reporte aqui no topico.

TibiaKing Team- KingTópicos
www.tibiaking.com

Link para o post
Compartilhar em outros sites
Estão dando erro os 3, 2 da o seguinte erros
 
[04/05/2015 20:13:26] [Error - LuaScriptInterface::loadFile] data/npc/scripts/Boater.lua:52: 'end' expected (to close 'function' at line 36) near 'endnpcHandler'
[04/05/2015 20:13:26] [Warning - NpcScript::NpcScript] Cannot load script: data/npc/scripts/Boater.lua
[04/05/2015 20:13:26] data/npc/scripts/Boater.lua:52: 'end' expected (to close 'function' at line 36) near 'endnpcHandler'
 
[04/05/2015 20:13:26] [Error - Npc interface] 
[04/05/2015 20:13:26] data/npc/scripts/Johny.lua
[04/05/2015 20:13:26] Description: 
[04/05/2015 20:13:26] (luaGetThing) Thing not found
 
[04/05/2015 20:13:26] [Error - Npc interface] 
[04/05/2015 20:13:26] data/npc/scripts/Johny.lua
[04/05/2015 20:13:26] Description: 
[04/05/2015 20:13:26] data/lib/050-function.lua:299: attempt to index a boolean value
[04/05/2015 20:13:26] [Warning - NpcScript::NpcScript] Cannot load script: data/npc/scripts/Johny.lua
[04/05/2015 20:13:26] data/npc/scripts/Boater.lua:52: 'end' expected (to close 'function' at line 36) near 'endnpcHandler'
 
 
O terceiro não responde
 
10mmna8.jpg
Link para o post
Compartilhar em outros sites
  • Solução

Não testei os script's, caso tenha algum erro me avise.

- NPC Travel Especial: que teletransporta o char só se tiver a storage:

local position = {x = 160, y = 54, z = 7} -- Posição que irá levar.
local storage = {55509, 1} -- Storage necessária {key, value}.

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
    msg = msg:lower();
    local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

    if msgcontains(msg, 'travel') or msgcontains(msg, 'passage') then
       selfSay('Posso te levar até LOCAL, deseja ir?', cid)
       talkState[talkUser] = 1
    elseif msgcontains(msg, 'yes') then
        if talkState[talkUser] == 1 then
           if getPlayerStorageValue(cid, storage[1]) == storage[2] then
             doTeleportThing(cid, position)
             doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
             selfSay('Até mais...', cid)
           else
             selfSay('Você não tem permissão para acessar esse local.', cid)
             talkState[talkUser] = 0
           end
        end
    elseif msgcontains(msg, 'no') then
        if talkState[talkUser] == 1 then
           selfSay('Ok...', cid)
           talkState[talkUser] = 0
        end
    end
end    

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

 

- NPC Trade Especial: que troca um item e da em seguida a storage para que ele não troque novamente o item:

local t = {
    ineed = {2160, 10}, -- Item necessário e quantia {itemID, quantia}.
    ireward = 2465, -- Item que irá receber.
    storage = {55510, 1} -- Storage para não trocar novamente {key, value}.
}

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
    msg = msg:lower();
    local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

    if msgcontains(msg, 'change') or msgcontains(msg, 'trocar') then
       selfSay('Eu posso trocar '..t.ineed[2]..' '..getItemNameById(t.ineed[1])..' por um '..getItemNameById(t.ireward)..', deseja trocar?', cid)
       talkState[talkUser] = 1
    elseif msgcontains(msg, 'yes') then
        if talkState[talkUser] == 1 then
           if getPlayerStorageValue(cid, t.storage[1]) < t.storage[2] then
               if doPlayerRemoveItem(cid, t.ineed[1], t.ineed[2]) == TRUE then
                  doPlayerAddItem(cid, t.ireward, 1)
                  selfSay('Aqui está, obrigado', cid)
                  setPlayerStorageValue(cid, t.storage[1], t.storage[2])
                  talkState[talkUser] = 0
               else
                  selfSay('Você não tem os itens necessários.', cid)
                  talkState[talkUser] = 0
               end
           else
             selfSay('Você não pode trocar novamente.', cid)
             talkState[talkUser] = 0
           end
        end
    elseif msgcontains(msg, 'no') then
        if talkState[talkUser] == 1 then
           selfSay('Ok...', cid)
           talkState[talkUser] = 0
        end
    end
end    

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

 

- NPC Quest Especial: Que pega um item e da storage:

local t = {
    ineed = {2160, 1}, -- Item necessário e quantia {itemID, quantia}.
    storage = {55511, 1} -- Storage para não trocar novamente {key, value}.
}

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
    msg = msg:lower();
    local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

    if msgcontains(msg, 'mission') or msgcontains(msg, 'quest') then
       selfSay('Posso lhe oferecer acesso a uma área por '..t.ineed[2]..' '..getItemNameById(t.ineed[1])..', deseja fazer essa troca?', cid)
       talkState[talkUser] = 1
    elseif msgcontains(msg, 'yes') then
        if talkState[talkUser] == 1 then
           if getPlayerStorageValue(cid, t.storage[1]) < t.storage[2] then
               if doPlayerRemoveItem(cid, t.ineed[1], t.ineed[2]) == TRUE then
                  selfSay('Agora você tem acesso a área proibida!', cid)
                  setPlayerStorageValue(cid, t.storage[1], t.storage[2])
                  talkState[talkUser] = 0
               else
                  selfSay('Você não tem os itens necessários.', cid)
                  talkState[talkUser] = 0
               end
           else
             selfSay('Você já tem acesso a área proibida.', cid)
             talkState[talkUser] = 0
           end
        end
    elseif msgcontains(msg, 'no') then
        if talkState[talkUser] == 1 then
           selfSay('Ok...', cid)
           talkState[talkUser] = 0
        end
    end
end    

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

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

Wakon,

 

NPC Quest da o seguinte erro

 

[05/05/2015 15:08:58] [Error - Npc interface] 
[05/05/2015 15:08:58] data/npc/scripts/mayor2.lua:onCreatureSay
[05/05/2015 15:08:58] Description: 
[05/05/2015 15:08:58] data/lib/050-function.lua:287: attempt to index a boolean value
[05/05/2015 15:08:58] stack traceback:
[05/05/2015 15:08:58] data/lib/050-function.lua:287: in function 'getItemNameById'
[05/05/2015 15:08:58] data/npc/scripts/mayor2.lua:26: in function 'callback'
[05/05/2015 15:08:58] data/npc/lib/npcsystem/npchandler.lua:383: in function 'onCreatureSay'
[05/05/2015 15:08:58] data/npc/scripts/mayor2.lua:14: in function <data/npc/scripts/mayor2.lua:14>
 
- Quando vai falar Trocar.
 
- Trade Especial
 
[05/05/2015 15:11:29] [Error - Npc interface] 
[05/05/2015 15:11:29] data/npc/scripts/Boater.lua:onCreatureSay
[05/05/2015 15:11:29] Description: 
[05/05/2015 15:11:29] data/npc/scripts/Boater.lua:25: attempt to concatenate field 'ineed' (a table value)
[05/05/2015 15:11:29] stack traceback:
[05/05/2015 15:11:29] data/npc/scripts/Boater.lua:25: in function 'callback'
[05/05/2015 15:11:29] data/npc/lib/npcsystem/npchandler.lua:383: in function 'onCreatureSay'
[05/05/2015 15:11:29] data/npc/scripts/Boater.lua:13: in function <data/npc/scripts/Boater.lua:13>
 
- Não deu para testar o outro por causa que precisava dos dois...
Link para o post
Compartilhar em outros sites

Agora um funcionou, o de npc de trade especial funcionou, porem, os outros eu percebi que o script não está aceitando a troca de comandos de resposta, o de travel está: travel e passage, fiz o teste, tirei o travel e coloquei namekjin e rodei o server o namekjin não funciona como comando mais o passage funciona.

 

o outro está acontecendo a mesma coisa.

Link para o post
Compartilhar em outros sites

Agora um funcionou, o de npc de trade especial funcionou, porem, os outros eu percebi que o script não está aceitando a troca de comandos de resposta, o de travel está: travel e passage, fiz o teste, tirei o travel e coloquei namekjin e rodei o server o namekjin não funciona como comando mais o passage funciona.

 

o outro está acontecendo a mesma coisa.

Colocou com letra minúscula?

Link para o post
Compartilhar em outros sites

É, acabei de ver que estava, agora funcionou, jovem, obrigado pela ajuda, vou deixar meu rep e teu nome no agradecimento do meu site depois Vlw!

Link para o post
Compartilhar em outros sites

É, acabei de ver que estava, agora funcionou, jovem, obrigado pela ajuda, vou deixar meu rep e teu nome no agradecimento do meu site depois Vlw!

Por nada, que bom que funcionou. :)

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 Mathwsz
      Bom galera, estou trazendo um script de fusão que funciona assim:
      Explicação: É necessário de 7 itens, na qual você coloca em tal coordenada e aperte a alavanca, sendo assim formando um item na qual você deseja em tal lugar configurado.
      Exemplo: Você pode fazer 7 bosses na qual dropa tals itens "Parecidos" e formando um item raro de sua escolha, ou como preferir.. Vamos ao script!
       
      Em Data/Actions/Scripts crie um arquivo chamado fusaoitens.lua e adicione isto dentro:
       
       
      Agora, em Data/Actions.xml adicione o seguinte:
       
      <action uniqueid="9900" script="fusaoitens.lua" /> E no seu RemeresMapEditor , pegue sua alavanca, vai em Propriedades e adicione o UniqueID 9900 nele! 
      PRONTO! Agora configure e divirta-se! Obs: Caso lhe ajudei, da um REP+ Aí !
    • Por Cat
      Testado em: TFS 1.0 (10.31)
      Funciona em: TFS 1.0 e TFS 0.4
      Descrição: Você leva uma determinada espada até o npc, fala com ele, ele vai pegar essa espada e ficar com ela por um certo tempo (3min), claro, você irá pagar uma quantia. Ao retornar, sua espada estará melhorada (no caso dos ids utilizados o npc irá trocar o item). Se houver algum bug, reporte que arrumaremos.
      Créditos: Jamison, Daniel.
       
      ---------- • ----------
       
      Diálogo:
       
      22:21 Daniel [250]: hi 
      22:21 Blacksmith Elf: Hello Daniel! I'm a Blacksmith Elf, I can transform your item! 
      22:21 Daniel [250]: transform 
      22:21 Blacksmith Elf: From time to time fate smiles upon those who take great risks and have strong dreams! If you have money, we can try to transform your umbral swords, axes, clubs, bows, crossbows or spellbooks. 
      22:21 Daniel [250]: club 
      22:21 Blacksmith Elf: One handed or two handed? 
      22:21 Daniel [250]: one handed 
      22:21 Blacksmith Elf: Do you want to spend your money to transform your crude umbral mace, yes or no? 
      22:21 Daniel [250]: yes 
      22:21 Blacksmith Elf: Great! Alright, I need a while to finish this club for you. Come ask me later. 22:22 Daniel [250]: hi 
      22:22 Blacksmith Elf: Hello Daniel! I'm a Blacksmith Elf, I can transform your item! 
      22:22 Daniel [250]: transform 
      22:22 Blacksmith Elf: Have you left anything here to transform ? 
      22:22 Daniel [250]: yes 
      22:22 Blacksmith Elf: You must wait until : 22:24:49. 22:25 Daniel [250]: hi 
      22:25 Blacksmith Elf: Hello Daniel! I'm a Blacksmith Elf, I can transform your item! 
      22:25 Daniel [250]: transform 
      22:25 Blacksmith Elf: Have you left anything here to transform ? 
      22:25 Daniel [250]: yes 
      22:25 Blacksmith Elf: Here you have it.  
      ---------- • ----------
       
      Fotos
       

       

       

       
      ---------- • ----------
       
      Script:
       
      data/npc/Blacksmith Elf.lua
       



       
      data/npc/scripts/blacksmith_elf.lua
       



    • Por MySticaL
      Script Quest:
      --[[ Script: Exemplo de Quest Autor: MySticaL Email: [email protected] ]] function onUse(cid, item, frompos, item2, topos) -- Não mecha. storage = 938312 -- Storage a cada quest que for criada aumente um numero da storage pra qnd vc pegar o baú de outra quest ñ aparecer que vc já fez. item = 2160 -- Id do item ira ganhar. quantidade = 1 -- Quantidade ira ganhar. level = 5 -- Level que precisa pra fazer. if getPlayerLevel(cid) >= level and getPlayerStorageValue(cid,storage) == -1 then -- Não mecha. doPlayerSendTextMessage(cid,25,"Você ganhou um pouco de dinheiro") -- Mensagem que aparecera quando ganhar o item. doPlayerAddItem(cid, item, quantidade) -- Não mecha. setPlayerStorageValue(cid,storage,1) -- Não mecha. elseif getPlayerLevel(cid) <= level then -- Não mecha doPlayerSendTextMessage(cid,25,"Você precisa ser level 5 ou mais.") -- Mensagem que ira aparecer se o player tiver menos level que o necessario. elseif getPlayerStorageValue(cid,storage) >= 1 then -- Não mecha. doPlayerSendTextMessage(cid,25,"Você já fez está quest") -- Quando tentar pegar mais de uma vez o baú. end return true end Actions.xml
      <action actionid="3123" event="script" value="script.lua"/> Obs: O actionid="3123" é o que você deve botar no item no Remeres Map Editor
      Caso você queria criar outra quest aumente a storage no script e o id no actions.xml !
      Como configurar ?
      R- \/
      ================================================================================================================================
      storage = 938312 -- Storage a cada quest que for criada aumente um numero da storage pra quando você for pegar o baú de outra quest não aparecer  que você já fez.
      ================================================================================================================================
      item = 2160 -- Id do item ira ganhar.
      ======================================================
      quantidade = 1 -- Quantidade ira ganhar.
      ======================================================
      level = 5 -- Level que precisa pra fazer.
      ======================================================
      Script bem simples mais irá ajudar alguns membros.
      Rep não cai o dedo
      Não sei muito sobre script.
       
      100% Créditos meu caso for postar em outro lugar deixe os créditos para min !
      Desculpem o tópico mal arrumado
       
    • Por VitorSubhi
      Apresentação: Olá galera do Tibia King, este é meu primeiro tutorial que desenvolvo após anos apenas sugando da comunidade, chegou a hora de compartilhar um pouco de conhecimento, rsrs...
      Após ver que muitos usuários tinham interesse em um sistema de Trade de Points in-game resolvi trazer um sistema totalmente completo para vocês.
       
      Funcionamento:
      Player 1 após adquirir os Points, pode iniciar uma negociação com o Player 2 através do comando /tradepoints Player 2, Quantidade. Será aberto uma Janela de Trade com o item referente aos Points. Após ambos aceitarem a negociação será realizado a troca de Points pelo item requisitado.
      Observações:
      Necessário ter acesso às Sources de sua Distro. Testado em servidor 8.6 (The Forgotten Server 0.4). Antes que venham falar que possui sistemas parecidos, veja o diferencial (Item não aparece em nenhum inventário, e não é necessário usar/comprar qualquer item).  
      Algumas Imagens:
       
      Instalação:
      Sources > Luascript.cpp Sources > Luascript.cpp Sources > Luascript.h  
       
      Server > Data > Lib > 050-function Server > Data > Creaturescripts > Scripts >Trade_Orbs.lua Server > Data > Creaturescripts > Creaturescripts.xml Server > Data > Creaturescripts > Scripts > Login.lua Server > Data > Talkactions > Scripts > Points_Trade.lua Server > Data > Talkactions > Talkactions.xml Créditos:
      Todo o sistema foi feito completamente por mim: Vítor Subhi.
      The Forgotten Server (Pelas Sources)
      Vodkart, White Wolf, Natanael Beckman, e a todos os demais membros do TK que não lembro o nome, que contribuíram indiretamente através de seus tutoriais.
       
       
       
       
       
    • Por lordzetros
      Bom, como o título já informa, o script faz com que você remova um item do inventário de algum player online.
       
      Versão: 8.6 - TFS 0.4
      Em data\talkactions\scripts crie um arquivo chamado removerItem (lembrando que deve ser .lua, caso não saiba criar um, copie algum já existente e cole, após isso, mude o nome do arquivo e cole o código dentro)
       
      --[[ Script feito por Lordzetros para o fórum Tibia King ]] function onSay(cid, words, param) pos = getPlayerPosition(cid) if (param == '') then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O comando necessita de parametros (nomePlayer,idItem,quantidade). Ex.: /remover Bugador,2160,100") if (not isPlayerGhost(cid)) then doSendMagicEffect(pos, CONST_ME_POFF) end return true end local aux = string.explode(param, ",") local pid = getPlayerByNameWildcard(aux[1]) if (not pid) then return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Player " .. aux[1] .. " nao encontrado.") elseif (getPlayerAccess(pid) > getPlayerAccess(cid)) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce nao pode remover itens de um superior seu.") doPlayerSendTextMessage(pid, MESSAGE_INFO_DESCR, "O membro da staff " ..getCreatureName(cid).. " tentou remover um item de voce!") return true end aux[1] = aux[1]:lower() local qntd = 1 if(aux[3]) then if (tonumber(aux[3]) <= 0) then return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Nao eh permitido valores nulos/negativos! Caso queira remover apenas 1x, use /remover Player,idItem") else qntd = aux[3] end end if (doPlayerRemoveItem(pid, tonumber(aux[2]), qntd) == TRUE) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Removido " ..qntd.. "x " ..getItemNameById(aux[2]).. " do player "..aux[1]) posPlayer = getCreaturePosition(pid) doSendMagicEffect(posPlayer, CONST_ME_PLANTATTACK) doCreatureSay(pid,"O membro da staff " ..getCreatureName(cid).. " removeu " ..qntd.. "x " ..getItemNameById(aux[2]).." de seu inventario!", TALKTYPE_ORANGE_1) return true else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O Player " ..aux[1].. " nao tem o item ou a quantidade do item informada em seu inventario.") end return true end Salve o arquivo no qual colocou o código, após isso navegue até data\talkactions\ e abra o arquivo talkactions.lua, e coloque este trecho de código onde quiser:
       
      <talkaction log="yes" access="3" words="/remover" event="script" value="removerItem.lua"/> Feito isso, salve o mesmo e já pode testar no seu servidor.

      Obs1.: Repare que o acesso está definido como 3, ou seja, GM para cima. (mude se quiser)

       
      Comando na prática: /remover nomePlayer,idItem,qntd

      Imagens:
      1

       
      2

       
      3


       
      4

       
      Enfim, é isso pessoal, script simples, porém, pode servir para algum tibiano interessado. 
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo