Líderes
-
psychonaut
MembroPontos528Total de itens -
Tio Marshmello
MembroPontos212Total de itens -
-
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 03/12/17 em todas áreas
-
Mordem Acc Otpokemon 4.0 Re-uplound
Mordem Acc Otpokemon 4.0 Re-uplound
pedro poke tibia e 2 outros reagiu a Tio Marshmello por uma resposta no tópico
3 pontosBom Galera Esse Site ja Foi Postado Aki No Forum Mais O Link Foi Retirado Entao Estou trazendo Outra vez pra caso alguem queira usar IMAGENS Download Scan Creditos Para Otpokemon Pelo Site eo @wougoplex Pelo Reuplound3 pontos -
(Resolvido)text kill com problema
(Resolvido)text kill com problema
jNo e um outro reagiu a psychonaut por uma resposta no tópico
2 pontosfunction onKill(cid, target) local texts = {'Dominado Full', 'Assado Full', 'Owned', 'xBurguer', 'Estupred', 'Deita cuzaum'} local colors = { TEXTCOLOR_WHITE, TEXTCOLOR_ORANGE, TEXTCOLOR_DARKRED, TEXTCOLOR_GREEN, TEXTCOLOR_BLUE } if isPlayer(target) then doSendAnimatedText(getThingPosition(cid), texts[1], colors[ math.random( 1, #colors ) ] ) doSendAnimatedText(getThingPosition(target), texts[2], colors[ math.random( 1, #colors ) ] ) end return true end tenta aí Também pode tentar mudar só essa linha com as aspas certas local texts = {'Dominado Full', 'Assado Full', 'Owned', 'xBurguer', 'Estupred", "Deita cuzaum"} >> local texts = {'Dominado Full', 'Assado Full', 'Owned', 'xBurguer', 'Estupred', 'Deita cuzaum'} Acho que podia ter deixado o math.random(0, 255) ali, aí não interagia com a tabela, acho que seria mais rápido, mas vê aí2 pontos -
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 -
[DxP] Exclusivo Poketibia OpenSource+Cliente+Site+DB
[DxP] Exclusivo Poketibia OpenSource+Cliente+Site+DB
Maxwell743 reagiu a Duduph por uma resposta no tópico
1 pontoExclusivo! PokeTibia DxP OpenSource praticamente completo com sistemas e funções nunca liberados. ATENÇÃO: Não dou suporte, apenas estou disponibilizando o server para quem quiser continua-lo ou pegar os sistemas. Se alguns grandes aqui do TK quiserem ajudar nos bugs fiquem a vontade, pois este server é praticamente completo, com funções e sistemas nas sources, acho que nunca liberados para o publico. Aconselho a trocarem o mapa ou criarem outro por que não testei o mesmo, e não sei se há bugs ou armadilhas. • Menu: ├ Informações; ├ Bugs; ├ Prints; ├ Download; └ Créditos. • Informações Basicas • • Duel System. • Nick System. • TV System. • Autoloot System. • Block Respaw System. • Mega Evolução Ssystem. • Auto Stacking System. • Player passa por dentro de outros Players(Não sei o nome deste sistema kk). • Ditto Memory System. • Player pode usar potions, revive, soltar poke andando sem parar. • Limite de efeitos aumentados nas sources até 380(Podendo aumentar muito mais) • Transparência. • Cliente criptografado(Acompanha OBD único para o cliente). • Sistemas básicos como fly, ride, surf, order etc. • Held System(Não tem todos, falta fazer alguns, ja tem o x-luck). • Fishing trocando o outfit automaticamente. • Icone System. • Varias Pokeballs novas. • Task System. • Guild System. E muito+, não testei o servidor todo. podem ter sistemas no server que eu esqueci de colocar aqui na lista. • Bugs • Irei postar os que eu sei, podem haver mais. • Gym System não esta funcionando. Postarei a lista completa de bugs conhecidos e o que ja foi corrigido logo mais. • Prints • • Mega Evolução • Ditto Memory. • TV System. • Auto Loot System. • Block Respaw System. • Irei colocar mais prints em breve(Estou com pouco tempo agora). • Downloads• Alguns antivirus detectam virus, possiveis dlls não reconhecidas, baixem por sua conta em risco, não estou obrigando ninguem a baixar, estou trabalhando no server e nao tive problemas. Caso tenham problemas na descompactação dos arquivos utilizem o 7zip, compactador que utilizei. • Créditos • •CipSoft •Nintendo •TFS Team •Dark X Poke •PXG •Tom Lukz (Smix) •Allan Harlen (Kttallan/lordsorte) •Eduardo Meskita (FuuinFake) •Noninhouh •Tony Araujo •Taiger/Dudu •Drakopoulos •Justiceiro751 •Techrlz •RicardoRox E a todos que tiveram alguma participação em sistemas, server, site, cliente etc. Mais atualizações em breve!!!1 ponto -
EXCLUSIVO BASE PARECIDA (OtpokemonXY)
EXCLUSIVO BASE PARECIDA (OtpokemonXY)
Lordoritos reagiu a eliaszinho por uma resposta no tópico
1 pontoresolvi postar aqui um servidor editado igual a o OtPokemon ° Sistemas Moves System: 100% Caught System: 100% Go-Back System:100% Portrait System: 100% Heal.lua 100% Ginasios 90% • ArySoon Araujo Arrumou Os Attakes Dos Pokemons pareçidos com o OtPokémon • Adicionado Boost System • Adicionado Shiny Stone System • Adicionado Vip Por escritura System • Adicionado Quest Burned • Adicionado Quest Pesadelos • Adicionado Quest Mysterios • Adicionado Balada System em Cerulean Video do Youtube Downloads do servidor Download Server+Cliente+Jhotohttp://www.mediafire.com/file/7i8hs31me5ttzmr/Base+XY.rarMapa Jhoto: http://www.mediafire.com/file/9tbgtjefyz7a1tz/world.rar Youtube ================================================ SCAN: https://www.virustotal.com/pt/file/27f637c10ff7dca4b69b8d7846882c65989705d0f64ceb072a3643731d86a4ab/analysis/1478032783/ Se Mostrar virus e por causa das DLL1 ponto -
Trade OFF - Shop Offline
Trade OFF - Shop Offline
Trunksontibia reagiu a Natanael Beckman por uma resposta no tópico
1 pontoEsse sistema disponibiliza uma negociação offline, onde você oferta um item e esse item é divulgado no site do server e qualquer player pode comprar o item utilizando um comando especificado. Crie uma arquivo .lua dentro da pasta data/talkactions/scripts com o nome auctionsystem.lua, dentro do mesmo adicione o code: local config = { levelRequiredToAdd = 20, maxOffersPerPlayer = 5, SendOffersOnlyInPZ = true, blocked_items = {2165, 2152, 2148, 2160, 2166, 2167, 2168, 2169, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2343, 2433, 2640, 6132, 6300, 6301, 9932, 9933} } function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") return true end local t = string.explode(param, ",") if(t[1] == "add") then if((not t[2]) or (not t[3]) or (not t[4])) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") return true end if(not tonumber(t[3]) or (not tonumber(t[4]))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don't set valid price or items count.") return true end if(string.len(t[3]) > 7 or (string.len(t[4]) > 3)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "This price or item count is too high.") return true end local item = getItemIdByName(t[2]) if(not item) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Item wich such name does not exists.") return true end if(getPlayerLevel(cid) < config.levelRequiredToAdd) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don't have required (" .. config.levelRequiredToAdd .. ") level.") return true end if(isInArray(config.blocked_items, item)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "This item is blocked.") return true end if(getPlayerItemCount(cid, item) < (tonumber(t[4]))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry, you don't have this item(s).") return true end local check = db.getResult("SELECT `id` FROM `auction_system` WHERE `player` = " .. getPlayerGUID(cid) .. ";") if(check:getID() == -1) then elseif(check:getRows(true) >= config.maxOffersPerPlayer) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry you can't add more offers (max. " .. config.maxOffersPerPlayer .. ")") return true end if(config.SendOffersOnlyInPZ) then if(not getTilePzInfo(getPlayerPosition(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You must be in PZ area when you add offert to database.") return true end end if(tonumber(t[4]) < 1 or (tonumber(t[3]) < 1)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have to type a number higher than 0.") return true end local itemcount, costgp = math.floor(t[4]), math.floor(t[3]) doPlayerRemoveItem(cid, item, itemcount) db.executeQuery("INSERT INTO `auction_system` (`player`, `item_name`, `item_id`, `count`, `cost`, `date`) VALUES (" .. getPlayerGUID(cid) .. ", \"" .. t[2] .. "\", " .. getItemIdByName(t[2]) .. ", " .. itemcount .. ", " .. costgp ..", " .. os.time() .. ")") doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You successfully add " .. itemcount .." " .. t[2] .." for " .. costgp .. " gps to offerts database.") end if(t[1] == "buy") then if(not tonumber(t[2])) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Wrong ID.") return true end local buy = db.getResult("SELECT * FROM `auction_system` WHERE `id` = " .. (tonumber(t[2])) .. ";") if(buy:getID() ~= -1) then if(getPlayerMoney(cid) < buy:getDataInt("cost")) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don't have enoguh GP.") buy:free() return true end if(getPlayerName(cid) == getPlayerNameByGUID(buy:getDataInt("player"))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry, you can't buy your own items.") buy:free() return true end if(getPlayerFreeCap(cid) < getItemWeightById(buy:getDataInt("item_id"), buy:getDataInt("count")))then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You try to buy a " .. buy:getDataString("item_name") .. ". It weight " .. getItemWeightById(buy:getDataInt("item_id"), buy:getDataInt("count")) .. " cap oz. and you have only " .. getPlayerFreeCap(cid) .. " oz. free capacity. Put some items to depot and try again.") buy:free() return true end if(isItemStackable((buy:getDataString("item_id")))) then doPlayerAddItem(cid, buy:getDataString("item_id"), buy:getDataInt("count")) else for i = 1, buy:getDataInt("count") do doPlayerAddItem(cid, buy:getDataString("item_id"), 1) end end doPlayerRemoveMoney(cid, buy:getDataInt("cost")) db.executeQuery("DELETE FROM `auction_system` WHERE `id` = " .. t[2] .. ";") doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You bought " .. buy:getDataInt("count") .. " ".. buy:getDataString("item_name") .. " for " .. buy:getDataInt("cost") .. " gps!") db.executeQuery("UPDATE `players` SET `auction_balance` = `auction_balance` + " .. buy:getDataInt("cost") .. " WHERE `id` = " .. buy:getDataInt("player") .. ";") buy:free() else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Wrong ID.") end end if(t[1] == "remove") then if((not tonumber(t[2]))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Wrong ID.") return true end if(config.SendOffersOnlyInPZ) then if(not getTilePzInfo(getPlayerPosition(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You must be in PZ area when you remove offerts from database.") return true end end local delete = db.getResult("SELECT * FROM `auction_system` WHERE `id` = " .. (tonumber(t[2])) .. ";") if(delete:getID() ~= -1) then if(getPlayerGUID(cid) == delete:getDataInt("player")) then db.executeQuery("DELETE FROM `auction_system` WHERE `id` = " .. t[2] .. ";") if(isItemStackable(delete:getDataString("item_id"))) then doPlayerAddItem(cid, delete:getDataString("item_id"), delete:getDataInt("count")) else for i = 1, delete:getDataInt("count") do doPlayerAddItem(cid, delete:getDataString("item_id"), 1) end end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your offert has been deleted from offerts database.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "This is not your offert!") end delete:free() else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Wrong ID.") end end if(t[1] == "withdraw") then local balance = db.getResult("SELECT `auction_balance` FROM `players` WHERE `id` = " .. getPlayerGUID(cid) .. ";") if(balance:getDataInt("auction_balance") < 1) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You don't have money on your auction balance.") balance:free() return true end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You got " .. balance:getDataInt("auction_balance") .. " gps from auction system!") doPlayerAddMoney(cid, balance:getDataInt("auction_balance")) db.executeQuery("UPDATE `players` SET `auction_balance` = '0' WHERE `id` = " .. getPlayerGUID(cid) .. ";") balance:free() end return true end Em seguida em talkactions.xml adicione a tag: <talkaction words="!offer" event="script" value="auctionsystem.lua"/> No banco de dados execute as querys: CREATE TABLE `auction_system` ( `id` int(11) NOT NULL auto_increment, `player` int(11), `item_id` int(11), `item_name` varchar(255), `count` int(11), `cost` int(11), `date` int(11), PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; ALTER TABLE `players` ADD `auction_balance` INT( 11 ) NOT NULL DEFAULT '0'; Na pasta do seu site crie um arquivo chamado tradeoff.php, em seguida adicione o code: <?PHP $auctions = $SQL->query('SELECT `auction_system`.`player`, `auction_system`.`id`, `auction_system`.`item_name`, `auction_system`.`item_id`, `auction_system`.`count`, `auction_system`.`cost`, `auction_system`.`date`, `players`.`name` FROM `auction_system`, `players` WHERE `players`.`id` = `auction_system`.`player` ORDER BY `auction_system`.`id` DESC')->fetchAll(); $players = 0; $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD CLASS=white><b>Instruction<b></TD></TR><TR BGCOLOR='.$config['site']['darkborder'].'><TD><center><h2>Commands</h2><b>!offer add, itemName, itemPrice, itemCount</b><br /><small>example: !offer add, plate armor, 500, 1</small><br /><br /><B>!offer buy, AuctionID</b><br /><small>example: !offer buy, 1943</small><br /><br /><b>!offer remove, AuctionID</b><br /><small>example: !offer remove, 1943</small><br /><br /><b>!offer withdraw</b><br /><small>Use this command to get money for sold items.</small></center></TR></TD></TABLE><br />'; if(empty($auctions)) { $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD CLASS=white><b>Auctions</b></td></TR><TR BGCOLOR='.$config['site']['darkborder'].'><TD>Currently is no one active Auction.</TD></TR></TABLE>'; $main_content .= '<br /><p align="right"><small>System created by <a href="http://otland.net/members/vDk/">vDk</a>.</small></p>'; } else { foreach($auctions as $auction) { $players++; if(is_int($players / 2)) $bgcolor = $config['site']['lightborder']; else $bgcolor = $config['site']['darkborder']; $cost = round($auction['cost']/1000, 2); $content .= '<TR BGCOLOR='.$bgcolor.'><TD><center>'.$auction['id'].'</center></TD><TD><center><img src="/item_images/'.$auction['item_id'].'.gif"/></center></TD><TD><center>'.$auction['item_name'].'</center></TD><TD><center><a href="?subtopic=characters&name='.urlencode($auction['name']).'">'.$auction['name'].'</a></center></TD><TD><center>'.$auction['count'].'</center></TD><TD><center>'.$cost.'k<br /><small>'.$auction['cost'].'gp</small></center></TD><TD><center>!offer buy, '.$auction['id'].'</center></TR>'; } $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD CLASS=white><b><center>ID</center></b></TD><TD class="white"><b><center>#</center></b></TD><TD class="white"><b><center>Item Name</center></b></TD><TD class="white"><b><center>Player</center></b></TD><TD class="white"><b><center>Count</center></b></TD><TD class="white"><b><center>Cost</center></b></td><TD class="white"><b><center>Buy</center></b></td></TR>'.$content.'</TABLE>'; $main_content .= '<br /><p align="right"><small>System created by <a href="http://otland.net/members/vdk.1553/">vDk</a>.</small></p>'; } ?> Em layouts.php adcione o code: <a href="?subtopic=tradeoff"> <div id="submenu_tradeoff" 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_tradeoff" class="ActiveSubmenuItemIcon" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);"></div> <div id="ActiveSubmenuItemLabel_tradeoff" class="SubmenuitemLabel">Trade Off</div> <div class="RightChain" style="background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);"></div> </div> </a> Pra finalizar em index.php adicione esse code: case "tradeoff"; $topic = "Trade Off"; $subtopic = "tradeoff"; include("tradeoff.php"); break; - E pronto galera clica em GOSTEI e comenta no tópico.1 ponto -
Mega Mewtwo Y
Mega Mewtwo Y
lauasss reagiu a Superkoopa por uma resposta no tópico
1 pontoBom eu já criei esse post mais parece que ele não saiu , ent vamos lá! Essa é a sprite do Mega Mewtwo Y/Shiny Mega Mewtwo feitas por min , pra servidores que tem Icon System os ícones já estão ai! Foto Se gostou da REP+ Link: http://www.mediafire.com/file/15n5buc8kef6xe4/Mega_Mewtwo_Y.rar Scan: https://www.virustotal.com/pt/file/b6c23fd84c83767bc9134fd57ff4bd83fa9e51dc7a26c14e8a71663442e11ef3/analysis/1482325750/ Creditos: -Eu, por ter feito a sprite -PXG por ter feito o Mewtwo que eu usei1 ponto -
Aumentando a quantidade de effects permitida - 8.60
Salve galera, recentemente um Membro postou um Tópico de como tirar o Limite de Efeitos do Old-Client(Client da Cipsfot ), só que somente para a versão 8.54, então devido ao numero de pedidos dos membros que utilizam Client na versão 8.6, resolvi criar esse Tópico ensinando a fazer isso, porém ele criou um Programa para Sobre-Escrever o Endereço, o meu Tutorial será na raça. Kkkkk Vamos nessa, a baixo citarei o Programa que iremos utilizar para essa mudança, e uns requisitos! Informações e Requisitos! Vamos colocar a mão na massa, abra o Debugador que faz a leita em Hexadecimal, para isso usaremos o OllyDbg, que deixarei o Link dele no final do Tópico. Após baixado abra ele. E no icone da pastinha no canto superior esquerdo, clique na pastinha e selecione O diretório do Client. Obs: Lembre-se de deixa o Client junto com a SPR e Dat, pois irá precisa runnar o Client para ele mostrar os Endereços! Apos ter carregado completamente, irá aparecer na metade a barra de rolagem, então suba para cima até o fim. Feito isso de um Ctrl+S para abrir a função Find Command, e então digite essa chamada CALL 00410450 e de um enter. OBS, lembre-se de desmarca a função Entire Block, e então achará a função, impossível dar erro, afinal só existe uma chamada como esse Code. Depois de ter achado ela, de um Enter com a função selecionada, e irá até outro Endereço. WTF, aja endereço nessa poxa! Kkkkk E agora é hora da mágica, iremos mudar para Uint_16 finalmente. Kkkkkk, Ali em baixo mais precisamente em cima dos Args, terá duas funções que você irá alterá, como mostra os próximos passos. Click na primeira chamada, e aperte espaço ou aperte duas vezes com o botão esquerdo do mause, para que você possa alterá o endereço. Irá vim a função CALL 004F9A60 então mude por completo para CALL 004F9C00 e click em assembly: Agora fazemos isso na segunda função, abaixo da primeira, click duas vezes ou aperte espaço, e virá a função MOVZX EAX,AL, e então mude para MOVZX EAX, AX e depois click em assembly: Pronto, só isso seu Client agora passará a Ler em Uint_16 o que significa que você poderá usar até 65534 Effects no seu Old-Client, mais ainda não acabou, precisamos salvar. Após ter mudado, click com o Botão auxiliar(esquerdo) do mause, em cima em cima de uma das funções, qualquer uma, e vá em Copy to executable > All Modifications: E depois Click em Copy All: Irá aparecer outra janela, agora nessa nova janela, click novamente com o botão esquerdo do mause, E click em Save file e salve o Exe modificado na pasta desejada: Pronto, seu Client foi Modificado com Sucesso, e como falei anteriormente, não esqueça de configurar seu Server em Uint_16, e ter liberado os efeitos para mais de 255, coloque quantos quiser, brincks tem um limite, de 65534, e fim, seja feliz. Antes de mais nada vamos testa ? Veja no meu Dat, tem efeitos até 259, então irei usar o 259 para mostra que está tudo certo. Isso ae Galera, tudo nosso nada deles. Bom Uso do Uint_16, é algo que presenciei muitos pedindo, e muitos cobrando para fazer essa Alteração, bem, ta ae, e vou nessa. E agora claro o Link do Download. Gostaria de Informa que o Vírus Detectado, não é nada mais nada menos que um Falso-Positivo, por se tratar que Programa, faça uma Alteração Interna dentro de Outro programa. Caso você não saiba modificar a source para uint16 siga esse Tutorial aqui! Download do OllyDbg Versão 1.10 Scan do OllyDbg Versão 1.10 Créditos: { Breno Neves (Eu), Fernando Prado (Parça que me passou o Ultimo endereço) } Peço desculpas pelos erros de Escrita nas imgs. Sorry! xD Conteúdo Exclusivo para o Tk, não é permitido levar para outro site, blog ou fórum!1 ponto
-
[C++] Color Monster
[C++] Color Monster
KinG DarKensBerG reagiu a rohfagundes por uma resposta no tópico
1 pontoOla, tinha umas pessoas pedindo para eu mostrar aonde muda a cor do monstro então resolvi criar um tópico para mostrar, vamos la. na source do cliente va no arquivo creature.cpp procure por: void Creature::internalDrawOutfit(Point dest, float scaleFactor, bool animateWalk, bool animateIdle, Otc::Direction direction, LightView *lightView) dentro dessa funçao ache isso: g_painter->setColor(m_outfitColor); logo abaixo add isso: if (isMonster() && m_name == "Demon") g_painter->setColor(Color::orange); if (isMonster() && m_name == "Dragon") g_painter->setColor(Color::teal); pronto todos os demons e dragons vão estar com cor diferente imagem: ps: no tópico eu editei para pegar o nome do monstro pq no meu ele pega outra informação q n vai ter no ot de vcs edit: as cores disponíveis: const Color Color::alpha = 0x00000000U; const Color Color::white = 0xffffffff; const Color Color::black = 0xff000000; const Color Color::red = 0xff0000ff; const Color Color::darkRed = 0xff000080; const Color Color::green = 0xff00ff00; const Color Color::darkGreen = 0xff008000; const Color Color::blue = 0xffff0000; const Color Color::darkBlue = 0xff800000; const Color Color::pink = 0xffff00ff; const Color Color::darkPink = 0xff800080; const Color Color::yellow = 0xff00ffff; const Color Color::darkYellow = 0xff008080; const Color Color::teal = 0xffffff00; const Color Color::darkTeal = 0xff808000; const Color Color::gray = 0xffa0a0a0; const Color Color::darkGray = 0xff808080; const Color Color::lightGray = 0xffc0c0c0; const Color Color::orange = 0xff008cff;1 ponto -
[talkactions] Adicionar item para todos players online
[talkactions] Adicionar item para todos players online
Tumaty Vermelho reagiu a ViitinG por uma resposta no tópico
1 pontoPara quem não sabe como funciona o script é o seguinte o ADM pode usar o comando para adicionar um item para todos os players online no servidor. • Adicionando o script • Em "data/talkactions/talkactions.xml" adicione está tag : <talkaction log="yes" words="/additem" access="5" event="script" value="additem.lua"/> Em "data/talkactions/scripts" crie um arquivo lua com o nome "additem" e adicione este script nele : function onSay(cid, words, param, channel) local t = string.explode(param, ",") if t[1] ~= nil and t[2] ~= nil then local list = {} for i, tid in ipairs(getPlayersOnline()) do list[i] = tid end for i = 1, #list do doPlayerAddItem(list[i],t[1],t[2]) doBroadcastMessage(getPlayerName(cid) .. " Acabou de dar: " .. t[2] .." ".. getItemNameById(t[1]) .. " para todos os players online!") end else doPlayerPopupFYI(cid, "No parm...\nSend:\n /itemadd itemid,how_much_items\nexample:\n /itemadd 2160,10") end return true end • Configurando •1 ponto -
Como criar uma nova skill
1 pontoFala, galera! Beleza? Sou novo aqui no TK e queria trazer algo para vocês. Dei uma procurada e não achei nada do tipo, então creio que esse tutorial possa ajudar algumas pessoas! O que vou ensinar a vocês é como criar uma skill direto na source, o que permite que você utilize comandos como "getPlayerSkill", "doPlayerAddSkillTry" etc em seus scripts em Lua. Esse tutorial NÃO serve para criar skills de "combate", como sword, axe etc. Esse tipo de skill envolve vários outros parâmetros além do que mostrarei aqui. Quem sabe eu faça um tutorial sobre isso daqui um tempo. Preview de uma skill que criei para meu projeto: Para este tutorial, eu usei: Sources do The Forgotten Server 0.3.7: Aqui serão feitas várias edições, criando a nova skill e tudo que é necessário para a skill funcionar corretamente. Microsoft Visual Studio 2010 Professional: Utilizei para compilar o TFS com as novas edições. Se não souber compilar, procure em outros tópicos aqui do fórum. Não é meu objetivo aqui ensinar como compilar. É necessário compilar com o MVS? Não. Se você preferir, pode fazer com outros programas. Notepad++: Usei porque acho um editor de texto simples, prático e funcional. Não gosto de editar os códigos no MVS. Porém sinta-se à vontade para usar o editor que quiser. haha SQLiteStudio 2.1.4: Será necessário para fazer pequenas alterações para que seu banco de dados funcione corretamente. Se você utiliza MySQL, terá que fazer essas edições por outro programa. Sources do OTClient: Como utilizo o OTClient em meu servidor, usarei ele para demonstrar como adicionar a barrinha à janela de Skill. Se você utiliza outro client, infelizmente, não poderei dar suporte, já que nunca editei outros clients. Codeblocks: Usei para compilar o OTClient. Mas pode ser feito com o MVS também. A escolha é sua! Passo 1 - Editar a source do TFS: Passo 2 - Editar o OTClient: Passo 3 - Editar o TFS: Passo 4 - Editar a database: Pronto! Seu servidor já está configurado com a nova skill! Agora você poderá usar Lua para configurá-la! Vou dar um exemplo MUITO simples de como isso poderia ser feito em Lua: Claro que essa action acima é algo muito simples, mas, tendo o servidor já configurado, acredito que essas modificações abram uma gama de possibilidades imensas a todos que querem desenvolver uma nova skill. Espero que tenham gostado e que o tutorial seja útil para alguém! haha Qualquer erro ou bug, me avisem! Atenciosamente, Auro Mota.1 ponto
-
CLEAN area
CLEAN area
Pifafa reagiu a thelifeofpbion por uma resposta no tópico
1 ponto[Esses dias criei um tópico pedindo isso, ninguém respondeu. Mas consegui criar juntando alguns scripts que tinha aqui] Basicamente é uma action que clica em algum lugar e limpa uma determinada área. <action actionid="XXXX" event="script" value="Limpa_area.lua"/> Limpa_area.lua Abraços ?1 ponto -
GLOBAL 100% 7.40 Cliente Proprio, Port Hope 7.4, POI, Demon OaK, War System, Shared Exp, Cast System, Anti Clone, Task System.
GLOBAL 100% 7.40 Cliente Proprio, Port Hope 7.4, POI, Demon OaK, War System, Shared Exp, Cast System, Anti Clone, Task System.
Sekk reagiu a Ivens Pontes por uma resposta no tópico
1 pontoSim, acho que eu usei ele pra compilar1 ponto -
Mordem Acc Otpokemon 4.0 Re-uplound
da nada precisa não to de boa kk1 ponto
-
Mordem Acc Otpokemon 4.0 Re-uplound
Mordem Acc Otpokemon 4.0 Re-uplound
Tio Marshmello reagiu a Vodkart por uma resposta no tópico
1 pontoParabéns, seu tópico de conteúdo foi aprovado! Muito obrigado pela sua contribuição, nós do Tibia King agradecemos. Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.1 ponto -
Ajuda script de shiny e script de sexo male e female
Ajuda script de shiny e script de sexo male e female
DarkRed reagiu a Tio Marshmello por uma resposta no tópico
1 pontoVoce quer dizer q o aparece o nome shiny no pokemon?1 ponto -
(Resolvido)script npc de repair
(Resolvido)script npc de repair
jNo reagiu a psychonaut por uma resposta no tópico
1 pontoAté dá mas é grande aí da mt trampo, aí nem faço. Tenta usar o original mas vem com limite por vocação1 ponto -
(Resolvido)script npc de repair
1 ponto
-
Dúvida com pairs e ipairs
Dúvida com pairs e ipairs
KotZletY reagiu a xWhiteWolf por uma resposta no tópico
1 pontopairs = função next.. ela percorre toda a tabela independente dos dados ipairs = só percorre os pares de elementos numéricos. usar ipairs é semelhante ao usar for i = 1, #table do if not table[i] then break end -- código aqui end enquanto que o pairs itera sobre praticamente qualquer index: considera a tabela local table = { [1] = 1, [2] = 2, [3] = 3, [4] = nil [5] = 4, } Se eu usar ipairs e mandar printar ele vai printar 1, 2 e 3 mesmo tendo o 5 na tabela pq o 4 é nulo e ele cancela ali, O mesmo vale se os indexes forem strings. o pairs itera sobre qualquer coisa, ele printaria 1, 2, 3, 5 (4 não pq é nulo) porém o pairs utiliza uma função next e essa função não é determinística, ou seja, ele não vai retornar exatamente na ordem desejada, então toma cuidado quando usar pairs ou ipairs. Em geral pairs é muito util, mas precisa ter um cuidado especial ao utilizá-lo pq ele é bem mais complexo.1 ponto -
(Resolvido)Pedido, talk, !frags inteligente
@jNo como você sabe, tem 3x tipos para ganhar as skulls, dia, semana e mês, tanto pra red quanto pra black. Como não sabia qual você queria, fiz do jeito que você pediu, só que por dias, mostra quantos frags falta por dia, tanto pra red quanto pra black. Espero que seja isso: Mais algo que me veio na mente é: se já mostra quantos frags por dia para as skulls, para que esses dois de baixo ? Ou não conseguir compreender o seu pedido e fiz errado ?1 ponto
-
GLOBAL 100% 7.40 Cliente Proprio, Port Hope 7.4, POI, Demon OaK, War System, Shared Exp, Cast System, Anti Clone, Task System.
GLOBAL 100% 7.40 Cliente Proprio, Port Hope 7.4, POI, Demon OaK, War System, Shared Exp, Cast System, Anti Clone, Task System.
Sekk reagiu a Ivens Pontes por uma resposta no tópico
1 pontoSó instalar as libs, aqui o mattyx ensina: LINK Depois só abrir o projeto no Visual Studio 2015 Enterprise, no link tem o download dele tbm. Agora só ir em Build -> Configuration Manager, colocar em release e a arquitetura 32x ou 64x. Depois ir em Project Properties -> C/C++ -> Preprocessor, colocar _MULTIPLATFORM77 e compilar. por fim, as DLLS.1 ponto -
(Resolvido)text kill com problema
(Resolvido)text kill com problema
psychonaut reagiu a Vodkart por uma resposta no tópico
1 pontosim eu vi que vc arrumou, mas nessa função se o texto for mto grande tbm corta se não me engano...1 ponto -
GESIOR AAC - Clonagem de Dinheiro
GESIOR AAC - Clonagem de Dinheiro
Vodkart reagiu a psychonaut por uma resposta no tópico
1 pontoNão achei nenhum tópico sobre isso, se já tiver algum deleta aqui. Todo Gesior não atualizado antes do commit de 1 de maio de 2016 dá aos jogadores a possibilidade de clonar dinheiro a partir de um bug. Isso acontece pois os jogadores podem transferir dinheiro para os personagens Samples... aqueles que já vem no scheme que é usado como base para os novos personagens, ao fazer isso todo novo jogador nasce com o dinheiro transferido no banco. Esse bug funciona em todas as versões do TFS por mais de 7 anos. Para concertar atualize para uma nova versão do Gesior ou tente mudar manualmente a parte do commit(não sei se vai funcionar). Para mudar tem que ir naquele link e ver as linhas em verde, essas você adiciona, e remove as de vermelho que já estão no seu, sempre faça backup antes.1 ponto -
bug no distro
bug no distro
JcA reagiu a Weslley Kiyo por uma resposta no tópico
1 pontotb não encontrei para te passar o link kkk Pega ae as colunas ALTER TABLE `killers` ADD `war` INT NOT NULL DEFAULT 0;1 ponto -
[PEDIDO] Como fazer uma script de um NPC, para dar permissão para usar um talkaction
[PEDIDO] Como fazer uma script de um NPC, para dar permissão para usar um talkaction
samuel.show reagiu a Sekk por uma resposta no tópico
1 pontoeu ja te ensinei la no seu outro topico cara edit. ja vi pq o script n tava te satisfazendo, é pq o script de aura q vc tem, pede que a storage esta com valor == 2 se eu soubesse disso antes kkkk ai ta o script do item function onUse(cid, item, fromPosition, itemEx, toPosition) local s = 25950 -- storage aura local x = 25951 -- storage on/off local pos = getCreaturePosition(cid) -- n mexa local exh = 25952 -- storage exhaust local texh = 5 -- tempo de exhaust em segundos if exhaustion.check(cid, exh) then doPlayerSendCancel(cid, "You can use it again in "..exhaustion.get(cid, exh).." seconds.") return true end if getPlayerStorageValue(cid, x) <= 0 and getPlayerStorageValue(cid, s) <= 0 then setPlayerStorageValue(cid, x, 1) setPlayerStorageValue(cid, s, 2) exhaustion.set(cid, exh, texh) doSendMagicEffect(pos, CONST_ME_MAGIC_BLUE) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sua aura foi ativada.") elseif getPlayerStorageValue(cid, x) == 1 and getPlayerStorageValue(cid, s) == 2 then setPlayerStorageValue(cid, x, 0) setPlayerStorageValue(cid, s, 0) exhaustion.set(cid, exh, texh) doSendMagicEffect(pos, CONST_ME_MAGIC_BLUE) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sua aura foi desativada.") end return true end1 ponto -
[PEDIDO] Como fazer para um item ativar Aura
[PEDIDO] Como fazer para um item ativar Aura
samuel.show reagiu a Sekk por uma resposta no tópico
1 pontocreaturescripts/scripts/aura.lua local config = { tempo = 1, -- tempo em segundos efeito = 15, -- efeito q vc quer } local stor = 25950 function aura(cid) doSendMagicEffect(getCreaturePosition(cid), config.efeito) addEvent(aura, config.tempo*1000, cid) end function onThink(cid, interval) if getPlayerStorageValue(cid, stor) == 1 then aura(cid) end return true end creaturescripts.xml <event type="think" name="AuraS" event="script" value="aura.lua"/> e registra isso no login.lua registerCreatureEvent(cid, "AuraS")1 ponto -
(Resolvido)Correção script additem
(Resolvido)Correção script additem
jNo reagiu a psychonaut por uma resposta no tópico
1 ponto1 ponto- (Resolvido)Correção de script, adc mensagem + remove dinheiro
(Resolvido)Correção de script, adc mensagem + remove dinheiro
jNo reagiu a psychonaut por uma resposta no tópico
1 ponto1 ponto- [PEDIDO] Como fazer para um item ativar Aura
[PEDIDO] Como fazer para um item ativar Aura
samuel.show reagiu a wevertonvrb por uma resposta no tópico
1 pontoman vamos la eu fiz pra voce um por movement sendo assim vc n precisa de comando nem nada para fazer este script eu usei uma bota crocodile boots para testar e ficou 100% modo de usar. quando voce equipar a bota vai sair um efeito do personagem ou seja se vc tiver com esta bota no pé do teu personagem o efeito acontece e caso vc tire a bota o efeito para vamos la vá em data/movements abre o movements.xml e cole isso <movevent type="DeEquip" itemid="3982" slot="feet" event="script" value="botas.lua"/> <movevent type="Equip" itemid="3982" slot="feet" event="script" value="botas.lua"/> salve e fecha lenbrando que o 3982 é o id da crocodile boots caso queira usar outro item basta trocar pelo id do item que queira outra coisa o feet significa pés ou seja isso so server para botas caso queira por uma armadura ou outro item deixarei como mudar abaixo agora vamos ao script vá em data/movements/scripts copie e cole um arquivo qualquer e renomeie para botas.lua1 ponto- [AJUDA] Order da erro
1 ponto@KrazzyMan o ordem, é um item que fica fixado no slot, para ele funcionar existe um script action que ao clicar executa a tal função, se não está funcionando é porque não existe ou tem algo errado, revise o mesmo!1 ponto- pod deleta
1 ponto- Estatua que teletransporta
Estatua que teletransporta
WorkedBox reagiu a Thony D. Serv por uma resposta no tópico
1 pontoCrie Um Arquivo No Actions/Scripts/ARQUIVO.LUA Dentro Desse ARQUIVO.LUA coloque function onUse(cid, item, frompos, topos) local tab = { pos = {x = 1278, y = 1040, z = 15} -- posição x, y, z do local a teleportar o player } if isPlayer(cid) then doTeleportThing(cid, tab.pos) doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT) doCreatureSay(cid, "Voce Entrou", TALKTYPE_ORANGE_1) end end Agora Va No Actions/Actions.xml Dentro Do Actions.xml Coloque <action uniqueid="13520" script="ARQUIVO.lua" /> Depois Va No Remeres Abra As Propriedades Da Estatua La Ira Ter ACTION ID... E UNIQUEID... no UNIQUEID Coloque 13520 E Pronto Ajudei? Rep+1 ponto- (Resolvido)Background de Website fic bugado
Vai no style.css e procura isso aki "#cfdfef" essa ai é a cor azul que ta aparecendo, muda pra #8caa74 que é o verde que você você quer.1 ponto- Offline player to player item trader (Auction System)
Offline player to player item trader (Auction System)
Rafals reagiu a Dudu Ruller por uma resposta no tópico
1 pontoBoa Noite Galera, Trago a voces Hoje o sistema Auction System (Vender items mesmo estando offline), Espero que Gostem. Informaçoes deste Script: *Visualizaçao de Items na Pagina do Gesior. *Outros Jogadores podem comprar usando o AuctionID. *Lembrese de Bloquear todos os Items com tempo de Duraçao. Changelog: v1.0 - Primeiro Relase v1.1 - Corrigido falhas de memória, acrescentou levelRequiredToAdd v1.1a - Fixed bug crítico com maxOffersPerPlayer verificação V1.1B - Corrigido o erro com números negativos v1.2 - Novo comando "retirar", correções para 0.3.6pl1 v1.2a - Fixed bug clone itens Fotos: Database Querys: Va Na sua database e depois clique em SQL, e Execute essa Query: ALTER TABLE `players` ADD `auction_balance` INT( 11 ) NOT NULL DEFAULT '0'; e Depois essa: CREATE TABLE `auction_system` ( `id` int(11) NOT NULL auto_increment, `player` int(11), `item_id` int(11), `item_name` varchar(255), `count` int(11), `cost` int(11), `date` int(11), PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; e Depois va ate a pasta onde fica seu website e crie a seguinte pagina para o Gesior ACC: <?PHP $auctions = $SQL->query('SELECT `auction_system`.`player`, `auction_system`.`id`, `auction_system`.`item_name`, `auction_system`.`item_id`, `auction_system`.`count`, `auction_system`.`cost`, `auction_system`.`date`, `players`.`name` FROM `auction_system`, `players` WHERE `players`.`id` = `auction_system`.`player` ORDER BY `auction_system`.`id` DESC')->fetchAll(); $players = 0; $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD CLASS=white><b>Instruction<b></TD></TR><TR BGCOLOR='.$config['site']['darkborder'].'><TD><center><h2>Commands</h2><b>!offer add, itemName, itemPrice, itemCount</b><br /><small>example: !offer add, plate armor, 500, 1</small><br /><br /><B>!offer buy, AuctionID</b><br /><small>example: !offer buy, 1943</small><br /><br /><b>!offer remove, AuctionID</b><br /><small>example: !offer remove, 1943</small><br /><br /><b>!offer withdraw</b><br /><small>Use this command to get money for sold items.</small></center></TR></TD></TABLE><br />'; if(empty($auctions)) { $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD CLASS=white><b>Auctions</b></td></TR><TR BGCOLOR='.$config['site']['darkborder'].'><TD>Currently is no one active Auction.</TD></TR></TABLE>'; $main_content .= '<br /><p align="right"><small>System created by <a href="http://otland.net/members/vDk/">vDk</a>.</small></p>'; } else { foreach($auctions as $auction) { $players++; if(is_int($players / 2)) $bgcolor = $config['site']['lightborder']; else $bgcolor = $config['site']['darkborder']; $cost = round($auction['cost']/1000, 2); $content .= '<TR BGCOLOR='.$bgcolor.'><TD><center>'.$auction['id'].'</center></TD><TD><center><img src="http://otland.net/images/items/'.$auction['item_id'].'.gif"/></center></TD><TD><center>'.$auction['item_name'].'</center></TD><TD><center><a href="?subtopic=characters&name='.urlencode($auction['name']).'">'.$auction['name'].'</a></center></TD><TD><center>'.$auction['count'].'</center></TD><TD><center>'.$cost.'k<br /><small>'.$auction['cost'].'gp</small></center></TD><TD><center>!offer buy, '.$auction['id'].'</center></TR>'; } $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD CLASS=white><b><center>ID</center></b></TD><TD class="white"><b><center>#</center></b></TD><TD class="white"><b><center>Item Name</center></b></TD><TD class="white"><b><center>Player</center></b></TD><TD class="white"><b><center>Count</center></b></TD><TD class="white"><b><center>Cost</center></b></td><TD class="white"><b><center>Buy</center></b></td></TR>'.$content.'</TABLE>'; $main_content .= '<br /><p align="right"><small>System created by <a href="http://otland.net/members/vDk/">vDk</a>.</small></p>'; } ?> Agora va ate pasta do seu ot/data/talkactions/talkactions.xml e abra: Adicione a seguinte tinha: <talkaction words="!offer" event="script" value="auctionsystem.lua"/> Agora crie um arquivo .lua chamado auctionsystem.lua e adicione isso dentro, depois salve e largue dentro do data/talkactions/scripts: --[[ Offline player to player item trader (Auction System) by vDk Script version: 1.2a [ -- FIXED CLONE ITEMS BUG -- ] ]]-- local config = { levelRequiredToAdd = 20, maxOffersPerPlayer = 5, SendOffersOnlyInPZ = true, blocked_items = {2165, 2152, 2148, 2160, 2166, 2167, 2168, 2169, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2343, 2433, 2640, 6132, 6300, 6301, 9932, 9933} } function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") return true end local t = string.explode(param, ",") if(t[1] == "add") then if((not t[2]) or (not t[3]) or (not t[4])) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") return true end if(not tonumber(t[3]) or (not tonumber(t[4]))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don't set valid price or items count.") return true end if(string.len(t[3]) > 7 or (string.len(t[4]) > 3)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "This price or item count is too high.") return true end local item = getItemIdByName(t[2], false) if(not item) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Item wich such name does not exists.") return true end if(getPlayerLevel(cid) < config.levelRequiredToAdd) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don't have required (" .. config.levelRequiredToAdd .. ") level.") return true end if(isInArray(config.blocked_items, item)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "This item is blocked.") return true end if(getPlayerItemCount(cid, item) < (tonumber(t[4]))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry, you don't have this item(s).") return true end local check = db.getResult("SELECT `id` FROM `auction_system` WHERE `player` = " .. getPlayerGUID(cid) .. ";") if(check:getID() == -1) then elseif(check:getRows(true) >= config.maxOffersPerPlayer) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry you can't add more offers (max. " .. config.maxOffersPerPlayer .. ")") return true end if(config.SendOffersOnlyInPZ) then if(not getTilePzInfo(getPlayerPosition(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You must be in PZ area when you add offert to database.") return true end end if(tonumber(t[4]) < 1 or (tonumber(t[3]) < 1)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have to type a number higher than 0.") return true end local itemcount, costgp = math.floor(t[4]), math.floor(t[3]) doPlayerRemoveItem(cid, item, itemcount) db.executeQuery("INSERT INTO `auction_system` (`player`, `item_name`, `item_id`, `count`, `cost`, `date`) VALUES (" .. getPlayerGUID(cid) .. ", \"" .. t[2] .. "\", " .. getItemIdByName(t[2]) .. ", " .. itemcount .. ", " .. costgp ..", " .. os.time() .. ")") doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You successfully add " .. itemcount .." " .. t[2] .." for " .. costgp .. " gps to offerts database.") end if(t[1] == "buy") then if(not tonumber(t[2])) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Wrong ID.") return true end local buy = db.getResult("SELECT * FROM `auction_system` WHERE `id` = " .. (tonumber(t[2])) .. ";") if(buy:getID() ~= -1) then if(getPlayerMoney(cid) < buy:getDataInt("cost")) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don't have enoguh GP.") buy:free() return true end if(getPlayerName(cid) == getPlayerNameByGUID(buy:getDataInt("player"))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry, you can't buy your own items.") buy:free() return true end if(getPlayerFreeCap(cid) < getItemWeightById(buy:getDataInt("item_id"), buy:getDataInt("count")))then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You try to buy a " .. buy:getDataString("item_name") .. ". It weight " .. getItemWeightById(buy:getDataInt("item_id"), buy:getDataInt("count")) .. " cap oz. and you have only " .. getPlayerFreeCap(cid) .. " oz. free capacity. Put some items to depot and try again.") buy:free() return true end if(isItemStackable((buy:getDataString("item_id")))) then doPlayerAddItem(cid, buy:getDataString("item_id"), buy:getDataInt("count")) else for i = 1, buy:getDataInt("count") do doPlayerAddItem(cid, buy:getDataString("item_id"), 1) end end doPlayerRemoveMoney(cid, buy:getDataInt("cost")) db.executeQuery("DELETE FROM `auction_system` WHERE `id` = " .. t[2] .. ";") doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You bought " .. buy:getDataInt("count") .. " ".. buy:getDataString("item_name") .. " for " .. buy:getDataInt("cost") .. " gps!") db.executeQuery("UPDATE `players` SET `auction_balance` = `auction_balance` + " .. buy:getDataInt("cost") .. " WHERE `id` = " .. buy:getDataInt("player") .. ";") buy:free() else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Wrong ID.") end end if(t[1] == "remove") then if((not tonumber(t[2]))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Wrong ID.") return true end if(config.SendOffersOnlyInPZ) then if(not getTilePzInfo(getPlayerPosition(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You must be in PZ area when you remove offerts from database.") return true end end local delete = db.getResult("SELECT * FROM `auction_system` WHERE `id` = " .. (tonumber(t[2])) .. ";") if(delete:getID() ~= -1) then if(getPlayerGUID(cid) == delete:getDataInt("player")) then db.executeQuery("DELETE FROM `auction_system` WHERE `id` = " .. t[2] .. ";") if(isItemStackable(delete:getDataString("item_id"))) then doPlayerAddItem(cid, delete:getDataString("item_id"), delete:getDataInt("count")) else for i = 1, delete:getDataInt("count") do doPlayerAddItem(cid, delete:getDataString("item_id"), 1) end end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your offert has been deleted from offerts database.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "This is not your offert!") end delete:free() else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Wrong ID.") end end if(t[1] == "withdraw") then local balance = db.getResult("SELECT `auction_balance` FROM `players` WHERE `id` = " .. getPlayerGUID(cid) .. ";") if(balance:getDataInt("auction_balance") < 1) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You don't have money on your auction balance.") balance:free() return true end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You got " .. balance:getDataInt("auction_balance") .. " gps from auction system!") doPlayerAddMoney(cid, balance:getDataInt("auction_balance")) db.executeQuery("UPDATE `players` SET `auction_balance` = '0' WHERE `id` = " .. getPlayerGUID(cid) .. ";") balance:free() end return true end Bem e isso, Comentem!1 ponto- [Pedido] Scripts Tibia Coin
[Pedido] Scripts Tibia Coin
Sh1br4nk4 reagiu a igorlabanca por uma resposta no tópico
1 pontoVai em actions.xml e adiciona <action itemid="24774" script="other/tibiacoin.lua"/> Vai na pasta actions/scripts/other e cria um arquivo tibiacoin.lua function onUse(player, item, fromPosition, target, toPosition, isHotkey) local points = 10 --aqui você bota a quantidade de coins que o item vai dar db.query("UPDATE `accounts` SET `coins` = `coins` + '" .. points .. "' WHERE `id` = '" .. player:getAccountId() .. "';") player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Você recebeu "..points.." coins") item:remove(1) return true end Testei em tfs 1.2 e funcionou1 ponto- (Resolvido)Exana flam
1 pontoCria um arquivo chamado flam.lua em spells/scripts e coloque isso dentro: A tag no spells.xml, é só copiar a do exana pox e fazer as edições necessárias. Desculpe qualquer erro, e a falta de organização, estou com pressa aqui!1 ponto- (Resolvido)[PDA] Como tirar o sexo dos pokemons?
Basta editar a pic, ou o look.lua, posta seu look.lua ai.1 ponto- Como criar um ring para meu otserve
Como criar um ring para meu otserve
Eduardo1534 reagiu a Cerberus por uma resposta no tópico
1 pontose vai em item/items.xml e escole 1 ring e add isso <attribute key="decayTo" value="10021" /> -- se ele for subir poe 0 se for virar outro item poe Id , se não quiser q suma ou vire outro item deleta essa linha.<attribute key="duration" value="14400" /> -- tempo que ele vai durar se não quiser por duração tira eessa linha <attribute key="healthGain" value="8" /> --- quanto enche muda o 8 para 200 se quer 200 <attribute key="healthTicks" value="2000" /> -- de quanto e quanto tempo ta de 2 em 2 segundos <attribute key="manaGain" value="15" /> -- quanto de mana subindo <attribute key="manaTicks" value="1000" /> -- a cada 1 segundo <attribute key="showduration" value="1" /> --- mostrar tempo q falta apra acabar... <attribute key="showattributes" value="1" /> -- mostrar que ele heala life e mana ou qualquer coisa q vc por nele o item book seria esse TAG <action itemid="id do book" event="script" value="onde ele esta.lua"/> function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerBlessing(cid, 1) or getPlayerBlessing(cid, 2) or getPlayerBlessing(cid, 3) or getPlayerBlessing(cid, 4) or getPlayerBlessing(cid, 5) then doPlayerSendCancel(cid,'You have already been blessed') else doPlayerAddBlessing(cid, 1) doPlayerAddBlessing(cid, 2) doPlayerAddBlessing(cid, 3) doPlayerAddBlessing(cid, 4) doPlayerAddBlessing(cid, 5) doCreatureSay(cid, 'Você ganhou todas as bless', TALKTYPE_ORANGE_1) end return true end1 ponto- [PEDIDO ] RASHID
1 ponto1 ponto- [Tutorial] Criando quest log
[Tutorial] Criando quest log
jacksonsns reagiu a Vampira por uma resposta no tópico
1 ponto*Criando quest log por Action* Como eu não achei nenhum tutorial desse por aqui resolvi criar um, neste tutorial ensinarei vocês a criar um quest log para suas quests Oque é quest log: Quest Log tem a função de armazenar as quests que você fez ou está fazendo, mostrar em que parte da QUEST você está e como seguir adiante, etc... Em data/XML abra o arquivo chamado quests.xml nele vai ter mais ou menos assim: Entendendo: Vermelho = Nome da sua Quest Verde = Storage ID da Quest que vai aparecer no Quest Log Azul = Numéro de Início da Quest Negrito = Nome da Missão Rosa = Storage da Missão Laranja = Valor de Início da Missão Marrom = Valor de Finalização Preto = Descrição da Missão Bom, agora que nós já entendemos o que cada coisa faz, podemos dar continuidade com o SCRIPT. aonde estáNome da Quest você deve colocar o Nome que vai aparecer no Quest Log, depois que você inseriu o nome da sua Quest você deve ir na pasta data/actions/scripts e achar o arquivo .lua da sua Quest, nele você apertaCTRL+F e depois digita isso aqui: Depois que você encontrar este comando clique em Cancelar, depois vai ter mais ou menos isso: Exemplo: Relembrando que a cor Verde é o nosso Storage ID e o Azul é o nosso Comando de Início Agora que nós achamos o nosso Storage ID e o nosso Comando de Início podemos preencher a primeira linha da nossa Quest assim: Explicando um pouco para poder continuarmos com nosso Tutorial, uma quest é composta de Storages Values, cada movimento que você avança em sua Quest é dado um Storage Value novo. EX: Você pega a Quest (Ganhou seu primeiro Storage Value), Você abriu o Baú (Ganhou seu Storage Value Final.). Isso quando você está fazendo a Quest por Action. Então nós entendemos que na primeira linha da Quest nós precisamos por o Value de quando você pega a Quest. Agora continuando com o SCRIPT... Nós vimos que o nosso Storage ID era 1 e o nosso Comando de Início era 1, então nós acabamos de preencher a primeira linha com os números que encontramos. Agora nós vamos para a segunda linha, primeiramente você deve colocar o nome da sua missão, dai você me pergunta: - Nós já não colocamos o nome da nossa Quest? Resposta: Sim, nós colocamos o NOME DA QUEST agora vamos colocar o NOME DA MISSÃO, ou seja, aqueles nomes que fica no retângulo de cima quando você da SHOW na QUEST, aquilo é uma Missão. Bom, depois que você colocou o Nome da sua Missão, como eu havia explicado antes sobre Storages Values, nós devemos pegar agora o nosso primeiro Storage Value novamente e o nosso primeiro Comando de início, ficando assim: Pronto, nós preenchemos o nosso StorageValue e o nosso Comando de Início agora nós precisamos inserir o valor de término, depois que você pega o Baú (como expliquei ali em cima) você recebe o seu segundo Storage Value digamos que o meu seja assim: Observe que o Storage Value de quando você pega o Baú tem 2 em vez de 1, isto porque o 2 é o número de encerramento da missão, então nós devemos colocar assim na segunda linha: Resumindo, a nossa missão começa logo quando você recebe a missão do NPC e ela se completa quando você abre o Baú. Agora que a parte mais difícil já foi, vamos para a parte mais fácil do nosso SCRIPT, a Descrição da missão (a frase que aparece no quadro de baixo). Esse é o número da descrição, no caso nós colocamos apenas uma Missão então seria uma Descrição, se você colocar 2 Missão, você vai colocar e na outra você vai colocar depois da nossa missionstate tudo que devemos fazer é colocar nossa descrição onde está "Descrição da Missão.", ficando assim: Lembrando que nunca se deve usar carácteres especiais, como: Terminamos aqui nosso tutorial espero que tenham gostado Creditos: meu Inspiração: joaovbz1 ponto- Passar um Ot de NTO do 8.54 peo 8.6 AJUDA
Passar um Ot de NTO do 8.54 peo 8.6 AJUDA
Victor Cain J reagiu a Bryan Robert por uma resposta no tópico
1 pontoAssunto: Passando o seu servidor de narutibia de 8.54 para 8.60. Tutorial: Baixe o servidor "Crying Dasmon Forgotten Server 8.60" & o "RME" (ou qualquer outro editor que funcione na versão 8.60). Abra o mapa do Forgotten Server e vá em: File > Import > Map Depois de importado dê save e apague tudo da pasta data do Forgotten Server (menos a pasta World do mapa) e coloque as do NTO Shinobi. Após isto configure a config.lua para mysql (phpmyadmin) e pronto. Bugs: Caso dê bug nos Monsters/NPC do seu server, abra seu mapa no RME e vá em: File > Import > NPC or Monster Selecione todos os arquivos .xml de npc e monster da sua pasta data. Downloads: Crying Dasmon Forgotten Server 8.60 RME Creditos: Vegettotaku (eu, pelo tutorial) Naruto Shinobi [Hoobin Hood] (Pelo Server) Crying Dasmon (Pelo Server)1 ponto- Pokémon Centurion V5.0
1 pontoAtenção, Todos os servers disponivel em: http://www.tibiaking...tado-por-jobby/1 ponto- War Of Emperium
1 ponto- [AJUDA] Resetar o servidor
[AJUDA] Resetar o servidor
tukkaa tattoo reagiu a MatheusVidaLoka por uma resposta no tópico
1 pontoSe seu servidor for sem site, irá ter um arquivo chamado **********.s3db não sei como estará no seu, na maioria dos ots é forgottenserver.s3db, tanto faz ache algo que no final está .s3db (esse arquivo .s3db estará na pasta do seu server,portanto vasculhe) vai ficar na pasta do seu ot, ai vá a onde você salvou o .rar do servidor e extraia novamente o arquivo .s3d e substitua no lugar do que esta no seu ot. Expliquei meio inútil me desculpe, se você não entendeu posta aew.1 pontoLíderes está configurado para São Paulo/GMT-03:00 - (Resolvido)Correção de script, adc mensagem + remove dinheiro
Informação Importante
Confirmação de Termo