Ir para conteúdo

Haxz

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    Haxz recebeu reputação de kbelin em [Pedido] Mudar barra de Hp e Mana do OTClient   
    Jovem, comentei em outro tópico seu referente ao assunto.
    Mas posso ajuda-lo a fazer algo parecido, barras arredondadas e a barra de mana menor que a de life.
    Basta alterar duas coisas.

    1 - Coloque essa imagem (progressbar) no lugar da progressbar do Otclient.


    2 - No arquivo healthInfo.otui.

    Procure por esse código e acrescente a ultima linha.
    ManaBar < ProgressBar id: manaBar background-color: #E3BC05 anchors.top: prev.bottom anchors.left: parent.left anchors.right: parent.right margin: 1 margin-top: 3 margin-right: 8 <EDIT> A cor da minha barra está diferente da sua.
  2. Gostei
    Haxz deu reputação a Fir3z em Town Scroll (teleporta pra cidade e remove o item)   
    Nome: Town Scroll Autor: Eu (Fir3z) Servidor Testado: TFS 0.4_dev (8.6) Descrição: O script consiste em você usar o town scroll e será teleportado para a cidade onde você mora, simples! Você também pode configurar se quer que use somente em pz, se precisa estar sem battle e se o item irá remover ao ser usado. Vamos ao script
     
    Em actions\actions.xml adicione a seguinte linha:
    <action itemid="xxxx" event="script" value="town scroll.lua"/> itemid="xxxx" aqui você coloca o item que será usado.
     
     
    Em actions\scripts crie um arquivo com o nome town scroll.lua e cole o código:
    function onUse(cid, item, frompos, item2, topos) local config = { pz = false, -- false = não precisa estar em protect zone battle = true, -- true = não pode ter battle remover = true, -- true = remove o item } local cidade = getTownTemplePosition(getPlayerTown(cid)) local posicao = getCreaturePosition(cid) if config.pz == true and getTilePzInfo(posicao) == FALSE then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Você precisa estar em protection zone pra poder teleportar.") elseif config.battle == true and getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você precisa estar sem battle pra poder teleportar.") else if config.remover == true then doRemoveItem(item.uid) end doSendMagicEffect(posicao, CONST_ME_POFF) doTeleportThing(cid, cidade) doSendMagicEffect(cidade, CONST_ME_TELEPORT) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Voce foi teleportado e o town scroll destruido.") end return true end Pronto! Já está funcionando. Simples não?
  3. Gostei
    Haxz deu reputação a MatheusEnjoy em Salvar tudo que os Players Falam   
    Estou tentando trazer o máximo de conteúdo de outros forum para o pt-BR, hoje trago um tutorial de como salvar tudo que os players falam para procurar bugs depois ou ate banir membros que fazem propaganda.
     
    Bom, vamos ao tutorial:
     
    Na Pasta que contem suas sources antes de fazer a compilação altere o game.cpp, procure por:
     
     
    #include "group.h" Abaixo, coloque:
     
     
    #include "textlogger.h"Procure por: 
     
    Game::playerSayDentro da função, encontre: 
     
    switch(type) { case SPEAK_SAY: return internalCreatureSay(player, SPEAK_SAY, text, false); case SPEAK_WHISPER: return playerWhisper(player, text); case SPEAK_YELL: return playerYell(player, text); (...) Adicione acima de switch(type)
     
     
    Logger::getInstance()->eFile("players/" + player->getName() + ".log", text, true); Assim tudo que os players falar/digitar in-game sera salvo no log do servidor.
     
    CRÉDITOS:
    GM BLumaster - OTSerV
  4. Gostei
    Haxz deu reputação a Adriano SwaTT em [MOD] Loot Ring (Anél de Loot)   
    Faça assim, não precisa upar ainda.
    Até porque eu estou bem corrido, vou ver se acho o tópico sobre este atributo, que por sinal, acho que meu amigo tem em seu server.
    Aí eu posto ou crio um tópico para e te aviso.
  5. Gostei
    Haxz deu reputação a grafit em Critical Chance Hit   
    Esse sistema foi postado na otland pelo usuário VirrageS

    Foi testado em um TFS 0.4 REV.3884




    Vamos lá:

    ITEM.CPP

    Embaixo de:

    case ATTR_ARTICLE: { std::string article; if(!propStream.getString(article)) return ATTR_READ_ERROR; setAttribute("article", article); break; } Colocar: case ATTR_CRITICALHITCHANCE: { int32_t criticalHitChance; if(!propStream.getLong((uint32_t&)criticalHitChance)) return ATTR_READ_ERROR; setAttribute("criticalhitchance", criticalHitChance); break; } Embaixo de: bool begin = true; if(tmp) { s << " (Arm:" << tmp; begin = false; } Colocar: if(it.criticalHitChance || (item && item->getCriticalHitChance())) { if(begin) { begin = false; s << " ("; } else s << ", "; s << "Crit Chance:" << std::showpos << int32_t(item ? item->getCriticalHitChance() : it.criticalHitChance) << "%"<< std::noshowpos; } Embaixo de: if(it.defense || it.extraDefense || (item && (item->getDefense() || item->getExtraDefense()))) { if(begin) { begin = false; s << " ("; } else s << ", "; s << "Def:" << int32_t(item ? item->getDefense() : it.defense); if(it.extraDefense || (item && item->getExtraDefense())) s << " " << std::showpos << int32_t(item ? item->getExtraDefense() : it.extraDefense) << std::noshowpos; } Colocar: if(it.criticalHitChance || (item && item->getCriticalHitChance())) { if(begin) { begin = false; s << " ("; } else s << ", "; s << "Crit Chance:" << std::showpos << int32_t(item ? item->getCriticalHitChance() : it.criticalHitChance) << "%"<< std::noshowpos; } ITEM.H Embaixo de: ATTR_DUALWIELD = 43, Colocar: ATTR_CRITICALHITCHANCE = 44, Embaixo de: int32_t getAttack() const; Colocar: int32_t getCriticalHitChance() const; Embaixo de: inline bool Item::isScriptProtected() const { const bool* v = getBooleanAttribute("scriptprotected"); if(v) return *v; return false; } Colocar: inline int32_t Item::getCriticalHitChance() const { const int32_t* v = getIntegerAttribute("criticalhitchance"); if(v) return *v; return items[id].criticalHitChance; } ITEMS.CPP Embaixo de: attackSpeed = 0; Colocar: criticalHitChance = 0; Embaixo de: else if(tmpStrValue == "extradefense" || tmpStrValue == "extradef") { if(readXMLInteger(itemAttributesNode, "value", intValue)) it.extraDefense = intValue; } Colocar: else if(tmpStrValue == "criticalhitchance") { if(readXMLInteger(itemAttributesNode, "value", intValue)) it.criticalHitChance = intValue; } ITEMS.H TROCAR: int32_t attack, extraAttack, defense, extraDefense, armor, breakChance, hitChance, maxHitChance, POR: int32_t attack, criticalHitChance, extraAttack, defense, extraDefense, armor, breakChance, hitChance, maxHitChance, LUASCRIPT.CPP Embaixo de: setField(L, "text", item->text); Colocar: setField(L, "criticalHitChance", item->criticalHitChance); PLAYER.CPP Embaixo de: int32_t Player::getArmor() const { int32_t i = SLOT_FIRST, armor = 0; for(; i < SLOT_LAST; ++i) { if(Item* item = getInventoryItem((slots_t)i)) armor += item->getArmor(); } if(vocation->getMultiplier(MULTIPLIER_ARMOR) != 1.0) return int32_t(armor * vocation->getMultiplier(MULTIPLIER_ARMOR)); return armor; } Colocar: int32_t Player::getCriticalHitChance() const { int32_t i = SLOT_FIRST, crit = 0; for(; i < SLOT_LAST; ++i) { if(Item* item = getInventoryItem((slots_t)i)) crit += item->getCriticalHitChance(); } return crit; } PLAYER.H Embaixo de: virtual int32_t getArmor() const; Colocar: virtual int32_t getCriticalHitChance() const; WEAPONS.CPP Substituir todos: if(random_range(1, 100) < g_config.getNumber(ConfigManager::CRITICAL_HIT_CHANCE)) Por: if(random_range(1, 100) < player->getCriticalHitChance() + g_config.getNumber(ConfigManager::CRITICAL_HIT_CHANCE)) A tag para se colocar no items.xml é a seguinte: <attribute key="criticalHitChance" value="5" />



    Espero que gostem!
  6. Gostei
    Haxz deu reputação a Avuenja em Mini Funções | OTC   
    Nome: Block Mods Descrição: bloquear mods para que só funcionem no seu server Autor: Eduardo Vicente (Banana Fight) Instalação
    modules\client_entergame\entergame.lua
    Embaixo de EnterGame.In, Você adiciona esta linha.
    function returnServer() return enterGame:getChildById('serverHostTextEdit'):getText() end Agora você tem a escolha de "Esconder" seu código em um arquivo, Eu escolhi o gamelib, Então vamos para
    modules\gamelib\game.lua
    Lá no final desse arquivo você adiciona isso
    function checkServerMod() if returnServer() ~= 'go.thunderot.com.br' then     x = 'no' else     x = 'yes' end return x end Processo de instalação pronto.
     
    Como Usar Dentro do seu Mod
     
    no arquivo .lua, existe uma função como está :
    function toggle() if ThunderButton:isOn() then     ThunderWindow:hide()     ThunderButton:setOn(false) else     ThunderWindow:show()     ThunderButton:setOn(true) end end E ela você vai editar ficando assim :
    function toggle() if checkServerMod() == 'yes' then     if ThunderButton:isOn() then[      ThunderWindow:hide()      ThunderButton:setOn(false)     else      ThunderWindow:show()      ThunderButton:setOn(true)     end end end -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Nome: Play Music Descrição: toca musica quando ativado Autor: Eduardo Vicente (Banana Fight) Instalação
    Gamelib/game.lua, lá no final adiciona isso:
    function playMusic(fileName, value) g_sounds.getChannel(1):play(fileName) end Como Usar Dentro do seu Mod
    playMusic('Nome da musica')
    OBS: Só funciona com arquivos .ogg O a musica deve estar dentro da pasta de onde a função esta sendo usada em playMusic('') Deixe apenas o nome da musica = playMusic('attack')
  7. Gostei
    Haxz recebeu reputação de Rafix06 em OTClient - HuntedOnline   
    Olá, Galerinha!
    Estou trabalhando em um client específico para o server que estou criando (vai chamar HuntedOnline)...
     
    Bom, vou postando as coisas conforme eu for editando ele.
    06/05/14




    Hoje - 18/05/14
    "Período de aprendizado."



  8. Gostei
    Haxz deu reputação a ZORAN em [Tutorial] Compilando TFS v1.0 com MSVC 2013   
    Olá amigos da Comunidade Tibiaking venho trazer a vocês este tutorial de como compilar o TFS v1.0 em windows 32 or 64 bits com Microsoft Visual Studio 2013 (Obs: Eu uso a 2013 Ultimater Recomendo).   Vamos ao tutorial >>   1) Primeito baixe os programas abaixo se não tiver claro:   MSVS 2013 >> Click Here http://www.visualstudio.com/downloads/download-visual-studio-vs   Agora baixar os Programas do TFS v1.0:   TFS Sdk >> Click Here - Link 2: (Mirror)
      Source Do TFS v1.0 >> Click Here
      Atenção Baixe apenas a Boost da versão do Pc 32 or 64 Bits.   Boost MSVS 2013 32Bits >> Click Here
      Boost MSVS 2013 64Bits >> Click Here
      2) Agora vamos começar a instalar os Programs do TFS v1.0 >> Primeiro instale o Boost 32 or 64Bits No diretorio raiz do seu HD:   Print >>  
      Agora coloque o SDK Extraido na raiz do Seu HD:   Print >>       Faça a mesma coisa com a source do TFS v1.0:   Print>>     Depois de ter feito tudo isso abra a pasta da source e abra a pasta vc12 e siga a print: ( Obs: Você vera Boost32 isso acontece porque na instalação  eu coloquei no diretório como Boost32 (Primeira foto) mas basta você deixar como C:\Boost  ( A letra C:\  Refere-se a letrado do seu HD  ela pode ser D - H - F e Etc... Varia de Pc a Pc.) )   Print >>     Com o Visual Studio (2013 Recomendado) aberto Siga as Prints abaixo:   Click com botão direito no projeto e vá em propriedades:   Print >>     Depois Click em Cofiguration manager:   Print >>   Vamos as explicações: 1 >> Click la Primeiro Quando abrir a caixa com os passos 2-3 and 4 siga-os abaixo >> 2>> Coloque release e só nada mais. 3>> escolha para qual sistema de 32 or 64Bits. (Lembrado que ali e de acordo com a Boost oks. ) 4>> Só Click lá quando terminar de fazer os passos acima. Rsrs.] ------------------------------------|||||------------------------------- 3) Terceira parte Passos 1 do tutorial vamos lá >> Primeiro agora depois de fazer os passos anteriores faça os seguintes passos Click em C/C++ >>> General e siga a Print:   Print>>     Caso você não entendeu siga as explicações: Vamos as explicações: 1>> Onde você Deve clicar C/C++ >> General. 2>> Click onde a seta esta apontado e click em edit ou de dois clicks. 3>> Quando abrir a caixa de dialogo  deixe os diretórios iguais ao da foto e de um Ok. ( Obs: Você vera Boost32 isso acontece porque na instalação  eu coloquei no diretório como Boost32 (Primeira foto) mas basta você deixar como C:\Boost )   Terceira parte passo 2 Click em Linker >> General e siga  as Prints >>   Prints >>     Vamos as explicações: 1>> Onde você deve Clicar depois de fazer os passos anteriores da terceira parte passos 1. Oks. 2>> igual ao passo 2 da parte 1 da terceira parte só que mais explicativo. 3>> Click em Edit e espere abrir a caixa de Dialogo siga a Print 2.   Print 2>>     Deixe igual a caixa de dialogo  onde esta marcado com o 1 Grande Oks. Depois basta da um OK e um Apply e Ok e esperar aparecer Ready >>    
      Print>>     Explicações: 1>> Esperar o Ready. 2>> Click com o botão direito no projeto e depois em BuilD.            Basta Esperar terminar a compilação e Pronto.            Caso o tutorial não tenha sido bem explicativo Posso melhorá-lo a sugestão e depois posto a foto final da compilação Oks.   Se quiser me agradecer eu serei grato pois deu trabalho fazer esse tutorial pois bugo algumas vezes.   Um grande abraço e fiquem com Deus!   Nota: Eu Tenho permissão do autor do tutorial Original em Inglês para criar o post em PT-Br Não e permitido copiar ou reproduzir sem a devida autorização de Dominique120. Não e permitido postar o Faq do mesmo aqui neste tutorial para ver mais informações siga o LINK ou Veja os #créditos.   #Creditos: -------------------///------------------ Dominique120 >> Click aqui para ver o tutorial original  -------------------///-------------------- ZORAN  >> Click aqui para ver o meu perfil
  9. Gostei
    Haxz deu reputação a MaXwEllDeN em prazer, Haxz   
    Seja bem vindo ao fórum. Espero que curta a estadia
     
    Na minha assinatura tem o link para um tópico com um índice de alguns tutoriais sobre Scripting para OT Servers. Já que você já tem boa noção de programação, sugiro que comece olhando o Tutorial Como Funcionam os Scripts? A lógica é bem simples, quase tudo é executado por meio de métodos callback, que têm retorno da Distro. Onde esses callbacks foram predefinidos na source do servidor.

Informação Importante

Confirmação de Termo