othereality 46 Postado Janeiro 25, 2012 Share Postado Janeiro 25, 2012 (editado) Então eu tava procurando por algo que limitasse o numero de player em uma certa area e encontrei esse script do VodKart... function onStepIn(cid, item, position, fromPosition) if (item.actionid == 13731) then for check_forjax = 217,223 do -- check X começo e final da sala for check_forjay = 64,65 do -- check Y começo e final da sala forjapos = {x=check_forjax, y=check_forjay, z=7, stackpos=253} room_forja = getThingfromPos(forjapos ) if room_forja.itemid > 0 then doTeleportThing(cid, fromPosition, true) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) doPlayerSendCancel(cid,"Espere o Jogador sair da forja.") return TRUE end end end O Unico problema é que eu queria que desse para ter até 4 player nesse espaço. e quando eu edito isso: if room_forja.itemid > 0 then para isso if room_forja.itemid > 3 then Da algum bug que o script não funciona, entra quantos quiserem... Alguém sabe porque?! agredeço desde já TODAS as respostas! Editado Janeiro 25, 2012 por OtheReality Link para o comentário https://xtibia.com/forum/topic/179061-maximo-de-players-em-uma-area-script-do-vodkart/ Compartilhar em outros sites More sharing options...
Mulizeu 86 Postado Janeiro 25, 2012 Share Postado Janeiro 25, 2012 entra quantas pessoas quizerem porque vc colocou o simbolo de mair que o >, para ser uma quantia deveria ter o sinal de 2 igual == tente assim! function onStepIn(cid, item, position, fromPosition) if (item.actionid == 13731) then for check_forjax = 217,223 do -- check X começo e final da sala for check_forjay = 64,65 do -- check Y começo e final da sala forjapos = {x=check_forjax, y=check_forjay, z=7, stackpos=253} room_forja = getThingfromPos(forjapos ) if room_forja.itemid == 0 then doTeleportThing(cid, fromPosition, true) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) doPlayerSendCancel(cid,"Espere o Jogador sair da forja.") return TRUE end end end Link para o comentário https://xtibia.com/forum/topic/179061-maximo-de-players-em-uma-area-script-do-vodkart/#findComment-1185204 Compartilhar em outros sites More sharing options...
othereality 46 Postado Janeiro 25, 2012 Autor Share Postado Janeiro 25, 2012 (editado) @mulizeu Obrigado por tentar ajudar, mas é que funciona assim: room_forja.itemid isso(/\) verifica os players que estão na área indicada acima no script. Então a linha: if room_forja.itemid > 0 then Cria a seguinte condição: Se na área indicada tiver mais do que ninguém(zero) então: Ai o que vem a seguir impede o player de passar pelo tile. fazendo com que só tenha um player por vez na sala. até ai está funcionando. O problema é que tentei alterar para: if room_forja.itemid > 3 then Criando a seguinte condição: Se na área indicada tiver mais do que 3 players(ou seja até 4) então: ... Não funcionou o script parou de limitar os player na área. Entende?! Editado Janeiro 25, 2012 por OtheReality Link para o comentário https://xtibia.com/forum/topic/179061-maximo-de-players-em-uma-area-script-do-vodkart/#findComment-1185235 Compartilhar em outros sites More sharing options...
Demonbholder 420 Postado Janeiro 25, 2012 Share Postado Janeiro 25, 2012 (editado) coloca uma variável e vai aumentando ela cada vez que acha um player, ai cada vez que achar um player vc faz uma checagem se a variável ta >= 4 e pronto. obs: não ta faltando uns ends ai no seu script? '-' Editado Janeiro 25, 2012 por Demonbholder Link para o comentário https://xtibia.com/forum/topic/179061-maximo-de-players-em-uma-area-script-do-vodkart/#findComment-1185246 Compartilhar em outros sites More sharing options...
othereality 46 Postado Janeiro 25, 2012 Autor Share Postado Janeiro 25, 2012 kkk é ta faltando mesmo, aqui ta certinho é que eu peguei pela metade... function onStepIn(cid, item, position, fromPosition) if (item.actionid == 13731) then for check_forjax = 217,223 do -- check X começo e final da sala for check_forjay = 64,65 do -- check Y começo e final da sala forjapos = {x=check_forjax, y=check_forjay, z=7, stackpos=253} room_forja = getThingfromPos(forjapos ) if room_forja.itemid == 0 then doTeleportThing(cid, fromPosition, true) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) doPlayerSendCancel(cid,"Espere o Jogador sair da forja.") return TRUE end end end end return TRUE end agora acho que ta certinho né? se pode fazer pra mim? a alteração que você falou? To aprende ainda de script eu consigo interpretar e dar umas editadas mas fazer ainda não... Link para o comentário https://xtibia.com/forum/topic/179061-maximo-de-players-em-uma-area-script-do-vodkart/#findComment-1185251 Compartilhar em outros sites More sharing options...
Demonbholder 420 Postado Janeiro 25, 2012 Share Postado Janeiro 25, 2012 function onStepIn(cid, item, position, fromPosition) if (item.actionid == 13731) then a = 0 for check_forjax = 217,223 do -- check X começo e final da sala for check_forjay = 64,65 do -- check Y começo e final da sala forjapos = {x=check_forjax, y=check_forjay, z=7, stackpos=253} room_forja = getThingfromPos(forjapos ) if room_forja.itemid == 0 then a = a +1 if a >= 4 then doTeleportThing(cid, fromPosition, true) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) doPlayerSendCancel(cid,"Espere o Jogador sair da forja.") return TRUE end end end end end return TRUE end Tenta assim. Link para o comentário https://xtibia.com/forum/topic/179061-maximo-de-players-em-uma-area-script-do-vodkart/#findComment-1185263 Compartilhar em outros sites More sharing options...
othereality 46 Postado Janeiro 25, 2012 Autor Share Postado Janeiro 25, 2012 @Demonbholder function onStepIn(cid, item, position, fromPosition) if (item.actionid == 23036) then a = 0 for check_forjax = 1035,1041 do -- check X começo e final da sala for check_forjay = 1023,1027 do -- check Y começo e final da sala forjapos = {x=check_forjax, y=check_forjay, z=7, stackpos=253} room_forja = getThingfromPos(forjapos ) if room_forja.itemid == 0 then a = a +1 if a >= 4 then doTeleportThing(cid, fromPosition, true) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) doPlayerSendCancel(cid,"já tem quatro jogadores na Dungeon.") return TRUE end end end end end return TRUE end Eu só alterei as positions, a actionid e a frase do sendcancel. Não deu certo mesmo não tendo ninguém ele fala que já ta cheio =/ Link para o comentário https://xtibia.com/forum/topic/179061-maximo-de-players-em-uma-area-script-do-vodkart/#findComment-1185267 Compartilhar em outros sites More sharing options...
bonazza20 2 Postado Janeiro 25, 2012 Share Postado Janeiro 25, 2012 (editado) function onStepIn(cid, item, position, fromPosition) for x = 1035, 1041 do for y = 1023, 1027 do local m = getTopCreature({x=x, y=y, z=7}).uid if m ~= 0 and isPlayer(m) then doTeleportThing(cid, fromPosition, true) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) doPlayerSendCancel(cid,"Espere o Jogador sair da forja.") end end end return TRUE end Editado Janeiro 25, 2012 por GeBonazza Link para o comentário https://xtibia.com/forum/topic/179061-maximo-de-players-em-uma-area-script-do-vodkart/#findComment-1185352 Compartilhar em outros sites More sharing options...
othereality 46 Postado Janeiro 25, 2012 Autor Share Postado Janeiro 25, 2012 @GeBonazza Mas eu quero que de para entrar até 4 player! Sei que se veio pelo outro tópico, mas da uma olhada no primeiro post aqui desse... Link para o comentário https://xtibia.com/forum/topic/179061-maximo-de-players-em-uma-area-script-do-vodkart/#findComment-1185358 Compartilhar em outros sites More sharing options...
bonazza20 2 Postado Janeiro 25, 2012 Share Postado Janeiro 25, 2012 function onStepIn(cid, item, position, fromPosition) for x = 1035, 1041 do for y = 1023, 1027 do local m = getTopCreature({x=x, y=y, z=7}).uid if isPlayer(m) and m >= 4 then doTeleportThing(cid, fromPosition, true) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) doPlayerSendCancel(cid,"existe jogadores fazendo a quest.") end end end return TRUE end Link para o comentário https://xtibia.com/forum/topic/179061-maximo-de-players-em-uma-area-script-do-vodkart/#findComment-1185413 Compartilhar em outros sites More sharing options...
othereality 46 Postado Janeiro 25, 2012 Autor Share Postado Janeiro 25, 2012 Veio lê o tópico ai por favor... Já tentei assim, não funciona. Link para o comentário https://xtibia.com/forum/topic/179061-maximo-de-players-em-uma-area-script-do-vodkart/#findComment-1185436 Compartilhar em outros sites More sharing options...
Vinc 101 Postado Janeiro 25, 2012 Share Postado Janeiro 25, 2012 (editado) tenta usa a função Getuidsinarea(Extr1, Extr2) acho que ela vai servi bem para isso http://www.xtibia.co...reaextr1-extr2/ tenta usa ela assim Extr1 = ({x = 1035, y = 1023, z = 7 }) Extr2 = ({ x =1041, y = 1027, z = 7 }) local L = 0 local I = 0 R = Getuidsinarea(Extr1, Extr2) while L <= #R do L = L + 1 if isPlayer(R[L]) then I = I + 1 end end acho que isso deve funcionar pra verificar os players,vol almoça depois eu volto(apenas lempbrado isso seria apenas para verificar quantos players tem la) Editado Janeiro 25, 2012 por lordbug99 Link para o comentário https://xtibia.com/forum/topic/179061-maximo-de-players-em-uma-area-script-do-vodkart/#findComment-1185447 Compartilhar em outros sites More sharing options...
othereality 46 Postado Janeiro 25, 2012 Autor Share Postado Janeiro 25, 2012 Ficaria assim? function onStepIn(cid, item, position, fromPosition) Extr1 = ({x = 1035, y = 1023, z = 7 }) Extr2 = ({ x =1041, y = 1027, z = 7 }) local L = 0 local I = 0 R = Getuidsinarea(Extr1, Extr2) While L <= #R do L = L + 1 if isPlayer(R[L]) then I = I + 1 if I >= 4 then doTeleportThing(cid, fromPosition, true) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) doPlayerSendCancel(cid,"existe jogadores fazendo a quest.") else doPlayerSendText(cid, 23, "Seja rapido,mas tome cuidado!") end end end end return TRUE end deu esse erro: [25/01/2012 13:36:41] [Error - LuaScriptInterface::loadFile] data/movements/scripts/cha1tp2.lua:8: '=' expected near 'L' [25/01/2012 13:36:41] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/cha1tp2.lua) [25/01/2012 13:36:41] data/movements/scripts/cha1tp2.lua:8: '=' expected near 'L' Link para o comentário https://xtibia.com/forum/topic/179061-maximo-de-players-em-uma-area-script-do-vodkart/#findComment-1185452 Compartilhar em outros sites More sharing options...
Vinc 101 Postado Janeiro 25, 2012 Share Postado Janeiro 25, 2012 (editado) sauashasuasusahus tinha posto while com letra maiuscula ja corrigi la edit seu script tem um end a mais Editado Janeiro 25, 2012 por lordbug99 Link para o comentário https://xtibia.com/forum/topic/179061-maximo-de-players-em-uma-area-script-do-vodkart/#findComment-1185454 Compartilhar em outros sites More sharing options...
Demonbholder 420 Postado Janeiro 25, 2012 Share Postado Janeiro 25, 2012 cara, é maior que 0 function onStepIn(cid, item, position, fromPosition) if (item.actionid == 23036) then a = 0 for check_forjax = 1035,1041 do -- check X começo e final da sala for check_forjay = 1023,1027 do -- check Y começo e final da sala forjapos = {x=check_forjax, y=check_forjay, z=7, stackpos=253} room_forja = getThingfromPos(forjapos ) if room_forja.uid > 0 then a = a +1 if a >= 4 then doTeleportThing(cid, fromPosition, true) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) doPlayerSendCancel(cid,"já tem quatro jogadores na Dungeon.") return TRUE end end end end end return TRUE end Tenta assim. Link para o comentário https://xtibia.com/forum/topic/179061-maximo-de-players-em-uma-area-script-do-vodkart/#findComment-1185456 Compartilhar em outros sites More sharing options...
Posts Recomendados