Ir para conteúdo

Dilooow

Visconde
  • Total de itens

    255
  • Registro em

  • Última visita

  • Dias Ganhos

    3

Posts postados por Dilooow

  1. me ajudem com esse scripte tou tentando por efeito ao andar com uso desse equipamento o player soltar logo atras dele alguns efeito igual nas bike do otpokemon

    modelo tfs pda padrao tfs 0.3. 6 

     

     

    codigo \/

     

     

     

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

    -- if getPlayerStorageValue(cid, 32001) >= 1 then -- verifica a bike
     -- doPlayerSendCancel(cid, "Nao pode usar o robo estando na bike.")
    -- return true
    -- end

    if getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1 then   -- verifica o fly
     doPlayerSendCancel(cid, "Nao pode usar o robo estando no fly.")
    return true
    end

    local config = {
    robo = {lookType = 48},
    cooldown = 1,  --- tempo entre um uso e outro
    speed = 400,
    health = 1000,
    stor= 243656
    }

    if os.time() - getPlayerStorageValue(cid, 55695) >= config.cooldown then
          setPlayerStorageValue(cid, 55695, os.time())

      if getPlayerStorageValue(cid, config.stor) == 1 then
         setPlayerStorageValue(cid, config.stor, 0)
         doRemoveCondition(cid, CONDITION_OUTFIT)
         doSendAnimatedText(getCreaturePosition(cid), '[ROBO OFF]', 32)
              -- setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)-config.health) -- linha adicionada by crypter
            doRegainSpeed(cid)
         -- doPlayerSendTextMessage(cid, MESSSAGE_STATUS_CONSOLE_ORANGE, 'Voce saiu do robo e perdeu a vida extra.')
                       -- doCreatureAddHealth(cid, getCreatureMaxHealth(cid)-getCreatureHealth(cid))
                     -- onPokeHealthChange(cid) --alterei aki
      else
         doChangeSpeed(cid, config.speed)
         doSetCreatureOutfit(cid, config.robo, -1)
         doSendAnimatedText(getCreaturePosition(cid), '[ROBO ON]', 32)
         -- doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Voce montou no robo e ganhou vida extra.')
         setPlayerStorageValue(cid, config.stor, 1)
              -- setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+config.health)-- linha adicionada by crypter
                  -- doCreatureAddHealth(cid, getCreatureMaxHealth(cid)-getCreatureHealth(cid))
                     -- onPokeHealthChange(cid) --alterei aki
    end
    else
    doPlayerSendCancel(cid, "Aguarde "..(config.cooldown - (os.time() - getPlayerStorageValue(cid, 55695))).." segundos.")
        end
    return true
    end

    --- crypter ---

     

  2. Error - Spell Interface] 
    [11/02/2022 13:29:57] data/spells/scripts/ps/Ember.lua:onCastSpell
    [11/02/2022 13:29:57] Description: 
    [11/02/2022 13:29:57] (luaGetPlayerSlotItem) Player not found

    quando os poke selvagem me ataca aparece isso no console procurei a spells não achei o erro nela não sei pq elata voltando assim

  3. 23 horas atrás, SrNaja disse:

    troca o código da sua lib :
     

    function effectWhenWalking(player_uid, id_effect)
        local player = Player(player_uid)
        if player then
            local player_position = player:getPosition()
            local player_direction = player:getDirection()
            local player_pos_x = player_position.x
            local player_pos_y = player_position.y
            local player_pos_z = player_position.x
            local position = Position(player_pos_x + Config_.back[player_direction].x, player_pos_y + Config_.back[player_direction].y, player_pos_y)
            if position then
                position:sendMagicEffect(id_effect)
                addEvent(effectWhenWalking, 1, player_uid, id_effect)
            end
        end
    end

     

    nada a inda

    1.png

  4. 19 horas atrás, Yan Oliveira disse:

    Olhando o tópico agora eu entendi, e era o que eu imaginei, precisa somente do onStepIn, e não do onStepOut como você colocou no seu. E você também não copiou o código completo, faltou pegar o começo do arquivo onde contém a função principal onStepIn(cid, item, position, fromPosition).

     

    A questão é, o tile que você vai usar para isso, é exclusivamente só para isso ou você vai usar um tile que já usa em outra parte do mapa? Porque se for usar um tile que já está em uso no mapa, aí vai ter que trabalhar com uniqueid, porque se trabalhar com itemid, toda vez que alguém pisar nesse tile, independente da coordenada no mapa, vai cair na trap. Mas por via das dúvidas, vamos trabalhar com uniqueid.

     

    Primeiramente vai no Remere's Map Editor, e procura esse local onde vão ficar as traps no tile, e adicione o seguinte uniqueid para todos os tiles: 19737 (certifique-se de que esse uniqueid já não está sendo usado, se tiver, coloca outro valor).

     

    Agora, vai em Data/Movements/Scripts e crie o arquivo tile_trap.lua (ou outro nome de sua preferência) e adicione o seguinte código dentro:

    local storage = 14678 -- n mexa 
    local time_summon = 1 -- tempo em minutos
    local seconds_remove = 30 -- TEMPO EM SEGUNDOS PARA REMOVER O MONSTRO
    
    local monsters = {  
    	{"cyclops", Position(157, 35, 7)},  
    	{"Demon", Position(=161, 38, 7)},
    	{"Hydra", Position(=155, 38, 7)},
    	{"Dragon", Position(160, 39, 7)}, 
    }
    
    function onStepIn(cid, item, position, fromPosition)
    	if not cid or Game.getStorageValue(storage) >= os.time() then
    		return true
    	end
    
    	local monster_random = math.random(1, #monsters) -- PARA VER QUAL MONSTRO VAI PEGAR DA TABELA ALEATORIAMENTE	  
    	local monster = Game.createMonster(monsters[monster_random][1], monsters[monster_random][2]) -- CRIA O MONSTRO ALEATÓRIO
    	
    	if not monster then
    		return true
    	end	
    	
    	cid:say("Oh my God, it's a trap!")   
    	
    	-- REMOVE O MONSTRO --
    	addEvent(function()
    				if monster then				
    					monster:remove()
    				end				
    			end, seconds_remove * 1000)
    			
    	Game.setStorageValue(storage, os.time() + time_summon * 60) -- SÓ VAI CONTABILIZAR APÓS O MONSTRO SER DERROTADO OU REMOVIDO
    	
    return true
    end

     

    Agora abre o movements.xml e adicione a tag:

    <movevent event="StepIn" uniqueid="19737" script="tile_trap.lua" />

     

    Está pronto! Só testar.

    nada men deu uns erro aqui to usando uma tfs god pota irei apagar os pokemon e usar os monstro de tibia mais msm assim nao ta indo ,

    Lua Script Error: [MoveEvents Interface]
    data/movements/scripts/tile_trap.lua:onStepIn
    data/movements/scripts/tile_trap.lua:13: attempt to compare number with nil
    stack traceback:
            [C]: in function '__le'
            data/movements/scripts/tile_trap.lua:13: in function <data/movements/scripts/tile_trap.lua:12>

    Lua Script Error: [MoveEvents Interface]
    data/movements/scripts/tile_trap.lua:onStepIn
    data/movements/scripts/tile_trap.lua:13: attempt to compare number with nil
    stack traceback:
            [C]: in function '__le'
            data/movements/scripts/tile_trap.lua:13: in function <data/movements/scripts/tile_trap.lua:12>

     

  5. 52 minutos atrás, Yan Oliveira disse:

    Esse erro não tem haver com o código que eu fiz a conversão. Esse erro é que não foi encontrado o script summontile.lua no StepIn e StepOut porque provavelmente o script inteiro do arquivo é o que você passou no post e eu fiz a conversão para TFS 1.2, e como eu havia falado, está incompleto. Ou seja, como não tem as funções StepIn e StepOut, está dando erro ao carregar o arquivo no XML.

     

    Como que esse movements é para funcionar? Ao pisar em um tile (id específico) ou tile com uniqueid é para summonar os monstros? Porque, pelo que entendi, o que você quer só precisa de StepIn.

    seria daqui esse movements , queria um tile sabe aonde eu ponhasse o id do movements e aparecer igual nos tfs 0.3.6 

     

    https://xtibia.com/forum/topic/142014-movements-summon-tile/

  6. 4 horas atrás, Yan Oliveira disse:

    Primeira coisa, a versão da TFS (1.2) é diferente da versão do client (1098), pois o que você quer é código, que é da TFS (servidor).

     

    Esse código está incompleto! Pois de qual função ele é? De qual pasta ele está? Globalevents ou Creaturescripts?

     

    Mas eu vou fazer a migração desse bloco de código para 1.2. Vamos lá! Substitua o código por esse:

    local storage = 14678 -- n mexa 
    local time_summon = 1 -- tempo em minutos
    local seconds_remove = 30 -- TEMPO EM SEGUNDOS PARA REMOVER O MONSTRO
    
    local monsters = {  
    	{"cyclops", Position(157, 35, 7)},  
    	{"Demon", Position(=161, 38, 7)},
    	{"Hydra", Position(=155, 38, 7)},
    	{"Dragon", Position(160, 39, 7)}, 
    }  
    
    	if not cid or Game.getStorageValue(storage) >= os.time() then
    		return true
    	end
    
    	local monster_random = math.random(1, #monsters)
    	  
    	local monster = Game.createMonster(monsters[monster_random][1], monsters[monster_random][2])
    	cid:say("Oh my God, it's a trap!")   
    	
    	-- REMOVE O MONSTRO --
    	addEvent(function()
    				if monster then				
    					monster:remove()
    				end				
    			end, seconds_remove * 1000)
    			
    	Game.setStorageValue(storage, os.time() + time_summon * 60) -- SÓ VAI CONTABILIZAR APÓS O MONSTRO SER DERROTADO OU REMOVIDO		
    
    return true
    end

     

    Adicionei um evento para remover o monstro após 30 segundos se ele não for derrotado.

     

    Teste e veja se dá algum erro.

    ele e um movement

    19 minutos atrás, Dilooow disse:

    ele e um movement

    tive erro aqui 

     

    Error: [MoveEvent::configureMoveEvent] No valid event name StepIn
    [Warning - BaseEvents::loadFromXml] Failed to configure event
    [Warning - Event::checkScript] Event onStepIn not found. scripts/summontile.lua
    [Warning - Event::checkScript] Event onStepIn not found. scripts/summontile.lua
    [Warning - Event::checkScript] Event onStepOut not found. scripts/summontile.lua

     

    testei das duas formas \/?

    <movevent event="StepOut" actionid="14500" script="summontile.lua" />

    <movevent event="StepIn" uniqueid="14500" script="summontile.lua" />

  7. 6 horas atrás, SrNaja disse:
    local delay = 0.1
    local effect = 12 -- id do effect
    local bonusSpeed = 1.2
    local outfitMale = 1315
    local outfitFemale = 1316
    local condition = Condition(CONDITION_OUTFIT)
    condition:setTicks(-1)
    
    function onUse(player, item, fromPosition, target, toPosition, isHotkey)
        if os.time() > player:getStorageValue(storageDelay) then
                   player:setStorageValue(storageDelay, os.time() + delay)
        else
            player:sendCancelMessage(RETURNVALUE_YOUAREEXHAUSTED)
            return true
        end
    
        if fromPosition.x ~= 65535 then
            player:sendCancelMessage("First pick up the bike.")
            return true
        end
    
        if player:getStorageValue(storageRide) == 1 then
            player:sendCancelMessage("Sorry, not possible while on ride.")
            return true
        end
    
        if player:getStorageValue(storageFly) == 1 then
            player:sendCancelMessage("Sorry, not possible while on fly.")
            return true
        end
    
        if player:getStorageValue(storageSurf) > 0 then
            player:sendCancelMessage("Sorry, not possible while on surf.")
            return true
        end
    
        if player:getStorageValue(storageDive) > 0 then
            player:sendCancelMessage("Sorry, not possible while on dive.")
            return true
        end
    
        if player:getStorageValue(storageEvent) > 0 then
            player:sendCancelMessage("Sorry, not possible while on event.")
            return true
        end
    
        if player:getStorageValue(storageBike) > 0 then
            player:removeCondition(CONDITION_OUTFIT)
            player:changeSpeed(player:getBaseSpeed()-player:getSpeed())
            player:setStorageValue(storageBike, -1)
        else
            local delta = player:getSpeed() * bonusSpeed
            if player:getSex() == PLAYERSEX_MALE then outfit = outfitMale else outfit = outfitFemale end
            condition:setOutfit({lookType = outfit})
            player:addCondition(condition)
            player:setStorageValue(storageBike, 1)
            player:changeSpeed(delta)
            effectWhenWalking(player.uid, effect)
        end
    
        return true
    end

     

    Lua Script Error: [Action Interface]
    data/actions/scripts/poke/bike.lua:onUse
    data/lib/core/effectWhenWalking.lua:19: attempt to call method 'sendMagicEffect' (a nil value)
    stack traceback:
            [C]: in function 'sendMagicEffect'
            data/lib/core/effectWhenWalking.lua:19: in function 'effectWhenWalking'
            data/actions/scripts/poke/bike.lua:58: in function <data/actions/scripts/poke/bike.lua:9>

  8. Em 05/02/2022 em 16:11, SrNaja disse:

    coloca a função na lib, uma pergunta você tem o script da bike?, se sim me mande

     

    local delay = 0.1
    local bonusSpeed = 1.2
    local outfitMale = 1315
    local outfitFemale = 1316
    local condition = Condition(CONDITION_OUTFIT)
    condition:setTicks(-1)

    function onUse(player, item, fromPosition, target, toPosition, isHotkey)
        if os.time() > player:getStorageValue(storageDelay) then
                   player:setStorageValue(storageDelay, os.time() + delay)
        else
            player:sendCancelMessage(RETURNVALUE_YOUAREEXHAUSTED)
            return true
        end

        if fromPosition.x ~= 65535 then
            player:sendCancelMessage("First pick up the bike.")
            return true
        end

        if player:getStorageValue(storageRide) == 1 then
            player:sendCancelMessage("Sorry, not possible while on ride.")
            return true
        end

        if player:getStorageValue(storageFly) == 1 then
            player:sendCancelMessage("Sorry, not possible while on fly.")
            return true
        end

        if player:getStorageValue(storageSurf) > 0 then
            player:sendCancelMessage("Sorry, not possible while on surf.")
            return true
        end

        if player:getStorageValue(storageDive) > 0 then
            player:sendCancelMessage("Sorry, not possible while on dive.")
            return true
        end

        if player:getStorageValue(storageEvent) > 0 then
            player:sendCancelMessage("Sorry, not possible while on event.")
            return true
        end

        if player:getStorageValue(storageBike) > 0 then
            player:removeCondition(CONDITION_OUTFIT)
            player:changeSpeed(player:getBaseSpeed()-player:getSpeed())
            player:setStorageValue(storageBike, -1)
        else
            local delta = player:getSpeed() * bonusSpeed
            if player:getSex() == PLAYERSEX_MALE then outfit = outfitMale else outfit = outfitFemale end
            condition:setOutfit({lookType = outfit})
            player:addCondition(condition)
            player:setStorageValue(storageBike, 1)
            player:changeSpeed(delta)
        end

        return true
    end


     

  9. queria converter esse scripte de tfs 0.3.6 para 1.2 versao 1098 quero abrir um global scripte

     

    ( obs se possivel colocar para o monster sumir apos 30 segundos se nao for morto )

     

    local M = {  
    [1] = {"cyclops",{x=157, y=35, z=7}},  
    [2] = {"Demon",{x=161, y=38, z=7}},
    [3] = {"Hydra",{x=155, y=38, z=7}},
    [4] = {"Dragon",{x=160, y=39, z=7}} 
    }  
    
    local storage = 14678 -- n mexa 
    local time_summon = 1 -- tempo em minutos
    
    if not isPlayer(cid) then
    return false
    elseif getGlobalStorageValue(storage) >= os.time() then
    return false
    end
    r = math.random(1, #M)  
    doCreateMonster(M[r][1], M[r][2])
    doCreatureSay(cid, "Oh my god, a trap!", 19)   
    setGlobalStorageValue(storage, os.time()+time_summon*60)   
    return TRUE  
    end
  10. Em 12/01/2022 em 10:31, Mixlortt disse:

    Opa galera tudo certo? 

    Estava precisando de alguma função ou meio de fazer surgir um efeito atrás do player toda vez que ele andar, isso pode ser equipando um anel, clicando em algum item, tanto faz, só precisa ter o efeito atrás do player quando ele andar 

     

    Basicamente seria isso, mas aí é feito por source puxando a outfit como condição para o efeito, e é tfs 0.3.6, creio que exista uma maneira mais fácil em lua para tfs 1.2...

     

    https://imgur.com/a/M5TsNEt

    em quais arquivos vai para fazer isso achei muito interessante?

    Em 13/01/2022 em 19:59, Mixlortt disse:

    Testei aqui amigo

    image.png.48ec308e63352ead0bcf32ab0ed14ec4.png

    passa completo o system e quais pasta vai e tal 

  11. Em 14/04/2012 em 21:15, Vodkart disse:

    inv.lua

     

    local days = {
    ["Sunday"] = {
    ["00:00"] = {nome = "Demon Invasões", pos = {x=185, y=54, z=7}, monster = {"40 Demon", "50 Fire Devil", "4 Orshabaal"}, Time = 15},
    ["21:00"] = {nome = "Dragon Invasões", pos = {x=185, y=54, z=7}, monster = {"100 Dragon"}, Time = 15}
    },
    ["Saturday"] = {
    ["00:00"] = {nome = "Demon Invasões", pos = {x=185, y=54, z=7}, monster = {"40 Demon", "50 Fire Devil", "4 Orshabaal"}, Time = 15},
    ["21:13"] = {nome = "Dragon Invasões", pos = {x=185, y=57, z=7},monster = {"100 Dragon"}, Time = 15}
    }
    }
    function onThink(interval, lastExecution)
    function getDayName()
    local days = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}
    return days[os.date("*t")["wday"]]
    end
    hours = tostring(os.date("%X")):sub(1, 5)         
                   tb = days[getDayName()][hours]
                   if tb then
           function removeCreature()
    for x = ((tb.pos.x)-10), ((tb.pos.x)+10) do
    for y = ((tb.pos.y)-10), ((tb.pos.y)+10) do
    local m = getTopCreature({x=x, y=y, z= tb.pos.z}).uid 
    if m ~= 0 and isMonster(m) then
    doRemoveCreature(m)
    end
    end
    end
    return true
    end
                                   addEvent(removeCreature, tb.Time*60*1000)
                                   doBroadcastMessage(hours .. " - " .. tb.nome .. " Iníciou.")
                                   for _,x in pairs(tb.monster) do
                                                   for s = 1, tonumber(x:match("%d+")) do
                                                                   doSummonCreature(x:match("%s(.+)"), tb.pos)
                                                   end
                                   end
    
                   end
                   return true
    end
     

     

     

    globalevents.xml

     

    <globalevent name="Invasao" interval="60" event="script" value="inv.lua"/>
     

     

    funciona tfs 1.2 1098?

  12. Em 12/10/2017 em 11:09, atakashi disse:

    Gostaria de saber quem vai ser a primeira alma caridosa que vai fazer uma base pokemon 10.41 aqui pro forum?

    Eu serei o primeiro 

    ANOTA AI WWW.POKEZABY.COM

     

    BREVE VAI SUBIR NA NET BASE TFS 1.2

  13. Em 10/07/2020 em 19:29, klbkevinklb disse:

    Fala gente, tudo bem...bom eu to sumido aqui do portal, porém hoje estou de volta com uma coisa para disponibilizar. Muitos ja devem saber, alguns não...a pxg tem um sistema que voce pode pescar de andares mais altos, eu procurei muito pra descobrir e bom encontrei e hjee vou ensinar a voces:

     

    abra o arquivo: actions.cpp/ procure por isso:

     

     

      ReturnValue Actions::canUseFar(const Creature* creature, const Position& toPos, bool checkLineOfSight) 

     

     

    Ela vai estar assim:

     

     

    ReturnValue Actions::canUseFar(const Creature* creature, const Position& toPos, bool checkLineOfSight)
    {
        if(toPos.x == 0xFFFF)
            return RET_NOERROR;
    
        const Position& creaturePos = creature->getPosition();
        if(creaturePos.z > toPos.z)
            return RET_FIRSTGOUPSTAIRS;
    
        if(creaturePos.z < toPos.z)
            return RET_FIRSTGODOWNSTAIRS;
    
        if(!Position::areInRange<7,5,0>(toPos, creaturePos))
            return RET_TOOFARAWAY;
    
        if(checkLineOfSight && !g_game.canThrowObjectTo(creaturePos, toPos))
            return RET_CANNOTTHROW;
    
        return RET_NOERROR;
    
    }
    
    

     

     

    Troque por essa abaixo:

     

    Apague a função toda e coloque isso:

     

     

    ReturnValue Actions::canUseFar(const Creature* creature, const Position& toPos, bool checkLineOfSight)
    {
        if(toPos.x == 0xFFFF)
            return RET_NOERROR;
    
        const Position& creaturePos = creature->getPosition();
        if(creaturePos.z > toPos.z)
            return RET_FIRSTGOUPSTAIRS;
    
    //    if(creaturePos.z < toPos.z)
    //        return RET_FIRSTGODOWNSTAIRS;
    
        if(!Position::areInRange<7,5,3>(toPos, creaturePos))
            return RET_TOOFARAWAY;
    
    //    if(checkLineOfSight && !g_game.canThrowObjectTo(creaturePos, toPos))
    //        return RET_CANNOTTHROW;
    
        return RET_NOERROR;
    }

     

     

     

    Feito tudo certo, voce conseguira pescar de cima de montanhas. Obrigado e boa noite a todos.

    Tfs 1.2  não funciona tem como  adaptar?

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...