Ir para conteúdo

lkrazy

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    lkrazy deu reputação a matsantos em [Resolvido] ao comprar itens no shop.   
    Column not found: 1054 Unknown column 'product' in 'field list'' in 
    diz que ta faltando a coluna product
    executa isso na sua database
     
     
    se não mudar nada , usa essa
     
     
  2. Gostei
    lkrazy deu reputação a Kemmlly em [AJUDA] Erro Mysql Query para salvar char   
    Crie um chá pelo site, escolha uma vocação mas n entre no jogo, vá no banco de dados e procure o player e olhe sua vocação se está definido corretamente, se sim, acredito que n seja quey e sim algum script, se não, vá na página create character procure a função vocations e mande pra mim q edito pra você .
  3. Gostei
    lkrazy deu reputação a Kemmlly em (Resolvido)[Pedido] NPC Task System   
    @Xaraziinho
    ["cyclops"] = {monster_race={"cyclops","cyclops smith","cyclops drone"}, storage_start = 200204, storage = 91004,count = 500,exp = 50000,money = 30000},
     
    800 era o dinheiro q iria receber
  4. Gostei
    lkrazy deu reputação a Kemmlly em Ajuda com shop do server   
    Mande o seu shop.lua
  5. Gostei
    lkrazy deu reputação a Augusto em Cursos em Video Aula PHP+MySQL   
    PHP+MySQL







    Galera, estava procurando material relacionado a PHP (básico para eu começar a brincar) e encontrei várias video aulas sobre o assunto, abordando tambem MySQL, ajudando tambem bastante quem esta desenvolvendo sites pra OtServ. O autor se preocupou em desenvolver um método de ensino tanto para pessoas que ja conhecem a linguagem, como para leigas (como eu). Então, vale a pena.

    4shared - Parte 1 - Parte 2

    Tamanho: 1.2GB
    Duração: 9 Horas.
    Idioma: Portugues.

    Crétidos: BaixeBr.org
  6. Gostei
    lkrazy deu reputação a vankk em Modern AAC Table Shop_   
    CREATE TABLE IF NOT EXISTS `shop_history` ( `id` int(11) NOT NULL AUTO_INCREMENT, `product` int(11) NOT NULL, `session` varchar(256) NOT NULL, `player` varchar(256) NOT NULL, `date` int(10) NOT NULL, `processed` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=31 ; CREATE TABLE IF NOT EXISTS `shop_offer` ( `id` int(11) NOT NULL AUTO_INCREMENT, `points` int(11) NOT NULL DEFAULT '0', `category` int(11) NOT NULL DEFAULT '1', `type` int(11) NOT NULL DEFAULT '1', `item` int(11) NOT NULL DEFAULT '0', `count` int(11) NOT NULL DEFAULT '0', `description` text NOT NULL, `name` varchar(256) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=16 ; CREATE TABLE IF NOT EXISTS `shop_donation_history` ( `id` int(11) NOT NULL AUTO_INCREMENT, `method` varchar(256) NOT NULL, `receiver` varchar(256) NOT NULL, `buyer` varchar(256) NOT NULL, `account` varchar(256) NOT NULL, `points` int(11) NOT NULL, `date` int(10) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;  
  7. Gostei
    lkrazy deu reputação a emersontb em Ajuda website poketibia erro   
    Você não definiu o id account_id  no arquivo ou no banco de dados !
  8. Gostei
    lkrazy deu reputação a Vodkart em erro ao passar com o pokemon em cima do piso premium   
    function onStepIn(cid, item, position, fromPosition) if not isPlayer(cid) then return true end if getPlayerPremiumDays(cid) >= 1 then doSendMagicEffect(getThingPos(cid), 12) doPlayerSendTextMessage(cid, 25, "Seja Bem-vindo ".. getPlayerName(cid) .." !") else doTeleportThing(cid, fromPosition, true) doSendMagicEffect(getThingPos(cid), 2) doPlayerSendTextMessage(cid, 25, "Apenas Players Vip's podem passa.") end return true end  
  9. Gostei
    lkrazy deu reputação a Kemmlly em Erro Simples com Background Modern AAC   
    Esse erro não faz sentido nenhum, o 127.0.0.1 e o localhost são exatamente o mesmo caminho e apontam para os mesmos arquivos. Talvez seja cash, limpe o histórico e tente novamente, se não funcionar me manda seu layout.php e me diz o nome de sua imagem background e o formato dela.
  10. Gostei
    lkrazy deu reputação a murluka em Outlands Pxg Download   
    Outland completa para PDA.
     
    DOWNLOAD: http://www.4shared.com/rar/VaQnQ718/Outlands_26112013.html?

    O 4shared já faz o scan.
     
    Outlands
     
    Poison


    Ghost



    Fire (East)


    Bug


    Normal


    Fly 

    Electric


    Earth


    Fight


    Dragon


     
     
    Os leveis dos ataques dos pokémons de Kanto estão como a do Pxg.
    Outlands feitas com itens do server do Bolz (PDA).
    Coloquei prints de algumas Outlands, não deu pra por de todas (forum doido).


    SE GOSTOU, DÁ UM GOSTEI E DEIXE SEU COMENTÁRIO 

    Créditos:
    murluka
     
  11. Gostei
    lkrazy deu reputação a kpdo em [Pokemon Kpdo] Pokemon kpdo exaioros By Cater   
    Olá caros amigos do forum estou aqui postando o pack completo do pokemon kpdo que atualmente se econtra online a 3 anos, eu sou o administrador do atual servidor pokemon kpdo, irei primeiramente falar o motivo de eu estar postando.
     
    Um dos meus EX-staffs roubou os arquivos que eu passei e resolveu vender a terceiros o que eu achei muito anti-ético então resolvi postar open source, pois o que o mesmo fez comigo foi muito errado então não restou a nao deixar gratuito para que o mesmo não lucre nas minha costa.
     
    Download:
    Client+Servidor: Mega
     
    Scan: O scan pega o client como um falso positivo por ter injeção de dll injection da barra do meu cliente porém vale lembrar que não tem virus, assim como o pack é um falso positivo.
    Link do Scan: VirusTotal
     
    Os sistemas que o jogo tem são:
    Sistema de som Cool down e poke bar. Duel System Tv Cam System Sistema de torneio Sistema de Duelos com aposta Pokemons da 1 até a 5 geração e seus devidos shinys. Sistema de shinys  Muitas quests  TM system etc.  
    Creditos:
    Renan(Admin) Equipe staff kpdo atual e EX staffs; www.exaioros.com
  12. Gostei
    lkrazy recebeu reputação de wougoplex em Ajuda Como Adicionar Pokemon Sai da Ball Etc!!!   
    Dá uma olhada nesse Tópico.
    Ajudei ? +REP
     
  13. Gostei
    lkrazy deu reputação a extaN em [PEDIDO] Npc Saffari Zone   
    Crie um arquivo xml na pasta de npcs e coloque isso:
    <?xml version="1.0" encoding="UTF-8"?> <npc name="Saffari" script="npcsaffari.lua" walkinterval="350000" floorchange="0" speed="0"> <health now="100" max="100"/> <look type="662" head="114" body="95" legs="58" feet="0"/> <parameters> <parameter key="message_greet" value="Ola. O saffari é um ótimo local para capturar pokemons! Para mais informações diga {travel}." /> <parameter key="message_farewell" value="Tchau." /> <parameter key="message_walkaway" value="Tchau." /> </parameters> </npc> Depois na pasta scripts crie um arquivo .lua chamada npcsaffari.lua e coloque isso la: 
    local lugar = {x=, y=, z=} -- Altera as cord aq < local item = 2152 local quantidade = 20 local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function santaNPC(cid, message, keywords, parameters, node) if(getPlayerItemCount(cid, 12617, 20) return false end if(not npcHandler:isFocused(cid)) then return false end if (parameters.present == true) then if(doPlayerRemoveItem(cid,item,quantidade) == true) then doTeleportThing(cid, lugar) npcHandler:say('Voce foi teleportado para o saffari.',cid) else npcHandler:say('Voce não tem o dinheiro suficiente para ser teleportado',cid) end npcHandler:resetNpc() return true end end npcHandler:setMessage(MESSAGE_GREET, "Ola|PLAYERNAME|. Eu posso te levar para o saffari,fale {saffari}.") local noNode = KeywordNode:new({'no'}, santaNPC, {present = false}) local yesNode = KeywordNode:new({'yes'}, santaNPC, {present = true}) local node = keywordHandler:addKeyword({'saffari'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Para ir para o saffari você devera pagar 2k, voce tem certeza? Se sim digite {yes}'}) node:addChildKeywordNode(yesNode) node:addChildKeywordNode(noNode) npcHandler:addModule(FocusModule:new()) PS: Coloque as cordenadas do local para onde ira ser teletransportado.
     
    Sou novo na área de scripts, não sei se ele vai pegar. O script n foi testado, qualquer problema fale aq no post, n me mande msg
     
    Te ajudei ?? REP+
  14. Gostei
    lkrazy deu reputação a AgaSsI em [Sistema] Auto Loot   
    creaturescripts.xml
      <event type="login" name="aloot_reg" event="script" value="aloot.lua"/> <event type="kill" name="aloot_kill" event="script" value="aloot.lua"/> creaturescripts/scritps aloot.lua
      function onLogin(cid) registerCreatureEvent(cid, "aloot_kill") return true end local stor = 7575 function autoloot(cid, target, pos) local function doStack(cid, itemid, new) local count = getPlayerItemCount(cid, itemid) if (count > 100) then count = count - math.floor(count / 100) * 100 end local newCount = count + new if (count ~= 0) then local find = getPlayerItemById(cid, true, itemid, count).uid if (find > 0) then doRemoveItem(find) else newCount = new end end local item = doCreateItemEx(itemid, newCount) doPlayerAddItemEx(cid, item, true) end local function scanContainer(cid, uid, list) for k = (getContainerSize(uid) - 1), 0, -1 do local tmp = getContainerItem(uid, k) if (isInArray(list, tmp.itemid)) then if isItemStackable(tmp.itemid) and (getPlayerItemCount(cid, tmp.itemid) > 0) then doStack(cid, tmp.itemid, tmp.type) else local item = doCreateItemEx(tmp.itemid, tmp.type) doPlayerAddItemEx(cid, item, true) end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Looted ' .. tmp.type .. ' ' .. getItemNameById(tmp.itemid) .. '.') doRemoveItem(tmp.uid) elseif isContainer(tmp.uid) then scanContainer(cid, tmp.uid, list) end end end local items = {} for i = getTileInfo(pos).items, 1, -1 do pos.stackpos = i table.insert(items, getThingFromPos(pos)) end if (#items == 0) then return end local corpse = -1 for _, item in ipairs(items) do local name = getItemName(item.uid):lower() if name:find(target:lower()) then corpse = item.uid break end end if (corpse ~= -1) and isContainer(corpse) then scanContainer(cid, corpse, tostring(getPlayerStorageValue(cid, stor)):gsub('_', ''):explode(',')) end end function onKill(cid, target, lastHit) if not isPlayer(target) then local infos = getPlayerStorageValue(cid, stor) if (infos == -1) then return true end local list = tostring(infos):explode(',') if (#list == 0) then return true end addEvent(autoloot, 150, cid, getCreatureName(target), getCreaturePosition(target)) end return true end talkactios.xml
      <talkaction words="/aloot" hide="yes" event="script" value="aloot.lua"/> Talkaction/scrips
      local stor, limit = 7575, 5 --storage, limit to add. local allow_container = false --empty! not looted with items, atleast for now. function onSay(cid, words, param) local expl = param:explode(':') local action, rst = expl[1], expl[2] if (action:lower() == 'check') then local infos, list = getPlayerStorageValue(cid, stor), {} if (infos ~= -1) then list = tostring(infos):explode(',') end local txt = 'Autoloot List:\n' if (#list > 0) then for k, id in ipairs(list) do id = id:gsub('_', '') if tonumber(id) then txt = txt .. getItemNameById(tonumber(id)) .. ((k < #list) and '\n' or '') end end else txt = 'Empty' end doPlayerPopupFYI(cid, txt) elseif (action:lower() == 'add') then local infos, list = getPlayerStorageValue(cid, stor), {} if (infos ~= -1) then list = tostring(infos):gsub('_', ''):explode(',') end if (#list >= limit) then return doPlayerSendCancel(cid, 'You already have ' .. limit .. ' autolooting items.') end local item = tonumber(rst) if not item then item = getItemIdByName(rst, false) if not item then return doPlayerSendCancel(cid, 'not valid item.') end end if not allow_container and isItemContainer(item) then return doPlayerSendCancel(cid, 'this item can not be autolooted.') end local attrs = getItemInfo(item) if not attrs then return doPlayerSendCancel(cid, 'not valid item.') elseif not attrs.movable or not attrs.pickupable then return doPlayerSendCancel(cid, 'this item can not be autolooted.') end if isInArray(list, item) then return doPlayerSendCancel(cid, 'already added.') end table.insert(list, tostring(item)) local new = '' for v, id in ipairs(list) do new = new .. '_' .. id:gsub('_' ,'') .. ((v < #list) and ',' or '') end doPlayerSetStorageValue(cid, stor, tostring(new)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Item >>' .. getItemNameById(item) .. '<< has been added to the autoloot list.') elseif (action:lower() == 'remove') then local infos, list = getPlayerStorageValue(cid, stor), {} if (infos ~= -1) then list = tostring(infos):gsub('_', ''):explode(',') end if (#list == 0) then return doPlayerSendCancel(cid, 'You dont have any item added.') end if (#list >= limit) then return doPlayerSendCancel(cid, 'You already have ' .. limit .. ' autolooting items.') end local item = tonumber(rst) if not item then item = getItemIdByName(rst, false) if not item then return doPlayerSendCancel(cid, 'not valid item.') end end if not isInArray(list, item) then return doPlayerSendCancel(cid, 'This item is not in the list.') end local new = '' for v, id in ipairs(list) do if (tonumber(id) ~= item) then new = new .. '_' .. id:gsub('_' ,'') .. ((v < #list) and ',' or '') end end doPlayerSetStorageValue(cid, stor, tostring(new)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Item >>' .. getItemNameById(item) .. '<< removed from the autoloot list.') end return true end Usando
    /aloot check
    Cheka a Lista dos Loots
    /aloot add:itemid ou nome do item
    Exemplo
    /aloot add:worm
    /aloot add:2170
    16:42 Item >>worm<< has been added to the autoloot list.
    Para remover
    /aloot remove:worm
    /aloot remove:2170
    Exemplo Testado:
    16:41 Looted 2 gold coin.
    16:41 Looted 1 cheese.
    CREDITOS: eduardobean
    é isso pessoal gosto da + Rep
  15. Gostei
    lkrazy deu reputação a emersontb em Como Fazer BackUp da DataBase ?   
    Se estiver usando o PHPAdmin:
    Seleciona sua database <, depois clique em Exportar !!
     
     
  16. Gostei
    lkrazy deu reputação a Ayron5 em [Npc] Que vende Stones (itens) por diamonds   
    Antes de tudo quero deixar claro que pesquisei no fórum, Não encontrei. Resolvi fazer o meu  
    Este NPC faz oq o titulo diz  vende Stone ou Item por Diamond. Npc simples e configurável  Testado em Poketibia 8.54  tfs 0.3.6 
     
    Em data/npc, coloque um novo arquivo com o nome Ditem.xml e cole isso dentro:
     
    Na pasta data/npc/script, crie um arquivo chamado "Ditem.lua" e cole isso:
     
    Para adicionar mais itens:
     
    1º -  adiciona o nome do item para o player falar o nome dele, caso queira comprar - 
    selfSay('Eu vendo Fire stone, Water stone, Leaf stone. Diga qual voce quer adquirir.', cid) 2º - Após o ultimo 
    talkState[talkUser] = 3 Vc adiciona isso - 
    elseif(msgcontains(msg, '----NOME DO ITEM----') or msgcontains(msg, '---nome do item---')) then selfSay('O item Custa 3 Diamonds, Voce vai querer?', cid) talkState[talkUser] = 4 ----- Aqui coloca 4 pq ja tem a 3 3º - Na parte de  -- Confirmação da Compra -- Depois de  um      
    talkState[talkUser] = 0 end Adicione --  elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 4) then ---Coloque 4 por causa da ---talkState[talkUser] = 4--- if(doPlayerRemoveItem(cid, 2145, 3) == true) then ----Item q sera removido no caso 2145 Diamonds e 3 é a quantidade. selfSay('Thanks!', cid) doPlayerAddItem(cid, 11447, 1) ----- 11447 é o item q será entregue no caso é a fire stone, o 1 é a quantidade de itens. talkState[talkUser] = 0 else selfSay('Voce nao tem diamonds suficiente.', cid) talkState[talkUser] = 0 end Bom é isso espero ajudar alguém rsrsrs  
  17. Gostei
    lkrazy deu reputação a wevertonvrb em [Ajuda] Como Aumentar o Limite de Fishing fighter   
    no vocations.xml 
    muda o fishing coloque 1.2 e testa vai mexendo aumentando ou diminuindo ate que fique um limite que você queira
  18. Gostei
    lkrazy deu reputação a Reds em Script de Comprar Item por Comando.   
    function onSay(cid, words, param)
    moeda = getPlayerItemCount(cid, 2149)
    if moeda >= 50 then
    doPlayerRemoveItem(cid, 2149, 50)
    doPlayerAddItem(cid,iddoitemqueganha,quantiedaddqueganha)
    return TRUE
    else
    doPlayerSendCancel(cid, "Voce nao tem dinheiro.")
    return FALSE
    end
    end
     
     
    nao testei
  19. Gostei
    lkrazy deu reputação a Reds em [Ajuda] Ao editar o mapa com RME buga o depot.   
    abre as propriedades dele e coloca um id
  20. Gostei
    lkrazy deu reputação a Gabrieltxu em Criando Client com launcher   
    Você já jogou GrandChase, League of Legends? Se já, Você deve ter reparado que quando você abre esses jogos, aparece uma janela com promoções, opções do jogo, um botão para abrir o jogo. Alem disso, essa janela baixa atualizações, mostra o progresso, atualiza o seu jogo e habilita você abrir o jogo. Isso é um Launcher, e é isso que eu estou disponibilizando para a comunidade! Um meio fácil, simples de mostrar promoções, video, tweets e qualquer tipo de Media que possa ser inserida em um site. Um meio fácil e simples de atualizar o seu próprio jogo. Um Launcher que é totalmente que a interface é totalmente configurável com um sistema de Skins.
    Está interessado? Baixe Já o Launcher e aprenda no meu post como configura-lo!

    Download:http://www.mediafire...xmohk7hy8rgniep


    Oque ele é?


    O Launcher funciona de uma forma Simples.Ele abre o site que irá mostrar as propagandas, media, etc. Depois, ele compara os arquivos do computador do player com os arquivos no servidor. Caso existam arquivos novos ou caso algum arquivo foi modificado ou até deletado, o Launcher baixa esses arquivos e coloca/substituiu eles no lugar certo ou deleta o arquivo caso ele não exista mais no servidor. Enquanto está baixando, o Launcher mostra para o player qual arquivo está baixando, quantos por cento do total da atualização já foi concluída com uma barra de progresso. Quando a atualização acaba, o Launcher mostra uma mensagem para o player e habilita um botão para que o player possa abrir o jogo. Simples assim



    Como Usar


    Descompacte o arquivo UpdateFiles.7z em qualquer lugar. Abra a pasta UpdateFiles, depois, abra a pasta Launcher. Todos esses arquivos são o Launcher. Esses são os arquivos que devem estar no computador do player, como o client do tibia. Use instaladores e crie um atalho(area de trabalho, barra de iniciação rapida) com o nome e ícone do seu server.Importante: Antes de entregar o launcher ao player, certifique-se de configura-lo e configurar o servidor.





    Configurando o Launcher



    O launcher.exe é a parte principal do Launcher. Você o configura de duas maneiras: Launcher.ini e Skin.ini. No Launcher.ini você configura as principais configurações do Launcher.exe. No Skin.ini, você configura a interface grafica(sistema de skins) do Launcher, e as imagens que são usadas nela.





    Launcher.ini




    O launcher.ini é encontrado na mesma pasta que o launcher.exe.

    [General] ; Titulo da janela do Launcher, que aparece na barra de tarefas, etc Title=Launcher! ;É o link da pagina que vai aparecer dentro do Launcher. Dentro do rentangulo da pagina. ViewSite=www.google.com.br ;É o site de Download dos arquivos. DownloadSite=www.google.com.br ;Seu id unico. ELe serve para abrir apenas uma instancia do Launcher. MutexID=idunico ;Nome do executavel do Launcher. Não editar. LauncherExe=Launcher.exe ;Nome do executavel do seu jogo. Ex: tibia.exe, etc. executable=pbr.exe ;Mensagem que aparece quando a atualização está completa FinishMsg=Atualização completa Esse é o arquivo de configuração. Mas como disse Jack Stripador, vamos por partes: Title: É o titulo do launcher. o Titulo da janela, que aparece na barra de tarefas e tal. ViewSite: É o link da pagina que vai aparecer dentro do Launcher. DownloadSite: É o link de download dos arquivos: Ex: www.seusite.com.br/UpdateFiles/ MutexID: É um id unico seu. Ele serve para que existe apenas uma instancia do Launcher aberta no computador do player. LauncherExe: É o nome do executavel. altere isso caso você mude o nome do launcher.Recomendo que não altere, inves disso, crie no instalador um atalho com o nome do seu server que aponte para o Launcher.exe. Executable: É executável do seu client. FinishMsg: É a mensagem que aparece quando a atualização está completa. Ela aparece em um label dentro do programa, no mesmo lugar que aparece o nome do arquivo que está sendo baixado no momento. [General] ;Posição X(horizontal) e Y(horizontal) em pixels do Botão OK/Enter(o butão que abre O Cliente quando a atualização está completa) EnterBtnX=100 EnterBTnY=250[/b][/font][/color] [b];Posição X(horizontal) e Y(horizontal) em pixels do Botão Minimizar MinimizeBtnX=350 MinimizeBTnY=40[/b] [b];Posição X(horizontal) e Y(horizontal) em pixels do Botão Fechar CloseBtnX=450 CloseBtnY=10[/b] [b];Posição X(horizontal) e Y(horizontal) em pixels da barra de progresso(que mostra o progresso do download) ProgressX=10 ProgressY=300 ;Tamanho em X(horizontal) e Y(horizontal) em pixels da barra de progresso(que mostra o progresso do download) ProgressWidth=100 ProgressHeight=20 ;A cor da barra de progresso cheia ProgressColor=16776960 ;A cor de fundo da barra de progresso ProgressBackColor=16776960[/b] [b];Posição X(horizontal) e Y(horizontal) em pixels do retangulo da pagina de internet(viewsite) ScreenX=10 ScreenY=10 ;Tamanho em X(horizontal) e Y(horizontal) em pixels do retangulo da pagina de internet(viewsite) ScreenWidth=200 ScreenHeight=200[/b] [b];Posição X(horizontal) e Y(horizontal) em pixels do label(texto) que mostra os arquivos sendo baixados e mostra a actualizedMsg FileLbX=200 FileLby=200 ;Tamanho em X(horizontal) e Y(horizontal) em pixels do label(texto) que mostra os arquivos sendo baixados e mostra a actualizedMsg FileLbWidth=100 FileLbHeight=20[/b] [b]


    lembrando que o tamanho dos butões(em x e y) é configurado a partir das imagens da skin.

    Imagens:

    Na pasta Skin, existe a pasta IMG, essa pasta tem as imagens que são usadas no Launcher e fazem parte da skin,Por exemplo, botões, fundo do launcher.
    você deve substituir essas imagens para ter seu proprio design. Elas são:
    background.png: É o fundo do Launcher, a imagem que fica atraz, pode ser transparente.
    close.png: É a imagem do butão de fechar.
    minimize.png: é a imagem do butão de minimizar.
    enteron.png: É a imagem do butão Enter quando o client está atualizado e pronto para ser aberto.
    enteroff.png: É a imagem do butão enter quando o client está desatualizado.
    loadbackground.png: É a imagem de fundo de quando o launcher está carregando, pode ser transparente(efeito dahora )



    Brinque a vontade com as skins! Assim você ficará mais familiarizado com a interface gráfica.






    Servidor







    O sistema de Update do Launcher é muito simples. Ele apenas faz uma copia do servidor. O computador do player sempre está igual ao servidor. Caso mude algo no servidor, no computador do player essa mudança irá ser baixada e atualizada.



    Configurando



    Primeiro, coloque todos os arquivos(como uma pasta chamada client que contem o seu client tibia e os arquivos dele) que devem ser atualizados dentro da pasta update que fica dentro da pasta UpdateFiles. Todo arquivo ou pastas que devam ser atualizada devem ser estar dentro da pasta Update.
    Depois, certifique-se de configurar o launcher da maneira que quiser. Depois, execute O gendata.exe. A seguir, copie a pasta UpdateFiles para a pasta Htdocs dentro da pasta do XAMP. Pronto, o servidor está pronto.
    Lembre-se que caso exista algum arquivo no computador do player que esteja dentro da mesma pasta do Launcher e não foi configurado no servidor com o gendata, ele foi vai ser deletado. Isso serve para deletar arquivos que não são mais usados.
    A pasta "updatefiles" vai estar acessivel pela internet por esse link "www.seusite.com.br/updatefiles/.
    Esse link você deve botar no DownloadSite no launcher.ini.
    O sistema de download do Launcher é como se você bota-se o seu client para download no seu proprio site usando o seu proprio servidor para o download. Geralmente, você coloca o arquivo na htdocs, e depois bota no site o link(www.seusite.com.br/arquivo.exe). O launcher funciona da mesma forma, só que é automatizado. Você usa o gendata, coloca a UpdateFiles dentro da htdocs e coloca no downloadsite(launcher.ini) do launcher: www.seusite.com.br/updatefiles/ . Assim, ele sabe a pasta que estão os arquivos e faz o download de cada um.

    Esse modelo é muito simples, e muito util. Cada vez que você quiser modificar o Launcher no computador do player(caso eu atualize o launcher ou você mude alguma configuração) é so modificar os arquivos da pasta Launcher dentro da UpdateFiles e usar o gendata denovo. Para atualizar os arquivos do Client, apenas mude o que tem dentro da pasta client que fica dentro da pasta Update e execute o GenData.

    Lembre-se de atualizar o instalador do jogo cada vez que modificar/atualizar o launcher.

    Os arquivos, quando são baixados do servidor, são colocados na pasta do Launcher no computador do Player. Por exemplo, os arquivos dentro da pasta Client, ficam dentro de uma pasta Client na pasta do Launcher no computador do Player.Todas as pastas e arquivos dentro da pasta Update vão para a mesma pasta do Launcher.


    Caso exista um arquivo novo que não exista no computador do player, o launcher baixa esse arquivo novo. Caso um arquivo não exista mais no servidor(foi removido da pasta update) o launcher deleta no computador do Player.

    O launcher e o gendata aceitam qualquer tipo de arquivos e pastas. Quer dizer, caso você crie pastas dentro de pastas, o launcher irá criar essas pastas no computador do player e irá colocar o arquivo no lugar certo. Assim, o launcher é funcional para qualquer tipo de update, alem de jogos e tibia.


    Creditos: cristofermartins e Gabrieltxu
    Skin.ini O skin.ini é encontrado na pasta skin, dentro da pasta que se encontra o launcher.exe.O skin.ini faz parte do sistema de Skins. Você pode construir varias skins, e quando quiser coloca-las no Launcher, você apenas modifica o skin.ini ou as imagens da pasta IMG. Ou Até substituir a pasta Skin inteira, trocando a skin por completo.

Informação Importante

Confirmação de Termo