Ir para conteúdo

Featured Replies

  • Respostas 65
  • Visualizações 11.6k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • isso que vc quer é exatamente o que é o sistema. Se você separar bem as salas os players sempre vão achar que estão na mesma sala isolados dos outros. A diferença é que nesse aqui vc ainda precisa faz

  • 1- Não, a menos que vc edite a função isWalkable 2- a distancia é a partir da posição que o player irá ficar até a outra posição que o player irá ficar. Pensa assim: se não houvessem obstáculos, qn

  • local position = {x = 156, y = 45, z = 6} -- posicao da primeira pos (linha 1 coluna 1) local config = { distX= 12, -- distancia em X entre cada sala (de uma mesma linha) distY= 9, -- distancia em

Posted Images

Postado
  • Autor

amigo vc provavelmente errou alguma configuração, a unica forma de dar callstack overflow é qnd vc sair ele te teleportar pro teleporte de entrada e a entrada te levar pro teleporte de saída. Aí vc entra e fica saindo e entrando infinito

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Postado

 

 

Como faço para nascer 4 trainers nesta area ?

Screenshot_4.png

 

movements/scripts/trainertp.lua: 

 

 

 

 


local position = {x = 389, y = 134, z = 7} -- posicao da primeira pos (linha 1 coluna 1)

local config = {
    distX= 12, -- distancia em X entre cada sala (de uma mesma linha)
    distY= 9, -- distancia em Y entre cada sala (de uma mesma coluna)
    rX= 2, -- numero de colunas
    rY= 2 -- numero de linhas
}

local storage = 18481 -- storage que salva a ultima vez que o player entrou (pra evitar spams)

local function isWalkable(pos, creature, proj, pz)-- by Nord -- só adicione se vc já não tiver ela
    if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end
    if getTopCreature(pos).uid > 0 and creature then return false end
    if getTileInfo(pos).protection and pz then return false, true end
    local n = not proj and 3 or 2
    for i = 0, 255 do
        pos.stackpos = i
        local tile = getTileThingByPos(pos)
        if tile.itemid ~= 0 and not isCreature(tile.uid) then
            if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then
                return false
            end
        end
    end
    return true
end  

local function check_disponivel(npos)
    if isWalkable(npos, true, true) then
        return true
    end
return false
end

local function countdown(pos, Arraypos)
    if not check_disponivel(pos) then
        for lugares = 1, #Arraypos do                
            creature = getTopCreature(Arraypos[lugares]).uid    
            if not isCreature(creature)then                     
                doCreateMonster("Trainer Android", Arraypos[lugares])
                doSendAnimatedText(Arraypos[lugares], "GO!!", TEXTCOLOR_ORANGE)
                doSendMagicEffect(Arraypos[lugares], 10)
            end
        end
    end
end

local function fazQualquerCoisa(cid, pos, i, j) -- isso é o coração do nosso script, nao mexa nisso
    j = j or 0
    p = i or 0
    if p >= config.rX then
        p = 0
        j = j < config.rY -1 and j + 1 or false
    end
    if j then
        posi = {x = pos.x + ( p * config.distX), y = pos.y + (j * config.distY), z = pos.z}
        if check_disponivel(posi) then
            doTeleportThing(cid, posi)
            doSendMagicEffect(posi, 10)
            countdown(posi, {{x = posi.x - 1, y = posi.y + 1, z = posi.z}, {x = posi.x + 1 , y = posi.y + 1, z = posi.z},
            {x = posi.x - 1, y = posi.y - 1, z = posi.z}, {x = posi.x + 1 , y = posi.y - 1, z = posi.z}})
        else
            fazQualquerCoisa(cid, pos, p + 1, j)
        end
    else
        doPlayerSendCancel(cid, "Couldn't find any position for you right now.")
    end
end

function onStepIn(cid, item, pos, lastPos, fromPos, toPos, actor)
    if getPlayerStorageValue(cid, storage) - os.time() <= 0 then
        fazQualquerCoisa(cid, position)
    else
        doTeleportThing(cid, fromPos)
        doPlayerSendCancel(cid, "You gotta wait a few seconds before you can enter trainning room again")
    end
return true
end

 

 

 

movements/scripts/trainertp2.lua: 

 

 

       

 


local npos = {x = 399, y = 489, z = 7} -- posição que ele vai ao sair da sala
local storage = 18481 -- storage que salva a ultima vez que o player entrou (pra evitar spams)

function onStepIn(cid, item, pos, lastPos, fromPos, toPos, actor)
    ArrayPos = {{x = fromPos.x - 1, y = fromPos.y + 1, z = fromPos.z}, {x = fromPos.x + 1 , y = fromPos.y + 1, z = fromPos.z},
                {x = fromPos.x - 1, y = fromPos.y - 1, z = fromPos.z}, {x = fromPos.x + 1 , y = fromPos.y - 1, z = fromPos.z}}
    for _, pos in ipairs(ArrayPos) do
        creature = getTopCreature(pos).uid    
        if isMonster(creature)then
            doSendMagicEffect(getThingPos(creature), 14)
            doRemoveCreature(creature)
        end    
    end
    doTeleportThing(cid, npos)
    doPlayerSetStorageValue(cid, storage, os.time() + 0)
return true
end

 

 

 

Resultado

Screenshot_7.png

Editado por Kramer
Resolvi minha própria duvida e compartilhei com os membros. (veja o histórico de edições)

function onLove()
if getPlayerTrueLove(girlfriend) then
doPlayerBeHappy(cid, true)
doRemoveVirginity(cid, true)
else
doSendCancel(cid,"you do not know how good it feels to be loved")
end end

;)

 

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo