Ir para conteúdo

Featured Replies

Postado

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)

Postado
  • Autor
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!

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 520.3k

Informação Importante

Confirmação de Termo