Ir para conteúdo
  • Cadastre-se

(Resolvido)[Action] Verificar Área


Ir para solução Resolvido por Vodkart,

Posts Recomendados

Salve galera bom recentemente tentei me arriscar em script que é o meu fraco kkk e tentei editar um script para fazer uma verificação de área para caso alguém estiver na area configurada e o jogador dar use na alavanca aparecer a mensagem que tem gente na area ainda caso não tiver mais ninguém enviar o jogador pra position configurada e enviar a mensagem de boa sorte.

 

Bom agora o que esta acontecendo com o script é que ele não envia ninguém, caso tiver pessoas ou não na area aparece a mensagem de boa sorte e não envia o jogador para a posição caso tiver gente não envia porém aparece a mensagem de boa sorte igualmente se alguém puder dar uma analisada ficarei extremamente grato ^^ 

 

function onUse(cid, item, frompos, item2, topos) 
if item.uid == 7001 then
if item.itemid == 1945 then
player1pos = {x=1076, y=783, z=6, stackpos=253}
player2pos = {x=1077, y=783, z=6, stackpos=253}
player1 = getThingfromPos(player1pos)
player2 = getThingfromPos(player2pos)

local block_area = {
{{x=1056,y=751,z=7}, {x=1260,y=797,z=7}} -- pos começo e final da area
}
for _, var in ipairs(block_area) do
if isInRange(getCreaturePosition(cid), var[1], var[2]) then
    doPlayerSendTextMessage(cid, 20, "Tem um player na quest, espere sua vez!")
        return true
    else
	doTeleportThing(cid, player1, player2)
        doPlayerSendTextMessage(cid, 20, "Boa Sorte!")
        return false
    end
	end

 

Compre seus Scripts Agora totalmente seguro e de forma rápida, aceitamos também encomendas.

discord.gg/phJZeHa2k4

 

Projeto ATS (Naruto)

Informações Abaixo

Facebook

Youtube
Discord

 

Tutoriais / Conteúdos

Clique Aqui

Link para o post
Compartilhar em outros sites
local config = {
    centerRoom = {x=1076, y=783, z=6},
    rangeX = 10,
    rangeY = 10,
    playerDestiny = {x=1076, y=783, z=6}
}

function checkRoom(centerPos, rangeX, rangeY)
    local spectators, spec = getSpectators(centerPos, rangeX, rangeY, false])
    for i = 1, #spectators do
        spec = spectators[i]
        if isPlayer(spec) then
            return true
        end
    end
    return false
end

function onUse(cid, item, frompos, item2, topos)
    if item.itemid == 1945 then
        if checkRoom(config.centerRoom, config.rangeX, config.rangeY) then
            doPlayerSendTextMessage(cid, 20, "Tem um player na quest, espere sua vez!")
            return true
        end

        doTeleportThing(cid, config.playerDestiny)
        doPlayerSendTextMessage(cid, 20, "Boa Sorte!")
    end

    doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)
    return true
end

 

Link para o post
Compartilhar em outros sites

@FlavioHulk não deu certo se tiver algum player na área teleporta os jogadores do mesmo jeito pra lá é o seguinte a área da quest é essa

 

Area da quest \/

 

Pwyp22v.jpg

 

Obs: aqueles tiles vermelhos é onde o player 1 e o player 2 vão ser teleportados

a verificação da área precisa cobrir todo esse lugar

 

Entrada para a Quest \/

 

Spoiler

1kE6UM8.png

Area onde os jogadores vão ficar pra entrar na quest precisa de dois players para poderem ir para a quest

ai caso tiver algum jogador naquela área não vai ser possível entrar na quest

 

Script Completo Normal Sem Alterações \/


 

Spoiler



function onUse(cid, item, frompos, item2, topos) 
if item.uid == 7001 then
if item.itemid == 1945 then
player1pos = {x=1076, y=783, z=6, stackpos=253}
player2pos = {x=1077, y=783, z=6, stackpos=253}
player1 = getThingfromPos(player1pos)
player2 = getThingfromPos(player2pos)
	
	
if player1.itemid > 0 and player2.itemid > 0 then

player1level = getPlayerLevel(player1.uid)
player2level = getPlayerLevel(player2.uid)

questlevel = 420

if player1level >= questlevel and player2level >= questlevel then

queststatus1 = getPlayerStorageValue(player1.uid,62800)
queststatus2 = getPlayerStorageValue(player2.uid,62800)

if queststatus1 == -1 and queststatus2 == -1 then

nplayer1pos = {x=1071, y=789, z=7}
nplayer2pos = {x=1071, y=788, z=7}


doSendMagicEffect(player1pos,2)
doSendMagicEffect(player2pos,2)

doTeleportThing(player1.uid,nplayer1pos)
doTeleportThing(player2.uid,nplayer2pos)

doSendMagicEffect(nplayer1pos,10)
doSendMagicEffect(nplayer2pos,10)

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

else
doPlayerSendCancel(cid,"Alguem do seu time já fez essa quest.")
end
else
doPlayerSendCancel(cid,"Alguem não possui level 420 ou mais.")
end
else
doPlayerSendCancel(cid,"Voce não possui membros o suficiente.")
end
elseif item.itemid == 1946 then
if getPlayerAccess(cid) == 0 then
doTransformItem(item.uid,item.itemid-1)
else
doPlayerSendCancel(cid,"Membros da Staff não podem fazer a quest")
end
end
end
return 1
end


 

 

Compre seus Scripts Agora totalmente seguro e de forma rápida, aceitamos também encomendas.

discord.gg/phJZeHa2k4

 

Projeto ATS (Naruto)

Informações Abaixo

Facebook

Youtube
Discord

 

Tutoriais / Conteúdos

Clique Aqui

Link para o post
Compartilhar em outros sites
function getPlayersInArea(from, to)
  local t = {}
  for _, pid in pairs(getPlayersOnline()) do
    if isInRange(getPlayerPosition(pid), from, to) then
      t[#t+1] = pid
    end
  end
  return t
end

local config = {
  limit = 1, -- limite de jogador na area
  from = {x = 1518, y = 1159, z = 15}, --começo da area
  to = {x = 1534, y = 1174, z = 15}, -- final da area
  playerDestiny = {x = 1077, y = 783, z = 6} -- para onde o player vai
}

if #getPlayersInArea(config.from, config.to) >= config.limit then
  doPlayerSendCancel(cid, 'Alguem Ja Esta Na Area.')
  doSendMagicEffect(getThingPos(cid), 2) return true
end
doTeleportThing(cid, config.playerDestiny)
doPlayerSendTextMessage(cid, 20, "Boa Sorte!")
doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) return true
end

 

vc pega o X,Y,Z do "from" até o "to"!

 

 

jQOpbZj.jpg

 

obs: é do MENOR pro MAIOR, exemplo aqui:

 

from = {x = 1518, y = 1159, z = 15},

to = {x = 1534, y = 1174, z = 15}

 

nunca assim:

 

to = {x = 1518, y = 1159, z = 15},

from = {x = 1534, y = 1174, z = 15}

 

 

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

@Vodkart 

 

ficou assim vod ta dando o seguinte erro 

 

[26/10/2018 16:46:26] [Error - LuaScriptInterface::loadFile] data/actions/scripts/anihidoisns.lua:83: '<eof>' expected near 'end'
[26/10/2018 16:46:26] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/anihidoisns.lua)
[26/10/2018 16:46:26] data/actions/scripts/anihidoisns.lua:83: '<eof>' expected near 'end'
function onUse(cid, item, frompos, item2, topos) 
if item.uid == 7001 then
if item.itemid == 1945 then
player1pos = {x=1076, y=783, z=6, stackpos=253}
player2pos = {x=1077, y=783, z=6, stackpos=253}
player1 = getThingfromPos(player1pos)
player2 = getThingfromPos(player2pos)

function getPlayersInArea(from, to)
  local t = {}
  for _, pid in pairs(getPlayersOnline()) do
    if isInRange(getPlayerPosition(pid), from, to) then
      t[#t+1] = pid
    end
  end
  return t
end

local config = {
  limit = 1, -- limite de jogador na area
  from = {x = 1559, y = 754, z = 7}, --começo da area
  to = {x = 1216, y = 798, z = 7}, -- final da area
  playerDestiny = {x = 1071, y = 789, z = 7} -- para onde o player vai
}

if #getPlayersInArea(config.from, config.to) >= config.limit then
  doPlayerSendCancel(cid, 'Alguem Ja Esta Na Area.')
  doSendMagicEffect(getThingPos(cid), 2) return true
end
doTeleportThing(cid, config.playerDestiny)
doPlayerSendTextMessage(cid, 20, "Boa Sorte!")
doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) return true
end
	
	
if player1.itemid > 0 and player2.itemid > 0 then

player1level = getPlayerLevel(player1.uid)
player2level = getPlayerLevel(player2.uid)

questlevel = 420

if player1level >= questlevel and player2level >= questlevel then

queststatus1 = getPlayerStorageValue(player1.uid,62800)
queststatus2 = getPlayerStorageValue(player2.uid,62800)

if queststatus1 == -1 and queststatus2 == -1 then

nplayer1pos = {x=1071, y=789, z=7}
nplayer2pos = {x=1071, y=788, z=7}


doSendMagicEffect(player1pos,2)
doSendMagicEffect(player2pos,2)

doTeleportThing(player1.uid,nplayer1pos)
doTeleportThing(player2.uid,nplayer2pos)

doSendMagicEffect(nplayer1pos,10)
doSendMagicEffect(nplayer2pos,10)

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

else
doPlayerSendCancel(cid,"Alguem do seu time já fez essa quest.")
end
else
doPlayerSendCancel(cid,"Alguem não possui level 420 ou mais.")
end
else
doPlayerSendCancel(cid,"Voce não possui membros o suficiente.")
end
elseif item.itemid == 1946 then
if getPlayerAccess(cid) == 0 then
doTransformItem(item.uid,item.itemid-1)
else
doPlayerSendCancel(cid,"Membros da Staff não podem fazer a quest")
end
end
end
return 1
end

 

Compre seus Scripts Agora totalmente seguro e de forma rápida, aceitamos também encomendas.

discord.gg/phJZeHa2k4

 

Projeto ATS (Naruto)

Informações Abaixo

Facebook

Youtube
Discord

 

Tutoriais / Conteúdos

Clique Aqui

Link para o post
Compartilhar em outros sites
  • Solução

@Brunds esqueci a função main kkk

 

function getPlayersInArea(from, to)
  local t = {}
  for _, pid in pairs(getPlayersOnline()) do
    if isInRange(getPlayerPosition(pid), from, to) then
      t[#t+1] = pid
    end
  end
  return t
end

local config = {
  limit = 1, -- limite de jogador na area
  from = {x = 1518, y = 1159, z = 15}, --começo da area
  to = {x = 1534, y = 1174, z = 15}, -- final da area
  playerDestiny = {x = 1077, y = 783, z = 6} -- para onde o player vai
}
function onUse(cid, item, frompos, item2, topos)
if #getPlayersInArea(config.from, config.to) >= config.limit then
  doPlayerSendCancel(cid, 'Alguem Ja Esta Na Area.')
  doSendMagicEffect(getThingPos(cid), 2) return true
end
doTeleportThing(cid, config.playerDestiny)
doPlayerSendTextMessage(cid, 20, "Boa Sorte!")
doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) return true
end

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

@Vodkart não funcionou vod mesmo tendo jogadores no local ainda teleporta outros ...

Compre seus Scripts Agora totalmente seguro e de forma rápida, aceitamos também encomendas.

discord.gg/phJZeHa2k4

 

Projeto ATS (Naruto)

Informações Abaixo

Facebook

Youtube
Discord

 

Tutoriais / Conteúdos

Clique Aqui

Link para o post
Compartilhar em outros sites
16 minutos atrás, Brunds disse:

@Vodkart não funcionou vod mesmo tendo jogadores no local ainda teleporta outros ...

 

 

me mostra seu codigo

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

@Vodkart 

 

function onUse(cid, item, frompos, item2, topos) 
if item.uid == 7001 then
if item.itemid == 1945 then
player1pos = {x=1076, y=783, z=6, stackpos=253}
player2pos = {x=1077, y=783, z=6, stackpos=253}
player1 = getThingfromPos(player1pos)
player2 = getThingfromPos(player2pos)

function getPlayersInArea(from, to)
  local t = {}
  for _, pid in pairs(getPlayersOnline()) do
    if isInRange(getPlayerPosition(pid), from, to) then
      t[#t+1] = pid
    end
  end
  return t
end

local config = {
  limit = 1, -- limite de jogador na area
  from = {x = 1559, y = 754, z = 7}, --começo da area
  to = {x = 1216, y = 798, z = 7}, -- final da area
  playerDestiny = {x = 1071, y = 789, z = 7} -- para onde o player vai
}
function onUse(cid, item, frompos, item2, topos)
if #getPlayersInArea(config.from, config.to) >= config.limit then
  doPlayerSendCancel(cid, 'Alguem Ja Esta Na Area.')
  doSendMagicEffect(getThingPos(cid), 2) return true
end
doTeleportThing(cid, config.playerDestiny)
doPlayerSendTextMessage(cid, 20, "Boa Sorte!")
doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) return true
end
	
	
if player1.itemid > 0 and player2.itemid > 0 then

player1level = getPlayerLevel(player1.uid)
player2level = getPlayerLevel(player2.uid)

questlevel = 420

if player1level >= questlevel and player2level >= questlevel then

queststatus1 = getPlayerStorageValue(player1.uid,62800)
queststatus2 = getPlayerStorageValue(player2.uid,62800)

if queststatus1 == -1 and queststatus2 == -1 then

nplayer1pos = {x=1071, y=789, z=7}
nplayer2pos = {x=1071, y=788, z=7}


doSendMagicEffect(player1pos,2)
doSendMagicEffect(player2pos,2)

doTeleportThing(player1.uid,nplayer1pos)
doTeleportThing(player2.uid,nplayer2pos)

doSendMagicEffect(nplayer1pos,10)
doSendMagicEffect(nplayer2pos,10)

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

else
doPlayerSendCancel(cid,"Alguem do seu time já fez essa quest.")
end
else
doPlayerSendCancel(cid,"Alguem não possui level 420 ou mais.")
end
else
doPlayerSendCancel(cid,"Voce não possui membros o suficiente.")
end
elseif item.itemid == 1946 then
if getPlayerAccess(cid) == 0 then
doTransformItem(item.uid,item.itemid-1)
else
doPlayerSendCancel(cid,"Membros da Staff não podem fazer a quest")
end
end
end
return 1
end

 

Compre seus Scripts Agora totalmente seguro e de forma rápida, aceitamos também encomendas.

discord.gg/phJZeHa2k4

 

Projeto ATS (Naruto)

Informações Abaixo

Facebook

Youtube
Discord

 

Tutoriais / Conteúdos

Clique Aqui

Link para o post
Compartilhar em outros sites

@Vodkart tentei editar assim mas também não faz a verificação 

 

function getPlayersInArea(from, to)
    local t = {}
    for _, pid in pairs(getPlayersOnline()) do
        if isInRange(getPlayerPosition(pid), from, to) then
            t[#t+1] = pid
        end
    end
    return t
end

local config = {
    limit = 1, -- limite de jogador na area
    from = {x = 1559, y = 754, z = 7}, --começo da area
    to = {x = 1216, y = 798, z = 7}, -- final da area
}

function onUse(cid, item, frompos, item2, topos)
    if item.uid == 7001 then
        if item.itemid == 1945 then
            player1pos = {x=1076, y=783, z=6, stackpos=253}
            player2pos = {x=1077, y=783, z=6, stackpos=253}
            player1 = getThingfromPos(player1pos)
            player2 = getThingfromPos(player2pos)
			    if #getPlayersInArea(config.from, config.to) >= config.limit then
        doPlayerSendCancel(cid, 'Alguem Ja Esta Na Area.')
        doSendMagicEffect(getThingPos(cid), 2) return true
    end

            if player1.itemid > 0 and player2.itemid > 0 then

                player1level = getPlayerLevel(player1.uid)
                player2level = getPlayerLevel(player2.uid)

                questlevel = 420

                if player1level >= questlevel and player2level >= questlevel then

                    queststatus1 = getPlayerStorageValue(player1.uid,62800)
                    queststatus2 = getPlayerStorageValue(player2.uid,62800)

                    if queststatus1 == -1 and queststatus2 == -1 then

                        nplayer1pos = {x=1071, y=789, z=7}
                        nplayer2pos = {x=1071, y=788, z=7}


                        doSendMagicEffect(player1pos,2)
                        doSendMagicEffect(player2pos,2)

                        doTeleportThing(player1.uid,nplayer1pos)
                        doTeleportThing(player2.uid,nplayer2pos)

                        doSendMagicEffect(nplayer1pos,10)
                        doSendMagicEffect(nplayer2pos,10)

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

                    else
                        doPlayerSendCancel(cid,"Alguem do seu time já fez essa quest.")
                    end
                else
                    doPlayerSendCancel(cid,"Alguem não possui level 420 ou mais.")
                end
            else
                doPlayerSendCancel(cid,"Voce não possui membros o suficiente.")
            end
        elseif item.itemid == 1946 then
                doTransformItem(item.uid,item.itemid-1)
            end
    end
    return 1
end

 

Compre seus Scripts Agora totalmente seguro e de forma rápida, aceitamos também encomendas.

discord.gg/phJZeHa2k4

 

Projeto ATS (Naruto)

Informações Abaixo

Facebook

Youtube
Discord

 

Tutoriais / Conteúdos

Clique Aqui

Link para o post
Compartilhar em outros sites

@Vodkart consegui resolver já vod valeu xD

Compre seus Scripts Agora totalmente seguro e de forma rápida, aceitamos também encomendas.

discord.gg/phJZeHa2k4

 

Projeto ATS (Naruto)

Informações Abaixo

Facebook

Youtube
Discord

 

Tutoriais / Conteúdos

Clique Aqui

Link para o post
Compartilhar em outros sites
  • 1 year later...

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo