• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    [Codigo] [OTClient] Cliente Mehah Modificaciones

    Compartir:

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    samsung123

    samsung123
    Miembro
    Miembro
    Contenido escribió:1.- Cambio de titulo al cliente
    2 .-Añadir Discord al cliente
    3.- cambiar nombre a los skills
    4.- battle list lo mas parecido posible al cliente Old
    5.- modulo con hypervinculo a una web
    6.- Agregar la Ip al servidor
    7.- Encryptacion
    8.- Cambiar el color del nombre si eres GM



    Github: [Tienes que estar registrado y conectado para ver este vínculo]
    Creditos: Mehah

    1.- Cambio de titulo al cliente

    \src\main.cpp




    Modificar este codigo

    Código:
       g_app.setName("OTClient - Redemption");
        g_app.setCompactName("otclient");
        g_app.setOrganizationName("otbr");

    Nombre del player en el titulo


    modules\game_interface\gameinterface.lua


    añadir en funtion show() en linea 262, despues de  logoutButton:setTooltip(tr('Logout'))

    Código:
      local name = g_game.getCharacterName()
      g_window.setTitle(name .. ' - ' .. g_app.getName())




    Código:
    function show()

    ...

        updateStretchShrink()
        logoutButton:setTooltip(tr('Logout'))
     
      local name = g_game.getCharacterName()
      g_window.setTitle(name .. ' - ' .. g_app.getName())






    2.- Añadir Discord al cliente

    Ejemplo

    [Codigo] [OTClient] Cliente Mehah Modificaciones Imagen10



    Prefiera github
    [Tienes que estar registrado y conectado para ver este vínculo]
    Creditos discord user: ItaloCF#1208
    Creditos Github user: SkullzOTS


    lo dejo en oculto porque mehah lo integro de forma oficial al cliente , no necesitas editar las sourcer.

    lo dejo en oculto, como respaldo











    3.- Cambiar nombre a los skills



    modules/game_skills/skills.otui



    cambiar esos textos



    Código:
           !text: tr('Club Fighting')





    4.- battle list lo mas parecido posible al cliente Old



    (sin ocultar monster, NPC, party , player)
    (sin orden de nombre,distancia, vida)

    Tal y cual como el cliente CipSoft 



    \modules\game_battle\battle.otui




    Código:
    BattleIcon < UICheckBox
      size: 20 20
      image-color: white
      image-rect: 0 0 20 20

      $hover !disabled:
        color: #cccccc

      $!checked:
        image-clip: 0 0 20 20

      $hover !checked:
        image-clip: 0 40 20 20

      $checked:
        image-clip: 0 20 20 20

      $hover checked:
        image-clip: 0 60 20 20

      $disabled:
        image-color: #ffffff88

    BattlePlayers < BattleIcon
      image-source: /images/game/battle/battle_players
      visible:false

    BattleNPCs < BattleIcon
      image-source: /images/game/battle/battle_npcs
      visible:false
    BattleMonsters < BattleIcon
      image-source: /images/game/battle/battle_monsters
      visible:false
    BattleSkulls < BattleIcon
      image-source: /images/game/battle/battle_skulls
      visible:false
    BattleParty < BattleIcon
      image-source: /images/game/battle/battle_party
      visible:false
    MiniWindow
      id: battleWindow
      !text: tr('Battle')
      draggable: false
      height: 166
      image-border: 25
      icon: /images/topbuttons/battle
      @onClose: modules.game_battle.onMiniWindowClose()
      &save: true
      &autoOpen: true

      Panel
        id: filterPanel
        margin-top: 26
        anchors.top: parent.top
        anchors.left: parent.left
        anchors.right: miniwindowScrollBar.left
        height: 45

        Panel
          id: buttons
          anchors.top: parent.top
          anchors.horizontalCenter: parent.horizontalCenter
          height: 20
          width: 120
          layout:
            type: horizontalBox
            spacing: 5

          BattlePlayers
            id: hidePlayers
            !tooltip: tr('Hide players')
            @onCheckChange: modules.game_battle.checkCreatures()

          BattleNPCs
            id: hideNPCs
            !tooltip: tr('Hide Npcs')
            @onCheckChange: modules.game_battle.checkCreatures()

          BattleMonsters
            id: hideMonsters
            !tooltip: tr('Hide monsters')
            @onCheckChange: modules.game_battle.checkCreatures()

          BattleSkulls
            id: hideSkulls
            !tooltip: tr('Hide non-skull players')
            @onCheckChange: modules.game_battle.checkCreatures()

          BattleParty
            id: hideParty
            !tooltip: tr('Hide party members')
            @onCheckChange: modules.game_battle.checkCreatures()

        Panel
          id: sortPanel
          anchors.top: prev.bottom
          anchors.left: parent.left
          anchors.right: parent.right
          height: 20
          margin-top: 6

          ComboBox
            id: sortTypeBox
            width: 90
            anchors.top: parent.top
            anchors.left: prev.right
            anchors.horizontalCenter: parent.horizontalCenter
            margin-left: -31

          ComboBox
            id: sortOrderBox
            width: 60
            anchors.top: parent.top
            anchors.left: prev.right
            margin-left: 4

      Panel
        height: 18
        anchors.top: prev.bottom
        anchors.left: parent.left
        anchors.right: miniwindowScrollBar.left
        margin-top: 4

        UIWidget
          id: toggleFilterButton
          anchors.top: prev.top
          width: 21
          anchors.horizontalCenter: parent.horizontalCenter

          image-rect: 0 0 21 12
          image-clip: 21 0 21 12
          @onClick: modules.game_battle.toggleFilterPanel()
          phantom: false

      HorizontalSeparator
        anchors.top: prev.top
        anchors.left: parent.left
        anchors.right: miniwindowScrollBar.left
        margin-right: 1
     
        margin-top: -5


      MiniWindowContents
        anchors.top: prev.bottom
        margin-top: 6

        Panel
          id: battlePanel
          anchors.left: parent.left
          anchors.right: parent.right
          anchors.top: parent.top
          margin-top: 5
          padding-right: 5
          layout:
            type: verticalBox
            fit-children: true







    \modules\game_battle\battle.lua


    Código:
    battleWindow = nil
    battleButton = nil
    battlePanel = nil
    filterPanel = nil
    sortPanel = nil
    toggleFilterButton = nil
    lastBattleButtonSwitched = nil
    battleButtonsByCreaturesList = {}
    creatureAgeList = {}

    mouseWidget = nil

    sortTypeBox = nil
    sortOrderBox = nil
    hidePlayersButton = nil
    hideNPCsButton = nil
    hideMonstersButton = nil
    hideSkullsButton = nil
    hidePartyButton = nil

    function init()

      g_ui.importStyle('battlebutton')
      battleButton = modules.client_topmenu.addRightGameToggleButton('battleButton', tr('Battle') .. ' (Ctrl+B)', '/images/topbuttons/battle', toggle)
      battleButton:setOn(true)
      battleWindow = g_ui.loadUI('battle', modules.game_interface.getRightPanel())
      g_keyboard.bindKeyDown('Ctrl+B', toggle)

      -- this disables scrollbar auto hiding
      local scrollbar = battleWindow:getChildById('miniwindowScrollBar')
      scrollbar:mergeStyle({ ['$!on'] = { }})

      battlePanel = battleWindow:recursiveGetChildById('battlePanel')
      sortPanel = battleWindow:recursiveGetChildById('sortPanel')
      filterPanel = battleWindow:recursiveGetChildById('filterPanel')
      toggleFilterButton = battleWindow:recursiveGetChildById('toggleFilterButton')

      if isHidingFilters() then
        hideFilterPanel()
      end

      sortTypeBox = battleWindow:recursiveGetChildById('sortTypeBox')
      sortOrderBox = battleWindow:recursiveGetChildById('sortOrderBox')
      hidePlayersButton = battleWindow:recursiveGetChildById('hidePlayers')
      hideNPCsButton = battleWindow:recursiveGetChildById('hideNPCs')
      hideMonstersButton = battleWindow:recursiveGetChildById('hideMonsters')
      hideSkullsButton = battleWindow:recursiveGetChildById('hideSkulls')
      hidePartyButton = battleWindow:recursiveGetChildById('hideParty')

      mouseWidget = g_ui.createWidget('UIButton')
      mouseWidget:setVisible(false)
      mouseWidget:setFocusable(false)
      mouseWidget.cancelNextRelease = false

      battleWindow:setContentMinimumHeight(80)

      sortTypeBox:addOption('Name', 'age')
      sortTypeBox:addOption('Distance', 'age')
      sortTypeBox:addOption('Age', 'age')
      sortTypeBox:addOption('Health', 'age')
      sortTypeBox:setCurrentOptionByData(getSortType())
      sortTypeBox.onOptionChange = onChangeSortType

      sortOrderBox:addOption('Asc.', 'asc')
      sortOrderBox:addOption('Desc.', 'desc')
      sortOrderBox:setCurrentOptionByData(getSortOrder())
      sortOrderBox.onOptionChange = onChangeSortOrder

      connect(Creature, {
        onSkullChange = updateCreatureSkull,
        onEmblemChange = updateCreatureEmblem,
        onOutfitChange = onCreatureOutfitChange,
        onHealthPercentChange = onCreatureHealthPercentChange,
        onPositionChange = onCreaturePositionChange,
        onAppear = onCreatureAppear,
        onDisappear = onCreatureDisappear
      })

      connect(LocalPlayer, {
        onPositionChange = onCreaturePositionChange
      })

      connect(g_game, {
        onAttackingCreatureChange = onAttack,
        onFollowingCreatureChange = onFollow,
        onGameEnd = removeAllCreatures
      })

      checkCreatures()
      battleWindow:setup()
    end

    function terminate()
      g_keyboard.unbindKeyDown('Ctrl+B')
      battleButtonsByCreaturesList = {}
      battleButton:destroy()
      battleWindow:destroy()
      mouseWidget:destroy()

      disconnect(Creature, {
        onSkullChange = updateCreatureSkull,
        onEmblemChange = updateCreatureEmblem,
        onOutfitChange = onCreatureOutfitChange,
        onHealthPercentChange = onCreatureHealthPercentChange,
        onPositionChange = onCreaturePositionChange,
        onAppear = onCreatureAppear,
        onDisappear = onCreatureDisappear
      })

      disconnect(LocalPlayer, {
        onPositionChange = onCreaturePositionChange
      })

      disconnect(g_game, {
        onAttackingCreatureChange = onAttack,
        onFollowingCreatureChange = onFollow,
        onGameEnd = removeAllCreatures
      })
    end

    function toggle()
      if battleButton:isOn() then
        battleWindow:close()
        battleButton:setOn(false)
      else
        battleWindow:open()
        battleButton:setOn(true)
      end
    end

    function onMiniWindowClose()
      battleButton:setOn(false)
    end

    function getSortType()
      local settings = g_settings.getNode('BattleList')
      if not settings then
      hideFilterPanel()
        return 'age'
      end
      return settings['sortType']
    end

    function setSortType(state)
      settings = {}
      settings['sortType'] = state
      g_settings.mergeNode('BattleList', settings)

      checkCreatures()
    end

    function getSortOrder()
      local settings = g_settings.getNode('BattleList')
      if not settings then
        return 'asc'
      end
      return settings['sortOrder']
    end

    function setSortOrder(state)
      settings = {}
      settings['sortOrder'] = state
      g_settings.mergeNode('BattleList', settings)

      checkCreatures()
    end

    function isSortAsc()
        return getSortOrder() == 'asc'
    end

    function isSortDesc()
        return getSortOrder() == 'desc'
    end

    function isHidingFilters()
      local settings = g_settings.getNode('BattleList')
      if not settings then
        return false
      end
      return settings['hidingFilters']
    end

    function setHidingFilters(state)
      settings = {}
      settings['hidingFilters'] = state
      g_settings.mergeNode('BattleList', settings)
    end

    function hideFilterPanel()
      filterPanel.originalHeight = filterPanel:getHeight()
      filterPanel:setHeight(0)
      toggleFilterButton:getParent():setMarginTop(0)
      toggleFilterButton:setImageClip(torect("0 0 21 12"))
      setHidingFilters(true)
      filterPanel:setVisible(false)
    end

    function showFilterPanel()
      toggleFilterButton:getParent():setMarginTop(5)
      filterPanel:setHeight(filterPanel.originalHeight)
      toggleFilterButton:setImageClip(torect("21 0 21 12"))
      setHidingFilters(false)
      filterPanel:setVisible(true)
    end



    function onChangeSortType(comboBox, option)
      setSortType(option:lower())
    end

    function onChangeSortOrder(comboBox, option)
      -- Replace dot in option name
      setSortOrder(option:lower():gsub('[.]', ''))
    end

    function checkCreatures()
      removeAllCreatures()

      if not g_game.isOnline() then
        return
      end

      local player = g_game.getLocalPlayer()
      local spectators = g_map.getSpectators(player:getPosition(), false)
      for _, creature in ipairs(spectators) do
        if doCreatureFitFilters(creature) then
          addCreature(creature)
        end
      end
    end

    function doCreatureFitFilters(creature)
      if creature:isLocalPlayer() then
        return false
      end

      local pos = creature:getPosition()
      if not pos then return false end

      local localPlayer = g_game.getLocalPlayer()
      if pos.z ~= localPlayer:getPosition().z or not creature:canBeSeen() then return false end
      return true
    end

    function doShowCreatureAtBattle(creature)
      if doCreatureFitFilters(creature) then
        local hidePlayers = hidePlayersButton:isChecked()
        local hideNPCs = hideNPCsButton:isChecked()
        local hideMonsters = hideMonstersButton:isChecked()
        local hideSkulls = hideSkullsButton:isChecked()
        local hideParty = hidePartyButton:isChecked()

        if hidePlayers and creature:isPlayer() then
          return false
        elseif hideNPCs and creature:isNpc() then
          return false
        elseif hideMonsters and creature:isMonster() then
          return false
        elseif hideSkulls and creature:isPlayer() and creature:getSkull() == SkullNone then
          return false
        elseif hideParty and creature:getShield() > ShieldWhiteBlue then
          return false
        end

        return true
      end
      return false
    end

    function onCreatureHealthPercentChange(creature, health)
      local battleButton = battleButtonsByCreaturesList[creature:getId()]
      if battleButton then
        if getSortType() == 'asdasdasd' then
          removeCreature(creature)
          addCreature(creature)
          return
        end
        battleButton:setLifeBarPercent(creature:getHealthPercent())
      end
    end

    local function getDistanceBetween(p1, p2)
        return math.max(math.abs(p1.x - p2.x), math.abs(p1.y - p2.y))
    end

    function onCreaturePositionChange(creature, newPos, oldPos)
      if creature:isLocalPlayer() then
        if oldPos and newPos and newPos.z ~= oldPos.z then
          checkCreatures()
        else
          -- Distance will change when moving, recalculate and move to correct index
          if getSortType() == 'asdasdasd' then
            local distanceList = {}
            for _, battleButton in pairs(battleButtonsByCreaturesList) do
              table.insert(distanceList, {distance = getDistanceBetween(newPos, battleButton.creature:getPosition()), widget = battleButton})
            end

            if isSortAsc() then
              table.sort(distanceList, function(a, b) return a.distance < b.distance end)
            else
              table.sort(distanceList, function(a, b) return a.distance > b.distance end)
            end

            for i = 1, #distanceList do
              battlePanel:moveChildToIndex(distanceList[i].widget, i)
            end
          end

          for _, battleButton in pairs(battleButtonsByCreaturesList) do
            addCreature(battleButton.creature)
          end
        end
      else
        local has = hasCreature(creature)
        local fit = doCreatureFitFilters(creature)
        if has and not fit then
          removeCreature(creature)
        elseif fit then
          if has and getSortType() == 'asdasdasd' then
            removeCreature(creature)
          end
          addCreature(creature)
        end
      end
    end

    function onCreatureOutfitChange(creature, outfit, oldOutfit)
      if doCreatureFitFilters(creature) then
        addCreature(creature)
      else
        removeCreature(creature)
      end
    end

    function onCreatureAppear(creature)
      if creature:isLocalPlayer() then
        addEvent(function()
          updateStaticSquare()
        end)
      end

      if doCreatureFitFilters(creature) then
        addCreature(creature)
      end
    end

    function onCreatureDisappear(creature)
      removeCreature(creature)
    end

    function hasCreature(creature)
      return battleButtonsByCreaturesList[creature:getId()] ~= nil
    end

    function addCreature(creature)
      local creatureId = creature:getId()
      local battleButton = battleButtonsByCreaturesList[creatureId]

      -- Register when creature is added to battlelist for the first time
      if not creatureAgeList[creatureId] then
        creatureAgeList[creatureId] = os.time()
      end

      if not battleButton then
        battleButton = g_ui.createWidget('BattleButton')
        battleButton:setup(creature)

        battleButton.onHoverChange = onBattleButtonHoverChange
        battleButton.onMouseRelease = onBattleButtonMouseRelease

        battleButtonsByCreaturesList[creatureId] = battleButton

        if creature == g_game.getAttackingCreature() then
          onAttack(creature)
        end

        if creature == g_game.getFollowingCreature() then
          onFollow(creature)
        end

        local inserted = false
        local nameLower = creature:getName():lower()
        local healthPercent = creature:getHealthPercent()
        local playerPosition = g_game.getLocalPlayer():getPosition()
        local distance = getDistanceBetween(playerPosition, creature:getPosition())
        local age = creatureAgeList[creatureId]

        local childCount = battlePanel:getChildCount()
        for i = 1, childCount do
          local child = battlePanel:getChildByIndex(i)
          local childName = child:getCreature():getName():lower()
          local equal = false
          if getSortType() == 'age' then
            local childAge = creatureAgeList[child:getCreature():getId()]
            if (age < childAge and isSortAsc()) or (age > childAge and isSortDesc()) then
              battlePanel:insertChild(i, battleButton)
              inserted = true
              break
            elseif age == childAge then
              equal = true
            end
          elseif getSortType() == 'asdasdasd' then
            local childDistance = getDistanceBetween(child:getCreature():getPosition(), playerPosition)
            if (distance < childDistance and isSortAsc()) or (distance > childDistance and isSortDesc()) then
              battlePanel:insertChild(i, battleButton)
              inserted = true
              break
            elseif childDistance == distance then
              equal = true
            end
          elseif getSortType() == 'asdasdasdasd' then
              local childHealth = child:getCreature():getHealthPercent()
              if (healthPercent < childHealth and isSortAsc()) or (healthPercent > childHealth and isSortDesc()) then
                battlePanel:insertChild(i, battleButton)
                inserted = true
                break
              elseif healthPercent == childHealth then
                equal = true
              end
          end

          -- If any other sort type is selected and values are equal, sort it by name also
          if getSortType() == 'asdasdasd' or equal then
              local length = math.min(childName:len(), nameLower:len())
              for j=1,length do
                if (nameLower:byte(j) < childName:byte(j) and isSortAsc()) or (nameLower:byte(j) > childName:byte(j) and isSortDesc()) then
                  battlePanel:insertChild(i, battleButton)
                  inserted = true
                  break
                elseif (nameLower:byte(j) > childName:byte(j) and isSortAsc()) or (nameLower:byte(j) < childName:byte(j) and isSortDesc()) then
                  break
                elseif j == nameLower:len() and isSortAsc() then
                  battlePanel:insertChild(i, battleButton)
                  inserted = true
                elseif j == childName:len() and isSortDesc() then
                  battlePanel:insertChild(i, battleButton)
                  inserted = true
                end
              end
          end

          if inserted then
            break
          end
        end

        -- Insert at the end if no other place is found
        if not inserted then
          battlePanel:insertChild(childCount + 1, battleButton)
        end
      else
        battleButton:setLifeBarPercent(creature:getHealthPercent())
      end

      local localPlayer = g_game.getLocalPlayer()
      battleButton:setVisible(localPlayer:hasSight(creature:getPosition()) and creature:canBeSeen() and doShowCreatureAtBattle(creature))
    end

    function removeAllCreatures()
      creatureAgeList = {}
      for _, battleButton in pairs(battleButtonsByCreaturesList) do
        removeCreature(battleButton.creature)
      end
    end

    function removeCreature(creature)
      if hasCreature(creature) then
        local creatureId = creature:getId()

        if lastBattleButtonSwitched == battleButtonsByCreaturesList[creatureId] then
          lastBattleButtonSwitched = nil
        end

        battleButtonsByCreaturesList[creatureId].creature:hideStaticSquare()
        battleButtonsByCreaturesList[creatureId]:destroy()
        battleButtonsByCreaturesList[creatureId] = nil
      end
    end

    function onBattleButtonMouseRelease(self, mousePosition, mouseButton)
      if mouseWidget.cancelNextRelease then
        mouseWidget.cancelNextRelease = false
        return false
      end
      if ((g_mouse.isPressed(MouseLeftButton) and mouseButton == MouseRightButton)
        or (g_mouse.isPressed(MouseRightButton) and mouseButton == MouseLeftButton)) then
        mouseWidget.cancelNextRelease = true
        g_game.look(self.creature, true)
        return true
      elseif mouseButton == MouseLeftButton and g_keyboard.isShiftPressed() then
        g_game.look(self.creature, true)
        return true
      elseif mouseButton == MouseRightButton and not g_mouse.isPressed(MouseLeftButton) then
        modules.game_interface.createThingMenu(mousePosition, nil, nil, self.creature)
        return true
      elseif mouseButton == MouseLeftButton and not g_mouse.isPressed(MouseRightButton) then
        if self.isTarget then
          g_game.cancelAttack()
        else
          g_game.attack(self.creature)
        end
        return true
      end
      return false
    end

    function onBattleButtonHoverChange(battleButton, hovered)
      if battleButton.isBattleButton then
        battleButton.isHovered = hovered
        updateBattleButton(battleButton)
      end
    end

    function onAttack(creature)
      local battleButton = creature and battleButtonsByCreaturesList[creature:getId()] or lastBattleButtonSwitched
      if battleButton then
        battleButton.isTarget = creature and true or false
        updateBattleButton(battleButton)
      end
    end

    function onFollow(creature)
      local battleButton = creature and battleButtonsByCreaturesList[creature:getId()] or lastBattleButtonSwitched
      if battleButton then
        battleButton.isFollowed = creature and true or false
        updateBattleButton(battleButton)
      end
    end

    function updateStaticSquare()
      for _, battleButton in pairs(battleButtonsByCreaturesList) do
        if battleButton.isTarget then
          battleButton:update()
        end
      end
    end

    function updateCreatureSkull(creature, skullId)
      local battleButton = battleButtonsByCreaturesList[creature:getId()]
      if battleButton then
        battleButton:updateSkull(skullId)
      end
    end

    function updateCreatureEmblem(creature, emblemId)
      local battleButton = battleButtonsByCreaturesList[creature:getId()]
      if battleButton then
        battleButton:updateSkull(emblemId)
      end
    end

    function updateBattleButton(battleButton)
      battleButton:update()
      if battleButton.isTarget or battleButton.isFollowed then
        -- set new last battle button switched
        if lastBattleButtonSwitched and lastBattleButtonSwitched ~= battleButton then
          lastBattleButtonSwitched.isTarget = false
          lastBattleButtonSwitched.isFollowed = false
          updateBattleButton(lastBattleButtonSwitched)
        end
        lastBattleButtonSwitched = battleButton
      end
    end










    5.- modulo con hypervinculo a una web


    Agregar nueva capeta al dir modules "game_website"

    en el lua remplace "google.cl" por su site web


    website.lua


    Código:
    local websiteWindow = nil
    local websiteButton = nil


    function init()
      websiteWindow = g_ui.displayUI('website')
      websiteWindow:hide()

      websiteButton = modules.client_topmenu.addRightButton('websiteButton', tr('Discord'), 'website', toggle) -- id, description, icon, callback

      websiteWindow.onEnter = hide
      websiteWindow.onEscape = hide

    end

    function website()
      g_platform.openUrl("https://discord.com/invite/ejsnRjW")
    end

    function terminate()
      websiteWindow:destroy()
      websiteButton:destroy()
    end

    function toggle()
        if websiteWindow:isVisible() then
           website()
            websiteWindow:hide()
        else
            website()
            websiteWindow:show()
        end
    end

    function hide()
        websiteWindow:hide()
        websiteButton:setOn(false)
    end



    website.otmod




    Código:
    Module
      name: game_website
      description: Website Button
      author: Sarukimoto
      website: http://otland.net
      sandboxed: true
      autoload: true
      autoload-priority: 1000
      scripts: [ website ]
      @onLoad: init()
      @onUnload: terminate()



    website.otui




    Código:
    Label
      id: websiteWindow
      !text: tr('')
      size: 115 34

      @onClick: website()


    y guardar  esta foro con el nombre "website.png" o  hacer otra a gusto propio de 32x32 en .png y el nombre "website.png"

    [Codigo] [OTClient] Cliente Mehah Modificaciones Websit10




    Creditos : sarukimoto ? creo















    6.- Agregar la Ip al servidor



    Init.lua line 63
    agregar esto y modificar donde dice IP
    Código:
    EnterGame.setUniqueServer("ip", 7171, 800)








    6.- ENCRYPTION SYSTEM


    src/client/config.h

    Paso 1
    Código:
    #define ENABLE_ENCRYPTION 1
    #define ENABLE_ENCRYPTION_BUILDER 1
    #define ENCRYPTION_PASSWORD "SET_YOUR_PASSWORD_HERE"

    Paso 2
    Compilar

    paso 3.

    COPIAR data, modules, .exe , init.lua y pegar en una nueva carpeta 1

    Paso 4

    abrir cmd 

    cd la carpeta 
    otclient.exe --encrypt

    Espera 1 minuto hasta que salga una ventana

    (no pierdas el tiempo abriendo ese .exe porque no abrirá)

    paso 5

    Compilar de nuevo

    Código:
    #define ENABLE_ENCRYPTION 1
    #define ENABLE_ENCRYPTION_BUILDER 0
    #define ENCRYPTION_PASSWORD "MIPW"

    paso 6





    Remplazar el .exe resultante a la Nueva capeta 1


    7.- Cambio de color si eres gm


    \src\client\creature.cpp

    Buscar setHealthPercent y remplazar



    Código:
    void Creature::setHealthPercent(uint8_t healthPercent)
    {
        if (m_healthPercent == healthPercent) return;

        if (healthPercent > 92)




    Código:
    void Creature::setHealthPercent(uint8_t healthPercent)
    {
        if (m_healthPercent == healthPercent) return;

       if (getName().find("[ADM]") != std::string::npos)
          m_informationColor = Color(0x9F, 0x5F, 0x9F);
       
       else if (getName().find("[GM]") != std::string::npos)
          m_informationColor = Color(0x00, 0xff, 0x0c);
       else if (getName().find("[HELP]") != std::string::npos)
          m_informationColor = Color(0xff, 0x00, 0x00);
       else if (healthPercent > 92)



    Última edición por samsung123 el Lun Ene 16, 2023 3:22 pm, editado 2 veces

    2 participantes

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    gracias or el aporte +1 (y)

    Da un gusto de ver que hay gente a un que quiere compartir y hacer crecer mas aun la comunidad



    [Codigo] [OTClient] Cliente Mehah Modificaciones YNU5B25
    2 participantes
    http://www.tibiaface.com

    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 1 de 1.)

    Permisos de este foro:
    No puedes responder a temas en este foro.

     

    BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).