Ir para conteúdo
  • Cadastre-se

Monster%2FNPC [NPC] Papai Noel por Vocação


Posts Recomendados

Santa_Claus.gif

Olá abigos e abigas, fiz um script aqui meio atrasado para o natal rs, bom eu até que gostei espero que vocês achem algo útil para ele.

 

 

 

Abra a pasta NPC crie um arquivo com nome papainoel.xml e adicione isso dentro:

<?xml version="1.0"?>
<npc name="Papai Noel" script="data/npc/scripts/papainoel.lua" walkinterval="1000" floorchange="0">
<health now="100" max="100"/>
<look type="160" head="0" body="112" legs="93" feet="95"/>
<parameters>
<parameter key="message_greet" value="Ho-Ho! {|PLAYERNAME|}, para pegar seu presente basta voce falar {present druid}, {present sorcerer}, {present knight} ou {present paladin}!" />
</parameters>
</npc>

Depois abra a pasta NPC/scripts crie um arquivo com o nome papainoel.lua e adicione isso dentro:

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 itemdruid = {{2160, 100}, {9778, 1}, {6512, 1}} -- itens que Elder Druid ira ganhar
local itemsorcerer = {{2160, 100}, {8867, 1}, {6512, 1}} -- itens que Master Sorcerer ira ganhar
local itemknight = {{2160, 100}, {2472, 1}, {6512, 1}} -- itens que Elite Knight ira ganhar
local itempaladin = {{2160, 100}, {2500, 1}, {6512, 1}} -- itens que Royal Paladin ira ganhar

local a = {
level = 150, -- Level para falar com o Papai Noel
storage = 72621, -- Não trocar
}

    if msgcontains(msg, 'present druid') then
        if getPlayerStorageValue(cid,a.storage) == -1 then
        if getPlayerVocation(cid) == 6 then
            if getPlayerLevel(cid) >= a.level then
                selfSay('Ho-ho Feliz Natal '..getPlayerName(cid)..', você recebeu seus itens de {Druid}!', cid)
                for _, b in pairs(itemdruid) do
                    doPlayerAddItem(cid, b[1], b[2])
                    doSendMagicEffect(getPlayerPosition(cid), 28)
                    setPlayerStorageValue(cid,a.storage,1)
                end
            else
                doSendMagicEffect(getPlayerPosition(cid), 2)
                selfSay('{'..getPlayerName(cid)..'} você precisa ser level {'..a.level..'} para receber sua recompensa, faltam apenas {'..a.level - getPlayerLevel(cid)..'}. Ho-ho!', cid)
            end
        else
            selfSay('Voce não é {Elder Druid} '..getPlayerName(cid)..'!', cid)
        end
        else
            selfSay('{'..getPlayerName(cid)..'} voce ja pegou seu presente!', cid)
        end
    end
    
    if msgcontains(msg, 'present sorcerer') then
        if getPlayerStorageValue(cid,a.storage) == -1 then
        if getPlayerVocation(cid) == 5 then
            if getPlayerLevel(cid) >= a.level then
                selfSay('Ho-ho Feliz Natal '..getPlayerName(cid)..', você recebeu seus itens de {Sorcerer}!', cid)
                for _, b in pairs(itemsorcerer) do
                    doPlayerAddItem(cid, b[1], b[2])
                    doSendMagicEffect(getPlayerPosition(cid), 28)
                    setPlayerStorageValue(cid,a.storage,1)
                end
            else
                doSendMagicEffect(getPlayerPosition(cid), 2)
                selfSay('{'..getPlayerName(cid)..'} você precisa ser level {'..a.level..'} para receber sua recompensa, faltam apenas {'..a.level - getPlayerLevel(cid)..'}. Ho-ho!', cid)
            end
        else
            selfSay('Voce não é {Master Sorcerer} '..getPlayerName(cid)..'!', cid)
        end
        else
            selfSay('{'..getPlayerName(cid)..'} voce ja pegou seu presente!', cid)
        end
    end
    
    if msgcontains(msg, 'present knight') then
        if getPlayerStorageValue(cid,a.storage) == -1 then
        if getPlayerVocation(cid) == 8 then
            if getPlayerLevel(cid) >= a.level then
                selfSay('Ho-ho Feliz Natal '..getPlayerName(cid)..', você recebeu seus itens de {Knight}!', cid)
                for _, b in pairs(itemknight) do
                    doPlayerAddItem(cid, b[1], b[2])
                    doSendMagicEffect(getPlayerPosition(cid), 28)
                    setPlayerStorageValue(cid,a.storage,1)
                end
            else
                doSendMagicEffect(getPlayerPosition(cid), 2)
                selfSay('{'..getPlayerName(cid)..'} você precisa ser level {'..a.level..'} para receber sua recompensa, faltam apenas {'..a.level - getPlayerLevel(cid)..'}. Ho-ho!', cid)
            end
        else
            selfSay('Voce não é {Elite Knight} '..getPlayerName(cid)..'!', cid)
        end
        else
            selfSay('{'..getPlayerName(cid)..'} voce ja pegou seu presente!', cid)
        end
    end
    
    if msgcontains(msg, 'present paladin') then
        if getPlayerStorageValue(cid,a.storage) == -1 then
        if getPlayerVocation(cid) == 7 then
            if getPlayerLevel(cid) >= a.level then
                selfSay('Ho-ho Feliz Natal '..getPlayerName(cid)..', você recebeu seus itens de {Paladin}!', cid)
                for _, b in pairs(itempaladin) do
                    doPlayerAddItem(cid, b[1], b[2])
                    doSendMagicEffect(getPlayerPosition(cid), 28)
                    setPlayerStorageValue(cid,a.storage,1)
                end
            else
                doSendMagicEffect(getPlayerPosition(cid), 2)
                selfSay('{'..getPlayerName(cid)..'} você precisa ser level {'..a.level..'} para receber sua recompensa, faltam apenas {'..a.level - getPlayerLevel(cid)..'}. Ho-ho!', cid)
            end
        else
            selfSay('Voce não é {Royal Paladin} '..getPlayerName(cid)..'!', cid)
        end
        else
            selfSay('{'..getPlayerName(cid)..'} voce ja pegou seu presente!', cid)
        end
    end

return true
end

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

QIV0m.png

pEFdd.png

 

Informações:

- O npc verificar a vocação do player e adiciona itens conforme sua vocação.

- O level minimo para se usar o NPC é 150

- Só pode pegar o presente uma vez

- Itens e level minimo configurável.

 

 

QIV0m.png

pEFdd.png

 

Imagens do NPC:

 

Ao falar com o npc:

mocr.jpg

 

NPC verificando que o player pediu o presente que não é da sua vocação:

a8qs.jpg

 

NPC verificando que o player não tem o level minimo para pegar o presente e informando quantos leveis faltam para o player poder pegar o presente:

upnn.jpg

 

Mensagem ao receber o presente:

i6wl.jpg

 

NPC informando que o player já pegou o presente:

9d13.jpg

 

 

QIV0m.png

pEFdd.png

 

Créditos: Markin

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

16/11/2014

23/11/2014

 

RIP AnneMotta 21/01/2012 - 15/01/2014

Liga das lendas: DIAMOND É A META

6qpqBbJ.png

Link para o post
Compartilhar em outros sites
  • Respostas 14
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Olá abigos e abigas, fiz um script aqui meio atrasado para o natal rs, bom eu até que gostei espero que vocês achem algo útil para ele.       Abra a pasta NPC crie um arquivo com nome papainoel.xml e adicione isso dentro: <?xml version="1.0"?> <npc name="Papai Noel" script="data/npc/scripts/papainoel.lua" walkinterval="1000" floorchange="0"> <health now="100" max="100"/> <look type="160" head="0" body="112" legs="93" feet="95"/> <parameters> <parameter key=

Opa, muito obrigado!

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

16/11/2014

23/11/2014

 

RIP AnneMotta 21/01/2012 - 15/01/2014

Liga das lendas: DIAMOND É A META

6qpqBbJ.png

Link para o post
Compartilhar em outros sites

Se você utiliza vip system eu não faço a minima ideia de como fazer, nunca usei o vip system, sempre uso premium...

16/11/2014

23/11/2014

 

RIP AnneMotta 21/01/2012 - 15/01/2014

Liga das lendas: DIAMOND É A META

6qpqBbJ.png

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.

  • Estatísticas dos Fóruns

    96842
    Tópicos
    519602
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo