Ir para conteúdo

Zabim

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    Zabim deu reputação a jefersonzc em [pedido] Exit no-logout zones   
    Mano, dá uma olhada no meu post. Eu precisava de uma parada parecida e tive que fazer do zero.
    Você vai ter modificar algumas coisas a seu gosto, mas basicamente, vc precisa checar se o ip do char é igual a 0. 
    E cuidado com isso pq se o cara der quit durante uma batalha pvp, ele seria kickado tbm, por isso eu julguei importante definir a room onde o char levará o kick. Em qualquer outro lugar do mapa ele não tomaria esse kick.
     
     
  2. Gostei
    Zabim deu reputação a Storm em Ajuda com script alavanca criar monstro   
    @Zabim Ta aqui uma function que, com base na fromPos e na toPos, insere num array todas as posições que são andáveis.
    function getWalkablesPositions(fromPos, toPos) local walks_pos = {} for z = fromPos.z, toPos.z do for y = fromPos.y, toPos.y do for x = fromPos.x, toPos.x do local pos = {x = x, y = y, z = z} if isWalkable(pos) then table.insert(walk_pos, pos) end end end end return walks_pos end Não se esqueça de adicionar na sua LIB a function isWalkable(pos)

    Depois disso, é só fazer um math.random dentro do array retornado pela função na função que cria o monstro. 
  3. Gostei
    Zabim deu reputação a WooX em Ajuda com script alavanca criar monstro   
    Testa ai.
     
     
  4. Gostei
    Zabim deu reputação a Adventure em Ajuda com script alavanca criar monstro   
  5. Curtir
    Zabim deu reputação a Danyel Varejao em Ajuda com script da annihilator   
    local room = { -- room with demons fromX = 33229, fromY = 31697, fromZ = 14, toX = 33224, toY = 31697, toZ = 14 } local monster_pos = { [1] = {pos = {33224, 31695, 14}, monster = "Demon"}, [2] = {pos = {33226, 31695, 14}, monster = "Demon"}, [3] = {pos = {33228, 31697, 14}, monster = "Demon"}, [4] = {pos = {33229, 31697, 14}, monster = "Demon"}, [5] = {pos = {33227, 31699, 14}, monster = "Demon"}, [6] = {pos = {33225, 31699, 14}, monster = "Demon"} } local monster_area = { area = { topLeftPos = {x = 33224, y = 31695, z = 14}, bottomRightPos = {x = 33250, y = 31750, z = 12}, }, monsters = { {name = "Fire Elemental", count = 5}, {name = "Hellfire Fighter", count = 2}, } } local players_pos = { {x = 33224, y =31671, z = 13, stackpos = 253}, {x = 33223, y =31671, z = 13, stackpos = 253}, {x = 33222, y =31671, z = 13, stackpos = 253}, {x = 33221, y =31671, z = 13, stackpos = 253} } local new_player_pos = { {x = 33227, y = 31697, z = 14}, {x = 33226, y = 31697, z = 14}, {x = 33225, y = 31697, z = 14}, {x = 33224, y = 31697, z = 14} } local playersOnly = "no" local questLevel = 101 function onUse(cid, item, fromPosition, itemEx, toPosition) local all_ready, monsters, player, level = 0, 0, {}, 0 if item.itemid == 1945 then for i = 1, #players_pos do table.insert(player, 0) end for i = 1, #players_pos do player = getThingfromPos(players_pos) if player.itemid > 0 then if string.lower(playersOnly) == "yes" then if isPlayer(player.uid) == TRUE then all_ready = all_ready+1 else monsters = monsters+1 end else all_ready = all_ready+1 end end end if all_ready == #players_pos then for i = 1, #players_pos do player = getThingfromPos(players_pos) if isPlayer(player.uid) == TRUE then if getPlayerLevel(player.uid) >= questLevel then level = level+1 end else level = level+1 end end if level == #players_pos then if string.lower(playersOnly) == "yes" and monsters == 0 or string.lower(playersOnly) == "no" then for _, area in pairs(monster_pos) do doSummonCreature(area.monster,{x=area.pos[1],y=area.pos[2],z=area.pos[3]}) end for i = 1, #monster_area.monsters do local PosX = math.random(monster_area.area.topLeftPos.x, monster_area.area.bottomRightPos.x) local PosY = math.random(monster_area.area.topLeftPos.y, monster_area.area.bottomRightPos.y) local PosZ = monster_area.area.topLeftPos.z local position = {x = PosX, y = PosY, z = PosZ} for k = 1, monster_area.monsters[i].count do doSummonCreature(monster_area.monsters[i].name, position, false, true) end end for i = 1, #players_pos do doSendMagicEffect(players_pos, CONST_ME_POFF) doTeleportThing(player.uid, new_player_pos, FALSE) doSendMagicEffect(new_player_pos, CONST_ME_ENERGYAREA) doTransformItem(item.uid,1946) end else doPlayerSendTextMessage(cid,19,"Only players can do this quest.") end else doPlayerSendTextMessage(cid,19,"All Players have to be level "..questLevel.." to do this quest.") end else doPlayerSendTextMessage(cid,19,"You need "..table.getn(players_pos).." players to do this quest.") end elseif item.itemid == 1946 then local player_room = 0 for x = room.fromX, room.toX do for y = room.fromY, room.toY do for z = room.fromZ, room.toZ do local pos = {x=x, y=y, z=z,stackpos = 253} local thing = getThingfromPos(pos) if thing.itemid > 0 then if isPlayer(thing.uid) == TRUE then player_room = player_room+1 end end end end end if player_room >= 1 then doPlayerSendTextMessage(cid,19,"There is already a team in the quest room.") elseif player_room == 0 then for x = room.fromX, room.toX do for y = room.fromY, room.toY do for z = room.fromZ, room.toZ do local pos = {x=x, y=y, z=z,stackpos = 253} local thing = getThingfromPos(pos) if thing.itemid > 0 then doRemoveCreature(thing.uid) end end end end doTransformItem(item.uid,1945) end end return TRUE end  

Informação Importante

Confirmação de Termo