Ir para conteúdo

Featured Replies

Postado
  • Este é um post popular.

Five Fase Quest

 

Informações:
Mais eu evento feito a pedido dos internautas do meu tópico, dessa vez o player compra um item e com esse item tem o direito de usar uma alavanca que o levara a uma quest em que ele sozinho terá que passar por 5 fases, cada faze com bichos mais fortes, e no final ele ganha um premio.  
 
Descrição:
O player tem que comprar um item pelo comando !page, logo em seguida ele tem que usar a alavanca com o uniqueid 74658, para ser teleportado para o inicio da quest, quando ele matar todos os bixos de uma parte ele terá que pisar em um tile com o actionid 32114, lembrando que é necessário colocar essa actionid em 1 tile por fase da quest, quando o player chegar na quinta fase matar todos os bichos e pisar no tile ele ira para o templo e recebera sua recompensa.
 
OBS: IMPORTANTE! Colocar piso no-logout em todo mapa utilizado no sistema.

 

Sigam as instruções das linhas que apresentam "-- Alterar".
 
 

Instalação

 
Vá em data/talkactions/scripts/ e cria um arquivo chamado evento page.lua, dentro dele coloque.

function onSay(cid, words, param)
 
local preco_item = 0     -- ALTERAR preço do item
local id_item = 0        -- ALTERAR id do item
local count_item = 0     -- ALTERAR quantidade do item
local name_item = "Item" -- ALTERAR nome do item
 
if words == '!page' then
 
         if doPlayerRemoveMoney(cid, preco_item) == true then
             doPlayerAddItem(cid, is_item, count_item)
             doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você obteve o item "..(name_item).." por "..(preco_item).." golds.")
         else
             doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possue "..(preco_item).." golds para comprar o "..(name_item)..".")
         end
 
end
 
return TRUE
end

 

Vá em data/talkactions.xml e adicione essa tag.

<talkaction log="yes" words="!page" access="0" event="script" value="page.lua"/>

 

Vá em data/actions.xml e adicione essa tag.

<action uniqueid="74658" script="page.lua"/>

 

Vá em data/actions/scripts/ e crie um arquivo chamado page.lua e coloque isso dentro.

function onUse(cid, item, fromPosition, itemEx, toPosition)
 
local pos_arena1 = {x = 0, y = 0, z = 0}   -- ALTERAR posição de entrada da primeira arena
    local id_item = 0        -- ALTERAR id do item
    local count_item = 0     -- ALTERAR quantidade do item
    local storage_global = 123456 -- ALTERAR storage global do sistema
    local storage_player = 654321 -- ALTERAR storage do player do sistema
 
    local pos1 = {x = 0, y = 0, z = 0}   -- ALTERAR posição do canto superior esquerdo do mapa inteiro utilizado na QUEST    
    local pos2 = {x = 0, y = 0, z = 0}   -- ALTERAR posição do canto infeiror direito do mapa inteiro utilizado na QUEST
    
    local i = 1
    local players = getPlayersOnline()
    
    while i <= #players do
          local pos_player = getPlayerPosition(players)
          if pos_player.x >= pos1.x and pos_player.y >= pos1.y and pos_player.x <= pos2.x and pos_player.y <= pos2.y then
                   setGlobalStorageValue(storage_global, -1)
                   break
          end
          if i == #players then     
              doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Existem Players Fazendo a Quest.")
              return TRUE                   
          end
          i = i + 1
    end
    
    i = 1
        
    if getGlobalStorageValue(storage_global) ~= -1 then
       doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Existem Players Fazendo a Quest.")
       return TRUE
    end
    
    local monster = {
    {name = "Nome", pos = {x = 0, y = 0, z = 0}},
    {name = "Nome", pos = {x = 0, y = 0, z = 0}},
    {name = "Nome", pos = {x = 0, y = 0, z = 0}},
    {name = "Nome", pos = {x = 0, y = 0, z = 0}},
    {name = "Nome", pos = {x = 0, y = 0, z = 0}},
    {name = "Nome", pos = {x = 0, y = 0, z = 0}},           -- ALTERAR Monstros que vão Nascer na Primeira Parte
    {name = "Nome", pos = {x = 0, y = 0, z = 0}},           -- Mudar o Name e a posição de onde cada um vai nascer
    {name = "Nome", pos = {x = 0, y = 0, z = 0}},
    {name = "Nome", pos = {x = 0, y = 0, z = 0}},
    {name = "Nome", pos = {x = 0, y = 0, z = 0}},
    }
      
if item.uid == 74658 then
      if doPlayerRemoveItem(cid, id_item, count_item)
doTeleportThing(cid, pos_arena1)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Que comecem os Jogos!")
setGlobalStorageValue(storage_global, 1)
setPlayerStorageValue(cid, storage_player, 0)
while i <= #monster do
     doCreateMonster(monster.name,monster.pos)
     i = i + 1
        end 
      else
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possue o Item necessário.")
      end
end
return TRUE
end

 

Vá em data/movements.xml e adicione essa tag.

<movevent type="StepIn" actionid="32114" event="script" value="page.lua"/>

 

Vá em data/movements/scripts/ e crie um arquivo chamado page.lua e coloque isso dentro.

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
 
local storage_player = 654321 -- ALTERAR storage do player do sistema
local storage_global = 123456 -- ALTERAR storage global do sistema
local id_item = 0             -- ALTERAR id do item de premio
local count_item = 0          -- ALTERAR quantidade do item premio
local storage_value_global =  getGlobalStorageValue(storage_global)
local storage_value_player =  getPlayerStorageValue(cid, storage_player)
 
local positions = {
{pos = {x = 0, y = 0, z = 0}},          -- ALTERAR posição da arena 2
{pos = {x = 0, y = 0, z = 0}},          -- ALTERAR posição da arena 3
{pos = {x = 0, y = 0, z = 0}},          -- ALTERAR posição da arena 4
{pos = {x = 0, y = 0, z = 0}},          -- ALTERAR posição da arena 5
{pos = {x = 0, y = 0, z = 0}},          -- ALTERAR posição do templo
}
 
local pos_tp = {
{pos = {x = 0, y = 0, z = 0}},          -- ALTERAR posição do teleport na arena 1 para ir para arena 2
{pos = {x = 0, y = 0, z = 0}},          -- ALTERAR posição do teleport na arena 2 para ir para arena 3
{pos = {x = 0, y = 0, z = 0}},          -- ALTERAR posição do teleport na arena 3 para ir para arena 4
{pos = {x = 0, y = 0, z = 0}},          -- ALTERAR posição do teleport na arena 4 para ir para arena 5
{pos = {x = 0, y = 0, z = 0}},          -- ALTERAR posição do teleport na arena 5 para ir para o templo 
}
 
local monster = {
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 2},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 2},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 2},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 2},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 2},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 2},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 2},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 2},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 2},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 2},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 2},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 3},      -- ALTERAR Nome do Monstro, do jeito que é no jogo até as letras maiusculas  
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 3},      -- mudar a pos de cada 1, não podendo repetir
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 3},      -- mudar parte que cada bixo fará parte
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 3},      -- existem 10 bixos por fase, se alterar aqui é importante alterar ali em baixo
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 3},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 3},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 3},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 3},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 3},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 3},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 4},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 4},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 4},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 4},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 4},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 4},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 4},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 4},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 4},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 4},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 5},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 5},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 5},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 5},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 5},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 5},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 5},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 5},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 5},
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 5},      
      {name = "Nome", pos = {x = 0, y = 0, z = 0}, parte = 5},      
}
 
if storage_value_global == 1 then
 
   if storage_value_player >= 10 then         -- ALTERAR numeros de bixos que ele vai matar na 1 parte
            doTeleportThing(cid, positions[1])
            local i = 1
            while i <= #monster do
                  if monster.parte == 2 then
                                doCreateMonster(monster.name,monster.pos)      
                  end
                  
                  i = i + 1
            end
            setGlobalStorageValue(storage_global, 2)
            setPlayerStorageValue(cid, storage_player, 0)
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Mate todos os Bixos e passe pelo portal.")
            local item1 = getTileItemById(pos_tp[1], 1387)
            if item1.uid > 0 then
               doRemoveItem(item1.uid, 1)
            end   
   else
       return TRUE
   end
 
end
 
if storage_value_global == 2 then
 
   if storage_value_player >= 10 then         -- ALTERAR numeros de bixos que ele vai matar na 2 parte
            doTeleportThing(cid, positions[1])
            local i = 1
            while i <= #monster do
                  if monster.parte == 3 then
                                doCreateMonster(monster.name,monster.pos)      
                  end
                  
                  i = i + 1
            end
            setGlobalStorageValue(storage_global, 3)
            setPlayerStorageValue(cid, storage_player, 0)
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Mate todos os Bixos e passe pelo portal.")
            local item1 = getTileItemById(pos_tp[2], 1387)
            if item1.uid > 0 then
               doRemoveItem(item1.uid, 1)
            end       
   else
       return TRUE
   end
 
end
 
if storage_value_global == 3 then
 
   if storage_value_player >= 10 then         -- ALTERAR numeros de bixos que ele vai matar na 3 parte
            doTeleportThing(cid, positions[1])
            local i = 1
            while i <= #monster do
                  if monster.parte == 4 then
                                doCreateMonster(monster.name,monster.pos)      
                  end
                  
                  i = i + 1
            end
            setGlobalStorageValue(storage_global, 4)
            setPlayerStorageValue(cid, storage_player, 0)
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Mate todos os Bixos e passe pelo portal.")
            local item1 = getTileItemById(pos_tp[3], 1387)
            if item1.uid > 0 then
               doRemoveItem(item1.uid, 1)
            end 
   else
       return TRUE
   end
 
end
 
if storage_value_global == 4 then
 
   if storage_value_player >= 10 then         -- ALTERAR numeros de bixos que ele vai matar na 4 parte
            doTeleportThing(cid, positions[1])
            local i = 1
            while i <= #monster do
                  if monster.parte == 5 then
                                doCreateMonster(monster.name,monster.pos)      
                  end
                  
                  i = i + 1
            end
            setGlobalStorageValue(storage_global, 5)
            setPlayerStorageValue(cid, storage_player, 0)
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Mate todos os Bixos e passe pelo portal.")
            local item1 = getTileItemById(pos_tp[4], 1387)
            if item1.uid > 0 then
               doRemoveItem(item1.uid, 1)
            end  
   else
       return TRUE
   end
 
end
 
if storage_value_global == 5 then
 
   if storage_value_player >= 10 then         -- ALTERAR numeros de bixos que ele vai matar na 5 parte
            doTeleportThing(cid, positions[5])
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você é um Grande Vencedor.")
            doPlayerAddItem(cid, id_item, count_item)
            setGlobalStorageValue(storage_global, -1)
            setPlayerStorageValue(cid, storage_player, 0)
            local item1 = getTileItemById(pos_tp[5], 1387)
            if item1.uid > 0 then
               doRemoveItem(item1.uid, 1)
            end   
   else
       return TRUE
   end
 
end
 
return true
end

 

Agora vá em data/creaturescripts.xml e adicione essas tag.

<event type="login" name="removepage" event="script" value="page1.lua"/>

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

 

Agora vá em em data/creaturescripts/scripts e crie um arquivo chamado page.lua e coloque isso nele.

function onKill(cid, target, lasthit)
 
local monsters = {
{name = "Nome"},
{name = "Nome"},
{name = "Nome"},
{name = "Nome"},
{name = "Nome"},
{name = "Nome"},                      -- ALTERAR Coloque o nome de todas os monstros que vão aparecer dentro da quest
{name = "Nome"},                      -- OBS: Não repetir e não esquecer de colocar as letras maiusculas
{name = "Nome"},
{name = "Nome"},
{name = "Nome"},
{name = "Nome"},
}
 
local pos_tp = {
{pos = {x = 0, y = 0, z = 0}},          -- ALTERAR posição do teleport na arena 1 para ir para arena 2
{pos = {x = 0, y = 0, z = 0}},          -- ALTERAR posição do teleport na arena 2 para ir para arena 3
{pos = {x = 0, y = 0, z = 0}},          -- ALTERAR posição do teleport na arena 3 para ir para arena 4
{pos = {x = 0, y = 0, z = 0}},          -- ALTERAR posição do teleport na arena 4 para ir para arena 5
{pos = {x = 0, y = 0, z = 0}},          -- ALTERAR posição do teleport na arena 5 para ir para o templo 
}
 
local quantidades = {
{quantidade = 10},                 -- ALTERAR numeros de bixos que ele vai matar na 1 parte
{quantidade = 10},                 -- ALTERAR numeros de bixos que ele vai matar na 2 parte
{quantidade = 10},                 -- ALTERAR numeros de bixos que ele vai matar na 3 parte 
{quantidade = 10},                 -- ALTERAR numeros de bixos que ele vai matar na 4 parte
{quantidade = 10},                 -- ALTERAR numeros de bixos que ele vai matar na 5 parte
}
 
local positions = {
{pos = {x = 0, y = 0, z = 0}},          -- ALTERAR posição da arena 2
{pos = {x = 0, y = 0, z = 0}},          -- ALTERAR posição da arena 3
{pos = {x = 0, y = 0, z = 0}},          -- ALTERAR posição da arena 4
{pos = {x = 0, y = 0, z = 0}},          -- ALTERAR posição da arena 5
{pos = {x = 0, y = 0, z = 0}},          -- ALTERAR posição do templo
}
 
local i = 1
local storage_player = 654321 -- ALTERAR storage do player do sistema
local storage_value_player =  getPlayerStorageValue(cid, storage_player) + 1
local storage_global = 123456 -- ALTERAR storage global do sistema
local storage_value_global =  getGlobalStorageValue(storage_global)
 
while i <= #monsters do
      if getCreatureName(target) == monsters.name then
                        setPlayerStorageValue(cid, storage_player, storage_value_player)
                        if storage_value_global == 1 then
                                  if storage_value_player >= quantidades[1].quantidade then
                                           doCreateTeleport(1387, positions[1].pos, pos_tp[1].pos)
                                           doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Entre no Portal e Vá Para a Proxima Fase.")  
                                  end
                        end
                        if storage_value_global == 2 then
                                  if storage_value_player >= quantidades[2].quantidade then
                                           doCreateTeleport(1387, positions[2].pos, pos_tp[2].pos)
                                           doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Entre no Portal e Vá Para a Proxima Fase.")  
                                  end
                        end
                        if storage_value_global == 3 then
                                  if storage_value_player >= quantidades[3].quantidade then
                                           doCreateTeleport(1387, positions[3].pos, pos_tp[3].pos)
                                           doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Entre no Portal e Vá Para a Proxima Fase.")  
                                  end
                        end
                        if storage_value_global == 4 then
                                  if storage_value_player >= quantidades[4].quantidade then
                                           doCreateTeleport(1387, positions[4].pos, pos_tp[4].pos)
                                           doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Entre no Portal e Vá Para a Proxima Fase.")  
                                  end
                        end
                        if storage_value_global == 5 then
                                  if storage_value_player >= quantidades[5].quantidade then
                                           doCreateTeleport(1387, positions[5].pos, pos_tp[5].pos)
                                           doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Entre no Portal e Termine a Quest.")  
                                  end
                        end
                        
      end
      i = i + 1
end
        
return true
end

 

Agora vá em em data/creaturescripts/scripts e crie um arquivo chamado page1.lua e coloque isso nele.

function onLogin(cid, corpse, killer)
 
local pos1 = {x = 0, y = 0, z = 0}   -- ALTERAR posição do canto superior esquerdo do mapa inteiro utilizado na QUEST    
local pos2 = {x = 0, y = 0, z = 0}   -- ALTERAR posição do canto infeiror direito do mapa inteiro utilizado na QUEST
local pos_tempo = {x = 0, y = 0, z = 0}   -- ALTERAR posição do seu templo
 
local pos_player = getPlayerPosition(cid)
 
if pos_player.x >= pos1.x and pos_player.y >= pos1.y and pos_player.x <= pos2.x and pos_player.y <= pos2.y then
            doTeleportThing(cid, pos_templo)
end
 
return TRUE
end

 

Agora vá em data/creaturescripts/scripts/login.lua e adicione essas duas tags.

registerCreatureEvent(cid, "removepage")

registerCreatureEvent(cid, "page")

 

Pronto instalado com sucesso.
Créditos Pelo Script:
100%Gabisa00
 
Créditos Pela Ideia:
100% - HallsSantos
 
Dúvidas, bugs, sugestões, somente no tópico.
 
Gostou do Sistema Faça Seu Pedido Aqui!

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

  • Respostas 6
  • Visualizações 1.9k
  • Created
  • Última resposta

Top Posters In This Topic

Postado

Bom bom esses seus sistemas cara... 

"Lendas jamais voltam pois são apenas lendas. eu, eu sou real."

 

Attr:// [GM] Eddy

2013 ~ 2014 R.I.P

Kjc5D10.png

O retorno da lenda....

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