Ir para conteúdo
  • Cadastre-se

Normal Alguem pode me ajudar? ->NPC PROMOTION


Posts Recomendados

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)
Link para o post
Compartilhar em outros sites

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)
Link para o post
Compartilhar em outros sites

error.thumb.JPG.753e7ca03e3bf5135d47b2fed8ba5125.JPG

 apareceu este erro no console amigo ;/

vale lembrar que meu TFS é 0.4 ? !!

mais já dei REP+ pelo empenho de me ajudar!!

Editado por liteon9y
detalhes (veja o histórico de edições)
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 Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo