Ir para conteúdo
Entre para seguir isso  
Eventide

Eventide script library

Recommended Posts

Eventide    7
Eventide

funções:

changeLookDir(cid, direção)

sendo que as direções são:

right

left

south

north

 

addNumberOnArray(array, numero)

adiciona determinad numero em todos os elementos da array

 

getArrPosByName(array, nome)

procura determinado nome em uma array e retorna sua posição

 

isPlayerOnArea(player, alt, lar, esq)

verifica se determinado player está em determinada área sendo que:

alt é a altura da área, lar a largura e esq é o canto superior esquerdo da área

 

getCountOnArr(array, search)

conta a quantia de determinada coisa em determinada array

sendo que search é o que você procura

 

doCalculateArray(array, conta)

calcula todos os elementos da array, sendo que, conta é o tipo de calculo que vai fazer.

tipo de calculos:

plus - soma tudo

less - subtrai tudo

mult - multiplica tudo

div - divide tudo

Library:

--[[
------------------------------------------------------
Eventide Script Library
Version: 1
Author: Gustavo Junqueira (Eventide)
-------------------------------------------------------
]]    
   function addNumberOnArray(array, number)
           for ret = 1,#array do
                   if type(array[ret]) == number then
                       array[ret] + number
                   end
           end
   end 

   function getArrPosByName(array, name)
           for ret = 1,#array do 
                   if array[ret] == name then 
                       return ret
           break
                   end 
           end 
   end 

   function isPlayerOnArea(name, alt, lar, esq)
           if getCreaturePosition(getPlayerByName(name)) == esq then
               return TRUE
           else
                   for T = 1,alt do
                       Pos = {x = esq.x, y = esq.y + T, z = esq.z}
                           if getCreaturePosition(getPlayerByName(name)) == Pos then 
                               return TRUE
                           end
                   end
                       for T = 1,lar do
                               if lar == alt then
                                   Pos = {x = esq.x - T, y = esq.y + T, z = esq.z}
                                       if geCreaturePosition(getPlayerByName(name)) == Pos then 
                                           return TRUE
                                       end
                               else 
                                       for U = 1,alt do 
                                           Pos = {x = esq.x - T, y = esq.y + U, z = esq.z}
                                               if getCreaturePosition(getPlayerByName(name)) == Pos then 
                                                   return TRUE
                                               end
                                       end
                               end
                       end 
           end
   end 

   function getCountOnArr(array, search)
       count = {0}
           for T = 1,#array do
                   if array[T] == search 
                       table.insert(count, 0)
                   end 
           end
       final = #count
       return final 
   end 

   function doCalculateArray(array, calc)
           if calc == plus then
               final = math.floor(string.explode(table.concat(array, "+")))
           elseif calc == less then
               final = math.floor(string.explode(table.concat(array, "-")))
           elseif calc == mult then 
               final = math.floor(string.explode(table.concat(array, "*")))
           elseif calc == div then
               final = math.floor(string.explode(table.concat(array, "/")))
           else
               return FALSE
           end
       return final 
   end 

   function changeLookDir(cid, dir)
       pp = getCreaturePosition(cid)
           if dir == north then 
               tp1 = {x = pp.x, y = pp.y - 1, z = pp.z}
               tp2 = {x = pp.x, y = pp.y + 1, z = pp.z}
               doTeleportThing(cid, tp1, TRUE)
               doTeleportThing(cid, tp2, FALSE)
           elseif dir == south then 
               tp1 = {x = pp.x, y = pp.y + 1, z = pp.z}
               tp2 = {x = pp.x, y = pp.y - 1, z = pp.z}
               doTeleportThing(cid, tp1, TRUE)
               doTeleportThing(cid, tp2, FALSE)
           elseif dir == right then 
               tp1 = {x = pp.x - 1, y = pp.y, z = pp.z}
               tp1 = {x = pp.x + 1, y = pp.y, z = pp.z}
               doTeleportThing(cid, tp1, TRUE)
               doTeleportThing(cid, tp2, FALSE)
           elseif dir == left then 
               tp1 = {x = pp.x + 1, y = pp.y, z = pp.z}
               tp1 = {x = pp.x - 1, y = pp.y, z = pp.z}
               doTeleportThing(cid, tp1, TRUE)
               doTeleportThing(cid, tp2, FALSE)    
           else
               return FALSE
           end 
   end 

 

para instalar simplesmente copie e cole isso no seu global.lua

caso seu server seja TFS 0.3, va na pasta data/lib e cole a library no arquivo function.lua

Editado por Eventide

Compartilhar este post


Link para o post
Kaotar    5
Kaotar

Cara, ta ateh bom com algumas coisas atoa, mas deixo esse comentarios pro Yuji.

Uma dica:

function addNumberOnArray(array, number)
   for ret = 1,table.getn(array) do
       if (type(array[ret]) == 'number') then
           array[ret] + number
       end
   end
end[color=Black]

 

Flws

[/color]

Editado por Kaotar

Compartilhar este post


Link para o post
Eventide    7
Eventide

@kaotar

ótima idéia, vou colocar lá... :-)

Compartilhar este post


Link para o post
GDLib    2
GDLib

Troque table.getn(array) por #array.

Não gostei da função doCalculateArray.

 

Troque getPlayerPosition por getCreaturePosition também.

Gostei das três primeiras funções até.

Compartilhar este post


Link para o post
PoSo    0
PoSo

Achei bem legal o jeito que voce bolou changeLookDir

Parabéns :D

Compartilhar este post


Link para o post
MotoBoy    0
MotoBoy

eita

=P

eu fiz a minha changeLookDir igualzim sua xD~~

aushauhsauhsauhs

curti pakas as funções Eventide..

fazendo funções tmbm hein O.o

Hail Eventide~~

suasuhsauhsauha

 

flws~~

parabens!!

Compartilhar este post


Link para o post
Eventide    7
Eventide

hail hail.. x.x

espero que vocês estejam usando, mais do que as concorrentes.. <grr..>

qualquer bug, só reportar, vlw amicows!

Compartilhar este post


Link para o post
Legend Link    0
Legend Link

me ajuda aki

 

a função isPlayerOnArea(player, alt, lar, esq)

 

quero fazer ela pega a pos dos player da area. 500 500 7 a 510 510 7

 

e teleportar para 100 100 7

 

tem como ?

Compartilhar este post


Link para o post
Pedrok$    0
Pedrok$

A função isPlayerOnArea está horrível. Você poderia ter usado o canto superior esquerdo e o canto inferior direito. Se as posições x e y do player forem maiores que um e menor que o outro, ele está dentro. E z tem que ser igual obviamente.

Compartilhar este post


Link para o post
Nord    2
Nord

Não se espantem que to dando uma desenferrujada aqui, velho amigo Eventide :D

Gostei dessa função changeLookDir(cid, dir), fiz um modo reduzido:

function changeLookDir(cid, dir)
   local pos = getCreaturePosition(cid)
   doTeleportThing(cid, getPosByDir(pos, dir), TRUE)
   doTeleportThing(cid, pos, FALSE)
end

Se eu não tivesse feito isso não seria mais Nord.

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.

×