Jump to content

Search the Community

Showing results for tags 'MoveMent' in content posted in Classic Tibia (migrando).



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Tibia King
    • Rules
    • Portal
    • FeedBack
  • Open Tibia
    • Otserv
    • Tools
    • Codes
    • Clients
    • Maps
    • Websites
  • Management of Ot Servers
    • Otserv Discussions & Research
    • Support and Requests
    • Otserv Tutorials
  • Tibia and Bots
    • Tibia
    • Bots
  • Others
    • Announcements
    • Other Programming Languages
    • Graphics and Design
    • Playground (Off-topic)

Calendars

  • Official Calendar
  • OTServs Calendar
  • Several Calendars

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Localization


My character


Favorite OTServ


Bot preferred


Interests

Found 7 results

  1. Olá galera, vocês conhecem as lendas dos Trolls de baixo da ponte? Eles estão sempre na espreita, aguardando alguém para roubar, assassinar, estuprar e comer suas almas (as últimas partes são brincadeira). Me baseando nessa lenda eu fiz esse simples script, é um dos primeiros códigos que consigo desenvolver sozinho(tive ajuda), eu espero que ajude alguém em algum lugar do tempoespaço, é um script ótimo se você assim como eu gosta de pontes e também sempre teve a vontade de incrementar alguns de seus mapas com scripts. 1º. Acesse a pasta raiz do seu servidor, logo após siga o seguinte caminho: data/movements e abra o arquivo movements.xml. O código que você devera adicionar dentro deste arquivo está listado abaixo. <movevent type="StepIn" actionid="DigiteONumeroDeUmaActionAqui" event="script" value="ponte.lua"/> 2º. Dentro de data/movements abra a pasta 'scripts' e crie um arquivo .lua nomeado de 'ponte', dentro deste adicione o seguinte código. function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) local configuration = { monstrosTime = 1*5*1000, -- tempo até a criatura aparecer tempoDeStorage = 1*20*1000, -- em quanto tempo será removido a storage e se tornará possivel as criaturas resurgirem storage = 987459, -- numero da storage monsters = { [1] = {name = "Troll Champion", pos = {x = 1001, y = 1110, z = 9}}, -- Nome, quantidade e posição dos monstros, altere a vontade [2] = {name = "Troll", pos = {x = 1000, y = 1107, z = 9}}, [3] = {name = "Troll", pos = {x = 1007, y = 1109, z = 9}} } } if isPlayer(cid) == true then if getPlayerStorageValue(cid, configuration.storage) < 1 then doCreatureSay(cid, "A ponte não parece segura e quando você dá o primeiro passo ouve um grunhido e nota a presença de um ser estranho.", TALKTYPE_ORANGE_1) -- MSG que você quer exibir addEvent(function() for k, v in pairs(configuration.monsters) do doCreateMonster(v.name, v.pos) end end, configuration.monstrosTime) setPlayerStorageValue(cid, configuration.storage, 1) addEvent(function() setPlayerStorageValue(cid, configuration.storage, 0) end, configuration.tempoDeStorage) end end return true end 3º. Inicie o seu servidor e adicione o número da 'ActionID' que você inseriu em 'movements.xml' a algum piso de sua preferência, no caso eu adicionei no meio da ponte. Seja criativo.
  2. Opa galerinha beleza? Andei pesquisando 1 pouco sobre script e vi que ainda não existe nada do tipo, então resolvi trazer aqui pra vocês ! Meu intuito em fazer esses tipos de scripts: Na verdade eu andei pensando bastante em fazer Quest's em meu servidor no estilo HARDCORE... Imagine que você consiga entrar em uma Areá e ter consciência de que ao morrer, perderá tudo ! Seria meio tenso não? É... Eu achei interessante essa ideia, e como é simples resolvi trazer pra vocês. Como o script funciona? O script funciona a partir de 2 Actions. A de entrada, dará ao jogador uma Skull Red (Colocar ActionID: 5901) Saída removerá a Skull (Colocar ActionID: 5902) Sem mais delongas, vamos ao Script: Adicione a linha em: (data/movements/movements.xml) <movevent event="StepIn" fromaid="5901" toaid="5902" script="TP_Red_Skull.lua"/> Crie um arquivo em:(data/movements/scripts/TP_Red_Skull.lua) local config = { storage = 39202, -- Storage usada pos_room = {x = 1231, y = 1066, z = 7}, -- Posição da sala pos_back = {x = 1132, y = 1074, z = 7} -- Posição para sair da sala } function onStepIn(player, item, position, fromPosition) if item.actionid == 5901 then if player:getSkull() >= 1 then player:sendCancelMessage("Remova seu Skull para poder entrar.") player:teleportTo(fromPosition) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) else player:teleportTo(config.pos_room) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) player:setSkull(4) player:setSkullTime(1000*999999999999999999) player:setStorageValue(config.storage, 1) end end if item.actionid == 5902 then if player:getSkull() == 4 then if player:getStorageValue(config.storage) then player:setSkull(0) player:teleportTo(config.pos_back) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) end end end return true end Por favor, se puderem dar dicas para eu melhorar o script ou adicionar algo a mais, ficarei grato e terei o prazer em fazer. Rep+ para me motivar a postar cada vez mais coisas
  3. Opa galera beleza? Como prometido eu tentei fazer 1 script e vim posta-lo no TibiaKing... O script é simples e com uma boa configuração: Numero de membros da Party Nível necessário Se precisa de PZ para entrarem Se precisa que todos estejam perto Se só o Leader poderá entrar Teleporte que os jogadores irão Items necessários Como o script funciona? O script ele serve como uma forma de o jogador poder entrar em 1 Sala com a necessidade de uma Party, nível necessário e alguns Items. Meu intuito em fazer esses tipos de scripts: Estou cada vez mais tentando aprender um pouco mais em relação a scripts Lua... Sou um pouco leigo nessa parte, mas vou continuar treinando e estudando para alimentar meu conhecimento na linguagem e o conteúdo no Fórum. Espero que vocês me apoiem no que estou tentando fazer, e agradeço a todos que estão me ajudando a entender um pouco do assunto. Sem mais delongas, vamos ao Script: Adicione a linha em: (data/movements/movements.xml) <movevent event="StepIn" actionid="5900" script="Tile_Party.lua"/> Crie um arquivo em: (data/movements/scripts/Tile_Party.lua) local config = { members = 2, -- membros ou +. level = 300, -- nivel que todos os membros devem ter para entrar. leader = false, -- somente o leader pode entrar no teleport. pz = true, -- só irá funcionar se todos os membros tiverem em PZ area. pos_to = {x = 1143, y = 1064, z = 7}, -- posição que os jogadores serão teleportados. other = { pert = true, -- só poderá entrar se os membros tiverem na quant_sqm de distancia. quant_sqm = 7 -- jogadores tem que estar a 7 sqm de distancia do jogador que entrou no TP. }, items = { -- itens necessários para que os players entrem. [1] = {item = 2160, count = 1}, [2] = {item = 2159, count = 1} -- [3] = {item = ItemID, count = Quantidade} }, } function onStepIn(player, item, position, fromPosition) local party = player:getParty() if not party then player:teleportTo(fromPosition) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) position:sendMagicEffect(CONST_ME_MAGIC_RED) return player:sendCancelMessage("You don't have a party.") end local leader = party:getLeader() local member = party:getMembers() if config.leader and player ~= leader then player:teleportTo(fromPosition) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) position:sendMagicEffect(CONST_ME_MAGIC_RED) player:sendCancelMessage("Somente o leader pode entrar por aqui.") return false end table.insert(member, leader) local ready = {} if #member >= config.members-1 then for _, var in pairs(member) do if var:getLevel() > config.level then if config.other.pert then if player:getPosition():getDistance(var:getPosition()) >= config.other.quant_sqm then player:teleportTo(fromPosition) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) player:sendCancelMessage("Seu time tem que esta proximo de voce.") return end end if config.pz then if not getTileInfo(getThingPos(var)).protection then player:teleportTo(fromPosition) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) return player:sendCancelMessage("Seu time tem que estar em protection zone.") end end for k, v in pairs(config.items) do if var:getItemCount(v.item) < v.count then player:teleportTo(fromPosition) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) player:sendTextMessage(22,string.format("O membro (corno) %s não possui %sx %s.", var:getName(), v.count, ItemType(v.item):getName())) return false end end table.insert(ready, var) else player:sendTextMessage(22,"Um dos membros da party não possui nivel superior a "..config.level..".") player:teleportTo(fromPosition) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) return false end end if rawequal(#ready, #member) then for _, var in pairs(member) do for k, v in pairs(config.items) do var:removeItem(v.item, v.count) end var:sendTextMessage(22,"Your team join the room.") var:teleportTo(config.pos_to) var:getPosition():sendMagicEffect(CONST_ME_TELEPORT) end end else player:teleportTo(fromPosition) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) position:sendMagicEffect(CONST_ME_MAGIC_RED) player:sendTextMessage(20,"Somente party's com " .. config.members-1 .. " ou mais jogadores, poderão passar.") end return true end Deixe seu REP+ Para me motivar ainda mais a postar novos scripts para vocês. Créditos: @Snowsz @KotZletY @Vodkart @Lyu Está atualizado o script... Algumas configurações foram adicionadas ! local config = { members = 2, -- membros ou +. level = 300, -- nivel que todos os membros devem ter para entrar. leader = false, -- somente o leader pode entrar no teleport. pz = true, -- só irá funcionar se todos os membros tiverem em PZ area. pos_to = {x = 1143, y = 1064, z = 7}, -- posição que os jogadores serão teleportados. other = { pert = true, -- só poderá entrar se os membros tiverem na quant_sqm de distancia. quant_sqm = 7 -- jogadores tem que estar a 7 sqm de distancia do jogador que entrou no TP. }, items = { -- itens necessários para que os players entrem. [1] = {item = 2160, count = 1}, [2] = {item = 2159, count = 1} -- [3] = {item = ItemID, count = Quantidade} }, }
  4. Fala galera do TK, estou fazendo alguns scripts para melhor cada vez mais. Achei um interessante o False Tile, então decidi postar o mesmo aqui. O que ele faz? Imagine uma sala com o chão todo igual, e só tem um caminho correto no meio desses tiles. Se você errar o caminho, vai voltar ao inicio e tomar um dano. Moral da história "Encontre o caminho correto, mas tome cuidado pois você pode morrer." Bom, vamos lá. Em data/movements/scripts, crie um arquivo .lua com o nome falsetile, e em seguida adicione o script dentro. Em movements.xml, adicione a tag. Explicação. 9467 - É o action id que TODOS os TILES ERRADOS devem ter. itemid="407" - Id do piso. Esta foi a área que criei. Nas linhas azuis - São os tiles sem action id, ou seja, é o caminho correto. O restante dos tiles tem action id = 9467 e se você pisar nele vai voltar ao inicio da sala, e vai tomar um dano.
  5. Olá pessoal, esse é meu primeiro script, estou até com vergonha de postar kkkk. O script é bem simples, ele teleporta o jogador para uma certa position se o jogador tiver uma certa quantia de soulpoints, caso alguém queira modificar fazendo que o jogador que for teleportado também perca uma quantia de soulpoints. Você vai colocar a tag na pasta movements em movements.xml <movevent type="StepIn" actionid="7003" event="script" value="teleportsoul.lua" /> Você vai criar um arquivo .lua e renomear para teleportsoul e vai colocar dentro dele e jogar dentro da pasta movements/scripts function onStepIn(cid, item, toPosition, fromPosition) if getPlayerSoul(cid) >= 50 then doTeleportThing(cid, {x=1001, y=923, z=7}) else doPlayerSendCancel(cid, "MENSAGEM AQUI") return true end return true end Para editar é muito simples. QUANTIA DO SOUL POINTS - 50 VOCÊ COLOCA O VALOR DESEJADO {x=1001, y=923, z=7} MODIFICA PARA A POSITION QUE VOCÊ QUER QUE O JOGADOR SEJA TELEPROTADO MENSAGEM AQUI - A MENSAGEM QUE VAI APARECER PARA O JOGADOR CASO ELE NÃO TENHA OS SOULPOINTS NECESSÁRIO. Espero ter ajudado alguém pois o script é bem simples. Obrigado!!
  6. Olá. Primeiramente quero dizer que este será meu primeiro post de conteúdo no fórum, logo se houver erros me desculpem É o seguinte, fiz esse script para ajudar em um pedido na área de suporte, e achei ser muito útil para muita gente, logo vim postar. Bom, vamos ao que interessa: data/movements movements.xml 17456 = Este será o UniqueID para botar no tile pelo RME. Data/movements/scripts crie um arquivo tilel.lua (Sim, nome feio eu sei, faltou criatividade rsrs) getPlayerStorageValue(cid, 84453) = É a função para verificar quantos resets tem, o número 84453 vai variar de acordo com seu sistema de reset. Basta pegar a storage que armazena a quantia de resets. Caso seu sistema armazene os resets por database, provavelmente nos scripts do sistema já existe uma função para ver quantos resets tem, basta botar a função no lugar de getPlayerStorageValue(cid, 84453). Agora a parte mais interessante desse sistema, você vai criar apenas esse script, e vai poder usar em quantos tiles quiser, para verificar diferentes quantias de reset. Pois o número de resets para passar pelo tile, será o número que você botar em ActionID no tile pelo RME. Ãn? Exato, basta ir no RME, no tile desejado em ActionID digite quantos resets o player deverá ter para passar, e em uniqueID bote 17456. (Ou o número que você botou no movements.xml, caso tenha usado diferente de como botei la em cima.) Pode aparecer erros no distro na hora de abrir o server, acusando UniqueID repetido, mas pode ignorar, não vai afetar em nada. Faz parte do sistema. É isso, espero que seja útil para alguém!
  7. data/movements/scripts/Genius.lua: CurrentSteps = {} CurrentSequence = {} PuzzleGeniusConfig = { centerPlayerPos = {x=988,y=985,z=7}, effectsid = { [9562] = {1, 0}, [9563] = {0, 1}, [9564] = {-1, 0}, [9565] = {0, -1} }, appearInterval = 1, disapear = 0.6, backPos = {x=987,y=982,z=7}, rewardPos = {x=995,y=988,z=6}, roundTimes = 100, } CurrentSequence = {} PuzzleGenius = {} function randomIndexFromTable(tab) local tb = {} for i,x in pairs(tab) do table.insert(tb, i) end return tb[math.random(1, #tb)] end function tileEffect(tileid, pos, int) local tile = getThingFromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=0}) doItemSetAttribute(tile.uid, "aid", 6661) local a = doCreateItem(tileid, pos) addEvent(function() local tile = getThingFromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=1}).uid doRemoveItem(tile, 1) end, int*1000) end function PuzzleGenius:ExecuteSequence(cid) if #CurrentSequence >= PuzzleGeniusConfig.roundTimes then doTeleportThing(cid, PuzzleGeniusConfig.rewardPos) doPlayerSetNoMove(cid, false) CurrentSteps = {} CurrentSequence = {} return true end table.insert(CurrentSequence, randomIndexFromTable(PuzzleGeniusConfig.effectsid)) for i,x in ipairs(CurrentSequence) do addEvent(tileEffect, PuzzleGeniusConfig.appearInterval*i*1000, x, {x=PuzzleGeniusConfig.centerPlayerPos.x+PuzzleGeniusConfig.effectsid[x][1], y=PuzzleGeniusConfig.centerPlayerPos.y+PuzzleGeniusConfig.effectsid[x][2], z=PuzzleGeniusConfig.centerPlayerPos.z},PuzzleGeniusConfig.disapear) end addEvent(doPlayerSetNoMove, (PuzzleGeniusConfig.appearInterval*#CurrentSequence+PuzzleGeniusConfig.disapear)*1000, cid, false) end function PuzzleGenius:Check(cid, currentSteps) if currentSteps[#currentSteps] == CurrentSequence[#currentSteps] then return true end return false end function onStepIn(cid, item, pos, fromPos) if pos.x == PuzzleGeniusConfig.centerPlayerPos.x and pos.y == PuzzleGeniusConfig.centerPlayerPos.y then if #CurrentSequence < 1 then doPlayerSetNoMove(cid, true) return PuzzleGenius:ExecuteSequence(cid) else return false end end local coordinates = {pos.x-fromPos.x, pos.y-fromPos.y} for i,x in pairs(PuzzleGeniusConfig.effectsid) do if x[1] == coordinates[1] and x[2] == coordinates[2] then table.insert(CurrentSteps, i) if PuzzleGenius:Check(cid, CurrentSteps) then doCreateItem(i, {x=PuzzleGeniusConfig.centerPlayerPos.x+coordinates[1], y=PuzzleGeniusConfig.centerPlayerPos.y+coordinates[2], z=PuzzleGeniusConfig.centerPlayerPos.z}) end end end if PuzzleGenius:Check(cid, CurrentSteps) then doTeleportThing(cid, fromPos, true) if #CurrentSteps == #CurrentSequence then doPlayerSetNoMove(cid, true) CurrentSteps = {} addEvent(function() PuzzleGenius:ExecuteSequence(cid) end, 500) end else doTeleportThing(cid, PuzzleGeniusConfig.backPos) CurrentSteps = {} CurrentSequence = {} end return TRUE end function onStepOut(cid, item, pos, fromPos) local tile = getThingFromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=1}) for i,x in pairs(PuzzleGeniusConfig.effectsid) do if i == tile.itemid then addEvent(function() local tilee = getThingFromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=1}).uid doRemoveItem(tilee, 1) end, 100) break end end return TRUE end tags movements.xml: <movevent type="StepIn" actionid="6661" event="script" value="Genius.lua"/> <movevent type="StepOut" actionid="6661" event="script" value="Genius.lua"/> Mapa: A - Action ID 6661. B - Teleport que teleporta para A, centerPlayerPos no script. Achei esse script muito interessante e resolvi compartilhar aqui com vocês! Creditos 99% (MatheusMkalo) 1% Gustavo Ferreira (Trazer Ao Tibia King)

Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia começando do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer fazer um plano publicitário para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução!

×
×
  • Create New...