Jump to content

Rayzir

Members
  • Content Count

    0
  • Joined

  • Last visited


Reputation Activity

  1. Upvote
    Rayzir reacted to JulioCF in Decompilando .Lub para .Lua   
    Tutorial Decompilando .Lub para .Lua   Recentemente comecei a mexer com a janela de infinitas possibilidades que é a adição de custom itens e custom mobs e me deparei com a necessidade de realizar decompilação de arquivos .lub para .lua na atual pasta em uso para hexeds 2012+ que é a luafiles514. Este é um tutorial que ira de uma forma simples explicar como fazer este procedimento.   - Índice Programas Utilizados. Procedimentos. Agradecimentos. Requerimentos   - Luadec 0.6: http://files.luaforge.net/releases/luadec/luadec/0.6 - Wordpad ou qualquer editor de texto (recomendado Wordpad ^^)     Procedimentos   - Crie uma Nova Pasta (Onde quiser) - Baixe o Luadec 0.6 e extraia o Luadec.exe para a pasta criada. - Crie um arquivo de texto com o nome: batch.txt - Edite o batch.txt, selecione a opcao "Salvar como..", selecione "Todos os arquivos" e salve com o nome de batch.bat   Seu ambiente para decompilação dos .lub está agora pronto. Para decompilar um .lub (utilizaremos como exemplo o accessoryid.lub):   - Copie e cole o arquivo accessoryid.lub na pasta onde estao o luadec.exe e o batch.bat - Edite o arquivo batch.bat e escreva:     
    luadec accessoryid.lub > accessoryid.lua   
      - Salve e feche o editor de texto. - Em seguida execute o batch.bat e sera gerado o arquivo accessoryid.lua.    Para decompilar qualquer outro .lub siga os mesmos procedimentos seguidos no exemplo: - Copie o arquivo.lub para o ambiente de decompilação.   - Edite o batch.bat para o nome do arquivo de entrada e saída.    
    luadec entrada.lub > saida.lua   
      - Execute o batch.bat.     Agradecimentos   Ao usuário ivanyan do rathena que foi autor de um post onde eu conheci o luadec para decompilar o que eu precisava. Espero que seja útil. Abraços, Neko.   Dica retirada do brAthena neste post.
  2. Upvote
    Rayzir reacted to Ind in Introducing Hercules Channel System   
    Introducing Hercules' Channel System
    Hello~! - What?!
    1st, it is a replacement for the old @main 2nd, it is a super ultra mega improvement compared to the functionality @main provided. 3rd, whops. there is no 3rd. channels.conf format
        /* default channels (available on boot) */     default_channels: {         /* channel_name : channel_messages_color */          main: "Orange" /* available as #main */         support: "Blue" /* available as #support */         trade: "Red" /* available as #trade */         offtopic: "Cyan" /* available as #offtopic */         /* as many channels as you like */     }     /* colors available */     colors: {         Default: "0xffffff" /* custom channels will use the first in the list unless a font is selected thru @channel */         Red: "0xff0000"         Blue: "0x83cfe9"         Orange: "0xe57c00"         Cyan: "0x00b89d"         Yellow: "0xffff90"         Green: "0x28bf00"         Normal: "0x00ff00"         /* as many colors as you like */     }     /* allow users to create their own (private) channels through @channels command? */     /* (must also allow players to use @channels in groups.conf) */     allow_user_channel_creation: true     /* "map_local_channel" is a instanced channel unique to each map */     map_local_channel: true     map_local_channel_name: "map" /* available as #map */     map_local_channel_color: "Yellow"     map_local_channel_autojoin: true /* can disable autojoin in specific maps through mapflag or zone: nomapchannelautojoin */     /* "ally_channel" is a channel shared by all your guild allies */     ally_channel_enabled: true     ally_channel_name: "ally" /* available as #ally */     ally_channel_color: "Green"     ally_channel_autojoin: true Notes on the format/configuration
    default_channels is the list of reboot-persistent channels, you can setup as many as you like and each can have its own color for chat, which you can specify in colors (again, you can setup as many as you like) map_local_channel is a feature that grants each map its own instanced channel (available, by default as #map -- which can be changed as per map_local_channel_name) map_local_channel_autojoin whether users will autojoin the local channel when they load a map with it enabled map_local_channel_autojoin can be disabled on selected maps (e.g. if you dont want it on gvg maps) through a mapflag (with a horribly long name D:) '<map name><tab>mapflag<tab>nomapchannelautojoin' ally_channel_enabled is a feature that grants a instanced channel for each guild's allies (as well as their own members), available by default as #ally -- which can be changed as per map_local_channel_name ally_channel_autojoin whether users will autojoin their respective ally chats upon login. New Commands Explained
    @join Simple: @join <#channel_name>or, for password-protected rooms: @join <#channel_name> <password> @channel Does a number of things. Create a new channel (option available as long as allow_user_channel_creation is enabled) @channel create <#channel_name> <password> List public channels (groups with hchsys_admin can view private channels as well) @channel list Change a channel's color (requires to be owner of said channel or be in a group with hchsys_admin permission) @channel setcolor Samples available colors and displays their keys/names @channel list colors Leaves a specific channel @channel leave <#channel_name> Binds your global chat to a specific channel, making everything you type that'd normally be displayed to nearby characters be redirected to that channel instead @channel bindto <#channel_name> Unbinds your global chat from the current (if any) binded channel @channel unbind Bans a specific character from a channel @channel ban <#channel name> <character name> Lists all banned characters from a channel (groups with channel system admin permission can also see their account id) @channel banlist <#channel name> Unbans a specific character from a channel @channel unban <#channel name> <character name> Changes a channel's options (for now, channel message delay and announce-when-someone-joins) @channel setopt <#channel name> <option name> <option value> How to speak in a #channel
    You can either bind a channel to your global chat (see @channel bindto above) or PM the channel you want to speak to, if you attempt to send a pm to a non-password protected channel that you have not joined, you'll autojoin. Other stuff
    as I coded this feature I also improved overall guild processing/lookup, extremely, extremely faster (did I already say its ridiculously faster? WoE overhead probably more than halved with this). over a hundred lookups were replaced by a cached guild state that takes only 4~8 bytes per player. The commit also fixed a "wearing-garment-removed-costume-garment-look" bug - special thanks to jTynne for letting me know~! Groups with channel admin permission can bypass the channel message delay Special Thanks
    to Streusel for proposing an idea that'd end up as the @channel bindto feature. to Frost for proposing the per-channel message delay limitation to Fatalis for proposing what'd end up as the @channel ban, @channel unban and @channel unbanall to Zopokx for proposing an improvement to how the map/local channels function Links~!
    Commit Commit (update)
  3. Upvote
    Rayzir reacted to Senos in Queries SQL (Aula 6)   
    Script Intermediário! - 6
    Lista de Aulas:
    Aula 1: http://herc.ws/board/topic/199-script-intermedi%C3%A1rio-aula-1/
    Aula 2: http://herc.ws/board/topic/200-script-intermedi%C3%A1rio-aula-2/ Aula 3: http://herc.ws/board/topic/201-script-intermedi%C3%A1rio-aula-3/ Aula 4: http://herc.ws/board/topic/203-script-intermedi%C3%A1rio-aula-4/ Aula 5: http://herc.ws/board/topic/213-script-intermedi%C3%A1rio-aula-5/ Aula 6: http://herc.ws/board/topic/228-queries-sql-aula-6/ Aula 7: http://herc.ws/board/topic/239-script-intermedi%C3%A1rio-aula-7/   Bom galera, depois de aprendermos loops, arrays, menus dinâmicos e suas teorias, setd e getd, attachrid e detachrid, partiremos então para o Banco de Dados e aprenderemos então a maniuplar as Queries SQL, que é de suma importância para quem gosta de seus scripts mais seguros e com suas respectivas tabelas.   Assunto da aula: - Queries SQL
      Como de costume, começarei mostrando a sintaxe do comando, e em cima dela, trabalharemos: query_sql "sua query de MySQL", <variável> {,<variável>, ...};  
    Sua Query_SQL: Você colocará a query que você quer executar, você aprenderá neste tutorial como escrever sua query da maneira que quer. Variável: Nem sempre é preciso específicar a variável, depende do comando que você utilizará. Você quando for atualizar (update) ou deletar (delete) algo de seu Banco de Dados ou sua respectiva tabela, você não precisará utilizar, agora caso for pegar alguma informação (select), você precisará sim da variável, lembrando que ser for texto ou palavars, precisará da var. string ($) caso contrário for números, não precisará.  
    Bom, então começaremos a explicar os comandos, comando SELECT:
    SELECT <informacão> FROM <tabela>  
    informacão: Como podemos perceber no Banco de Dados, uma tabela é formada por vários campos, neste campo, você indica o nome do campo que você deseja ler. Você pode específicar vários campos para serem lidos, exemplo: SELECT <informacão>,<informação>,<informação> FROM <tabela>   Mas lembrando que teremos que específicar uma variável para cada campo no final da escrita da Querie, você pode substituir o nome dos campos por um (*), assim retornará todos os campos da tabela, sem precisar específicar um por um.
     
    tabela: Nome da tabela dentro do Banco de Dados que você gostaria de pegar a informação. 

    Agora vejamos um exemplo utilizando o comando SQL em uma sintaxe Querie: 
    query_sql ("SELECT `user_id` FROM `login`",@nome_do_usuario$);  
    No caso essa variável @nome_do_usuario$ se tornará uma array, pois não será apenas 1 valor, e sim vários valores pois serão retornados todos os nomes de usuários de jogadores do seu servidor. No caso ficará assim:
    @nome_do_usuario$[0]: Usuario 1@nome_do_usuario$[1]: Usuario 2// Ficará sempre assim, só mudando a index da array, [2], [3], [4], etc...
    Aproveitarei com o comando SELECT, para explicar o comando WHERE, iremos pegar o nome de usuário de um jogador com o ID 1 no Banco de Dados, faremos assim no caso:
    query_sql ("SELECT `user_id` FROM `login` WHERE `account_id`=1",@nome_do_usuario$);  
    Assim buscaremos uma conta específica e não todas as contas do jogo, simples, não?!

    Temos um conjunto de dois comandos chamados AND e OR, é utilizado junto com o WHERE, vejamos: query_sql ("SELECT `user_id` FROM `login` WHERE `level`=99 AND `sex`='M'",@nome_do_usuario$);
    Nesse caso só pegariamos o nome dos usuários dos jogadores que forem level 99 e (AND) do Sexo Masculino. Exemplo com o comando OR:
    query_sql ("SELECT `user_id` FROM `login` WHERE `level`=99 OR `sex`='F'",@nome_do_usuario$);  
    Agora só pegariamos o nome dos usuários dos jogadores que forem level 99 ou (OR) do Sexo Feminino. Os dois comandos são super simples! 
     
    Temos também o comando ASC (Ascendente) e DESC (Descendente), vejamos: query_sql ("SELECT `user_id` FROM `login` ASC"); // Retornaria a lista de nomes de usuários do servidor em ordem alfabética de A para o Z.query_sql ("SELECT `user_id` FROM `login` DESC"); // Retornaria a lista de nomes de usuários do servidor em ordem alfabética de Z para o A.  
    Comando INSERT INTO: Este comando é para que você possa criar uma nova linha de dados dentro de uma tabela, criando uma nova informação na sua tabela desejada, vejamos:
    INSERT INTO <tabela> (<campos>) VALUES (<valores>);  
    Vejamos um exemplo:
    query_sql ("INSERT INTO `login` (`account_id`, `user_id`, `user_pass`, `sex`, `email`) VALUES ('2000000', 'test', '12345', 'M','[email protected]')");  
    Nesta caso, estamos criando uma conta com o account_id 2000000, o nome de usuário test, a senha 12345, sexo masculino, e e-mail [email protected].

    Partiremos então pro comando UPDATE, sintaxe:
    UPDATE `<tabela>` SET `<campo1>`='<valor1>',`<campo2>`='<valor2>';  
    Não é um comando complicado, com o exemplo passará de complexo para super simples, vejamos: query_sql ("UPDATE `login` SET `level`=99 WHERE `user_id`='Wolf'");  
    Esta queria irá mudar o Nível de GM da conta Wolf para 99, preste atenção, pois caso você não específicasse com o comando WHERE, todas as contas do servidor poderiam ser mudadas para 99, causando um transtorno enorme.
     
    Comando DELETE: Simplesmente faz oque diz, deleta uma informação da tabela, sintaxe: DELETE FROM `<tabela>`   Se fizermos simplesmente DELETE FROM `login`, todas as informações da tabela login seriam deletadas, por isso iremos específicar, por exemplo: query_sql ("DELETE FROM `login` WHERE `userid`='Wolf'");  
    Neste caso a conta Wolf será deletada da tabela login do Banco de Dados. Porém não é recomendável deletar a conta desta maneira, pois as informações de chars, itens, e pets ainda ficariam ocupando espaços no Banco de Dados, no caso você teria que deletar tudo manualmente, porém serviu de exemplo.   Comando DROP: Deleta a tabela inteira, sintaxe: DROP TABLE `<tabela>`   Exemplo: query_sql ("DROP TABLE `login`");  
    Destrói a tabela login, ninguém mais consegue logar no servidor, e poderá arrecadar muitos problemas. Existe DROP DATABASE também, no caso você deletará uma Database, se você fizer DROP DATABASE `ragnarok`, acabará com o Banco de Dados ragnarok ò_ó.   _____________________________________________________________   Fim do tutorial, posteriormente irei editar esse tópico e adicionar uns exemplos utilizando Querie, mas talvez, pois adicionei diversos exemplos no tutorial. Abraços!!
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.