Ir para conteúdo

Aberos

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Curtir
    Aberos deu reputação a Tungsx em [PROJETO-TK] Pokémon Dash Revolution - Open Source   
    Boa noite a todos, poucos devem lembrar de mim, não por esse nick mas sim como Kevick. Algumas semanas atrás decidi pegar uma base antiga e voltar a mexer visando trazer um conteúdo para a comunidade, meu passado aqui foi meio obscuro com algumas tretas desnecessárias e falta de profissionalismo com a comunidade. a Base utilizada é a Dash Revolution do @Aberos e do @Valakinhas. Com o tempo aprendi mais sobre desenvolvimento e achei que era uma boa hora para botar a mão na massa, hoje eu não estarei liberando o download, peço que movam para a área correta mas assim que concluído o download será adicionado para vocês.
     
    O que foi feito até o momento?
     
    Como a base não tinha um código fonte liberado, peguei um TFS 0.3.6 limpo e comecei a fazer alguns sistemas no mesmo para que funcionasse 100%. Futuramente atualizarei os sistemas basicos como GO/BACK, SURF e FLY para que os mesmos se comuniquem no núcleo da engine. Sem enrolação vamos aos sistemas
     
    Catch System igual ao PDA - 100% Order system - 100% Pokebar - 90% (irei refazer o design da mesma no futuro antes de postar) Movebar - 100% (mantive a antiga movebar e adicionei uma mais atual, deixando a disposição ao gosto de vocês) Evoluções e boost por stone - 100% Spawn de Shiny aleatoriamente com porcentagem - 100% Nick System -  100% nas source com callback em lua - 100% Ditto System - 100% Sistema de CAP contando ball igual ao PDA EX: 1 pokémon na bag = 1 de cap, 5 pokémons na bag = 5 de cap na contagem - 100% Pokedex - 100% (pretendo adicionar a da masterx antes de postar) Sistema de ginásio do pda usando as funções doSetAttackGym, doSetGym, doSetMonsterGym em C++ - 100% Move system refeito para mais facilidade ao adicionar o mesmo - 100% Icon System - 90%, falta alguns pokémons  
    Segue logo abaixo as imagens, assim que possível tiro mais prints e atualizo o tópico:
     
    pokebar e movebar

     
    Codigo do npc de Duel

     
    Slot pokémon igual à pxg com contagem de ball / vida do pokémon sendo adicionada ainda
     

     
     
     
    remake nas sprites padrões
     

    Catch System com distance shoot

     
    Toda colaboração será bem-vinda, quem sabe não sai algo bacana ai. 
     
    https://github.com/Kevick/PokemonDashRevolution
     
  2. Curtir
    Aberos recebeu reputação de Daniel Gaming em BrPokeOT OTClient   
    eae galera queria mostrar aki um pouco do meu trabalho junto a um amigo

    Obrigado pela atencao de todos!!
    ('usei opcode nos mods')

  3. Gostei
    Aberos recebeu reputação de josiels em Erondino v17.1 By {ABEROS} BPO Open Source   
    Pokemon bar nao e nas source , e so em lua.
  4. Gostei
    Aberos recebeu reputação de RicardoGamer404 em [PEDIDO]Script Mega Evolução   
    fiz um sistema assim pra um amigo 

  5. Gostei
    Aberos recebeu reputação de deivaoo em [MOD] Novo BroadCast   
    nao tenho certeza mas para adpatar no broadcast nao prescisaria usar code e so ir no lua do game_console e alterar
     
    isso
     
      if mode == MessageModes.GamemasterBroadcast then     modules.game_textmessage.displayBroadcastMessage(name .. ': ' .. message)     return   end   por      if mode == MessageModes.GamemasterBroadcast then      modules.mod_broadcast.showText(name .. ': ' .. message)     return   end
  6. Gostei
    Aberos deu reputação a vyctor17 em Criaturas Passivas   
    Criaturas Passivas. (tfs 0.3.6pl1)
     
    hoje eu fiquei meio bolado mexendo em meu servidor com um cat me seguindo e pensei, mano que droga o sistema de hostilidade do tibia é uma porcaria.., então resolvi dar uma olhada em como ele funcionava nas source, e acabei vendo que modificando pouca coisa já se tem um sistema de hostilidade melhor não perfeito mas melhor . talvez daqui uns dias eu consiga fazer ele ser 100%, nesse método a criatura só ataca depois de perder vida e o ideal seria ela atacar ao tomar target mas isso tbm é facil de fazer dentro de alguns dias eu atualizo o tópico com isso. 
     
    Sem mais explicações vamos as ediçoes: 
     
    em monster.cpp: procure por, 
    bool Monster::selectTarget(Creature* creature) agora nesta função procure por:
    if(it == targetList.end()) { //Target not found in our target list. #ifdef __DEBUG__ std::cout << "Target not found in targetList." << std::endl; #endif return false; } e logo a baixo adicione:
    if(!isHostile() && getHealth() == getMaxHealth() && !isSummon()){ return false; } e na função a baixo deixa assim:
    if((isHostile() || isSummon() || !isHostile() && getHealth() != getMaxHealth()) && setAttackedCreature(creature) && !isSummon()) Dispatcher::getInstance().addTask(createTask( boost::bind(&Game::checkCreatureAttack, &g_game, getID()))); Agora ainda no monster.cpp procure por:
    bool Monster::canUseAttack(const Position& pos, const Creature* target) const e remova isso:
    if(!isHostile()) return true; agora é só recompilar e esta pronto .
     
    Gostou?, então se puder me ajude!

     
    não autorizo o re-post em qualquer outro fórum sem minha autorização.
     
    vyctor17 - Waki-V LTDA ©
  7. Gostei
    Aberos deu reputação a vyctor17 em Monstros Focando Summons   
    Monstros Focando Summons (tfs 0.3.6pl1)
     
    Eai galera, to ativo essa semana rs, agora to trazendo pra vcs uma modificação que faz as criaturas sempre atacarem os summons antes dos players, tipo a do servidores de pokemon mas acho que pra fazer isso eles mudam o group do player pra um group que monstro não ataca, agora vou mostrar como fazer isso certo rs.
     
    Lembrando que essa modificação da maneira que esta neste tópico só funciona com http://www.tibiaking.com/forum/topic/53480-criaturas-passivas/
     
    já instalado nas source . da pra fazer funcionar sem isso sim e é ate bem simples só tirar algumas checagens mas dai isso fica com vcs :0.
     
    Obs: Diferente do método em que se muda o group do player,  se uma criatura usa um poder em área, e o player estiver perto tmb toma o dano. se vc não gostou desta informação digo que tem como "retirar o dano" com um statchange checando se o player tem um summon ativo.
     
    Em Monster.cpp:
     
    Procure por:
    void Monster::doAttacking(uint32_t interval) E em baixo de:
    if(!attackedCreature || (isSummon() && attackedCreature == this)) return; Adicione:
    const std::list<Creature*>& summons = attackedCreature->getSummons(); CreatureList::const_iterator itt = summons.begin(); for(uint32_t i = 1; itt != summons.end(); ++itt, ++i) { if (i >= 1 && *itt){ searchTarget(); } } Ainda em Monster.cpp procure por:
    bool Monster::selectTarget(Creature* creature) e em baixo de:
    if(!isHostile() && getHealth() == getMaxHealth() && !isSummon()){ return false; } Adicione:
    const std::list<Creature*>& summons = creature->getSummons(); CreatureList::const_iterator itt = summons.begin(); for(uint32_t i = 1; itt != summons.end(); ++itt, ++i) { if (i >= 1 && *itt){ if((isHostile() || isSummon() || !isHostile() && getHealth() != getMaxHealth()) && setAttackedCreature(*itt) && !isSummon()) Dispatcher::getInstance().addTask(createTask( boost::bind(&Game::checkCreatureAttack, &g_game, getID()))); return setFollowCreature(*itt, true); } } Gostou?, então se puder me ajude!

     
    não autorizo o re-post em qualquer outro fórum sem minha autorização.
     
    vyctor17 - Waki-V LTDA ©
  8. Gostei
    Aberos deu reputação a Orochi Elf em [C++] doCreatureCastSpell(creature, spellName)   
    [C++] doCreatureCastSpell (0.3.6pl1)



    Escrito e testado: 0.3.6PL1 [8.54 - 8.60]




    Salve galera do TibiaKing, eu fui procurar na internet sobre essa função e vi que já tentaram cria-la, porém não conseguiram, ou se conseguiram nunca postaram. Então eu resolvi faze-la para vocês, e eu percebi que ninguém nunca tinha feito, por causa de uma dúvida, e um certo grau de dificuldade. Certamente, eu tive uma dificuldade no começo, porém ao desenvolver da função eu percebi que não era nada de mais.



    Então eu trago aqui pra vocês esta função, cuja a ideia é fazer com que a criatura (jogador ou monstro) a utilize uma magia pelo nome dela, importante lembrar que o nome da magia, não é as palavras mágicas, exemplo: "utani hur" é a palavra mágica e "haste" é o nome da magia. Enfim, sem mais delongas e vamos aos códigos





    Vá ao arquivo "LuaScript.cpp" e procure por:

    //doPlayerAddExperience(cid, amount) lua_register(m_luaState, "doPlayerAddExperience", LuaScriptInterface::luaDoPlayerAddExperience);


    E abaixo adicione:

    //doCreatureCastSpell // by OrochiElf. lua_register(m_luaState, "doCreatureCastSpell", LuaScriptInterface::luaDoCreatureCastSpell);


    Agora procure por:







    E abaixo adicione:

    int32_t LuaScriptInterface::luaDoCreatureCastSpell(lua_State* L) // by OrochiElf. { //doCreatureCastSpell(cid, spellname) std::string spellName = popString(L); ScriptEnviroment* env = getEnv(); if(Creature* creature = env->getCreatureByUID(popNumber(L))) { InstantSpell* spell = g_spells->getInstantSpellByName(spellName); if(!spell) { lua_pushboolean(L, false); return 1; } Creature* target = creature->getAttackedCreature(); if(target) spell->castSpell(creature, target); else spell->castSpell(creature, creature); lua_pushboolean(L, true); } else { errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND)); lua_pushboolean(L, false); } return 1; }


    Agora vá ao arquivo "LuaScript.h" e procure por:

    static int32_t luaDoPlayerAddItem(lua_State* L);
    E abaixo adicione:
    static int32_t luaDoCreatureCastSpell(lua_State* L); // by OrochiElf


    Exemplo, eu tenho um pet, e quero que ele utilize a magia de "utani hur" - "haste".




    Talkaction Code:

    function onSay(cid, words, param, channel) local summon = getCreatureSummons(cid)[1] if isCreature(summon) then doCreatureCastSpell(summon, "haste") end return true end


    Esta função é muito requisitada para fazer servidores de pokémon, evitando gambiarras. Que foi o motivo para qual eu desenvolvi ela






    Créditos.



    Tony Araújo (OrochiElf) 100%

  9. Gostei
    Aberos deu reputação a Gabrieltxu em Executavel Pda parando de funcionar   
    é pda cara nao fica assustado tive o mesmo erro com o meu skyfall a 2 anos atras com isso, pda nao serve para um servidor grande e sério ....
  10. Gostei
    Aberos deu reputação a Garou em Streaming de Programação   
    Boa tarde,
     
    Depois de ler um artigo do Tecmundo, este aqui, fiquei pensando, é interessante criar um streaming para programação de scripts, como também modificações nas sources relacionado ao Open Tibia?
     
    Gostaria da opinião de todos.
     
    Att.
    Garou
  11. Gostei
    Aberos recebeu reputação de chavoz em (Resolvido)New Pokemon Bar OTCLIENT   
    substitui por isso
    local barPoke = nil local icons = {}   -- Public functions function init()    barPoke = g_ui.displayUI('barpoke', modules.game_interface.getRootPanel())    barPoke:setVisible(false)      barPoke:move(250,50)        connect(g_game, 'onTextMessage', getParams)    connect(g_game, 'onTextMessage', onPokes)    connect(g_game, { onGameEnd = hide } )    connect(g_game, { onGameStart = show } )      createIcons() end   function terminate()    disconnect(g_game, { onGameEnd = hide })    disconnect(g_game, 'onTextMessage', getParams)    disconnect(g_game, 'onTextMessage', onPokes)      destroyIcons()    barPoke:destroy() end     function getParams(mode, text) if not g_game.isOnline() then return end    if mode == MessageModes.Failure then        if string.sub(text, 1, 9) == "BarClosed" then       hide()       elseif string.sub(text, 1, 7) == "Pokebar" then          atualizarBar(text)    end end end   function atualizarBar(text) if not g_game.isOnline() then return end local talk = "/pokamon" show() cleanAllPokes() local t = string.explode(text, "/") for i=2, #t do x= i-1 local poke = t[i] local zafrada = i-1 local progress = icons['Icon'..x].progress changeIconPoke(x, poke) progress.onClick = function() g_game.talk(talk.." "..poke..""..zafrada.."") end  end end     function changeIconPoke(i, poke) if not g_game.isOnline() then return end    local icon = icons['Icon'..i].icon local image = "pokes/"..poke..".png"    icon:setImageSource(image) end   function createIcons()    local d = 36    local image = "pokes/portait.png"    for i = 1, 6 do       local icon = g_ui.createWidget('IconPoke', barPoke)       local icon1 = g_ui.createWidget('HealthBar', icon)       local progress = g_ui.createWidget('Poke', barPoke)        icon:setId('Icon'..i)         progress:setId('Progress'..i)         icons['Icon'..i] = {icon = icon, progress = progress, dist = (i == 1 and -5 or i == 2 and 35 or d + ((i-2)*38)), event = nil}       icon:setMarginLeft(icons['Icon'..i].dist)       icon:setImageSource(image)       icon:setMarginTop(-5)       icon1:setMarginTop(30)       icon1:setMarginLeft(-3)       icon1:setMarginRight(-6)   icon1:setId('HealthBar'..i)        progress:fill(icon:getId())    end end   function cleanAllPokes()    local image = "pokes/portait.png"    for i = 1, 6 do        local icon = icons['Icon'..i].icon        icon.onClick = function() end       icon:setImageSource(image)      local progress = icons['Icon'..i].progress      progress.onClick = function() g_game.talk("") end   end                end   function onPokes(mode, text) if not g_game.isOnline() then return end    if mode == MessageModes.Failure then        if string.find(text, 'Pokehp/') then          local t = text:explode('/')          table.remove(t, 1)          for i = 1, #t do             barPoke:recursiveGetChildById('HealthBar'..i):setValue(t[i], 0, 100)          end       end    end end   function hide()    barPoke:setVisible(false) end   function show()    barPoke:setVisible(true) end -- End public functions
  12. Gostei
    Aberos recebeu reputação de chavoz em (Resolvido)New Pokemon Bar OTCLIENT   
    manda seu otui pra eu poder fazer a funcao que interpreta o a sendcancel
  13. Gostei
    Aberos deu reputação a SuggestName em [TFS 1.0] - Auto Loot System   
    Fiz esse sistema a algum tempo e resolvi compartilhar.
     
    Geral
     
    o Sistema automaticamente irá recolher o loot dos monstros e adicionar ao player que deu mais dano, caso o loot esteja em sua loot list.
     
    Código
     
    Creaturescript/scripts, crie um novo arquivo chamado autoloot.lua e adicione o código.
     

    function onDeath(player, corpse, killer, mostDamageKiller, unjustified, mostDamageUnjustified)      addEvent(getCorpseLootList, 100, killer, player:getPosition())      return true end  
    Crie um novo script chamado autoloot.lua dentro da pasta data, e adicione o código.      Loot = {}       LOOTSTORAGE = 45713       function Loot:create()         return setmetatable({}, {__index = self})     end       function Loot:add(id)         return table.insert(self, id)     end       function Loot:remove(id)         local newtb = {}         for k, v in pairs(self) do             if (v + 0) ~= (id + 0) then                 table.insert(newtb, v)             end         end         self = setmetatable(newtb, {__index = self})         return self     end       function Loot:getString()         local str = ""         for k, v in pairs(self) do             str = str.. v.. ";"         end         return str     end       function Loot:getTable()         local tb = {}         for k, v in pairs(self) do             table.insert(tb, v)         end         return tb     end       function Loot:saveToPlayer(player)         return doPlayerAddStorageValue(player, LOOTSTORAGE, self:getString())     end       function getPlayerLootList(player)         local lootList = getPlayerStorageValue(player, LOOTSTORAGE)         lootList = lootList:split(";")         local tableList = {}         for k, v in pairs(lootList) do             table.insert(tableList, v)         end         return setmetatable(tableList, {__index = Loot})     end       function getCorpseLootList(player, pos)         local loot = {}         local text = ""         local corpse = Tile(pos):getTopVisibleThing()         local plits = getPlayerLootList(player):getTable()           for i = 0, corpse:getSize() do             table.insert(loot, getContainerItem(corpse.uid, i))         end           for k, v in pairs(plits) do             for x, y in pairs(loot) do                 if (v + 1) == (y.itemid + 1) then                     doPlayerAddItem(player, y.itemid, Item(y.uid):getCount())                     doRemoveItem(y.uid, Item(y.uid):getCount())                 end             end         end         return loot     end   Crie um novo arquivo dentro de talkactions/script chamado autoloot.lua, e adicione o código.
         function onSay(cid, words, param)           local var = param:split(",")         local loots = Loot:create()         loots = getPlayerLootList(cid)         if words == "/autoloot" then              if var[1] == "add" then                 if getItemIdByName(var[2]) then                     for k, v in pairs(loots) do                         if (getItemIdByName(var[2]) + 0 ) == (v + 0) then                             return cid:sendCancelMessage("Alread added in the loot list.")                         end                     end                     loots:add(getItemIdByName(var[2]))                     loots:saveToPlayer(cid)                     return cid:sendCancelMessage("Item ".. var[2].. ", added to loot list.")                 else                     return cid:sendCancelMessage("This item dont exist.")                 end             elseif var[1] == "remove" then                 if getItemIdByName(var[2]) then                     for k, v in pairs(loots) do                         if (getItemIdByName(var[2]) + 0 ) == (v + 0) then                             loots = loots:remove(getItemIdByName(var[2]))                             loots:saveToPlayer(cid)                             return cid:sendCancelMessage("Item ".. var[2].. ", removed from loot list.")                         end                     end                     return cid:sendCancelMessage("Item are not in loot list.")                 else                     return cid:sendCancelMessage("Item name dont exist.")                 end             elseif var[1] == "list" then                 local text = "-- My Loot List --\n\n"                 for k, v in pairs(loots) do                     text = text.. k..": "..getItemName(v).."\n"                 end                 cid:popupFYI(text)             end         end         return true     end   Dentro dos monstros aonde o script irá funcionar, adicione o código.   <script> <event name="AutoLoot"/> </script>   As TAG XML são essas.   Creaturescript.xml <event script="autoLoot.lua" name="AutoLoot" type="death"/>   Talkactions.xml <talkaction words="/autoloot" separator=" " script="autoloot.lua" />   OBS: No meu servidor eu fiz um novo sistema de storages, As funções são "doPlayerAddStorageValue e getPlayerStorageValue", você só precisa mudar o nome da função pois o corpo dela é o mesmo, então mude isso.   Caso tenha esquecido de algo ou algum problema com o código me avise.
  14. Gostei
    Aberos deu reputação a Orochi Elf em Server pokemon   
    Nunca irá encontrar um servidor 100% sem bugs
    A não ser, que você trabalhe em cima de um .
  15. Gostei
    Aberos deu reputação a Orochi Elf em Pokemon Online (new era)   
    Salve galera do TibiaKing, a um tempinho atrás eu criei um tópico aqui no fórum, falando que eu sentia saudades do primeiro servidor de Pokemon (sVkE) que particularmente, foi a melhor versão.
     
    Hoje em dia, todos os servidores tendem a "imitar", o atual maior servidor de pokemon (PokexGames), então eu resolvi fazer os scripts do antigo SVKE em um servidor que eu tou fazendo de zoeira, para passar o tempo.
     
    Fiz esse vídeo mostrando apenas 4 sistemas, o vídeo está um "lixo" UHEAUHEAUHUEAHEA, mas eu tava sem tempo de fazer, e o sistema de "GoBack e Caught", não estão prontos, eu fiz eles só pra ter uma base, porque eu estou fazendo todos os sistemas do 0.
     
    https://www.youtube.com/watch?v=NXSP0dFyHbs
  16. Gostei
    Aberos recebeu reputação de Gabrieltxu em [Pokemon Kpdo] Pokemon kpdo exaioros By Cater   
    o snix so sabe fazer uma coisa desde o Ekz 
  17. Gostei
    Aberos recebeu reputação de Gabrieltxu em [Show-OFF] Ultimo projeto para download?   
    O sistema de setCreatureName funciona se vc sumonar a creatura fora da interface do game , o certo e vc alterar a funcao doSummonMonster para summonar fora da interface , ai vc usa o setCreatureName para alterar o nome ai vc usa o doTeleportThing para puxar a creatura perto do player ! 
  18. Gostei
    Aberos deu reputação a Gabrieltxu em [Show-OFF] Ultimo projeto para download?   
    Eai galera beleza? então já vem um tempo que venho falando que vou fazer um ultimo projeto para download para a galera e tals , esses dias pensei bem se iria fazer mesmo e começei a fazer essa minha ultima contribuição , criei esse tópico para um Show Off do meu ultimo trabalho , nome dele vai ser Pokémon Opal .
     
    --//Pokémon Opal / Inicio do projeto 15/12/2014/ \\--
     
    Caracteristicas do Servidor até Agora :


     
     
    Modificações que não vai ter nesse server que contem no PDA (Por enquanto , essa lista vai mudar ao decorrer do projeto ):
    - Gender System
    - Shinys Aleatorios
     
     
    Prints do avanço:
     



     
    Créditos (Pode mudar de acordo com o avanço do projeto):
    -Eu
    -Aberos (por me ajudar)
    -ZerefSoares (por me ajudar)
    -Slicer e brun123 (pelos sistemas do pda)
    -Erondino (pelo distro + sources)
    - OrochiElf (Por ajudar nas sources)
     
     
     
     
    é isso Galera vou indo fazendo com o tempo , não me cobre , tenho vida social tambem , não é todo o dia que vou mecher no servidor , mas é isso nada de novo , mas apenas outro distro totalmente diferente + sources , creio que vai ajudar muitas pessoas que curte o pda, Lembrando que ele não vai ser livre de bugs , pesso ajuda tambem para a galera que queira ajudar no projeto me enviar uma PM com contato do facebook para eu adicionar para conversarmos melhor.
     
    Se gostou do projeto da um rep+ ai e vlw flw ! 
    Bjao do Tiu GabrielTxu! :*
  19. Gostei
    Aberos recebeu reputação de Liongm em (Resolvido)Source para PDA   
    usa esse aki
    http://www.tibiaking.com/forum/topic/44734-pokemon-dash-v9-o-melhor-open/
  20. Gostei
    Aberos deu reputação a GabrielSapient em Launcher AutoUpdate C#   
    Galera sempre procurei um Launcher AutoUpdate para meu servidor, depois de muita pesquisa e pouco conhecimento consegui fazer um em C#, está ai:
     

     
    1. Download:
     
     
    • Download | • Scan

    2. Oque ele faz:
     
     
    • Verifica a existência da versão local na pasta do cliente;   • Se a versão do arquivo não existir, ele assume que a versão é "1.0" e cria um arquivo de versão;   • Verifica arquivo .xml no servidor de atualização;   • Baixar atualizações para todas as versões maiores do que a versão atual do cliente (atualiza tudo em apenas formato de arquivo .zip);   • Extrai os arquivos .zip;   • Exclui os arquivos .zip após a extração;   • Arquiva a versão atualizada na pasta do cliente;   • E, finalmente, desbloqueia o botão "Start Game".     3. Como editar:     • Abra o arquivo .sln na pasta "VS Project" com o Visual Studio:   Procure por: string Server = "http://127.0.0.1/Updates/"; • Altere o http://127.0.0.1/Updates/ para qualquer URL que você estará hospedando suas atualizações.
        • Agora vamos procurar por:   Process.Start("OTClient PkR DX9.exe", "\\Pokémon Rusty"); • Modifique o OTClient PkR DX9.exe pelo nome do .exe do seu Client.
     
    • \\Pokémon Rusty e a pasta que está seu .exe e vai ficar seu Launcher. (troque sem tirar os "\\")
     

      • No Visual Studio, selecione o controle WebBrowser(Neste caso, o nome "patchNotes") e alterar a url do "http://127.0.0.1/"para o caminho do arquivo index.html, na pasta do host:       OBS: Isto á opcional, é apenas um template em .html. Você pode remove-lo e editar da maneira deseja.       • Agora apenas jogue o .exe, .dll e o arquivo version da pasta "Launcher\VS Project\Launcher v2\bin\Debug ou Release" para a pasta de seu Client:       Pronto! Agora e com o Site.     • No host do site, apos colarmos a pasta Updates, editamos o arquivo Updates.xml, para cada atualização adicionamos um <update> fechamos com </update> como no exemplo do arquivo. Colocamos o arquivo atualização em .zip nessa mesma pasta, editando a versão e o nome no arquivo:   • No arquivo version.txt colocamos a versão da nova atualização:   • Uma dica para o .zip de atualização é colocar em pastas o caminho no client desejado a fazer update. Exemplo: data/things/854 nesta pasta colocaremos os arquivos que será substituído, no exemplo foi Tibia.spr e .dat. Depois compactamos e deixamos na pasta Updates, sem esquecer de colocar o nome no arquivo Updates.xml.   4. Dica   • Pronto! Agora e só criar um instalador com o launcher, com atalho na área de trabalho (o launcher é o .exe que você colocou no client). Você pode modificar o launcher do jeito que quiser, o arquivo index.html e etc. Quando abrir o arquivo ele irá atualizar, liberar o botão "Start Game", e quando você clicar vai fechar o Launcher e abrir o Client.     5. Créditos     Eu - Pelo launcher e pelo tutorial.
  21. Gostei
    Aberos recebeu reputação de Its Lee em (Resolvido)[Pedido] Otserve de Pokémon   
    essa base nunca foi disponibilizada , essa base e de um polones
  22. Gostei
    Aberos recebeu reputação de Wend em (Resolvido)[OTClient] Bug HealthBar   
    nao seria mais facil vc colocar aki 
    setSkillPercent('health', percent)
     
    Substitui :
    onHealthChange(player, player:getHealth(), player:getMaxHealth())
     
    por
     
    onHealthChange(player, player:getHealth(), player:getMaxHealth(), player:getHealthPercent())
  23. Gostei
    Aberos recebeu reputação de slyton em Recrutamento Spriter   
    a base e mais do gristony do que minha   ! e eu eo gristony estamo ajudando o slyton
  24. Gostei
    Aberos recebeu reputação de Wend em Compilando OTCLient no Windows   
    esse erro ai e do MinGw , vc teve ter instaldo errado ow o path na variavel de ambiente deve ta errado
  25. Gostei
    Aberos deu reputação a Orochi Elf em Pokémon new age (Pna) Open source   
    http://www.tibiaking.com/forum/topic/44181-mod-catch-window/
     
    Enfim .. jajá vou disponibilizar esta Catch Window.
     
    Se quizer, voce poderia atualizar a sua.. ou não ...voce quem sabe

Informação Importante

Confirmação de Termo