Ir para conteúdo
Entre para seguir isso  
Dark

[Concurso (#1)] Telescope

Recommended Posts

Dark    3
Dark

------------------------------------------------------------

Autor: Kaotar

 

Servidor Testado: The Forgotten Server 0.2.9 (WinGui)

Versão: 8.1

------------------------------------------------------------

 

 

 

Como Instalar: Adicione na pasta actions do seu servidor.

 

Como funciona: Simplesmente no topo do script você seleciona a distancia(a diferença entre o telescope e o sqm desejado, ou seja, X.....Y, X=Telescope,Y=Sqm desejado,PONTO=Sqms) e o raio(O raio adotado equivale a Y-Raio/2,ou seja, .Y. neste caso raio é 2) e ele retornará o nome das criaturas encontradas na área.

 

Oque ele faz: Já foi citado acima, ele retorna o nome das criaturas encontradas na area.

Acho que nao tem mais o que citar.

 

 

Script:

[/font]
function onUse(cid, item, frompos, item2, topos) 
local monsters = {}
local A = 0
-- Variaveis
raio = 4
distancia = 6
Z = 7  --nil é o mesmo andar do telescope ou ainda pode ser especifidado um andar(0 à 15)
-- Script
if Z == nil then
Z = frompos.z
elseif Z < 0 or Z > 15 then
debugPrint("Andar invalido")
end

if item.itemid == 2582 then
    centery = math.ceil(frompos.y+distancia)
    X = math.ceil(frompos.x-(raio/2))
    Y = math.ceil(centery-(raio/2))
    frompos = {x=X,y=Y,z=Z,stackpos=253}
    topos = {x=frompos.x+raio,y=frompos.y+raio,z=Z,stackpos=253}
    check = {x=frompos.x,y=frompos.y,z=Z,stackpos=253} 
elseif item.itemid == 2581 then
    centery = math.ceil(frompos.y-distancia)
    X = math.ceil(frompos.x-(raio/2))
    Y = math.ceil(centery-(raio/2))
    frompos = {x=X,y=Y,z=Z,stackpos=253}
    topos = {x=frompos.x+raio,y=frompos.y+raio,z=Z,stackpos=253}
    check = {x=frompos.x,y=frompos.y,z=Z,stackpos=253} 
elseif item.itemid == 2583 then
    centerx = math.ceil(frompos.x-distancia)
    X = math.ceil(centerx-(raio/2))
    Y = math.ceil(frompos.y-(raio/2))
    frompos = {x=X,y=Y,z=Z,stackpos=253}
    topos = {x=frompos.x+raio,y=frompos.y+raio,z=Z,stackpos=253}
    check = {x=frompos.x,y=frompos.y,z=Z,stackpos=253} 
elseif item.itemid == 2584 then
    centerx = math.ceil(frompos.x+distancia)
    X = math.ceil(centerx-(raio/2))
    Y = math.ceil(frompos.y-(raio/2))
    frompos = {x=X,y=Y,z=Z,stackpos=253}
    topos = {x=frompos.x+raio,y=frompos.y+raio,z=Z,stackpos=253}
    check = {x=frompos.x,y=frompos.y,z=Z,stackpos=253} 

end

  repeat
        creat = getThingfromPos(check)
        if creat.itemid > 0 then
           name = getCreatureName(creat.uid)
           A = A+1
           monsters[A]=name
        end
           check.x=check.x+1
        if check.x>topos.x then
           check.x=frompos.x
           check.y=check.y+1
        end
       until check.y>topos.y
       if #monsters > 0 then
           if #monsters == 1 then
               text = "A criatura vista foi a seguinte:"
           elseif #monsters > 1 then
               text = "As criaturas vistas foram as seguintes:"
           end    
           repeat
               text = ""..text.." "..monsters[#monsters]..","
               table.remove(monsters, #monsters)
           until #monsters == 0
           text = string.sub(""..text.."",1,-2)
           text = ""..text.."."
           doPlayerSendTextMessage(cid,22,text)
       elseif A == 0 then
           doPlayerSendTextMessage(cid,22,"Nao enxergou nada.")
       end
end

Tags:

   <action itemid="2584" script="telescope.lua" />
<action itemid="2583" script="telescope.lua" />
<action itemid="2582" script="telescope.lua" />
<action itemid="2581" script="telescope.lua" />

Compartilhar este post


Link para o post
Kaotar    5
Kaotar

Opa, alguma duvida, bugs poste no topico.

 

O Dark esqueceu de falar sobre o Z

Z = 7 --nil é o mesmo andar do telescope ou ainda pode ser especifidado um andar(0 à 15)

 

Flws, Kaotar

Compartilhar este post


Link para o post
Forger    2
Forger

Dá pra fazer esse script de uma maneira bem mais simples:

local monsters = {}
local A = 0
-- Variaveis
local raio = 4
local distancia = 6
local Z = 7  --nil é o mesmo andar do telescope ou ainda pode ser especifidado um andar(0 à 15)
-- Script
function onUse(cid, item, frompos, item2, topos) 
    if (Z == nil) then
         Z = frompos.z
    elseif Z < 0 or Z > 15 then
         debugPrint("Andar invalido")
    end
    if item.itemid == 2582 then
         centery = math.ceil(frompos.y+distancia)
    elseif item.itemid == 2581 then
         centery = math.ceil(frompos.y-distancia)
    elseif item.itemid == 2583 then
         centerx = math.ceil(frompos.x-distancia)
    elseif item.itemid == 2584 then
         centerx = math.ceil(frompos.x+distancia)
    end
local X = math.ceil(frompos.x-(raio/2))
local Y = math.ceil(centery-(raio/2))
local frompos = {x=X,y=Y,z=Z,stackpos=253}
local topos = {x=frompos.x+raio,y=frompos.y+raio,z=Z,stackpos=253}
local check = {x=frompos.x,y=frompos.y,z=Z,stackpos=253} 
    repeat
    creat = getThingfromPos(check)
         if creat.itemid > 0 then
              name = getCreatureName(creat.uid)
              A = A+1
              monsters[A]=name
         end
    check.x=check.x+1
         if check.x>topos.x then
              check.x=frompos.x
              check.y=check.y+1
         end
    until (check.y> topos.y)
    if #monsters > 0 then
         if #monsters == 1 then
              text = "A criatura vista foi a seguinte:"
         elseif #monsters > 1 then
              text = "As criaturas vistas foram as seguintes:"
         end    
         repeat
              text = text..' '..monsters[#monsters]..','
              table.remove(monsters, #monsters)
         until #monsters == 0
         text = string.sub(text,1,-2)
         text = text..'.'
         doPlayerSendTextMessage(cid,22,text)
    elseif A == 0 then
           doPlayerSendTextMessage(cid,22,"Nao enxergou nada.")
    end
end

 

Algo assim...

Espero que esteja certo.

Compartilhar este post


Link para o post
Kaotar    5
Kaotar

Claro que nao pois em

if item.itemid == 2582 then

centery = math.ceil(frompos.y+distancia)

X = math.ceil(frompos.x-(raio/2))

Y = math.ceil(centery-(raio/2))

frompos = {x=X,y=Y,z=Z,stackpos=253}

topos = {x=frompos.x+raio,y=frompos.y+raio,z=Z,stackpos=253}

check = {x=frompos.x,y=frompos.y,z=Z,stackpos=253}

e em:
elseif item.itemid == 2583 then

centerx = math.ceil(frompos.x-distancia)

X = math.ceil(centerx-(raio/2))

Y = math.ceil(frompos.y-(raio/2))

frompos = {x=X,y=Y,z=Z,stackpos=253}

topos = {x=frompos.x+raio,y=frompos.y+raio,z=Z,stackpos=253}

check = {x=frompos.x,y=frompos.y,z=Z,stackpos=253}

A verificação é diferente, de uma olhada melhor xD.

 

Flws, Kaotar

 

Edit:

 

De uma olhada nas verificações todas tem algo de diferente, alguma é centerx e outras usa frompos.x e etc.

Compartilhar este post


Link para o post
GustavoMaster    0
GustavoMaster

Script muito criativo, e é bom para OT's sérios ^^

E tipo poderia colocar aquele telescopio grandão, e ele pode achar as criaturas mais distantes

Parabéns e obrigado

Compartilhar este post


Link para o post
Capuccino    0
Capuccino

De mais cara !

obrigado..

Compartilhar este post


Link para o post
niKer    0
niKer

Parabens Como Sempre Otimo Parabens!!

Compartilhar este post


Link para o post
wiick    0
wiick

rox xDDD

 

gostei

 

@NoMore

Compartilhar este post


Link para o post
Mush    0
Mush

Muito bom, gostei mesmo, garanto que vou usar ;)

So que tipo iria ser legal se desce para ver a longa distancia como se pudeçe ver a area oO

 

//Frank

Compartilhar este post


Link para o post
Kaotar    5
Kaotar
So que tipo iria ser legal se desce para ver a longa distancia como se pudeçe ver a area oO

 

 

Como assim?

Compartilhar este post


Link para o post
BlueAvenger    0
BlueAvenger

Tio Dark, mais um script seu como um dos melhores, sinceramente ficou muito bom, adorei ele. Meus parabens.

Grato!

 

Aprovado~

Compartilhar este post


Link para o post
541320    0
541320

Ficou muito irado claro foi postado pelo Dark

Aprovado

Compartilhar este post


Link para o post
Dark    3
Dark

Bem, só lembrando esse script não foi feito bor min e sim pelo usuario Kaotar. Eu postei ele pois esse script foi o que ganhou a edição numero 1 do ScriptChallenger.

 

So reforçando, o autor desse script é o Kaotar

 

:bye:

Compartilhar este post


Link para o post
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×