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] DS Systen Tires

    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] DS Systen Tires Empty [Tutorial] DS Systen Tires

    Mensagem por Weslley_Script Qua 24 maio 2023 - 19:49

    Olб , venho ensinar como fazer um sistema de pneu.
    Eu ia postar como FilterScript mas achei que tava muito basico , entгo vo explicar como fazer!

    Antes de tudo vocк precisa saber que em algo pro VEICULO tipo , ALARME, TRAVA, GAS ETC. SE USA MAX_VEHICLES.
    VI O POVO DO MEGA TRUCK USANDO MAX_PLAYERS PARA VEICULOS PQP.


    Bom vamos la:

    Primeiro o sistema de pneu precisa de uma variavel , uma variavel de veiculo e nгo de player
    pawn Код:

    new Pneu[MAX_VEHICLES];// Topo do GameMode/ FilterScript

    Deve ser float.
    Podes usar junto com seu sistema de carros.

    Apos isso precisamos setar os pneuґs quando o servidor e logado ja para que nгo comeзe extourado!
    Iremos utilizar um loop
    pawn Код:


    Código:
    for(new d = 0; d < MAX_VEHICLES; d++)
             Pneu[d] = 100;


    Tambem podes usar junto com sistema de carro que provavelmente seta algo no GameModeInit usando loop de veiculos.

    PHP код:

    Código:
    Pneu[d] = 100; > Esse 100 Se refere ao maximo do pneu podes mudar 

    Agora precisamos fazer um timer para que possamos reduzir o pneu conforme ele for andando.

    Primeiro vamos fazer uma variavel AGORA PARA O PLAYER , para que possa fazermos o timer!
    pawn Код:

    new Timer[MAX_PLAYERS];// Topo do GameMode/ FilterScript

    Bom feito isso iremos procurar pela callback chamada OnPlayerStateChange.
    Iremos fazer o codigo para ver se ele e motorista!
    E iniciar o Timer , e ja da um KillTimer (Parar o Timer).
    pawn Код:


    Código:
    [left]public OnPlayerStateChange(playerid, newstate, oldstate)
    {
        if(newstate == PLAYER_STATE_DRIVER)
        {
       
             Timer[playerid] = SetTimerEx("AtualizarVelocimetro", 100, true, "d", playerid);
             
        }else KillTimer(Timer[playerid]);
        return 1;
    }[/left]


    PHP код:

    Código:
    AtualizarVelocimetro -> Nome da callback que farб a atualizaзгo do pneu
    100 -> Tempo em segundos que esta verificaзгo serrб feita
    true -> Verdadeiro , significa que ele ficara repetindo
    KillTimer -> Ira parar o timer assim que ele sair do carro 

    Podes ser adaptado ao seu GameMode/FilterScript

    Agora vamos criar a CallBack para a atualizaзгo
    E diminuir o pneu!
    pawn Код:


    Código:
    [left]forward AtualizarVelocimetro(playerid);
    public AtualizarVelocimetro(playerid)
    {
        Pneu[GetPlayerVehicleID(playerid)] -= 0.1;
       
        if(Pneu[GetPlayerVehicleID(playerid)] < 1)
        {
               new Paineis, Portas, Luzes, Pneu;
               GetVehicleDamageStatus(GetPlayerVehicleID(playerid), Paineis, Portas, Luzes, Pneu);
               UpdateVehicleDamageStatus(GetPlayerVehicleID(playerid), Paineis, Portas, Luzes, 15);
        }
        return true;
    }[/left]


    PHP код:

    Código:
    Pneu[GetPlayerVehicleID(playerid)] -= 0.1; // Diminui a variavel do pneu em 0.1 ja que amesma e float
    GetPlayerVehicleID(playerid) -> Isso pega o id de seu veiculo para que possa atualiza/diminuir os pneus 

    Agora vou explicar como deve ser para que estoure o pneu:
    PHP код:

    Código:
    if(Pneu[GetPlayerVehicleID(playerid)] < 1) -> Quantidade minima para estourar o pneu 

    Ai vocк deve getar os damanges do veiculo, criando as variaveis das damanges para usa-los.
    PHP код:

    Código:
    new Paineis, Portas, Luzes, Pneu;
               GetVehicleDamageStatus(GetPlayerVehicleID(playerid), Paineis, Portas, Luzes, Pneu); 

    Agora para estourar o pneu . Hб varios modos de estouro .
    Vocк deve se perguntar como assim [Tutorial] DS Systen Tires Confused
    PHP код:

    Código:
    0: (0000)
        o-o
        | |
        o-o
    1: (0001)
        o-o
        | |
        o-i
    2: (0010)
        o-i
        | |
        o-o
    3: (0011)
        o-i
        | |
        o-i
    4: (0100)
        o-o
        | |
        i-o
    5: (0101)
        o-o
        | |
        i-i
    6: (0110)
        o-i
        | |
        i-o
    7: (0111)
        o-i
        | |
        i-i
    8: (1000)
        i-o
        | |
        o-o
    9: (1001)
        i-o
        | |
        o-i
    10: (1010)
        i-i
        | |
        o-o
    11: (1011)
        i-i
        | |
        o-i
    12: (1100)
        i-o
        | |
        i-o
    13: (1101)
        i-o
        | |
        i-i
    14: (1110)
        i-i
        | |
        i-o
    15: (1111)
        i-i
        | |
        i-i 

    Estes sгo de veiculos com 4 rodas .

    Para ver os de bikerrs/motos > https://sampwiki.blast.hk/wiki/TireStates

    Ai e so fazer um update das damanges

    PHP код:

    Código:
    UpdateVehicleDamageStatus(GetPlayerVehicleID(playerid), Paineis, Portas, Luzes, ID DO ESTOURO DO PNEU);
    ID DO ESTOURO DO PNEU -> Escolha seu id na tabela acima! 

    Bom para reparar o pneu e muito facil , e so setar a var do pneu a 100 ou ao maximo que vocк definiu!


    Creditos
    DonSpeed
    Rjjj
    Wiki sa-mp

    Qualquer duvida poste aqui tentarei exclarecer.



    [Tutorial] DS Systen Tires D07Xwqb
    [Tutorial] DS Systen Tires Yjab9HN

      Data/hora atual: Qui 9 maio 2024 - 16:39