SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

Participe do fórum, é rápido e fácil

SSGamers - 12 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

SSGamers - 12 Anos online por você.

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Chegou o novo tema 6.5.5 - SSGamers - Servidores online de qualidade - Aproveite e entre para nossa comunidade, inscreva-se já! - Ouça nossa web radio - Veja nossas novidades - Participe dos nossos setores de jogos online - Parcerias aberta fale já com um administrador.

    [Tutorial] Alterar variбveis com #emit

    Weslley_Script
    Weslley_Script
    SS - Fundador
    SS - Fundador


    Steam Steam : WeslleySSGames
    Zello : WeslleySSGames
    Mensagens : 11378
    Moedas : 1031978
    Data de inscrição : 06/10/2011
    Idade : 28
    Localização : Brasil

    [Tutorial] Alterar variбveis com #emit Empty [Tutorial] Alterar variбveis com #emit

    Mensagem por Weslley_Script Sáb 13 maio 2023 - 8:04

    Essa й a terceira etapa do tutorial. Bem, essa й um pouco mais complicada, mas nгo impede ninguйm de entender, na verdade essa etapa apenas serб para variбveis com STOR e LOAD e futuramente estarei explicando melhor STACK e os outros operadores que #emit dispхe.


    Em #emit. Tem dois opcodes bastante importantes chamados STOR E LOAD. Basicamente, LOAD carrega, e STOR SALVA. Como de costume, й tudo baseado em registros primбrios e secundбrios, portanto, novamente as operaзхes serгo feitas em PRI E ALT.



    Quando usamos

    pawn Код:

    Código:
    #emit LOAD.S.PRI VARIAVEL


    basicamente vocк estarб carregando o valor da VARIAVEL para o registro PRIMБRIO. E quando usamos
    pawn Код:

    Código:
    #emit LOAD.S.ALT VARIAVEL


    estaremos carregando no registro secundбrio. Como de padrгo, podemos usar os operadores aritmйticos, que ensinei no tutorial anterior. Logo podemos montar algo como


    Quanto й 10 + 5?

    pawn Код:

    Código:
    [size=14][size=13]new var1 = 5;
    new var2 = 10;

    new resultado;


    // carrega o valor de var1 na memуria PRIMARIA
    #emit LOAD.S.PRI var1

    // carrega valor de var2 na memуria SECUNDARIA
    #emit LOAD.S.ALT var2

    // como ensinei antes, vai somar o valor de PRI + ALT ou (5 + 10 conforme as variбveis)
    #emit ADD[/size][/size]



    Pois bem, executamos a soma de var1 + var2. Porйm, como vamos retornar os dados senгo com RETN? Simples, й pra isto que vem STOR, que irб salvar os dados em resultado. Apenas usando

    pawn Код:

    Código:
    // vai salvar o resultado de var1 + var2 na variбvel resultado. Sempre use PRI nestes casos, pois й a memуria principal e й onde o valor das operaзхes ficam salvas
    #emit STOR.S.PRI resultado


    // imprimir para checar
    printf("var1 + var2 = %d", resultado);


    [Tutorial] Alterar variбveis com #emit Gc6pnUI



    Mas e Bruno, podemos usar outros operadores alйm de ADD?


    Claro! Muitos operadores sгo aceitos, em especial os aritmйticos que ensinei na etapa anterior. Basta fazer:




    Multiplicar
    pawn Код:

    Código:
    new var1 = 5;
        new var2 = 10;

        new resultado;


        #emit LOAD.S.PRI var1

        #emit LOAD.S.ALT var2

        #emit SMUL // multiplica var1 x var2


        #emit STOR.S.PRI resultado

        printf("%d", resultado);






    Subtrair
    pawn Код:

    Código:
    [size=14][size=13]new var1 = 5;
        new var2 = 10;

        new resultado;


        #emit LOAD.S.PRI var1

        #emit LOAD.S.ALT var2

        #emit SUB // subtrai var1 - var2


        #emit STOR.S.PRI resultado

        printf("%d", resultado);[/size][/size]


    [center][/center]


    e qualquer outra operaзгo que mostrei antes. Alйm disto, se pensares bem, tambйm pode atй trocar o valor das variбveis, uma pela outra

    pawn Код:

    Código:
    new var = 10;
    new vor = 20;


    printf("%d e %d", vor, var);

    #emit LOAD.S.PRI var
    #emit LOAD.S.ALT vor

    #emit STOR.S.PRI vor // coloca VAR em VOR
    #emit STOR.S.ALT var // coloca VOR em VAR

    printf("%d e %d", vor, var);



    E simplesmente, alterou os valores:
    Код:

    Código:
    [10:32:35] 20 e 10
    [10:32:35] 10 e 20


    Simples nгo?


    Abraзos 
    Creditos: IPSBruno



    [Tutorial] Alterar variбveis com #emit D07Xwqb
    [Tutorial] Alterar variбveis com #emit Yjab9HN

      Data/hora atual: Qua 8 maio 2024 - 21:35