Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 06/07/15 em %
-
Dominus World - The new era
RetornoDeLaug e 5 outros reagiu a Bruno por um tópico no fórum
Introdução Este é um Baiak com o mapa modificado e atualizado com a última versão do Tibia, o intuito do projeto é valorizar um mapa muito jogado mesclando com o que há de novo. O Servidor será composto pela city principal, que segue o padrão do mapa porém com um diferencial, é uma cidade isolada, cercada por uma imensa muralha onde será acessível apenas por passagens secretas ou por navegação. Showoff Sistemas Em breve Agradecimentos @Daniel @RetornoDeLaug6 pontos -
[TFS 1.x] Vip System by Account
curruwilliam e 3 outros reagiu a Bruno por um tópico no fórum
Este é o sistema de Vip Account do Mock, convertido ao TFS 1.1 e TFS 1.2, utilizando a nova funcionalidade de concatenação. Vip System: Piso Vip: Talkaction para Add Vip: Créditos: Bruno Minervino Mock4 pontos -
Item que usa e muda o outfit
markindoot e 2 outros reagiu a XScupion por uma questão
Cria um .lua em (action/script) local config = { --[vocationId] = outfitId, --Ex.: [0] = 101, [1] = 258, } function onUse(cid) local outfit, playerOutfit = config[getPlayerVocation(cid)], getCreatureOutfit(cid) if outfit then if getCreatureCondition(cid, CONDITION_OUTFIT) and playerOutfit.lookType == outfit then doRemoveCondition(cid, CONDITION_OUTFIT) doPlayerSendTextMessage(cid, 27, "You removed your outfit.") else playerOutfit.lookType = outfit doSetCreatureOutfit(cid, playerOutfit, -1) doPlayerSendTextMessage(cid, 27, "You put an outfit.") end end return true end Em action.xml <action itemid="id que voce usa" event="script" value="nome do arquivo.lua"/> Creditos: Zipter983 pontos -
Kingler e Shiny Kingler [Pokemon]
Administrador e um outro reagiu a larissaots por um tópico no fórum
Categoria: Download de Sprite Créditos: Lord Stryton Prévia Download Kingler e Shiny Kingler.zip Scan https://www.virustotal.com/en/file/1e3b560404357b5813740f5269a7376baead7857c9ae9f2755606e0597f5db1d/analysis/1433672712/2 pontos -
Pokemon XY - Mega Evolução
Furabio reagiu a larissaots por um tópico no fórum
Categoria: Download de Sprite Créditos: PokeXGames, TioDoLeite Conteúdo: Mega Alakazam Mega Ampharos [Novo] Mega Banete [Novo] Mega Blastoise Mega Blaziken Mega Charizard X Mega Charizard Y Mega Gengar Mega Latias [Novo] Mega Lucario Mega Tyranitar Prévia Download Pokemon XY - Mega Evolução.rar Scan https://www.virustotal.com/en/file/1fcf1fedbfa2cf03d0f411a99139405746861cd11f8dd009d37f40219f86c251/analysis/1433674051/1 ponto -
xPoketibia [Open source] (OFICIAL!)
Poke X Ice reagiu a Wend ll por um tópico no fórum
Olá Galera do XTibia! Venho apresentar para vocês um novo projeto, o xPoketibia, o poketibia se trata de um servidor que está sendo desenvolvido para tentar substituir o PDA em termos de uso dos OT-admin (sair dessa mesmice de servidores PDA) , o mesmo será disponibilizado aqui no fórum com suas devidas versões\atualizações. Estamos usando uma base antiga que está um pouco desatualizada e com muitos bugs , não editamos o mapa ainda por isso o mapa que está sendo usado é o do dash , tentaremos ao máximo trazer incríveis mapas e sistemas. Andamento do servidor Level System: 90% Caught System: 50% Go-Back System: 50% Portrait System: 50% Evolution System: 100% NPC Nurse System: 50% Pokedex System: 50% Ghost System: 50% Wild Pokemon Passive: 50% Moves System: 90% Limite de 6 Pokemons: 50% Duel System (Pela Party) 50% Tv / Cam System 50% Próximos sistemas Order System (Com todas as habilidades [Fly, Surf, Ride, Blink, Cut, Light, Transform, Control Mind, Dig, Move]) All Pokemon Spells Boat System (Vermilion - Cinnabar) Gym System NPC's de batalha espalhados pelo mapa Vários outros sistemas que tenho em mente. Changelog do servidor: Prints: Downloads: Servidor > http://www.4shared.com/rar/VAp3P-nwba/xPoketibia_Project.html? Client > http://www.4shared.com/rar/l5iti909ba/Client_xP.html? Source > http://www.4shared.com/rar/Cb_mNAJvba/sources_xP.html? Repositório no GitHub > Quase lá ~~ Créditos: Wend Silva < euBrun 123GabrieltxuDaniel Colaboradores xTibia por alguns códigosAvuenja por está ajudando com o Github é isso Galera vou indo fazendo com o tempo , não me cobrem , tenho vida social também , não é todo o dia que vou está disponível pra mexer no servidor , mas é isso nada de novo , mas apenas outro distro totalmente diferente com source , creio que vai ajudar muitas pessoas que curte o PDA, Lembrando que ele não vai ser livre de bugs , peço ajuda também para a galera que ajudem no projeto com sugestões e relatando os bugs que encontrarem. Thank you ~~1 ponto -
Perfeitas sprites PxG
Furabio reagiu a larissaots por um tópico no fórum
Categoria: Download de Sprite Créditos: Jonathan Pires Conteúdo: Espeon, Flareon, Jolteon, Gallade, Heracross, Kangaskhan, Miltank, Rhydon, Mr. Mime, Snorlax, Togekiss, Umbreon e entre outros em formato obd. Sprites Download https://mega.co.nz/#!J5x20aIY!0K_AMZYQMoWAgRHg9zs1H0OdGl8oXdKvZFKodiX2bfs1 ponto -
Yurots 1.2 Não tem muito o que falar do server, mapa simples, Yurots versão 8.10 atualizado para versão 8.60 sem editar, A distro é TFS 0.4 mas coloquei o download só da pasta data caso queira usar outra, quem ja jogou conhece, quem não viu, vale a pena conferir. Ótimo para editar pois é bem leve, apesar de alguns bugs no mapa que são simples. Download completo Download (somente a pasta Data) Creditos: •TFS Team •God Bon1 ponto
-
Ambipom [Pokemon]
Furabio reagiu a larissaots por um tópico no fórum
Categoria: Download de Sprite Créditos: Lord Stryton Prévia Download Ambipom.zip Scan https://www.virustotal.com/en/file/240ab43f2e5693e3d5447b55ebdac35881779517f6e5e9bbf4952d682d71ebc1/analysis/1433672532/1 ponto -
em enums.h abaixo disso, ou abaixo de outro tipo de COMBAT: COMBAT_FIREDAMAGE = 1 << 3, add (nesse caso o nome que eu coloquei é dark, mas é claro que vc pode colocar outro nome): COMBAT_DARKDAMAGE = 1 << 4, // não sei o que esses numeros querem dizer mas deixem esse valor vc precisa aumentar o contador, neste caso é só 1 de aumento COMBAT_COUNT = 12 // normal contador agora com o aumento: COMBAT_COUNT = 13 // contador aumentado em 1 em game.cpp abaixo desse "case" vc vai colocar o seu novo damage, isso é muito importante, aqui que vc vai dizer qual a cor que ele vai ser, qual o efeito que vai ser feito quando ele for usado por um player ou monstro... case COMBAT_LIFEDRAIN: { color = TEXTCOLOR_RED; effect = CONST_ME_MAGIC_RED; break; } add: case COMBAT_DARKDAMAGE: { color = TEXTCOLOR_DARKRED; // aqui vc escolhe a cor possivel do seu novo damage effect = CONST_ME_BLACKSMOKE; // aqui o effect do seu novo damage break; } aqui estão as cores possiveis para o seu damage, não estou certo se são apenas essas, se alguém souber e puder falar eu mudarei aqui. TEXTCOLOR_BLUE = 5, TEXTCOLOR_LIGHTGREEN = 30, TEXTCOLOR_LIGHTBLUE = 35, TEXTCOLOR_MAYABLUE = 95, TEXTCOLOR_DARKRED = 108, TEXTCOLOR_LIGHTGREY = 129, TEXTCOLOR_SKYBLUE = 143, TEXTCOLOR_PURPLE = 154, TEXTCOLOR_RED = 180, TEXTCOLOR_ORANGE = 198, TEXTCOLOR_YELLOW = 210, TEXTCOLOR_WHITE_EXP = 215, TEXTCOLOR_NONE = 255, em monsters.cpp abaixo do else if: } else if (tmpName == "lifedrain") { combat->setParam(COMBAT_PARAM_TYPE, COMBAT_LIFEDRAIN); add: } else if (tmpName == "dark") { combat->setParam(COMBAT_PARAM_TYPE, COMBAT_DARKDAMAGE); agora vc precisa colocar o seu damage como possivel de ser atribuida como imunidade pra monstros... em monsters.cpp abaixo: } else if ((attr = immunityNode.attribute("lifedrain"))) { if (attr.as_bool()) { mType->damageImmunities |= COMBAT_LIFEDRAIN; } add: } else if ((attr = immunityNode.attribute("dark"))) { if (attr.as_bool()) { mType->damageImmunities |= COMBAT_DARKDAMAGE; } agora vc precisa colocar ele como element percent, aquele que vai na tag dos monsters. ainda em monsters.cpp below: } else if ((attr = elementNode.attribute("lifedrainPercent"))) { mType->elementMap[COMBAT_LIFEDRAIN] = pugi::cast<int32_t>(attr.value()); add: } else if ((attr = elementNode.attribute("darkPercent"))) { mType->elementMap[COMBAT_DARKDAMAGE] = pugi::cast<int32_t>(attr.value()); em spells.cpp abaixo (eu não tenho certeza se essa mudança é necessaria, mas faça ) "lifedrain", add: "dark", isso é tudo... mas tenha certeza que os nomes que vc for dar pro seu damage sejam os mesmos em todas as mudanças pra não ter bugs... funciona em tfs 1.1 ou 1.2 ... nas outras não sei, não uso essas mais velhas... créditos: silveralol (otland) // eu por trazer pra cá.1 ponto
-
Função para mudar a quantidade de skills ou magic level do jogador. lib/050-function function doPlayerSetSkill(cid, skill, amount) local pid = getPlayerGUID(cid) doRemoveCreature(cid,true) db.executeQuery("UPDATE `player_skills` SET `value` = ".. amount .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. skill ..";") return TRUE end function doPlayerSetMagic(cid, amount) local pid = getPlayerGUID(cid) doRemoveCreature(cid,true) db.executeQuery("UPDATE `players` SET `maglevel` = " .. amount .. " WHERE `id` = "..pid) return TRUE end exemplo de uso1 ponto
-
Rapidash [Pokemon]
Furabio reagiu a larissaots por um tópico no fórum
Categoria: Download de Sprite Créditos: Lord Stryton Prévia Download Rapidash PxG.rar Scan https://www.virustotal.com/en/file/0dc58b498f011d47ad5a04f4c676d58dcec64872e9a2813fbd0f7acddebed0e7/analysis/1433671507/1 ponto -
Dragon Ball Hiper Online
SkyLigh reagiu a Dragon Ball Hiper por um tópico no fórum
Saudaçoes Hoje Trago A Voçes Uns dos Melhores Dragon Ball Online , Servidor 24Horas Sem Lag , Hospedado em Canada Com Uma Qualidade Super Boa , Varias Vocaçoes Free , e Vip , Quests Fodasticas , PvP 100% igualado . Informações sobre o Servidor: Vocaçoes Free : 26 VIPS : 8 Versao : 8.6 Rates Experience: 100 x Stages Loot: 0.2x Magic: 10x Skills 10x RB Minimo : 250 RB Maximo : 600 LeveL PVP ; 200 Maximo Level : 801 imagens xD TEMPLO : PARTE 2 INICIO CC21 Parte 2 SALA EVENTO PVP Servidor Baseado Em DBOBRASIL : Com uma Boa Qualidade . Servidor é serio Sem ReseT , Suporte 24 Hrs Estao Esperando Oque ? Acesse server.dragonballhiper.com1 ponto -
Mega Venusaur [Pokemon]
Furabio reagiu a larissaots por um tópico no fórum
Categoria: Download de Sprite Créditos: Lord Stryton Prévia Download Scan https://www.virustotal.com/en/file/d5c22c0590cceae4f5c094ae732f0c93081f75781148954cb8c96956349b81ca/analysis/1433670654/1 ponto -
Mega aerodactyl [Pokemon]
Furabio reagiu a larissaots por um tópico no fórum
Categoria: Download de Sprite Créditos: Lord Stryton Prévia Download Mega aerodactyl.zip Scan https://www.virustotal.com/en/file/6c9daa483343988814b394978f285baa524bb1ae2506a61b39003bef44edf760/analysis/1433671052/1 ponto -
Mega sharpedo [Pokemon]
Furabio reagiu a larissaots por um tópico no fórum
Categoria: Download de Sprite Créditos: Lord Stryton Prévia Download Mega sharpedo.zip Scan https://www.virustotal.com/en/file/30d926de41efe10740a260ce81a46832fb257dcb727f892795d09180e8ccc7cf/analysis/1433671269/1 ponto -
Shiny Rhydon [Pokemon]
FlamesAdmin reagiu a larissaots por um tópico no fórum
Categoria: Download de Sprite Créditos: Lord Stryton Prévia Download Scan https://www.virustotal.com/en/file/36b29c9d81e19769f33431e07832efa24cea1e2f72edb855cf3aeacf94efae2d/analysis/1433671862/1 ponto -
Shiny Mega Slowbro [Pokemon]
Furabio reagiu a larissaots por um tópico no fórum
Categoria: Download de Sprite Créditos: Lockwood Sprite1 ponto -
Mega Sceptile [Pokemon]
Furabio reagiu a larissaots por um tópico no fórum
Categoria: Download de Sprite Créditos: Lockwood Sprite1 ponto -
Shiny Mega Charizard Y [Pokemon]
Furabio reagiu a larissaots por um tópico no fórum
Categoria: Download de Sprite Créditos: Lockwood Sprite1 ponto -
[Remake] PokeBalls
Furabio reagiu a larissaots por um tópico no fórum
Categoria: Download de Sprite Créditos: rydeofsky Sprite1 ponto -
Pack de shinys!
Furabio reagiu a larissaots por um tópico no fórum
Categoria: Download de Sprite Créditos: Vinicius Xxgamexx Sprites Download Pack De Sprites By Vinicius Xxgamexx.rar Scan https://www.virustotal.com/sv/file/b987ebe66f1505c9f21532433c202c1ac2e961e5dbb4ddc3bcd98ee91a21186a/analysis/1423861929/1 ponto -
Olá, pessoal Bem, pra melhorar a seção eu preciso saber o que vocês estão achando, não é ? rs. O Tony já tinha criado um tópico desse, mas era bem antigo .. Então eu tô re-criando. Aqui vocês podem dar sugestões, criticar, e elogiar também (: Atual Equipe : Algumas perguntas que podem ajudar : O que estão achando da seção? estamos sendo atenciosos com vocês no suporte etc ? E da atual equipe ? Qual tipo de conteúdo vocês querem? (Tutoriais, downloads) Enfim, é isso Tópicos já postados : X-Design 20151 ponto
-
[Gesior tfs 1.0] Pagina de montarias 10.77
Rafu reagiu a Piabeta Kun por um tópico no fórum
Vim aqui postar mais uma pagina legalzinha e mostrar como configurar ela em seu Gesior! Requisitos Gesior 2012 ou Gesiors para tfs 1.0 abra a pasta htdocs/pages ou www/pages copie e cole qualquer arquivo.php e renomeie mounts, ficando um arquivo mounts.php apague todo conteúdo do arquivo copiado e cole o código abaixo. basicamente pronto, caso seu servidor tenha algo diferente da pagina basta dar um control+F, buscar a descrição e alterar a gosto! Imagens Créditos: Piabeta! mounts.php1 ponto -
Npc do Destino
Xtudomuito reagiu a Bruno por uma questão
Tenta assim: local config = { pos1 = {x = 1000, y = 550, z = 7}, pos2 = {x = 1002, y = 553, z = 7}, templo = {x = 160, y = 54, z = 7}, tempo = 2 -- minutos para ficar na sala } 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 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, 'destino')) then selfSay('Posso escolher seu destino?', cid) talkState[talkUser] = 1 elseif ((msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1) then local rand = math.random(1, 2) local pos = (rand == 1 and config.pos1 or config.pos2) doTeleportThing(cid, pos) addEvent(function() doTeleportThing(cid, config.templo) end, config.tempo * 60 * 1000) talkState[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())1 ponto -
1 ponto
-
Amigo, a dúvida já foi resolvida, o problema dele não é adicionar a tabela uma vez que o próprio website faz isso! O problema é que a tabela já existia na database e ele tentou instalar novamente, causando aquele aviso.1 ponto
-
Table z_spells not added. Already exist?
leonardo macedo reagiu a Bruno por uma questão
A tabela z_spells já está criada, isso não é um erro! Se você quiser, você pode excluir e instalar novamente.1 ponto -
[Novo]TV System
igorsantana12 reagiu a Lord Stryton por um tópico no fórum
TV System. Este novo sistema de TV pega em qualquer servidor, testado em Dash, PDA, e tfs 0.3.6 pl1 do meu server de pokémon. PDA 1° Action Vá na pasta Actions crie um arquivo .lua com o nome: TVsystem.lua e coloquem isso dentro: Ainda em Actions! Crie outro arquivo.lua chamado de Gravadora.lua, e coloque isso dentro: Agora vamos programa-lo no action.lua: Vá em actions.lua, e coloque: <action itemid="16547-16550;13495-11498;15675-15680" event="script" value="TVsystem.lua"/> <action itemid="12330" event="script" value="Gravadora.lua"/> TVSystem: na parte que está em azul, você terá que colocar os ids das televisões. Gravadora: na parte que está em azul você coloca o id da camera. Agora vamos criar um NPC, e configura-lo na pasta data/Lib. Vá na pasta do NPC e crie um NPC Chamado Paulo. Paulo.xml e coloque isso dentro: Agora na Pasta data/LIB, crie um arquivo chamado: tvsystem.lua E coloque dentro: Na parde de azul no script da lib, será assim: Outfit do NPC +200. Por exemplo LookType 400+200 ficará 600. Caso ocorra algum Bug Fala a e no tópico. Dash Em breve Créditos a um desconhecido. -E amim por editar.1 ponto -
Essas colunas é para warsystem com invite para war... O problema foi resolvido? Tópico movido para a seção de dúvidas e pedidos resolvidos.1 ponto
-
Adicionar Sistema Pagseguro Completo
leonardo macedo reagiu a Bruno por uma questão
@@leonardo macedo, Conforme conversamos, o seu problema esta sendo apenas alterar o email do pagseguro no config.php. Agora está funcionando! Lembrando que você precisa adicionar manualmente os postos para quem comprar!1 ponto -
@sk8sk8ter, Rode essa query: DROP TABLE IF EXISTS `woe`; CREATE TABLE `woe` ( `id` INT( 11 ) NOT NULL AUTO_INCREMENT , `started` INT( 11 ) NOT NULL , `guild` INT( 11 ) NOT NULL , `breaker` INT( 11 ) NOT NULL , `time` INT( 11 ) NOT NULL , PRIMARY KEY ( `id` ) ,UNIQUE (`id`) ) ENGINE = MYISAM1 ponto
-
Rapidash [Pokemon]
larissaots reagiu a Furabio por um tópico no fórum
O Download desse não está funcionando, teria como arrumar ?1 ponto -
Novo ground
Furabio reagiu a larissaots por um tópico no fórum
Categoria: Download de Sprite Créditos: Nechros Sprite1 ponto -
Pedra
Furabio reagiu a larissaots por um tópico no fórum
Categoria: Download de Sprite Créditos: Nechros Sprite1 ponto -
Carro preto
Furabio reagiu a larissaots por um tópico no fórum
Categoria: Download de Sprite Créditos: Nogard Sprite1 ponto -
Mãos
Furabio reagiu a larissaots por um tópico no fórum
Categoria: Download de Sprite Créditos: Nogard Sprite1 ponto -
Bicicleta
Furabio reagiu a larissaots por um tópico no fórum
Categoria: Download de Sprite Créditos: Nogard Sprite1 ponto -
[Gesior tfs 1.0] Pagina de montarias 10.77
Piabeta Kun reagiu a VictorWEBMaster por um tópico no fórum
Ficou bem fica PibetaBro! Reputads!1 ponto -
Rank Reset
JonatasLucasf reagiu a VictorWEBMaster por um tópico no fórum
Opa, salve! Utilize o highscore abaixo! Estou à disposição Para que você consiga fazer o sistema funcionar perfeitamente, você deve adicionar isso a uma classe dentro da pasta de classes. Abra a pasta de classes do seu gesior, edite a players. Pode substituir tudo... por isto: Caso dê algum erro, verifique o nome da tabela de resets, deve ser reset, caso seja resets, mude no player.php tudo que se refere a reset. Espero ter ajudado.1 ponto -
Como Ativar o Shopping
leonardo macedo reagiu a VictorWEBMaster por uma questão
Veja se isso ajuda amigo.1 ponto -
não é o programa que faz as sprites sairem boas, e sim quem está fazendo as sprites.1 ponto
-
[TFS 1.X] Anti-Magebomb
shept reagiu a larissaots por um tópico no fórum
Créditos: luanluciano93 Objetivo Esse script limita uma quantidade de MC logados por IP, podendo evitar várias coisas, como por exemplo o magebomb. Tutorial Basta criar um arquivo em creaturescript/scripts/ com o nome anti-magebomb.lua e coloque esse código dentro: -- <event type="login" name="Anti-Magebomb" script="anti-magebomb.lua"/> local AccPorIp = 2 function onLogin(player) local mc = 0 for _, verificar in ipairs(Game.getPlayers()) do if player:getIp() == verificar:getIp() then mc = mc + 1 if mc > AccPorIp then return false end end end return true end A tag do creaturescript.xml já esta como comentário no script, é só copiar. OBS: Esse script funciona em TFS 1.1 E 1.2, para TFS 1.0 mude as funções: onLogin(player) --> onLogin(cid) player:getIp() --> Player(cid):getIp()1 ponto -
[Arquivado]O que vocês gostariam em um Website?
VictorWEBMaster reagiu a Piabeta Kun por um tópico no fórum
perguntar para quem desenvolve ou quem ta aqui para ser admin é uma coisa, agora os players de hj em dia, nao ligam pra muita coisa, nego so quer um site para criar conta, ver os chares e no maximo os mais curioso uma pagina que cite quests, os sistemas do ot e um lugar pra reportar bug ou ficar chorando que alguem fez isso ou aquilo, ou que nao caiu os pontos e bla bla bla!1 ponto -
Erondino patch v17.1 + Source
igorsantana12 reagiu a Lord Stryton por um tópico no fórum
O que mudou? Ficou a mesma coisa. O outro v17 BPO Open sources não mudou praticamente nada.1 ponto -
Modern Acc ~ Layout Website Pokémon
igorsantana12 reagiu a Lord Stryton por um tópico no fórum
FODA.1 ponto -
[10.10+] Forest Floor
danrlei5 reagiu a ferreira998 por um tópico no fórum
Forest Floor Imagem: RME/data/versão/grounds.xml Antes da linha: </materials> Adicione: <brush name="forest floor" type="ground" server_lookid="20776" z-order="3500"> <item id="20776" chance="25"/> <item id="20777" chance="16"/> <item id="20778" chance="17"/> <item id="20779" chance="18"/> <item id="20780" chance="19"/> <item id="20781" chance="20"/> <border align="outer" id="556"/> <border align="inner" to="none" id="10"/> </brush> RME/Data/10.31/borders.xml <border id="556"> -- Forest Floor Willian -- <borderitem edge="n" item="21113"/> <borderitem edge="e" item="21124"/> <borderitem edge="s" item="21123"/> <borderitem edge="w" item="21114"/> <borderitem edge="cnw" item="21115"/> <borderitem edge="cne" item="21116"/> <borderitem edge="csw" item="21117"/> <borderitem edge="cse" item="21118"/> <borderitem edge="dnw" item="21119"/> <borderitem edge="dne" item="21120"/> <borderitem edge="dsw" item="21121"/> <borderitem edge="dse" item="21122"/> </border> RME/Data/10.31/tilesets.xml Dê CTRL + F e digite Nature, em baixo de: <terrain> adicione: <brush name="forest floor"/> Se Gostou deixe aquele like. Créditos : William Ferreira1 ponto -
Ola galera xtibanaana. O creatureevent onsetopponent acontence quando uma criatura seta outra como opponent para ir prosseguir como target. Vá em creatureevent.cpp e procure: else if(tmpStr == "preparedeath") m_type = CREATURE_EVENT_PREPAREDEATH; Adicione embaixo: else if(tmpStr == "opponent") m_type = CREATURE_EVENT_OPPONENT; Procure: case CREATURE_EVENT_PREPAREDEATH: return "onPrepareDeath"; Coloque embaixo: case CREATURE_EVENT_OPPONENT: return "onSetOpponent"; Continuado procure: case CREATURE_EVENT_PREPAREDEATH: return "cid, deathList"; Coloque abaixo: case CREATURE_EVENT_OPPONENT: return "cid, monster"; Adicione a função: uint32_t CreatureEvent::executeSetOpponent(Creature* creature, Creature* target) { //onSetOpponent(cid, monster) if(m_interface->reserveEnv()) { ScriptEnviroment* env = m_interface->getEnv(); if(m_scripted == EVENT_SCRIPT_BUFFER) { env->setRealPos(creature->getPosition()); std::stringstream scriptstream; scriptstream << "local cid = " << env->addThing(creature) << std::endl; scriptstream << "local target = " << env->addThing(target) << std::endl; scriptstream << m_scriptData; bool result = true; if(m_interface->loadBuffer(scriptstream.str())) { lua_State* L = m_interface->getState(); result = m_interface->getGlobalBool(L, "_result", true); } m_interface->releaseEnv(); return result; } else { #ifdef __DEBUG_LUASCRIPTS__ char desc[35]; sprintf(desc, "%s", creature->getName().c_str()); env->setEventDesc(desc); #endif env->setScriptId(m_scriptId, m_interface); env->setRealPos(creature->getPosition()); lua_State* L = m_interface->getState(); m_interface->pushFunction(m_scriptId); lua_pushnumber(L, env->addThing(creature)); lua_pushnumber(L, env->addThing(target)); bool result = m_interface->callFunction(2); m_interface->releaseEnv(); return result; } } else { std::cout << "[Error - CreatureEvent::executePrepareDeath] Call stack overflow." << std::endl; return 0; } } Vá em creatureevent.h e procure: CREATURE_EVENT_PREPAREDEATH, Adicione embaixo: CREATURE_EVENT_OPPONENT Procure: uint32_t executeAttack(Creature* creature, Creature* target); Coloque embaixo: uint32_t executeSetOpponent(Creature* creature, Creature* target); Vá em monster.cpp e procure a função: bool Monster::isOpponent(const Creature* creature) Substitua por essa: bool Monster::isOpponent(const Creature* creature) { bool opponent = true; CreatureEventList attackEvents = getCreatureEvents(CREATURE_EVENT_OPPONENT); Creature* target = g_game.getCreatureByID(creature->getID()); for(CreatureEventList::iterator it = attackEvents.begin(); it != attackEvents.end(); ++it) { if(!(*it)->executeSetOpponent(target, this)) opponent = false; } if (!opponent) { return false; } return (isSummon() && getMaster()->getPlayer() && creature != getMaster()) || ((creature->getPlayer() && !creature->getPlayer()->hasFlag(PlayerFlag_IgnoredByMonsters)) || (creature->getMaster() && creature->getMaster()->getPlayer())); } Exemplo: function onSetOpponent(cid, target) local blockedpass = {"Fire Devil", "Demon", "Lord Dragon"} if table.find(blockedpass, getCreatureName(target)) then return true end return true end1 ponto
-
-Muitas pessoas devem querer as insignias no Ot Client, eu estava procurando na net e achei esse sistema, fui logo colocar no meu Ot Client, porém deu erro e fui caçar o erro...está 100% funcional, bora começar? 1º Edições no server: Vá em: talkactions/scripts...crie um arquivo lua com o nome: talkGym.lua: e coloque isso dentro do arquivo: function onSay(cid, words, param) if gymbadges[param] then doPlayerSendCancel(cid, "#getBadges# "..param.." "..getPlayerItemCount(cid, gymbadges[param])) end return true end Em Xml: <talkaction words="#getGym#" event="script" value="talkGym.lua"/> PARA QUEM QUISER QUE ATUALIZE NA HORA QUE GANHAR O GYM npc/scripts/todos os npcs de gym: doPlayerSendCancel(cid, "#getBadges# "..getCreatureName(this).." "..getPlayerItemCount(cid, gymbadges[getCreatureName(this)])) Embaixo dessa linha if b.uid > 0 then doTransformItem(b.uid, b.itemid - 8) end Ficando assim: local function doWinDuel(cid, npc) if not isCreature(cid) then return true end local this = npc local a = gymbadges[getCreatureName(this)] + 8 doCreatureSay(npc, "You won the duel! Congratulations, take this "..getItemNameById(a - 8).." as a prize.", 1) local b = getPlayerItemById(cid, true, a) if b.uid > 0 then doTransformItem(b.uid, b.itemid - 8) end doPlayerSendCancel(cid, "#getBadges# "..getCreatureName(this).." "..getPlayerItemCount(cid, gymbadges[getCreatureName(this)])) end No server é apenas isso, agora vamos em: Otclient>modules>game_skills: Skills Otui: Em baixo de tudo la em ultimo coloque SkillButton id: pokeGym size: 143 69 margin-top: 8 UIButton id: gymBrock size: 32 32 anchors.top: parent.top anchors.right: parent.right margin-right: 120 UIButton id: gymMisty anchors.top: gymBrock.top anchors.left: gymBrock.right margin-left: 3 UIButton id: gymSurge anchors.top: gymBrock.top anchors.left: gymMisty.right margin-left: 3 UIButton id: gymErika anchors.top: gymBrock.top anchors.left: gymSurge.right margin-left: 3 UIButton id: gymSabrina anchors.top: gymBrock.bottom anchors.left: gymBrock.left margin-top: 6 UIButton id: gymKoga anchors.top: parent.top anchors.top: gymBrock.bottom anchors.left: gymMisty.left margin-top: 6 UIButton id: gymBlaine anchors.top: parent.top anchors.top: gymBrock.bottom anchors.left: gymSurge.left margin-top: 6 UIButton id: gymKira anchors.top: parent.top anchors.top: gymBrock.bottom anchors.left: gymErika.left margin-top: 6 Skills.Lua: Inicio do Script: local gyms = { ["Brock0"] = "/images/game/pokemon/clan/brock", ---- terminados em 0 apagado, terminados em 1 aceso ["Brock1"] = "/images/game/pokemon/clan/brock", ["Misty0"] = "/images/game/pokemon/clan/misty", ["Misty1"] = "/images/game/pokemon/clan/misty", ["Surge0"] = "/images/game/pokemon/clan/surge", ["Surge1"] = "/images/game/pokemon/clan/surge", ["Erika0"] = "/images/game/pokemon/clan/erika", ["Erika1"] = "/images/game/pokemon/clan/erika", ["Sabrina0"] = "/images/game/pokemon/clan/sabrina", ["Sabrina1"] = "/images/game/pokemon/clan/sabrina", ["Koga0"] = "/images/game/pokemon/clan/koga", ["Koga1"] = "/images/game/pokemon/clan/koga", ["Blaine0"] = "/images/game/pokemon/clan/blaine", ["Blaine1"] = "/images/game/pokemon/clan/blaine", ["Kira0"] = "/images/game/pokemon/clan/kira", ["Kira1"] = "/images/game/pokemon/clan/kira", } Em baixo de: connect(g_game, { onGameStart = refresh, onGameEnd = offline }) Coloque: connect(g_game, 'onTextMessage', getGym) Ficando: connect(g_game, { onGameStart = refresh, onGameEnd = offline }) connect(g_game, 'onTextMessage', getGym) Em baixo de: g_keyboard.unbindKeyDown('Ctrl+S') skillsWindow:destroy() skillsButton:destroy() end Coloque: function autoUpdateTalks() local player = g_game.getLocalPlayer() if not player then return end ---------- g_game.talk("#getGym# Brock") g_game.talk("#getGym# Misty") g_game.talk("#getGym# Surge") g_game.talk("#getGym# Erika") g_game.talk("#getGym# Sabrina") g_game.talk("#getGym# Koga") g_game.talk("#getGym# Blaine") g_game.talk("#getGym# Kira") ---------- end function getGym(mode, text) local t = string.explode(text, " ") local badges = skillsWindow:recursiveGetChildById("gym"..t[2]) if not g_game.isOnline() then return end if mode == MessageModes.Failure then if text:find("#getBadges#") then badges:setImageSource(gyms[t[2]..""..tonumber(t[3])]) end end end Ficando: g_keyboard.unbindKeyDown('Ctrl+S') skillsWindow:destroy() skillsButton:destroy() end function autoUpdateTalks() local player = g_game.getLocalPlayer() if not player then return end ---------- g_game.talk("#getGym# Brock") g_game.talk("#getGym# Misty") g_game.talk("#getGym# Surge") g_game.talk("#getGym# Erika") g_game.talk("#getGym# Sabrina") g_game.talk("#getGym# Koga") g_game.talk("#getGym# Blaine") g_game.talk("#getGym# Kira") ---------- end function getGym(mode, text) local t = string.explode(text, " ") local badges = skillsWindow:recursiveGetChildById("gym"..t[2]) if not g_game.isOnline() then return end if mode == MessageModes.Failure then if text:find("#getBadges#") then badges:setImageSource(gyms[t[2]..""..tonumber(t[3])]) end end end Em baixo de: function refresh() local player = g_game.getLocalPlayer() if not player then return end Coloque: autoUpdateTalks() Ficando: function refresh() local player = g_game.getLocalPlayer() if not player then return end autoUpdateTalks() Espero que gostem. PS: O erro que dava no meu era que não aparecia a opção skills no OTC. Créditos: Noninhouh1 ponto
-
[8.54] Ot Item Editor + Items.otb vazio
Tibiano Pro reagiu a Frenvius por um tópico no fórum
É galera, tem um tempo já que eu venho pesquisando sobre um .otb vazio e nunca achei, e no item editor quando você cria um e vai criar um item surge aquele erro de sempre "Wrong items set" o que impossibilita a criação do .otb. Aqui no Brasil nunca vi ninguém precisar, mas se pesquisar tem muito gringo procurando. Mas pra que serve um .otb vazio? Você vai criar um projeto mas quer mudar tudo, sprites... TUDO, mas o servidor ta cheio de item do Tibia, coisas desnecessárias, é ai que entra o .otb vazio, a partir dele você cria seus items. O .otb contem só o item de n° 100, que é o primeiro item, dai é só criar o restante e configurar. Farei um Pack disponibilizarei junto 2 items editores 8.54 que são bem uteis. Dúvidas? comentem. Ajudei? Rep+ Download | Scan1 ponto
