Líderes
-
-
-
-
Natanael Beckman
MembroPontos574Total de itens
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 02/10/17 em todas áreas
-
DEV C++ Compilando TFS no Windows
DEV C++ Compilando TFS no Windows
Gabriel485 e um outro reagiu a Natanael Beckman por uma resposta no tópico
2 pontosDEV 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 \/2 pontos -
Dbo Rox V2 8.60 [Open Source][99% SEM BUGS]
Dbo Rox V2 8.60 [Open Source][99% SEM BUGS]
kowalczyk reagiu a WhiteBubble por uma resposta no tópico
1 pontoDragon Ball Rox Servidor 100% estável com mais de 200 horas online. 38 Vocações sendo 9 delas vip que são: Shenron,Vegetto,Zaiko,Kagome,Tapion,Kame Chilled,C8 e King Vegetta. Spells de fast attack (Usa uma vez sai 10 hits). Eventos automaticos como: Castle,Battlefield,Run event. Reborn level maximo 600. Vamos aos bugs que eu encontrei: * Zombie event quando o zombie pega algum player todos do evento e mandando pra fora e evento encerra. * Erro quando usa spell e a pessoa morre antes da spell acabar no caso das de combo. * Erro nos eventos Battlefield e Run event quando vai adicionar a recompensa da erro por faltar uma tabela na database que não me recordo o nome agora. Update v2 Adicionado 7 novas vocações vips sendo elas: Bills,Whiss,Golden Freeza,Vegetto Blue,Zamasu,Gogeta Blue e Goku Black Evo. Adicionado 3 vocações free sendo elas: Zeno, Vados e Vegetto Black. Vocações que antes era vip no update v1 agora são free. Fazer reborn não precisa mais fazer quest das esferas do dragão. Adicionado cassino que se ganha small diamonds que se troca por: Divine Stone(Usado para upgrade), Black Stone (Item para virar Vegetto Black) e Leviathan Amulet. Adicionado npc que vende Anti Loss Ring Protege 10% contra todos danos e funciona como a band of loss porem infinita. Ele fica no Yama. Adicionado sistema de pontuação por hora online, cada 1 hora online = 1 ponto que se pode trocar por itens no npc Points Trader no Yama. Adicionado sistema Anti-MC, podendo logar somente 2 contas por ip. Adicionado 3 bosses espalhados pelo mapa (Earth). Adicionado sistema de forja podendo criar o melhor set, armas free e o item para virar Zeno. Adicionado sistema de upgrade fazendo seu item ficar mais forte. Adicionado transformação ultra god para todas as vocações, sendo pega no templo de reset ao lado do esquerdo do templo. Necessário ter level 800 e possuir 100 God Essences que dropam do Ultra God Bills em God Island.Para entrar no templo de reset é necessário possuir 1 reset, para dar reset necessita ter level 800 e digitar o comando "!reset", você voltara para o level 100 com o hp/mp de um player level 100 mas ganhara acesso a área de reset que tem o npc de ultra god e a área de forja. Nova moeda acima de Gold sendo ela Blue God equivalente a 100 Gold Bars. Area de evento pvp e dice/bag adicionada no Yama. Area vip adicionada. Adicionado 2 sets novos free, 2 armas free, 2 shields free, senzu free (God Senzu), Senzu vip (Mystic Senzu), Vados staff free, Whiss staff vip. Vocações que antes era vip na v1 se pega na capsule ao lado direito do templo. Algumas modificações no mapa, hunts, quest. Por enquanto é só isso que estou lembrando,conforme eu lembro edito o tópico. Gostou ? Clique em Gostei logo abaixo. Para consertar o erro da loteria só executar essa query na sua database: CREATE TABLE `lottery` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `item` varchar(255) NOT NULL, `world_id` tinyint(2) unsigned NOT NULL default '0', `item_name` varchar(255) NOT NULL, `date` varchar(256) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1; Downloads Server (Distro para windows e linux já compilada) Scan Cliente Scan Sources Scan Site (Modern Acc) Scan Database Scan Creditos server: Kramer, WhiteBubble Creditos site: @Hastafaru e a WhiteBubble por adaptar ao server Creditos source: Fir3element e WhiteBubble por aumentar limite de efeitos e por skill fist skill para aumentar attack speed.1 ponto -
[8.54] PokeCyan [ Editado By Senhor] Atualizado 3.0 2016
Boa Noite , Boa Tarde ou Bom Dia TK's não sei a hora que vocês vão ver o Tópico Estava com meu Projeto do "Pokemon H" Fiz várias Ediçoes no Servidor Que Baixei aqui no Tibia King Mesmo e vim disponibilizá-los para vocês. Então bora ao que interessa né? • Menu: ├ Informações; ├ Edições; ├ Erros; ├ Prints; ├ Mapa ├ Download; ├ Atualização; ├ Utilitários; └ Créditos. • Informações Básicas • • Edições / Ajustes • • Erros do Servidor • • Prints• • MAPA • • Downloads • Cliente * MediaFire e Scan Servidor * MediaFire e Scan • Download Atualização 2.0 • Download: https://www.mediafire.com/?ik211gku2hdqz2t Scan : • Download Atualização 3.0 • 2016 OBS: NÃO TERÁ MAIS EDIÇÕES. • Utilitários • Remeres que usei pra editar: AQUI • Créditos • Brun Por Criar o Servidor Slicer Por Editar o Servidor Mulurka (pelas out) Stylo pelo tuto do ícone system noninhu por ajudar em alguns spells tem 2 caras tbm eu eskeci o nome deles agora que ajudaram 1 com as insignias na barra de skill e o outrio pelas scripts da liga pokemon dandanrvb pelas scripts do icone system erondino por algumas caves ih é só bjundão a all Vudi (Eu) Por editar o resto do servidor e trazer as novidades Tioj Pelas edições e Por fazer eu copiar a organização do tópico dele kk obg Kuuhaku pela cave dos geot . Held Itens By Gabriel Sales Gabriel Sales AnnaFeeh pelo script do ditto system pxg Obs: Se Está faltando algum crédito me avise pra mim colocar ( Não sei se está faltando algum) Obs: Qualquer Outra Duvida Estarei de Suporte no Tópico Obs: SENHA GOD/GOD OBS : Se Pegar o Servidor e Postar em Outro Fórum sem as minhas permissão vou pedir para o dono do forum ou site retirar o conteúdo . (Esse Conteúdo é exclusivo do TibiaKing obrigado) Se ajudei Já sabe né1 ponto
-
GesiorACC 2019 8.60 UPDATE 29/06/2019
GesiorACC 2019 8.60 UPDATE 29/06/2019
wiz444 reagiu a Natanael Beckman por uma resposta no tópico
1 pontoAtualização de 29/06/2019. Olá meus amigos, essa é a minha última contribuição free que faço na área de OTserver, fiz uma atualização bem completa do Gesior comparando com os que existem disponíveis, não vou falar muito pois grande parte já conhecem... Vou apenas posta algumas imagem das mudanças feitas. Sempre gostei de evoluir e de oferecer aos demais uma facilidade de obter um material grátis e de qualidade, nunca utilizei meu pouco conhecimento para prejudicar os demais, pelo o contrario sempre foi na intenção de ajudar e se em algum momento falhei, falhei inconscientemente. - Foi mudado algumas imagens de layout para renovar a estrutura. - Server Info + Most Power Ful Guilds na mesma estrura. - Create Account exigindo senhas com letras minusculas, maiúsculas e números, fortalecendo a segurança do seu cliente e dificultando futuras dores de cabeças. - Adicionado o mecanismo que identifica os valores de Premuim Points e Backup Points. - Algumas mudanças de layout. - Nome do player abaixo linkado. - Adicionado um Box de doação, com a intenção apenas de complementar o layout enriquecendo a pagina. - Fixado o bug edit town, e melhorado o layout. - Characters.php refeito, nesta imagem é uma visão de uma conta com access admin. - Visão normal. - Inventário completo. - Guilds com visão ampliada. - Detalhes... - Novo SHOP com as estrutura de layout melhorada e modernizada. - Sem BUGs lembre-se do CTRL + F5 para atualizar os cookies nesta pagina. - Detalhes... - Detalhes... - Detalhes... - Histórico do SHOP... DOWNLOAD SITE SHOP.LUA XAMPP 1.7.3 DATABASE LIMPA MYSQL DATABASE COMPLETA MYSQL TUTORIAIS ÚTEIS E COMPATÍVEIS PARA O SITE: PAGSEGURO AUTOMATICO SHOPGUILD BACKUP_POINTS SISTEMA VIP_TIME Créditos: Gesior.pl(WEBMaster) Felipe Monteiro(WEBMaster, WEBDesigner) Natanael Beckman(WEBNada) Nailan (WEBMaster) Ivens Pontes (WEBMaster) Marcio Porto (WEBMaster) Danyel Varejão (Programmer LUA, C++)1 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
-
Baiak ROX (New Version)
Baiak ROX (New Version)
MasterPokex reagiu a Dieguiin XP por uma resposta no tópico
1 pontoFala galera, hoje venho trazer uma nóva versão do Baiak ROX Editado por mim, vamos lá oque mudou nesse Baiak ROX? -Templo com novo visual (By Dieguiin XP) -Fast attack melhorado -Castle 24HRS Unico com aviso de invasores (By Dieguiin XP) -Dodge System -Critical System -Cast System 100 % -Items VIP a mostra no templo -Todos itens VIP arrumados, agóra tão dando Skills normalmente (By Dieguiin XP) -foi adicionado mais cave donates (By Dieguiin XP) -Push Fast. Para arrumar do seu módo vá em config.lua e procure por: pushCreatureDelay = 1 * 205 -Tempo do PZ arrumado. (By Dieguiin XP) -caves donate tudo trocada, agóra caves grandes com detalhes, não aquélas quadradas (By Dieguiin XP) -nóvos itens free, pode ser obtidos em quest (By Dieguiin XP) -Teleports com novo visual (By Dieguiin XP) -Vários Teleports -Paladin arrumado, agóra heala com potion e ataca ao mesmo tempo (By Dieguiin XP) -Utito tempo san arrumado, agóra não da exausted em outras magias (By Dieguiin XP) -Novas Hunts (By Dieguiin XP) -Look Frags -Task 100% -War System 100% (Testado) -Muitas quests (By Dieguiin XP) -Arena PVP (Nóva) -Quest de set free para Pally/Kinas (By Dieguiin XP) -Quest de set free para Mages (By Dieguiin XP) -quest para armas editadas (By Dieguiin XP) -Treiners com novos visual -VIP 1 Free -VIP 2: !vip2 -Area Donate Melhorada (By Dieguiin XP) -30% a mais de experiencia para players donates (By Dieguiin XP)) -10% a mais de experiencia para guild que domina o Castle 24HRS (By Dieguiin XP) -Potions Editadas com nóvos efeitos (By Dieguiin XP) E muito mais que eu não lembrei HEHE! Eventos: Capture The Flag City War Event BattleField Event Comandos principais: !dodoge (informações do DODGE, By Dieguiin XP) !critical (informações do CRITICAL, By Dieguiin XP) /cast /castinfo (informações do CAST, By Dieguiin XP) !stamina !aol !bless !notice. Vamos as imagens: templo Castle area donate Download: http://www.4shared.com/rar/ODCGLg5Cce/Baiak_ROX_By_Diego.html? Scan: Créditos:1 ponto -
[8.6] Staff Time
1 ponto#UPDATE# V 1.1 - BUG DE BUGAR STORAGE AO FECHAR O SERVE REMOVIDO É um sistema onde mostra o tempo que o jogador ficou online no server... E tem mais alguns comandos adicionais: /stafftime NOME DO JOGADOR DA STAFF faz com que mostre o tempo de determinado player da staff /allstafftime faz com que mostre o tempo de todos os membros da staff /stafftimecleall Reinicia o tempo de todos os membros da staff /stafftimeclear NOME DO JOGADOR DA STAFF Reinicia o tempo de determinado player da Staff Na pasta MODS: StaffTime.xml <?xml version="1.0" encoding="ISO-8859-1"?> <mod name="Staff Time System" version="1.1" author="vodkart" contact="none" enabled="yes"> <config name="stafftime_lib"><![CDATA[ _Staff_Config_ = { storages = {448507,448508,448509}, min_group_id = 1 -- aqui vai contar a partir do 2, 3, 4 ... } function timeString(timeDiff) local dateFormat = { {"day", timeDiff / 60 / 60 / 24}, {"hour", timeDiff / 60 / 60 % 24}, {"minute", timeDiff / 60 % 60}, {"second", timeDiff % 60} } local out = {} for k, t in ipairs(dateFormat) do local v = math.floor(t[2]) if(v > 0) then table.insert(out, (k < #dateFormat and (#out > 0 and ', ' or '') or ' and ') .. v .. ' ' .. t[1] .. (v ~= 1 and 's' or '')) end end local ret = table.concat(out) if ret:len() < 16 and ret:find("second") then local a, b = ret:find(" and ") ret = ret:sub(b+1) end return ret end function getStaffTime(name) local target_online = getPlayerByNameWildcard(name) if not isPlayer(target_online) then local info = db.getResult("SELECT `value` FROM `player_storage` WHERE `player_id` = ".. getPlayerGUIDByName(name) .." AND `key` = ".. _Staff_Config_.storages[1]) if info:getID() ~= -1 then var_time = timeString((-(info:getDataInt("value")))) else var_time = 0 end else if getPlayerStorageValue(target_online, _Staff_Config_.storages[2]) <= 0 then var_time = 0 else var_time = timeString((os.time() - getPlayerStorageValue(target_online, _Staff_Config_.storages[1]))) end end return var_time end function getAllStaffTime() local query, str = db.getResult("SELECT `name`, `group_id` FROM `players` WHERE `group_id` > ".._Staff_Config_.min_group_id), "--> STAFF TIME <--\n\n[Group]Nick - Tempo Online\n" if (query:getID() ~= -1) then repeat local _ = query:getDataString("name") str = str .. "\n ["..getGroupInfo(query:getDataInt("group_id")).name.."]".._.." - "..getStaffTime(_) until not(query:next()) query:free() end return str end function doSaveStaffTime(cid) if getPlayerStorageValue(cid, _Staff_Config_.storages[2]) >= 1 then setPlayerStorageValue(cid, _Staff_Config_.storages[1], getPlayerStorageValue(cid, _Staff_Config_.storages[1]) - os.time()) setPlayerStorageValue(cid, _Staff_Config_.storages[3], getPlayerStorageValue(cid, _Staff_Config_.storages[1])) setPlayerStorageValue(cid, _Staff_Config_.storages[1], getPlayerStorageValue(cid, _Staff_Config_.storages[1]) + os.time()) end end function deleteAllStaffTimes() db.executeQuery("DELETE FROM `player_storage` WHERE `key` = ".._Staff_Config_.storages[1]) db.executeQuery("DELETE FROM `player_storage` WHERE `key` = ".._Staff_Config_.storages[2]) db.executeQuery("DELETE FROM `player_storage` WHERE `key` = ".._Staff_Config_.storages[3]) for _, player in ipairs(getPlayersOnline()) do if getPlayerGroupId(player) > _Staff_Config_.min_group_id then setPlayerStorageValue(player, _Staff_Config_.storages[1], os.time()) setPlayerStorageValue(player, _Staff_Config_.storages[2], 1) setPlayerStorageValue(player, _Staff_Config_.storages[3], 0) end end end function deletePlayerStaffTimes(name) local target_online = getPlayerByNameWildcard(name) if not isPlayer(target_online) then db.executeQuery("DELETE FROM `player_storage` WHERE `player_id` = ".. getPlayerGUIDByName(name) .." AND `key` = ".. _Staff_Config_.storages[1]) db.executeQuery("DELETE FROM `player_storage` WHERE `player_id` = ".. getPlayerGUIDByName(name) .." AND `key` = ".. _Staff_Config_.storages[2]) db.executeQuery("DELETE FROM `player_storage` WHERE `player_id` = ".. getPlayerGUIDByName(name) .." AND `key` = ".. _Staff_Config_.storages[3]) else setPlayerStorageValue(target_online, _Staff_Config_.storages[1], os.time()) setPlayerStorageValue(target_online, _Staff_Config_.storages[2], 1) setPlayerStorageValue(target_online, _Staff_Config_.storages[3], 0) end end ]]></config> <globalevent name="Salve-StaffTime" interval="30" event="script"><![CDATA[ domodlib('stafftime_lib') function onThink(interval, lastExecution, thinkInterval) if #getPlayersOnline() > 0 then for _, cid in ipairs(getPlayersOnline()) do if getPlayerGroupId(cid) > _Staff_Config_.min_group_id then doSaveStaffTime(cid) end end end return true end]]></globalevent> <globalevent name="StaffDebug-Start" type="start" event="buffer"><![CDATA[ domodlib('stafftime_lib') local q = db.getResult("SELECT `id` FROM `players` WHERE `group_id` > ".._Staff_Config_.min_group_id) if (q:getID() ~= -1) then repeat local p = q:getDataInt("id") u = db.getResult("SELECT `value` FROM `player_storage` WHERE `player_id` = "..p.." AND `key` = ".._Staff_Config_.storages[3]) if u:getID() ~= -1 then db.executeQuery("UPDATE `player_storage` SET `value` = "..(u:getDataInt("value")).." WHERE `player_id` = "..p.." AND `key` = ".. _Staff_Config_.storages[1]) end until not(q:next()) q:free() end return true]]></globalevent> <talkaction words="/stafftime;/allstafftime;/stafftimecleall;/stafftimeclear" event="buffer"><![CDATA[ domodlib('stafftime_lib') if (words == "/stafftime") then local t = string.explode(param:lower(), ",") if (param == "") then doPlayerSendCancel(cid, "use um comando valido") return true elseif not getPlayerGUIDByName(t[1]) then doPlayerSendCancel(cid, "Desculpe, mas o jogador [" .. t[1] .. "] não existe.") return true elseif db.getResult("SELECT `group_id` FROM `players` WHERE `id` = "..getPlayerGUIDByName(t[1])):getDataInt("group_id") <= _Staff_Config_.min_group_id then doPlayerSendCancel(cid,"este jogador não é um membro da staff.") return true end return doPlayerPopupFYI(cid, "Tempo Total Online:\n\n"..t[1].." - "..getStaffTime(t[1])..".") elseif (words == "/allstafftime") then if getPlayerAccess(cid) < 5 then doPlayerSendCancel(cid, "você não tem permissão para usar este comando") return true end return doPlayerPopupFYI(cid, getAllStaffTime()) elseif (words == "/stafftimecleall") then if getPlayerAccess(cid) < 5 then doPlayerSendCancel(cid, "você não tem permissão para usar este comando") return true end deleteAllStaffTimes() return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você limpou a Staff Time de toda a equipe do servidor.") elseif (words == "/stafftimeclear") then local t = string.explode(param:lower(), ",") if getPlayerAccess(cid) < 5 then doPlayerSendCancel(cid, "você não tem permissão para usar este comando") return true elseif (param == "") then doPlayerSendCancel(cid, "use um comando valido") return true elseif not getPlayerGUIDByName(t[1]) then doPlayerSendCancel(cid, "Desculpe, mas o jogador [" .. t[1] .. "] não existe.") return true elseif db.getResult("SELECT `group_id` FROM `players` WHERE `id` = "..getPlayerGUIDByName(t[1])):getDataInt("group_id") <= _Staff_Config_.min_group_id then doPlayerSendCancel(cid,"este jogador não é um membro da staff.") return true end deletePlayerStaffTimes(t[1]) return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você limpou a Staff Time do jogador "..t[1]) end ]]></talkaction> <event type="login" name="StaffTimeLogin" event="script"><![CDATA[ domodlib('stafftime_lib') function onLogin(cid) if getPlayerGroupId(cid) > _Staff_Config_.min_group_id then if getPlayerStorageValue(cid, _Staff_Config_.storages[2]) <= 0 then setPlayerStorageValue(cid, _Staff_Config_.storages[1], os.time()) setPlayerStorageValue(cid, _Staff_Config_.storages[2], 1) else setPlayerStorageValue(cid, _Staff_Config_.storages[1], getPlayerStorageValue(cid, _Staff_Config_.storages[1]) + os.time()) end end return true end]]></event> <event type="logout" name="StaffTimeLogout" event="script"><![CDATA[ domodlib('stafftime_lib') function onLogout(cid) if getPlayerGroupId(cid) > _Staff_Config_.min_group_id then setPlayerStorageValue(cid, _Staff_Config_.storages[1], getPlayerStorageValue(cid, _Staff_Config_.storages[1]) - os.time()) setPlayerStorageValue(cid, _Staff_Config_.storages[3], getPlayerStorageValue(cid, _Staff_Config_.storages[1])) end return true end]]></event> </mod>1 ponto
-
Servidor PokeXPower V3 By Draw (ATUALIZADO Com A V3, 21/05/2016)
Servidor PokeXPower V3 By Draw (ATUALIZADO Com A V3, 21/05/2016)
Arl King reagiu a Mauro Sérgio por uma resposta no tópico
1 pontoBom Pessoal Esse é Meu Primeiro Post Aqui Então Se Não Estiver Na Areá Certa Por Favor Mova-o, Sem Mais Delongas Vamos Falar Do Servidor. Informações Básicas: O Servidor Contém 4 Gerações De Pokemons Completa, E Vários Shinys, Também Contem Mega Pokemons (Mais De 30), O Mapa é Parecido Com O Do OTPokemon, Varias Quests Interessantes Feitas. Os Servidor Tem Alguns Sistemas Tais Quais: Clãn System (No Total De 8, E Cada Um Da Outfit E Outras Coisas) Police Ou Rocket System, Permitindo O Player Escolhe Um Lado Da Força Kk (Ganha Tambem Uma Outfit Exclusiva) O Servidor Contém Tambem Boost Stone System (Boost Até +60) E Claro Não Podemos Deixa De Citar A Bike System Com Almento De Velocidade Configuravel. No Mapa Também Tem PVP E Trade Center (Para O PVP Funcionar Quando Ligar Serve Click Em World Type > PVP-Enforced. Falando Um Pouco Do Client... Bom Ele é Bem Comum é Um OTC Com Todas Função Funcionando. Erros: Alguns Faceis De Tirar Na Parte Dos Pokemon Sem Potrait Alguns Pokemon (Não Acho Que Seja Erro Pois Da Pra Por Facil) Prints: ATUALIZAÇÃO V3 Link Do Download Do Client E Servidor V1. http://www.4shared.com/rar/1tIOhOdOba/Base_PxP_Servidor_E_Client_V1.html Link De Download Do Client E Servidor V2. http://www.4shared.com/rar/ZMe4QFWDce/Pokemon_X_Power.html Link De Download Do Client E Servidor V3 http://www.mediafire.com/download/kx6kobli6va034s/Pokemon+X+Power.rar Scan: https://www.virustotal.com/pt/file/b830f6800401d37e8ac7d2b0ae809c5a79a472f2373ec5ac5d561ccc354dab11/analysis/1452782049/ Creditos A Mim Que Fiz Tudo, Mais Informações No Site: http://maurosg8.wix.com/dwpoketibia1 ponto -
10.99 Outfits / Items images
10.99 Outfits / Items images
Bruxo Ots reagiu a Bruno Minervino por uma resposta no tópico
1 pontoItems: https://static.tibia.solutions/items/ Exemplos: Outfits: https://static.tibia.solutions/outfits/index.php?id=128&addons=3&head=123&body=15&legs=41&feet=12&mount=0&direction=3&animation=0 Para utilizar a animação, basta trocar &animation=0 para &animation=1 Exemplos:1 ponto -
TEMPLATE WODBO WARS -
TEMPLATE WODBO WARS -
ItaloRamon1 reagiu a Celulose por uma resposta no tópico
1 pontoTemplate Atualizado 09/05/16 Scan Download No Momento Ando Meio ocupado com otserv , assim que fica desocupado vou posta o servidor e site . Abraços'1 ponto -
[8.6] Task System 4.0! (Task system + Daily Task System)
@Luzetti já dei essa ideia a ele a muito tempo, e outras também, e reformulação que a galera pediu. Task normal = pode repeti, fazer qual você quiser, se abandonar, ele reseta, e etc.. Task Daily = pode repeti, tem opção para que precise de pontos task para fazer(opicional, marca para ativar, se não quiser não ativa). Task Time = Será liberado por hora, ex: das 1 da tarde até as 3 da tarde, será liberada, pode repetir, se termina, a task e o tempo acabar, pode entregar do mesmo jeito. O time quando abre e fecha é você que escolhe para cada task. Precisa de task points para fazer, quantidade fica ao seu critério, se não quiser basta não botar quantidade. E o Task Especial = Será liberado por dia, tipo: Segunda, quarta e sexta é liberado, se acabar o dia, e você tiver terminado a task mesmo assim, será possível entregar. Pode repetir caso termine, os dias será configurado a gosto de vocês. Precisará de pontos task para fazer, quantidade fica a seu critério. Talvez, não confirmado, a gente irá compilar a task especial com a task time, ou seja, ex: sexta sabado e domingo, das 2 da tarde, a 4 da tarde, das 8 da noite as 10 da noite, será liberado a task. Pode repetir e etc.., data e hora configurado. Precisará de pontos task para fazer. E as ideias que o pessoal pediu que já está na task, o que pediram para remover, ou mudar e etc... isso ae são só as infos básicas do que vai conter, elas estão com muito mais. Já está quase pronto, daqui a alguns dias estará ae a versão 5.0, e também passaremos para distros 1.x, então qualquer modificação que aconteça no 0.4, acontecerá no 1.x também! xD1 ponto
-
Client
Client
robson da silva reagiu a Jaurez por uma resposta no tópico
1 pontodeu certo? Que bom meu amigo, qqr coisa é só pedir ATT, Jaurez1 ponto -
Client
Client
robson da silva reagiu a Jaurez por uma resposta no tópico
1 pontoVê se esse conecta @robson da silva http://www.mediafire.com/file/jggioewzgipr7d0/Tibia+10.99+robson.rar1 ponto -
Client
Client
robson da silva reagiu a Jaurez por uma resposta no tópico
1 pontoComo está no seu config.lua na parte das versões? clientVersionMin = 1098 clientVersionMax = 1099 clientVersionStr = "Only clients with protocol 10.98/99 or allowed!"1 ponto -
[BUG]Tentei arrumar dex e deu erro
@Loouis Boa tarde amigo, Estranho pois o meu erro era idêntico ao seu Faz o seguinte pega o seu pokedex do actions original e adiciona antes da linha local rate = Fico no aguardo.1 ponto
-
Client
Client
robson da silva reagiu a Jaurez por uma resposta no tópico
1 pontoVou compactar a pasta completa e upar no mediafire e te passo o link em seguida, só vou arrumar a chave RSA que eu esqueci e já faço isso.1 ponto -
erro na distro
1 ponto
-
erro na distro
1 pontoNão sei pra que essa função serve, deve ser pra o client. remove essas 3 linhas e tenta: if(getPlayerOperatingSystem(cid) >= CLIENTOS_OTCLIENT_LINUX) then registerCreatureEvent(cid, "ExtendedOpcode") end1 ponto
-
ERRO: Unable to load comfig lua
ERRO: Unable to load comfig lua
TbT Lukinhas reagiu a Noob II por uma resposta no tópico
1 pontoQual a base? o config.lua tá configurado pra abrir com site, se quiser usar em sqlite (sem site) só usar esse ai: verifique se na pasta do servidor tem um arquivo chamado forgottenserver com o formato .s3db1 ponto -
Mudar IP do OTClient
1 pontoTem suporte até a 10.96 > http://www.tibiaking.com/forum/forums/topic/73987-otclient-063-74-à-1096/1 ponto
-
[8.6] Task System 4.0! (Task system + Daily Task System)
vai conseguir sim! tbm só olhar no outfits,xml e colocar premium 0 acho, mas vai da certo sim os addons '-'1 ponto
-
[8.6] Task System 4.0! (Task system + Daily Task System)
acho legal dar os 10 dias de premium para os jogadores que finalizarem toda as tasks originais!! e a outfit vc escolhe em qual task vc deseja dar elas, vou fazer uma variável assim: outfits = {137,136} -- male and female outfits ai ele vai dar no final qndo entregar a task!! vou fazer essa alterações assim que sair do escritório e te mando via PM. abraços!1 ponto
-
ERRO CASTLE 24 HORAS
1 pontovocê usou !autoloot add param(item) o certo é !autoloot ITEM NAME ex: !autoloot talon !autoloot mastermind shield !autoloot royal helmet esse comando tanto adiciona como remove. e para pegar gold vc usa: !autoloot money -- ativa a coleta de gold(crystal coin, gold coin e platinum coin) se mesmo assim não der, você testa desse jeito: <?xml version="1.0" encoding="ISO-8859-1"?> <mod name="Loot System" version="1.0" author="Vodkart And Mkalo" contact="none.com" enabled="yes"> <config name="Loot_func"><![CDATA[ info = { AutomaticDeposit = true, BlockMonsters = {"crystal protect","castle protect"}, BlockItemsList = {2123,2515}, Max_Slots = {free = 2, premium = 5}, Storages = {27000,28001,28002} } function setPlayerStorageTable(cid, storage, tab) local tabstr = "&" for i,x in pairs(tab) do tabstr = tabstr .. i .. "," .. x .. ";" end setPlayerStorageValue(cid, storage, tabstr:sub(1, #tabstr-1)) end function getPlayerStorageTable(cid, storage) local tabstr = getPlayerStorageValue(cid, storage) local tab = {} if type(tabstr) ~= "string" then return {} end if tabstr:sub(1,1) ~= "&" then return {} end local tabstr = tabstr:sub(2, #tabstr) local a = string.explode(tabstr, ";") for i,x in pairs(a) do local b = string.explode(x, ",") tab[tonumber(b[1]) or b[1]] = tonumber(b[2]) or b[2] end return tab end function isInTable(cid, item) for _,i in pairs(getPlayerStorageTable(cid, info.Storages[1]))do if tonumber(i) == tonumber(item) then return true end end return false end function addItemTable(cid, item) local x = {} for i = 1,#getPlayerStorageTable(cid, info.Storages[1]) do table.insert(x,getPlayerStorageTable(cid, info.Storages[1])[i]) end if x ~= 0 then table.insert(x,tonumber(item)) setPlayerStorageTable(cid, info.Storages[1], x) else setPlayerStorageTable(cid, info.Storages[1], {item}) end end function removeItemTable(cid, item) local x = {} for i = 1,#getPlayerStorageTable(cid, info.Storages[1]) do table.insert(x,getPlayerStorageTable(cid, info.Storages[1])[i]) end for i,v in ipairs(x) do if tonumber(v) == tonumber(item) then table.remove(x,i) end end return setPlayerStorageTable(cid, info.Storages[1], x) end function ShowItemsTabble(cid) local n,str = 0,"[+] Auto Loot Commands [+]\n\n!autoloot item name --> To add ou Remove item from list.\n!autoloot money --> To collect gold automatically.\n!autoloot clear --> To clear the list.\n!autoloot on/off --> To enable or disable the collecting of items in the system.\n\n[+] Auto Loot Info [+]\n\nSystem: "..(getPlayerStorageValue(cid, info.Storages[3]) <= 0 and "Activated" or "Disabled")..".\nGold Collecting: "..(getPlayerStorageValue(cid, info.Storages[2]) > 0 and "Activated" or "Disabled")..".\nBalance Total: ["..getPlayerBalance(cid).."] gp's.\nMaximum Slots: ["..#getPlayerStorageTable(cid, info.Storages[1]).."/"..(isPremium(cid) and info.Max_Slots.premium or info.Max_Slots.free).."]\n\n[+] Auto Loot Slots [+]\n\n" for i = 1,#getPlayerStorageTable(cid, info.Storages[1]) do n = n + 1 str = str.."Slot "..n.." - "..getItemNameById(getPlayerStorageTable(cid, info.Storages[1])[i]).."\n" end return doPlayerPopupFYI(cid, str) end function getContainerItems(containeruid) local items = {} local containers = {} if type(getContainerSize(containeruid)) ~= "number" then return false end for slot = 0, getContainerSize(containeruid)-1 do local item = getContainerItem(containeruid, slot) if item.itemid == 0 then break end if isContainer(item.uid) then table.insert(containers, item.uid) end table.insert(items, item) end if #containers > 0 then for i,x in ipairs(getContainerItems(containers[1])) do table.insert(items, x) end table.remove(containers, 1) end return items 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, amount) -- revisado local item, _G = getItemsInContainerById(getPlayerSlotItem(cid, 3).uid, itemid), 0 if #item > 0 then for _ ,x in pairs(item) do local ret = getThing(x) if ret.type < 100 then doTransformItem(ret.uid, itemid, ret.type+amount) if ret.type+amount > 100 then doPlayerAddItem(cid, itemid, ret.type+amount-100) end break else _G = _G+1 end end if _G == #item then doPlayerAddItem(cid, itemid, amount) end else return doPlayerAddItem(cid, itemid, amount) end end function AutomaticDeposit(cid,item,n) local deposit = item == tonumber(2160) and (n*10000) or tonumber(item) == 2152 and (n*100) or (n*1) return doPlayerDepositMoney(cid, deposit) end function corpseRetireItems(cid, pos) local check = false for i = 0, 255 do pos.stackpos = i tile = getTileThingByPos(pos) if tile.uid > 0 and isCorpse(tile.uid) then check = true break end end if check == true then local items = getContainerItems(tile.uid) for i,x in pairs(items) do if isInArray(getPlayerStorageTable(cid, info.Storages[1]), tonumber(x.itemid)) or getPlayerStorageValue(cid, info.Storages[2]) > 0 and isInArray({2148,2152,2160},tonumber(x.itemid)) then if isItemStackable(x.itemid) then doPlayerAddItemStacking(cid, x.itemid, x.type) if info.AutomaticDeposit == true and isInArray({2148,2152,2160}, tonumber(x.itemid)) then AutomaticDeposit(cid,x.itemid,x.type) end else doPlayerAddItem(cid, x.itemid) end doRemoveItem(x.uid) end end end end function ExistItemByName(name) -- by vodka local items = io.open("data/items/items.xml", "r"):read("*all") local get = items:match('name="' .. name ..'"') if get == nil or get == "" then return false end return true end ]]></config> <event type="login" name="LootLogin" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid, "LootEventKIll") if isPremium(cid) and getPlayerStorageValue(cid, 27001) <= 0 then setPlayerStorageValue(cid, 27001, 1) elseif getPlayerStorageValue(cid, 27001) > 0 and not isPremium(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[Auto Loot] You premium is Over, Start a new list!") setPlayerStorageValue(cid, 27001, -1) setPlayerStorageValue(cid, info.Storages[1], -1) end return true end]]></event> <event type="kill" name="LootEventKIll" event="script"><![CDATA[ domodlib('Loot_func') function onKill(cid, target, lastHit) if isPlayer(cid) and getPlayerStorageValue(cid, info.Storages[3]) <= 0 and isMonster(target) and not isInArray(info.BlockMonsters, getCreatureName(target):lower()) then addEvent(corpseRetireItems, 0, cid ,getThingPos(target)) end return true end]]></event> <talkaction words="!autoloot;/autoloot" event="buffer"><![CDATA[ domodlib('Loot_func') local param, slots = param:lower(), isPremium(cid) and info.Max_Slots.premium or info.Max_Slots.free if not param or param == "" then ShowItemsTabble(cid) return true elseif tonumber(param) then doPlayerSendCancel(cid, "enter commands: !autoloot item name [+] !autoloot clean [+] !autoloot money [+] !autoloot on/off") return true elseif isInArray({"clean","limpar", "clear"}, param) then setPlayerStorageValue(cid, info.Storages[1], -1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] Your list has been cleaned.") return true elseif isInArray({"start","stop","on","off"}, param) then setPlayerStorageValue(cid, info.Storages[3], getPlayerStorageValue(cid, info.Storages[3]) <= 0 and 1 or 0) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] "..(getPlayerStorageValue(cid, info.Storages[3]) > 0 and "Stopped" or "Started")..".") return true elseif isInArray({"money","gold","gps","dinheiro"}, param) then setPlayerStorageValue(cid, info.Storages[2], getPlayerStorageValue(cid, info.Storages[2]) <= 0 and 1 or 0) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] Gold Colleting "..(getPlayerStorageValue(cid, info.Storages[2]) > 0 and "Activated" or "disabled")..".") return true end local item = ExistItemByName(tostring(param)) if not item then doPlayerSendCancel(cid, "This item does not exist.") return true end local item = getItemIdByName(tostring(param)) local var = isInTable(cid, item) if isInArray({2148,2152,2160},item) then doPlayerSendCancel(cid, "Enter !autoloot money to add money in your list!") return true elseif isInArray(info.BlockItemsList, item) then doPlayerSendCancel(cid, "You can not add this item in the list!") return true elseif not var and #getPlayerStorageTable(cid, info.Storages[1]) >= slots then doPlayerSendCancel(cid, "max "..slots.." from auto loot") return true end if not var then addItemTable(cid, item) else removeItemTable(cid, item) end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,not var and "you added the item "..param.." in the list" or "you removed the item "..param.." from the list") return true]]></talkaction> </mod> é que qndo destroi as torres acontece alguma coisa que o autoloot não identifica o corpse e não retira nada... Tem que bloquear os monstros na lista.1 ponto
-
(Resolvido)[REBORN] Npc cobrando item
Amigo recomendo pegar a reborn.lua da base do kojack não tem bugs pelo que eu vejo1 ponto
-
[BUG]Tentei arrumar dex e deu erro
@Loouis Olá brother, pesquisei um pouco e consegui a solução, pelo menos no meu kk Se vc seguiu fielmente o tutorial... [PDA] Arrumando a Dex! troque seu pokedex do actions por esse: Testa ai e posta o resultado1 ponto
-
[MOD] Pokedex Window para base PDA
Ih cara, não tem data marcada... Voltei agora a desenvolver no mod, faço isso só nos meus tempos livres... Em breve sairá a versão 2.0! rs Corrigido. Obrigado!1 ponto
-
[8.6] Task System 4.0! (Task system + Daily Task System)
posso fazer essa alteração para você amigo, sem problemas, mais alguma outra que deseja adicionar?1 ponto
-
ERRO CASTLE 24 HORAS
1 pontotem certeza? só esses dois? então qualquer coisa adc os monstro la na config.. o MODS do auto loot use assim: <?xml version="1.0" encoding="ISO-8859-1"?> <mod name="Loot System" version="1.0" author="Vodkart And Mkalo" contact="none.com" enabled="yes"> <config name="Loot_func"><![CDATA[ info = { AutomaticDeposit = true, BlockMonsters = {"crystal protect","castle protect"}, BlockItemsList = {2123,2515}, Max_Slots = {free = 2, premium = 5}, Storages = {27000,28001,28002} } function setPlayerStorageTable(cid, storage, tab) local tabstr = "&" for i,x in pairs(tab) do tabstr = tabstr .. i .. "," .. x .. ";" end setPlayerStorageValue(cid, storage, tabstr:sub(1, #tabstr-1)) end function getPlayerStorageTable(cid, storage) local tabstr = getPlayerStorageValue(cid, storage) local tab = {} if type(tabstr) ~= "string" then return {} end if tabstr:sub(1,1) ~= "&" then return {} end local tabstr = tabstr:sub(2, #tabstr) local a = string.explode(tabstr, ";") for i,x in pairs(a) do local b = string.explode(x, ",") tab[tonumber(b[1]) or b[1]] = tonumber(b[2]) or b[2] end return tab end function isInTable(cid, item) for _,i in pairs(getPlayerStorageTable(cid, info.Storages[1]))do if tonumber(i) == tonumber(item) then return true end end return false end function addItemTable(cid, item) local x = {} for i = 1,#getPlayerStorageTable(cid, info.Storages[1]) do table.insert(x,getPlayerStorageTable(cid, info.Storages[1])[i]) end if x ~= 0 then table.insert(x,tonumber(item)) setPlayerStorageTable(cid, info.Storages[1], x) else setPlayerStorageTable(cid, info.Storages[1], {item}) end end function removeItemTable(cid, item) local x = {} for i = 1,#getPlayerStorageTable(cid, info.Storages[1]) do table.insert(x,getPlayerStorageTable(cid, info.Storages[1])[i]) end for i,v in ipairs(x) do if tonumber(v) == tonumber(item) then table.remove(x,i) end end return setPlayerStorageTable(cid, info.Storages[1], x) end function ShowItemsTabble(cid) local n,str = 0,"[+] Auto Loot Commands [+]\n\n!autoloot item name --> To add ou Remove item from list.\n!autoloot money --> To collect gold automatically.\n!autoloot clear --> To clear the list.\n!autoloot on/off --> To enable or disable the collecting of items in the system.\n\n[+] Auto Loot Info [+]\n\nSystem: "..(getPlayerStorageValue(cid, info.Storages[3]) <= 0 and "Activated" or "Disabled")..".\nGold Collecting: "..(getPlayerStorageValue(cid, info.Storages[2]) > 0 and "Activated" or "Disabled")..".\nBalance Total: ["..getPlayerBalance(cid).."] gp's.\nMaximum Slots: ["..#getPlayerStorageTable(cid, info.Storages[1]).."/"..(isPremium(cid) and info.Max_Slots.premium or info.Max_Slots.free).."]\n\n[+] Auto Loot Slots [+]\n\n" for i = 1,#getPlayerStorageTable(cid, info.Storages[1]) do n = n + 1 str = str.."Slot "..n.." - "..getItemNameById(getPlayerStorageTable(cid, info.Storages[1])[i]).."\n" end return doPlayerPopupFYI(cid, str) end function getContainerItems(containeruid) local items = {} local containers = {} if type(getContainerSize(containeruid)) ~= "number" then return false end for slot = 0, getContainerSize(containeruid)-1 do local item = getContainerItem(containeruid, slot) if item.itemid == 0 then break end if isContainer(item.uid) then table.insert(containers, item.uid) end table.insert(items, item) end if #containers > 0 then for i,x in ipairs(getContainerItems(containers[1])) do table.insert(items, x) end table.remove(containers, 1) end return items 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, amount) -- revisado local item, _G = getItemsInContainerById(getPlayerSlotItem(cid, 3).uid, itemid), 0 if #item > 0 then for _ ,x in pairs(item) do local ret = getThing(x) if ret.type < 100 then doTransformItem(ret.uid, itemid, ret.type+amount) if ret.type+amount > 100 then doPlayerAddItem(cid, itemid, ret.type+amount-100) end break else _G = _G+1 end end if _G == #item then doPlayerAddItem(cid, itemid, amount) end else return doPlayerAddItem(cid, itemid, amount) end end function AutomaticDeposit(cid,item,n) local deposit = item == tonumber(2160) and (n*10000) or tonumber(item) == 2152 and (n*100) or (n*1) return doPlayerDepositMoney(cid, deposit) end function corpseRetireItems(cid, pos) local check = false for i = 0, 255 do pos.stackpos = i tile = getTileThingByPos(pos) if tile.uid > 0 and isCorpse(tile.uid) then check = true break end end if check == true then local items = getContainerItems(tile.uid) for i,x in pairs(items) do if isInArray(getPlayerStorageTable(cid, info.Storages[1]), tonumber(x.itemid)) or getPlayerStorageValue(cid, info.Storages[2]) > 0 and isInArray({2148,2152,2160},tonumber(x.itemid)) then if isItemStackable(x.itemid) then doPlayerAddItemStacking(cid, x.itemid, x.type) if info.AutomaticDeposit == true and isInArray({2148,2152,2160}, tonumber(x.itemid)) then AutomaticDeposit(cid,x.itemid,x.type) end else doPlayerAddItem(cid, x.itemid) end doRemoveItem(x.uid) end end end end ]]></config> <event type="login" name="LootLogin" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid, "LootEventKIll") if isPremium(cid) and getPlayerStorageValue(cid, 27001) <= 0 then setPlayerStorageValue(cid, 27001, 1) elseif getPlayerStorageValue(cid, 27001) > 0 and not isPremium(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[Auto Loot] You premium is Over, Start a new list!") setPlayerStorageValue(cid, 27001, -1) setPlayerStorageValue(cid, info.Storages[1], -1) end return true end]]></event> <event type="kill" name="LootEventKIll" event="script"><![CDATA[ domodlib('Loot_func') function onKill(cid, target, lastHit) if isPlayer(cid) and getPlayerStorageValue(cid, info.Storages[3]) <= 0 and isMonster(target) and not isInArray(info.BlockMonsters, getCreatureName(target):lower()) then addEvent(corpseRetireItems, 0, cid ,getThingPos(target)) end return true end]]></event> <talkaction words="!autoloot;/autoloot" event="buffer"><![CDATA[ domodlib('Loot_func') local param, slots = param:lower(), isPremium(cid) and info.Max_Slots.premium or info.Max_Slots.free if not param or param == "" then ShowItemsTabble(cid) return true elseif tonumber(param) then doPlayerSendCancel(cid, "enter commands: !autoloot item name [+] !autoloot clean [+] !autoloot money [+] !autoloot on/off") return true elseif isInArray({"clean","limpar", "clear"}, param) then setPlayerStorageValue(cid, info.Storages[1], -1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] Your list has been cleaned.") return true elseif isInArray({"start","stop","on","off"}, param) then setPlayerStorageValue(cid, info.Storages[3], getPlayerStorageValue(cid, info.Storages[3]) <= 0 and 1 or 0) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] "..(getPlayerStorageValue(cid, info.Storages[3]) > 0 and "Stopped" or "Started")..".") return true elseif isInArray({"money","gold","gps","dinheiro"}, param) then setPlayerStorageValue(cid, info.Storages[2], getPlayerStorageValue(cid, info.Storages[2]) <= 0 and 1 or 0) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] Gold Colleting "..(getPlayerStorageValue(cid, info.Storages[2]) > 0 and "Activated" or "disabled")..".") return true end local item = getItemIdByName(param, false) if not item then doPlayerSendCancel(cid, "This item does not exist.") return true end local var = isInTable(cid, item) if isInArray({2148,2152,2160},item) then doPlayerSendCancel(cid, "Enter !autoloot money to add money in your list!") return true elseif isInArray(info.BlockItemsList, item) then doPlayerSendCancel(cid, "You can not add this item in the list!") return true elseif not var and #getPlayerStorageTable(cid, info.Storages[1]) >= slots then doPlayerSendCancel(cid, "max "..slots.." from auto loot") return true end if not var then addItemTable(cid, item) else removeItemTable(cid, item) end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,not var and "you added the item "..param.." in the list" or "you removed the item "..param.." from the list") return true]]></talkaction> </mod>1 ponto
-
Uma Arma, Mais Ataque diferente pra cada vocation.
Uma Arma, Mais Ataque diferente pra cada vocation.
tetheuscunha reagiu a DukeeH por uma resposta no tópico
1 pontoweapons/weapons.xml <melee id="XXXX" level="100" unproperly="1" event="script" value="arma.lua"/> weapons/scripts/arma.lua function onUseWeapon(cid, var) local position = getCreaturePosition(cid) local target = variantToNumber(var) local playerTarget = getCreatureTarget(cid) local level = getPlayerLevel(cid) local magic = getPlayerMagLevel(cid) if(target ~= 0) then if (getPlayerVocation(cid) == 1 and getDistanceBetween(getCreaturePosition(cid), getCreaturePosition(playerTarget) <= 2)) then local dmgMin = (300 + (magic * 1.5)) local dmgMax = (350 + (level * 1.8)) ret = doTargetCombatHealth(cid, playerTarget, COMBAT_PHYSICALDAMAGE, -dmgMin, -dmgMax, CONST_ME_TELEPORT) and doSendDistanceShoot(position, getCreaturePosition(playerTarget), CONST_ANI_ENERGYBALL) end if (getPlayerVocation(cid) == 2 and getDistanceBetween(getCreaturePosition(cid), getCreaturePosition(playerTarget) <= 2)) then local dmgMin = (300 + (magic * 1.5)) local dmgMax = (350 + (level * 1.8)) ret = doTargetCombatHealth(cid, playerTarget, COMBAT_PHYSICALDAMAGE, -dmgMin, -dmgMax, CONST_ME_SMALLPLANTS) and doSendDistanceShoot(position, getCreaturePosition(playerTarget), CONST_ANI_POISON) end if (getPlayerVocation(cid) == 3 and getDistanceBetween(getCreaturePosition(cid), getCreaturePosition(playerTarget) <= 5)) then local dmgMin = (260 + (level * 2.1)) local dmgMax = (360 + (level * 2.3)) ret = doTargetCombatHealth(cid, playerTarget, COMBAT_PHYSICALDAMAGE, -dmgMin, -dmgMax, CONST_ME_HOLYDAMAGE) and doSendDistanceShoot(position, getCreaturePosition(playerTarget), CONST_ANI_SMALLHOLY) end if (getPlayerVocation(cid) == 4 and getDistanceBetween(getCreaturePosition(cid), getCreaturePosition(playerTarget) <= 1)) then local dmgMin = (310 +(level * 2.7)) local dmgMax = (420 +(level * 3.2)) ret = doTargetCombatHealth(cid, playerTarget, COMBAT_PHYSICALDAMAGE, -dmgMin, -dmgMax, CONST_ME_GROUNDSHAKER) and doSendDistanceShoot(position, getCreaturePosition(playerTarget), CONST_ANI_SMALLEARTH) end end return ret end Cara, deixei bastante opções de efeitos, multiplicadores de danos e distancias, no weapons.xml só coloca aquela linha ali em cima e cria o script com o nome declarado lá. Qualquer coisa pede ai vejo se consigo fazer, não testei.1 ponto -
[EVENTO] Dota Completo
[EVENTO] Dota Completo
rodrigovilao reagiu a Micheel15 por uma resposta no tópico
1 ponto@Yago Blind. amigo, eu tenho o DOTA EVENT, vou estar disponibilizando pra você esta todo arrumado igual na imagem abaixo, basta apenas você colocar na pasta do seu servidor, peço apenas para que me repute 1+ pelo evento se te ajudar !!! segue a imagem abaixo:1 ponto -
Global 10.41 [Aprovado] x64
Global 10.41 [Aprovado] x64
Alexsoft reagiu a izaelmoura por uma resposta no tópico
1 pontoE aê, desta vez vim tentar contribuir com o fórum, trazendo este global que até agora foi o melhor que testei fiz uma mistureba até ele funcionar. Já vem com a pasta Data e as DLLs porém não roda em 32 bits, em breve postarei dessa versão também, eu espero. Importantíssimo configurar o config.lua além de ser imprescindível ter o Xampp instalado. Scan: Virus Total Download: Mediafire Download: Ipchanger ------------- Site: Mediafire Database: Mediafire Scan: Vírus Total Crédito: AnaPaula -------------- Montarias: Widow Queen, Racing Bird, War Bear, Black Sheep, Midnight Panther, Draptor, Titanica, Tin Lizzard, Blazebringer, Rapid Boar, Stampor, Undead Cavebear, Donkey,Tiger Slug, Uniwheel, Crystal Wolf, Brown War Horse, Kingly Deer, Tamed Panda, Dromedary, King Scorpion, Rented Horse, Armoured War Horse, Shadow Draptor, Ladybug, Manta,Ironblight, Magma Crawler, Dragonling, Gnarhound, Golden Lion, etc. Outfits: Barbarian, Druid, Wizard, Oriental, Pirate, Assassin, Beggar, Shaman, Norsewoman, Nightware, Jester, Brotherhood, Demonhunter, Yalaharian, Warmaster, Wayfarer, Afflicted, Elementalist, Deepling, Insectoid, Entrepreneur, Crystal Warlord, Soil Guardian, Demon, Cave Explorer, Dream Warden, Summoner, etc. Cidades: Roshamuul Svargrond Liberty Bay Edron Ankrahmun Farmine Port Hope Gray Beach Yalahar Darashia Venore Thais Ab'Dendriel Kazordoon Carlin O Ot não possui Training Monk, porém tem Treino Offline nas cidades igual o Global. Importante ativar no config.php do Gesior 30 ou mais dias premium para os novos players. Qualquer dúvida eu tirarei aqui.1 ponto -
[Action] Alavanca que vende item.
[Action] Alavanca que vende item.
Eduardo1534 reagiu a Admsombra por uma resposta no tópico
1 pontoMuito obrigado1 ponto -
[Floresta Encantada] New Event - Exclusivo
[Floresta Encantada] New Event - Exclusivo
Shandow Exille reagiu a Emersonssss por uma resposta no tópico
1 pontoE Papai Absulute como sempre posta o script faltando funções e ainda manda o player se vira para cria-la e o mais engraçado é que me fala para adicionar a função na source ! kkkkkkkkkk Troque: E para finalizar crie um arquivo com o nome de florestaabsolute.lua em data/libs e dentro adicione: Adicione este : configExf = { teleportPos = {x = 32341,y = 32213, z = 7}, -- aonde aparecerá o teleport teleportPla = {x=32622, y=31699, z=7}, -- para onde o teleport levará stats = 201201180701, timetostart = 300, -- tempo para iniciar topleftPos = {x = 32589, y = 31662, z = 7}, -- canto esquerdo superior botrightPos = {x = 32631, y = 31693, z = 7}, -- canto direito inferior prize = 6571, -- recompensa templepos = {x=32369, y=32241, z=7}, -- posição do templo randpos = {{x=32625,y=31692,z=7},{x=32621,y=31692,z=7},{x=32617,y=31692,z=7},{x=32619,y=31687,z=7},{x=32624,y=31681,z=7},{x=32630,y=31668,z=7},{x=32627,y=31668,z=7},{x=32617,y=31672,z=7},{x=32613,y=31677,z=7},{x=32608,y=31665,z=7},{x=32610,y=31688,z=7},{x=32598,y=31684,z=7},{x=32596,y=31684,z=7},{x=32597,y=31668,z=7}} } -- O PAPAI ABSOLUTE EXPLICARÁ NAS IMAGENS ESSAS POSIÇÕES function doStartExf() doCreateTeleport(1387, configExf.teleportPla, configExf.teleportPos) setGlobalStorageValue(configExf.stats, 0) doBroadcastMessage("The Exchanted Forest event will open in " .. configExf.timetostart .. " seconds.") addEvent(doInitExf, configExf.timetostart*1000) end function doInitExf() if getGlobalStorageValue(configExf.stats) == 0 then doBroadcastMessage("The Exchanted Forest event is starting...") setGlobalStorageValue(configExf.stats, 1) end end function doCloseExf() setGlobalStorageValue(configExf.stats, -1) local item = getTileItemById(configExf.teleportPos, 1387) if(item.uid ~= 0) then doRemoveItem(item.uid) end for index, creature in ipairs(doGetPlayersFromArea()) do doTeleportThing(creature, getTownTemplePosition(getPlayerTown(creature))) end end function doGetPlayersFromArea() local players = {} for index, creature in ipairs(getPlayersOnline()) do if isInArea(getThingPos(creature), configExf.topleftPos, configExf.botrightPos) then table.insert(players, creature) end end return players or #players end "Ai tu tem que adicionar a função na source brother, na 0.3.6 tem..." kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk Modificações by Emerson Henrique Oque eu Alterei ? for index, creature in ipairs(doGetPlayersFromArea()) do doTeleportThing(creature, getTownTemplePosition(getPlayerTown(creature))) end end function doGetPlayersFromArea() local players = {} for index, creature in ipairs(getPlayersOnline()) do if isInArea(getThingPos(creature), configExf.topleftPos, configExf.botrightPos) then table.insert(players, creature) end end return players or #players end Resumindo ele vai pegar qualquer player que esteja nessa Area e vai Teleportar pra o *Town do Player Town = Cidade Main do Player, Isso : templepos = {x=32369, y=32241, z=7}, -- posição do templo é Igual a Isso : getTownTemplePosition(getPlayerTown(creature)) Porem não é necessario variavel. Mine Tutorial de como fazer uma função que teleport o player para seu templo sem nenhuma variavel. Até o Proximo Check's Script's of Absulute1 ponto -
[Pedido Talkaction] BOSS EVENT COM MENSAGENS
[Pedido Talkaction] BOSS EVENT COM MENSAGENS
Carlos Henrique II reagiu a LeoTK por uma resposta no tópico
1 pontobom eu tenho um mod ... é automatico acho que você vai achar legal pois alem de ser automatico você pode configura-lo para os dias da semana e o horario bom vamos começar vá na pasta do seu servidor/mod/ crie um arquivo.xml e cole isso dentro obs: os boss que estão preenchidos são os do meu servidor como configurar em days são os dias da semana em inglês no caso monday é segunda-feira days = { ["Monday"] = { ["21:15"] = {nome = "Shukaku", pos = {fromPosition = {x=413, y=766, z=7},toPosition = {x=413, y=766, z=7}},m = {"1 Shukaku", "5 Sakon e Ukon", "2 Nukenin"}, Time = 15}, "21:15" é o horario que o boss nasce-ra. nome é o nome do evento exemplo: como está na tag shukaku então aparece-ra evento shukaku começou ... exemplo apenas. pos ={from position = { x,y,z} é a posição aonde o boss nasce-ra junto com mais 2 bixos que configurei para nascer junto com ele toposition: tambem coloquei igual bom não entendi muito bem mais me parece que são aonde o boss e os bixos nascerão depois são os bixos que nascerão no meu caso {"1 Shukaku", "5 Sakon e Ukon", "2 Nukenin"} e em time é o tempo que os bixos ficarão lá depois desse tempo se ninguem matar os bixos sumiram espero ter ajudado1 ponto -
(Resolvido)Resete database mysql
(Resolvido)Resete database mysql
Cleiton Felipi reagiu a Rusherzin por uma resposta no tópico
1 pontoDe nada.. Resetar skills: UPDATE player_skills SET value= 10; Resetar Magic Level: UPDATE players SET maglevel= 0;1 ponto -
[Resolvendo] Exit-Trainer
[Resolvendo] Exit-Trainer
Samuel Cstr reagiu a thiagobji por uma resposta no tópico
1 pontoNão. Ele só tomará KICK se ele ficar parado no trainer, ai sim, mais se ele ficar mexendo, dançando, ele não irá tomar kick.1 ponto -
[Action] Alavanca que vende item.
[Action] Alavanca que vende item.
Eduardo1534 reagiu a Skydangerous por uma resposta no tópico
1 pontohehehe. bem simples mais eficiente. Parabéns, gostei1 ponto