Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Galera alguem poderia mim ajudar com um NPC que venda voc, ID DO COIN: 2145, ID DA VOCAÇAO: 492

 

Obg.. pela atençao! 

Link para o post
Compartilhar em outros sites

Vai um npc ai.

 

Cria um arquivo em data/npc/Nome do npc.xml e coloca isso dentro:

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Juca" script="juca.lua" walkinterval="2000" floorchange="0">
    <health now="100" max="100"/>
    <look type="128" head="17" body="54" legs="114" feet="0" addons="2"/>
    <parameters>
        <parameter key="message_greet" value="Ola |PLAYERNAME|, se voce quer uma vocação VIP tu precisa do {pergaminho}."/>
    </parameters>
</npc>

 

----------------------------

Crie um arquivo em data/npc/scripts/Nome do npc.lua e coloca isso dentro:

 

local pergaminhoid = 2154 -- Itemid do pergaminho
 
local vocations = {
    [5] = {9, 10, 11},
    [6] = {12, 13, 14},
    [7] = {15, 16, 17},
    [8] = {17, 15, 10}
}
 
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, typeb, msg)
    local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
 
    if(not npcHandler:isFocused(cid)) then
        if msgcontains(msg, "hi") then
            talkState[talkUser] = 0
        end
        return true
    end
 
 
    local voc = vocations[getPlayerVocation(cid)]
    if voc then
        if msgcontains(msg, "pergaminho") then
            if getPlayerItemCount(cid, pergaminhid) > 0 then
                local str = ""
                local ret = {}
 
                for _, v in pairs(voc) do
                    str = str .. "{".. getVocationInfo(v).name .. "}, "
                    table.insert(ret, getVocationInfo(v).name:lower())
                end
 
                npcHandler:say("Ora ora, voce tem o pergaminho, então escolha sua vocaçao vip: ".. str:sub(1, #str - 2) .. ".", cid)
                talkState[talkUser] = ret
            else
                npcHandler:say("Você não tem o pergaminho.", cid)
            end
        elseif type(talkState[talkUser]) == "table" and isInArray(talkState[talkUser], msg:lower()) then
            if doPlayerRemoveItem(cid, pergaminhoid, 1) then
                for _, v in pairs(voc) do
                    if getVocationInfo(v).name:lower() == msg:lower() then
                        doPlayerSetVocation(cid, voc)
                        break
                    end
                end
 
                npcHandler:say("Ótima escolha, agora voce é {".. msg:lower() .. "}, até mais!", cid)
                                talkState[talkUser] = 0
            else
                npcHandler:say("Você não tem o pergaminho.", cid)
            end
        end
    end
 
    return true
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

--------------------------------------

 

Configurando o npc xml

aqui nesse linha você edita a primeira fala do npc

<parameter key="message_greet" value="Ola |PLAYERNAME|, se voce quer uma vocação VIP tu precisa do {pergaminho}."/>

 

--------------------------------------

 

Configurando o npc.lua

aqui e caso você mude no xml terá que mudar tbm.

if msgcontains(msg, "pergaminho") then

 

AQUI ID DO ITEM>> local pergaminhoid = 2154 

 

AQUI O ID AS VOCAÇOES E O NUMERO DAS VOCAÇOES

 

local vocations = {
    [5] = {9, 10, 11},  EX:  SORCERER, MASTER SORCERER, EPIC SORCERER
    [6] = {12, 13, 14},
    [7] = {15, 16, 17},
    [8] = {17, 15, 10}
}

O NOME E O ID DAS VOCAÇOES VC EDITA NO SEU XML/VOCATIONS 

 

 

 

 

 

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

Vai um npc ai.

 

Cria um arquivo em data/npc/Nome do npc.xml e coloca isso dentro:

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Juca" script="juca.lua" walkinterval="2000" floorchange="0">
    <health now="100" max="100"/>
    <look type="128" head="17" body="54" legs="114" feet="0" addons="2"/>
    <parameters>
        <parameter key="message_greet" value="Ola |PLAYERNAME|, se voce quer uma vocação VIP tu precisa do {pergaminho}."/>
    </parameters>
</npc>

 

Crie um arquivo em data/npc/scripts/Nome do npc.lua e coloca isso dentro:

 

local pergaminhoid = 2154 -- Itemid do pergaminho
 
local vocations = {
    [5] = {9, 10, 11},
    [6] = {12, 13, 14},
    [7] = {15, 16, 17},
    [8] = {17, 15, 10}
}
 
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, typeb, msg)
    local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
 
    if(not npcHandler:isFocused(cid)) then
        if msgcontains(msg, "hi") then
            talkState[talkUser] = 0
        end
        return true
    end
 
 
    local voc = vocations[getPlayerVocation(cid)]
    if voc then
        if msgcontains(msg, "pergaminho") then
            if getPlayerItemCount(cid, pergaminhid) > 0 then
                local str = ""
                local ret = {}
 
                for _, v in pairs(voc) do
                    str = str .. "{".. getVocationInfo(v).name .. "}, "
                    table.insert(ret, getVocationInfo(v).name:lower())
                end
 
                npcHandler:say("Ora ora, voce tem o pergaminho, então escolha sua vocaçao vip: ".. str:sub(1, #str - 2) .. ".", cid)
                talkState[talkUser] = ret
            else
                npcHandler:say("Você não tem o pergaminho.", cid)
            end
        elseif type(talkState[talkUser]) == "table" and isInArray(talkState[talkUser], msg:lower()) then
            if doPlayerRemoveItem(cid, pergaminhoid, 1) then
                for _, v in pairs(voc) do
                    if getVocationInfo(v).name:lower() == msg:lower() then
                        doPlayerSetVocation(cid, voc)
                        break
                    end
                end
 
                npcHandler:say("Ótima escolha, agora voce é {".. msg:lower() .. "}, até mais!", cid)
                                talkState[talkUser] = 0
            else
                npcHandler:say("Você não tem o pergaminho.", cid)
            end
        end
    end
 
    return true
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Configurando o npc xml

aqui nesse linha você edita a primeira fala do npc

<parameter key="message_greet" value="Ola |PLAYERNAME|, se voce quer uma vocação VIP tu precisa do {pergaminho}."/>

 

Configurando o npc.lua

aqui e caso você mude no xml terá que mudar tbm.

if msgcontains(msg, "pergaminho") then

 

AQUI ID DO ITEM>> local pergaminhoid = 2154 

 

AQUI O ID AS VOCAÇOES E O NUMERO DAS VOCAÇOES

 

local vocations = {
    [5] = {9, 10, 11},  EX:  SORCERER, MASTER SORCERER, EPIC SORCERER
    [6] = {12, 13, 14},
    [7] = {15, 16, 17},
    [8] = {17, 15, 10}
}

O NOME E O ID DAS VOCAÇOES VC EDITA NO SEU XML/VOCATIONS 

 

 

 

 

 

mas queria um npc que trocasse um certo coin por uma vocaçao!

 

que nesse n tem quantos moedas vip usar! para pega o pergaminho!

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