Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 07/19/17 em %

  1. Durante muito tempo venho trabalhando com client's de Servidores 7.4, mas ultimamente estou insatisfeito, é triste ver programadores de qualidade cobrando valor tão baixo para proteger um client. Devido a isso, resolvi utilizar meu tempo para DESCRIPTOGRAFAR os clients "que dizem" ser dificeis. E estou fazendo com muita facilidade Está aqui o link de TODAS as sprites que consegui remover [Caso tenham algum client que queiram as sprites e é ""dificil"" pegar, me mandem o nome, e eu farei]Aos desenvolvedores, paguem mais caro e obtenham proteção de qualidade.Classicus AQUIMorghar AQUIMedivia AQUI CLASSICUS SPR Morghar SPR Medivia SPR E antes que os donos venham reclamar, nem percam tempo, aposto que as imagens são free! Espero que tenham curtido!
    1 ponto
  2. tomax

    Pop-Up para Gesior

    Pop-Up para Gesior vamos lá é um procedimento muito simples lembrando que viso fazer o tutorial para todos para quem não tem conhecimento na área deixando o tutorial é o código e para quem já tem conhecimento sinta se livre para desconsiderar o tutorial e fazer uso apenas do código e da imagem bom vamos lá vá até seu website navegue até a pasta images e coloque sua imagem no formato png segue imagem em anexo agora vamos para a parte do código em nome da imagem coloque o nome da sua imagem que nos colocamos na pasta images por Exemplo:promo.png lembrando que PNG é o formato da imagem agora vamos para o ultimo passo se você quiser que que o anuncio apareça em todas as paginas do site coloque o código no arquivo layout.php que fica localizado na pasta layouts provável mente a próxima pagina será a tibiarl e dentro vai estar o arquivo layout.php mas o correto é deixar o anuncio apenas na pagina inicial do site se você quiser deixar apenas na pagina inicial desconsidere o passo a sima navegue até a pasta pages e abra o arquivo latestnews.php e cole o código já editado com o nome da imagem antes do <?php que fica localizado no inicio de ambos arquivo do layout.php ou do latestnews.php segue o código <div id="LayerPop" style="display:block; position:absolute; left:0px; top:0px; background-color:#1e1e22; width:100%; height:180%; z-index:100;margin:0px;opacity:0.75;"></div> <div id="LayerPop2" style="position: absolute; left: 330px; top: 80px; z-index: 5000;"><a href="donate" target="_BLANK"><img src="images/nome da imagem aqui.png" class="imgBorder"></a><br><a href="javascript:void();" onClick="document.getElementById('LayerPop').style.display = 'none';document.getElementById('LayerPop2').style.display = 'none'"> <b>Fechar</b></a></div> Se Gostou REP >< Segue imagem em Anexo
    1 ponto
  3. Testing111

    Diving/Mergulho.

    Fiz um script simples para quando o player andar em baixo da água. O script troca a Outfit do personagem para o de mergulhador e altera a velocidade do mesmo. Adicione em data/movements/movements.xml <movevent type="StepIn" fromid="5405" toid="5410" event="script" value="diving.lua"/> <movevent type="StepOut" fromid="5405" toid="5410" event="script" value="diving.lua"/> Agora vá em data/movements/scripts, crie o arquivo diving.lua e adicione: function onStepIn(cid, item, position, fromPosition) if getPlayerStorageValue(cid, 30211) == 1 then return true end if isPlayer(cid) then local outfit = getCreatureOutfit(cid) local out = getPlayerSex(cid) == 0 and 1035 or 1034 setPlayerStorageValue(cid, 30211, 1) doChangeSpeed(cid, -getCreatureSpeed(cid)) doChangeSpeed(cid, 1000) doSetCreatureOutfit(cid, {lookType = out, lookHead = outfit.lookHead, lookBody = outfit.lookBody, lookLegs = outfit.lookLegs, lookFeet = outfit.lookFeet}, -1) endendfunction onStepOut(cid, item, position, fromPosition) if isPlayer(cid) then setPlayerStorageValue(cid, 30211, -1) doChangeSpeed(cid, -getCreatureSpeed(cid)) doRegainSpeed(cid) doRemoveCondition(cid, CONDITION_OUTFIT) endend OBS: Testado no DxP.
    1 ponto
  4. Skulls

    [TFS 1.2] Criando novos CombatTypes

    Bom dia galera, tudo bem? Hoje vou ensinar uma coisinha simples, porém bem útil: criar um novo tipo de combate. Tipos de combate representam o tipo do dano que você está causando naquele momento. Basicamente, eles são os responsáveis pelo efeito básico daquele tipo de combate (além do efeito e o efeito de distância que você pode adicionar) e também pela cor do texto de dano. Bom, vamos lá. 1. Criação do novo tipo no Enum O primeiro passo para a criação do novo tipo de combate é adicionar o referencial ao seu combate novo no enumerador (enum) de tipos de combate (CombatType_t). Para isso, vá até o arquivo de cabeçalho enums.h, procure por "enum CombatType_t" e, após o último enum, coloque o nome que quer dar ao seu tipo de combate. Eu escolhi chamar o meu de COMBAT_CRITICAL, para fazer um dano diferente quando o acerto for crítico. Ficou assim: enum CombatType_t { COMBAT_NONE = 0, COMBAT_PHYSICALDAMAGE = 1 << 0, COMBAT_ENERGYDAMAGE = 1 << 1, COMBAT_EARTHDAMAGE = 1 << 2, COMBAT_FIREDAMAGE = 1 << 3, COMBAT_UNDEFINEDDAMAGE = 1 << 4, COMBAT_LIFEDRAIN = 1 << 5, COMBAT_MANADRAIN = 1 << 6, COMBAT_HEALING = 1 << 7, COMBAT_DROWNDAMAGE = 1 << 8, COMBAT_ICEDAMAGE = 1 << 9, COMBAT_HOLYDAMAGE = 1 << 10, COMBAT_DEATHDAMAGE = 1 << 11, COMBAT_CRITICAL = 1 << 12, COMBAT_COUNT = 13}; 2. Adicionar "referências" Esse passo consiste em criar facilidades para acessar seu tipo de combate em alguns casos. Para isso, vamos até tools.cpp e vamos alterar o vetor combatTypeNames (que cria uma string que referencia o nosso combate) e a função combatTypeToIndex (indexa os combates), adicionando o nosso novo combate ao final de cada um deles de forma coerente. O meu ficou assim: CombatTypeNames combatTypeNames[] = { {"physical", COMBAT_PHYSICALDAMAGE}, {"energy", COMBAT_ENERGYDAMAGE}, {"earth", COMBAT_EARTHDAMAGE}, {"fire", COMBAT_FIREDAMAGE}, {"undefined", COMBAT_UNDEFINEDDAMAGE}, {"lifedrain", COMBAT_LIFEDRAIN}, {"manadrain", COMBAT_MANADRAIN}, {"healing", COMBAT_HEALING}, {"drown", COMBAT_DROWNDAMAGE}, {"ice", COMBAT_ICEDAMAGE}, {"holy", COMBAT_HOLYDAMAGE}, {"death", COMBAT_DEATHDAMAGE}, { "critical", COMBAT_CRITICAL },}; size_t combatTypeToIndex(CombatType_t combatType){ switch (combatType) { case COMBAT_PHYSICALDAMAGE: return 0; case COMBAT_ENERGYDAMAGE: return 1; case COMBAT_EARTHDAMAGE: return 2; case COMBAT_FIREDAMAGE: return 3; case COMBAT_UNDEFINEDDAMAGE: return 4; case COMBAT_LIFEDRAIN: return 5; case COMBAT_MANADRAIN: return 6; case COMBAT_HEALING: return 7; case COMBAT_DROWNDAMAGE: return 8; case COMBAT_ICEDAMAGE: return 9; case COMBAT_HOLYDAMAGE: return 10; case COMBAT_DEATHDAMAGE: return 11; case COMBAT_CRITICAL: return 12; default: return 0; }} 3. Definir o efeito e o dano do nosso combate Agora devemos definir como o nosso combate vai se comportar dizendo a cor do dano gerado e qual efeito associado a ele. Para isso, vamos até a função combatGetTypeInfo dentro de game.cpp. Dentro de switch (combatType), após o último combate e antes do default, vamos adicionar as características do nosso combate. O meu ficou assim: case COMBAT_CRITICAL: { color = TEXTCOLOR_MAYABLUE; effect = CONST_ME_NONE; break;} Isto é, meu tipo de combate crítico tem a cor azul maia e nenhum efeito. 4. Informar ao LUA seu novo tipo de combate O último passo é simplesmente enviar para o lua o novo tipo de combate. Para isso, vá até luascript.cpp e, logo abaixo de: registerEnum(COMBAT_DEATHDAMAGE) adicione: registerEnum(COMBAT_CRITICAL) Pronto, após seguir esses passos o seu novo tipo combate foi criado, referenciado, caracterizado e definido em lua. Para utilizá-lo basta chamá-lo no lugar certo COMBAT_CRITICAL. Bom, por hoje é só pessoal, espero que gostem. Abraços
    1 ponto
  5. Tungs

    OTP RETRO

    OtPokémon Retro [+] 8.54 Open Source. [+] Máximo 6 pokémons. [+] Boost Stone. [+] Shiny Stone. [+] Não contém level system. [+] Teleporte que torna morador de cidade. [+] Continentes: Kanto/Hoenn/Vip/johto. [+] Até a 4ª Geração e seus respectivos shinys. [+] OLD client [+] Em breve New [+] Varias Quest :Burned,pesadelos,farol,specialist,halloween,policial jenny,conquest,misterious,lugia e muito mais [+] Language system (!lang en, !lang pt, !lang es). [+] Correr "mais mensagem. [+] Addon System completo. [+] Sistema de sugestão (!sug + sua sugestão). [+] Sistema torneio 150+ -150 e johto. [+] Site: http://www.OTPretro.um sitezinho qualquer/ [+] Página: http://www.facebook.com/otpretro/ PRINTS: FAZENDO UPLOAD
    1 ponto
  6. DarkWore

    Proteção de OLD Client

    Olá Xtibia hoje vim publicar uma imagem de uma proteção que eu e meu amigo @Jair Kevick criamos/descobrimos, ela se baseia em alterar o formato aceito pelo cliente, embora não seja uma criptografia ela serve para dar certa segurança aos arquivos. Espero que tenham gostado.
    1 ponto
  7. DarkWore

    OTP RETRO

    Recomendo para quem quer um servidor sem PayToWin e com uma staff competente e cheio de quests e diversões.
    1 ponto
  8. DarkWore

    Proteção de OLD Client

    Não tenho em mente haha.
    1 ponto
  9. Poccnn

    [Resolvido] torneio Script

    _PREMIO = 0 do _PREMIO = _PREMIO+100 end print (_PREMIO) > 100
    1 ponto
  10. Tungs

    Proteção de OLD Client

    1 ponto
  11. Que legal. Ficou muito bom. Estou fazendo um baseado na mitologia cristã.
    1 ponto
  12. E ai,cara \o Tu vai ter que, no action do autoloot, adicionar os "comandos" para procurar mais items na mesma posição do item clicado, mas em outras stackpos(0, 255), 0 é o tile. Uma luz pra você: local pos = fromposlocal corpse = nilfor s = 1, 255 do pos.stackpos = s corpse = getThingfromPos(pos) if corpse and corpse.uid ~= 0 then --coletar itens do corpo endend
    1 ponto
  13. Nogard

    [Show OFF] Mapa Pokemon by Gabrieltxu

    aquela cerulean que você respeita!
    1 ponto
  14. local skills = { [sKILL_FIST] = {maxLevel = 249}, [sKILL_SWORD] = {maxLevel = 249}, [sKILL_AXE] = {maxLevel = 249}, [sKILL_CLUB] = {maxLevel = 249}, [sKILL_DISTANCE] = {maxLevel = 249}, [sKILL_SHIELD] = {maxLevel = 249}, [sKILL_FISHING] = {maxLevel = 249}, [sKILL__MAGLEVEL] = {maxLevel = 150},}function onAdvance(cid, skill, oldLevel, newLevel) local i = skills[skill] if i then if newLevel > i.maxLevel then doPlayerSetRate(cid, skill, 0.0) doPlayerSave(cid) return false end end return trueend tenta dar um save, mais fácil
    1 ponto
  15. lembrando que o jogador alvo precisa estar online, se vc observar nos seus erros eles aparecem após o logout
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...