Jump to content
Close

Search the Community

Showing results for tags 'MoveMent'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Community
    • Rules
    • Portal
    • Resources
    • Commerce
    • Clubs
  • OTServers
    • Discussion
    • Support
    • Tutorial
    • Download
    • Code Development
    • Contests and Events
    • Form Team
    • Advertise your Server
  • Tibia Bots
    • Discussion
  • League of Legends's Geral
  • League of Legends's Suporte
  • Jogos Gerais's Geral
  • Nto New Season's Tópicos
  • Fakes's Fakes
  • Tibia's Geral
  • Tibia's Notícias
  • Tibia's Media
  • Tibia's Life Thread
  • Gráficos's Geral
  • Gráficos's Tutoriais
  • Gráficos's Recursos
  • Gráficos's Aprendizagem & Recursos
  • Gráficos's Galeria
  • Gráficos's Duelos & Batalhas
  • Gráficos's Suporte
  • Desenvolvimento e Programação's Geral
  • Desenvolvimento e Programação's Tutoriais
  • Desenvolvimento e Programação's Trabalhos
  • Desenvolvimento e Programação's Suporte
  • Computação's Geral
  • Computação's Dicas e Tutoriais
  • Computação's Suporte
  • Roleplaying's Roleplaying
  • Playground's (Off-topic)
  • Divulgações's Tópicos

Calendars

  • Official Calendar
  • OTServs Calendar
  • Several Calendars

Product Groups

  • Advertisements in Top
  • Advertisements In Signatures
  • Advertisements in Topics
  • Others Advertisements

Categories

  • Sales Section
    • Scripting Sales
    • Codes Sales
    • Mapping Sales
    • Websites Sales
    • Design/Sprites Sales
    • Bots Sales
  • Look Jobs
  • Looking for Freelancers
  • Team Formation

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 17 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 galera, quem puder me ajudar com um script em movements, eu queria um jeito de colocar uma certa voc pra poder usar ou pegar tal item , eu vi uns topicos aqui mas nada adiantou!!, quem puder me ajudar ficaria mt grato . rep++
  3. 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
  4. Olá.., tenho uma ideia porem não sei se e possível. estava pensando aqui no caso para poketibia. ( ao surfar como no gameboy queria que o player teletransporta - se para uma area onde pode batalhar com o poke e ao matar voltar de onde estava). como se fosse no game boy msmo.
  5. 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} }, }
  6. 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.
  7. Olá galera , do TibiaKing , venho trazer pra vocês um bike sistem por movements. QUAL A DIFERENÇA DESSE SISTEMA PARA O ANTIGO ? ( POR ACTIONS) Esse sistema evita aquele famoso bug do player dar use na bike e jogar pra outro amigo dar use , fazendo os dois terem bike. COMO ESSE SISTEMA FUNCIONA ?? Funciona por movements , ao equipar( no slot do ring[configurável]) ganha a outfit e a speed ( configuráveis) XML <movevent type="Equip" itemid="2195" slot="ring" event="script" value="bike.lua"/> <movevent type="DeEquip" itemid="2195" slot="ring" event="script" value="bike.lua"/> SCRIPT local bike = {lookType = 100, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0} --- Esse vai ser Homen local bike1 = {lookType = 101, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0} --- Esse vai ser mulher local speed = 20 --- Velocidade que a bike dará local storage = 3421 function onEquip(cid, item, slot) if not isPlayer(cid) and not isPremium(cid) then -- tire o primeiro not, atras do isPlayer para ativar o premium doPlayerSendCancel(cid, "Only premium members are allowed to mount.") return true end if getPlayerSex(cid) == 1 then -- Homem doChangeSpeed(cid, speed) doSetCreatureOutfit(cid, bike, -1) doSendMagicEffect(getPlayerPosition(cid), 18) setPlayerStorageValue(cid, storage, 1) elseif getPlayerSex(cid) == 0 then -- Girl doChangeSpeed(cid, speed) doSetCreatureOutfit(cid, bike1, -1) doSendMagicEffect(getPlayerPosition(cid), 18) setPlayerStorageValue(cid, storage, 1) end return true end function onDeEquip(cid, item, slot) doRemoveCondition(cid, CONDITION_OUTFIT) doChangeSpeed(cid, -speed) doSendMagicEffect(getPlayerPosition(cid), 18) setPlayerStorageValue(cid, storage, 0) end
  8. Fala ai galera do TibiaKing entao eu estou com um problema aqui no meu mapa e não estou conseguindo consertar e nao faço idea como arrumar. É sobre o EXP ring no baiak 10.10, esta aparecendo esse error. sempre é uma linha ou um end.. me ajudem por favor quebrando a cabeça aqui rs.. [15:5:53.027] [Error - LuaInterface::loadFile] data/movements/scripts/exp_ring.lua:1: '=' expected [15:5:53.035] [Error - Event::checkScript] Cannot load script (data/movements/scripts/exp_ring.lua) [15:5:53.046] data/movements/scripts/exp_ring.lua:1: '=' expected [15:5:53.063] [Error - LuaInterface::loadFile] data/movements/scripts/exp_ring.lua:1: '=' expected [15:5:53.070] [Error - Event::checkScript] Cannot load script (data/movements/scripts/exp_ring.lua) [15:5:53.076] data/movements/scripts/exp_ring.lua:1: '=' expected [15:5:53.082] done. [15:5:53.094] > Loading creaturescripts... [Error - LuaInterface::loadFile] data/creaturescripts/scripts/login.lua:89: '<eof>' expected near 'end' [15:5:53.110] [Error - Event::checkScript] Cannot load script (data/creaturescripts/scripts/login.lua) [15:5:53.124] data/creaturescripts/scripts/login.lua:89: '<eof>' expected near 'end' [15:5:53.170] [Error - CreatureEvent::configureEvent] No valid type for creature event: joinchannel. [15:5:53.183] [Warning - BaseEvents::loadFromXml] Cannot configure an event [15:5:53.224] [Error - LuaInterface::loadFile] data/creaturescripts/scripts/expring.lua:1: '=' expected [15:5:53.236] [Error - Event::checkScript] Cannot load script (data/creaturescripts/scripts/expring.lua) [15:5:53.248] data/creaturescripts/scripts/expring.lua:1: '=' expected
  9. estou em busca de um script pra otclient q faça o personagem virar automaticamente para os monstros
  10. 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!!
  11. 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!
  12. Então, eu uso esse mod do Vodkart de Guild Frag System, que da acesso aos jogadores vencedores que atingir X quantia de kills, porém não tem a parte do movement onde verifica se o jogador é da guild vencedora e se tem acesso e tals.... no script tem um action id no qual não funciono aqui, sempre muda pra outro numero na hora de por http://www.tibiaking.com/forum/topic/12235-gfs-guild-frag-system/ <?xml version="1.0" encoding="UTF-8"?> <mod name="Guild Frag System" version="1.0" author="Vodkart" contact="none" enabled="yes"> <config name="guild_func"><![CDATA[ frag_guild = { start_frags = 120155, FragsToWinAcess = 500, FragsPerKill = 1, AcessTimeDays = 2, MoreExpToGuild = false, Exp_Rate = 1.1, -- 10% Honor_Storage = 215548, Honor_Point = 10 } function getFragsByGuild(GuildName) local check = db.getResult("SELECT `frags` FROM `guilds` WHERE `id` = " ..getGuildId(GuildName)) return check:getDataInt("frags") <= 0 and 0 or check:getDataInt("frags") end function addFragsByGuild(GuildName,amount) db.executeQuery("UPDATE `guilds` SET `frags` = "..getFragsByGuild(GuildName).."+"..amount.." WHERE `guilds`.`id` = "..getGuildId(GuildName)) end function removeFragsByGuild(GuildName,amount) db.executeQuery("UPDATE `guilds` SET `frags` = "..getFragsByGuild(GuildName).."-"..amount.." WHERE `guilds`.`id` = "..getGuildId(GuildName)) end function setFragsByGuild(GuildName,value) db.executeQuery("UPDATE `guilds` SET `frags` = "..value.." WHERE `guilds`.`id` = "..getGuildId(GuildName)) end function cleanGuildFrags() db.executeQuery("UPDATE guilds SET frags = 0;") end function removeAcessGuildServer() return db.executeQuery("UPDATE guilds SET acesstime = 0;") end function getAcessTime(GuildName) local query = db.getResult("SELECT `acesstime` FROM `guilds` WHERE `id` = " ..getGuildId(GuildName)) if query:getID() ~= -1 then return query:getDataInt("acesstime") end end function HaveGuild(cid) return getPlayerGuildId(cid) > 0 and TRUE or FALSE end function doBroadCastGuild(GuildName,type,msg) local players = {} for _, cid in pairs(getPlayersOnline()) do if getPlayerGuildName(cid) == GuildName then table.insert(players, cid) end end for i = 1, #players do doPlayerSendTextMessage(players[i],type,msg) end return true end function setAcessTime(GuildName, time) return db.executeQuery("UPDATE `guilds` SET `acesstime` = "..time.." WHERE `guilds`.`id` = "..getGuildId(GuildName)) end function getDaysAcess(GuildName) local acess = math.ceil((getAcessTime(GuildName) - os.time())/(86400)) return acess <= 0 and 0 or acess end function HaveAcess(GuildName) return getDaysAcess(GuildName) > 0 and TRUE or FALSE end function getGuildWinnerName() local guildname = '' local query = db.getResult("SELECT `name` FROM `guilds`;") if(query:getID() ~= -1) then repeat if HaveAcess(query:getDataString("name")) then guildname = query:getDataString("name") end until not query:next() query:free() end return guildname end function addAcess(GuildName, days) if days > 0 then local add = days*86400 local time = getDaysAcess(GuildName) == 0 and (os.time() + add) or (getAcessTime(GuildName) + add) return setAcessTime(GuildName, time) end return nil end function doRemoveAcess(GuildName, days) if days > 0 then local remove = days*86400 local time = getAcessTime(GuildName) - remove return setAcessTime(GuildName, (time <= 0 and 1 or time)) end return nil end function getAcessDate(GuildName) if HaveAcess(GuildName) then return os.date("%d/%m/%y %X", getAcessTime(GuildName)) end return FALSE end function getHonorPoints(cid) local Honor = getPlayerStorageValue(cid, frag_guild.Honor_Storage) return Honor < 0 and 0 or Honor end function addHonorPoints(GuildName, amount) local PlayersGuild = db.getResult("SELECT `name` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = " .. getGuildId(GuildName) .. ");") if (PlayersGuild:getID() ~= -1) then repeat local pid,Guid = getPlayerByNameWildcard(PlayersGuild:getDataString("name")),getPlayerGUIDByName(PlayersGuild:getDataString("name")) if(not pid or isPlayerGhost(pid)) then local getHonor = db.getResult("SELECT `value` FROM `player_storage` WHERE `player_id` = ".. Guid .." AND `key` = ".. frag_guild.Honor_Storage) if (getHonor:getID() ~= -1) then repeat db.executeQuery("UPDATE `player_storage` SET `value` = ".. (getHonor:getDataInt("value")+amount) .." WHERE `player_id` = ".. Guid .." AND `key` = ".. frag_guild.Honor_Storage) until not(getHonor:next()) getHonor:free() end else setPlayerStorageValue(getPlayerByName(PlayersGuild:getDataString("name")), frag_guild.Honor_Storage, getHonorPoints(getPlayerByName(PlayersGuild:getDataString("name")))+amount) end until not PlayersGuild:next() PlayersGuild:free() end return true end ]]></config> <talkaction words="!guildfrags;!myhonor" event="buffer"><![CDATA[ domodlib('guild_func') if words == "!myhonor" or words == "/myhonor" then return doPlayerPopupFYI(cid,"Honor Points can be exchanged for special items in npc\nAnd each domain, every guild players receive "..frag_guild.Honor_Point.." Honor Points!\n\n\nMy Honor Points: "..getHonorPoints(cid)) elseif words == "!guildfrags" or words == "/guildfrags" then if param == "rank" then local max_guild,str = 10,"" str = "--[ Rank Guild Frags ]--\n\n" query = db.getResult("SELECT `name`, `frags` FROM `guilds` WHERE `frags` ORDER BY `frags` DESC, `name` ASC;") if (query:getID() ~= -1) then k = 1 while true do str = str .. "\n " .. k .. ". " .. query:getDataString("name") .. " - [" .. query:getDataInt("frags") .. "]" k = k + 1 if not(query:next()) or k > max_guild then break end end query:free()end if str ~= "" then doPlayerPopupFYI(cid, str) end return true end doPlayerPopupFYI(cid,"".. (getGuildWinnerName() == "" and "The server does not have any dominant guild\n\nTo show the rank of frags enter !guildfrags rank" or "Currently guild dominant is ["..getGuildWinnerName().."]\n\nYour domain ends in "..getAcessDate(getGuildWinnerName()).."") .."") end return true ]]></talkaction> <event type="login" name="FragsGuildLogin" event="script"><![CDATA[ domodlib('guild_func') function onLogin(cid) registerCreatureEvent(cid, "FragsGuildLogin") registerCreatureEvent(cid, "FragsGuildKill") if getPlayerStorageValue(cid,frag_guild.Honor_Storage) == -1 then setPlayerStorageValue(cid, frag_guild.Honor_Storage, 0) end local MyGuild,StorCheck = getPlayerGuildName(cid),17595 if HaveGuild(cid) then if HaveAcess(MyGuild) then setPlayerStorageValue(cid, StorCheck, 1) if frag_guild.MoreExpToGuild == true then doPlayerSetExperienceRate(cid, frag_guild.Exp_Rate) end elseif getPlayerStorageValue(cid, StorCheck) == 1 and not HaveAcess(MyGuild) then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doPlayerPopupFYI(cid, "[Guild Frag System]\nThe domain of your guild is over and you've been teleported to the temple.") setPlayerStorageValue(cid, StorCheck, -1) if getGlobalStorageValue(frag_guild.start_frags) >= 1 then setGlobalStorageValue(frag_guild.start_frags, 0) end end end return TRUE end ]]></event> <action actionid="84005" event="script"><![CDATA[ domodlib('guild_func') function onUse(cid, item, frompos, item2, topos) local MyGuild = getPlayerGuildName(cid) if not HaveGuild(cid) then return doPlayerSendTextMessage(cid,22,"Sorry, you're not in a guild.") elseif not HaveAcess(MyGuild) then return doPlayerSendTextMessage(cid,22,"Your guild no has access to this area.") end doTransformItem(item.uid, item.itemid + 1) doTeleportThing(cid, topos, TRUE) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Welcome,The access of your guild in this area ends in "..getAcessDate(getGuildWinnerName())) return true end]]></action> <event type="kill" name="FragsGuildKill" event="script"><![CDATA[ domodlib('guild_func') function onKill(cid, target, lastHit) config = { MaxDifLevel = 50, MyGuild = getPlayerGuildName(cid) } if isPlayer(cid) and isPlayer(target) and HaveGuild(cid) and HaveGuild(target) and getPlayerGuildId(cid) ~= getPlayerGuildId(target) and getPlayerIp(target) ~= getPlayerIp(cid) and math.abs(getPlayerLevel(cid) - getPlayerLevel(target)) <= config.MaxDifLevel and getGlobalStorageValue(frag_guild.start_frags) <= 0 then addFragsByGuild(config.MyGuild,frag_guild.FragsPerKill) doBroadCastGuild(config.MyGuild,20,'[Guild Frag System] Your guild received '..frag_guild.FragsPerKill..' frag because have killed a player another guild, now your guild have '..getFragsByGuild(config.MyGuild)..' frags') if getFragsByGuild(config.MyGuild) >= frag_guild.FragsToWinAcess then addAcess(config.MyGuild, frag_guild.AcessTimeDays) addHonorPoints(config.MyGuild, frag_guild.Honor_Point) doBroadcastMessage("[Guild Frag System]\nThe guild ["..config.MyGuild.."] is dominant for having achieved "..frag_guild.FragsToWinAcess.." Frags!\nYour domain ends in "..getAcessDate(config.MyGuild)) cleanGuildFrags() setGlobalStorageValue(frag_guild.start_frags, 1) if frag_guild.MoreExpToGuild == true then local players = {} for _, cid in pairs(getPlayersOnline()) do if getPlayerGuildName(cid) == config.MyGuild then table.insert(players, cid) end end for i = 1, #players do doPlayerSetExperienceRate(players[i], frag_guild.Exp_Rate) end end end end return TRUE end]]></event> <globalevent name="GuildFrags" interval="3600000" event="script"><![CDATA[ domodlib('guild_func') function onThink(interval, lastExecution) if getGuildWinnerName() == "" and getGlobalStorageValue(frag_guild.start_frags) >= 1 then setGlobalStorageValue(frag_guild.start_frags, 0) end return doBroadcastMessage("".. (getGuildWinnerName() == "" and "[Guild Frag System]\nThe first guild to reach "..frag_guild.FragsToWinAcess.." frags will gain "..frag_guild.AcessTimeDays.." days of access to exclusive areas, for more information enter !guildfrags" or "[Guild Frag System]\nCurrently guild dominant is ["..getGuildWinnerName().."] and your domain ends in "..getAcessDate(getGuildWinnerName()).."") .."", 22) end]]></globalevent> </mod>
  13. Galera Não sei qual o error cheguei a pensar que duas alterações que eu fiz no server eram o error. Mais quando ligo o server normalmente crio um 'char' na minha conta ja existente no meu server poketibia que estou trabalhando. O player pega o pokemon normalmente e tals mais ai aparece um error no server que se eu simplesmente mover a pokeball ou tocar na pokeball ou der look na pokeball o servidor todo cai Bem é isso irei deixar o script e logo vou deixar um print do error... Script: Ps: O unico pokemon que configurei pra ser pego foi o Turtwig. [spoiler*][/spoiler*] Não sei fazer caixa de spoiler '- pk = { [8696] = {name="Piplup"}, [8697] = {name="Chimchar"}, [8698] = {name="Turtwig"}, [8699] = {name="Squirtle"}, [8700] = {name="Charmander"}, [8701] = {name="Bulbasaur"}, } postemple = {x = 1022, y = 1026, z = 7} function onStepIn(cid, item, position, fromPosition) local pokemon = pk[item.actionid].name local plevel = 5 local level = 1.5 local extrastr = 4 local btype = "normal" local gender = getRandomGenderByName(pokemon) local mypoke = getPokemonStatus(pokemon) if not mypoke then return true end local offense = mypoke.off * level * extrastr local defense = mypoke.def * level * extrastr local speed = mypoke.agi * level * extrastr local vit = mypoke.vit * level * extrastr local spatk = mypoke.spatk * level * extrastr local happy = 180 local leveltable = getPokemonExperienceTable(pokemon) local item = doCreateItemEx(2128) doItemSetAttribute(item, "poke", pokemon) doItemSetAttribute(item, "hp", 1) doItemSetAttribute(item, "level", plevel) doItemSetAttribute(item, "exp", leveltable[plevel]) doItemSetAttribute(item, "nextlevelexp", leveltable[plevel+1] - leveltable[plevel]) doItemSetAttribute(item, "offense", offense) doItemSetAttribute(item, "defense", defense) doItemSetAttribute(item, "speed", speed) doItemSetAttribute(item, "vitality", vit) doItemSetAttribute(item, "specialattack", spatk) doItemSetAttribute(item, "happy", happy) doItemSetAttribute(item, "gender", gender) doItemSetAttribute(item, "description", "Contains a "..pokemon..".") doItemSetAttribute(item, "fakedesc", "Contains a "..pokemon..".") doItemSetAttribute(item, "firstpoke", getCreatureName(cid)) doPlayerAddItemEx(cid, item, true) doTransformItem(item, pokeballs[btype].on) doPlayerSendTextMessage(cid, 27, "You got your first pokemon! You also received some pokeballs to help you in your way.") doPlayerAddItem(cid, 2160, 1000) doPlayerSendTextMessage(cid, 27, "Don\'t forget to use your pokedex on every undiscovered pokemon!") if #getCreatureSummons(cid) >= 1 then doTeleportThing(getCreatureSummons(cid)[1], postemple,false) end doTeleportThing(cid, postemple,false) end
  14. Bem não sei se estou postando na área correta, mas meu problema é no movements do castle of honor que peguei aqui no tibiaking a um tempo, neste script contem varias actions e meu problema é na action do piso em que os DOMINANTES do castle passa. Tipo eu domino o castle e vou caçar nas hunts do castelo dai outra guild domina o castle mas eu ainda posso entrar e sair da hunt ate que eu entre no teleport pra ir ao templo ou alguem me mate, eu queria que alguem me ajudasse e mudasse essa parte do script para quem não fosse da guild e passasse no tile com action 16203 fosse para o templo a parte da action é essa \/ function onStepIn(cid, item, pos, fromPosition) local pos = getThingPos(cid) if item.actionid == 16203 then if not isPlayer(cid) then return true end if getGlobalStorageValue(COH_STATUS) == getPlayerGuildName(cid) then doSendMagicEffect(getThingPos(cid), 14) doSendAnimatedText(pos, "CoH", math.random(1, 255)) else doSendMagicEffect(getThingPos(cid), 2) doTeleportThing(cid, fromPosition, false) doPlayerSendCancel(cid, "[CoH] Você não pertence á guild "..getGlobalStorageValue(COH_STATUS)..".") end return true end
  15. eu consegui esse script mas ele não está funcionando, ele deveria fazer aparecer o addon quando eu coloco um item no inventário, e fazer desaparecer o addon quando eu removo o item, alguém poderia me ajudar? local outfitvip = { lookType = 128 } local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) function onEquip(cid, item, slot) local param = {cid = cid, item = item, slot = slot} doPlayerAddOutfit(cid, outfitvip.lookType, 2) end function onDeEquip(cid, item, slot) doPlayerRemoveOutfit(cid,outfitvip.lookType,0) doRemoveCondition(cid, CONDITION_OUTFIT) end <movevent type="Equip" itemid="2195" slot="feet" event="script" value="addon.lua"/> <movevent type="DeEquip" itemid="2195" slot="feet" event="script" value="addon.lua"/>
  16. Opa, Queria ver com vcs, oque eu fiz de errado. Porque é o seguinte. Quando o player ta com promotion. ele pode usar certas "star". Mais quando a promotion sai, ele nao pode mais usar a "star". Mais o problema é que, quando sai a promotion, se o player nao tirar o item da mao, Ele vai continuar usando, Ate ele tirar o item da mao... Ou seja, queria saber, se tem como fazer o seguinte: Quando acabar a promotion, * tirar os itens da mao do player, e mandar pra backpack, OU PRO DEPOT, Tanto fais * Vo deixar aqui, o script que eu uso. Espero que consigam REP+ pra quem conseguir ;]
  17. 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 partindo do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer publicidade 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! A publicação do seu anuncio é instantânea!

×
×
  • Create New...