Ir para conteúdo

Featured Replies

Postado

Olá pessoal vim trazer um "systema akatsuki" que fiz pro meu nto, como os outros systemas estavam dando varios bugs, resolver tentar fazer um, então vou compartilhar com vcs.

O systema é uma quest que ganha hp, mana, e um effect com nome Akatsuki saindo do player. Vou postar aki o script da quest, o script do effect, e o script do npc.

Bom vamos lá..

Crie em seu mapa uma quest e coloque um bau, nesse bau coloque actionid 9785. apos ter feito isso vai em data/actions/scripts e crie um arquivo chamado questakatsuki.lua, e dentro desse arquivo coloque:

Spoiler

function onUse(cid, item, fromPosition, itemEx, toPosition)

if getPlayerStorageValue(cid, 89785) >= 1 then
doPlayerSendTextMessage(cid,22,"Voce ja se tornou membro Akatsuki")
return true
end

   if getPlayerLevel(cid) >= 600 then  -- level necessario para fazer a quest
        setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+300000)
        setCreatureMaxMana(cid, getCreatureMaxMana(cid)+30000)
        doPlayerSendTextMessage(cid,22,"voce se tornou um membro Akatsuki.")

        doTeleportThing(cid, {x=1024,y=913,z=7}) -- Coloque aqui as coordenadas do seu templo
setPlayerStorageValue(cid, 89785, 1)

 
      else
         doPlayerSendCancel(cid, "Isso nao e possivel.")
       end


     return true 
end

 

Depois vai em data/actions/ e abra o arquivo actions.xml e adicione a tag:

Spoiler

<action actionid="9785" event="script" value="questakatsuki.lua"/>

Agora vai em data/creaturescript/script e crie um arquivo chamado effect.lua e adicione o seguinte script nele:

Spoiler

local effect = 42 -- Efeito que vai usar

local storage = 89785 -- Storage que o player precisa ter

local tempo = 2 -- Tempo em segundos


function onLogin(cid)

if getPlayerStorageValue(cid, storage) == 1 then

SendEffect(cid)

end

return TRUE

end


function SendEffect(cid)

if not isCreature(cid) then return LUA_ERROR end

doSendAnimatedText(getCreaturePosition(cid),'Akatsuki' , 180)

doSendMagicEffect(getCreaturePosition(cid), 42)

addEvent(SendEffect, tempo*1000, cid)

return TRUE

end
 

vai em data/creaturescript/login.lua e adicone a tag:

Spoiler

registerCreatureEvent(cid, "Effect")

agora vai em data/creaturescript/creaturescript.xml e acione essa tag:

Spoiler

<event type="login" name="Effect" event="script" value="effect.lua"/>

agora vamos criar o npc. Va em Data/Npc/Scripts e crie um arquivo chamado akatsukiquestxx.lua e adicone esse script no arquivo:

Spoiler

local tab = {
    pos = {x=1106, y=904, z=9}, -- posição x, y, z do local a teleportar o player
    item = {5943, 6}, -- {itemID, count}
    price = 2
}

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
    if (msgcontains(msg, 'akatsuki')) then
        talkState[talkUser] = 1
        selfSay('tem certeza que quer entrar?', cid)
        selfSay('Lembre-se..voce precisa de '..tab.item[2]..' '..getItemNameById(tab.item[1])..' e '..tab.price..' gold bar para poder entrar.', cid)
    elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
        if (getPlayerItemCount(cid, tab.item[1]) >= tab.item[2] and doPlayerRemoveMoney(cid, tab.price * 10000)) then 
            doTeleportThing(cid, tab.pos)
             doPlayerRemoveItem(cid, tab.item[1], tab.item[2])
            doPlayerRemoveMoney(cid, tab.price * 10000)    
            doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
            selfSay('Have a good trip.', cid)
        else
            talkState[talkUser] = 0
            selfSay('Voce ainda nao tem os 6 coraçoes, volte quando tiver.', cid)
        end
    elseif (msgcontains(msg, 'no') and talkState[talkUser] == 1) then
        talkState[talkUser] = 0
        selfSay('Okay, maybe another time.', cid)
    end
    
    return true
end

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

agora vamos em Data/Npc/ e crie um arquivo chamado Tobi.xml e dentro dele cole:

Spoiler

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Tobi" script="data/npc/scripts/akatsukiquestxx.lua" walkinterval="2000" speed="0" floorchange="0">
<health now="50" max="50"/>
<look type="481" head="0" body="0" legs="0" feet="0" addons="0"/>
<parameters>
<parameter key="message_greet" value="Huum, então você quer entrar na quest akatsuki, somente jogadores com lvl 600 ou superior podem entrar. Tem certeza que quer entrar na quest {akatsuki}?"/>
                                <parameter key="message_farewell" value="Até mais!" />

                                <parameter key="message_walkaway" value="Até mais!" />
</parameters>
</npc>

pronto acho q é só, o npc é configurado para retirar 6 corações do player para poder teleportá-lo para a quest.

Quero pedir desculpas se postei o tópico na área errada, mais é que nele vai Actions, creaturescripts e npc. ae fiquei em duvida e postei nessa.

 

Postado

Parabéns, seu tópico de conteúdo foi aprovado!
Muito obrigado pela sua contribuição, nós do Tibia King agradecemos.
Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.

Spoiler

Congratulations, your content has been approved!
Thank you for your contribution, we of Tibia King we are grateful.
Your content will help many other users, you received +1 REP.

 

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.6k

Informação Importante

Confirmação de Termo