Ir para conteúdo
Entre para seguir isso  
Destiny~

Script de annihilator

Recommended Posts

Destiny~    1
Destiny~

Padrão de postagem:

Nome: Annihilator \õ/

Versão: 8.50

Tipo do script: Action(onUse)

Servidor testado: Não testei, se algum MOD testar por favor edite aqui.

Autor: Cipsoft, desconhecido, edição por Destiny~

Comentário: oy manolo -q

 

Bom...eu estava lendo o belo tutorial do Skyen..:

Dicas para fazer um script bonito

 

Quando me deparo com um script de anihilator...todo feioso Oo

Então, fui seguir o tutorial, eu não testei o script, peço que testem e aprovem se estiver bom (:

 

Instalação:

Substitua o script contido em data/actions/scripts, chamado annilever.lua ou algo do gênero(procure o nome do arquivo), apague tudo e escreva isto:

function onUse(cid, item, topos)

--Configurações
--Posições dos players, antes de puxar a alavanca.Não mude a stackpos
 local playersPositions = {
  [1] = {x=1, y=1, z=1, stackpos=253},
  [2] = {x=1, y=1, z=1, stackpos=253},
  [3] = {x=1, y=1, z=1, stackpos=253},
  [4] = {x=1, y=1, z=1, stackpos=253}}
--Posições dos players, após puxar a alavanca.
 local newPlayersPositions = {
  [1] = {x=1, y=1, z=1},
  [2] = {x=1, y=1, z=1},
  [3] = {x=1, y=1, z=1},
  [4] = {x=1, y=1, z=1}}
--Posições dos monstros, quando serão sumonados.
 local monstersPositions = {
  [1] = {x=1, y=1, z=1},
  [2] = {x=1, y=1, z=1},
  [3] = {x=1, y=1, z=1},
  [4] = {x=1, y=1, z=1}}
--Efeito que aparecerá na posição velha(old) e nova(new)
 local oldPositionsEffect = CONST_ME_POFF
 local newPositionsEffect = CONST_ME_TELEPORT
--Nome dos monstros sumonados
 local monsterName = "Demon"
--Fim das configurações
   if item.itemid == 1945 then
     doTransformItem(item.uid, 1946)
   elseif item.itemid == 1946 then
     doTransformItem(item.uid, 1945)
   end
   for i = 1, #playersPositions do
       local playersCheck = getThingFromPos(playersPositions[i])
      if isPlayer(playersCheck) == true then
       local newPositionsGo = newPlayersPositions[i]
        doTeleportThing(playersCheck, newPositionsGo)
        doCreateMonster(monsterName, monstersPositions[i])
        doSendMagicEffect(playersPositions[i], oldPositionsEffect)
        doSendMagicEffect(newPositionsGo, newPositionsEffect)
      else
        doPlayerSendCancel(cid, "Você precisa de 4 jogadores para fazer esta quest.")
        doSendMagicEffect(topos, CONST_ME_POFF)
      end
   end
   return true
end

 

Usando:

Simplesmente vá com um time de 4 participantes, e use a alavanca...

 

[spoiler=Agradecimentos]

-Skyen Hasus (tutorial sobre como fazer um script bonito)

-Script da annihi antigo (estava lá feioso e eu acho que arrumei ._.)

 

 

Script antigo:

[spoiler=Script antigo, em spoiler para não pesar]

function onUse(cid, item, frompos, item2, topos)
      -- annihilator
      if item.uid == 8004 then
          if item.itemid == 1945 then

              player1pos = {x=194, y=118, z=9, stackpos=253}
              player1 = getThingfromPos(player1pos)


              if player1.itemid > 0 then

                  player1level = getPlayerLevel(player1.uid)

                  questlevel = 10

                  if player1level then

                      queststatus1 = getPlayerStorageValue(player1.uid,8003)

                      if queststatus1 == -1 then

                          nplayer1pos = {x=193, y=118, z=10}

                          doSendMagicEffect(player1pos,2)

                          doTeleportThing(player1.uid,nplayer1pos)

                          doSendMagicEffect(nplayer1pos,10)

                          doTransformItem(item.uid,item.itemid+1)

                      else
                          doPlayerSendCancel(cid,"Somebody in your team has already done this quest.")
                      end
                  else
                      doPlayerSendCancel(cid,"All players must have level 10 to enter.")
                  end
              else
                  doPlayerSendCancel(cid,"You need 4 players in your team.")
              end
          elseif item.itemid == 1946 then
              if getPlayerAccess(cid) > 0 then
                  doTransformItem(item.uid,item.itemid-1)
              else
                  doPlayerSendCancel(cid,"Sorry, not possible.")
              end
          end

      end
  return 1
  end

 

Tchau, aprovem se ele funcionar, lembrem-se que devem configurar as posições, leiam o script, nos comentários está escrito tudo \õ/...

 

Ps[1]: Se o script estiver bugando seu server, ou dando debug, retire os demons que estiverem na annihilator pelo map editor, pois o script em si já sumona os monstros.

Ps[2]: Se quiser adicionar mais monstros, slots de players e etc, simplesmente coloque mais números, por exemplo:

local monstersPositions = {
  [1] = {x=1, y=1, z=1},
  [2] = {x=1, y=1, z=1},
  [3] = {x=1, y=1, z=1},
  [4] = {x=1, y=1, z=1},
[5] = {x=1, y=1, z=1}}

O último número sempre terminará com uma chave("}")

Editado por Destiny~
Adicionado doCreateMonster, em posições configuráveis

Compartilhar este post


Link para o post
Mock    32
Mock

Comentario: scripts bonitos, bem organizados como esse me fazer xorar ;D

 

Aprovadoico_aprovado.png & Movidoicon_movido.giffechado22xnux7.gif

 

mock.png

Compartilhar este post


Link para o post
Destiny~    1
Destiny~

Valeu Mock, :D

 

Isso que é incentivo >.<"

 

 

Até mais ^^

Editado por Destiny~

Compartilhar este post


Link para o post
Tunock    0
Tunock

boa destiny

bem ornanizadinho

fica + facil de editar caso pressise

 

OBS: troca a suas sign ae, se vc resparar da pra perceber que é senhor dos aneis, olha cabecinha do gandalf kk

 

tipo eu tenho uma duvida pq se usa aquele stackpos, pra que ele serve?

Compartilhar este post


Link para o post
Destiny~    1
Destiny~

Tunock, eu nunca vi senhor dos anéis ._.

 

E o stackpos serve para identificar se é uma criatura(o player), se é um item, se é um ground, etc...

 

Se você olhar no lib/constant.lua, vai perceber que nessa parte:

STACKPOS_GROUND = 0
STACKPOS_TOP_CREATURE = 253
STACKPOS_TOP_FIELD = 254
STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE = 255

 

Vai estar escrito em variáveis, mas dá pra entender...se quiser identificar um field, é 254, um ground é 0, e assim vai...

Compartilhar este post


Link para o post
Tunock    0
Tunock

mas mesmo assim usa essa é + bunita

waw.gif

 

 

 

hmm entendi

tem como usar isso para invasão também? ou qualquer evento?

Compartilhar este post


Link para o post
marcryzius    0
marcryzius

o ruim e que ele não retirar os demons que sobrou de um team que foi na annihi.

então se outro team for la vai ter mais os demons que deixaram fora os 6 que serão summonados.

Compartilhar este post


Link para o post
Destiny~    1
Destiny~

Marcryzius, você é scripter, você sabe se virar :C

 

Tunock, pra invasão eu acho que não, pois deve ter slots de players, mas para algum evento, algo assim...uma mega annihi que precise de 20 players '-'

 

Se quiserem tirar a parte de sumonar os demons, deletem isso do script:

        doCreateMonster[b]([/b]monsterName, monstersPositions[i])

Compartilhar este post


Link para o post
marcryzius    0
marcryzius

mas seria melhor você ajudar quem não sabe.

Compartilhar este post


Link para o post
FakLess    0
FakLess

Bonito E Bem Explicado,e simples de entender :)

Compartilhar este post


Link para o post
Destiny~    1
Destiny~

Obrigado Lankzat...nossa nome difícil Oo

 

Estarei pelo tópico para resolver qualquer dúvida que surgir :~

Compartilhar este post


Link para o post
Murvez    0
Murvez

podeme tirar uma duvida?

onde é o action da lever que nao achei?

ou nao precisa por action algum na lever?

Compartilhar este post


Link para o post
Brad Pitt    0
Brad Pitt

Ficou muito legal o topico parabéns,

Esse script foi feito para um TFS ?

Funfa em TFS 0.3.6 ?

Compartilhar este post


Link para o post
manchinhaot    0
manchinhaot

Não deu certo aqui

Editado por manchinhaot

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×