Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 06/07/15 em todas áreas
-
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 -
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 -
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
-
Level Máximo
GOD Vitor reagiu a FlamesAdmin por um tópico no fórum
Boa noite, venho aqui postar esse script que achei em um tópico de 2011 que um membro abriu pedindo o script. Vamos lá! Primeiro vá em creaturescripts/scripts/login.lua e adicione isso: registerCreatureEvent(cid, "LevelMax") Depois adicione essa tag em creaturescripts.xml: <event type="advance" name="LevelMax" event="script" value="levelmax.lua"/> Agora crie um arquilo .lua com o nome de levelmax e adicione este código dentro: local LevelMax = 180 function onAdvance(cid, skill, oldLevel, newLevel) if skill == 8 then if newLevel >= LevelMax then doPlayerAddExp(cid, getExperienceForLevel(LevelMax)-getPlayerExperience(cid)) return false end end return true end Para trocar o level máximo basta editar em: local LevelMax = 180 Espero que ajude! Créditos a MatheusMkalo1 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 -
Download de Sprites
Soulviling reagiu a larissaots por um tópico no fórum
Está faltando esse sub-forum. Os downloads estão sendo postados na parte de tutoriais... http://www.xtibia.com/forum/forum/856-tutoriais-de-spriting/ Beijos.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 -
[8.54] Servidor + Client Naruto B&W [EXCLUSIVO]
NdboHakai reagiu a Administrador por um tópico no fórum
O SERVIDOR DE NTO EXCLUSIVO DO NTO BLACK & WHITE [+] NOVIDADES & CARACTERISTICAS [+] ERROS E BUGS [+] PRINTS DO SERVER [+] DOWNLOAD [+] CREDITOS [+] NOVIDADES & CARACTERISTICAS - Vocations: Naruto,Sasuke,Rock Lee,Shikamaru,Neji,Tenten,Hinata,Kakashi,Killer Bee,Sakura,Gaara,Kiba,Itachi,Tobi,Minato,Madara,Tsunade,Hashirama,Nidaime,Nagato,Yamato,Raikage,Kisame,Temari,Kankuro,Orochimaru. - Ataque do Itachi de Levar Para Outro Mundo 100%. - Novas Sprites Retiradas dos Melhores Servers de NTO. - Vocacoes Todas Balanceadas. - Conta adm: GOD / GOD - Foram Adicionados Sasuke,Naruto,Obito e Madara Rikkudou - Shop npc no Templo Vendendo Sets e Vocs VIP por Premium Points - 8 Quests Adicionadas 100% Funcionando (INCLUINDO NTO POINTS) - Novos Ataques Foram Adicionados.. - Varias Caves (zetsu,deidara,orochimaru,konan,etc..) [+] ERROS E BUGS - PERGAMINHO PAIN BUGADO POREM PERGAMINHO DO NAGATO ESTA FUNCIONANDO - PODE OCORRER UM BUG DE VEZ EM QUANDO DO BOSS NASCER NA QUEST MAS EH FACIL DE ARRUMAR. - SERVIDOR SEM ERROS - UNICOS PROBLEMAS NO SERVIDOR: CLIENT CHEIO LIMITE DE SPRITES .. [+] PRINTS DO SERVER [+] Downloads Servidor Naruto B&W: Clique Aqui Client(descompilado): Clique Aqui [+] Creditos - Madara Rinnegan - [ADM] Johnata - Eytor1 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 -
Fala pessoal, estava negando na gringa e achei um sistema bem legal e decidi trazer totalmente em português para vocês espero que curtam Descriação O Player reporta o lugar usando o comando !report e você administrador pode adicionar points a ele pela ajuda ao servidor Imagen Adicionando em seu servidor/Site Abra seu Data/Talkactions na pasta do seu servidor, e abra Talkactions.xml e adicione essa linha <talkaction words="!report" separator=" " script="adminreport.lua"/> Agora abra data/ Talkactions / Scripts em seu servidor e criar um novo arquivo chamado adminreport.lua e adicione este código dentro : function onSay(cid, words, param, channel) local storage = 6708 -- (You can change the storage if its already in use) local delaytime = 30 -- (Exhaust In Seconds.) local x = getPlayerPosition(cid).x -- (Do not edit this.) local y = getPlayerPosition(cid).y -- (Do not edit this.) local z = getPlayerPosition(cid).z -- (Do not edit this.) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Command param required.") return true end if (getPlayerStorageValue(cid, storage) <= os.time()) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your report has been received successfully!") db.query("INSERT INTO `player_reports` (`id` ,`name` ,`posx` ,`posy` ,`posz` ,`report_description` ,`date`)VALUES (NULL , '" .. getPlayerName(cid) .. "', '" .. x .. "', '" .. y .. "', '" .. z .. "', '" .. param .. "', '" .. os.date() .. "')") setPlayerStorageValue(cid,storage,os.time()+delaytime) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "You have to wait 30 seconds to report again.") end return TRUE end Servidor Configurado! Adicionando em seu WebSite Agora vá para o site e va em htdocs/pages crie um novo arquivo chamado adminreport.php e coloque isso dentro <?PHP if($group_id_of_acc_logged >= $config['site']['access_admin_panel']) { $main_content .= '<center><h2><font color=red>Reports List</font></h2></center><br /><br /> <center><table border="0" cellspacing="1" cellpadding="4" width="100%"> <tr bgcolor="'.$config['site']['vdarkborder'].'"> <td width="5%"><b><font color=white><center>#</font></center></b></td> <td width="10%"><b><font color=white><center>Name</center></b></font></td> <td width="20%"><b><font color=white><center>Position</center></b></font></td> <td width="40%"><b><font color=white><center>Description</center></b></font></td> <td width="20%"><b><font color=white><center>Date</center></b></font></td> </tr>'; $i = 0; foreach($SQL->query('SELECT id, name, posx, posy, posz, report_description, date FROM player_reports GROUP BY name ORDER BY id DESC limit 20;') as $report) { $i++; $main_content .= '<tr bgcolor="' . (is_int($i / 2) ? $config['site']['lightborder'] : $config['site']['darkborder']). '"> <td> <center>'.$i.'</center> </td> <td> <center><a href=?subtopic=characters&name='.$report['name'].'>'.$report['name'].'</a></center> </td> <td> <center>'.$report['posx'].', '.$report['posy'].', '.$report['posz'].'</center> </td> <td> <center>'.$report['report_description'].'</center> </td> <td> <center>'.$report['date'].'</center> </td> </tr>'; } $main_content .=' </table> <a href="?subtopic=adminreport&action=reward">Reward Players for reporting.</a>'; if($action == "reward") { $player = stripslashes(ucwords(strtolower(trim($_REQUEST['character'])))); $points = $_POST['points']; if(empty($player)) { $main_content .= '<form action="" method="post"><B>Enter Character Name:</B><input type="textbox" name="character"><br> <B>Enter Points Amount:</B><input type="textbox" name="points"><br><br><input type="submit" value="Submit"> </form></center><form action="?subtopic=adminreport" method="post" ><input name="submit" type="submit" value="Close" title="Close"/></form>'; } else { $player_data = $SQL->query("SELECT * FROM `players` WHERE `name` = '".$player."';")->fetch(); $SQL->query("UPDATE `accounts` SET `premium_points` = `premium_points` + '".$points."' WHERE `id` = '".$player_data['account_id']."'"); $main_content .= '<b><center>'.$points.' Premium Points added to the account of <i>'.$player.'</i> !</b></center><br> <form action="?subtopic=adminreport" method="post" ><input name="submit" type="submit" value="Close" title="Close"/></form>'; } } } else { $main_content .= 'Sorry, you have not the rights to access this page.'; } ?> então aberta index.php e adicione estas linhas case "adminreport"; $topic = "adminreport"; $subtopic = "adminreport"; include("adminreport.php"); break; Vá em htdocs/layouts/Seulayout/ <a href='?subtopic=adminreport'> <div id='submenu_adminreport' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_adminreport' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'>Player Reports</div> <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> </div> </a> Adicione esse comando em sua database CREATE TABLE IF NOT EXISTS `player_reports` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` text NOT NULL, `posx` int(6) NOT NULL, `posy` int(6) NOT NULL, `posz` int(6) NOT NULL, `report_description` text NOT NULL, `date` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ; Créditos : Mudrock DarkZ Shaoz1 ponto
-
Dragon Ball Hiper Online
SkyLigh reagiu a Dragon Ball Hiper por um tópico no fórum
Sim xD Sim HAHA @UP1 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
-
Aconselho: https://github.com/gesior/Gesior2012/archive/TFS-1.0.zip E o Znote: https://github.com/Znote/ZnoteAAC/archive/master.zip Tópico movido para a seção de dúvidas e pedidos resolvidos.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 -
Error Character Login
leonardo macedo reagiu a Bruno por uma questão
Verifique se no banco de dados, na coluna town da tabela players está com o town correto ou não está como 0. E na configuração do site, verifique se a linha $config['site']['newchar_towns'][0] = array(1); está com a town correta também!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 -
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 -
Maquina de Gasolina
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 -
Novo sistema de Cargos e Novas pips!
Administrador reagiu a OtservME por um tópico no fórum
Parabéns, muito bom daniel1 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 -
Download de Sprites
larissaots reagiu a Administrador por um tópico no fórum
http://www.xtibia.com/forum/forum/1043-download-sprites/ Obrigado pelo feedback. Estarei fixando quaisquer erro(s) possíveis dessa seção durante a semana.1 ponto -
Ajuda Teto nao some quando passa em baixo
Wend ll reagiu a SeijuroAkashi por um tópico no fórum
Ué, por que não vai no editor e olha as configurações de um teto aleatório? Apenas copie os atributos.1 ponto -
Olá XTibianos! Esse tutorial ensina de maneira extremamente simples como bloquear completamente alguns países específicos no seu CSF. Vamos lá? 1. Utilize o nano ou qualquer outro editor de texto para editar o arquivo de configuração do CSF: nano /etc/csf/csf.conf 2. Vá até a linha 721 (aproximadamente) e procure por CC_DENY: CC_DENY = "" 3. Acesse o site IPdeny para pegar o código do país que você deseja bloquear: + Clique aqui para acessar o site. -> Exemplo: Caso você queira bloquear a França: + Procure na página com o CTRL + F o nome do país em inglês. FRANCE (FR) [download zone file] Size: 21.09 KB Copie o código do país entre ( ), neste caso: FR. 4. Cole o código do país na varíavel CC_DENY: + Para mais de um país, utilize a virgula. CC_DENY = "FR,CN" + No exemplo acima, estaríamos bloqueando a França e a China. 5. Reinicie seu CSF. service csf restart Pronto! Você já está bloqueando completamente o acesso dos países configurados! Façam bom proveito (Esse tutorial foi completamente escrito por mim. Qualquer cópia deve ser previamente autorizada e conter os devidos créditos.)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 -
Invasão SHELL.PHP
VictorWEBMaster reagiu a Piabeta Kun por um tópico no fórum
links uteis http://www.xtibia.com/forum/topic/193940-topico-atualizado-0415-protegendo-o-xampp-e-gesior/ http://www.xtibia.com/forum/topic/233419-xampp-windows-alterando-caminho-e-nome-da-pasta-htdocs/ abraços!1 ponto -
[Duvida] Achievements Points
VictorWEBMaster reagiu a Piabeta Kun por uma questão
vamos lá é bem simples e se nao me engano tem la nos posts do tópico. voce tem a lista de achievements no config.php, vamos dar o exemplo da poi como você mesmo citou. o id no config é esse correto? 67 => 'Ruthless', voce terá que add no script da quest para assim que ele usar algum baú, passar pela last door ou como desejar que o player ganhe o storage 20067, ficando mais ou menos assim: doCreatureSetStorage(cid, 20067, 5) os achievements são usados com storage de 20001 a 20999, no caso é o id 67 então vamos usar o id storage 20067, o que fica depois da virgula é a quantidade de pontos que o achievement vai dar ao pegar o mesmo! voce pode manipular os storage ids da maneira que voce achar melhor, dado por um npc, usando um bau de quest, pisando em algum piso que complete alguma missão seja la como for! agora como você citou se voce nao usou um script voce vai ter que usar um pq nao tem como definir exatamente a quantidade de pontos que o achievement irá dar, voce pode ate por para usar o bau e o unicque id ser 20067, porém ele nao vai te dar pontos so o achievement sem pontos! caso tenha mais alguma duvida pode perguntar, caso nao tenha reporte para que o mesmo seja movido para a area de resolvidos facilitando a busca de muitos!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 -
Olá, Galera do Xtibia eu hoje vou postar um script Como Tira o Bug das House, Aleta Sio e Aleta Som Nome: Como Tira O Bug Da House, Aleta Sio E Aleta Som Autor: Lucas Brito Como Tira o Bug das House, Aleta Sio e Aleta Som Primeiramente abra o a sua source vai em house.cpp Procure por: replaceString(outExp, "*", ".*"); replaceString(outExp, "?", ".?"); Substitua por: replaceString(outExp, "*", ""); replaceString(outExp, "?", ""); Pronto Ja Resolvido o Bug da Aleta Sio e da Aleta Som Creditos; Lucas Brito REP AEW1 ponto