antiblock
https://arwen2.global/

Big_Z

Membro
  • Content Count

    666
  • Joined

  • Last visited

  • Days Won

    2

Reputation Activity

  1. Upvote
    Big_Z reacted to Rodnia2 in Ascension - The Awakening | New Graphics Improvement | Opening on: 15.03.2024   
    WEBSITE - DISCORD
    Experience the full potential of our latest enhancements with improved graphics and revamped gameplay. Seize the opportunity to immerse yourself in a gaming experience like never before!
     
     

     
  2. Upvote
    Big_Z reacted to Rodnia2 in Ascension - The Awakening | New Graphics Improvement | Opening on: 15.03.2024   
    Maintenance 16.3.2023
    Game version is now 1.0.1

    News Updated Wiki guides. Since some of the information from Wiki is hold we are now doing a rework on our Wiki and also fixing some bugs where you can't see sometimes the upgrade items necessary. In the next patches we will continue to add new guides/translations and improvements here. Added Nephrite in Boss Scroll (Hard). Added White Gold Ore at Alchemist Shop. Fixes & Changes Updated Bravery Cape description. Itemshop from the ESC window will redirect you direcly to the Ascension itemshop. Fixed the issue with Beginner quests where you couldn't finish them. If you have the message that you need to kill 0, just kill it one more time and you will receive the reward. Fixed the bonuses from Pet Figaro. Fixed an issue at informations about Premium window in-game. Fixed a problem at Magic Soul Stone where instead of showing you that you advanced your skill level to P it said that you advanced it with only 1 level. Fixed the visual issue where it displayed the wrong bonuses of Pets with levels. Fixed a problem for some people that couldn't open the Pet Information window Fixed the guild logos. -------------------------------------------------------------------------------------
    Maintenance 17.3.2023
    Game version is now 1.0.2

    News Added more stones in maps.
    Fixes & Changes Changed at Beginner Quest line the Nephrite requirements to Death Reaper until we come with a new update which will block the experience until you complete a certain mission. Fixed message after you complete a Daily Mission from Chen. Fixed some problems at the Turkish translations bugs. Fixed that you couldn't enter at World Boss from Level 90. Fixed an issue with some Thunder Chest which should not be obtainable. Fixed a wrong text at the Bravery Cape when you don't have Yang. Fixed that you couldn't give roles to guild members. -------------------------------------------------------------------------------------

    Maintenance 18.3.2023
    Game version is now 1.0.3

    News Added Metin Zones II in Fireland on Warp Ring. Added Metin Zones II in Ork Valley on Warp Ring. Added Metin Zones II in Desert on Warp Ring. Added all missions from Beginner Questline at Uriel. For those who accidentally deleted quests as inventory items Added Biologist Guide & Level 75-95 Guide to wiki. Added on Bravery Cape to show you how much yang it takes at each level.
    Fixes & Changes Brutal Red Thief Worldboss will appear everyday at 10 AM (Server Time) instead of 9 AM, not to overlap with the other world bosses. Made Ignisarix/Frostblaze/Brutal Red Thief worldboss easier to defeat. Fixed a problem when selecting guild roles for Guild. The guild will receive a a big update this week. Lower Pearls at Dungeon Pass(Medium) from 15 to 12. Lower Ancient Coin at Dungeon Pass(Medium) from 50 to 45. Increase the chance to obtain pearls from Shells. Raise the cooldown for map2 Bosses from 5m to 15m. We chose in the first 3 days when players started to keep the cooldown low, but now that most players have advanced we will go back to 15m. Now you will have drop if you are level 90 at Cryptus/Sylvanus/Bone Dragon/Midas, if you have chance to spawn it from a Boss Scroll. Bloody Crystal mission from battlepass daily mission, has been removed. Now Soul Stones have a higher chance to drop at Stone of Murder(Lv. 70), Stone Tu-Young(Lv. 85) & Stone Jeon-Un(Lv. 90). Now Equipment Ticket have a higher chance to drop at Stone of Murder(Lv. 70), Stone Tu-Young(Lv. 85) & Stone Jeon-Un(Lv. 90) and Bosses from Sohan Mountain, Ork Valley, Fireland, Desert & Hwang Temple. Also now Bosses from dungeon will drop more Equipment Tickets. Fixed a problem at Talismans, they were dissappearing after expiring and they shouldn't. Fixed a problem atPet System when you evolved the pet the pet level was not displayed in the window. -------------------------------------------------------------------------------------

    Maintenance 19.3.2023
    Game version is now 1.0.4

    News Added 75-95 level guide on Wiki. Added 95-120 level guide on Wiki. Added some translations in game client. Fixed some wrong texts at the Global Rankings. Added Metin Zones III & Metin Zones IV in Fireland on Warp Ring.
    Fixes & Changes Updated Letters & Symbols Event rewards. Fixed the entrance level at World Boss on the Warp Ring. Updated Wiki Minimum Damage information for Cryptus, Razador, Nemere, Jotun & Shadow Tower. Improved the aspect of Kyanite Armors. Fixed Shaman attack from horse with Fan/Bell. Fixed some wrong texts at the Global Rankings. Increase Piece of Ancient Coin from Stone Tu-Young(Lv. 85) & Stone Jeon-Un(Lv. 90) and add a extra chance to obtain one more piece. Slightly increase chance to drop for Cooked Eel & Cooked Mackerel. Slightly increase chance to drop Energy Fragment and add a extra chance to obtain one more fragment. Increase chance to drop for Adv. Equipment Ticket from Beta Bosses, also for those mini-bosses in dungeons. Adv. Equipment Ticket now has been added in Chief Orc Chest,Dark Leader Chest,Yellow Tiger Ghost Chest,Nine Tails Chest,Spider Queen Chest,Giant Tortoise Chest,Fire King Chest .
  3. Upvote
    Big_Z reacted to Rodnia2 in Ascension - The Awakening | New Graphics Improvement | Opening on: 15.03.2024   
    Invite your friends: Earn Special Coins or Rodnia CoinsAs the headline announces, we've initiated a competition where each participant can earn Special Coins by inviting their friends and accomplishing an easy task. Log in to the site and you will have an invite friends button to the right of the user panel. Copy the referral link and offer it and invite your friends to play on Ascension. When players register on the referral link provided, they will have to complete a task of killing 100 bosses. Once this task is completed you will receive 50 SC, available for purchase in the Item-Shop. With 4 valid invitations, you will automatically be entered in a special draw where you will have the best chance to win 400 RC (10 draws | 10 winners).
    If you can't find the button to invite friends, we leave you a useful link, you must be logged in to the site: Invite your Friends
    The GiveAway drawing of 400 RC is scheduled for 07.04.2024 and will be broadcast live on TikTok, offering viewers a good experience as winners are announced in real-time.
      https://i.gyazo.com/af7c816198c5739bcc68565e07bbaf49.mp4
  4. Like
    Big_Z reacted to p0w3r0ff in Servidor Aberto! Vamos Jogar Palworld!   
    Servidor Aberto! Vamos Jogar Palworld!
    Ei pessoal! Temos uma grande notícia: o nosso servidor está oficialmente aberto e pronto para ação! 
    Venham se juntar a nós para muita diversão e aventura.
    Ah, e se quiserem entrar de cabeça, podem nos encontrar no seguinte IP:
     
    188.81.238.61:8211  
    - Com esta versão, é possível jogar em servidores online, mesmo que sejam oficiais.
  5. Like
    Big_Z reacted to p0w3r0ff in  Atualização Downloads: Problema de Permissões Corrigido!    
    Caros membros da comunidade,
    Gostaríamos de informar que o nosso sistema de downloads estava com problemas de
    permissões em algumas categorias de leaks, conforme foi reportado pelo nosso membro Fabio.
    É com prazer que comunicamos que a questão foi identificada e corrigida .
    Agora, todos os membros podem fazer downloads sem problemas em todas as categorias.
    Continuamos comprometidos em oferecer uma experiência de utilização sem falhas
    e agradecemos pela vossa contínua participação na comunidade.
  6. Like
    Big_Z reacted to Cyphriun in Cyphriun - Servidor Privado Português   
    Novas Cidades
     
    No Cyphriun apenas existirão 2 reinos e com isso decidimos remodelar a primeira cidade do Reino Azul e Reino Vermelho, respetivamente.
     
    qgqou59.mp4
    o83YCLu.mp4
     
    Discord:  https://discord.gg/Yy3jJeDYeX
    O servidor não tem data de abertura.
     
     
  7. Like
    Big_Z got a reaction from p0w3r0ff in Playlist Digestion - Onde guardo os vídeos informativos que vejo   
    Muito bom conteudo e informaçao desses canais recomendo
  8. Like
    Big_Z reacted to Portugapt in Playlist Digestion - Onde guardo os vídeos informativos que vejo   
    Viva a todos,
     
    Quero partilhar com vocês uma playlist que estou a construir há 4 anos e meio. Nem acredito que já passou tanto tempo! Conta com ~1200 videos atualmente, mas estou sempre a adicionar.
     
    A playlist é nada mais nada menos que a agregação de todos os vídeos que vejo e são informativos de alguma maneira ou outra. O YouTube é a maior plataforma para se aprender tudo e mais alguma coisa.
     
    Tendo a não guardar videos muito teóricos do gênero de Khan Academy ou aulas de temas em particular, e.g. desenvolvimento de software, teoria de categorias, programação linear, etc...
     
    Conta com videos de youtubers como:
    * Tom Scott
    * The B1M
    * Kurzgesagt
    * CGP Grey
    * Vox
    * 3Blue1Brown
    * LeMMiNo
     
    Aqui segue o link :)
     
     
     
     
  9. Like
    Big_Z reacted to RoHs in Auto Skill Reade   
    Auto Skill Reade
    Visulizar Arquivo Sistema de Auto Skill Reader do DracaryS :
     
    O sistema funciona com livros e almas.  Sistema também funciona para as passivas. Outras coisas encontra-se no vídeo.  
     

     
    Password: cyber-gamers.org
    Autor RoHs Enviado 01-01-2024 Categoria dracaryS  
  10. Like
    Big_Z reacted to p0w3r0ff in Plechito - Nightmare dungeon - 95€   
    View File Plechito - Nightmare dungeon - 95€
    Plechito apresenta"Nightmare Dungeon" por 95€, uma oferta intrigante mas aqui é totalmente grátis.
    Esta masmorra dos pesadelos é estruturada em quatro estágios distintos,
    cada andar repleto de várias missões que podem ser enfrentadas individualmente ou em grupo.
    Os jogadores têm 40 minutos para concluir toda a masmorra, seguidos por um período de cooldown de 60 minutos.
     

    Todos os downloads são diretos e alojados no nosso dedicado.
    Rápido, seguro e sempre disponível.
    Submitter p0w3r0ff Submitted 12/27/2023 Category Dungeon / Maps  
  11. Like
    Big_Z reacted to Papix in [PHP] Discord automatic messages (CRON)(WEBHOOK)   
    Olá comunidade,
    Neste guia vou ensinar-vos uma forma simples de enviar mensagens automáticas usando apenas php, cron e webhook do discord.
    A função foi criada para anunciar eventos semanais, mas pode ser facilmente alterada para outros fins.
    A função está protegida por uma chave, pelo que se a chave não estiver definida o script não será executado.
     
    Preview:


    Script:
    <?php function Start() {     date_default_timezone_set('Europe/Lisbon');     $data = date('d-m-Y');     $day = date('w', strtotime($data));     $url = "WEBHOOK_HERE";     $headers = [ 'Content-Type: application/json; charset=utf-8' ]; // Sunday if ($day == 0) {     $POST = [ 'username' => 'TheBestPvP', 'content' => '• O evento **Caixa do Tesouro Hexagonal** começou! @here' ]; } // Monday if ($day == 1) {     $POST = [ 'username' => 'TheBestPvP', 'content' => '• O evento **Caixa Tesouro do Luar** começou! @here' ]; } // Tuesday if ($day == 2) {     $POST = [ 'username' => 'TheBestPvP', 'content' => '• O evento **Caixa do Tesouro Hexagonal** começou! @here' ]; } // Wednesday if ($day == 3) {     $POST = [ 'username' => 'TheBestPvP', 'content' => '• O evento **Caixa do Tesouro Hexagonal** começou! @here' ]; } // Thursday if ($day == 4) {     $POST = [ 'username' => 'TheBestPvP', 'content' => '• O evento **Ostra** começou! @here' ]; } // Friday if ($day == 5) {     $POST = [ 'username' => 'TheBestPvP', 'content' => '• O evento **Super Boss** começou! @here' ]; } // Saturday if ($day == 6) {     $POST = [ 'username' => 'TheBestPvP', 'content' => '• O evento **Caixa Tesouro do Luar** começou! @here' ]; }     $ch = curl_init();     curl_setopt($ch, CURLOPT_URL, $url);     curl_setopt($ch, CURLOPT_POST, true);     curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);     curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($POST));     $response   = curl_exec($ch); } $key = "KEY_HERE"; if(!empty($_GET["key"])) {     Start();     echo "Done"; } else {     echo "Ups..."; } ?>  
    Guide
     Altera o fuso horário em date_default_timezone_set com o teu fuso horário (linha 4)  Substituir WEBHOOK_HERE pelo teu URL de webhook (Linha 9)  Substitui KEY_HERE pela chave aleatória (linha 64)  Altera as mensagens a seu gosto.
    Como executar?
    example.com/discord.php?key=KEY_HERE

    Como agendar o cron?
    Se não souberes como configurar 1 cron, pode utilizar o website: https://cron-job.org/
    Só é necessário criar uma conta e criar o cron.
     

  12. Like
    Big_Z reacted to V¡®u§ in Delphi com assembly (Parte 2)   
    Passando arrays estáticas como parâmetros
    =========================================

    Parâmetros de arrays estáticas são passados como ponteiros ao primeiro
    elemento do array, independentemente do parâmetro ser passado por valor
    ou por referência (como "var" ou como "const").

    Dadas as seguintes declarações...

    const
    ARRAY_MAX = 5;

    type
    TArrayOfInt = packed array [0..ARRAY_MAX] of longint;

    var
    a, b: TArrayOfInt;

    procedure InitializeArray(var a: TArrayOfInt);
    var
    i: integer;
    begin
    for i := 0 to ARRAY_MAX do
    a := i;
    end;

    ... a chamada à procedure InitializeArray em assembler seria:

    // Em Object Pascal:
    // InitializeArray(a);
    // Em Assembler Inline:
    asm
    mov eax, offset a // EAX := @a;
    call InitializeArray // InitializeArray;
    end;

    OFFSET é um operador unário assembler que retorna o endereço de um
    símbolo. O OFFSET não é aplicável para símbolos locais. Deve-se usar o
    opcode LEA (veja abaixo), que é mais "universal".


    Arrays estáticas passadas por valor
    -----------------------------------

    Se o array é passado por valor, é responsabilidade da função chamada
    preservar o array. Quando a função precisa mudar os valores de um ou
    mais elementos de um array passado por valor, normalmente ela cria uma
    cópia local e trabalha com a cópia. O compilador cria uma cópia para nós
    no "begin" das procedures e funções Pascal, mas em procedures e funções
    em assembler puro temos de fazer isto nós mesmos. Um modo de se fazer
    isto seria o seguinte:

    procedure OperateOnArrayPassedByValue(a: TArrayOfInt);
    var
    _a: TArrayOfInt;
    asm
    // Copia os elementos de "a" (parâmetro) em "_a" (cópia local)
    push esi // Salva ESI na pilha
    push edi // Salva EDI na pilha
    mov esi, eax // ESI := EAX; // @a
    lea edi, _a // EDI := @_a;
    mov eax, edi // EAX := EDI; // @_a
    mov ecx, type TArrayOfInt // ECX := sizeof(TArrayOfInt);
    rep movsb // Move(ESI^, EDI^, ECX);
    pop edi // Restaura EDI da pilha
    pop esi // Restaura ESI da pilha

    // Aqui vai o resto da função. Trabalharemos sobre o "_a" (a
    // cópia local), cujo primeiro elemento está agora apontado por EAX.
    end;

    O que encontramos de novo aqui são os opcods LEA e MOVSB, o prefixo REP
    e o operador TYPE, descritos abaixo:


    LEA (Load Effective Address)
    ----------------------------

    Move para o primeiro operando o endereço do segundo. Aqui comparamos LEA
    com MOV:

    Instrução Traduzida como Efeito
    -------------------------------------------------------------------

    lea eax, localvar lea eax, [ebp-$04] EAX := @localvar;
    EAX := EBP - $04;

    mov eax, localvar mov eax, [ebp-$04] EAX := localvar;
    EAX := (EBP - $04)^;


    MOVSB (MOVe String Byte)
    ------------------------

    Copia o byte apontado por ESI ao local apontado por EDI, e incrementa
    ESI e EDI de tal forma que eles apontem para o próximo byte. O trabalho
    do MOVSB pode ser descrito como segue:

    ESI^ := EDI^; // Assume que ESI e EDI são do tipo PChar
    Inc(ESI);
    Inc(EDI);

    Notas:

    * MOVSW e MOVSD são as versões Word (16-bit) e DWord (32-bit)
    respectivamente (ESI e EDI são incrementadas de 2 e 4
    respectivamente).

    * Os registradores são decrementados se o Direction Flag é setado.


    REP
    ---

    O prefixo REP é usado em operações de string para repetir a operação
    de decremento ECX até que ECX seja zero. O trabalho do REP poderia ser
    descrito como segue:

    // rep string_instruction

    @@rep:
    string_instruction
    loop @@rep

    Notas:

    * O REP não é um atalho para um código como o acima. Ele trabalha muito
    mais rápido.

    * O valor de ECX não é checado no começo do loop (se ECX fosse zero, a
    instrução seria repetida 2^32 vezes, mas geraria um extenso AV antes
    disto, tão logo ESI ou EDI apontassem para uma localição de memória
    inválida).


    TYPE
    ----

    O operador TYPE é um operador unário avaliado em tempo de compilação que
    retorna o tamanho em bytes de um operando, que deve ser um tipo de dados.
    Por exemplo, TYPE WORD retornará 2 e TYPE INTEGER retornará 4.


    Acessando os elementos de um array
    ==================================

    Para acessar um elemento a precisamos dos valores "@a[0]" e "i" nos
    registradores (como EDX e ECX, por exemplo) para então podermos usar o
    endereçamento de memória como segue:

    lea edx, a // EDX := @a;
    mov ecx, i // ECX := i;
    mov ax, [edx+ecx*type integer] // AX := EDX[ECX]; // a;
    // PWord(EDX + ECX * SizeOf(integer))^

    No exemplo, presumimos que os elementos têm 2 bytes (movemos o valor de
    a para AX, um registrador de 16 bits), que a array não é agrupada
    (cada elemento realmente ocupa 4 bytes, o tamanho de um inteiro, logo
    este valor foi usado para calcular a posição do elemento) e que o array
    não começa pelo elemento 0, ou seja, não é um array "zero-based". Por
    exemplo:

    var a: array [0..N] of word = (1, 2, 3, 6, ...);

    +------ EDX = @a
    |
    v
    +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+--
    | 1 | 0 | | | 2 | 0 | | | 3 | 0 | | | 6 | 0 | | |
    +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+--
    a[0] a[1] a[2] a[3]
    [edx] [edx+04] [edx+08] [edx+12]

    Se o array não é zero-based, temos que ajustar o valor do índice para
    torná-lo zero-based antes de endereçarmos o elemento. Exemplos:

    // a[1..100]
    :
    mov ecx, i // ECX := i;
    dec ecx // Dec(ECX); // Ajusta ECX
    :

    // a[-10..10]
    :
    mov ecx, i // ECX := i;
    add ecx, 10 // Inc(ECX, 10); // Ajusta ECX
    :

    A procedure InitializeArray (apresentada acima) pode ser implementada em
    assembler do seguinte modo:

    procedure InitializeArray(var a: TArrayOfInt);
    asm // EAX = PByte(@a[0]);
    xor ecx, ecx // ECX := 0;
    @@loop:
    mov [eax+ecx*type integer], ecx // PInteger(EAX+ECX*4)^ := ECX;
    // ...or EAX[ECX] := ECX;
    inc ecx // ECX := ECX + 1;
    cmp ecx, ARRAY_MAX // if ECX <= ARRAY_MAX then
    jle @@loop // goto @@loop;
    end;

    Ou assim:

    procedure InitializeArray(var a: TArrayOfInt);
    asm // EAX = @a[0];
    xor ecx, ecx // ECX := 0;
    @@loop:
    mov [eax], ecx // EAX^ := ECX;
    inc ecx // Inc(ECX);
    add eax, type integer // Inc(EAX); // Aponta para o próximo elemento
    cmp ecx, ARRAY_MAX // if ECX <= ARRAY_MAX then
    jle @@loop // goto @@loop;
    end;


    Valores de retorno de arrays
    ============================

    As funções que retornam arrays recebem um último parâmetro adicional que
    é o ponteiro para a locação de memória onde deveam colocar seu valor de
    retorno (a memória é alocada e liberada se necessário por quem acessou).
    Por exemplo, consideremos a seguinte função:

    function ReverseArray(const a: TArrayOfInt): TArrayOfInt;
    var
    i: integer;
    begin
    for i := 0 to ARRAY_MAX do
    Result := a[ARRAY_MAX-i];
    end;

    A função recebe dois parâmetros:

    1) EAX = endereço do primeiro elemento da array "a"
    2) EDX = endereço do primeiro elemento de Result

    A função pode ser reescrita em assembler como segue:

    function ReverseArray(const a: TArrayOfInt): TArrayOfInt;
    asm // EAX = @a[0]; EDX = @Result[0];
    push ebx // Save EBX
    mov ebx, eax // EBX := EAX;
    xor ecx, ecx // ECX := 0;
    @@loop:
    mov eax, ARRAY_MAX
    sub eax, ecx // EAX := ARRAY_MAX-ECX;
    mov eax, [ebx+eax*type integer] // EAX := EBX[EAX];
    mov [edx+ecx*type integer], eax // EDX[ECX] := EAX;
    inc ecx // ECX := ECX + 1;
    cmp ecx, ARRAY_MAX // if ECX <= ARRAY_MAX then
    jle @@loop // goto @@loop;
    pop ebx // Restore EBX
    end;

    Bem, isto é tudo por enquanto. No próximo artigo veremos como trabalhar
    com registros.


    Passando records como parâmetros
    ================================

    Como arrays estáticos, records são internamente passados como ponteiros
    para os dados, independentemente se o parâmetro é passado por valor ou
    por referência (também como "var" ou como "const").

    Dada as seguintes declarações...

    type
    TRecord = record
    Id: integer;
    Name: string;
    end;

    var
    a, b: TRecord;

    procedure InitRecord(var r: TRecord; Id: integer; const Name: string);
    begin
    r.Id := Id;
    r.Name := Name;
    end;

    ...uma chamada para a procedure InitRecord em assembler seria assim:

    // Em Object Pascal:
    // InitRecord(a, n, s);
    // Em Inline Assembler:
    asm
    lea eax, a // EAX := @a; // 1st parameter in EAX
    mov edx, n // EDX := n; // 2nd parameter in EDX
    mov ecx, s // ECX := s; // 3rd parameter in ECX
    call InitRecord // InitRecord;
    end;


    Acessando os campos de um record
    ================================

    Campos de records estão localizados em um certo offset de um endereço do
    record (o endereço do primeiro campo). No exemplo, assumindo que nós
    temos o endereço do record do tipo TRecord no registrador EAX, o campo
    Id está localizado em [EAX+0] (ou simplesmente [EAX]), e o campo Name
    está localizado em [EAX+4], mas normalmente nós não escrevemos código
    usando números explicitamente. Ao invés disto, para produzir código
    auto-explicável e de fácil manutenção, nós temos cinco alternativas:

    mov edx, [eax + TRecord.Name]
    mov edx, (TRecord PTR [eax]).Name
    mov edx, (TRecord [eax]).Name
    mov edx, TRecord[eax].Name
    mov edx, [eax].TRecord.Name

    As cinco sentenças anteriores seriam montadas como:

    mov edx, [eax + 4]

    No lugar de um registrador (como EAX), as sintaxes também se aplicam
    para nome de variáveis locais ou globais.

    Você pode deduzir da primeira sintaxe que em inline assembler a
    expressão RecordType.Field é avaliada em tempo de compilação como
    uma constante representando o offset no qual o campo está localizado
    no RecorType. Por exemplo, a seguinte sentença é válida:

    mov ecx, TRecord.Name // mov ecx, 4

    Voltando ao assunto, a procedure InitRecord (apresentada acima) pode ser
    implementada em assembler desta forma:

    procedure InitRecord(var r: TRecord; Id: integer; const Name: string);
    asm // EAX = @r; EDX = Id; ECX = @Name[1]
    mov (TRecord PTR [eax]).Id, edx // EAX^.Id := EDX; // Id
    // _LStrAsg(@EAX^.Name, @Name) --> EAX^.Name := Name
    lea eax, (TRecord PTR [eax]).Name // EAX := @(EAX^.Name);
    mov edx, ecx // EDX := @Name[1];
    call System.@LStrAsg // _LStrAsg(EAX, EDX)
    end;

    Na entrada da procedure, nós temos EAX apontando para o registro
    (primeiro parâmetro), EDX contendo o Id (segundo parâmetro), EDX
    apontando para o dado da string Name (terceiro parâmetro). Atribuir
    um inteiro é bem simples, mas atribuir uma string é um pouco mais
    complicado.

    Se a string destino não é uma string vazia então
    begin
    Decremente a contagem de referência da string destino;
    Se a contagem de referência da string destino chegou a zero então
    Libere a string destino;
    end;

    Se a String Origem não for uma string vazia então
    Incremente a contagem de referência da String origem;
    Designe origem para o destino;

    A procedure _LStrAsg (da Unit System) implementa esta lógica para nós. A
    procedure recebe dois parâmetros: o primeiro (em EAX) é a string destino
    passada por referência e o segundo (em EDX) é a string origem passada
    por valor (o que é passado na verdade é o ponteiro, visto que strings
    são ponteiros para os caracteres de fato). Então, no nosso caso, EAX
    deveria ser o endereço de uma variável string que será atribuída (isto é
    @r.Name), enquanto EDX deveria ser o valor a ser atribuído:

    EAX --> r.Name --> r.Name[1] ==> EAX = @r.Name
    EDX --> Name[1] ==> EDX = @Name[1]

    Ref.: "-->" significa "aponta para"

    Então, preparamos EAX e EDX e então chamamos _LStrAsg:

    lea eax, (TRecord PTR [eax]).Name // EAX := @(EAX^.Name);
    mov edx, ecx // EDX := @Name[1];
    call System.@LStrAsg // _LStrAsg(EAX, EDX)


    Funções de baixo nível para trabalhar com records
    =================================================

    Como arrays estáticos, se o record é passado por valor, é
    responsabilidade da função chamada preservar o record. Quando uma função
    precisa trocar o valor de um ou mais campos do record passado por valor,
    normalmente ela cria uma cópia local e trabalha com a cópia. O
    compilador cria uma cópia para nós no "begin" das funções Pascal, mas
    nas funções puramente assembler temos que fazê-lo nós mesmos. Um jeito
    de fazer isto é como mostrado na parte III com arrays estáticos. Aqui
    está outro modo:

    procedure OperateOnRecordPassedByValue(r: TRecord);
    var
    _r: TRecord;
    asm
    // Copia os elementos de "r" (parâmetros) em "_r" (cópia local)
    // Move(r, _r, sizeof(TRecord));

    lea edx, _r // EDX := @_r;
    mov ecx, type TRecord // ECX := sizeof(TRecord);
    call Move // Move(EAX^, EDX^, ECX);

    lea eax, _r // EAX := @_r;
    mov edx, TRecord_TypeInfo // EDX := TRecord_TypeInfo;
    call System.@AddRefRecord // System._AddRefRecord(EAX,EDX);

    lea eax, _r // EAX := @_r; // optional

    // Aqui vai o resto da função. Nós trabalharemos no
    // record "_r" (a cópia local), agora apontada por EAX.
    end;

    Desta vez nós chamamos a procedure Move ao invés de copiarmos os dados
    com REP MOVSB. Deste modo, nós escrevemos menos código.

    IMPORTANTE: Copiar os valores da memória apenas funciona com records que
    não contém campos do tipo reference-counted tais como strings, arrays
    dinâmicos ou variantes do tipo string ou arrays dinâmicos.

    Se nós tivermos um ou mais campos string, ou campos de algum outro tipo
    reference-counted, depois de copiar os valores de memória, nós temos que
    incrementar seus respectivos contadores de referência. A procedure
    _AddRefRecord (da Unit System) realiza isto. Ela possui dois parâmetros:
    um ponteiro para o record (em EAX) e um ponteiro para informação do tipo
    de dado para o record gerado pelo compilador (em EDX).

    A informação de tipo para o record é basicamente uma estrutura de dados
    que contém as posições e tipos de campos reference-counted do registro.
    As procedures que trabalham com records declaradas na Unit System,
    (_InitializeRecord, _AddRefRecord, _CopyRecord, e _FinalizeRecord)
    requerem um ponteiro para a informação do tipo de dado como seu último
    parâmetro.

    Mas, onde estão os dados? Bem, infelizmente, não há um símbolo para
    acessar sua localização diretamente. Nós temos que conseguir seu
    endereço através de uma chamada para a função TypeInfo, mas não há uma
    função que nós possamos chamar através do código assembler porque não é
    uma função verdadeira, e sim uma função interna que o compilador resolve
    em tempo de compilação.

    Um possível contorno é inicializar uma variável global, chamando a
    função TypeInfo de nosso código Pascal:

    var
    TRecord_TypeInfo: pointer;

    :

    initialization
    TRecord_TypeInfo := TypeInfo(TRecord);

    E então podemos usá-la como:

    procedure OperateOnRecordPassedByValue(r: TRecord);
    var
    _r: TRecord;
    asm
    // Copiar os elementos de "r" (parâmetro) para "_r" (cópia local)
    // Move(_r, r, sizeof(TRecord));
    lea edx, _r // EDX := @_r;
    mov ecx, TYPE TRecord // ECX := sizeof(TRecord);
    call Move // Move(EAX^, EDX^, ECX);
    // System._AddRefRecord(@_r, TypeInfo(TRecord));
    lea eax, _r // EAX := @_r;
    mov edx, TRecord_TypeInfo // EDX := TypeInfo(TRecord);
    call System.@AddRefRecord // System._AddRefRecord(EAX, EDX);

    lea eax, _r // EAX := @_r; // opcional

    // Aqui vai o resto da função. Nós trabalharemos no
    // record "_r" (a cópia local), agora apontada em EAX.

    // Nós temos que finalizar a cópia local antes de retornarmos
    // System._FinalizeRecord(@_r, TypeInfo(TRecord));
    lea eax, _r // EAX := @_r;
    mov edx, TRecord_TypeInfo // EDX := TypeInfo(TRecord);
    call System.@FinalizeRecord // System._FinalizeRecord(EAX, EDX);
    end;


    Note que antes da função retornar, nós temos que fazer a chamada a
    _FinalizeRecord para destruir o record local (por exemplo, isto
    decrementará a contagem de referência de strings apontadas por campos
    string).

    Chamar Move e então _AddRefRecord é um jeito válido de copiar records
    se e apenas se o record de destino tenha sido inicializado (depois de
    chamar _AddRefRecord, o record é inicializado). Se o record de destino
    já estiver inicializado, então nós temos que chamar _CopyRecord ao invés
    disto.

    Por Exemplo:

    procedure proc(const r: TRecord);
    var
    _r: TRecord;
    begin
    // _r := r;
    asm
    mov edx, eax // EDX := @r;
    lea eax, _r // EAX := @_r;
    mov ecx, TRecord_TypeInfo // ECX := TypeInfo(TRecord);
    call System.@CopyRecord // System._CopyRecord(EAX, EDX, ECX);
    end;
    end;

    Note que como isto é uma função Pascal normal (não uma função Assembler
    completa), o compilador automaticamente gera código para inicializar
    e finalizar a variável record local (no "begin" e "end" da procedure
    respectivamente).

    A combinação Move mais _AddRefRecord é idêntica em efeito a
    _InitializeRecord mais _CopyRecord:

    procedure OperateOnRecordPassedByValue(r: TRecord);
    var
    _r: TRecord;
    asm
    // Copiar os elementos de "r" (parâmetro) para "_r" (cópia local)
    // Move(_r, r, sizeof(TRecord));
    // System._InitializeRecord(@_r, TypeInfo(TRecord));
    push eax // Push(EAX); // @r
    lea eax, _r // EAX := @_r;
    mov edx, TRecord_TypeInfo // EDX := TypeInfo(TRecord);
    call System.@InitializeRecord // System._InitializeRecord(EAX, EDX);
    // _r := r;
    lea eax, _r // EAX := @_r;
    pop edx // EDX := Pop(); // @r
    mov ecx, TRecord_TypeInfo // EDX := TypeInfo(TRecord);
    call System.@CopyRecord // System._CopyRecord(EAX, EDX, ECX);

    lea eax, _r // EAX := @_r; // optional

    // Aqui vai o resto da função. Nós trabalharemos no
    // record "_r" (a cópia local), agora apontada em EAX.

    // Nós temos que finalizar a cópia local antes de retornarmos
    // System._FinalizeRecord(@_r, TypeInfo(TRecord));
    lea eax, _r // EAX := @_r;
    mov edx, TRecord_TypeInfo // EDX := TypeInfo(TRecord);
    call System.@FinalizeRecord // System._FinalizeRecord(EAX, EDX);
    end;

    Como _AddRefRecord, a procedure _InitializeRecord é apenas destinada
    para ser usada com records não inicializados.


    Retornando valores de records
    =============================

    Retornar valores de records é exatamente o mesmo que retornar valores de
    array estático. Funções que retornam records recebem um último parâmetro
    adicional que é o ponteiro para a localização em memória onde o valor de
    retorno deve ser armazenado, isto é, o valor do último parâmetro é
    @Result. A memória para o record de resultado deveria ser alocada,
    inicializada e liberada pelo chamador (não é de responsabilidade da
    função chamada). Por exemplo, vamos considerar a seguinte função:

    function MakeRecord(Id: integer; const Name: string): TRecord;
    begin
    Result.Id := Id;
    Result.Name := Name;
    end;

    A função é declarada para receber dois parâmetros e retornar um record,
    mas internamente é como uma procedure com três parâmetros:

    1) EAX = O Id para o novo record
    2) EDX = O nome para o novo record
    3) ECX = O endereço do record de resultado (@Result)

    A função pode ser reescrita em assembler como segue :

    function MakeRecord(Id: integer; const Name: string): TRecord;
    asm // EAX = Id; EDX = @Name[1]; ECX = @Result
    mov (TRecord PTR [ecx]).Id, eax // ECX^.Id := EAX; // Id
    // (@Result)^.Id := EAX;
    // Result.Id := EAX;
    // Result.Name := Name;
    // System.@LStrAsg(@(Result.Name), @Name[1])
    // System.@LStrAsg(@(ECX^.Name), @Name[1])
    lea eax, (TRecord PTR [ecx]).Name // EAX := @(ECX^.Name);
    call System.@LStrAsg // _LStrAsg(EAX, EDX)
    end;

    NOTA: Nós não designamos o valor EDX antes de chamar _LStrAsg
    porque EDX já contém o valor desejado (passado como parâmetro)


    Chamando funções que retornam records
    =====================================

    Considere o seguinte código:

    a := MakeRecord(n, s);

    Alguém seria tentado a pensar que o compilador traduz como:

    asm
    mov eax, n
    mov edx, s
    lea ecx, a // ECX := @a; // @Result
    call MakeRecord
    end;

    Mas as coisas não acontecem deste jeito, ao menos no Delphi 5. O
    compilador aloca e inicializa uma variável local que armazena o
    resultado e então copia o resultado do record para o record de destino.
    Nós não temos apenas ineficiência realizando uma cópia que seria
    desnecessária se usássemos um código como o acima, mas- como nós temos
    visto acima- a cópia por si mesma não é tão inocente como uma chamada
    para a procedure Move (_CopyRecord checa a informação de tipo de dado
    em runtime para localizar os campos que requerem tratamento especial).
    é claro, a variável local invisível é primeiro inicializada e
    eventualmente finalizada. Este modo é extremamente ineficiente. Se
    você precisa de velocidade, chame funções record-returning usando
    assembler como mostrado acima, passando diretamente o endereço da
    variável que irá guardar o resultado como o último parâmetro (@Result).

    Bem, é isto por enquanto. Na próxima parte, veremos algumas coisas
    básicas sobre o trabalho com objetos.

    __________________

    NOTA: O Código fonte e a aplicação DEMO estaram anexados no último post desse artigo.
  13. Like
    Big_Z reacted to p0w3r0ff in Atualização Importante - Ataque DDoS em Escala Sem Precedentes   
    Caros Membros,
    É com grande satisfação que informamos que o ataque DDoS massivo que enfrentamos chegou ao fim.
    Às 7 horas da manhã, conseguimos resistir a um dos maiores ataques da nossa comunidade,
    totalizando impressionantes 49 TB de tráfego malicioso e mais de 9,2 biliões de requests.
     
    Lamentamos profundamente pelo inconveniente causado pelo período de inatividade que possa ter sentido durante este ataque.
    Reconhecemos que, com os recursos limitados que temos, a resistência foi notável, e estamos extremamente agradecidos pela vossa paciência e apoio.
    Agora a trabalhar para normalizar todas as operações do fórum. Agradecemos a todos pela compreensão durante este período desafiador.

    A vossa segurança e a estabilidade da nossa comunidade são as nossas principais prioridades.
    Agradecemos pela vossa compreensão e apoio contínuo.
     


  14. Like
    Big_Z reacted to morfo2 in Microsoft Office   
    Não existe Office 365 gratuito, é um serviço de subscrição e não usa chaves de activação KMS.
    Compra uma chave Account Bind do Microsoft Office 2021 Pro Plus a partir de 7€ na Allkeyshop.

    Quando tiveres a chave vai ao Setup da Microsoft, activa a tua conta e instala o Office.

    Nota: Esta é a versão Windows. Se quiseres a versão Mac OS tens de procurar por ela.
  15. Thanks
    Big_Z reacted to hetzpvp in [Release]Fishbot - NEW SYSTEM | ANY METIN   
    Hi,
    I developed a fishing bot that uses image recognition algorithms to fish AFK in the new metin2 fishing system.
    By running the fishbot completly external from the metin2 client, this bot is completely undetectable.
     
    This bot works on every single metin, if you have any issues feel free to contact me via discord.
     
    Here is a video that show how the bot works
     
    https://youtu.be/jToz6Maj1EU
     
    Download links:
    If the metin is like Sancy Noor, where fishing windows is not centered, add me on discord and ask for other version of the fishing bot.
    Download
    VirusTotal

    Contact:
    Discord boristei
    Thanks.
  16. Like
    Big_Z reacted to Eylon in Eylon - New Stage | Servidor Português Middle School   
    Eylon - New Stage
     
    Abertura fase BETA: 16/06/2023, 18H Portugal Continental
    Abertura Oficial: 2 semanas aproximadamente após a abertura da fase beta.
    ------------------------------------------------------------------------------------------------
    Apresentação
     
    Site Oficial | Discord
    -----------------------------------------------------------------------------------------------
    O download do cliente será disponibilizado 1 dia antes da abertura, (dia 15/06/2023).
    Registos serão ativos no momento da abertura do Servidor, (16/06/2023).
    ----------------------------------------------------------------------
    Algumas prints da apresentação.
     

     




    E muito mais... Convidamos todos a experimentar.
     
     

     
    Cumprimentos
    Equipa Eylon
     
     
     
     
     
     
  17. Like
    Big_Z reacted to morfo2 in [Guia] Jogos + DLC's Grátis na Steam   
    1º Instalar a extenção da SteamDB no browser.
    2º Fazer login na Steam Store com a vossa conta.
    3º Entrar na SteamDB com a vossa conta Steam.
    4º Aceder aos Free Packages da SteamDB.
    5º Activem os filtros para evitar spam (Por exemplo, se quiserem DLC's grátis para os jogos que já têm, activem a última opção de filtragem)

    6º Activem os packages

     
    Só podem activar um máximo de 50 a cada hora.

  18. Like
    Big_Z reacted to morfo2 in Box Android Tv   
    Google TV - https://www.kuantokusta.pt/p/137930/google-chromecast-tv-white
    Tudo resto é lixo.
  19. Like
    Big_Z reacted to 'ŞŦŘƗƗҜ€Ř' in Apollo2 - Uma nova aventura!   
    Site não funciona e o tópico não respeita o Protocolo Para Divulgação De Servidores Metin2.

    Tópico fechado!
  20. Like
    Big_Z reacted to WinterWolf in [ENCERRAMENTO] [MKMT2, MT2PORTUGALIA]   
    Ninguém quer saber
  21. Like
    Big_Z reacted to morfo2 in Portátil Até 600€ (Trabalhos Casuais no Office, Ver Vídeos etc...)   
    Este é o melhor portátil que tens no mercado actualmente até 600€
    Lenovo IdeaPad 5 14ALC-686
    CPU: Ryzen 5 5500U
    RAM: 16GB 3200 MHz
    ECRÃ: TN 14" FHD 250nits Anti-glare, 45% NTSC
    SSD: 512GB NVMe Gen 3
    WebCam tem privacy shutter
    Única m3rda é que o Wi-Fi ainda é 802.11ac 2x2 em vez do 6
    Tem Leitor de cartões de memória
    2 USB 3.2 Gen 1 (um deles com power activo)
    1 USB-C 3.2 Gen 1 (suporta transferência de dados, Power Delivery 3.0 e DisplayPort 1.2)
    1 HDMI 1.4b
    1 Jack 3.5mm
    Bateria de 44.5Wh
    Pesa 1,39Kg
    Infelizmente as aulas já começaram, por isso já não existe stock de portáteis em lado nenhum.
     
    Não recomendo portáteis HP para nada. São pesados, têm problemas de aquecimento e chassis parece plástico, partem-se com facilidade.
    Tens por exemplo este laptop incrivel pelo preço https://www.globaldata.pt/portatil-hp-pavilion-156-15-eh1000np-r5-16gb-512gb-3e5y5eaab9 até consegue ser superior ao LeNovo por +50€ por uma única razão, materiais baratos...
    Vi todas as lojas cá em portugal, não há stock de nada decente.
    Única coisa que encontro é nos espanhois https://www.pccomponentes.pt/lenovo-ideapad-3-15lc6-640-amd-ryzen-5-5500u-8gb-512gb-ssd-156-pt
     
    Depois tens aqui Windows e Office
    Compra uma key W10Pro N + Office 2019 Pro Plus a tua irmã por 10€ e facilitas-lhe a vida
  22. Like
    Big_Z reacted to EdHardry in Portátil Até 600€ (Trabalhos Casuais no Office, Ver Vídeos etc...)   
    Costumo ver na PCDiga, mas muitos dos portáteis estão neste momento fora de stock...
    Vi este, agradou-me
     
    https://www.pcdiga.com/computadores/portateis/portateis/portatil-hp-255-g8-15-6-27k43ea-ab9
  23. Like
    Big_Z reacted to morfo2 in Guia Completo de Formatação Windows - Básico   
    Neste guia completo de formatação de computadores para utilizadores normais irá aprender o básico de uma formatação, bem como o porquê e como fazer.
    Também terá acesso gratuito a todo um aglomerado de software útil e benéfico ao seu computador.
     
    O porquê de formatar...
    Com o passar do tempo, o seu computador enche-se de programas, ficheiros, cache e na pior das hipóteses, vírus, entre outros... que acabam por afectar a performance da sua máquina.
    Ao formatar está a dar uma nova vida ao seu sistema e a remover por completo quaisquer eventuais problemas que tenha ou virá a ter.
     
    Antes da formatação...
    Aconselho sempre a limpar o pó de todos os seus componentes internos quer seja um desktop ou laptop, que neste segundo caso deverá ter em especial atenção ao sistema de refrigeração como o radiador e a(s) ventoinha(s).
    Atenção: Não abra o seu laptop se este ainda se apresentar na garantia ou se não tem conhecimentos mínimos de hardware. Caso isso se suceda, existem serviços de limpeza e manutenção que rondam os 20€ dependendo do sitio.
    Efectuando uma limpeza regular evita o sobreaquecimento, o mau contacto e aumenta o fluxo de ar que resulta na sua devida performance. Aproveite também para mudar a pasta térmica.
    Irá precisar de um dispositivo de armazenamento externo, de preferência uma Pen USB de 16Gb ou superior com capacidade de leitura continua.
    Se tem programas/ficheiros/imagens/vídeos/licenças importantes guarde-os antecipadamente noutro dispositivo para não os perder.
     
    Para começar...
    Transfira o Windows and Office ISO Downloader e execute-o.

    Escolha o Sistema Operativo que pretende (Windows 7, 8.1 ou 10) e a respectiva versão.

    Seleccione a língua e a arquitectura do seu sistema (32 bits ou 64 bits).

    Depois de efectuar o download está pronto para o segundo passo.
     
    Escrever imagem...
    Agora que tem o ficheiro .ISO do Sistema Operativo está na hora de introduzir a sua Pen USB no computador para escrever a imagem.
    Para isso irá precisar do Rufus que é um programa simples de escrita.

    Ao executar o Rufus seleccione o dispositivo (a sua pen USB).
    Nas opções de formatação seleccione os seguintes:
    Formatação rápida Criar disco de arranque com... [Imagem ISO] Criar nomes estendidos e ícones Seleccione também o seu ficheiro .ISO (Sistema Operativo) que transferiu no passo acima e clique em Iniciar.
    Após concluído, retire a pen USB com segurança e introduza-a no computador que pretende formatar.
     
    BIOS...
    Ao iniciar o seu computador já com a pen USB introduzida, tem de aceder à BIOS ou, se tiver, aceda directamente ao BOOT e escolha a sua pen USB para ser a primeira a ser inicializada.

    Guarde as alterações e reinicie o computador.
    Irá ser encaminhado automaticamente para o instalador do Sistema Operativo, nesta caso do Windows.

    Siga todos os passos com atenção e efectua a instalação do SO que irá demorar algum tempo dependendo das especificações do seu computador.
    Recomendo: Formate todas as suas unidades de armazenamento, elimine-as e crie uma nova unidade de armazenamento com o espaço total do disco.
     
    O renascimento...
    Agora que instalou o sistema operativo e já sente a máquina mais leve está na hora de lhe dar vida ou pelos menos sustentabilidade.
    Para isso irá precisar de instalar as drivers dos seus componentes de hardware.
    A forma mais eficaz de o fazer é procurar no website da marca do seu computador (no caso dos laptops) ou da sua motherboard (no caso dos desktops).
    Por exemplo, vou ao website da HP pesquisar pelo HP Pavilion 15-cc500 e procuro as drivers para o respectivo sistema operativo.
    Ao encontrar a lista de drivers tenha em mente que, as estritamente necessárias serão:
    Vídeo - Pode instalar através do website da marca para o caso de placas gráficas integradas. Caso tenha uma placa gráfica dedicada AMD ou Nvidia, transfira o actualizador da respectiva marca. Audio - Que será quase sempre da Realtek. Rede - Que se divide em LAN, rede Sem Fios (WiFi) e Bluetooth. Nos laptops o mesmo modelo pode conter diferentes fabricantes (Realtek, Broadcom, Intel...) que apenas poderá saber qual o original olhando para o componente em si mas de qualquer forma são todos compatíveis uns com os outros, pelo que não haverá problema se instalar o errado. Certifique-se é que instala as 3 drivers dos 3 componentes. Caso não tenha Bluetooth ou WiFi obviamente só precisa de instalar a driver do LAN e vice-versa. Eventualmente também deverá instalar as seguintes:
    Chipset - Só porque sim. Touchpad - Para portáteis. Câmara - Se tiver de origem. Câmaras externas deverão ter drivers próprias da marca. Teclado - No caso de teclados com RGB ou outras configurações que possam ser modificadas através de determinado software. Existem infindáveis drivers de "utilidade" desde o fast charge ao overclock que também podem ser instaladas mas para situações técnicas. Se não for necessário para a sua utilização, quanto menos instalar mais limpo o PC ficará.
     
    Para uma aplicação real...
    Já temos as drivers, falta os programas certo? Ninguém trabalha sem um Office, ninguém vê vídeos sem um Player ou lê PDF's sem um leitor.
    O Office pode ser transferido através do mesmo downloader que usámos para o Windows. Desta vez não terá que guardar numa pen USB, poderá executa-lo directamente com o Daemoon Tools.
    Além do famoso Office, para trabalhar no dia a dia com o computador irá precisar do seguinte:
    WinRar - Extractor e Compilador de ficheiros. Adobe Reader - Leitor e Conversor de PDF's. Adobe Flash Player - Código que permite correr vídeos e animações em várias plataformas. Adobe Shockwave - Código que permite correr jogos video-gráficos em browser. Java Runtime - Código que permite executar e ler aplicações, extensões, funções, etc... Paint.net - Programa básico de edição de imagem que é melhor que o clássico Paint. Windows Media Player - Geralmente vem pré-instalado. Existem outras soluções como a app de Filmes do Windows 10 que pode ser obtido na Store ou o VLC que também é bastante conhecido. No caso do Windows 7 e 8.1 verifique se necessitam do Microsoft .NET Framework e Microsoft Silverlight e qual a versão. Caso não os instale/actualize, irá ter problemas de compatibilidade. O Windows 10 não necessita, vêm pré-instalados.
     
    Se quiser complementar...
    Pode sempre instalar algumas recomendações totalmente gratuitas, caso lhe interesse para uma aplicação real!
    Chrome - Melhor browser global graças às suas extensões. Firefox - Melhor browser para programadores. Steam - Plataforma de jogos. Origin - Outra plataforma de jogos. NotePad++ - Para programadores. Discord - Programa de comunicação gratuita, melhor que TeamSpeak ou Skype. uTorrent - Para transferir torrents. Popcorn Time - Programa de visualização de filmes, séries e animes com qualidade HD e legendas, totalmente gratuito. aTube Catcher - Para transferir e converter músicas e vídeos directamente do YouTube. Spotify - Música Virtual DJ - Mesa de mistura virtual Bitdefender - Melhor anti-vírus global. (Nota: Windows 10 não necessita de anti-vírus devido à sua protecção Firewall e Windows Defender actualizado. Ao instalar anti-vírus de terceiros que não uma versão premium do Bitdefender está simplesmente a comprometer a sua segurança e a gastar dinheiro de forma estúpida. Agradeço que se o fizer, doe esse dinheiro para caridade ou na melhor das hipóteses, para a minha conta bancária, obrigado!) MBAM - Melhor anti-malware global. Action! - (by Mirillis) é o melhor programa de captura de imagem/vídeo global. O DirectX e o pacote de Visual C++ podem ser instalados previamente mas sem necessidade porque caso algum programa necessite dos referidos para ser executado, será encaminhado para o download do mesmo.
     
    Para terminar...
    Se não tem chaves de activação do Windows e do Office e também não quer gastar dinheiro basta seguir as indicações do Activador 2017.
     
    Todo o conteúdo presente neste tópico, bem como em toda a Cyber-Gamers, é totalmente gratuito!
    A comunidade promove o conhecimento sem receber nada em troca. Cabe a si decidir se quer ajudar ou não a nossa causa.
    Para qualquer informação ou dúvida que tenha não hesite em comentar.
     
    Agradecimento especial...
    Glossy pela partilha do Downloader da Microsoft
    Ratiborus pela concepção do activador
  24. Like
    Big_Z reacted to Valenza in [Full Pack] Photoshop Full Package (Renders, Bgs, Effects ...)   
    Boas... deixo abaixo um link para baixar, achei na epvp  postado por DEMONKING.,
    como não existe mais pessoas aqui na cyber que postam coisas novas,
    mas esperam alguem postar pra baixar e mal agradecer, deixo abaixo para os sangue sugas também...
    (se ja tiverem postado é só deletar, sem mimimi's)
     
    No download contém:
     
    - Mais de 900 renders de metin2;
    - Mais de 150 imagens de fundo ( metin2 e outras );
    - Mais de 400 efeitos (fogo/fumaça/energia/outros efeitos);
    - Mais de 250 texturas;
    - Mais de 50 Fontes (tipos de letras);
    Tamanho total de tudo isso: 934.7MB
     
     
    Algumas imagens:
     
     
     
    Download: https://mega.nz/file/Flg0jQwL#hq6H4xNqxsc1lxkN9LYDYKiGf-7e7DBjWeKnnNh1d3Q
     
    Créditos: 
    Pelos arquivos: DEMONKING. - epvp
    Por esse tópico: Valenza
    Baixou? Que bom que fui útil...
     
  25. Like
    Big_Z reacted to morfo2 in [2020] Black Friday - Produtos selecionados   
    Tal como fiz em 2018, venho fazer o mesmo.
    O Black Friday este ano decorre dia 27 de Novembro e mais uma vez cá estamos para ajudar a comunidade a aproveitar as promoções.
    Atenção que a Prévia do Black Friday começa hoje e terminará dia 30 de Novembro. Boas compras!
    Para quem já viu este guia pode dar scroll down para o fim e ver os produtos selecionados do dia.
    Novos produtos serão adicionados em novo Post assim que achar que deva ser feita uma seleção de produtos a um preço decente.
     
    Onde comprar Desktops e Laptops?
    Fnac e Worten são 2 centros físicos nos quais vocês não devem comprar rigorosamente nada, nem no black friday, nem em outras épocas do ano.
    Estas lojas têm preços acima da média devido à sua presença forte no mercado local e são conhecidas por burlar os clientes em valores promocionais, pois aumentam a tabela dias ou semanas antes da promoção, acabando por vender produtos com 30% de desconto mais caros que o valor real. Não caiam nestes esquemas!
    Lojas como PCDiga e PCComponentes são as que praticam os melhores preços do mercado desde há vários anos e com qualidade/confiança garantida!
    A PCComponentes sendo uma gigante espanhola, tem os melhores preços devido ao IVA reduzido, no entanto, certos produtos pagam portes e acaba por ser o mesmo que comprar cá. A promoção decorre de 15 a 29 de Novembro! https://www.pccomponentes.pt/black-friday
    A PCDiga é a loja mais famosa em Portugal e com os melhores preços nacionais. A promoção decorre entre 14 e 30 de Novembro. A rodagem de produtos seleccionados é feita a cada 24 a 36 horas pelo que devem comprar no próprio dia a tempo e horas para não perderem stock nem o desconto! https://www.pcdiga.com/black-november-pcdiga
    A forma mais simples de acompanhar o mercado e as suas promoções é através do KuantoKusta.
    KK é um comparador de preços português com uma selecção de diversas lojas a nível nacional e preços actualizados automaticamente.
     
    Aceda ao KuantoKusta e crie uma conta, após isso, siga os seguintes passos:
    1º Procure o(s) produto(s) que deseja;
    2º Veja os Preços de forma ascendente;
    3º Defina um Alerta de Preço; 

     
    4º Insira o preço máximo desejado para o Black Friday, tendo em conta o preço mais baixo do mercado.

     
    5º Dirija-se ao seu Perfil em Alertas de Preço;

     
    6º Aceda em "Os Meus Alertas" às "Newsletters" e active a notificação por Email.

    Após isso, está pronto para o Black Friday! Irá receber avisos por email dos produtos seleccionados e respectivos preços.
     
    Para saber se a promoção se trata de Burla ou não, basta usar o "Histórico de Preços" do KuantoKusta na página do produto.

     
    Em caso de burla, o preço antes do black friday será crescente.

     
    Produtos selecionados de hoje (PCDiga)
    Portátil MSI 15.6" GL65 Leopard 10SDK-036XPT por 1199,90€ (esgotado)
    Assistente Google Nest Hub por 79,90€
    Coluna Google Nest Audio por 89,90€
    Coluna Google Nest Mini por 29,90€ (esgotado)
    Router Google Wi-Fi Mesh AC1200 2x2 Wireless Dual-Band (1 Unidade) por 89,90€
    Router Google Wi-Fi Mesh AC1200 2x2 Wireless Dual-Band (3 Unidades) por 257€ (esgotado)
    Televisão Xiaomi Mi SmartTV 4A 32" LED HD Ready Android TV por 149,90€ (promoção terminada)
    Televisão Xiaomi Mi SmartTV 4S 43" LED 4K UHD Android TV por 279,90€ (esgotado)
    Televisão Xiaomi Mi SmartTV 4S 55" LED 4K UHD Android TV por 359,90€ (promoção terminada)
    Televisão Xiaomi Mi SmartTV 4S 65" LED 4K UHD Android TV por 559,90€ (esgotado)
    TV Box Xiaomi Mi Box S Android TV 4K HDR por 49,90€ (esgotado)
    Projector LG Minibeam PF50KS Full HD por 489,90€ (aumentou para 520€)
    Monitor LG 27GN750-B IPS 27" FHD 16:9 240Hz FreeSync / G-SYNC Compatible por 329,90€ (aumentou para 360€)
    Aspirador Robô Xiaomi Mi Robot Vacuum Mop Branco por 199,90€
    Aspirador Robô Xiaomi Mi Robot Vacuum Mop Pro Branco por 279,90€
    Smartphone Samsung Galaxy M51 6.7" 6GB/128GB Dual SIM Preto por 359,90€ (indisponivel)
    Smartphone Oppo Find X2 Lite 6.4" 8GB/128GB por 429,90€ (indisponivel)