Ir para conteúdo
Entre para seguir isso  
Wantedzin

checkAreaUid

Recommended Posts

Wantedzin    0
Wantedzin

Nome: checkAreaUid

Autor: Wantedzin

Versão Testada: TFS 0.3.6

 

O que faz: Bom ele checa os monstros e os players ou só os monstros ou só os players que estão em determinada área que vai ser representada por uma tabela como a das spells.

 

 

[spoiler=FUNCTION]

function checkAreaUid(pos, area, showP, showM) -- By Wantedzin(Perdigs)
   local creaturesList = {}
   local center = {}
   center.y = math.floor(#area/2)+1
   for y = 1, #area do
       for x = 1, #area[y] do
           local number = area[y][x]
           if number > 0 then
               center.x = math.floor(table.getn(area[y])/2)+1
               local pos =  getTopCreature {x = pos.x + x - center.x, y = pos.y + y - center.y, z = pos.z, stackpos = STACKPOS_TOP_CREATURE}
               if (pos.type == 1 and showP == 1) or (pos.type == 2 and showM == 1) then
               table.insert(creaturesList, pos.uid)
               end
           end
       end
   end
   return creaturesList
end

 

 

Está é a primeira função que crio, agradecimentos ao Mock pois fiz esta fucntion baseada em um script dele.

 

Bom vamos as explicações:

 

pos = é de onde séra o centro da checagem a partir desta posição fara a checagem.

area = é a area que vc setou pra ele afzer a checagem

showP = 0 para não checar os players e 1 para checar players

showM = 0 para não checar monstros e 1 para checar monstros

 

exemplo do script aplicado

 

[spoiler=Exemplo]

function onUse(cid, item, frompos, item2, topos)

local area = {
{0, 0, 0, 0, 0},
{0, 1, 1, 1, 0},
{0, 1, 2, 1, 0},
{0, 1, 1, 1, 0},
{0, 0, 0, 0, 0}
}

local condition = createConditionObject(CONDITION_DRUNK)
setConditionParam(condition, CONDITION_PARAM_TICKS, 15*1000)

local function Drunked(indrunk)
if not isCreature(indrunk) then return true end
doAddCondition(indrunk, condition)
end

local uid = checkAreaUid(topos, area, 1, 1)
for _,pid in pairs(uid) do
Drunked(pid)
doSendMagicEffect(getCreaturePosition(pid), 1)
end
end

 

Bom espero que façam bom uso.

 

----Edit a aplicação dela em um script já foi colocada ela checa na área que vc seta se tem monstros ou players

tem utilidade pra alguem mas serve pra pegar os uid dos monstros que estão na área determinada...

não tem muito o que explicar vc seta a área que vc quer que faça a busca e ele procura os uids e expõe em uma tabela.

Para setar conditions nos monstros que tiverem nessa área marcada, para remover eles para o que quiser fazer....

Editado por Garou

Compartilhar este post


Link para o post
Oneshot    24
Oneshot

Wantedzin,

 

Só uma pergunta: A função getSpectators * que vem com todas as distribuições de servidores conhecidos, já não faz a mesma coisa que a sua função?

 

Creio que sim, mas aprecio muito os usuários que tenham a capacidade de interpretar funções de distros Forgotten Server e refazer-las. Muito bem :)

 

Aprovado

20 V$

 

Editado por Garou

Compartilhar este post


Link para o post
Wantedzin    0
Wantedzin

HEhEhHEEh não conhecia a função, então não sei a sua função vou verificar.

xD

 

---Edit

 

Vendo a função getSpectators, notei uam pequena diferença da minha, pois a minha vc cria a área que quer que ela cheque

e por está que você disse ela faz a checagem quadrados de sqms, a minha checa por área determinada por vc que pode ser

apenas em linha reta ou soemnte laterais....

emfim a minha é mais completa.

Editado por Wantedzin

Compartilhar este post


Link para o post
Criticoo    4
Criticoo

ui esse Wantedzin(Perdigs) está cada vez melhorando seu nível de scripting *-----------*

meu tesudo <3

essa função é uma das mais úteis por aqui,parabéns!

Compartilhar este post


Link para o post
Wantedzin    0
Wantedzin

Vlw Criticoo...xD

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.

×