Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 04/20/17 em todas áreas

  1. [TFS 1.x] Anti Bot

    xWhiteWolf e 2 outros reagiu a Pedriinz por uma resposta no tópico

    3 pontos
    Como o nome do tópico diz, eu trouxe para vocês um sistema de anti bot. Minha intenção é atualizar este código ao máximo, deixando o mesmo bastante customizável. Quaisquer erros ou problemas por favor me deixe saber. Como ele funciona? Após um jogador matar uma quantidade x de monstros, o sistema irá realizar uma verificação com ele para saber se o mesmo está ou não 100% afk. Essa verificação é feita através de um channel que se abre após o jogador matar a quantidade de monstros, realizando uma pergunta para o jogador. O que é possível configurar? Praticamente tudo! Você também pode adicionar quantas perguntas desejar! Organizei o script para que qualquer um possa realizar as configurações que desejar. Confira: ANTI_BOT_SYSTEM = { config = { minMonstersToCheck = 2, -- O sistema irá escolher aleatoriamente um número de monstros entre esses dois valores para verificar. maxMonstersToCheck = 4, channelId = 10, -- Id do channel que será aberto para realizar a verificação. timeToAnswer = 10, -- Quanto tempo em segundos o jogador tem para responder a verificação. monstersForNotCheck = {'rat', 'bug', 'tiger'}, -- Monstros que não serão verificados pelo sistema. notations = 3, -- Quantas notificações o jogador pode receber antes de ser banido. banDays = 1, -- Quantidade de dias o personagem vai ficar banido por utilizar bot. storageForNotations = 1222, -- Storage onde ficará salvo as notations. storageForOpenChat = 10383, -- Storage que permitira o chat ser aberto. (Aconselho não mudar). }, questions = { [1] = {question = 'Digite quantas letras possui a palavra: Carro', answer = '5'}, [2] = {question = 'O que significa Ying e Yang?', answer = 'bem e o mal'}, [3] = {question = 'Qual é a cor do sol?', answer = 'amarelo'}, --[numero seguinte] = {question = 'pergunta', answer = 'resposta'}, }, cache = { players = { --[player:getId()] = {count = 1} }, question = 0, }, messages = { reason = {msg = 'Você foi banido por utilizar bot 100% AFK.'}, notation = {msg = 'Você foi penalizado e recebeu um notificação. Lembre-se que após receber 3 notificações você será banido. Você possui %d notificações no momento.', type = MESSAGE_EVENT_ADVANCE}, attention = {msg = '[Anti-Bot] Atenção! Você só possui %d segundos para responder a verificação.', type = TALKTYPE_CHANNEL_O}, channel_enter = {msg = '[Anti-Bot] Você está sobre suspeitas de uso aplicativos não autorizados.\nPor favor, confirme a verificação a seguir, você possui %d segundos para isso.', type = TALKTYPE_CHANNEL_O}, channel_close = {msg = '[Anti-Bot] Para sua segurança, não é possivel fechar este channel antes da verificação. Por favor responda o que lhe foi perguntado para que não seja penalizado.', type = TALKTYPE_CHANNEL_O}, wrong_answer = {msg = '[Anti-Bot] Resposta errada, por favor tente novamente.', type = TALKTYPE_CHANNEL_O}, correct_answer = {msg = '[Anti-Bot] Você respondeu corretamente, obrigado e bom jogo! Você já pode fechar este channel.', type = TALKTYPE_CHANNEL_O}, unconfirmed = {msg = 'Você não realizou a verificação corretamente, por isso você foi penalizado. Este channel já pode ser fechado.', type = TALKTYPE_CHANNEL_O}, } } Tudo dentro desses espaços pode ser configurado sem nenhuma complicação! Instalação: Vá na pasta creaturescript/scripts do seu servidor e crie um arquivo com o nome de antibot.lua e adicione o seguinte conteúdo: --[[ ## SCRIPT BY: Pedriinz ## ## CONTACT SKYPE: pedrosz4 ## ]] ANTI_BOT_SYSTEM = { config = { minMonstersToCheck = 2, -- O sistema irá escolher aleatoriamente um número de monstros entre esses dois valores para verificar. maxMonstersToCheck = 4, channelId = 10, -- Id do channel que será aberto para realizar a verificação. timeToAnswer = 10, -- Quanto tempo em segundos o jogador tem para responder a verificação. monstersForNotCheck = {'rat', 'bug', 'tiger'}, -- Monstros que não serão verificados pelo sistema. notations = 3, -- Quantas notificações o jogador pode receber antes de ser banido. banDays = 1, -- Quantidade de dias o personagem vai ficar banido por utilizar bot. storageForNotations = 1222, -- Storage onde ficará salvo as notations. storageForOpenChat = 10383, -- Storage que permitira o chat ser aberto. (Aconselho não mudar). }, questions = { [1] = {question = 'Digite quantas letras possui a palavra: Carro', answer = '5'}, [2] = {question = 'O que significa Ying e Yang?', answer = 'bem e o mal'}, [3] = {question = 'Qual é a cor do sol?', answer = 'amarelo'}, --[numero seguinte] = {question = 'pergunta', answer = 'resposta'}, }, cache = { players = { --[player:getId()] = {count = 1} }, question = 0, }, messages = { reason = {msg = 'Você foi banido por utilizar bot 100% AFK.'}, notation = {msg = 'Você foi penalizado e recebeu um notificação. Lembre-se que após receber 3 notificações você será banido. Você possui %d notificações no momento.', type = MESSAGE_EVENT_ADVANCE}, attention = {msg = '[Anti-Bot] Atenção! Você só possui %d segundos para responder a verificação.', type = TALKTYPE_CHANNEL_O}, channel_enter = {msg = '[Anti-Bot] Você está sobre suspeitas de uso aplicativos não autorizados.\nPor favor, confirme a verificação a seguir, você possui %d segundos para isso.', type = TALKTYPE_CHANNEL_O}, channel_close = {msg = '[Anti-Bot] Para sua segurança, não é possivel fechar este channel antes da verificação. Por favor responda o que lhe foi perguntado para que não seja penalizado.', type = TALKTYPE_CHANNEL_O}, wrong_answer = {msg = '[Anti-Bot] Resposta errada, por favor tente novamente.', type = TALKTYPE_CHANNEL_O}, correct_answer = {msg = '[Anti-Bot] Você respondeu corretamente, obrigado e bom jogo! Você já pode fechar este channel.', type = TALKTYPE_CHANNEL_O}, unconfirmed = {msg = 'Você não realizou a verificação corretamente, por isso você foi penalizado. Este channel já pode ser fechado.', type = TALKTYPE_CHANNEL_O}, } } function vericationBot(cid) local player = Player(cid) local timeNow = os.time() if not player then return true end if not ANTI_BOT_SYSTEM.cache.players[player:getId()] or ANTI_BOT_SYSTEM.cache.players[player:getId()].verified == false then return true else player:sendChannelMessage("", ANTI_BOT_SYSTEM.messages.unconfirmed.msg, ANTI_BOT_SYSTEM.messages.unconfirmed.type, ANTI_BOT_SYSTEM.config.channelId) ANTI_BOT_SYSTEM.cache.players[player:getId()] = nil if player:getStorageValue(ANTI_BOT_SYSTEM.config.storageForNotations) < ANTI_BOT_SYSTEM.config.notations then if player:getStorageValue(ANTI_BOT_SYSTEM.config.storageForNotations) ~= -1 then player:setStorageValue(ANTI_BOT_SYSTEM.config.storageForNotations, math.max(player:getStorageValue(ANTI_BOT_SYSTEM.config.storageForNotations) + 1)) else player:setStorageValue(ANTI_BOT_SYSTEM.config.storageForNotations, 1) end player:teleportTo(player:getTown():getTemplePosition()) player:sendTextMessage(ANTI_BOT_SYSTEM.messages.notation.type, string.format(ANTI_BOT_SYSTEM.messages.notation.msg, math.max(player:getStorageValue(ANTI_BOT_SYSTEM.config.storageForNotations)))) else player:teleportTo(player:getTown():getTemplePosition()) db.query("INSERT INTO `account_bans` (`account_id`, `reason`, `banned_at`, `expires_at`, `banned_by`) VALUES (" ..getAccountNumberByPlayerName(player:getName())..", "..db.escapeString(ANTI_BOT_SYSTEM.messages.reason.msg)..", "..timeNow..", "..timeNow + (ANTI_BOT_SYSTEM.config.banDays * 86400) ..", 1)") player:remove() end end return true end function onKill(creature, target) local targetMonster = target:getMonster() local player = creature:getPlayer() local random = math.random(ANTI_BOT_SYSTEM.config.minMonstersToCheck, ANTI_BOT_SYSTEM.config.maxMonstersToCheck) if not targetMonster then return true end if isInArray(ANTI_BOT_SYSTEM.config.monstersForNotCheck, targetMonster:getName():lower()) then return true end if not ANTI_BOT_SYSTEM.cache.players[player:getId()] then ANTI_BOT_SYSTEM.cache.players[player:getId()] = {count = 1, verified = false} else if ANTI_BOT_SYSTEM.cache.players[player:getId()].count >= random then ANTI_BOT_SYSTEM.cache.players[player:getId()] = {count = math.max(ANTI_BOT_SYSTEM.cache.players[player:getId()].count), verified = true} player:openChannel(ANTI_BOT_SYSTEM.config.channelId) player:getPosition():sendMagicEffect(CONST_ME_TUTORIALSQUARE) else ANTI_BOT_SYSTEM.cache.players[player:getId()] = {count = math.max(ANTI_BOT_SYSTEM.cache.players[player:getId()].count) + 1, verified = false} end end return true end Após feito isso, abre o arquivo creaturescript/creaturescript.xml e adicione esta linha: <!-- Anti Bot by Pedriinz --> <event type="kill" name="AntiBot" script="antibot.lua" /> Feito isso, abra o arquivo: creaturescript/scripts/others/login.lua e registre o script com a tag: 'AntiBot', Exemplo: local events = { 'ElementalSpheresOverlords', 'BigfootBurdenVersperoth', 'Razzagorn', 'Shatterer', 'Zamulosh', 'The Hunger', 'AntiBot', } Agora, abre o arquivo chatchannels/chatchannels.xml e adicione a seguinte tag: <channel id="10" name="Anti Bot" public="1" script="antibot.lua" /> Lembre-se que o ID deve ser o mesmo que você configurou no script principal lá em cima. Agora abra a pasta chatchannels/scripts/ crie um script chamado antibot.lua e adicione: function onJoin(player) if not player then return true end if not ANTI_BOT_SYSTEM.cache.players[player:getId()] or ANTI_BOT_SYSTEM.cache.players[player:getId()].verified == false then player:popupFYI('You can\'t open this channel.') return false end addEvent(function() player:sendChannelMessage("", string.format(ANTI_BOT_SYSTEM.messages.channel_enter.msg, ANTI_BOT_SYSTEM.config.timeToAnswer), ANTI_BOT_SYSTEM.messages.channel_enter.type, ANTI_BOT_SYSTEM.config.channelId) end, 300) addEvent(function() local random = math.random(#ANTI_BOT_SYSTEM.questions) player:sendChannelMessage("", ANTI_BOT_SYSTEM.questions[random].question, TALKTYPE_CHANNEL_R1, ANTI_BOT_SYSTEM.config.channelId) ANTI_BOT_SYSTEM.cache.question = random end, 2000) addEvent(vericationBot, ANTI_BOT_SYSTEM.config.timeToAnswer * 1000, player:getId()) return true end function onLeave(player) if not player then return true end if ANTI_BOT_SYSTEM.cache.players[player:getId()] then player:openChannel(ANTI_BOT_SYSTEM.config.channelId) addEvent(function() player:sendChannelMessage("", ANTI_BOT_SYSTEM.messages.channel_close.msg, ANTI_BOT_SYSTEM.messages.channel_close.type, ANTI_BOT_SYSTEM.config.channelId) end, 300) end end function onSpeak(player, type, message) player:sendChannelMessage(player:getName(), message, TALKTYPE_CHANNEL_Y, ANTI_BOT_SYSTEM.config.channelId) if message ~= ANTI_BOT_SYSTEM.questions[ANTI_BOT_SYSTEM.cache.question].answer then addEvent(function() player:sendChannelMessage("", ANTI_BOT_SYSTEM.messages.wrong_answer.msg, ANTI_BOT_SYSTEM.messages.wrong_answer.type, ANTI_BOT_SYSTEM.config.channelId) end, 300) else addEvent(function() player:sendChannelMessage("", ANTI_BOT_SYSTEM.messages.correct_answer.msg, ANTI_BOT_SYSTEM.messages.correct_answer.type, ANTI_BOT_SYSTEM.config.channelId) end, 300) ANTI_BOT_SYSTEM.cache.players[player:getId()] = nil end return false end Pronto! O seu antibot foi instalado com sucesso! O código foi totalmente feito por mim, então os créditos são meus. Qualquer sugestão para melhorias, por favor poste para que eu possa fazer Abraços!
  2. Pergaminho de Invocação

    luanluciano93 e um outro reagiu a Pedriinz por uma resposta no tópico

    2 pontos
    local monster = 'rat' function onUse(cid, item, fromPosition, itemEx, toPosition) if table.maxn(getCreatureSummons(cid)) < 1 then doSummonMonster(cid, monster) end return true end
  3. DEV C++ Compilando TFS no Windows

    Gabriel485 reagiu a Natanael Beckman por uma resposta no tópico

    1 ponto
    DEV 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 \/
  4. [8.6 TFS 3.6] Spell Ghost Invisible

    diarmaint reagiu a abugaduniga por uma resposta no tópico

    1 ponto
    Ae galera fiz esse spell aqui no meu ot, funcionou 100% Shadow Walker Spell By Abugaduniga (Ghost mode spell) Client Versão 8.6 OT TFS 4.0 Porem, acredito que serve em geral! Sei que muita gente vai me agradecer por isso 1º Passo: Abra o Spells.XML e adicione o seguinte código: <!-- Shadow Walker by Abuga --> <instant name="Shadow Walker" words="utana vis" lvl="40" manapercent="70" exhaustion="2000" needlearn="0" event="script" value="support/shadow.lua"> <vocation id="41"/> </instant> NOTA: aonde está manapercent="70" pode ser trocado por mana="VALOR", Deixe só 1 dos dos para não dar problemas! 2º Passo Crie na pasta \data\spells\scripts\support um arquivo chamado Shadow.lua e coloque o seguinte código dentro: function onCastSpell(cid, var) parameters = {cid=cid} setPlayerGroupId(cid, 2) doCreatureExecuteTalkAction(cid, "/ghost", TRUE) addEvent(talk, 5000, parameters) return true end function talk(parameters) doCreatureExecuteTalkAction(parameters.cid, "/ghost", TRUE) setPlayerGroupId(parameters.cid, 1) end NOTA: Na linha onde se encontra "addEvent(talk, 5000, parameters)" Troque 5000 por quantos segundos vc deseja que este spell dure (1 seg = 1000) Na linha onde se encontra "setPlayerGroupId(cid, 2)" ela deixará o player com o groupid de senior tutor. Infelismente é o único jeito que descobri para que players não te encherguem ao usar, pois a condição ghost afeta apenas quem é inferior ao groupid do player. 3º passo No arquivo login.lua (\data\creaturescripts\scripts) Adicione o seguinte código logo abaixo de "function onLogin(cid)" -- Login Cancel Invisible -- if(getPlayerGroupId(cid) == 2) then setPlayerGroupId(cid, 1) end if(isPlayerGhost(cid)) then doCreatureExecuteTalkAction(cid, "/ghost", TRUE) end -- end -- NOTA: Isto serve para caso o server caia, o player que está na condição ghost vire groupid 0(player) e cancele o ghostmode ao login. É importante ressaltar também, que caso algum GM/GOD esteja ghostmode e de logout, quando der login voltará a ser visível apenas, ele NÃO terá o groupid modificado! então pode usar de boas 4º passo Teste, compartilhe e me de REP+ xD Tem apenas um Bug, que caso seu server de crash ou caia enquanto o player esteja ghostmode, é que quando ele entrar os players em volta dele tomam crash, mais apenas no primeiro login.
  5. Top Fraggers System

    Vodkart reagiu a christensen por uma resposta no tópico

    1 ponto
    ***IMPORTANTE*** A parte para website foi desenvolvida para funcionar em gesior, então dificilmente irá funcionar em outros sem alguma alteração. Recentemente fiz um top fragger e decidi disponibilizar, existe um parecido que foi feito pelo Ryzor usei ele como base e melhorei o código tanto php e lua, de acordo com o que eu precisei. ***IMAGEM DO TOP FRAGGERS*** Primeiramente vamos instalar a parte do website(PHP). Abram seu layout.php e procure por : <a href="?subtopic=guilds"> <div id="submenu_guilds" 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_guilds" class="ActiveSubmenuItemIcon" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);"></div> <div id="ActiveSubmenuItemLabel_guilds" class="SubmenuitemLabel">Guilds</div> <div class="RightChain" style="background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);"></div> </div> </a> e cole logo abaixo : <a href="?subtopic=fraggers"> <div id="submenu_frags" 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_guilds" class="ActiveSubmenuItemIcon" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);"></div> <div id="ActiveSubmenuItemLabel_guilds" class="SubmenuitemLabel"><span style="color:red">Top Fraggers</span></div> <div class="RightChain" style="background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);"></div> </div> </a> dps na pasta /pages/ e crie fraggers.php e adicione no arquivo : Com isso já poderemos verificar os top fraggers do nosso ot acessando www.meusite.com/?subtopic=fraggers Agora vamos instalar a parte de frags no servidor(LUA). Primeiramente rode esse comando na sua database : ALTER TABLE players ADD frags_all smallint(5) unsigned default 0 ; Vá em creatuscripts/scripts e crie topfrags.lua: local skulls = {SKULL_WHITE, SKULL_YELLOW, SKULL_RED, SKULL_BLACK} function addPlayerFrag(cid, value) db.executeQuery("UPDATE `players` SET `frags_all` = `frags_all` + " .. value .. " WHERE `id` = " .. getPlayerGUID(cid) .. ";") return true end function onKill(cid, target) if isPlayer(cid) and isPlayer(target) then for i= 1, #skulls do if getPlayerSkullType(target) == skulls[i] then addPlayerFrag(cid, 1) break end end end return true end function onLogin(cid) registerCreatureEvent(cid, "TopFrags") return true end em creatuscripts.XML adicione: <event type="kill" name="TopFrags" event="script" value="topfrags.lua" /> <event type="login" name="RTopFrags" event="script" value="topfrags.lua" /> Pronto!! sistema instalado. Confira como fica a página : http://baiakfontana.com/?subtopic=fraggers abrçs
  6. Source DarkXPoke e PDA

    Jeffeson 123 reagiu a LG KyoGron por uma resposta no tópico

    1 ponto
    Olá pessoal tudo de boa? Bom não vou enrolar o titulo já diz tudo, Hoje estive conversando com uns membros do fórum e vi que a area sobre "dxp" está meio caída. Então decidi refazer a source do dxp usando TFS 0.3.6 limpo e adicionar funções que eram "necessárias" para o jogo rodar, Não cheguei a colocar todas, Pois já disponibilizar ela rodando em um TFS que eu tenho certeza que está livre de códigos de guerras ou bugs da própria source original já está de bom tamanho certo? Sem enrolação. *Apaguei o executável e a pasta obj porque quando fui upar aqui acusou virus, Então vocês terão que compilar (Um colega disse que ela é compativel com PDA também.. Não aconselho muito pelo fato dela possuir Storages dentro da própria source) Download: https://www.4shared.com/rar/dWFUE_m1ei/Source_tfs_036.html? Scan: https://virustotal.com/pt/file/c270b7261e45227e9a3311048b4fadd1311ddfedb0667eca0a6d806f099fc58f/analysis/1491538770/
  7. realmente n sei se funfa, mas tenta ai uahsusha local porcent = 10 -- porcentagem de vida dos players para healar local exaust = 1 -- exhausted em segundos local effect = {36} -- efeito que ira aparecer nos player, caso for mais de 1, adicionar virgulas dentro da tabela local pos = {x = 10160, y = 10054, z = 7} local function REVIVE(cid) if not isCreature(cid) then return true end if getTilePzInfo(getThingPos(cid)) == false and getCreatureHealth(cid) <= math.floor(getCreatureHealth(cid)*porcent/setConditionParam(condition, CONDITION_PARAM_TICKS, 200000)) then if getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 5 then doSendMagicEffect(getCreaturePos(cid), 35) doTeleportThing(cid, pos, true) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) elseif getPlayerVocation(cid) == 2 or getPlayerVocation(cid) == 6 then doSendMagicEffect(getCreaturePos(cid), 36) doTeleportThing(cid, pos, true) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) elseif getPlayerVocation(cid) == 3 or getPlayerVocation(cid) == 7 then doSendMagicEffect(getCreaturePos(cid), 37) doTeleportThing(cid, pos, true) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) elseif getPlayerVocation(cid) == 4 or getPlayerVocation(cid) == 8 then doSendMagicEffect(getCreaturePos(cid), 38) doTeleportThing(cid, pos, true) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) end setPlayerStorageValue(cid, 8855, -1) else addEvent(REVIVE, 100, cid) end end function onCastSpell(cid, var) local pos = getCreaturePos(cid) if exhaustion.check(cid, 8844) == true then doPlayerSendCancel(cid, "You are exhausted.") doSendMagicEffect(pos, 2) return false end if getPlayerStorageValue(cid, 8855) > 0 then doPlayerSendCancel(cid, "You already have protection.") return false end for i = 1, #effect do doSendMagicEffect(pos, effect[i]) end REVIVE(cid) exhaustion.set(cid, 8844, exaust) return true end
  8. Pergaminho de Invocação

    marcoatorres reagiu a Pedriinz por uma resposta no tópico

    1 ponto
    Coloca no action.xml <action itemid="xxxx" event="script" value="arquivo.lua"/>
  9. Source DarkXPoke e PDA

    padreesss reagiu a Offsher Ban por uma resposta no tópico

    1 ponto
    No caso o npc com nick azul se não me engano é pelo cliente, há uma função que você coloca lá em game_things se não me engano, cor do nick GOD e GM que você diz é referente aos chats ou ao Nick vermelho que ela tem?
  10. (Resolvido)erro ao abrir serv em mysql

    Vim Rusha reagiu a Werner por uma resposta no tópico

    1 ponto
    Sim,mas você pode adicionar os itens também se desejar.
  11. 1 ponto
    Baiak 8.60 by Victor Esse baiak eu fiz em cima de um baiak ice do bryaan, sim aquele mesmo, tinha uma infinidade de bugs os quais todos foram solucionados, não dão erros na hora de abrir o server, no baiak ice eram tantos que se tornava quase impossível contar. Eu ja postei esse OT não lembro quando, mas ele não tinha alguns sistema que esse tem e não estava tão bem explicado. Sem mais delongas vamos ao que interessa: 1. Oque há de novo? 1.1 Templo; 1.2 Área de TPS free; 1.3 Área de eventos; 1.3.1 War event; 1.3.2 XP Event (bugzin); 1.3.3 BP Event; 1.4 City of Champions - pode ser considerada uma extensão da VIP1; 1.5 Sistema de Castle 24 Horas; 1.5.1 Cidadezinha acessada pela guild que dominar o Castle 24 Horas; 1.5.2 Central de TPS para quem domina o Castle 24 Horas; 1.6 Sistema de Forja para obter as armas mais fortes do server; 1.7 Sistema de casamento (NPC Celest em frente ao Templo); 1.8 Mod de Reputação (REP) Desbugado; 1.9 NPC Comerciante; 1.10 Sistema de addons; 1.10.1 Bosses para dropar items de addons; 1.11 Templo VIP1; 1.12 Templo VIP2; 1.13 Área VIP3; 1.14 Área Account Manager; 1.15 Gold nugget ao dar use em crystal coin 2. Explicando como tudo funciona: 1.3.1 - War event: Aquele TP que tem no canto superior esquerdo da área do war event leva até uma salinha, nessa salinha tem três corredores, um para cada troféu: ouro, prata e bronze, o interessante é que o nome do player é adicionado ao troféu: 1.5 - Castle 24 Horas: Bem, vo explicar este porque ele é um pouquinho diferente dos outros, eu fiz algumas modificações dentre elas um TP para quem dominou o castelo por ultimo chegar no barco isso porque estava bugado as talkactions. Também coloquei otro teleport na sala do trono pois quando se chega lá não tinha como voltar pro templo. Esse TP só pode ser acessado por quem dominou o Castle por ultimo. No mais funciona da mesma forma que os outros, ao subir no trono sua guild consegue acesso a uma cidadezinha que tem uma central de TPS com 8 hunts com monstros VIP e VIP2. 1.6 Sistema de Forja: Bem esse sistema que eu "criei" é diferente de tudo que eu ja vi, fiz um item de forja chamado "aço especial" que por sua vez serve para realizar forjas, pra obter esse item você da use em um crucible e então você recebe um aço especial (caso tenha 60kk) o preço é editável pois depende muito de como está o loot rate. Não é porque eu que fiz mas isso foi bem pensado. Ta bem organizadinho o comando !forjas como vocês podem ver. Essas armas que aparecem ai são as mais fortes do server, a forja tem 20% de chance de dar certo. 1.7 Sistema de Casamento: A igreja fica em frente ao templo, para se casar o diálogo é o seguinte: Hi - Marriage - Yes - Nome de quem você pretende se casar. Se a pessoa aceitar os dois recebem um anel de casamento gravado o nome do cônjuge e a data e também ganham o outfit Husband (homem) e Wife (mulher). 1.9 NPC Comerciante: Esse npc eu fiz para vender stamina potion e pedra de refinamento. 1.10 Sistema de addons: Bom, nesse sistema não tem segredo na parte da Bulma com o Varkhal, você adquire os items correspondente a cada addon e depois troca no Varkhal, o que eu preciso explicar é a parte dos King Bosses, eu os criei com o intuito de dropar alguns items que a bulma não vende: King Minotaur: nose ring, King Knight: damage steel helmet, King Magician: soul stone, King Hunter: sniper gloves, King Carniphila: mandrake, King Pirate: ron the ripper's sabre. Os três primeiros que citei tem seu TP liberado a cada 1 hora, os demais tem seu acesso livre porém o respaw demora 15 minutos. OBS: Reparem que em todos os bosses os detalhes do ambiente onde o boss está foram o diferencial, eu poderia ter feito um quadrado e o boss no meio sem nada em volta (como muitos fazem). O Único addon que não pode ser obtido no Varkhal é o Warmaster, ele é conseguido ao abrir o baú da área VIP3 aqui: 1.12 Templo VIP2: Bom, não ha muito oque explicar aqui mas no segundo piso do templo vocês podem observar um TP com raios, aquela é a quest de acesso à VIP3 vou explicar como ela é feita: Entre no TP na VIP2 passe pela porta e siga reto o caminho até chegar aqui: Depois de ter usado a alavanca o caminho é liberado e então você desce aquela escada e chegará aqui: Então de use no corpo que está no chão: Suba o buraco e continue pelo caminho. Até chegar nessa parte: Depois é só seguir o caminho até concluir a quest. DOWNLOAD: 4shared - Mediafire SCAN: VírusTotal - Jotti 3. Créditos Essa parte é complicado pois faz tempo que eu comecei a edição (eu mexi nesse OT um pouco, parei e só depois de um tempo que voltei a mexer). Se esqueci alguém comenta que eu coloco. Baiak Lula(criador do mapa) Bryaan(fez o mapa base para o meu) Victor(eu) Bruno Minervino(ajudou muito com os scripts) Absolute e ViitinG(script castle 24hrs e mapa do mesmo) No momento eu estou hosteando esse mapa não tem ninguém online além de mim, abri mais pra testar e fazer mudanças, e ir testando abri publicamente pra se alguém entrasse me ajudar. IP: baiakiceeditado.servegame.com
  12. Player morre e nao dropa corpo

    Sentsuizan reagiu a KotZletY por uma resposta no tópico

    1 ponto
    @Juantibiano entendo, é realmente um pena caso tenhamos editado muita coisa na distro. Que bom que conseguiu resolver, eu particularmente nunca passei por erros assim. Era estranho, ambos scripts, estava funcionando, eu sempre testo, então lhe passei os dois que eu usava quando usava distro 0.4, e que sempre funcionou perfeitamente. Hahahaha. Em fim, abraços, e boa sorte com seu servidor! xD
  13. (Resolvido)Limitar mensagem no script

    Zzjj reagiu a Albeck por uma resposta no tópico

    1 ponto
    @JcA Testa ai e manda a resposta. function onLogin(cid) local bless = {" First Bless,", " Second Bless,", " Third Bless,", " Fourth Bless,", " Fifth Bless."} local check = "Received blessings:" if (string.find(tostring(getCreatureName(cid)),"Account Manager")) or getPlayerGroupId(cid) >= 3 then return true end for i = 1, #bless do check = getPlayerBlessing(cid, i) and check .. bless[i] or check end if check:len() > 20 then doPlayerSendTextMessage(cid, 20, check) else doPlayerSendTextMessage(cid, 20, "No blessings received.") end return true end
  14. Item Editor 10.90

    ving reagiu a Bruno Minervino por uma resposta no tópico

    1 ponto
    Changelog Versão 10.90 Suporte para versões 8.00+ Última versão do projeto oficial Download Item Editor Items.otb Créditos Mignari Bruno Minervino
  15. [TFS 1.x] Anti Bot

    Pedriinz reagiu a vankk por uma resposta no tópico

    -1 pontos
    local config = { ['qual a cor do sol?'] = {anwser = 'amarelo'} } local msgs = getnewmessages('Anti Bot') for i = 0, msgs.count - 1 do local question = config[msgs[0].text] if question then say(question.anwser) end end ?
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo