Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 01/26/18 in all areas

  1. 1 point
    Murilo BiO'

    Ninho de Nidhogg

    O que foi editado: // Arquivo: npc/quests/quests_13_2.txt // Linha: 1075 // de: else if (ep13_mdrama > 5) { // para: else if (ep13_mdrama > 5 || ep13_mdrama == 0) { // Arquivo: npc/instances/NydhoggsNest.txt // Linha: 37 // de: if (ins_nyd == 0) { // para: if (ins_nyd == 0 && false) { // Linha: 102 // de: } else if (ins_nyd == 131 || ins_nyd == 132 || ins_nyd > 199) { // para: } else if (ins_nyd == 131 || ins_nyd == 132 || ins_nyd > 199 || true) { Com isso fui capaz de entrar no calabouço, gerar a instância e completá-la com sucesso. O que as mudanças fizeram foi pular o requisito da quest, mas se alguém quiser terminar a quest, não vai conseguir.
  2. 1 point
    Haru

    Hercules WPE Free - June 14th Patch

    1. If the key passes the test on that URL, you can use it on all clients, yes (provided that you compile Hercules with the same key) 2. That URL will tell you. I don't really know how to generate a strong key, but I observed that the second key must be an odd number (ending with 1, 3, 5, 7, 9, B, D, F). If it's an even number, it will repeat after a few iterations. Not all the sets with an odd key are strong, but all sets where the second key is even, are weak (that happens because of the key schedule function that Gravity uses). 3. I'll try to explain it briefly. After each packet sent, the client (and the server), applies a function to the current encryption (sub-)key to make it different for each packet sent (this is what prevents tools such as WPE from working for packet spamming, because if the key changes, a packet can't be re-played as it is). Each packet will be a different encryption/decryption sub-key, which is derived from the three original keys, by applying some sort of mathematical function (this is called the key schedule). The page you linked, runs the key schedule algorithm over and over (iterates it) several times, checking if the encryption sub-key changes every time. When it detects that the key didn't change, it reports a failure. The iteration number is how many times the key schedule function was applied before it started repeating the same key. I hope it makes any sense
  3. 1 point
    Senos

    Script Intermediário (Aula 2)

    Scripting Intermediário! - 2 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/ Assunto da aula: - Arrays As arrays não passam de um conjunto de variáveis, que são usados dentro de loops que são For e Whiles como ensinados na aula anterior, podem servir de Banco de Dados, já que podemos guardar/alterar/modificar/remover valores dento delas e certamente economizam certas linhas se bem usadas no script. São uma das melhores ferramentas para scripters hoje em dia. Array, não possui tradução para português, mas podemos entender como Conjunto de Variáveis, o nome já diz tudo, não? Vamos ver as maneiras certas para a utilização de uma array: +==========+======+=======+|Variável | Norm | Array |+==========+======+=======+|$Str$ | OK! | OK! |+----------+------+-------+|$@Str$ | OK! | OK! |+----------+------+-------+|@Str$ | OK! | OK! |+----------+------+-------+|#Str$ | OK! | ERRO! |+----------+------+-------+|Str$ | OK! | ERRO! |+----------+------+-------+|$Int | OK! | OK! |+----------+------+-------+|$@Int | OK! | OK! |+----------+------+-------+|@Int | OK! | OK! |+----------+------+-------+ E agora temos algumas variáveis que dão erros, caso o uso for desta maneira: #str$ - ERROStr$ - ERRO Porque ocorreram esses erros? o_o Simplesmente porque as arrays não podem ser "setadas" à um jogador, por isso existem as variáveis normais. Sintaxe da Array: setarray <Nome da Array>[<Index>],<Valor>{,<Valor>,...,<Valor>}; Exemplos: setarray @i[0],1000,2000,3000,4000; @array [0] = 1000 @array [1] = 2000 @array [2] = 3000 e @array [3] = 4000 Agora se eu usar após o exemplo anterior (lembre-se, APÓS): setarray @array[1],1,2; @array[0] = 1000 (Pois o 0 não foi alterado, e somente o 2, 3 se a index anterior for 0). @array[1] = 1 @array [2] = 2 @array [3] = 4000 Temos o comando cleararray, que limpa a array: cleararray <nome do array>[<primeiro valor para alterar>],<valor>,<número de valores para definir>; Esse comando vai mudar o valor de uma array e ao mesmo tempo adicionar outro. Exemplo: setarray @i[0],1000,2000,3000,4000; cleararray @i[0],0,6; Isso transformará todos os valores em 0. cleararray @i[0],245,1; Isso transformará o valor do @i[0] == 1000, para 245. cleararray @i[1],345,2; Isso transformará o valor do @i[1], @i[2] para 345. Simples, não? Ensinaremos então, o comando getarraysize que é muito útil também no Loop (For): Essa função retorna o número de valores que estão contidos dentro de uma array, no caso, um valor específico. Exemplo: setarray @i[0],1000,2000,3000,4000; set @i_size,getarraysize(@i); Isso vai fazer com que @i seja igual a 4, pois temos 4 "indexes". Agora se eu fizer: setarray @i[0],1000,2000,3000,4000,0; set @i_size,getarraysize(@i); Será de qualquer maneira 4, pois 0 é igual a nada, então não contará. Existe também o copyarray, como podemos ver a utilização desse: copyarray <array de destino>[<primeiro valor>],<array fonte>[<primeiro valor>],<número de elemento a serem copiados>; Esse comando faz com que você copie o valor de uma array, vejamos: setarray @i[0],1000,2000,3000,4000; copyarray @i2,@i[0],@i[1]; Essa array @i2 terá o primeiro valor 1000, e o segundo 2000. Mas porque Wolf? Vejamos, o @i2[0] == 1000, e o @i[1] == 2000, pois copiamos o valor index de uma outra array. E os outros valores da array? Se os outros valores da array não foram copiados, retornaram 0 em caso de uso incorreto. Vamos falar agora do comando DeleteArray. Esse comando vai deletar um VALOR ESPECÍFICO em uma array. setarray @i[0],1000,2000,3000,4000; Agora caso eu usar: deletearray @i[0],1; O deletearray irá DELETAR o valor 1000, e irá mover os outros, se tornando: setarray @i[0],2000,3000,4000; Então @i[0] passará a ser 2000 e não mais 1000, e assim por diante! Fim da aula de Arrays, e vejamos para finalizar, um exemplo de uso: mes "Deseja registrar sua banda em nosso concurso?";if (select("Sim:Não")==2) close;next;input @banda$;setarray $banda$,[getarraysize($banda$)+1],@banda$; // Essa array adicionará o nome da banda (@banda$) na array $banda$.next;mes "Banda registrada com sucesso!";for (set @i,0; @i <= getarraysize($bandas$); set@i, @i+1) { mes $bandas$,[@i];} set registrado$,@str$; // Isso deixará o jogador registrado permanentemente no script.close; Agradeço ao Keoy por ter me instruído a criar as aulas, ser meu professor antigamente, e eu por criar as aulas com base nas aulas que ele fazia, adicionando os comandos copyarray, deletearray, cleararray e atualizar o snippet.
×
×
  • Create New...

Important Information

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