Líderes
-
-
-
Mathias Silva
MembroPontos20Total de itens -
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 12/29/16 em todas áreas
-
[8.6] [Talkactions] - Find Item
[8.6] [Talkactions] - Find Item
firstemperor e 6 outros reagiu a Vodkart por uma resposta no tópico
7 pontosÉ um comando para procurar determinado item no servidor, ele procura em: *Jogador *Depot *House Tiles basta usar o comando /find NOME DO ITEM exemplo: /find solar axe Obs: Como é feito por DB, os items só ficaram salvo quando der serve save(hora que altera os valores na data base), então se o jogador receber o item as 15:00 e só de serve save as 16:00, só irá aparecer no comando as 16:00 horas. talkactions finditem.lua function onSay(cid, words, param) if param == '' or tonumber(param) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "/find item name") return true end local item_id = getItemIdByName(tostring(param), false) if not item_id then doPlayerSendCancel(cid, "This item does not exist.") return true end local str, player_depotitems, players_items, tile_items = "",{},{},{} local dp = db.getResult("SELECT `player_id`, `count` FROM `player_depotitems` WHERE `itemtype` = "..item_id),{} if (dp:getID() ~= -1) then repeat player_depotitems[#player_depotitems+1] = {dp:getDataInt("player_id"), dp:getDataInt("count") } until not(dp:next()) dp:free() end local pi = db.getResult("SELECT `player_id`, `count` FROM `player_items` WHERE `itemtype` = "..item_id),{} if (pi:getID() ~= -1) then repeat players_items[#players_items+1] = {pi:getDataInt("player_id"), pi:getDataInt("count") } until not(pi:next()) pi:free() end local hi = db.getResult("SELECT `tile_id`, `count` FROM `tile_items` WHERE `itemtype` = "..item_id),{} if (hi:getID() ~= -1) then repeat local tile = db.getResult("SELECT `house_id`, `x`, `y`, `z` FROM `tiles` WHERE `id` = "..hi:getDataInt("tile_id")),{} tile_items[#tile_items+1] = {tile:getDataInt("house_id"),tile:getDataInt("x"),tile:getDataInt("y"),tile:getDataInt("z")} until not(hi:next()) hi:free() end if #player_depotitems > 0 then str = str .. "#DEPOT ITEMS#\nQuantidade - Jogador\n" for i = 1, table.maxn(player_depotitems) do str = str .. player_depotitems[i][2] .. ' ' .. getPlayerNameByGUID(player_depotitems[i][1]) ..' \n' end end if #players_items > 0 then str = str .. (str ~= "" and "--------------//-------------\n\n#PLAYER ITEMS#\nQuantidade - Jogador\n" or "#PLAYER ITEMS#\nQuantidade - Jogador\n") for i = 1, table.maxn(players_items) do str = str .. players_items[i][2] .. ' ' .. getPlayerNameByGUID(players_items[i][1]) ..' \n' end end if #tile_items > 0 then str = str .. (str ~= "" and "--------------//-------------\n\n#TILE ITEMS#\nHouse ID - Tile Position\n" or "#TILE ITEMS#\nHouse ID -Tile Position\n") for i = 1, table.maxn(tile_items) do str = str .. tile_items[i][1] .. ' - {x = ' .. tile_items[i][2] ..', y = ' .. tile_items[i][3] ..', z = ' .. tile_items[i][4] ..'} \n' end end return doShowTextDialog(cid,item_id, str) end TAG <talkaction log="yes" words="!find;/find" access="5" event="script" value="finditem.lua"/>7 pontos -
Baiak Louco Vip 15 8.6
Baiak Louco Vip 15 8.6
kadon e um outro reagiu a Mathias Silva por uma resposta no tópico
2 pontos@DeathRocks @tiekima @igorcano1 @Daywen Melhorado Mapa e Adicionado Varias Áreas | Novos Itens------- | Itens Hyper, Imortal. | Novas Quests. | Novos Bichos | Adicionado VIP 15 | Retirado Bugs no Mapa... | Retirado Varios Bugs no Distro | Novo Visual do Templo | Critical System | Dodge System | Guild Frags System | PvP Balanceado Agora todas vocações estão no balanço | Armas Arrumadas Para Melhor PvP | Varios Eventos | Invasões no Templo de Boss Automatico | Battle Field Event | City War | Adicionado CASTLE 24HORAS (COM CASTELO) e AVISOS DE INVASORES | Itens DONATES | Áreas DONATEs | Varias Areas Donates | Vários Novos Script | Varios Novos Bixos | Fast Atk Arrumado | Frags no Look | Entre Muitas Outras Coisas | Confira ! ----------------------------------------------------------TEMPLO-------------------------------------------------------- -----------------------------------------TELEPORTS DE INICIANTES------------------------------------------------------ --------------------------------------------------AREA DAS DONATES E OUTROS TPS--------------------------------------- ----------------------------------------ITENS AMOSTRA----------------------------------------------------------------- ---------------------------------------------SALA DE QUEST------------------------------------------------------------ DOWNLOAD: https://www.mediafire.com/file/vmhyndz9tynzfdy/BAIaK+Luuoco.rar CONTA DO GOD: god/god Se gostou do Mapa Deixe teu rep+1, para ajudar... Muito OBRIGADO SE GOSTOU DEIXE TEU REP+ MUITO OBRIGADA Scan :https://www.virustotal.com/pt/file/6dc16e21639083b20dc287f50d02f1bf095e5a6b0429e3ca072784f660f60b32/analysis/ WHat's: 035987064887 Facebook: https://www.facebook.com/mathias.silva.1048 Skype: Mathias Ks2 pontos -
Fist Fighting/Attackspeed
Fist Fighting/Attackspeed
Mathias Kenfi reagiu a KekezitoLHP por uma resposta no tópico
1 pontoNome: Fist Fighting/Attackspeed Tipo: C++ Autor: Oneshot Já vi alguns pedidos no fórum sobre a skill Fist Fighting, onde quanto mais você treinasse ela, mais rápido você atacaria no jogo, e parece que isto é um feature do Tibia. Como é uma modificação muito fácil nas sources, resolvi passar aí para a galera. Por padrão, o intervalo entre ataques do Tibia é 2000ms, ou seja, um ataque físico a cada dois segundos. Eu fiz uma pequena modificação nas sources onde o Fist Fighting seria inversamente proporcional ao tal intervalo, ou seja, quanto maior o valor da skill, menor seria o intervalo. Fiz de um modo que um jogador com Fist Fighting de nível 200, então, teria uma redução de 75% no intervalo de ataque, ou seja, um ataque a cada meio segundo ou dois ataques por segundo Leve em consideração que ele pega como base o attackspeed da vocação ou da arma usada, ou seja, se seu servidor já tem o tal chamado "fast attack", de nada adianta adicionar esse código C++. Abra seu player.cpp, procure por isso: Player::getAttackSpeed() Substitua toda a função, dependendo da versão de seu servidor: 0.3.6 uint32_t Player::getAttackSpeed() { Item* weapon = getWeapon(); if(weapon && weapon->getAttackSpeed() != 0) return std::ceil(weapon->getAttackSpeed() * (1 - (getSkill(SKILL_FIST, SKILL_LEVEL) * 0.00375))); return std::ceil(vocation->getAttackSpeed() * (1 - (getSkill(SKILL_FIST, SKILL_LEVEL) * 0.00375))); } 0.4 uint32_t Player::getAttackSpeed() const { return std::ceil(((weapon && weapon->getAttackSpeed() != 0) ? weapon->getAttackSpeed() * (1 - (getSkill(SKILL_FIST, SKILL_LEVEL) * 0.00375)) : (vocation->getAttackSpeed() / std::max((size_t)1, getWeapons().size()) * (1 - (getSkill(SKILL_FIST, SKILL_LEVEL) * 0.00375))))); } Isso adiciona uma utilidade para a skill Fist Fighting que em muitos dos servidores é algo deixado de lado e inútil.1 ponto -
DEV C++ Compilando TFS no Windows
DEV C++ Compilando TFS no Windows
Gabriel485 reagiu a Natanael Beckman por uma resposta no tópico
1 pontoDEV C++, aprenda a compila uma source TFS! Downloads(Baixe de acordo as configurações do seu windows): DEV C++ CONFIGURADO PARA 32BITS DEV C++ CONFIGURADO PARA 64BITS REV 3884 TFS 0.4 Certo, feitos os downloads, extrai DEV C++ no Disco C e REV 3884 em Documentos. ====================================== Abra o DEV C++: ====================================== ====================================== Abra a Source: ====================================== ====================================== Localize a pasta da Source e abra o arquivo TheForgottenServer.dev, Documentos> trunk.r3884> dev-cpp> TheForgottenServer.dev: ====================================== ============================================================= ====================================== Aguarde carregar todos os arquivos: ====================================== ====================================== Vamos adicionar o parâmetro -D__CONSOLE__ no teclado digita ALT + P, clique em parameters e adicione o parâmetro... Feito? clique em OK: ====================================== ====================================== Vamos compilar Source, no teclado digite CTRL+F9 e aguarde finalizar o processo: ====================================== ====================================== Se der tudo certo em Log vai estar como mostra a imagem abaixo: ====================================== ====================================== Verifique na pasta Documentos> trunk.r3884> dev-cpp você vai encontrar o arquivo TheForgottenServer.exe e pronto meu parabéns você compilou! ====================================== =========================================== Só isso galera tutorial rápido resumido e útil! Créditos Natanael Beckman! =========================================== Caso você adquira uma source com apenas os arquivos .cpp e .h e não sabe como compilar o projeto, abaixo vamos explicar: Na pasta onde está localizado os arquivos .cpp e .h crie uma pasta chamada dev-cpp, e dentro dela adicione uma imagem icone. Abra o DEV-C++, clique em File> New> Project: Logo em seguida selecione Empty Project, em name terá o nome Project1 altere utilize o nome quer quiser, após isso clique em OK e em seguida selecione a pasta dev-cpp que criamos: Agora selecione a opção Win32GUI caso use source OTX ou TFS selecione Win32Console ao lado << Browse selecione a imagem do icone que está na pasta Dev-Cpp. No mesmo menu na aba Parameters em C++ compiler adicione os seguintes parâmetros: -D__ENABLE_SERVER_DIAGNOSTIC__ -D__ROOT_PERMISSION__ -D__GROUND_CACHE__ -D__USE_SQLITE__ -D__USE_MYSQL__ -D__CONSOLE__ -D__WAR_SYSTEM__ E em Linker adicione as seguintes libs: -lboost_filesystem -lboost_thread -lboost_system -lboost_regex -lsqlite3 -lwsock32 -llua5.1 -lws2_32 -leay32 -lmysql -lxml2 -lgmp -lz -s No mesmo Menu na aba Build Option escreva na segunda coluna horizontal escreva Obj e dê OK. Na lateral terá o nome do seu projeto o meu no caso é The Forgotten Server, clique com o botão direito do mouse em cima do nome e clique na opção Add Project: Selecione na pasta da sua source todos os arquivos .cpp e .h após isso salva o projeto e já pode compilar CTRL+F9: OpenSSL 0.9.8 1º baixe http://devpaks.org/details.php?devpak=73 2° abra Dev-Cpp > Tools > Packager Manager > Install > Seleciona o arquivo baixado e instala, fecha abre e testa! Clica aqui \/1 ponto -
Ot Restarter
Ot Restarter
Carlos David reagiu a Featzen por uma resposta no tópico
1 pontoBom, sei que aqui já tem alguns auto-restarters, mas não achei nenhum que reiniciasse quando aparecesse a janela de "O programa parou de responder", essa aqui: Então eu fiz um. Print: Como usar? No Campo: Application: Preencha com o titulo da janela do seu servidor, no meu caso, era 'Pokemon Online Server (DA)'. EX: Executable: Preencha com o caminho até a executável do servidor, ou simplesmente clique no botão ao lado('...'). Delay: Preencha com 'de quanto em quanto' tempo ele vai checar se o servidor está respondendo/executando', em segundos. Como ele funciona? Verifica se o programa está aberto. -Se Sim: Verifica se o programa está respondendo. -Se não estiver respondendo, aguarda 20 segundos e reinicia servidor. >> Download << >> Scan <<1 ponto -
(Resolvido)Como criar client Próprio com New client [POKETIBIA]
(Resolvido)Como criar client Próprio com New client [POKETIBIA]
carlosykpk reagiu a Mlkriic95 por uma resposta no tópico
1 ponto---Hey Galera tenhu uma duvida--- Eu recentimente criei um server poketibia e baixei o client só que veio com o client New e nao o Old. E eu não seii onde eu coloco meu ip alii pra tornar ele próprio , se alguem poder me ajudar agradeço desde jaa. Lembrando que eh o client new aquele que vem com pastas (modules,things ...etc) dx9 etals. e nao os que vc faz com o vappus esse eu ja seiii . +++++REP1 ponto -
[TUTORIAL] Resolvendo qualquer erro na data base
Opa, galerinha do TK, pro meu primeiro tutorial resolvi fazer uma solução de um problema que desde que cheguei no TK, vejo que ocorre com uma certa frequência. Os erros da data base. Neste tutorial vou ensinar a resolver os erros do tipo No such table, Insert into, No such column, ... has no column named... etc. 1°) NO SUCH TABLE Bom, para o erro No such table, basta vc visualizar qual table está faltando. Para isso basta ler o erro na distro: No caso da imagem, está faltando a table: player_statements Para resolver este e qualquer outro problema deste tipo, caso sua data base seja sqlite, basta abrir sua data base pelo Sqlite Studio(download: http://sqlitestudio.pl/?act=download) e clicar em Open SQL query editor: Mas caso sua data base seja Mysql abra pelo phpMyadmin, ou por outro editor de sua preferencia. 1.1°) EXECUTANDO OS COMANDOS PARA RESOLVER O PROBLEMA Bom, dependendo da table que estiver faltando, vc irá colocar seu respectivo comando, segue abaixo TODOS os comandos básicos necessários para que sua data base fique Ok! : (VC VAI PEGAR O COMANDO REFERENTE À TABLE QUE VC QUER!!!) account_viplist Sqlite accounts Sqlite bans Sqlite environment_killers Sqlite global_storage Sqlite guild_invites Sqlite guild_kills Sqlite guild_ranks Sqlite guild_wars Sqlite guilds Sqlite house_auctions Sqlite house_data Sqlite house_lists Sqlite houses Sqlite killers Sqlite market_history Sqlite market_offers Sqlite player_deaths Sqlite player_depotitems Sqlite player_inboxitems Sqlite player_items Sqlite player_killers Sqlite player_namelocks Sqlite player_skills Sqlite player_spells Sqlite player_statements Sqlite player_storage Sqlite player_viplist Sqlite players Sqlite server_config Sqlite server_motd Sqlite server_record Sqlite server_reports Sqlite tile_items Sqlite tile_store Sqlite tiles Sqlite announcements Sqlite pagsegurotransacoes Sqlite player_advances Sqlite reports Sqlite thanks Sqlite z_bug_logs Sqlite z_featured_article Sqlite z_forum Sqlite z_helpdesk Sqlite z_monsters Sqlite z_network_box Sqlite z_news_tickers Sqlite z_ots_comunication Sqlite z_polls Sqlite z_polls_answers Sqlite z_poll_votes Sqlite z_shop_history_item Sqlite z_shop_history_pacc Sqlite z_shop_offer Sqlite z_spells Sqlite z_news_big Sqlite 2°) No such column / "NOME DA TABLE" has no column named "NOME DA COLUMN QUE FALTA" / Insert into Bom, para resolver esse problema vc deve identificar em qual TABLE está essa coluna que falta. Para isso, basta ler o erro como na imagem: No caso da imagem, está faltando a column WORLD_ID dentro da table MARKET_OFFERS. Para resolver, vc deve executar excluir a sua table MARKET_OFFERS existante em sua data base, e em seguida, executar o domando da da market_offers, encontrado acima, logicamente isso só se aplica ao caso da imagem, depende do seu caso, vc deve excutar o comando da table que estiver sendo referida no erro. Mas antes de executá-lo vc deve excluir a sua table EXISTENTE, para então executar o comando. ESTA FORMA DE RESOLUÇÃO SE APLICA AOS TRÊS CASOS: NO SUCH COLUMN, ...HAS NO COLUMN NAMED... e INSERT INTO. Bom galera, é isso. SE ENCONTRAREM, OU SE DEPARAREM COM ALGUM ERRO, BASTA ME PEDIR AJUDA QUE EU DAREI TOTAL SUPORTE PARA VOCÊS! SE ESTIVR FALTANDO MAIS ALGUMA TABLE QUE EU NÃO COLOQUEI AQUI, PF ME INFORMEM E EU ATUALIZAREI O TÓPICO!!! Lembrem-se, se eu te ajudei, por favor, deem REP++ pois foi meio trabolhoso fazer este tutorial todo... ESTOU A DISPOSIÇÃO DE TODOS! Tanto por PM quanto por SKYPE, e até mesmo por aqui, pois vou checar este tópico regularmente!! Espero ter ajudado!! Abraços.1 ponto
-
[Tutorial] Como compilar tfs v1.2 com MSVC 2015
[Tutorial] Como compilar tfs v1.2 com MSVC 2015
GamerGoiano reagiu a murilao por uma resposta no tópico
1 pontoE ai galera do TK tudo bem? Bom venho trazer a vocês este tutorial compilando o TFS 1.2 em windows x32 ou x64 bit com Microsoft Visual Studio 2015. Então vamos lá: 1ª Baixe os programa primeiro: Visual Studio 2015 -> MSVC 2015 (compilador) TFS Sdk 3.2 -> Sdks 3.2 (libs) Boost MSVC 2015 -> (32-bit, 64-bit) 2ª Instale os Programa: Primeiro o Boost 32bit ou 64bit. Imagem: 3ª Agora extraia o arquivo tfs-sdk-3.2. Imagem: 4ª Pronto depois de ter feito isso agora abra a pasta da source e depois a pasta vc14 e abre o theforgottenserver. Imagem: 5ª Pronto com Visual Studio 2015 aberto veja abaixo: Clica com botão do mouse direito no projeto theforgottenserver e depois em properties. Imagem: 6ª Feito isso vai em Configuration Manager.. Imagem: 7ª Feito isso vai em C/C++ -> General e veja abaixo: Imagem: 8ª Feito isso vai em Linker --> General e veja abaixo: Imagem: Depois dê Ok depois Aplicar e Ok e esperar da Ready. 9ª Depois vai em Build -> Build Solution ou Aperte F7. Imagem: E agora só esperar terminar a compilação e FIM ! Terminamos o Tutorial ! Creditos a: @murilao por criar tutorial e imagem.1 ponto -
(Resolvido)[Pokemon] Como arrumar experiencia e outros
(Resolvido)[Pokemon] Como arrumar experiencia e outros
Salazar Slytherin reagiu a ryukicho por uma resposta no tópico
1 pontoComo Arrumar Experiencia de Pokemon com Level e outros : Para Quem não sabe aumentar experiencia , arrumar tempo de ataque de Pokemon's e até mesmo trocar a Portrait , esse tutorial Escrito Por Min "Ryukicho" Venho lhe mostra o básico do configuration.lua. Como aumentar/abaixar Experiencia do PokeTibia , speed , ataque/defesa . 1 abra o arquivo configuration.lua com bloco de notas ou outro que se encontra na pasta server/data/lib . Procure isso no script , que se encontra logo no começo: explicação : Experiencia no config.lua Procure por isso: Explicação : Como arrumar os tempos e ataque dos pokemon's Vá em configuration.lua e procure isso : Obs : procure o pokemon que queira editar em ( movestable = { ), no meu caso peguei Salamence ! Explicação : Bom galera se ajudei Rep+ Tutorial feito Por Min , aqui fiz somente o básico . caso tenha duvida Posta , que lhe ajudo1 ponto -
Servidor 10.90 | Windows 32/64 Bits | Versão Final
Servidor 10.90 | Windows 32/64 Bits | Versão Final
twysterox reagiu a Marco Oliveira por uma resposta no tópico
1 pontoDepois de muitos pedidos e muita procura acabei compilando o TFS da versão 10.90, está estável. As sources são originais, não houve modificações nelas, apenas os sistemas foram adicionados... Clique Aqui para fazer o download da versão 32 bits.Clique Aqui para fazer o download da versão 64 bits.Clique Aqui para fazer o download das sources. Clique Aqui para o scan de 32 bits.Clique Aqui para o scan de 64 bits.Clique Aqui para o scan das sources. Para usar o Reward Chest adicione a seguinte flag no monstro. <flag rewardchest="1" / Você também pode definir o drop para ser único, dessa forma só a pessoa que fez o maior dano irá obter este item. exemplo: <item id="5903" chance="100000" uniquedrop="1" /><!-- ferumbras' hat --> Na versão final foram corrigidos os bugs das mensagens do Server Log como as de potion e loot. Seguem as screen shots.. Ps: Eu ainda não tinha disponibilizado o download para outros fóruns.. até pq era exclusivo de um outro fórum do mesmo conteúdo.... Se algum ADM tiver alguma duvida sobre os tópicos não autorizados por favor me mandar msg inbox.1 ponto -
[Fusão] - Itens
1 pontoBom galera, estou trazendo um script de fusão que funciona assim: Explicação: É necessário de 7 itens, na qual você coloca em tal coordenada e aperte a alavanca, sendo assim formando um item na qual você deseja em tal lugar configurado. Exemplo: Você pode fazer 7 bosses na qual dropa tals itens "Parecidos" e formando um item raro de sua escolha, ou como preferir.. Vamos ao script! Em Data/Actions/Scripts crie um arquivo chamado fusaoitens.lua e adicione isto dentro: Agora, em Data/Actions.xml adicione o seguinte: <action uniqueid="9900" script="fusaoitens.lua" /> E no seu RemeresMapEditor , pegue sua alavanca, vai em Propriedades e adicione o UniqueID 9900 nele! PRONTO! Agora configure e divirta-se! Obs: Caso lhe ajudei, da um REP+ Aí !1 ponto
-
(Resolvido)Script Coin dentro do Jogo
Você não especificou a versão do tfs, então fiz na 0.4 e 0.3.6, também não falou o tipo de website, se é modern aac ou gesior e etc.. Você também não falou como era, então fiz em talkactions, ta bem lega assim. data/talkactions/scripts cria um arquivo chamado changeitempoints.lua e bota esse script no arquivo: data/talkactions e abra o arquivo talkactions.xml e adicione essa tag: <talkaction words="!changepoints" event="script" value="changeitempoints.lua"/> Não botei quantidade minima ou máxima no script, se você tiver só 1 coin, ele troca esse coin por 1 ponto, se tiver 2 coins ele troca por 2 pontos, e assim por diante, você só vai colocar o id desse coin no script e pronto!1 ponto
-
[8.6] [Talkactions] - Find Item
1 pontoOtimo, baseado naquele pra 1.x né? Apesar de não usar essa versão de tfs, to lgd que vai ajudar mt gente.1 ponto
-
Qual seria o melhor Baiak disponivel pra download?
Qual seria o melhor Baiak disponivel pra download?
Derzerothreagiu a ElizeuAlmeida por uma resposta no tópico1 ponto@Derzeroth Dos "Baiaks" eu particularmente prefiro: Baiak ICE, Baiak ROX, Baiak Jungle, Baiak Softx, Baiak Crox, e Baiak BRYAAN. Obviamente seria necessário uma remoção de bugs , se eu fosse iniciante , não optaria por um tfs 0.4 , também não acho que baiak seja muito editado , prefiro ver como uma boa adaptação para otserv, enfim.. esses são os que eu considero aceitáveis , para editar á meu gosto e colocar online.1 ponto -
Duvida basic.css
Duvida basic.css
Ivens Pontes reagiu a Pedriinz por uma resposta no tópico
1 pontoAcompanhando o topico, também estou com a mesma duvida... @Edit: Solução para isso no gesior 1.x Abra seu basic.css e procure por: #HeaderArtworkDiv { position: absolute; text-align: center; Mude absolute para fixed. Enjoy it.1 ponto -
[PokeTibia] DarkBot
[PokeTibia] DarkBot
Kaio Walkhymer reagiu a Darkeyren por uma resposta no tópico
1 pontoOpa, eai pessoal... Vim hoje trazer pra vocês um novo BOT para PXG, ele conta com todas as funções GRÁTIS e pretendo lançar mais atualizações pra ele com novas funções e com um algorítimo mais inteligente que o atual, esse é só a versão 1.0 então espero que todos gostem Auto-Updater: Para deixar vocês ainda mais tranquilos em questão as atualizações. Auto-Fishing: Pesca sozinho. Auto-Food: Alimenta seu Pokémon. Auto-Potion: Usa Potion em seu Pokémon quando a vida fica em Yellow. (Pretendo lançar um update pra dar mais opções.) Auto-Attack: Ataca o pokémon inimigo sozinho. Auto-Love / ANT-AFK: Da Love em seu Pokémon e também não deixa desconectar do jogo. FREE: BOT sempre será FREE, mas se quiser ajudar-nos com doações é de bom grado Próximos Updates Auto-Move: Capacidade de soltar moves sozinho de acordo com sua ordem de skill definida. Hotkeys-Help: Alguns atalhos para facilitar sua vida em GAME, como "Auto-Revive". Algorítimo: Melhorar a inteligência do BOT em si e também mais opções de configurações. Updates Screenshots Vídeo Tutorial https://www.youtube.com/watch?v=FIW9Fo-F1fE Links Download 64bits Download 32bits Scan: http://tinyurl.com/ox4gyo9 Credits: Wuva / Darkeyren1 ponto -
[Gesior] Retirar :8090 do Site método 100%
[Gesior] Retirar :8090 do Site método 100%
NTORox OTServer reagiu a ADMDestroyer por uma resposta no tópico
1 pontoBom Galera venho trazer pra vocês meu tutorial com um método infalivel de como tirar o :8090 do seu site,de forma facil e rapida,pois estava em busca e não achei respostas e nen tutoriais que resolvessem meu problema. Bom para começarmos você deve configurar seu site para a porta :8090 Acesse a pasta do XamPP/apache/conf e abra o arquivo httpd com o bloco de notas. Procure por : Listen 80 E por : ServerName localhost:80 Substitua todos os 80 por 8090. Dentro da pasta conf, abra a pasta extra, e em seguida abra httpd-ssl e procure por : Listen 443 E por: <virtualhost _default_:443=""> Substitua esses 443 por 4499. Agora vá; em seu firewall e Adicione a Porta 8090 e Porta 80 e marca a opção TCP. Se usar Roteador, desbloqueie as portas no router tambem Agora reinicie o xampp e acesse seu Site http://localhost:8090/ Feito Isso acesse no-ip.com crie sua conta caso não tenha uma Depois acesse sua conta e vá em ADD Host Agora em Hostname coloque um nome qualquer para que os player acessem seu site Ex: meuotserver.servegame.com Em Host Type selecione port 80 redirect em ip adreess não mecha em port coloque 8090 Selecione a opção Mask URL em page title coloque o nome do seu servidor Depois desca e clique em create host Em seguida aguarde 5 minutos para o host atulizar e voce ja pode acessar seu site pelo hostname que voce criou exemplo.servegame.com E depois crie outro ip de acesso ao servidor pois voce nao conseguira acessar o servidor,pois vai dar conflito! Créditos 100% ADM Destroyer por descobrir o método e trazer a vocês Caso poste em outro forum coloque os devidos crétidos1 ponto -
All bugs OTSERV - REVELADO ! -
All bugs OTSERV - REVELADO ! -
leonidasantos reagiu a AntigoLiberato por uma resposta no tópico
1 pontohahahhah pode reanimar ai em abrir seu OT, já que agora os desenvolvedores vão fixar os bugs.. --------------------------------------------------------------------------------------------------------------------- Aproveito para deixar aqui um UP, no modo em como os foruns de Otvers trabalham, é um bom momento de todos se revelarem de qual lado estão. no lado privado e egoísta aonde o conhecimento fica só entre amigos, visando apenas o lucro de si. ou o conhecimento ser passado de forma GERAL, para que haja uma comunidade de VERDADE, baseada em bons servidores, e deixando os players decidirem aonde querem jogar, tirando assim tanta ganancia e competição entre os ADMS. ai SIM a comunidade se fortificará e haverá benefícios para todos. Não adianta ver esse post usa-lo a seu beneficio, sem deixar seu voto nessa mudança radical na comunidade, a favor de uma comunidade mais unida... falo tudo isso sem nenhuma intenção por trás, porque não tenho OT, não quero ter, e nem jogo mais Tibia, porem nesses meses trabalhando com bugs, eu ví o tanto que está desfalcado a aliança das comunidades em Geral, dando lugar ao EGO. se manifestem e comecem a revelar os segredos ai, GRANDES postadores de conteúdos, que GOSTAM ! DE colocar bugs escondidos nos seus sistemas para prejudicar concorrentes ! Doeu? foda-se.1 ponto -
Globalevents- Criando teleports falantes para tibia.
[Globalevents]Criando teleports falantes para tibia. Tutorial de como colocar teleports falantes no seu OT. Vamos lá, primeiro vá na pasta do seu ot, Data>Globalevents e abram o Globalevents.xml com o bloco de notas e adiciona essa linha : <globalevent name="Teleports" interval="2" script="info.lua" /> Depois vá em Data>Globalevents>Scripts e crie um arquivo .lua, e colocque o nome como info.lua, dentro do scrpit adicione isso : function onThink(interval, lastExecution) pos = {x = 113, y = 56, z = 7} pos1 = {x = 113, y = 54, z = 7} pos2 = {x = 113, y = 52, z = 7} pos3 = {x = 113, y = 50, z = 7} doSendAnimatedText (pos, 'Demon [1]', 140) doSendAnimatedText(pos1, 'Dragon [2]', 140) doSendAnimatedText(pos2, 'Cyclops [1]', 130) doSendAnimatedText(pos3, 'Tumba [2]', 130) pos = {x = 113, y = 56, z = 7} = Coordenadas do teleport doSendAnimatedText(pos, 'Texto para o tp falante', 140) = Ira mandar Texto animado na pos Depois feche e salve, pronto seu teleporte está criado ! Imagem : Click this bar to view the original image of 800x599px. Se lhe ajudei agradeça , não custa nada Se eu estiver errado me corrija ! Lembrando esse tutorial nao foi criado por mim , apenas eu o editei , elaborei algumas coisas e o postei para mante-los informados e com mais conteúdo no fórum e para ajuda-los. Creditos : -> ~ ScaR -> RookWar Outro forum1 ponto
-
[Banir IP] !banip
1 pontoOlá galera do TK trago hoje uma talkaction fácil que fiz para facilitar a banir os players que divulgam ot no seu servidor. Nada mais fácil que digitar !banip playername não é? Pronto acabou com o xarope rs. Vamos lá, é bem simples! Em data/talkactions/scripts crie um arquivo com o nome banip.lua e dentro adicione: function onSay(cid, words, param) if(param == "") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parametro necessario.") return TRUE end local pid = getPlayerByNameWildcard(param) local tmp = getPlayerIp(pid) if(doAddIpBanishment(tmp) or pid == 0 or (isPlayerGhost(pid) == TRUE)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Jogador " .. param .. " nao existe ou n esta online.") end if isPlayerGhost(pid) == FALSE then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Seu ip foi banido amigao.") doAddIpBanishment(tmp, 30 * 24 * 60 * 60) doRemoveCreature(pid) end return TRUE end Logo depois em talkactions.xml adicione a seguinte linha: <talkaction log="yes" group="4-6" access="3-6" words="!banip" event="script" value="banip.lua"/> Agora você pode banir o divulgador por: !banip NOMEDOPLAYER Espero ter ajudado, demais dúvidas poste aqui no tópico Até o próximo. Absolute.1 ponto
-
[Resolvido] [duvida] poketibia
[Resolvido] [duvida] poketibia
arcaydecon reagiu a danieuu por uma resposta no tópico
1 pontoServer/Sources: Poketibia Dash Advanced Server: http://www.4shared.c...by_Ricardo.html Sources v0.2: http://www.4shared.c..._by_Ricard.html Sources v0.3: http://www.4shared.c...ources_v03.html Dev-cpp: http://www.4shared.c...bY/dev-cpp.html Cliente: http://www.4shared.c..._by_Ricard.html Agradecimento: RicardoSohn Sources é o Aplicativo(.exe) do server - aquele que usa para deixar ele online- também conhecido como Distro. Você usa o Dev(programa) que abre a Source que é um conjunto de arquivos em c++, onde ele compila os arquivos no Distro que você usa para ligar seu server. Na source fica tudo os 'comandos' que o server precisa para ler os arquivos(scripts) que tem. Espero ter ajudado Se ajudei da Rep+ (a flexinha verde é so clicar)1 ponto -
Perfect Upgrade System
1 pontoSistema atualizado, mais limpo e com novas funções.1 ponto
-
(Resolvido)[Pedido] NPC Task System
Simple Task.xml <?xml version="1.0" encoding="UTF-8"?> <mod name="Simple Task" version="3.0" author="Vodkart" contact="#####.com" enabled="yes"> <config name="task_func"><![CDATA[ tasktabble = { ["troll"] = {monster_race={"troll","frost troll","furious troll","island troll","swamp troll","troll champion","troll legionnaire"}, storage_start = 200201, storage = 91001,count = 150,exp = 200,money = 250}, ["globin"] = {monster_race={"goblin","goblin assassin","goblin leader"}, storage_start = 200202, storage = 91002,count = 150,exp = 300,money = 300}, ["rotworm"] = {monster_race={"rotworm","carrion worm"}, storage_start = 200203, storage = 91003,count = 300,exp = 1000,money = 800}, ["cyclops"] = {monster_race={"cyclops","cyclops smith","cyclops drone"}, storage_start = 200204, storage = 91004,count = 500,exp = 3000,money = 800}, ["green djinn"] = {monster_race={"green djinn","efreet"}, storage_start = 200205, storage = 91005,count = 500,exp = 10000,money = 5000}, ["blue djinn"] = {monster_race={"blue djinn","marid"}, storage_start = 200206, storage = 91006,count = 500,exp = 10000,money = 5000}, ["pirate one"] = {monster_race={"pirate buccaneer","pirate corsair","pirate cutthroat","pirate ghost","pirate marauder","pirate skeleton"}, storage_start = 200207, storage = 91007,count = 300,exp = 10000,money = 5000}, ["pirate two"] = {monster_race={"pirate buccaneer","pirate corsair","pirate cutthroat","pirate ghost","pirate marauder","pirate skeleton"}, storage_start = 200208, storage = 91008,count = 300,exp = 10000,money = 5000}, ["minotaur"] = {monster_race={"minotaur","minotaur archer","minotaur mage","minotaur guard"}, storage_start = 200209, storage = 91009,count = 20}, ["necromancer"] = {monster_race={"necromancer","priestess"}, storage_start = 200210, storage = 91010,count= 400}, ["carniphila"] = {monster_race={"carniphila"}, storage_start = 200211, storage = 91011,count= 150, exp = 2500}, ["stone golem"] = {monster_race={"stone golem"}, storage_start = 200212, storage = 91012,count= 220, exp = 2000}, ["ice golem"] = {monster_race={"ice golem"}, storage_start = 200213, storage = 91013,count= 300, exp = 12000}, ["dragon"] = {monster_race={"dragon","dragon lord","frost dragon"}, storage_start = 200214, storage = 91014,count= 250, exp = 50000}, ["mutated rat"] = {monster_race={"mutated rat"}, storage_start = 200215, storage = 91015,count = 210, exp = 25000, money = 10000}, ["giant spider"] = {monster_race={"giant spider"}, storage_start = 200215, storage = 91016,count = 500, exp = 50000, money = 15000}, ["hydra"] = {monster_race={"hydra"}, storage_start = 200217, storage = 91017,count = 5000, exp = 2000, money = 15000, reward = {{6433,1},{7434,1},{2197,1},{2476,1}}}, ["sea serpent"] = {monster_race={"sea serpent"}, storage_start = 200218, storage = 91018,count = 1500, exp = 70000, money = 30000}, ["behemoth"] = {monster_race={"behemoth"}, storage_start = 200219, storage = 91019,count = 1800, exp = 50000, money = 30000, reward = {{6391,1},{5741,1}}}, ["serpent spawn"] = {monster_race={"serpent spawn"}, storage_start = 200220, storage = 91020,count = 1400, exp = 70000, money = 30000}, ["demon"] = {monster_race={"demon"}, storage_start = 200221, storage = 91021,count = 6666, exp = 70000, money = 200000, reward = {{2495,1},{2496,1},{2520,1},{2472,1}}}, ["quara"] = {monster_race={"quara predator","quara constrictor","quara hydromancer","quara mantassin","quara pincher"}, storage_start = 200222, storage = 91022,count = 300, exp = 40000, money = 50000}, ["quara scout"] = {monster_race={"quara predator scout","quara constrictor scout","quara hydromancer scout","quara mantassin scout","quara pincher scout"}, storage_start = 200223, storage = 91023,count = 300, exp = 50000, money = 60000} } configbosses_task = { {race = "minotaur",Playerpos = {x = 189, y = 57, z = 7}, FromPosToPos = {{x = 186, y = 54, z = 7},{x = 193, y = 60, z = 7}},time = 5}, {race = "necromancer",Playerpos = {x = 196, y = 39, z = 7}, FromPosToPos = {{x = 195, y = 37, z = 7},{x = 198, y = 41, z = 7}}, time = 5}, {race = "dragon",Playerpos = {x = 208, y = 59, z = 7}, FromPosToPos = {{x = 206, y = 56, z = 7},{x = 209, y = 65, z = 7}}, time = 5} } function CheckTask(cid) for k, v in pairs(tasktabble) do if getPlayerStorageValue(cid,v.storage_start) >= 1 then return true end end return false end function finisheAllTask(cid) local config = { exp = {true,100000}, money = {true,200000}, items ={false,{{2124,2},{2173,1}}}, premium ={true,5} } local x = true for k, v in pairs(tasktabble) do if tonumber(getPlayerStorageValue(cid,v.storage)) then x = false end end if x == true then setPlayerStorageValue(cid, 521456, 0) local b = getGlobalStorageValue(63005) if b == -1 then b = 1 end if b < 11 then setGlobalStorageValue(63005,b+1) doBroadcastMessage('[Task Mission Complete] '..getCreatureName(cid)..' was the '..b..' to finish the task!.') doPlayerAddPremiumDays(cid, config.premium[1] == true and config.premium[2] or 0) doPlayerAddExp(cid, config.exp[1] == true and config.exp[2] or 0) doPlayerAddMoney(cid, config.money[1] == true and config.money[2] or 0) if config.items[1] == true then doAddItemsFromList(cid,config.items[2]) end doItemSetAttribute(doPlayerAddItem(cid, 7369), "name", "trophy "..getCreatureName(cid).." completed all the task.") end end end function HavePlayerPosition(cid, from, to) return isInRange(getPlayerPosition(cid), from, to) and true or false end function getRankStorage(cid, value, max, RankName) -- by vodka local str ="" str = "--[".. (RankName == nil and "RANK STORAGE" or ""..RankName.."") .."]--\n\n" local query = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = "..value.." ORDER BY cast(value as INTEGER) DESC;") if (query:getID() ~= -1) then k = 1 repeat if k > max then break end str = str .. "\n " .. k .. ". "..getPlayerNameByGUID(query:getDataString("player_id")).." - [" .. query:getDataInt("value") .. "]" k = k + 1 until not query:next() end return doShowTextDialog(cid, 2529, str) end function getItemsInContainerById(container, itemid) -- Function By Kydrai local items = {} if isContainer(container) and getContainerSize(container) > 0 then for slot=0, (getContainerSize(container)-1) do local item = getContainerItem(container, slot) if isContainer(item.uid) then local itemsbag = getItemsInContainerById(item.uid, itemid) for i=0, #itemsbag do table.insert(items, itemsbag[i]) end else if itemid == item.itemid then table.insert(items, item.uid) end end end end return items end function doPlayerAddItemStacking(cid, itemid, quant) -- by mkalo local item = getItemsInContainerById(getPlayerSlotItem(cid, 3).uid, itemid) local piles = 0 if #item > 0 then for i,x in pairs(item) do if getThing(x).type < 100 then local it = getThing(x) doTransformItem(it.uid, itemid, it.type+quant) if it.type+quant > 100 then doPlayerAddItem(cid, itemid, it.type+quant-100) end else piles = piles+1 end end else return doPlayerAddItem(cid, itemid, quant) end if piles == #item then doPlayerAddItem(cid, itemid, quant) end end function getItemsFromList(items) -- by vodka local str = '' if table.maxn(items) > 0 then for i = 1, table.maxn(items) do str = str .. items[i][2] .. ' ' .. getItemNameById(items[i][1]) if i ~= table.maxn(items) then str = str .. ', ' end end end return str end function doAddItemsFromList(cid,items) -- by vodka if table.maxn(items) > 0 then for i = 1, table.maxn(items) do local count = items[i][2] while count > 0 do if isItemStackable(items[i][1]) then doPlayerAddItemStacking(cid, items[i][1], 1) else doPlayerAddItem(cid, items[i][1],1) end count = count - 1 end end end end function pairsByKeys(t, f) local a = {} for n in pairs(t) do table.insert(a, n) end table.sort(a, f) local i = 0 local iter = function () i = i + 1 if a[i] == nil then return nil else return a[i], t[a[i]] end end return iter end ]]></config> <event type="login" name="TaskLogin" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid, "KillTask") return true end]]></event> <talkaction words="/task;!task" event="buffer"><![CDATA[ domodlib('task_func') local param = string.lower(param) if param == "rank" then getRankStorage(cid, 521456, 20, "Task Rank Finalizadas") return true end local str = "" str = str .. "Task Completed :\n\n" for k, v in pairsByKeys(tasktabble) do local contagem = getPlayerStorageValue(cid, v.storage) if (contagem == -1) then contagem = 1 end str = str..k.." = ".. (not tonumber(contagem) and "["..contagem.."]" or "["..((contagem)-1).."/"..v.count.."]") .."\n" end str = str .. "" return doShowTextDialog(cid, 8983, str) ]]></talkaction> <event type="kill" name="KillTask" event="script"><![CDATA[ domodlib('task_func') function onKill(cid, target, lastHit) if(isMonster(target) == true) then local n = string.lower(getCreatureName(target)) for race, mob in pairs(tasktabble) do if getPlayerStorageValue(cid,mob .storage_start) >= 1 then for i = 1,#mob.monster_race do if n == mob.monster_race[i] then local contagem = getPlayerStorageValue(cid, mob.storage) if (contagem == -1) then contagem = 1 end if not tonumber(contagem) then return true end if contagem > mob.count then return true end if contagem > mob.count then return true end setPlayerStorageValue(cid, mob.storage, contagem+1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,""..(contagem == mob.count and "Congratulations! You finished the task of "..race.."." or "defeated. Total [" .. contagem .. "/" .. mob.count .. "] " .. race .. ".").."") end end end end end return true end]]></event> </mod> NPC/SCRIPT simple_task.lua domodlib('task_func') 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 local msg = string.lower(msg) if isInArray({"task","tasks","missao","mission"}, msg) then npcHandler:say("Me diga o nome do monstro que você deseja fazer a task!", cid) talkState[talkUser] = 1 elseif talkState[talkUser] == 1 then if tasktabble[msg] then if CheckTask(cid) ~= true then local contagem = getPlayerStorageValue(cid, tasktabble[msg].storage) if (contagem == -1) then contagem = 1 end if not tonumber(contagem) then npcHandler:say('Desculpe, mas você já terminou a task do '..msg, cid) return true end setPlayerStorageValue(cid, tasktabble[msg].storage_start, 1) npcHandler:say("Parabéns, agora você está participando da missão task do "..msg..", falta matar "..string.sub(((contagem)-1)-tasktabble[msg].count, 2).." "..msg, cid) talkState[talkUser] = 0 else npcHandler:say('Desculpe, mas você já faz parte de uma task!', cid) talkState[talkUser] = 0 end else npcHandler:say('digite o nome correto da missão task! para mais informações digite {!task}', cid) talkState[talkUser] = 1 end elseif isInArray({"receber","reward","recompensa","report","reportar"}, msg) then if CheckTask(cid) then for k, v in pairs(tasktabble) do racetype = k if getPlayerStorageValue(cid,v.storage_start) >= 1 then local contagem = getPlayerStorageValue(cid, v.storage) if (contagem == -1) then contagem = 1 end if not tonumber(contagem) then npcHandler:say('você só pode receber os items uma única vez!', cid) return true end if (((contagem)-1) >= v.count) then for _, check in pairs(configbosses_task) do if string.lower(check.race) == string.lower(racetype) then local on = getPlayersOnline() for i=1, #on do if HavePlayerPosition(on[i], check.FromPosToPos[1],check.FromPosToPos[2]) then selfSay('aguarde alguns instantes, tem pessoas fazendo a task.', cid) return true end end doTeleportThing(cid, check.Playerpos) local function checkArea(cid) if not isCreature(cid) then return LUA_ERROR end if HavePlayerPosition(cid, check.FromPosToPos[1],check.FromPosToPos[2]) then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) end end addEvent(checkArea, check.time*60*1000, cid) end end local str = "" if v.exp ~= nil then doPlayerAddExp(cid, v.exp ) str = str.."".. (str == "" and "" or ",") .." "..v.exp.." de exp" end if v.money ~= nil then doPlayerAddMoney(cid, v.money) str = str.."".. (str == "" and "" or ",") ..""..v.money.." gps" end if v.reward ~= nil then doAddItemsFromList(cid,v.reward) str = str.."".. (str == "" and "" or ",") ..""..getItemsFromList(v.reward) end npcHandler:say("Obrigado pela sua ajuda Recompensas: "..(str == "" and "nenhuma" or ""..str.."").." por ter completado a task do "..k, cid) setPlayerStorageValue(cid, v.storage, "Finished") setPlayerStorageValue(cid, v.storage_start, 0) setPlayerStorageValue(cid, 521456, getPlayerStorageValue(cid, 521456) == -1 and 1 or getPlayerStorageValue(cid, 521456)+1) finisheAllTask(cid) else npcHandler:say('Desculpe,mas você só matou '..((contagem)-1)..' de '..v.count..' '..k, cid) end end end else npcHandler:say("você não está em nenhuma missão task", cid) end elseif isInArray({"sair","leave","exit"}, msg) then if CheckTask(cid) then talkState[talkUser] = 2 for k, v in pairs(tasktabble) do if getPlayerStorageValue(cid,v.storage_start) >= 1 then storagesair = v.storage_start local contagem = getPlayerStorageValue(cid, v.storage) if (contagem == -1) then contagem = 1 end npcHandler:say('você está participando de uma missão task do '..k..' e já tem '..((contagem)-1)..' '..k..' mortos, deseja mesmo sair?', cid) end end else npcHandler:say("você não está em nenhuma missão task", cid) end elseif msgcontains(msg, 'yes') and talkState[talkUser] == 2 then setPlayerStorageValue(cid, storagesair, 0) npcHandler:say("Você foi retirado da task com sucesso!", cid) elseif msg == "no" then selfSay("Tudo bem então", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) NPC Ludger.xml <?xml version="1.0"?> <npc name="Ludger" script="data/npc/scripts/simple_task.lua" walkinterval="50000" floorchange="0"> <health now="100" max="100"/> <look type="129" head="95" body="116" legs="121" feet="115" addons="3"/> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|. quer fazer uma {task}? ou {sair} de uma? tambem pode {receber} premios se terminou ela!" /> </parameters> </npc> Script do Vodkart1 ponto