Ir para conteúdo

Guilherme

Héroi
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    Guilherme recebeu reputação de alrtronca em sprite agua transparente   
    Só deus sabe, mas você pode encontrar ajudas na otland.net
    http://otland.net/threads/how-to-make-transparent-sprites.221250/tem esse tópico e alguns outros explicando como fazer, não é um tutorial e sim uma ajuda.
    Você pode conseguir baixar um executável já compilado com o alpha channel e fazer apenas a configuração nos modulos.
  2. Gostei
    Guilherme recebeu reputação de Kageyama em [C++] Color Name [DigiWo]   
    Por: BananaFight > DragonElement
     

    Depois de ver muitos pedidos, Resolvi doar em nome da equipe DigiWo o código que muda a cor do nome dos monstros.

    Este é uma versão 1.0 que não serve mais para o DigiWo por ja termos um sistema mais avançado.
    Instalação
    Creature.cpp procure por
    if(healthPercent > 92) Embaixo você muda para
    if (m_name == "Banana Fight"){             m_informationColor = Color(0xB2, 0x22, 0x22);         }else{             m_informationColor = Color(0x00, 0xBC, 0x00);         } Acho que deu de entender o que tem que fazer,
    Adicionando Nomes
    Isto representa o nome do monstro/player que terá a cor do nome alterada. (Sim, vai ter que cadastrar nome por nome nesse sistema.)
    if (m_name == "Banana Fight") Para adicionar mais nomes é só seguindo a logica
    if (m_name == "Banana Fight"){             m_informationColor = Color(0xB2, 0x22, 0x22);         }else if (m_name == "Demon"){             m_informationColor = Color(0xFF, 0xFF, 0xFF);         }else{             m_informationColor = Color(0x00, 0xBC, 0x00);         } E para colorir o resto das porcentagens a mesma coisa
    else if(healthPercent > 60)     if (m_name == "Banana Fight"){             m_informationColor = Color(0xB2, 0x22, 0x22);         }else{         m_informationColor = Color(0x50, 0xA1, 0x50); } Só recomendo que não mecha no ultimo, pois se não souber mexer pode dar erro.
    else         m_informationColor = Color(0x85, 0x0C, 0x0C); Adicionando Cores
    Isto representa a porcentagem de hp que o player ou monstro vai estar
    m_informationColor = Color(0x00, 0xBC, 0x00); Para mudar a cor você edita aqui :
    Color(0x00, 0xBC, 0x00) As corer funcionam da seguinte maneira (RGB)
    00 BC 00 < Está é uma cor RGB Hexadecimal
    Aqui um link com uma tabela: http://shibolete.tripod.com/RGB.html
    Você tem que pegar a cor hexadecimal e dividir em 3 partes
    #FFFF00 > FF FF 00
    Ai é só você preencher, Color(0xFF, 0xFF, 0x00) com cada letra/numero.
    Exemplo Final
    void Creature::setHealthPercent(uint8 healthPercent)[/center] {     if(healthPercent > 92)         if (m_name == "Banana Fight"){             m_informationColor = Color(0xB2, 0x22, 0x22);         }else{             m_informationColor = Color(0x00, 0xBC, 0x00);         }     else if(healthPercent > 60)         if (m_name == "Banana Fight"){             m_informationColor = Color(0xB2, 0x22, 0x22);         }else{         m_informationColor = Color(0x50, 0xA1, 0x50);         }     else if(healthPercent > 30)         if (m_name == "Banana Fight"){             m_informationColor = Color(0xB2, 0x22, 0x22);         }else{         m_informationColor = Color(0xA1, 0xA1, 0x00);         }     else if(healthPercent > 8)         if (m_name == "Banana Fight"){             m_informationColor = Color(0xB2, 0x22, 0x22);         }else{         m_informationColor = Color(0xBF, 0x0A, 0x0A);         }     else if(healthPercent > 3)         if (m_name == "Banana Fight"){             m_informationColor = Color(0xB2, 0x22, 0x22);         }else{         m_informationColor = Color(0x91, 0x0F, 0x0F);         }     else         m_informationColor = Color(0x85, 0x0C, 0x0C);     m_healthPercent = healthPercent;     callLuaField("onHealthPercentChange", healthPercent);     if(healthPercent <= 0)         onDeath(); }
  3. Curtir
    Guilherme recebeu reputação de Budrox em Projeto Charlover 2D   
    Eu acho que se você fizer em cima do OTC e lançar pra mobile, vai conseguir ganhar alguns jogadores do kakele. Hoje em dia tem muita gente atrás de jogo mobile
  4. Curtir
    Guilherme deu reputação a oclipper em [SOURCE] BOT OTClient (Free - COM CAVEBOT)   
    BOT ATUALIZAÇÃO 03MAR2022

    Mudanças
    _ Não precisa mais encontrar o rootPanel, agora é só desenhar a tela do tibia. Muito mais facil, agora da pra usar waypoints em qualquer ot rapidamente.
    _ Varias outras melhorias internas.

    Download Link: https://www.4shared.com/s/fe6Wmup49ea
    SCAN: https://www.virustotal.com/gui/file/61504ff82daa2b12c838894b19a33c5edd7c3a9c08c776b5abe1eb647c4e2c4d?nocache=1
     

  5. Curtir
    Guilherme recebeu reputação de CaduGTX em Mostrando suas Hunts   
    Por: BananaFight > DragonElement
     
    Bom, como acho que todos ja viram o map do servidor de poketibia (Pxg) ele mostra icones, nomes etc no minimap, e hoje vim trazer isso para vocês
    Nome: Map Icon Descrição: Adiciona um icone no minimap Autor: Eduardo Vicente (Banana Fight) Versão 1.0
    Features: Criar Icones no minimap
    Instalação
    dentro de modules/game_minimap/minimap.lua
     
    embaixo de :
     
    function toggle() if minimapButton:isOn() then     minimapWindow:close()     minimapButton:setOn(false) else     minimapWindow:open()     minimapButton:setOn(true) end end Você adiciona a função :
    function setMonsterCave(posx, posy, posz, icon, description) local pos = {} pos.x = posx pos.y = posy pos.z = posz minimapWidget:addFlag(pos, icon, description) end function removeMonsterCave(posx, posy, posz, icon, description) local pos = {} pos.x = posx pos.y = posy pos.z = posz minimapWidget:removeFlag(pos, icon, description) end Como usar
    setMonsterCave(Posição X do map, Posição Y do map,Posição Z do map, "Nome da Imagem", "Descrição que vai aparecer") Obs: como eu usei uma função que já existe você vai te que seguir um padrão na hora de adicionar o nome da sua imagem.
    Exemplo: O nome da minha imagem é "dragonicon.png", para que eu possa usar ela no script eu tenho que adicionar essa imagem dentro da pasta "data/images/game/minimap/", e vou ter que renomear essa imagem para "flagdragonicon.png", Ai depois de ter feito isso dentro do meu script quando eu for fazer o script adicionar essa imagem eu vou fazer da seguinte maneira :
     
    setMonsterCave(32238, 32240, 7, "dragonicon", "Dragon Cave")
     
     
    Se você ainda não entendeu é da seguinte forma, você tem uma imagem com nome "test.png", você vai adiciona a imagem no lugar certo, com o nome "flagtest.png", ai dentro do script você só usa "test", pois o script já sabe que vai ter que juntar flag+nome da imagem que você adicionou+.png.
     
     
    Obs 2: Sua imagem tem que ter o fundo transparente
     
    Obs 3: quando mais transparente for a imagem, mais do map aparece e causa o efeito igual ao do PXG, do map se abrindo.
     
    Exemplo de uso :
     
    arquivo : minimap.lua
    function init() minimapButton = modules.client_topmenu.addRightGameToggleButton('minimapButton', tr('Minimap') .. ' (Ctrl+M)', '/images/topbuttons/minimap', toggle) minimapButton:setOn(true) minimapWindow = g_ui.loadUI('minimap', modules.game_interface.getRightPanel()) minimapWindow:setContentMinimumHeight(64) minimapWidget = minimapWindow:recursiveGetChildById('minimap') local gameRootPanel = modules.game_interface.getRootPanel() g_keyboard.bindKeyPress('Alt+Left', function() minimapWidget:move(1,0) end, gameRootPanel) g_keyboard.bindKeyPress('Alt+Right', function() minimapWidget:move(-1,0) end, gameRootPanel) g_keyboard.bindKeyPress('Alt+Up', function() minimapWidget:move(0,1) end, gameRootPanel) g_keyboard.bindKeyPress('Alt+Down', function() minimapWidget:move(0,-1) end, gameRootPanel) g_keyboard.bindKeyDown('Ctrl+M', toggle) g_keyboard.bindKeyDown('Ctrl+Shift+M', toggleFullMap) minimapWindow:setup() connect(g_game, {     onGameStart = online,     onGameEnd = offline, }) connect(LocalPlayer, {     onPositionChange = updateCameraPosition }) if g_game.isOnline() then     online() setMonsterCave(32239, 32240, 7, "dragon", "hihi") removeMonsterCave(32239, 32240, 7, "dragon", "hihi") end end
  6. Gostei
    Guilherme recebeu reputação de jpma em Tibia logo template   
    Isso é um template pra o pessoal editar e criar sua própria logo do seu server baseado na logo do tibia.com
    Feito por mim e gostaria que se possível, não fosse removido o nome do tibiaking.
     
     
    Download: http://www.mediafire.com/download/25j524s9fnbrda3/tibialogoedited.psd
  7. Curtir
    Guilherme recebeu reputação de Cat em Pack de sprites free   
    Posta um preview das sprites amigo.
  8. Gostei
    Guilherme recebeu reputação de Vodkart em Mostrando suas Hunts   
    Por: BananaFight > DragonElement
     
    Bom, como acho que todos ja viram o map do servidor de poketibia (Pxg) ele mostra icones, nomes etc no minimap, e hoje vim trazer isso para vocês
    Nome: Map Icon Descrição: Adiciona um icone no minimap Autor: Eduardo Vicente (Banana Fight) Versão 1.0
    Features: Criar Icones no minimap
    Instalação
    dentro de modules/game_minimap/minimap.lua
     
    embaixo de :
     
    function toggle() if minimapButton:isOn() then     minimapWindow:close()     minimapButton:setOn(false) else     minimapWindow:open()     minimapButton:setOn(true) end end Você adiciona a função :
    function setMonsterCave(posx, posy, posz, icon, description) local pos = {} pos.x = posx pos.y = posy pos.z = posz minimapWidget:addFlag(pos, icon, description) end function removeMonsterCave(posx, posy, posz, icon, description) local pos = {} pos.x = posx pos.y = posy pos.z = posz minimapWidget:removeFlag(pos, icon, description) end Como usar
    setMonsterCave(Posição X do map, Posição Y do map,Posição Z do map, "Nome da Imagem", "Descrição que vai aparecer") Obs: como eu usei uma função que já existe você vai te que seguir um padrão na hora de adicionar o nome da sua imagem.
    Exemplo: O nome da minha imagem é "dragonicon.png", para que eu possa usar ela no script eu tenho que adicionar essa imagem dentro da pasta "data/images/game/minimap/", e vou ter que renomear essa imagem para "flagdragonicon.png", Ai depois de ter feito isso dentro do meu script quando eu for fazer o script adicionar essa imagem eu vou fazer da seguinte maneira :
     
    setMonsterCave(32238, 32240, 7, "dragonicon", "Dragon Cave")
     
     
    Se você ainda não entendeu é da seguinte forma, você tem uma imagem com nome "test.png", você vai adiciona a imagem no lugar certo, com o nome "flagtest.png", ai dentro do script você só usa "test", pois o script já sabe que vai ter que juntar flag+nome da imagem que você adicionou+.png.
     
     
    Obs 2: Sua imagem tem que ter o fundo transparente
     
    Obs 3: quando mais transparente for a imagem, mais do map aparece e causa o efeito igual ao do PXG, do map se abrindo.
     
    Exemplo de uso :
     
    arquivo : minimap.lua
    function init() minimapButton = modules.client_topmenu.addRightGameToggleButton('minimapButton', tr('Minimap') .. ' (Ctrl+M)', '/images/topbuttons/minimap', toggle) minimapButton:setOn(true) minimapWindow = g_ui.loadUI('minimap', modules.game_interface.getRightPanel()) minimapWindow:setContentMinimumHeight(64) minimapWidget = minimapWindow:recursiveGetChildById('minimap') local gameRootPanel = modules.game_interface.getRootPanel() g_keyboard.bindKeyPress('Alt+Left', function() minimapWidget:move(1,0) end, gameRootPanel) g_keyboard.bindKeyPress('Alt+Right', function() minimapWidget:move(-1,0) end, gameRootPanel) g_keyboard.bindKeyPress('Alt+Up', function() minimapWidget:move(0,1) end, gameRootPanel) g_keyboard.bindKeyPress('Alt+Down', function() minimapWidget:move(0,-1) end, gameRootPanel) g_keyboard.bindKeyDown('Ctrl+M', toggle) g_keyboard.bindKeyDown('Ctrl+Shift+M', toggleFullMap) minimapWindow:setup() connect(g_game, {     onGameStart = online,     onGameEnd = offline, }) connect(LocalPlayer, {     onPositionChange = updateCameraPosition }) if g_game.isOnline() then     online() setMonsterCave(32239, 32240, 7, "dragon", "hihi") removeMonsterCave(32239, 32240, 7, "dragon", "hihi") end end
  9. Gostei
    Guilherme recebeu reputação de Cat em Mostrando suas Hunts   
    Por: BananaFight > DragonElement
     
    Bom, como acho que todos ja viram o map do servidor de poketibia (Pxg) ele mostra icones, nomes etc no minimap, e hoje vim trazer isso para vocês
    Nome: Map Icon Descrição: Adiciona um icone no minimap Autor: Eduardo Vicente (Banana Fight) Versão 1.0
    Features: Criar Icones no minimap
    Instalação
    dentro de modules/game_minimap/minimap.lua
     
    embaixo de :
     
    function toggle() if minimapButton:isOn() then     minimapWindow:close()     minimapButton:setOn(false) else     minimapWindow:open()     minimapButton:setOn(true) end end Você adiciona a função :
    function setMonsterCave(posx, posy, posz, icon, description) local pos = {} pos.x = posx pos.y = posy pos.z = posz minimapWidget:addFlag(pos, icon, description) end function removeMonsterCave(posx, posy, posz, icon, description) local pos = {} pos.x = posx pos.y = posy pos.z = posz minimapWidget:removeFlag(pos, icon, description) end Como usar
    setMonsterCave(Posição X do map, Posição Y do map,Posição Z do map, "Nome da Imagem", "Descrição que vai aparecer") Obs: como eu usei uma função que já existe você vai te que seguir um padrão na hora de adicionar o nome da sua imagem.
    Exemplo: O nome da minha imagem é "dragonicon.png", para que eu possa usar ela no script eu tenho que adicionar essa imagem dentro da pasta "data/images/game/minimap/", e vou ter que renomear essa imagem para "flagdragonicon.png", Ai depois de ter feito isso dentro do meu script quando eu for fazer o script adicionar essa imagem eu vou fazer da seguinte maneira :
     
    setMonsterCave(32238, 32240, 7, "dragonicon", "Dragon Cave")
     
     
    Se você ainda não entendeu é da seguinte forma, você tem uma imagem com nome "test.png", você vai adiciona a imagem no lugar certo, com o nome "flagtest.png", ai dentro do script você só usa "test", pois o script já sabe que vai ter que juntar flag+nome da imagem que você adicionou+.png.
     
     
    Obs 2: Sua imagem tem que ter o fundo transparente
     
    Obs 3: quando mais transparente for a imagem, mais do map aparece e causa o efeito igual ao do PXG, do map se abrindo.
     
    Exemplo de uso :
     
    arquivo : minimap.lua
    function init() minimapButton = modules.client_topmenu.addRightGameToggleButton('minimapButton', tr('Minimap') .. ' (Ctrl+M)', '/images/topbuttons/minimap', toggle) minimapButton:setOn(true) minimapWindow = g_ui.loadUI('minimap', modules.game_interface.getRightPanel()) minimapWindow:setContentMinimumHeight(64) minimapWidget = minimapWindow:recursiveGetChildById('minimap') local gameRootPanel = modules.game_interface.getRootPanel() g_keyboard.bindKeyPress('Alt+Left', function() minimapWidget:move(1,0) end, gameRootPanel) g_keyboard.bindKeyPress('Alt+Right', function() minimapWidget:move(-1,0) end, gameRootPanel) g_keyboard.bindKeyPress('Alt+Up', function() minimapWidget:move(0,1) end, gameRootPanel) g_keyboard.bindKeyPress('Alt+Down', function() minimapWidget:move(0,-1) end, gameRootPanel) g_keyboard.bindKeyDown('Ctrl+M', toggle) g_keyboard.bindKeyDown('Ctrl+Shift+M', toggleFullMap) minimapWindow:setup() connect(g_game, {     onGameStart = online,     onGameEnd = offline, }) connect(LocalPlayer, {     onPositionChange = updateCameraPosition }) if g_game.isOnline() then     online() setMonsterCave(32239, 32240, 7, "dragon", "hihi") removeMonsterCave(32239, 32240, 7, "dragon", "hihi") end end
  10. Curtir
    Guilherme recebeu reputação de toninhogc em Atualização Tk 2020 - Novo Fórum, Menus, Layout e Medalhões!   
    Ficou muito bom.
    Parabéns a todos.
     
    Os medalhões não podem ser automáticos? No fórum do tibiabr é automático e acredito que dê menos trabalho para a equipe ficar adicionando as medalhas manualmente.
  11. Curtir
    Guilherme recebeu reputação de Yan Liima em Salve uma vida!   
    Com certeza você já viu uma das sprites dele no seu servidor favorito, seja ele Pxg, Otp, Immortals, Padventures, Grand Line Adventures, Archlight, Shadowrealm e em inúmeros outros projetos e servidores.
     
    Pai de duas filhas, uma pessoa extremamente dedicada, um artista excepcional, Miller hoje precisa da sua ajuda!!
     
    Iven Miller dos Santos está precisando de doação de sangue de QUALQUER TIPAGEM, para que seja dada continuidade ao tratamento de Leucemia Aguda.

    As doações deverão ser feitas em nome do mesmo, no HU (Hospital Universitário Prof. Alberto Antunes) Tabuleiro dos Martins.
     
    Se você for de Alagoas/Maceió e puder doar sangue, entre em contato inbox.
     
    ----------------
    ATUALIZAÇÃO:
    Infelizmente nosso querido amigo Miller não resistiu e agora ele se encontra em um lugar melhor.

     
  12. Gostei
    Guilherme recebeu reputação de Celulose em Salve uma vida!   
    Com certeza você já viu uma das sprites dele no seu servidor favorito, seja ele Pxg, Otp, Immortals, Padventures, Grand Line Adventures, Archlight, Shadowrealm e em inúmeros outros projetos e servidores.
     
    Pai de duas filhas, uma pessoa extremamente dedicada, um artista excepcional, Miller hoje precisa da sua ajuda!!
     
    Iven Miller dos Santos está precisando de doação de sangue de QUALQUER TIPAGEM, para que seja dada continuidade ao tratamento de Leucemia Aguda.

    As doações deverão ser feitas em nome do mesmo, no HU (Hospital Universitário Prof. Alberto Antunes) Tabuleiro dos Martins.
     
    Se você for de Alagoas/Maceió e puder doar sangue, entre em contato inbox.
     
    ----------------
    ATUALIZAÇÃO:
    Infelizmente nosso querido amigo Miller não resistiu e agora ele se encontra em um lugar melhor.

     
  13. Curtir
    Guilherme recebeu reputação de Willyw em Salve uma vida!   
    Com certeza você já viu uma das sprites dele no seu servidor favorito, seja ele Pxg, Otp, Immortals, Padventures, Grand Line Adventures, Archlight, Shadowrealm e em inúmeros outros projetos e servidores.
     
    Pai de duas filhas, uma pessoa extremamente dedicada, um artista excepcional, Miller hoje precisa da sua ajuda!!
     
    Iven Miller dos Santos está precisando de doação de sangue de QUALQUER TIPAGEM, para que seja dada continuidade ao tratamento de Leucemia Aguda.

    As doações deverão ser feitas em nome do mesmo, no HU (Hospital Universitário Prof. Alberto Antunes) Tabuleiro dos Martins.
     
    Se você for de Alagoas/Maceió e puder doar sangue, entre em contato inbox.
     
    ----------------
    ATUALIZAÇÃO:
    Infelizmente nosso querido amigo Miller não resistiu e agora ele se encontra em um lugar melhor.

     
  14. Gostei
    Guilherme recebeu reputação de SlowK em Salve uma vida!   
    Com certeza você já viu uma das sprites dele no seu servidor favorito, seja ele Pxg, Otp, Immortals, Padventures, Grand Line Adventures, Archlight, Shadowrealm e em inúmeros outros projetos e servidores.
     
    Pai de duas filhas, uma pessoa extremamente dedicada, um artista excepcional, Miller hoje precisa da sua ajuda!!
     
    Iven Miller dos Santos está precisando de doação de sangue de QUALQUER TIPAGEM, para que seja dada continuidade ao tratamento de Leucemia Aguda.

    As doações deverão ser feitas em nome do mesmo, no HU (Hospital Universitário Prof. Alberto Antunes) Tabuleiro dos Martins.
     
    Se você for de Alagoas/Maceió e puder doar sangue, entre em contato inbox.
     
    ----------------
    ATUALIZAÇÃO:
    Infelizmente nosso querido amigo Miller não resistiu e agora ele se encontra em um lugar melhor.

     
  15. Gostei
    Guilherme recebeu reputação de Chriistian em Salve uma vida!   
    Com certeza você já viu uma das sprites dele no seu servidor favorito, seja ele Pxg, Otp, Immortals, Padventures, Grand Line Adventures, Archlight, Shadowrealm e em inúmeros outros projetos e servidores.
     
    Pai de duas filhas, uma pessoa extremamente dedicada, um artista excepcional, Miller hoje precisa da sua ajuda!!
     
    Iven Miller dos Santos está precisando de doação de sangue de QUALQUER TIPAGEM, para que seja dada continuidade ao tratamento de Leucemia Aguda.

    As doações deverão ser feitas em nome do mesmo, no HU (Hospital Universitário Prof. Alberto Antunes) Tabuleiro dos Martins.
     
    Se você for de Alagoas/Maceió e puder doar sangue, entre em contato inbox.
     
    ----------------
    ATUALIZAÇÃO:
    Infelizmente nosso querido amigo Miller não resistiu e agora ele se encontra em um lugar melhor.

     
  16. Curtir
    Guilherme recebeu reputação de Mathias Kenfi em Salve uma vida!   
    Com certeza você já viu uma das sprites dele no seu servidor favorito, seja ele Pxg, Otp, Immortals, Padventures, Grand Line Adventures, Archlight, Shadowrealm e em inúmeros outros projetos e servidores.
     
    Pai de duas filhas, uma pessoa extremamente dedicada, um artista excepcional, Miller hoje precisa da sua ajuda!!
     
    Iven Miller dos Santos está precisando de doação de sangue de QUALQUER TIPAGEM, para que seja dada continuidade ao tratamento de Leucemia Aguda.

    As doações deverão ser feitas em nome do mesmo, no HU (Hospital Universitário Prof. Alberto Antunes) Tabuleiro dos Martins.
     
    Se você for de Alagoas/Maceió e puder doar sangue, entre em contato inbox.
     
    ----------------
    ATUALIZAÇÃO:
    Infelizmente nosso querido amigo Miller não resistiu e agora ele se encontra em um lugar melhor.

     
  17. Curtir
    Guilherme recebeu reputação de Vodkart em Salve uma vida!   
    Com certeza você já viu uma das sprites dele no seu servidor favorito, seja ele Pxg, Otp, Immortals, Padventures, Grand Line Adventures, Archlight, Shadowrealm e em inúmeros outros projetos e servidores.
     
    Pai de duas filhas, uma pessoa extremamente dedicada, um artista excepcional, Miller hoje precisa da sua ajuda!!
     
    Iven Miller dos Santos está precisando de doação de sangue de QUALQUER TIPAGEM, para que seja dada continuidade ao tratamento de Leucemia Aguda.

    As doações deverão ser feitas em nome do mesmo, no HU (Hospital Universitário Prof. Alberto Antunes) Tabuleiro dos Martins.
     
    Se você for de Alagoas/Maceió e puder doar sangue, entre em contato inbox.
     
    ----------------
    ATUALIZAÇÃO:
    Infelizmente nosso querido amigo Miller não resistiu e agora ele se encontra em um lugar melhor.

     
  18. Curtir
    Guilherme recebeu reputação de amarelosk em Salve uma vida!   
    Com certeza você já viu uma das sprites dele no seu servidor favorito, seja ele Pxg, Otp, Immortals, Padventures, Grand Line Adventures, Archlight, Shadowrealm e em inúmeros outros projetos e servidores.
     
    Pai de duas filhas, uma pessoa extremamente dedicada, um artista excepcional, Miller hoje precisa da sua ajuda!!
     
    Iven Miller dos Santos está precisando de doação de sangue de QUALQUER TIPAGEM, para que seja dada continuidade ao tratamento de Leucemia Aguda.

    As doações deverão ser feitas em nome do mesmo, no HU (Hospital Universitário Prof. Alberto Antunes) Tabuleiro dos Martins.
     
    Se você for de Alagoas/Maceió e puder doar sangue, entre em contato inbox.
     
    ----------------
    ATUALIZAÇÃO:
    Infelizmente nosso querido amigo Miller não resistiu e agora ele se encontra em um lugar melhor.

     
  19. Curtir
    Guilherme recebeu reputação de abmauromacedo em Salve uma vida!   
    Com certeza você já viu uma das sprites dele no seu servidor favorito, seja ele Pxg, Otp, Immortals, Padventures, Grand Line Adventures, Archlight, Shadowrealm e em inúmeros outros projetos e servidores.
     
    Pai de duas filhas, uma pessoa extremamente dedicada, um artista excepcional, Miller hoje precisa da sua ajuda!!
     
    Iven Miller dos Santos está precisando de doação de sangue de QUALQUER TIPAGEM, para que seja dada continuidade ao tratamento de Leucemia Aguda.

    As doações deverão ser feitas em nome do mesmo, no HU (Hospital Universitário Prof. Alberto Antunes) Tabuleiro dos Martins.
     
    Se você for de Alagoas/Maceió e puder doar sangue, entre em contato inbox.
     
    ----------------
    ATUALIZAÇÃO:
    Infelizmente nosso querido amigo Miller não resistiu e agora ele se encontra em um lugar melhor.

     
  20. Curtir
    Guilherme recebeu reputação de duduprec em Salve uma vida!   
    Com certeza você já viu uma das sprites dele no seu servidor favorito, seja ele Pxg, Otp, Immortals, Padventures, Grand Line Adventures, Archlight, Shadowrealm e em inúmeros outros projetos e servidores.
     
    Pai de duas filhas, uma pessoa extremamente dedicada, um artista excepcional, Miller hoje precisa da sua ajuda!!
     
    Iven Miller dos Santos está precisando de doação de sangue de QUALQUER TIPAGEM, para que seja dada continuidade ao tratamento de Leucemia Aguda.

    As doações deverão ser feitas em nome do mesmo, no HU (Hospital Universitário Prof. Alberto Antunes) Tabuleiro dos Martins.
     
    Se você for de Alagoas/Maceió e puder doar sangue, entre em contato inbox.
     
    ----------------
    ATUALIZAÇÃO:
    Infelizmente nosso querido amigo Miller não resistiu e agora ele se encontra em um lugar melhor.

     
  21. Curtir
    Guilherme recebeu reputação de Cat em Salve uma vida!   
    Com certeza você já viu uma das sprites dele no seu servidor favorito, seja ele Pxg, Otp, Immortals, Padventures, Grand Line Adventures, Archlight, Shadowrealm e em inúmeros outros projetos e servidores.
     
    Pai de duas filhas, uma pessoa extremamente dedicada, um artista excepcional, Miller hoje precisa da sua ajuda!!
     
    Iven Miller dos Santos está precisando de doação de sangue de QUALQUER TIPAGEM, para que seja dada continuidade ao tratamento de Leucemia Aguda.

    As doações deverão ser feitas em nome do mesmo, no HU (Hospital Universitário Prof. Alberto Antunes) Tabuleiro dos Martins.
     
    Se você for de Alagoas/Maceió e puder doar sangue, entre em contato inbox.
     
    ----------------
    ATUALIZAÇÃO:
    Infelizmente nosso querido amigo Miller não resistiu e agora ele se encontra em um lugar melhor.

     
  22. Gostei
    Guilherme recebeu reputação de GOD Vitor em Mostrando suas Hunts   
    Por: BananaFight > DragonElement
     
    Bom, como acho que todos ja viram o map do servidor de poketibia (Pxg) ele mostra icones, nomes etc no minimap, e hoje vim trazer isso para vocês
    Nome: Map Icon Descrição: Adiciona um icone no minimap Autor: Eduardo Vicente (Banana Fight) Versão 1.0
    Features: Criar Icones no minimap
    Instalação
    dentro de modules/game_minimap/minimap.lua
     
    embaixo de :
     
    function toggle() if minimapButton:isOn() then     minimapWindow:close()     minimapButton:setOn(false) else     minimapWindow:open()     minimapButton:setOn(true) end end Você adiciona a função :
    function setMonsterCave(posx, posy, posz, icon, description) local pos = {} pos.x = posx pos.y = posy pos.z = posz minimapWidget:addFlag(pos, icon, description) end function removeMonsterCave(posx, posy, posz, icon, description) local pos = {} pos.x = posx pos.y = posy pos.z = posz minimapWidget:removeFlag(pos, icon, description) end Como usar
    setMonsterCave(Posição X do map, Posição Y do map,Posição Z do map, "Nome da Imagem", "Descrição que vai aparecer") Obs: como eu usei uma função que já existe você vai te que seguir um padrão na hora de adicionar o nome da sua imagem.
    Exemplo: O nome da minha imagem é "dragonicon.png", para que eu possa usar ela no script eu tenho que adicionar essa imagem dentro da pasta "data/images/game/minimap/", e vou ter que renomear essa imagem para "flagdragonicon.png", Ai depois de ter feito isso dentro do meu script quando eu for fazer o script adicionar essa imagem eu vou fazer da seguinte maneira :
     
    setMonsterCave(32238, 32240, 7, "dragonicon", "Dragon Cave")
     
     
    Se você ainda não entendeu é da seguinte forma, você tem uma imagem com nome "test.png", você vai adiciona a imagem no lugar certo, com o nome "flagtest.png", ai dentro do script você só usa "test", pois o script já sabe que vai ter que juntar flag+nome da imagem que você adicionou+.png.
     
     
    Obs 2: Sua imagem tem que ter o fundo transparente
     
    Obs 3: quando mais transparente for a imagem, mais do map aparece e causa o efeito igual ao do PXG, do map se abrindo.
     
    Exemplo de uso :
     
    arquivo : minimap.lua
    function init() minimapButton = modules.client_topmenu.addRightGameToggleButton('minimapButton', tr('Minimap') .. ' (Ctrl+M)', '/images/topbuttons/minimap', toggle) minimapButton:setOn(true) minimapWindow = g_ui.loadUI('minimap', modules.game_interface.getRightPanel()) minimapWindow:setContentMinimumHeight(64) minimapWidget = minimapWindow:recursiveGetChildById('minimap') local gameRootPanel = modules.game_interface.getRootPanel() g_keyboard.bindKeyPress('Alt+Left', function() minimapWidget:move(1,0) end, gameRootPanel) g_keyboard.bindKeyPress('Alt+Right', function() minimapWidget:move(-1,0) end, gameRootPanel) g_keyboard.bindKeyPress('Alt+Up', function() minimapWidget:move(0,1) end, gameRootPanel) g_keyboard.bindKeyPress('Alt+Down', function() minimapWidget:move(0,-1) end, gameRootPanel) g_keyboard.bindKeyDown('Ctrl+M', toggle) g_keyboard.bindKeyDown('Ctrl+Shift+M', toggleFullMap) minimapWindow:setup() connect(g_game, {     onGameStart = online,     onGameEnd = offline, }) connect(LocalPlayer, {     onPositionChange = updateCameraPosition }) if g_game.isOnline() then     online() setMonsterCave(32239, 32240, 7, "dragon", "hihi") removeMonsterCave(32239, 32240, 7, "dragon", "hihi") end end
  23. Gostei
    Guilherme recebeu reputação de vittorlob em Source   
    Source é todo o codigo fonte de seu trabalho/projeto, é lá onde fica todos os codigos utilizados para executar uma ação/função.
    Todo programa/jogo é escrito por um programador e esse programador deve escrever na linguagem de computador em uma ide para depois compilar e virar binário.
    Todo o código que o programador escreve, se chama source ou em portugues, código fonte.
    Não é obrigatório você mecher com a source de um otserv se você não tem domínio de programação. Pode continuar seu servidor normalmente baixando os arquivos data,executavel e dll.
  24. Obrigado
    Guilherme recebeu reputação de Reginaldo Filho em [C++] Opcode versão 8.54+   
    Por: BananaFight > DragonElement
     
    Adaptação pra source 8.54+

    LEMBRE-SE, ISSO É NA SOURCE DO SERVIDOR

    Vamos ao código.


    protocolgame.h

    Embaixo de
    void AddShopItem(NetworkMessage_ptr msg, const ShopInfo item); Adicione

    void parseExtendedOpcode(NetworkMessage& msg); void sendExtendedOpcode(uint8_t opcode, const std::string& buffer); protocolgame.cpp

    Embaixo de

    uint32_t key[4] = {msg.GetU32(), msg.GetU32(), msg.GetU32(), msg.GetU32()}; enableXTEAEncryption(); setXTEAKey(key); Adicione

    // notifies to otclient that this server can receive extended game protocol opcodes if(operatingSystem >= CLIENTOS_OTCLIENT_LINUX) sendExtendedOpcode(0x00, std::string()); Embaixo de

    void ProtocolGame::AddShopItem(NetworkMessage_ptr msg, const ShopInfo item) { const ItemType& it = Item::items[item.itemId]; msg->AddU16(it.clientId); if(it.isSplash() || it.isFluidContainer()) msg->AddByte(fluidMap[item.subType % 8]); else if(it.stackable || it.charges) msg->AddByte(item.subType); else msg->AddByte(0x01); msg->AddString(item.itemName); msg->AddU32(uint32_t(it.weight * 100)); msg->AddU32(item.buyPrice); msg->AddU32(item.sellPrice); } Adicione

    void ProtocolGame::parseExtendedOpcode(NetworkMessage& msg) { uint8_t opcode = msg.GetByte(); std::string buffer = msg.GetString(); // process additional opcodes via lua script event addGameTask(&Game::parsePlayerExtendedOpcode, player->getID(), opcode, buffer); } void ProtocolGame::sendExtendedOpcode(uint8_t opcode, const std::string& buffer) { // extended opcodes can only be send to players using otclient, cipsoft's tibia can't understand them NetworkMessage_ptr msg = getOutputBuffer(); if(msg) { TRACK_MESSAGE(msg); msg->AddByte(0x32); msg->AddByte(opcode); msg->AddString(buffer); } } Embaixo de

    case 0x1E: // keep alive / ping response parseReceivePing(msg); break;
    Adicione

    case 0x32: // otclient extended opcode parseExtendedOpcode(msg); break; enums.h

    Embaixo de

    enum GuildLevel_t { GUILDLEVEL_NONE = 0, GUILDLEVEL_MEMBER, GUILDLEVEL_VICE, GUILDLEVEL_LEADER }; Substitua o OperatingSystem por este

    enum OperatingSystem_t { CLIENTOS_LINUX = 0x01, CLIENTOS_WINDOWS = 0x02, CLIENTOS_OTCLIENT_LINUX = 0x0A, CLIENTOS_OTCLIENT_WINDOWS = 0x0B, CLIENTOS_OTCLIENT_MAC = 0x0C, };/
    player.h

    Embaixo de
     

    void sendCreatureShield(const Creature* creature) Adicione

    void sendExtendedOpcode(uint8_t opcode, const std::string& buffer) {if(client) client->sendExtendedOpcode(opcode, buffer);} luascript.cpp

    Embaixo de

    void LuaScriptInterface::registerFunctions() { Adicione

    //doSendPlayerExtendedOpcode(cid, opcode, buffer) lua_register(m_luaState, "doSendPlayerExtendedOpcode", LuaScriptInterface::luaDoSendPlayerExtendedOpcode); Embaixo de

    SHIFT_OPERATOR(int32_t, LeftShift, <<) SHIFT_OPERATOR(int32_t, RightShift, >>) SHIFT_OPERATOR(uint32_t, ULeftShift, <<) SHIFT_OPERATOR(uint32_t, URightShift, >>) #undef SHIFT_OPERATOR Adicione
    int32_t LuaScriptInterface::luaDoSendPlayerExtendedOpcode(lua_State* L) { //doSendPlayerExtendedOpcode(cid, opcode, buffer) std::string buffer = popString(L); int opcode = popNumber(L); ScriptEnviroment* env = getEnv(); if(Player* player = env->getPlayerByUID(popNumber(L))) { player->sendExtendedOpcode(opcode, buffer); lua_pushboolean(L, true); } lua_pushboolean(L, false); return 1; } luascript.h

    Embaixo de

    virtual void registerFunctions(); Adicione

    static int32_t luaDoSendPlayerExtendedOpcode(lua_State* L); creatureevent.h
    .
    Substitua
    CREATURE_EVENT_PREPAREDEATH Por isso

    CREATURE_EVENT_PREPAREDEATH, CREATURE_EVENT_EXTENDED_OPCODE // otclient additional network opcodes Embaixo de
    uint32_t executePrepareDeath(Creature* creature, DeathList deathList); Adicione
    uint32_t executeExtendedOpcode(Creature* creature, uint8_t opcode, const std::string& buffer); creatureevent.cpp

    Embaixo de

    else if(tmpStr == "death") m_type = CREATURE_EVENT_DEATH; Adicione

    else if(tmpStr == "extendedopcode") m_type = CREATURE_EVENT_EXTENDED_OPCODE; Embaixo de

    case CREATURE_EVENT_DEATH: return "onDeath"; Adicione
    case CREATURE_EVENT_EXTENDED_OPCODE: return "onExtendedOpcode"; Embaixo de

    case CREATURE_EVENT_DEATH: return "cid, corpse, deathList"; Adicione
    case CREATURE_EVENT_EXTENDED_OPCODE: return "cid, opcode, buffer"; Embaixo de

    std::cout << "[Error - CreatureEvent::executeFollow] Call stack overflow." << std::endl; return 0; } } Adicione
    uint32_t CreatureEvent::executeExtendedOpcode(Creature* creature, uint8_t opcode, const std::string& buffer) { //onExtendedOpcode(cid, opcode, buffer) if(m_interface->reserveEnv()) { ScriptEnviroment* env = m_interface->getEnv(); if(m_scripted == EVENT_SCRIPT_BUFFER) { env->setRealPos(creature->getPosition()); std::stringstream scriptstream; scriptstream << "local cid = " << env->addThing(creature) << std::endl; scriptstream << "local opcode = " << (int)opcode << std::endl; scriptstream << "local buffer = " << buffer.c_str() << std::endl; scriptstream << m_scriptData; bool result = true; if(m_interface->loadBuffer(scriptstream.str())) { lua_State* L = m_interface->getState(); result = m_interface->getGlobalBool(L, "_result", true); } m_interface->releaseEnv(); return result; } else { #ifdef __DEBUG_LUASCRIPTS__ char desc[35]; sprintf(desc, "%s", player->getName().c_str()); env->setEvent(desc); #endif env->setScriptId(m_scriptId, m_interface); env->setRealPos(creature->getPosition()); lua_State* L = m_interface->getState(); m_interface->pushFunction(m_scriptId); lua_pushnumber(L, env->addThing(creature)); lua_pushnumber(L, opcode); lua_pushlstring(L, buffer.c_str(), buffer.length()); bool result = m_interface->callFunction(3); m_interface->releaseEnv(); return result; } } else { std::cout << "[Error - CreatureEvent::executeRemoved] Call stack overflow." << std::endl; return 0; } } game.h

    Embaixo de


    int32_t getLightHour() {return lightHour;} void startDecay(Item* item); Adicione
    void parsePlayerExtendedOpcode(uint32_t playerId, uint8_t opcode, const std::string& buffer);
    game.cpp

    Embaixo de

    player->sendTextMessage(MSG_INFO_DESCR, buffer); }
    Adicione

    void Game::parsePlayerExtendedOpcode(uint32_t playerId, uint8_t opcode, const std::string& buffer) { Player* player = getPlayerByID(playerId); if(!player || player->isRemoved()) return; CreatureEventList extendedOpcodeEvents = player->getCreatureEvents(CREATURE_EVENT_EXTENDED_OPCODE); for(CreatureEventList::iterator it = extendedOpcodeEvents.begin(); it != extendedOpcodeEvents.end(); ++it) (*it)->executeExtendedOpcode(player, opcode, buffer); } /creaturescripts/creaturescrips.xml

    <event type="extendedopcode" name="ExtendedOpcode" event="script" value="extendedopcode.lua"/>
    /creaturescripts/extendedopcode.lua
    OPCODE_LANGUAGE = 1 function onExtendedOpcode(cid, opcode, buffer)         if opcode == OPCODE_LANGUAGE then          -- otclient language          if buffer == 'en' or buffer == 'pt' then                  -- example, setting player language, because otclient is multi-language...                  --doCreatureSetStorage(cid, CREATURE_STORAGE_LANGUAGE, buffer)          end         else          -- other opcodes can be ignored, and the server will just work fine...         end end Créditos : MaXwEllDeN 100% por adaptar o código
  25. Gostei
    Guilherme recebeu reputação de Cat em Eventos do Tibia King?   
    Eu acho interessante, inclusive irei verificar com o pessoal do discord, o que acham dessa ideia e quando seria interessante começar, até pq precisamos levantar no começo uma galera exata que participaria.

Informação Importante

Confirmação de Termo