Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 08/08/14 em todas áreas
-
[854] Servidor Galaxy PokeOT
[854] Servidor Galaxy PokeOT
pedro poke tibia e 3 outros reagiu a Wolf Admin por uma resposta no tópico
4 pontosGALAXY POKEOT Olá Galera... Estou Aqui hoje para postar um servidor onde eu editei por um tempo, o "Galaxy PokeOT". Vamos começar: • Menu: ├ Informações; ├ Ediçoes; ├ Erros; ├ Prints; ├ Download; └ Creditos. Informações Básicas: Edições Erros do Servidor Prints Downloads Créditos Bom, é isso galera.. Espero que tenham gostado do meu servidor Façam bom proveito. Gostou? Ajudei? Deixe seu Rep ai Vlw !!4 pontos -
[8.60] Baiak Absolute - Editado completo [O MELHOR]
[8.60] Baiak Absolute - Editado completo [O MELHOR]
Veigh e 2 outros reagiu a Absolute por uma resposta no tópico
3 pontosFala galera do TK, andei pegando um BAIAK base pra dar uma editada, trackeando alguns mapas e otimizando algumas coisas para disponibilizar um baiak "filé" para vocês do TK Sem mimimi, vamos ao que interessa e depois algumas imagens! O que temos neste lindo Baiak? New Templo bem baiak. Dodge System Run Event BP Event Guilds System Castle 24H Battlefield Event Blood Castle Event Firestorm Event Capture the Flags Event Items Donates para vender no site/jogo Items VIP a mostra no termplo 3 Áreas VIPS jogo e Donate Vários Teleports Novas Hunts Look Frags Sistema de Refinamento Criminal System Hit Rank Reset System Full Task Zombie Event [VIP] no nome ao adquirir VIP Distro 04 com Cast System (LUAN) Sistema de teleporte (!FLY) Level Skills System Ao cadastrar o player irá ganhar 2 dias VIPs na quest do templo! War System Várias quests Arena PVP Treiners modificados Roda em SQLITE E MYSQL! E muito mais, basta baixar para conferir! Vamos as imagens: Ao abrir o mapa: Ingame: Local onde o player começa: Templo Baiak Absolute: Teleports Free's Básicos: Área de Eventos e Summon por alavanca: BP Event Room: TPS VIP DONATE: TPS VIP +: TPS VIP ++: Pasta do servidor: Dowload/Scan Download do servidor completo: http://www.4shared.com/rar/e7YfCJ_Sce/Baiak_Absolute.html? Scan: https://www.virustotal.com/pt/url/6c6070c9c24da3b7719a92a1788bd2d8434d81c541b0038f68777621a121dccc/analysis/1407454456/ Desejo a todos um bom proveito e sucesso Créditos: Até a próxima Absolute.3 pontos -
[8.60] Baiak ROX ! Editado By DeathRocks [Cast + Wars System]
[8.60] Baiak ROX ! Editado By DeathRocks [Cast + Wars System]
Veigh e um outro reagiu a DeathRocks por uma resposta no tópico
2 pontosEae Galera do TibiaKing É o seguinte Hoje trago a vocês o Baiak Rox Editado por Min Espero que Gostem Oque eu Fiz ? | Novo Visual do Templo Totalmente ICE | Critical System | Task System | Dodge System | Run Event (CORRIDA MALUCA) | Reset System (ÁREA EXCLUSIVA COM CASTELO E HUNTS) para resetar fale !reset | Guild Frags System ( ACESSO AO PROMOTE E ITENS EXCLUSIVOS ) | War System (100% RODANDO EM SQLITE) | Cast System (100% Roda em Mysql ) ( Para Ativar vai em Config.lua e ache | enableCast = false | mude para true ) Duvidas entrem em http://www.tibiaking...os-na-distro/ | PvP Balanceado Agora com mais RPG | Armas Arrumadas Para Melhor PvP | Varios Eventos Automaticos | Battle Field Event | Capture The Flag Event | City War | Adicionado CASTLE 24HORAS (COM CASTELO) e AVISOS DE INVASORES | Itens DONATES | Área DONATE ~~ (Só Entra Quem Usar o Itens de Premium Days) | Vários Novos Script | Fast Atk Arrumado | Distro 0.4 Rodando 100% ( Se For 64x Bits) | Refinamento ( Aprimora seus Equipamentos ) | Frags no Look | Npc Hero Seller (Vende Itens Exclusivos para quem tiver honor points) Obs:Consegue no GFS) | Entre Outras Coisas | SENHA DO GOD: rox/styller | Aqui Vai Umas Prints | Castelo Reset System | Nova Imagem do Templo | Área Donate | Mostra de Itens Donate + Eventos | Download | Scan | Créditos | Gostou ? Então dei um REP2 pontos -
[v32] GlobalFull 11/12 - New Asuras, Falcons, Warzones 4,5,6 . (Updates Frequentes)
[v32] GlobalFull 11/12 - New Asuras, Falcons, Warzones 4,5,6 . (Updates Frequentes)
anderson de souza e um outro reagiu a Qwizer por uma resposta no tópico
2 pontosGlobal 11/12x [v32] - New Falcons - New Asuras - Warzone 4,5,6 - Exercise Training - Raids 100% - Monstros 100% - Trainer Offline 100% - Trainer Online 100% - Taming system funcionando 100%; - Database completa - War System 100% - Global MAP Full - Store 100% - Imbuement - Prey System - Entre outros sistemas. Projeto no: GITHUB Scan Vírus Total IMAGES Créditos:2 pontos -
TFS 0.4 CAST
TFS 0.4 CAST
Lurk e um outro reagiu a luanluciano93 por uma resposta no tópico
2 pontosOlá pessoal, tive a iniciativa de criar esse tópico para atualizar e otimizar as sources do TFS 0.4 DEV que é uma das mais usadas no mundo do otserv. Conteúdo totalmente gratuito e pretendemos melhora-lo cada vez mais. Qualquer um pode colaborar, postando bugs, erros, otimizando códigos, comentar aqui no tópico, toda ajuda é bem vinda, vamos tornar essa a melhor source disponível. Conto com vocês. Versão do Tibia: 8.60 Alguns sistema já implementados na source: • TFS 0.4 DEV rev 3777 (by TFS Team) • Anti-Divulgação (.servegame, .no-ip, .net, .com, .org, .pl, .biz, .br, .sytes, .info) • War System • Cast System (by Summ) • Retirado bugs de anti-push .. • Retirado bugs de elfbot ... • Retirado erro de não aceitar outros items ... • Retirado erro de Malformed File ... • Add creatureevent onMoveItem() ... • Add função getCreaturePathTo () ... • E vários outros! Complementos: • Add cast System (passo a passo): [AQUI] • Pode add o comando na config.lua: healthHealingColor = COLOR_GREEN -- [podendo alterar a cor]. manaHealingColor = COLOR_DARKPURPLE -- [podendo alterar a cor]. Downloads: • Distro Compilada 32x • Distro Compilada 64x • Sources 7 TESTADO EM WINDOWS, DEBIAN 7.8, UBUNTU 12.04 E 14.05! • Compilar em Linux: • Erros para arrumar: Obrigado ao runeraserver pelo incentivo em fixa-la para linux E é isso pessoal, espero ter ajudado, abraços2 pontos -
[Link Quebrado]Pokémon Dash v6 open source
►Hoje estou trazendo aqui para vocês o download do pokemon dash v6 open source! ►Lista dos sistemas, lembrando o servidor não contem level system v1.0 v2.0 v3.0 beta v4.0 v5.0 v6.0 ► O servidor pode ser desatualizado próximo ao pda porem o Dash v6 é \/ ► Antes de falarem ctrl +c ctrl+v leia \/ ► Download - no download contem client + server + sources ! http://www.4shared.com/rar/VPIc8EeQba/servidor_pokemon_dash_v6.html? ► uma img para terem noção do que estão baixando ► Scan ► Créditos Brun123 por ums 92% do servidor Snix ajustou varios bugs no source, e compilou o executavel etc...2 pontos
-
Nova moeda no ot. Script
2 pontosEm PastaDoSeuOt/data/actions/ Edite o arquivo: actions.xml Adicione essas linhas no seu actions.xml, procure antes pra ver se já tinha uma delas e apague e coloque assim: Em PastaDoSeuOt/data/actions/scripts/other Edite o arquivo (ou crie): changegold.lua Agora vá em Em PastaDoSeuOt/data/items/ Edite o arquivo: items.xml Procure por Você pode substituir por outro item basta trocar os 9971 por outro id desejado eu coloquei esse porque gosto da imagem de barra de ouro, não se esqueça de tirar os loots dos monstros q dropam o gold ignote http://www.tibiawiki.com.br/wiki/Gold_Ingot2 pontos
-
[Evento] 3 Times e um Boss
[Evento] 3 Times e um Boss
maikons e um outro reagiu a tddf1995 por uma resposta no tópico
2 pontosAcho que esse seu evento também tem BUG camarada, você só mexeu com onKill, e se todo mundo morrer? O evento vai ficar lá acontecendo... Sem ninguém nele!2 pontos -
Faça seu pedido aqui!
2 pontosNão intendi muito bem seu pedido... @AnaFeeh Tá aqui carinha postei em download porque pesa 37MB Download: Clique aqui!2 pontos
-
[Pedido] 4º Moeda
[Pedido] 4º Moeda
Iuri Machado e um outro reagiu a tddf1995 por uma resposta no tópico
2 pontosPostei aqui pra você tim tim por tim tim! http://www.tibiaking.com/forum/topic/39785-nova-moeda-kk/2 pontos -
[Pedido] XP gain por Hit
[Pedido] XP gain por Hit
luccagomes e um outro reagiu a tddf1995 por uma resposta no tópico
2 pontosÉ só pesquisar um poquinho que você acha, antes de criar um tópico tenta procurar no google, sua dúvida, no fórum e em ultimo caso você posta se não o pessoal pode ficar meio saturado (não to falando que é seu caso, mas a maioria aqui quer tudo na mão, cuspido e mastigado) Exp por HIT: http://www.tibiaking.com/forum/topic/11789-exp-por-hit-v30-oficial-xotservx/ Por stages no exp hit: http://www.tibiaking.com/forum/topic/9611-resolvido-ajuda-stages-no-exp-por-hit/2 pontos -
Critical Skill System
Critical Skill System
joaopedrodepaiva reagiu a xWhiteWolf por uma resposta no tópico
1 pontoFala galera do TK, vejo que tem bastante gente procurando esse sisteminha que é praticamente igual ao dodge system, então eu decidi fazer visto que na realidade era só mudar 3 linhas kkkk em todo caso ta aí pra quem quiser: creaturescripts.xml: <!-- CRITICAL SYSTEM --> <event type="statschange" name="critical" event="script" value="critical.lua"/> creaturescripts\scripts\login.lua: --- CRITICAL SYSTEM ---- registerCreatureEvent(cid, "critical") if getPlayerStorageValue(cid, 48913) == -1 then setPlayerStorageValue(cid, 48913, 0) end creaturescritps\scripts\critical.lua: --[[Critical System ------------------------- By Night Wolf]] local lvlcrit = 48913 local multiplier = 1.5 function onStatsChange(cid, attacker, type, combat, value) if isPlayer(attacker) and (not (attacker == cid)) and (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) then if (getPlayerStorageValue(attacker, lvlcrit)*3) >= math.random (0,1000) then dano = math.ceil(value*(multiplier)) doTargetCombatHealth(attacker, cid, combat, -dano, -dano, 255) doSendAnimatedText(getCreaturePos(attacker), "CRITICAL!!", 144) return false end end return true end lvlcrit é o storage que fica salvo o seu level de critical e multiplier é o multiplicador do dano para ataques críticos.. nesse caso um ataque critico vai ser 1,5 vezes maior doque um ataque normal (50% maior) Agora em actions.xml adicione: <action itemid="1294" script="criticalrock.lua"/> e em actions\scripts\criticalrock.lua adicione: --- CRITICAL System by Night Wolf local config = { effectonuse = 14, -- efeito que sai levelscrit = 100, --- leveis que terão storagecrit = 48913 -- storage que será verificado } function onUse(cid, item, frompos, item2, topos) if getPlayerStorageValue(cid, config.storagecrit) < config.levelscrit then doRemoveItem(item.uid, 1) doSendMagicEffect(topos,config.effectonuse) doPlayerSendTextMessage(cid,22,"You've Leveled your Critical Skill to ["..(getPlayerStorageValue(cid, config.storagecrit)+1).."/"..config.levelscrit.."].") setPlayerStorageValue(cid, config.storagecrit, getPlayerStorageValue(cid, config.storagecrit)+1) elseif getPlayerStorageValue(cid, config.storagecrit) >= config.levelscrit then doPlayerSendTextMessage(cid,22,"You've already reached the MAX level of Critical Skill.\nCongratulations!!!!") return 0 end return 1 end Feito isso tá pronto, pra editar o item que dá a skill de critical vc edita no actions.xml mesmo: <action itemid="1294" << ID do item que será usado pra dar a skill. A config tá bem simples: effectonuse = 14, -- efeito que sai levelscrit = 100, --- leveis que terão storagecrit = 48913 -- storage que será verificado. Lembrando que cada pedra utilizada dará 0,3% a mais de chance.. 10 pedras dão 3% de chance de dar critico a cada ataque e 100 pedras (NIVEL MÁXIMO PADRÃO) dará 30% de chance de dar crítico em cada ataque. Espero que vcs gostem, qualquer coisa deixem os comentários aqui. Obs: aqui tá uma foto Note que esse script só funciona em players, se vc quiser que funcione em monstros você vai ter que abrir um por um todos os monstros do server e colocar essa tag aqui: <script> <event name="critical"/> </script> coloque antes de </monster> Minha dica: coloquem apenas no Trainer pra que o player consiga ver que ele tem o critical e quanto ele tira e deixem avisado que o sistema só vai funcionar em players.1 ponto -
[Castle War 24H] Conquiste o trono!
[Castle War 24H] Conquiste o trono!
rkkksalgado reagiu a Absolute por uma resposta no tópico
1 pontoFala galera linduxa do TK; hoje trago a vocês o tão desejado CASTLE WAR 24 HORAS, isto gera disputa intensa entre as guilds de seu servidor, atraindo assim mais jogadores que se interessam por guerras e seus demais sistemas! Modificado e com funções diferentes, no tópico ensinarei como instalar e como funciona. Como funciona? WOOOOOOOOW! Há um portal 24h aberto em algum lugar do seu mapa que ficará com o castle disponível 24h (avá). Quando uma guild qualquer acessar o portal do castelo, irá aparecer para o servidor que a X guild está tentando dominar o castelo, então o líde da guild dominante atual irá dizer !gocastle para teleportar ao castelo e defende-lo. O Objetivo para conquista do mesmo é invadi-lo derrotar os defensor da guild atual para abrir passagem, digamos assim, e subir ao trono, quando um membro da guild invadir o templo do trono e subir no mesmo a antiga guild dominadora é teleportada para o templo e o castelo fica sob domínio da nova guild. Você poderá colocar como premiação acesso a áreas exclusivas do castelo, no caso hunts e cia. (Fica a vosso critério) Evento testado nas versões 8.6; 9.6; 9.83; 9.86! Observação: Comando !gocastle faz com que o líder possa teleportar todos os membros da sua guild online para perto dele, desde que ele esteja no castle. Comando pode ser usado a cada 3 horas (exhausted). Vamos aos scripts do sistema; Em data/actions/scripts crie um arquivo com o nome de naviocastle.lua e coloque dentro: function onUse(cid, item, fromPosition, itemEx, toPosition) if(item.actionid == 65500) then if getTopCreature({x=32464,y=32378,z=5}).uid > 0 then doTeleportThing(getTopCreature({x=32464,y=32378,z=5}).uid, {x=32526,y=32421,z=5}) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) else doPlayerSendCancel(cid, "Você precisa estar em cima do tapete.") return true end elseif (item.actionid == 65501) then if getTopCreature({x=32526,y=32421,z=5}).uid > 0 then doTeleportThing(getTopCreature({x=32526,y=32421,z=5}).uid, {x=32464,y=32378,z=5}) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) else doPlayerSendCancel(cid, "Você precisa estar em cima do tapete.") end end return true end Em actions.xml adicione a seguinte linha: <action actionid="65500-65501" event="script" value="naviocastle.lua"/> Pós feito isto, em data/lib crie um arquivo com o nome de 015-COH e adicione dentro dele: -- This program is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation, either version 3 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program. If not, see <http://www.gnu.org/licenses/>. -- // COH_PUSHTIME = 10800 -- Tempo (em segundos) de exhausted para usar o comando !gocastle - Padrão (3 horas) COH_AREA = {{x = 32458, y = 32332, z = 7}, {x = 32558, y = 32429, z = 7}} -- Canto superior esquerdo / inferior direito do Castle -- // Não mexa daqui para baixo COH_STATUS = 201320111714 COH_PREPARE1 = 201320111715 COH_PUSHSTOR = 201320111716 COH_PREPARE2 = 201320111717 function doCastleRemoveEnemies() for index, creature in ipairs(getPlayersOnline()) do if isInArea(getThingPos(creature), COH_AREA[1], COH_AREA[2]) then if getPlayerGuildName(creature) ~= getGlobalStorageValue(COH_STATUS) then doTeleportThing(creature, getTownTemplePosition(getPlayerTown(creature))) end end end return true end Proximo passo, em data/monster.xml adicione a seguinte linha: <monster name="Castle Guardian" file="Castle Guardian.xml"/> Em data/monsters crie um arquivo com o nome de Castle Guardian.xml e adicione o seguinte: <?xml version="1.0" encoding="UTF-8"?> <monster name="Castle Guardian" nameDescription="a castle guardian" race="blood" experience="0" speed="0" manacost="0"> <health now="800000" max="800000"/> <look type="131" head="57" body="19" legs="57" feet="95" addons="1" corpse="6080"/> <targetchange interval="5000" chance="30"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="0"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="0"/> <flag pushable="0"/> <flag canpushitems="1"/> <flag canpushcreatures="1"/> <flag targetdistance="4"/> <flag staticattack="90"/> <flag runonhealth="800"/> </flags> <attacks> <attack name="melee" interval="2000" min="-60" max="-180"/> <attack name="physical" interval="1000" chance="35" range="7" min="-205" max="-385"> <attribute key="shootEffect" value="energy"/> </attack> <attack name="manadrain" interval="1000" chance="17" range="7" min="-205" max="-560"/> <attack name="speed" interval="1000" chance="12" range="7" speedchange="-600" duration="40000"> <attribute key="areaEffect" value="redshimmer"/> </attack> <attack name="fire" interval="2000" chance="45" range="7" radius="3" target="1" min="-250" max="-420"> <attribute key="shootEffect" value="burstarrow"/> <attribute key="areaEffect" value="firearea"/> </attack> <attack name="firefield" interval="1000" chance="20" range="7" radius="2" target="1"> <attribute key="shootEffect" value="fire"/> </attack> <attack name="energy" interval="2000" chance="25" length="8" spread="0" min="-265" max="-445"> <attribute key="areaEffect" value="energy"/> </attack> <attack name="speed" interval="6000" chance="10" range="5" speedchange="-600" duration="20000"> <attribute key="areaEffect" value="redshimmer"/> </attack> </attacks> <defenses armor="1" defense="1"/> <elements> <element firePercent="100"/> <element energyPercent="100"/> <element icePercent="100"/> <element earthPercent="90"/> <element holyPercent="-25"/> <element physicalPercent="-33"/> </elements> <immunities> <immunity paralyze="1"/> <immunity invisible="1"/> </immunities> <summons maxSummons="2"> <summon name="deathspawn" interval="1500" chance="0" max="0"/> </summons> <loot> <item id="2148" countmax="20" chance1="100000" chancemax="0"/> </loot> </monster> Pós isto; Em data/movements/scripts crie um arquivo com o nome de COH.lua e adicione o seguinte: -- This program is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation, either version 3 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program. If not, see <http://www.gnu.org/licenses/>. -- // 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 if item.actionid == 16202 then if not isPlayer(cid) then return true end if getPlayerGuildId(cid) > 0 then if (getGlobalStorageValue(COH_STATUS) ~= getPlayerGuildName(cid)) then doPlayerSendTextMessage(cid, 20, "[Castle of Honor] Você e sua guild estão no comando, os antigos donos ["..tostring(getGlobalStorageValue(COH_STATUS)).."] podem se vingar!") setGlobalStorageValue(COH_PREPARE1, -1) setGlobalStorageValue(COH_PREPARE2, -1) setGlobalStorageValue(COH_STATUS, getPlayerGuildName(cid)) doCastleRemoveEnemies() doBroadcastMessage("[Castle of Honor] O jogador ["..getCreatureName(cid).."] e sua guild ["..getPlayerGuildName(cid).."] estão no comando do castelo, vá dominar e impedir isso!") end else doSendMagicEffect(pos, 2) doTeleportThing(cid, fromPosition, false) doPlayerSendCancel(cid, "[CoH] Você não possui uma guild.") end return true end if item.actionid == 16200 then if not isPlayer(cid) then return true end if getPlayerGuildId(cid) > 0 then doSendAnimatedText(pos, "CoH", math.random(1, 255)) if (getGlobalStorageValue(COH_PREPARE1) ~= getPlayerGuildName(cid)) and ((getGlobalStorageValue(COH_PREPARE2) ~= getPlayerGuildName(cid))) then setGlobalStorageValue(COH_PREPARE1, getPlayerGuildName(cid)) doBroadcastMessage("[Castle of Honor] Atenção! A guild "..getPlayerGuildName(cid).." está tentando dominar o castelo, preparem-se!") end else doSendMagicEffect(pos, 2) doTeleportThing(cid, fromPosition, false) doPlayerSendCancel(cid, "[CoH] Você não possui uma guild.") return true end end if item.actionid == 16201 then if not isPlayer(cid) then return true end doSendAnimatedText(pos, "CoH", math.random(1, 255)) if (getGlobalStorageValue(COH_PREPARE2) ~= getPlayerGuildName(cid)) then setGlobalStorageValue(COH_PREPARE2, getPlayerGuildName(cid)) doBroadcastMessage("[Castle of Honor] Atenção! A guild "..getPlayerGuildName(cid).." está muito próxima do domínio, ataquem!") end end return true end Em data/movements/movements.xml adicione a seguinte linha: <movevent type="StepIn" actionid="16200-16203" event="script" value="COH.lua"/> Próximo passo: Em data/talkactions/scripts crie um arquivo com o nome de COHABSOLUTE.lua e adicione o seguinte: -- This program is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation, either version 3 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program. If not, see <http://www.gnu.org/licenses/>. -- // function onSay(cid, words, param) if getPlayerGuildLevel(cid) == GUILDLEVEL_LEADER then if getPlayerStorageValue(cid, COH_PUSHSTOR) < os.time() then if getGlobalStorageValue(COH_STATUS) == getPlayerGuildName(cid) then if isInArea(getThingPos(cid), COH_AREA[1], COH_AREA[2]) then if #getMembersOnline(getPlayerGuildId(cid)) > 0 then for index, creature in ipairs(getMembersOnline(getPlayerGuildId(cid))) do if (getTileInfo(getThingPos(creature)).protection ~= true) then return doPlayerSendCancel(cid, "[CoH] Os membros devem estar em área PZ.") end doTeleportThing(creature, getThingPos(cid)) end setPlayerStorageValue(cid, COH_PUSHSTOR, os.time() + COH_PUSHTIME) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "[Castle of Honor] Você teleportou seus membros, comando pode ser usado a cada "..tostring(COH_PUSHTIME / 60).." minuto(s).") else doPlayerSendCancel(cid, "[CoH] Para executar isso, sua guild deve ter 2 ou mais membros online.") end else doPlayerSendCancel(cid, "[CoH] Você deve estar no castelo.") end else doPlayerSendCancel(cid, "[CoH] Sua guild não é dona do castelo.") end else doPlayerSendCancel(cid, "[CoH] Você deve aguardar "..tostring(math.ceil((getPlayerStorageValue(cid, COH_PUSHSTOR) - os.time()) / 60)).." minuto(s) para usar este comando.") end else doPlayerSendCancel(cid, "[CoH] Você deve ser líder de uma guild para executar este comando.") end return true end function getMembersOnline(id) local mbr = {} for index, creature in ipairs(getPlayersOnline()) do if getPlayerGuildId(creature) == id then if getCreatureSkullType(creature) < 3 then table.insert(mbr, creature) end end end return mbr or #mbr end Em data/talkactions/talkactions.xml adicione a seguinte linha: <talkaction words="!castlepush;!pushmembers;!gocastle" event="script" value="COHABSOLUTE.lua"/> Quem disponibiliza o mapa do castelo a vocês é nosso amigo ViitinG, segue o link do tópico para download do mesmo já adaptado para este Castle: http://www.tibiaking.com/forum/topic/35730-mapa-evento-war-castle/ Explicação das actions e demais (caso não use o mapa disponibilizado pelo Viiting lembre de adicionar ao castelo); ActionID 16200 - No meio do caminho para o castelo, ActionID 16201 - Perto do castelo, ActionID 16202 - No piso, trono que faz com que domine, e ActionID 16203 - Para a passagem de acesso ás hunts / city exclusivas da guild vencedora. Importante: Para colocar uma passagem para as hunts ou o que for a premiação da guild vencedora, coloque um caminho único com os actionIDS 16203, assim só a guild dominante do castelo poderá passar neste local. É importante lembrar que este script é de autoria do Roksas Nunez, ex scripter da empresa chaitosoft, fiz simples modificações de otimização. Qualquer dúvida peço que entre em contato comigo e poste aqui no tópico. Créditos: Absolute Roksas ViitinG Espero que gostem, afinal raro alguém disponibilizar algo tão desejado e útil assim! Até o próximo sistema. Absolute on tibiaking =p1 ponto -
[Mod] Automatic Raids [Dia E Hora Marcada]
Automatic Raids.xml <?xml version="1.0" encoding="UTF-8"?> <mod name="Automatic Raids" version="1.0" author="Vodkart And xotservx" contact="tibiaking.com" enabled="yes"> <config name="raids_func"><![CDATA[ days = { ["Monday"] = { ["21:30"] = {nome = "Orshabaal", pos = {fromPosition = {x=184, y=55, z=7},toPosition = {x=188, y=58, z=7}},m = {"5 Fire Devil", "2 Orshabaal"}, Time = 15}, ["21:33"] = {nome = "Dragon", pos = {fromPosition = {x=197, y=57, z=7},toPosition = {x=203, y=60, z=7}},m = {"100 Dragon"}, Time = 20} }, ["Sunday"] = { ["10:08"] = {nome = "Demon", pos = {fromPosition = {x=202, y=11, z=7},toPosition = {x=204, y=12, z=7}}, m = {"1 Demon"}, Time = 15}, ["10:46"] = {nome = "Hydra", pos = {fromPosition = {x=197, y=57, z=7},toPosition = {x=203, y=60, z=7}}, m = {"7 Hydra", "4 Cyclops"}, Time = 20} } } ]]></config> <globalevent name="AutomaticRaids" interval="60" event="script"><![CDATA[ domodlib('raids_func') function onThink(interval, lastExecution) if days[os.date("%A")] then hours = tostring(os.date("%X")):sub(1, 5) tb = days[os.date("%A")][hours] if tb then function removeCreature(tb) for x = ((tb.pos.fromPosition.x)-10), ((tb.pos.toPosition.x)+10) do for y = ((tb.pos.fromPosition.y)-10), ((tb.pos.toPosition.y)+10) do local m = getTopCreature({x=x, y=y, z= tb.pos.fromPosition.z}).uid if m ~= 0 and isMonster(m) then doRemoveCreature(m) end end end end doBroadcastMessage("The invasion of " .. tb.nome .. " started") for _,x in pairs(tb.m) do for s = 1, tonumber(x:match("%d+")) do pos = {x = math.random(tb.pos.fromPosition.x, tb.pos.toPosition.x), y = math.random(tb.pos.fromPosition.y, tb.pos.toPosition.y), z = tb.pos.fromPosition.z} doSummonCreature(x:match("%s(.+)"), pos) end end addEvent(removeCreature, tb.Time*60*1000, tb) end end return true end ]]></globalevent> </mod> Configuração: days = { ["Monday"] = { ["21:30"] = {nome = "Orshabaal", pos = {fromPosition = {x=184, y=55, z=7},toPosition = {x=188, y=58, z=7}},m = {"5 Fire Devil", "2 Orshabaal"}, Time = 1}, ["21:33"] = {nome = "Dragon", pos = {fromPosition = {x=197, y=57, z=7},toPosition = {x=203, y=60, z=7}},m = {"100 Dragon"}, Time = 2} }, ["Tuesday"] = { ["10:44"] = {nome = "Demon", pos = {fromPosition = {x=184, y=55, z=7},toPosition = {x=188, y=58, z=7}}, m = {"5 Demon", "8 Fire Devil"}, Time = 1}, ["10:46"] = {nome = "Hydra", pos = {fromPosition = {x=197, y=57, z=7},toPosition = {x=203, y=60, z=7}}, m = {"7 Hydra", "4 Cyclops"}, Time = 2} } } ["DIA"] = { ["HORA DA INVASÃO"] = {nome = "NOME DA INVASÃO", pos = {começo e final da área}, monster = {"MONSTROS"}, Time = para remover os monstro} } O dia da invasão é colocada entre " " e somente dia em inglês e a primeira letra maiúscula, exemplo: "Saturday" Depois são as hora da invasão, que é colocada entre " " e somente a hora e minuto, segundos não precisa exemplo: "15:00" As Posições estão entre { } adicionando as posições x, y e z, é o começo e final da área exemplo: pos = {fromPosition = {x=197, y=57, z=7},toPosition = {x=203, y=60, z=7}} fromPosition -- começo da área onde vai acontecer a raid toPosition -- final da área onde vai acontecer a raid Os monters tem um modo especial de configurar, vc coloca entre { }, e cada monstro entre " ", e entre as " " vc adiciona "QUANTIDADE MONSTRO", e para adicionar mais tipos de monstro se separa por virgulas, exemplo: {"40 Water Elemental", "5 Cyclops"} Time é uma função extra, é para caso ninguém participe do evento os monstros não fiquem pelo mapa, e é em minutos, exemplo: Time = 151 ponto
-
Volatile Spiderling
Volatile Spiderling
Claudio Marcio reagiu a xWhiteWolf por uma resposta no tópico
1 pontoFala galera do TK, hoje eu venho mais uma vez trazer uma das magias mais incríveis que eu já vi até hoje (sério). A magia original foi feita em outro fórum mas para a versão 10.1... como eu vi que ninguém conseguiu adaptar pra versões inferiores eu decidi criar a minha própria volatile spiderling. Confesso que no começo eu tive muita dificuldade em achar as funções certas mas depois de tentar ajudar o membro @234567890z no suporte eu tive uma epifania. Sem mais delongas eu vou explicar oque o script faz e em seguida ensinar a colocá-lo no seu server. • Explicação: A magia foi feita baseada na personagem Elise do jogo League of Legends: você faz uma cria que anda até os oponentes e se explodem causando dano em area e deixando eles envenenados. Aqui tem um gif da magia funcionando obs: note que esse gif não fui eu que fiz mas ele demonstra exatamente como a magia funciona. • Instalação: Pra instalá-lo no seu servidor vai ser um pouco complicado pois ele requer diversas modificações... antes de mais nada, coloque essas linhas no seu spells.xml: <instant name="Volatile Spiderling" words="utevo res tera" lvl="40" mana="20" prem="1" selftarget="1" exhaustion="2000" groups="1,2000" icon="88" needlearn="0" event="script" value="especiais/spiderling.lua"> <vocation id="3"/> <vocation id="7"/> </instant> <instant name="poison explosion" words="poison explosion" lvl="0" mana="0" prem="0" aggressive="1" exhaustion="3000" needlearn="1" event="script" value="especiais/newspider.lua"> </instant> Agora você vai ter que criar os dois arquivos na pasta spells\scripts\especiais. Em newspider.lua coloque o seguinte: agora em spiderling.lua coloque o seguinte: Agora feito isso vc vai precisar criar o monstro que usará essa spell.. vá em monster\monsters.xml e adicione a seguinte linha: <monster name="Clone Spider" file="arachnids/newspider.xml"/> agora crie o arquivo data\monsters\arachnids\newspider.xml e adicione o seguinte nele: local poisonpowder = createConditionObject(CONDITION_POISON) setConditionParam(poisonpowder, CONDITION_PARAM_DELAYED, 1) local damageTable = { {4, -3}, {9, -2}, {20, -1} } for i = 1, #damageTable do local t = damageTable[i] addDamageCondition(poisonpowder, t[1], 4000, t[2]) end local arr = { {0, 1, 0}, {1, 3, 1}, {0, 1, 0} } local area = createCombatArea(arr) function onPrepareDeath(cid, deathList) if isMonster(cid) and getCreatureName(cid):lower() == 'clone spider' then doAreaCombatHealth(cid, 1, getThingPos(cid), area, -1, -30, 20) doAreaCombatCondition(cid, getThingPos(cid), area, poisonpowder, 255) doSendMagicEffect(getThingPos(cid), 16) end return true end Agora eu vou ensinar vocês a editarem... não tem muito oque mudar, apenas se vc quiser alterar os danos da spell vá em newspider.lua e será possível editar os danos do poison e da explosão: local damageTable = { {4, -3}, {9, -2}, {20, -1} } aqui você muda quantos danos serão e quanto cada um tirará.. no caso serão 4 hits de -3, depois 9 hits de -2 e por fim 20 hits de -1 até o poison parar. Lembrando que esses danos saem de 4 em 4 segundos. Se você quiser que eles sejam mais rápidos é só editar aqui: addDamageCondition(poisonpowder, t[1], 4000, t[2]) (4000 significa 4 segundos). Feito isso será possível editar também a area e o dano da explosão respectivamente em: Area: Dano: doAreaCombatHealth(cid, 1, getThingPos(cid), area, -1, -30, 20) Em vermelho temos o dano mínimo, analogamente, em azul, temos o dano máximo. Em verde é possível editar o efeito da explosão Só lembrando que as edições que forem feitas no newspider.lua devem ser feitas no spider.lua para que a magia tenha graça.. se não o dano da explosão/poison ao explodir será diferente caso ela morrer antes. Em spiderling.lua vc pode editar a quantidade máxima de crias que um player pode ter... o normal está setado para 2 mas vc pode sentir-se livre pra colocar quantas queira. local maxsummon = 2 (Só lembre-se que ao explodir uma aranha pode acertar outra então não é muito bom deixar um numero maior que 3); Se você for daqueles bem chatinhos com a magia você ainda pode editar algumas coisas importantes tais como: O efeito que sai quando ela explode por morte ou pela spell: doSendMagicEffect(getThingPos(cid), 16) O tempo em que ela executa a spell, a chance da spell sair naquele tempo e quantos sqm de distancia a criatura alvo deve estar pra aranha se explodir: <attack name="poison explosion" interval="1000" range="1" chance="50"/> interval = de quantos em quantos segundos ela executa a spell range = distancia em sqm que o alvo deve estar pra que ela execute a spell chance = chance de executar a spell a cada interval (nesse caso a cada 1 segundo tem 50% de chance dela soltar a magia) Você ainda pode editar aqui em vermelho: o tempo que leva pra criatura executar a magia.. Por padrão eu deixei 2 segundos, ou seja... eu sumono a aranha, ela vai até o alvo e a cada segundo q ela passa grudada no alvo (1 sqm de distancia) ela tem 50% de chance de ativar a spell e ficar parada no lugar durante 2 segundos até explodir. Se você quiser que ela leve menos tempo pra explodir é só baixar o 2000 (em milisegundos).. Se você quiser aumentar o dano e deixar ela parada por mais tempo até explodir pode editar a vontade aumentando os 2000. • Bom, isso é tudo que dava pra eu explicar... é óbvio que dá pra editar muito mais coisa mas se você não é scripter e não tem muita idéia de como editar eu dei uma ensinada básica doque você está autorizado a mexer. Espero que vocês curtam a spell e deem aquele REP+ pra fortalecer kkkk Eu não pretendia liberar essa spell visto que ela é extremamente complexa e nenhum servidor tem ela, mas, acho que seria muito babaca da minha parte ficar guardando um script tão bonito hahaha. Qualquer erro ou dúvida postem nos comentários que eu tento ajudar. ah, mais uma coisa: Os créditos são 90% meus visto que eu fiz praticamente tudo.. 9% é pro cara que fez a magia original (se vcs derem uma procurada vcs vão ver que não tem quase nada a ver com a minha mas os créditos dele são por ele ter me dado a idéia) e 1% pro cara no suporte que me pediu ajuda numa spell do mesmo gênero e me fez correr atrás de uma forma de fazer essa magia pra versões inferiores a TFS 1.01 ponto -
[DOWNLOAD] Server PokeZot
[DOWNLOAD] Server PokeZot
thyagolima reagiu a AdmAlexandre por uma resposta no tópico
1 pontoEae Galerinha do TibiaKing Hoje Venho Postar um Servidor Mais não é Feito Por Min !! Lista Completa de Pokemon Adicionados!! Sistemas Quests Alterações Prints Downloads!! -Créditos-1 ponto -
[Action] Script de boost stone parecido com otpokemon
Olá pessoal tudo bem? Eu tava mexendo numas pastas aqui e achei esse script de boost stone muito simples. Ele boosta seu pokemon mas depois de tantos boost ele pode falhar é um pouco parecido com o do otpokemon. data/actions/scripts/boost stone.lua Tag em data/actions/actions.xml Foi testado em PDA sem level! Bom espero que tenham gostado e bom proveito!1 ponto
-
Criando Quest pelo Rme 2.1
Criando Quest pelo Rme 2.1
DarkRed reagiu a Leonardo Simonetto por uma resposta no tópico
1 ponto°Como Fazer Quest° Olá Pessoal do TibiaKing, Hoje Irei Encinar a Criar Quest Pelo Rme. Antes Disso Leia: Eu sei que existe varios tutoriais,video-aulas,etc... Estou Fazendo Por Minha Vontade o Tutorial ;P Comentem se Tiverem Duvidas ou Sugestões. Tutorial é Composto Por Imagens para Facilitar... Vamos ao Que Interessa! 1° Explicação: Após ter feito a Quest Inteira finalize ela com seus Baús, ou Crie um Lugar para First Items. (no meu caso) 2° Explicação: Para Achar o Baú Siga a Imagem. 3° Explicação: Para achar o Baú Siga a Imagem. 4° Explicação: Clique sobre o Baú e Coloque onde Quiser. 5° Explicação: Em Action ID: 2000 ---- Unique ID: de 1 a 599. Porque de 1 a 5999? Porque o Server Possui um Numero de Unique ID: Que significa Unico, os Numeros não podem se repetir. Apenas os Actons ID, podem se repetir. 6° Explicação: Depois de Colocar os ID's Clique Sobre o Quadrado Preto onde diz: Contents e Digite o ID ou Nome do item a ser ganho na quest. 7° Explicação: (Pausa para o lanche,cansei de fazer aqui...) Depois de escolher o item e dar Ok. Ficará assim a Imagem, (no lugar do Crystal Coin ficará seu item que você escolheu). 8° Explicação: Ali em Count: Coloque Quantidade que o Player Irá Ganhar. No meu caso eu coloquei Crystal Coin e ali em Count 3, ou seja o player irá ganhar 3 Crystal... Feito Tudo Isso, de Ok em tudo,Salve (CTRL+S) e Reinicie/Inicie seu Server. Atenção: O ADM não consegue abrir as quests, por isso Pegue um Player para testar de preferencia um Maker... Creditos: Leonardo Simonetto Gostou? #Rep_+1 ponto -
[MOD] Sounds
[MOD] Sounds
clecio reagiu a Will Oliveira por uma resposta no tópico
1 pontoO que faz? Esse mod, ao definirmos posições para ele, quando você estiver entre as posições ele tocará a música definida por você. Instalação: 1 - Em sua pasta otc/mods crie uma pasta chamada rcsound, crie um arquivo chamado rcsound.lua e adicione isto: SOUNDS_CONFIG = { soundChannel = SoundChannels.Music, checkInterval = 500, folder = 'music/', noSound = 'No sound file for this area.', } SOUNDS = { -- Rook Cave {fromPos = {x=879, y=803, z=8}, toPos = {x=1079, y=963, z=15}, sound = "FF VII - Main.ogg"}, -- Boss {fromPos = {x=977, y=903, z=8}, toPos = {x=1009, y=916, z=9}, priority = 1, sound="FF VII - Main.ogg"}, {fromPos = {x=1001, y=917, z=9}, toPos = {x=1002, y=919, z=9}, priority = 1, sound="FF VII - Main.ogg"}, -- Main -- Dragon {fromPos = {x=1089, y=1110, z=8}, toPos = {x=1135, y=1142, z=8}, priority = 1, sound="Fairy Tail - Main.ogg"}, {fromPos = {x=1102, y=1128, z=9}, toPos = {x=1131, y=1149, z=9}, priority = 1, sound="Fairy Tail - Main.ogg"}, {fromPos = {x=1117, y=1124, z=9}, toPos = {x=1128, y=1127, z=9}, priority = 1, sound="Fairy Tail - Main.ogg"}, {fromPos = {x=1100, y=1104, z=10}, toPos = {x=1127, y=1131, z=10}, priority = 1, sound="Fairy Tail - Main.ogg"}, {fromPos = {x=1103, y=1108, z=9}, toPos = {x=1108, y=1112, z=9}, priority = 1, sound="Fairy Tail - Main.ogg"}, {fromPos = {x=1096, y=1088, z=5}, toPos = {x=1110, y=1100, z=6}, priority = 1, sound="Fairy Tail - Main.ogg"}, } ---------- -- Sound local rcSoundChannel local showPosEvent local playingSound -- Design soundWindow = nil soundButton = nil function toggle() if soundButton:isOn() then soundWindow:close() soundButton:setOn(false) else soundWindow:open() soundButton:setOn(true) end end function onMiniWindowClose() soundButton:setOn(false) end function init() for i = 1, #SOUNDS do SOUNDS[i].sound = SOUNDS_CONFIG.folder .. SOUNDS[i].sound end connect(g_game, { onGameStart = onGameStart, onGameEnd = onGameEnd }) rcSoundChannel = g_sounds.getChannel(SOUNDS_CONFIG.soundChannel) -- rcSoundChannel:setGain(value/COUNDS_CONFIG.volume) soundButton = modules.client_topmenu.addRightGameToggleButton('soundButton', tr('Sound Info') .. '', '/images/audio', toggle) soundButton:setOn(true) soundWindow = g_ui.loadUI('rcsound', modules.game_interface.getRightPanel()) soundWindow:disableResize() soundWindow:setup() if(g_game.isOnline()) then onGameStart() end end function terminate() disconnect(g_game, { onGameStart = onGameStart, onGameEnd = onGameEnd }) onGameEnd() soundWindow:destroy() soundButton:destroy() end function onGameStart() stopSound() toggleSoundEvent = addEvent(toggleSound, SOUNDS_CONFIG.checkInterval) end function onGameEnd() stopSound() removeEvent(toggleSoundEvent) end function isInPos(pos, fromPos, toPos) return pos.x>=fromPos.x and pos.y>=fromPos.y and pos.z>=fromPos.z and pos.x<=toPos.x and pos.y<=toPos.y and pos.z<=toPos.z end function toggleSound() local player = g_game.getLocalPlayer() if not player then return end local pos = player:getPosition() local toPlay = nil for i = 1, #SOUNDS do if(isInPos(pos, SOUNDS[i].fromPos, SOUNDS[i].toPos)) then if(toPlay) then toPlay.priority = toPlay.priority or 0 if((toPlay.sound~=SOUNDS[i].sound) and (SOUNDS[i].priority>toPlay.priority)) then toPlay = SOUNDS[i] end else toPlay = SOUNDS[i] end end end playingSound = playingSound or {sound='', priority=0} if(toPlay~=nil and playingSound.sound~=toPlay.sound) then g_logger.info("RC Sounds: New sound area detected:") g_logger.info(" Position: {x=" .. pos.x .. ", y=" .. pos.y .. ", z=" .. pos.z .. "}") g_logger.info(" Music: " .. toPlay.sound) stopSound() playSound(toPlay.sound) playingSound = toPlay elseif(toPlay==nil) and (playingSound.sound~='') then g_logger.info("RC Sounds: New sound area detected:") g_logger.info(" Left music area.") stopSound() end toggleSoundEvent = scheduleEvent(toggleSound, SOUNDS_CONFIG.checkInterval) end function playSound(sound) rcSoundChannel:enqueue(sound, 0) setLabel(clearName(sound)) end function clearName(soundName) local explode = string.explode(soundName, "/") soundName = explode[#explode] explode = string.explode(soundName, ".ogg") soundName = '' for i = 1, #explode-1 do soundName = soundName .. explode[i] end return soundName end function stopSound() setLabel(SOUNDS_CONFIG.noSound) rcSoundChannel:stop() playingSound = nil end function setLabel(str) soundWindow:recursiveGetChildById('currentSound'):getChildById('value'):setText(str) end 2 - Crie um arquivo chamado rcsound.otmod e adicione isto: Module name: rc_sound description: Handels sounds for Rising Client. author: Shawak website: none autoload: true autoload-priority: 1000 sandbox: true scripts: [ rcsound ] @onLoad: init() @onUnload: terminate() 3 - Crie um arquivo chamado rcsound.otui e adicione isto: Module name: rc_sound description: Handels sounds for Rising Client. author: Shawak website: none autoload: true autoload-priority: 1000 sandbox: true scripts: [ rcsound ] @onLoad: init() @onUnload: terminate() 4 - Crie uma pasta dentro da rcsound, chamada music, dentro dela adicione os sons desejados, lembrando que o formato tem que ser OGG. Como configurar? É bastante simples, como definir as posições e a musica que tocará quando entrar nela: {fromPos = {x=879, y=803, z=8}, toPos = {x=1079, y=963, z=15}, sound = "FF VII - Main.ogg"} Então, o frompos = da posição, topos = para a posição, ou seja, frompos vai ser onde começa e topos termina. Sound = "FF VII - Main.ogg", o que está entre aspas é o nome da musica que se encontra na pasta music, lembrando que tem que colocar o .ogg Créditos: xS0NYx Shawak1 ponto -
The Forgotten Server v0.3.7 (10.37/10.41)
The Forgotten Server v0.3.7 (Crying Damson) Este TFS com suporte para o protocolo 10.37 e com quase todos novos recursos e centenas de correções de bugs raros, estarei disponibilizando aqui no fórum, para quem não sabe usar o TFS 1.0. - NPC Icones - 10.37, suporta versões ate 10.41. - Somente Sources não esta compilado para windows, foi testando em LINUX Ubuntu e Debian. - 100% Estável - War System por comando. - Infelizmente nao tem Browse Field - Não contem Cast System porem e 0.3.7 então não terão problemas em adiciona-lo. - Para adicionar ícones nos NPC só por isso no XML dele (speechbubble="3") escolha entre 1 a 4. ATUALIZADO - 18/05 - Agora Suporta ate 10.41, 100% - Corrigido Bugs na compilação. Scan Virus Total Download das SOURCES Download do TFS WINDOWS Download do GLOBAL Creditos: TFS TEAM, Eduardo Fernandes, jobsonmb (pela compilação windows) e a mim. erros no windows não me responsabilizo e não dou suporte pois não trabalho com otserv em windows.1 ponto
-
ERRO MULTI IP CHANGER
ERRO MULTI IP CHANGER
spamm reagiu a rogerogerio por uma resposta no tópico
1 pontoEAE GALERINHAAA DO TIBIA KING TUDO TRANQUILO? Bom,Estou interessado em tentar criar um ot server,já peguei vários tutoriais no youtube ,porém depois que o server está online e vou no ip multi changer tentar abri-lo, o ip multi changer diz:"Tibia Not Found", como resolvo isso?1 ponto -
Faço Scripts Para Todos
Faço Scripts Para Todos
fernandobernardin reagiu a gabisa00 por uma resposta no tópico
1 pontoOlá galera do TK, quero ajudar o pessoal com dificuldades, então vamos lá, faça seu pedido que eu provavelmente vou faze-lo, somente peço que usem o fomulário. Nome Fantasia do Script: Como ele Vai Funcionar: Qual a Finalidade: Urgência: OBS: Regras: Necessário ter 100 ou mais posts. Pedidos podem ser NEGADOS. Aguarde sua vez, analiso cada caso. Não garanto que os sistemas vão funcionar de Primeira. Agradeço aqueles que postarem seus pedidos desde já. OBS, vou disponibilizar todos os scripts que fizer.1 ponto -
Shaders do OTClient
1 pontoOlá Galera do TK Eu achei aqui no fórum mesmo umas shaders de chuva para meu otclient, configurei certinho mais só que quando abro o OTC e vou no local que configurei está normal chuvendo direitinho mais quando ando uma sqm pra qualquer lado (Direito ou Esquerdo) para de chuve fica normal, só achei estranho por que tenho outro shader de neblina e ele Funciona normal na cidade Toda. shaders.lua imagens de como está Esperando Resposta1 ponto
-
[8.60]Baiak Barao Editado DeathRocks
[8.60]Baiak Barao Editado DeathRocks
Well ownaz reagiu a Luukaaz por uma resposta no tópico
1 pontoPra quem ta com problema do save baixe http://www.4shared.c...ver_04_DEV.html e usa essa distro. OBS: crédito ao absoftfgn =))1 ponto -
Alguem quer me ajudar ?
1 pontoVerifique: http://www.tibiaking.com/forum/topic/32635-compilando-otserver-linux-ubuntu-1310-64bits/ 12.04 e 13.04 são as mesmas libs.1 ponto
-
Alguem quer me ajudar ?
1 pontoO tópico foi movido para a área correta, preste mais atenção da próxima vez! Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680 Este tópico foi movido: De: "OTServ → Suporte OTServ → Suporte de Infraestrutura" Para: "OTServ → Projetos / Formação de Equipes → Formação de Equipes"1 ponto
-
Trade OFF - Shop Offline
Trade OFF - Shop Offline
kingdj22 reagiu a Emersonssss por uma resposta no tópico
1 pontoSegue um lista in-game para quem não usa gesior e queria o sistema ! local config = { levelRequiredToAdd = 20, maxOffersPerPlayer = 5, SendOffersOnlyInPZ = true, blocked_items = {2165, 2152, 2148, 2160, 2166, 2167, 2168, 2169, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2343, 2433, 2640, 6132, 6300, 6301, 9932, 9933} } function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") return true end local t = string.explode(param, ",") if(t[1] == "add") then if((not t[2]) or (not t[3]) or (not t[4])) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") return true end if(not tonumber(t[3]) or (not tonumber(t[4]))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don't set valid price or items count.") return true end if(string.len(t[3]) > 7 or (string.len(t[4]) > 3)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "This price or item count is too high.") return true end local item = getItemIdByName(t[2]) if(not item) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Item wich such name does not exists.") return true end if(getPlayerLevel(cid) < config.levelRequiredToAdd) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don't have required (" .. config.levelRequiredToAdd .. ") level.") return true end if(isInArray(config.blocked_items, item)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "This item is blocked.") return true end if(getPlayerItemCount(cid, item) < (tonumber(t[4]))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry, you don't have this item(s).") return true end local check = db.getResult("SELECT `id` FROM `auction_system` WHERE `player` = " .. getPlayerGUID(cid) .. ";") if(check:getID() == -1) then elseif(check:getRows(true) >= config.maxOffersPerPlayer) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry you can't add more offers (max. " .. config.maxOffersPerPlayer .. ")") return true end if(config.SendOffersOnlyInPZ) then if(not getTilePzInfo(getPlayerPosition(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You must be in PZ area when you add offert to database.") return true end end if(tonumber(t[4]) < 1 or (tonumber(t[3]) < 1)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have to type a number higher than 0.") return true end local itemcount, costgp = math.floor(t[4]), math.floor(t[3]) doPlayerRemoveItem(cid, item, itemcount) db.executeQuery("INSERT INTO `auction_system` (`player`, `item_name`, `item_id`, `count`, `cost`, `date`) VALUES (" .. getPlayerGUID(cid) .. ", \"" .. t[2] .. "\", " .. getItemIdByName(t[2]) .. ", " .. itemcount .. ", " .. costgp ..", " .. os.time() .. ")") doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You successfully add " .. itemcount .." " .. t[2] .." for " .. costgp .. " gps to offerts database.") end if(t[1] == "buy") then if(not tonumber(t[2])) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Wrong ID.") return true end local buy = db.getResult("SELECT * FROM `auction_system` WHERE `id` = " .. (tonumber(t[2])) .. ";") if(buy:getID() ~= -1) then if(getPlayerMoney(cid) < buy:getDataInt("cost")) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don't have enoguh GP.") buy:free() return true end if(getPlayerName(cid) == getPlayerNameByGUID(buy:getDataInt("player"))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry, you can't buy your own items.") buy:free() return true end if(getPlayerFreeCap(cid) < getItemWeightById(buy:getDataInt("item_id"), buy:getDataInt("count")))then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You try to buy a " .. buy:getDataString("item_name") .. ". It weight " .. getItemWeightById(buy:getDataInt("item_id"), buy:getDataInt("count")) .. " cap oz. and you have only " .. getPlayerFreeCap(cid) .. " oz. free capacity. Put some items to depot and try again.") buy:free() return true end if(isItemStackable((buy:getDataString("item_id")))) then doPlayerAddItem(cid, buy:getDataString("item_id"), buy:getDataInt("count")) else for i = 1, buy:getDataInt("count") do doPlayerAddItem(cid, buy:getDataString("item_id"), 1) end end doPlayerRemoveMoney(cid, buy:getDataInt("cost")) db.executeQuery("DELETE FROM `auction_system` WHERE `id` = " .. t[2] .. ";") doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You bought " .. buy:getDataInt("count") .. " ".. buy:getDataString("item_name") .. " for " .. buy:getDataInt("cost") .. " gps!") db.executeQuery("UPDATE `players` SET `auction_balance` = `auction_balance` + " .. buy:getDataInt("cost") .. " WHERE `id` = " .. buy:getDataInt("player") .. ";") buy:free() else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Wrong ID.") end end if(t[1] == "remove") then if((not tonumber(t[2]))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Wrong ID.") return true end if(config.SendOffersOnlyInPZ) then if(not getTilePzInfo(getPlayerPosition(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You must be in PZ area when you remove offerts from database.") return true end end local delete = db.getResult("SELECT * FROM `auction_system` WHERE `id` = " .. (tonumber(t[2])) .. ";") if(delete:getID() ~= -1) then if(getPlayerGUID(cid) == delete:getDataInt("player")) then db.executeQuery("DELETE FROM `auction_system` WHERE `id` = " .. t[2] .. ";") if(isItemStackable(delete:getDataString("item_id"))) then doPlayerAddItem(cid, delete:getDataString("item_id"), delete:getDataInt("count")) else for i = 1, delete:getDataInt("count") do doPlayerAddItem(cid, delete:getDataString("item_id"), 1) end end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your offert has been deleted from offerts database.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "This is not your offert!") end delete:free() else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Wrong ID.") end end if(t[1] == "withdraw") then local balance = db.getResult("SELECT `auction_balance` FROM `players` WHERE `id` = " .. getPlayerGUID(cid) .. ";") if(balance:getDataInt("auction_balance") < 1) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You don't have money on your auction balance.") balance:free() return true end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You got " .. balance:getDataInt("auction_balance") .. " gps from auction system!") doPlayerAddMoney(cid, balance:getDataInt("auction_balance")) db.executeQuery("UPDATE `players` SET `auction_balance` = '0' WHERE `id` = " .. getPlayerGUID(cid) .. ";") balance:free() end if(t[1] == "list") then local result = db.getResult("SELECT * FROM `auction_system` ORDER BY `auction_system`.`id` ASC") if result:getID() == -1 then return true end local msg = "Trade Offline:\n\n!offer buy, ID\n!offer remove, ID\n!offer add, ItemName, ItemPrice, ItemCount\n\n" while true do local id = result:getDataString("id") local name = getPlayerNameByGUID(result:getDataString("player")) local item_name = getItemNameById(result:getDataString("item_id")) local count = result:getDataString("count") local custo = result:getDataString("cost")/1000 local custo2 = result:getDataString("cost") if isPlayer(cid) then msg = ""..msg.."ID : "..id.."\nItem Name : "..item_name.." - Item Count : "..count.." - Item Cust : "..custo.."k("..custo2.."GP) - Dono : "..name.."\n" end if not result:next() then break end end doPlayerPopupFYI(cid, msg) return true end return true end1 ponto -
GoTheHell Mapping Pieces
1 pontoDepois de algumas horas fazendo uma stream, aqui temos um resultado (clique na imagem para melhor resolução) Agradecimentos especiais à Mophus Ps.: Eu vou colocar isso para download. Pss.: Alguém pode me dar um servidor 10.35 que use mysql? plz? @Off Eu queira avisar, para quem gostaria de ver uma stream minha, que eu só vou fazer stream de sexta, podendo ser de tarde ou de noite.1 ponto
-
ERRO MULTI IP CHANGER
ERRO MULTI IP CHANGER
Demon123 reagiu a rogerogerio por uma resposta no tópico
1 pontoVou Testar, Estou baixando o tibia versão, se der certo, eu aviso aqui! Consegui,muito obrigado !1 ponto -
[8.60]Baiak Barao Editado DeathRocks
[8.60]Baiak Barao Editado DeathRocks
Luukaaz reagiu a Wiz Khalifa por uma resposta no tópico
1 pontoid's : 10311 Name : premium 1 Dia 10310 Name : premium 15 dias 10309 Name: premium 30 dias1 ponto -
(Resolvido)[Erro] Script de item
(Resolvido)[Erro] Script de item
Wend II reagiu a luanluciano93 por uma resposta no tópico
1 pontoTenta assim: function onUse(cid, item, fromPosition, item2, toPosition) if isPlayer(cid) then doSummonCreature("Salamence", getCreaturePosition(cid)) doSummonCreature("Tropius", getCreaturePosition(cid)) doSummonCreature("Metagross", getCreaturePosition(cid)) doSummonCreature("Aggron", getCreaturePosition(cid)) doSummonCreature("Lucario", getCreaturePosition(cid)) doSendMagicEffect(getCreaturePosition(cid), 29) doRemoveItem(item.uid, 1) doCreatureSay(cid,"Cuidado! Pokemons Muito Perigosos apareceram do Nada OMG.", TALKTYPE_ORANGE_1) end return true end1 ponto -
Arena War
Arena War
Iuri Machado reagiu a tddf1995 por uma resposta no tópico
1 pontogabisa00 e pessoal que ta usando o script: Dei uma olhada no script e achei um bug, quando o evento é fechado (por falta de players) ele só tira o valor da storage global, não mandando os jogadores pro templo, como a sala de espera é uma area NO-LOGOUT, isso pode ter problemas sérios, alem de os players ficarem presos, eles vão dar exit e vão contar como spoof ocasionando um BAN na otservlist (o que leva ao falimento do servidor) se o autor autorizar eu arrumo o script1 ponto -
Pedido Exp Ring por Action player ganhar 20% a mais de exp.
Pedido Exp Ring por Action player ganhar 20% a mais de exp.
matheus.agropassos reagiu a Absolute por uma resposta no tópico
1 pontoAmigo, esta função é outra, não tem como setar a porcentagem de rate a doPlayerAddExp ela seta a exp direta em GAIN, já o que você quer em porcentagem e no ganho não tem como.1 ponto -
Erro ao criar personagem pelo site
Tais usando Gesior ou Modern acc?1 ponto
-
Erro ao criar personagem pelo site
Erro ao criar personagem pelo site
matheus.agropassos reagiu a Absolute por uma resposta no tópico
1 pontoMudou tb no config.lua?1 ponto -
(Resolvido)Mudar Ip E Trocar Link De Fb
1° Já tem um host no no-ip? 2° C:\xampp\htdocs\templates 3° C:\xampp\htdocs no seu config.php1 ponto
-
como importar a database maior que 2 mbs para o xampps ?
Deixe ela com Formato RIP o Nome vai ficar mais ou menos assim >> otserver.sql.zip1 ponto
-
Pedido Exp Ring que aumenta 20% de exp
movement.xml PHP: <!-- Exp Ring --> <movevent type="Equip" itemid="6301" slot="ring" event="function" value="onEquipItem"/> <movevent type="Equip" itemid="6300" slot="ring" event="script" value="expring.lua"/> <movevent type="DeEquip" itemid="6300" slot="ring" event="function" value="onDeEquipItem"/> <movevent type="DeEquip" itemid="6301" slot="ring" event="script" value="expring.lua"/> expring.lua local config = { rate = 1.2, -- 20% } function onDeEquip(cid, item, slot) if(item.itemid == 6301) then doPlayerSetExperienceRate(cid, 1.0) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your extra experience rate has ended.") doTransformItem(item.uid, 6300) getConfigValue(key) --only worked with this line on my server, Delete it to test if it works without it end return true end function onEquip(cid, item, slot) if(item.itemid == 6300) then if getConfigValue("experienceStages") == "yes" then doPlayerSetExperienceRate(cid, getExperienceStage(getPlayerLevel(cid))*2) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your extra experience rate has been activated! It is now: " .. config.rate .. "x doubled your former experience rate.") doTransformItem(item.uid, 6301) doDecayItem(getPlayerSlotItem(cid, CONST_SLOT_RING).uid) else doPlayerSetExperienceRate(cid, getConfigValue("rateExperience")*2) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your extra experience rate has been activated! It is now: " .. config.rate .. "x doubled your former experience rate.") doTransformItem(item.uid, 6301) doDecayItem(getPlayerSlotItem(cid, CONST_SLOT_RING).uid) end return true end end items.xml Dúvidas me mande uma msg Creditos: rangoo (otland)1 ponto
-
(Resolvido)[Pedido] LIMIT NAS SKILLS, MENOS NA MAGIC, SOMENTE NAS SKILLS
(Resolvido)[Pedido] LIMIT NAS SKILLS, MENOS NA MAGIC, SOMENTE NAS SKILLS
Iuri Machado reagiu a tddf1995 por uma resposta no tópico
1 pontoTestado e funcionando em TFS 0.3.6pl1 (8.54) Em data\creaturescripts\scripts,crie um arquivo chamado: skillblock.lua1 ponto -
[ERRO] NPC Não responde
[ERRO] NPC Não responde
HilariClinton reagiu a Wiz Khalifa por uma resposta no tópico
1 pontoHoje abri meu servidor , para ver como está o mapa que estou editando , mais o mal educado do npc não me responde , eu falo Hi~Hello, e ele não responde e da um erro na distro IMAGEM : Alguém pode me ajudar? OBS : Acontece com todos os npc's.1 ponto -
[ajuda] como fazer um stone funcionar
[ajuda] como fazer um stone funcionar
lucasjua reagiu a Hadagalberto Jr. por uma resposta no tópico
1 pontoPara criar uma nova stone você precisa adicionar a sprite da stone no client com o ObjectBuilder. Depois duplique uma stone no itemEditor e colocar a imagem do seu item no dat. No /data/items/items.xml clone a tag de uma stone e em 'id' coloque o id do Server ID Depois no /data/lib/configuration.lua crie uma tag para sua nova stone com o Server ID Agora é só adicionar seu pokemon para evoluir com ela!!1 ponto -
[ERRO] NPC Não responde
[ERRO] NPC Não responde
HilariClinton reagiu a Wiz Khalifa por uma resposta no tópico
1 pontoè em todos NPC's1 ponto -
[ERRO] NPC Não responde
1 pontoMande o script default.lua e npchandler.lua se possível,por favor.1 ponto
-
Volatile Spiderling
Volatile Spiderling
Danves reagiu a xWhiteWolf por uma resposta no tópico
1 pontoessa linha vc teria que trocar pelo semelhante no seu server.. se for a função é só trocar, se não é só abrir o constant lua e procurar TALKTYPE_MONSTER_YELL = 20 Sobre o segundo problema, realmente, qnd der eu arrumo isso.. precisa só passar a spell do attack pra defesa que daí ela vai executar independente de ter alguém por perto ou não haha EDIT: se quiser arurmar é só trocar a spell da spider por isso daqui (a da spider mesmo, não a de invocar ela): local poisonpowder = createConditionObject(CONDITION_POISON) setConditionParam(poisonpowder, CONDITION_PARAM_DELAYED, 1) local damageTable = { {4, -3}, {9, -2}, {20, -1} } for i = 1, #damageTable do local t = damageTable[i] addDamageCondition(poisonpowder, t[1], 4000, t[2]) end local arr = { {0, 1, 0}, {1, 3, 1}, {0, 1, 0} } local area = createCombatArea(arr) function onCastSpell(cid, var) addEvent(function() if isCreature(cid) then doAreaCombatHealth(cid, 1, getThingPos(cid), area, -1, -30, 20) doAreaCombatCondition(cid, getThingPos(cid), area, poisonpowder, 255) doSendMagicEffect(getThingPos(cid), 16) doRemoveCreature(cid) end end, 100) return true end e o monstro spider vai ficar assim (perceba que tirei o ataque e coloquei na defesa) <?xml version="1.0" encoding="UTF-8"?> <monster name="Clone Spider" nameDescription="a spider" race="venom" experience="12" speed="152" manacost="210"> <health now="20" max="20"/> <look type="30" corpse="0"/> <targetchange interval="2000" chance="0"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="0"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="1"/> <flag convinceable="1"/> <flag pushable="0"/> <flag canpushitems="0"/> <flag canpushcreatures="0"/> <flag targetdistance="1"/> <flag staticattack="90"/> <flag runonhealth="0"/> </flags> <attacks> <!--<attack name="poison explosion" interval="1000" range="1" chance="50"/>--> </attacks> <defenses armor="2" defense="2"> <defense name="poison explosion" interval="4000" chance="99" duration="5000"> </defense> </defenses> <elements> <element firePercent="-10"/> </elements> <script> <event name="Spider"/> </script> </monster> perceba que vc pode manter ambos ativados (a spell de ataque pra ele só ativar a explosão qnd tiver a 1 sqm de distância do target e a spell de defesa pra explodir dps de X segundos se ele não tiver target) se usar o script anterior (só alterando os intervals).. seguinte: <defense name="poison explosion" interval="4000" chance="99" duration="5000"> a cada 4 segundos ele tem 99% de chance de executar o scrit e explodir, como isso é uma defesa e não um ataque ele vai utilizar mesmo q vc não esteja na dela da spider e mesmo q nao haja inimigos1 ponto -
[Action] Script de boost stone parecido com otpokemon
[Action] Script de boost stone parecido com otpokemon
GOD Vitor reagiu a lucasalsre por uma resposta no tópico
1 pontoNossa cara, gostei bastante desse script, ele está totalmente traduzido? (Eu vi que está traduzido, mas só queria ter certeza mesmo... Rep + pra você. Continue postando...1 ponto -
como coloca fly para vip
1 pontoposte o script.1 ponto
-
[Resolvido] Ajuda com raid's
[Resolvido] Ajuda com raid's
Natanael Beckman reagiu a Cat por uma resposta no tópico
1 pontonão sei mecher com esse tipo de funçao ai, sempre me confundo, tenta essas duas opções: fazer por globalevents script do vodkart 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"/> fazer por mod script do vodkart Automatic Raids.xml <?xml version="1.0" encoding="UTF-8"?> <mod name="Automatic Raids" version="1.0" author="Vodkart And xotservx" contact="xtibia.com" enabled="yes"> <config name="raids_func"><![CDATA[ days = { ["Monday"] = { ["21:30"] = {nome = "Orshabaal", pos = {fromPosition = {x=184, y=55, z=7},toPosition = {x=188, y=58, z=7}},m = {"5 Fire Devil", "2 Orshabaal"}, Time = 15}, ["21:33"] = {nome = "Dragon", pos = {fromPosition = {x=197, y=57, z=7},toPosition = {x=203, y=60, z=7}},m = {"100 Dragon"}, Time = 20} }, ["Sunday"] = { ["10:08"] = {nome = "Demon", pos = {fromPosition = {x=202, y=11, z=7},toPosition = {x=204, y=12, z=7}}, m = {"1 Demon"}, Time = 15}, ["10:46"] = {nome = "Hydra", pos = {fromPosition = {x=197, y=57, z=7},toPosition = {x=203, y=60, z=7}}, m = {"7 Hydra", "4 Cyclops"}, Time = 20} } } ]]></config> <globalevent name="AutomaticRaids" interval="60" event="script"><![CDATA[ domodlib('raids_func') function onThink(interval, lastExecution) if days[os.date("%A")] then hours = tostring(os.date("%X")):sub(1, 5) tb = days[os.date("%A")][hours] if tb then function removeCreature(tb) for x = ((tb.pos.fromPosition.x)-10), ((tb.pos.toPosition.x)+10) do for y = ((tb.pos.fromPosition.y)-10), ((tb.pos.toPosition.y)+10) do local m = getTopCreature({x=x, y=y, z= tb.pos.fromPosition.z}).uid if m ~= 0 and isMonster(m) then doRemoveCreature(m) end end end end doBroadcastMessage("The invasion of " .. tb.nome .. " started") for _,x in pairs(tb.m) do for s = 1, tonumber(x:match("%d+")) do pos = {x = math.random(tb.pos.fromPosition.x, tb.pos.toPosition.x), y = math.random(tb.pos.fromPosition.y, tb.pos.toPosition.y), z = tb.pos.fromPosition.z} doSummonCreature(x:match("%s(.+)"), pos) end end addEvent(removeCreature, tb.Time*60*1000, tb) end end return true end ]]></globalevent> </mod> Configuração: days = { ["Monday"] = { ["21:30"] = {nome = "Orshabaal", pos = {fromPosition = {x=184, y=55, z=7},toPosition = {x=188, y=58, z=7}},m = {"5 Fire Devil", "2 Orshabaal"}, Time = 1}, ["21:33"] = {nome = "Dragon", pos = {fromPosition = {x=197, y=57, z=7},toPosition = {x=203, y=60, z=7}},m = {"100 Dragon"}, Time = 2} }, ["Tuesday"] = { ["10:44"] = {nome = "Demon", pos = {fromPosition = {x=184, y=55, z=7},toPosition = {x=188, y=58, z=7}}, m = {"5 Demon", "8 Fire Devil"}, Time = 1}, ["10:46"] = {nome = "Hydra", pos = {fromPosition = {x=197, y=57, z=7},toPosition = {x=203, y=60, z=7}}, m = {"7 Hydra", "4 Cyclops"}, Time = 2} } } ["DIA"] = { ["HORA DA INVASÃO"] = {nome = "NOME DA INVASÃO", pos = {começo e final da área}, monster = {"MONSTROS"}, Time = para remover os monstro} } O dia da invasão é colocada entre " " e somente dia em inglês e a primeira letra maiúscula, exemplo: "Saturday" Depois são as hora da invasão, que é colocada entre " " e somente a hora e minuto, segundos não precisa exemplo: "15:00" As Posições estão entre { } adicionando as posições x, y e z, é o começo e final da área exemplo: pos = {fromPosition = {x=197, y=57, z=7},toPosition = {x=203, y=60, z=7}} fromPosition -- começo da área onde vai acontecer a raid toPosition -- final da área onde vai acontecer a raid Os monters tem um modo especial de configurar, vc coloca entre { }, e cada monstro entre " ", e entre as " " vc adiciona "QUANTIDADE MONSTRO", e para adicionar mais tipos de monstro se separa por virgulas, exemplo: {"40 Water Elemental", "5 Cyclops"} Time é uma função extra, é para caso ninguém participe do evento os monstros não fiquem pelo mapa, e é em minutos, exemplo: Time = 151 ponto -
[Pedido] Npc Que Teleporta Por Level
[Pedido] Npc Que Teleporta Por Level
Sotten reagiu a GiovaniRodrigo por uma resposta no tópico
1 pontoCrie um arquivo chamado James.lua na pasta data/npc/scripts e cole isso local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end local cfg = { toPos = {x=359, y=1667, z=7}, -- Posição que o jogador sera teleportado level = 170, -- Level necessário para ser teleportado price = 50 -- Dinheiro a ser cobrado para ser teleportado } function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'rocket') then selfSay('You are sure you want to go? You can not return.', cid) talkState[talkUser] = 1 elseif talkState[talkUser] == 1 then if msgcontains(msg, 'yes') then if getPlayerLevel(cid) >= cfg.level then if doPlayerRemoveMoney(cid, cfg.price) then doTeleportThing(cid, cfg.toPos) talkState[talkUser] = 0 else selfSay('You don\'t have enough money.', cid) end else selfSay('You need level having above '.. cfg.level ..'.', cid) end elseif msgcontains(msg, 'no') then selfSay('Skirt here!', cid) end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Configurando Crie um arquivo chamado Kiru.xml na pasta data/npc e cole isso <?xml version="1.0" encoding="UTF-8"?> <npc name="James" script="data/npc/scripts/James.lua" walkinterval="25" floorchange="0" access="5" level="1" maglevel="1"> <health now="150" max="150"/> <look type="128" head="114" body="12" legs="57" feet="114" addons="0" /> <parameters> <parameter key="message_greet" value="Hello, |PLAYERNAME|! Would like to travel to {rocket} quest?"/> <parameter key="message_walkaway" value="Hey Hey, where you go ?"/> <parameter key="message_farewell" value="Bye bye!"/> </parameters> </npc> Não testado. Dúvidas? Me avise. Att. Giovani Rodrigo1 ponto -
Como Fazer Pro Ot Mandar Mensagem Sozinho Pra Galera
Como Fazer Pro Ot Mandar Mensagem Sozinho Pra Galera
YouTubexD reagiu a principe sharingan por uma resposta no tópico
1 pontoDisponha1 ponto -
(RESOLVIDO) TFS
1 pontoTFS quer dizer The Forgotten Server, que é o nome do projeto do executavel para deixar seu ot online. Só isso.1 ponto