Ir para conteúdo
  • 0

Script meio complicado.


SamueLGuedes

Pergunta

Iaew galera tudo bem, hj vim pedi uns script que eu acho que e meio complicado. e para pokemon.

 

1º o primeiro eo seguinte, eu queria um script que quando passase pelo teleport, ou piso. ele nao pude-se mais usar Fly nem surf, nem ride. isso seria para outland, para os players nao voarem.

 

2º eu queria saber se tem como incrementar esse script do zipter < acho que e esse o nick dele nao me lembro. que e esse aqui:

 

local function getRecorderPlayer(pos, cid)
local ret = 0
if cid and isPosEqual(getThingPos(cid), pos) then
return cid
end
local s = {}
s.x = pos.x
s.y = pos.y
s.z = pos.z
for a = 0, 255 do
s.stackpos = a
local b = getTileThingByPos(s).uid
if b > 1 and isPlayer(b) and getCreatureOutfit(b).lookType ~= 814 then
ret = b
end
end
return ret
end

------------[[ Configurações. ]]------------
local cfg = {
{1, {x = 1056, y = 1056, z = 7}, {x = 1056, y = 1057, z = 7}}, --{valor da storage do clan, posição que o jogador deve ficar, posição para qual o mesmo será teleportado},
{2, {x = 1057, y = 1056, z = 7}, {x = 1056, y = 1058, z = 7}},
{3, {x = 1058, y = 1056, z = 7}, {x = 1056, y = 1059, z = 7}},
{4, {x = 1059, y = 1056, z = 7}, {x = 1056, y = 1060, z = 7}},
{5, {x = 1060, y = 1056, z = 7}, {x = 1056, y = 1061, z = 7}},
{6, {x = 1061, y = 1056, z = 7}, {x = 1056, y = 1062, z = 7}},
{7, {x = 1062, y = 1056, z = 7}, {x = 1056, y = 1063, z = 7}},
{8, {x = 1063, y = 1056, z = 7}, {x = 1056, y = 1064, z = 7}},
{9, {x = 1064, y = 1056, z = 7}, {x = 1056, y = 1065, z = 7}},
}

local rank = {
need = true, --Precisará estar em x rank? [true/sim] [false/não]
what_rank = 5, --Se colocar true acima, configure aqui o rank necessário.
}
-----------[[ Fim das configurações. ]]---------

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

for a, b in pairs(cfg) do
local pos = getRecorderPlayer(b[2])
if not isPlayer(pos) then
return doPlayerSendCancel(cid, "One or more players aren't in the correct clan's place.")
elseif rank.need == true then
if getPlayerStorageValue(pos, 862281) <= (rank.what_rank - 1) then
return doPlayerSendCancel(cid, "One or more players aren't at rank "..rank.what_rank..".")
end
end
end

for c, d in pairs(cfg) do
local pos = getRecorderPlayer(d[2])
doTeleportThing(pos, d[3])
doPlayerSendTextMessage(pos, 27, "Good luck!")
doSendMagicEffect(getThingPos(pos), 14)
end
return true
end

 

 

tipo assim que quando puxa-se a alavanca sumona-se pokemons no local que os players estao indo. e tipo assim que tivesse tempo para eles aparecerem. tipo eu puxei a alavanca, ai passa 5 segundos começa a aparecer pokemons.

 

3º que quando terminasse de matar os pokes, ganha-se uma storage para poder puxar a proxima alavanca.

 

eu acho que e bem dificil de fazer esses scripts, mais sei la se alguem puder ajudar, eu agradeçeria muito. obrigado e abraçs. aguardando comentarios.

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Ok vo testar daki a poko, ai eu mando resposta =D.


Tipo assim, eu cliquei pra ir na quest, tudo bem apareceu os pokes ea alavanca, OBS: a alavanca aparece ao mesmo tempo que os pokes, poderia colocar pra aparecer quando mata-se?, continuando apareceu a alavanca, eu cliquei nela, ai os pokes apareceram de novo, mas a proxima alavanca nao. e normal isso?

Link para o comentário
Compartilhar em outros sites

  • 0

Como assim? A alavanca está aparecendo ao mesmo tempo que os pokémons? Ué, aqui tá funcionando do jeito que programei: após matar a wave de pokémons, uma alavanca aparece. 5 segundos após clicar nela, aparecerá a nova wave. E assim vai. Só que na última wave, a alavanca criada não terá uso.

Está usando qual base? PDA?

De qualquer maneira, só você confirmar se está ocorrendo esse erro (não sei como, já que está tudo programado certo, e, até porquê, como já disse, aqui está perfeito), que faço uma proteçãozinha.

Editado por zipter98
Link para o comentário
Compartilhar em outros sites

  • 0

Tipo assim, eu uso PDA, ai quando eu clico na alavanca para todo mundo ir na quest. aparece os dois pokes por primeiro, e aparece a alavanca junto com eles, ai eu mato os pokes. ai eu clico na alavanca de novo, e nao acontece nada.

Link para o comentário
Compartilhar em outros sites

  • 0

Resolvido pelo Skype.

 

Caso os códigos que passei anteriormente estejam funcionando, não precisa alterar. Altere apenas se NÃO estiver.

Vale relembrar que a "primeira versão" dos códigos se encontram em meu primeiro comentário desta página, juntamente com a explicação. Estão todos editados, da maneira que testei em meu servidor.

 

Código de entrada na Outland Main Quest:

 

 

function checkMonsters(area1, area2, pos, aid)
local monstros = getMonstersInArea(area1, area2)
local continue = true
    if #monstros < 1 then
        continue = false
        local a = doCreateItem(1945, 1, pos)
        doItemSetAttribute(a, "aid", aid)
        doSendMagicEffect(pos, 14)
    end
    if continue == true then
        addEvent(checkMonsters, 1000, area1, area2, pos, aid)
    end
end   
function getMonstersInArea(area1, area2)
local monsters = {} 
    for x = area1.x, area2.x do
        for y = area1.y, area2.y do
            for z = area1.z, area2.z do
                monsterpos = {x=x,y=y,z=z,stackpos=253}
                monster = getThingFromPos(monsterpos)
                if ehMonstro(monster.uid) then
                    table.insert(monsters, monster.uid)
                end
            end
        end
    end
    return monsters
end
local function getRecorderPlayer(pos, cid)
local ret = 0
if cid and isPosEqual(getThingPos(cid), pos) then
return cid
end
local s = {}
s.x = pos.x
s.y = pos.y
s.z = pos.z
for a = 0, 255 do
s.stackpos = a
local b = getTileThingByPos(s).uid
if b > 1 and isPlayer(b) and getCreatureOutfit(b).lookType ~= 814 then
ret = b
end
end
return ret
end
 
------------[[ Configurações. ]]------------
local cfg = {
{1, {x = 1056, y = 1056, z = 7}, {x = 1056, y = 1057, z = 7}}, --{valor da storage do clan, posição que o jogador deve ficar, posição para qual o mesmo será teleportado},
{2, {x = 1057, y = 1056, z = 7}, {x = 1056, y = 1058, z = 7}},
{3, {x = 1058, y = 1056, z = 7}, {x = 1056, y = 1059, z = 7}},
{4, {x = 1059, y = 1056, z = 7}, {x = 1056, y = 1060, z = 7}},
{5, {x = 1060, y = 1056, z = 7}, {x = 1056, y = 1061, z = 7}},
{6, {x = 1061, y = 1056, z = 7}, {x = 1056, y = 1062, z = 7}},
{7, {x = 1062, y = 1056, z = 7}, {x = 1056, y = 1063, z = 7}},
{8, {x = 1063, y = 1056, z = 7}, {x = 1056, y = 1064, z = 7}},
{9, {x = 1064, y = 1056, z = 7}, {x = 1056, y = 1065, z = 7}},
}
 
local rank = {
need = true, --Precisará estar em x rank? [true/sim] [false/não]
what_rank = 5, --Se colocar true acima, configure aqui o rank necessário.
}
-----------[[ Fim das configurações. ]]---------
 
function onUse(cid, item, frompos, item2, topos)
      
    for a, b in pairs(cfg) do
        local pos = getRecorderPlayer(b[2])
        if not isPlayer(pos) then
            return doPlayerSendCancel(cid, "One or more players aren't in the correct clan's place.")
        elseif rank.need == true then
            if getPlayerStorageValue(pos, 862281) <= (rank.what_rank - 1) then
                return doPlayerSendCancel(cid, "One or more players aren't at rank "..rank.what_rank..".")
            end
        end
    end
 
    for c, d in pairs(cfg) do
        local pos = getRecorderPlayer(d[2])
        doTeleportThing(pos, d[3])
        doPlayerSendTextMessage(pos, 27, "Good luck!")
        doSendMagicEffect(getThingPos(pos), 14)
        addEvent(function()
            local monsters = {{"Pikachu", {x = 1050, y = 1058, z = 7}}, {"Magikarp", {x = 1051, y = 1058, z = 7}}}
            local posi = {x = 1049, y = 1054, z = 7}       --Coordenadas da posição superior esquerda da área.
            local posis = {x = 1057, y = 1061, z = 7}      --Coordenadas da posição inferior direita da área.
            local pos = {x = 1053, y = 1058, z = 7}        --Onde a alavanca será criada.
            for i = 1, #monsters do
                doCreateMonster(monsters[i][1], monsters[i][2])
            end
        end, 5*1000)
        addEvent(function()
            local posi = {x = 1049, y = 1054, z = 7}       --Coordenadas da posição superior esquerda da área.
            local posis = {x = 1057, y = 1061, z = 7}      --Coordenadas da posição inferior direita da área.
            local pos = {x = 1053, y = 1058, z = 7}        --Onde a alavanca será criada.
            checkMonsters(posi, posis, pos, 19381)
        end, 5500)
    end
    return true
end

 

 

Código das waves 2 em diante:

function checkMonsters(area1, area2, pos, aid)
local monstros = getMonstersInArea(area1, area2)
local continue = true
    if #monstros < 1 then
        continue = false
        local a = doCreateItem(1945, 1, pos)
        doItemSetAttribute(a, "aid", aid)
        doSendMagicEffect(pos, 14)
    end
    if continue == true then
        addEvent(checkMonsters, 1000, area1, area2, pos, aid)
    end
end   
function getMonstersInArea(area1, area2)
local monsters = {} 
    for x = area1.x, area2.x do
        for y = area1.y, area2.y do
            for z = area1.z, area2.z do
                monsterpos = {x=x,y=y,z=z,stackpos=253}
                monster = getThingFromPos(monsterpos)
                if ehMonstro(monster.uid) then
                    table.insert(monsters, monster.uid)
                end
            end
        end
    end
    return monsters
end
 
function onUse(cid, item, frompos, item2, topos)
 
local aids = {19381, 19382, 19383, 19384}   --Action IDs.
local posi = {x = 1049, y = 1054, z = 7}       --Coordenadas da posição superior esquerda da área.
local posis = {x = 1057, y = 1061, z = 7}      --Coordenadas da posição inferior direita da área.
local pos = {x = 1053, y = 1058, z = 7}         --Onde a alavanca será criada.
 
    if not isInArray(aids, item.actionid) then return true end
local new_aid = item.actionid + 1
 
    if item.actionid == aids[1] then
        local monsters = {{"Pikachu", {x = 1050, y = 1058, z = 7}}, {"Magikarp", {x = 1051, y = 1058, z = 7}}, {"Caterpie", {x = 1052, y = 1058, z = 7}}}
        doRemoveItem(item.uid, 1)
        addEvent(function()
            for i = 1, #monsters do
                doCreateMonster(monsters[i][1], monsters[i][2])
            end
        end, 5*1000)
        addEvent(function()
            checkMonsters(posi, posis, pos, new_aid)
        end, 5500)
    elseif item.actionid == aids[2] then
        local monsters = {{"Pikachu", {x = 1050, y = 1058, z = 7}}, {"Magikarp", {x = 1051, y = 1058, z = 7}}, {"Caterpie", {x = 1052, y = 1058, z = 7}}, {"Metapod", {x = 1053, y = 1058, z = 7}}}
        doRemoveItem(item.uid, 1)
        addEvent(function()
            for i = 1, #monsters do
                doCreateMonster(monsters[i][1], monsters[i][2])
            end
        end, 5*1000)
        addEvent(function()
            checkMonsters(posi, posis, pos, new_aid)
        end, 5500)
    elseif item.actionid == aids[3] then
        local monsters = {{"Pikachu", {x = 1050, y = 1058, z = 7}}, {"Magikarp", {x = 1051, y = 1058, z = 7}}, {"Caterpie", {x = 1052, y = 1058, z = 7}}, {"Metapod", {x = 1053, y = 1058, z = 7}}, {"Butterfree", {x = 1054, y = 1058, z = 7}}}
        doRemoveItem(item.uid, 1)
        addEvent(function()
            for i = 1, #monsters do
                doCreateMonster(monsters[i][1], monsters[i][2])
            end
        end, 5*1000)
        addEvent(function()
            checkMonsters(posi, posis, pos, new_aid)
        end, 5500)
    elseif item.actionid == aids[4] then
        local monsters = {{"Pikachu", {x = 1050, y = 1058, z = 7}}, {"Magikarp", {x = 1051, y = 1058, z = 7}}, {"Caterpie", {x = 1052, y = 1058, z = 7}}, {"Metapod", {x = 1053, y = 1058, z = 7}}, {"Butterfree", {x = 1054, y = 1058, z = 7}}, {"Mewtwo", {x = 1055, y = 1058, z = 7}}}
        doRemoveItem(item.uid, 1)
        addEvent(function()
            for i = 1, #monsters do
                doCreateMonster(monsters[i][1], monsters[i][2])
            end
        end, 5*1000)
        addEvent(function()
            checkMonsters(posi, posis, pos, new_aid)
        end, 5500)
    end
    return true
end

Editado por zipter98
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...