Ir para conteúdo

Featured Replies

Postado

Olá pessoal,  - primeiramente obrigado a todos que estiverem dispostos a me ajudar :)<3

se alguem estiver disposto em me ajudar presciso de 1 NPC Mission, 

ele funciona mais ou menos assim:

o npc vai conter algumas missoes de rpg logistico..

no final o player vai ganhar uma promotion! no caso de DRUID>para>ELDER DRUID

 

esses dias eu tava navegando pelo site, e vi alguns topicos onde membros mais experientes diziam, "crie topicos criativos, com ideias novas e diferenciadas, assim voçê despertará a curiosidade de bons scripters, e talvez saia lucrando um otimo conteudo para teu servidor." - entao ai vai..

assim ficaria os dialagos..

(faça do jeito que der, nao estou exigindo nada, só vou escrever como exemplo)

 

dialogo: 1 - pedindo a primeira missao.

 

player: hi
> npc: olá |playername|, oque esta procurando aqui neste lugar remoto? {mission}
player: mission
> npc: um antigo amigo e agora meu rival esta com 1 item que me pertence.. traga-o para mim..
player: bye

 

 

dialogo: 2 - entregando a primeira missao e pegando outra.

 

player: hi
>npc: olá |playername|, oque esta procurando aqui neste lugar remoto? {mission}
player: mission
>npc: voce ficou de me entregar 1 item! BOSS Zukgroak certamente possui este item. voce trouxe-o para mim?

player: yes


(aqui o npc deve recolher 1 Jewelled Amulet<-("2130"), e continuar falando.. \/

...   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....   ....


>npc: voce prova ser corajoso, mais me diga, voce esta procurando uma nova {promotion} sim ou nao?
player: yes
>npc: primeiramente, para ganhar promotion voce deve me trazer no minimo 10 bitcoins como pagamento.

 

 

dialago: 3 - continuaçao>pagamento dos bitcoins"(<- gold ingot 9971)"

 

player: hi
>npc: olá |playername|, oque esta procurando aqui neste lugar remoto?
player: mission
>npc: seje objetivo em suas vindas até este lugar, VOCE TROUXE OU NAO MEU PAGAMENTO?
player: yes

>npc: OTIMO, voce certamente vai prescisar ser mais forte para a proxima missao, felizmente vou lhe ajudar com isso, lhe darei 1 nova arma para usar em seus combates.

 

(aqui o npc recolhe os 10 gold ingot, e adiciona um item diferente para cada vocaçao knight=1 sword, paladin=1 bow, mages=1 staff, se nao for possivel fazer isto pode ser apenas 1 item para cada vocaçao mesmo)

 

 

dialago: 4 pegando nova missao

 

player: hi
>npc: olá |playername|, oque esta procurando aqui neste lugar remoto?
player: mission
>npc: primeiro me traga um Powered Crystal(<-"9141").
player: bye

 

 

dialago: 4 pegando entregando o Powered Crystal.

 

player: hi
>npc: olá |playername|, oque esta procurando aqui neste lugar remoto? {mission}
player:mission
>npc: nao direi nenhuma palavra até voce me entregar um Powered Crystal. {entregar}
player: entregar

(agora o npc recolhe o Powered Crystal(<-"9141") e da uma nova missao..

>npc: procure por meu rival The Imperror Master, e MATE-O !!!
player: bye

 

 

dialago: 5 entregando a ultima missao e recompensa final

 

player: hi
>npc: olá |playername|, oque esta procurando aqui neste lugar remoto? {mission}
player:mission
>npc: e entao? voce obteve sucesso em matar The Imperror Master?

player: yes
 

(agora o npc vai checar se o player tem 1 storange que ele ganha matando o monstro "The Imperror Master")

>npc: otimo, isto era tudo oque eu prescisava. obrigado meu caro, voce agora sera conhecido como NEXTH PLAYER, pois provou sua fidelidade.

(agora o npc adiciona uma promotion ao player, ele vai passar de DRUID, para ELDER DRUID, SORCERER para MASTER SORCERER, PALADIN para ROYAL PALADIN e KNIGHT para ELITE KNIGHT)

 

legal a ideia neh? se nao tiver como fazer igual ao meu exemplo, nao tem problema, o meu objetivo é fazer com que o player entregue algum item.. ou faça alguma missao para o npc ANTES de ganhar a promotion.. hehe..

REP ++ PRA QUEM AJUDAR.

Editado por liteon9y
reformulaçao no titulo (veja o histórico de edições)

  • Respostas 5
  • Visualizações 397
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • TAMBEM gostei desta ideia

  • Ainda não testei   npc/joao.xml <?xml version="1.0" encoding="UTF-8"?> <npc name="Joao" script="npcmissao.lua" walkinterval="0" floorchange="0"> <health now="100" max="10

  • Tava faltando uns "end", da uma tentada agora, editei no outro post

Posted Images

Postado

Ainda não testei

 

npc/joao.xml

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Joao" script="npcmissao.lua" walkinterval="0" floorchange="0">
	<health now="100" max="100"/>
	<look type="145" head="1" body="114" legs="114" feet="133" addons="1" corpse="2212"/>
</npc>

npc/scripts/npcmissao.lua

Spoiler

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
 
npcHandler:setMessage(MESSAGE_GREET, "olá |PLAYERNAME|, o que esta procurando aqui neste lugar remoto? {mission}")
npcHandler:setMessage(MESSAGE_FAREWELL, "Até mais.")

local quest = 87321
local storageMonstro = 87333
 
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, "mission") then
        if getPlayerStorageValue(cid, quest) == -1 then
            selfSay("um antigo amigo e agora meu rival esta com 1 item que me pertence.. traga-o para mim..", cid)
            setPlayerStorageValue(cid, quest, 0)
        elseif getPlayerStorageValue(cid, quest) == 0 then
            selfSay("voce ficou de me entregar 1 item! BOSS Zukgroak certamente possui este item. voce trouxe-o para mim?", cid)
            talkState[talkUser] = 1
        elseif getPlayerStorageValue(cid, quest) == 1 then
            selfSay("seje objetivo em suas vindas até este lugar, VOCE TROUXE OU NAO MEU PAGAMENTO?", cid)
            talkState[talkUser] = 1
        elseif getPlayerStorageValue(cid, quest) == 2 then
            selfSay("primeiro me traga um Powered Crystal", cid)
            setPlayerStorageValue(cid, quest, 3)
        elseif getPlayerStorageValue(cid, quest) == 3 then
            selfSay("nao direi nenhuma palavra até voce me entregar um Powered Crystal. {entregar}", cid)
            talkState[talkUser] = 1
        elseif getPlayerStorageValue(cid, quest) == 4 then
            selfSay("e entao? voce obteve sucesso em matar The Imperror Master?", cid)
            talkState[talkUser] = 1
        elseif getPlayerStorageValue(cid, quest) == 5 then
            selfSay("voce ja fez a missao", cid)
            talkState[talkUser] = 1
        end


    elseif msgcontains(msg, "entregar") and talkState[talkUser] == 1 then
        if getPlayerStorageValue(cid, quest) == 3 then
            if getPlayerItemCount(cid, 9141) >= 1 then
                doPlayerRemoveItem(cid, 9141, 1)
                selfSay("procure por meu rival The Imperror Master, e MATE-O!!!", cid)
                setPlayerStorageValue(cid, quest, 4)
            else
                selfSay("Voce nao tem o item", cid)
            end
        end
    elseif msgcontains(msg, "yes") and talkState[talkUser] == 1 then
        if getPlayerStorageValue(cid, quest) == 0 then
            if getPlayerItemCount(cid, 2130) >= 1 then
                doPlayerRemoveItem(cid, 2130, 1)
                selfSay("voce prova ser corajoso, mais me diga, voce esta procurando uma nova promotion sim ou nao?", cid)
                talkState[talkUser] = 2
            else
                selfSay("Voce nao tem o item", cid)
            end
        elseif getPlayerStorageValue(cid, quest) == 1 then
            if getPlayerItemCount(cid, 9971) >= 10 then
                doPlayerRemoveItem(cid, 9971, 10)
                selfSay("OTIMO, voce certamente vai prescisar ser mais forte para a proxima missao, felizmente vou lhe ajudar com isso, lhe darei 1 nova arma para usar em seus combates.", cid)
                if getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 2 then
                    doPlayerAddItem(cid, 2401, 1)
                end
                if getPlayerVocation(cid) == 3 then
                    doPlayerAddItem(cid, 2456, 1)
                end
                if getPlayerVocation(cid) == 4 then
                    doPlayerAddItem(cid, 2376, 1)
                end
                setPlayerStorageValue(cid, quest, 2)
            else
                selfSay("Voce nao tem o item", cid)
            end
        elseif getPlayerStorageValue(cid, quest) == 4 then
            if getPlayerStorageValue(cid, storageMonstro) >= 1 then
                selfSay("otimo, isto era tudo oque eu prescisava. obrigado meu caro, voce agora sera conhecido como NEXTH PLAYER, pois provou sua fidelidade.", cid)
                setPlayerStorageValue(cid, quest, 5)
                if getPlayerVocation(cid) == 1 then
                    doPlayerSetVocation(cid, 5)
                end
                if getPlayerVocation(cid) == 2 then
                    doPlayerSetVocation(cid, 6)
                end
                if getPlayerVocation(cid) == 3 then
                    doPlayerSetVocation(cid, 7)
                end
                if getPlayerVocation(cid) == 4 then
                    doPlayerSetVocation(cid, 8)
                end
            else
                selfSay("Voce nao o matou", cid)
            end
        end

    elseif msgcontains(msg, "yes") and talkState[talkUser] == 2 then
        if getPlayerStorageValue(cid, quest) == 0 then
            selfSay("primeiramente, para ganhar promotion voce deve me trazer no minimo 10 bitcoins como pagamento.", cid)
            setPlayerStorageValue(cid, quest, 1)
        end
    end
    return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

 

creaturescripts/creaturescrips.xml

<event type="kill" name="npcmissao" event="script" value="npcmissao.lua"/>

creaturescripts/scripts/login.lua

registerCreatureEvent(cid, "npcmissao")

creaturescripts/scripts/npcmissao.lua

function onKill(cid, target)
    local monster = getCreatureName(target):lower()

    if monster == "the imperror master" then -- aqui vai o nome do bixo que precisa matar, tudo em minusculo
       if getPlayerStorageValue(cid, 87321) == 4 and getPlayerStorageValue(cid, 87333) <= 0 then
            setPlayerStorageValue(cid, 87333, 1)
       end
    end     

    return true
end

 

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

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 519.7k

Informação Importante

Confirmação de Termo