[Ajuda] Sistema de erro no Motor
#1

Galera eu queria criar um sistema de erro no motor.

Como funciona?
O player vai perdendo vida do carro, tipo ele bate e perde um pouco, bate denovo perde mais um pouco (isso ja й padrгo) sу que ao invйs de Explodir, como acontece no GTA, ou no SA-MP o quando chegasse em 20% de vida do carro apareceria Problemas No Motor, chame um Mecвnico, e o carro ficaria impossibilitado de uso, mesmo que descer ou subir do veiculo.

Quero que vocкs entendam que nгo estou a pedir cуdigo pronto, e sim uma ajuda de como fazer esse sistema.

Sou novo em .pwn, queria saber o que usar.


Obrigado a todos
Reply
#2

@Editado


Cуdigo pronto feito por mim agora.
Veja ai se funciona

pawn Код:
new bool:EngineFail[MAX_VEHICLES];


public OnPlayerUpdate(playerid)
{
    new veh = GetPlayerVehicleID(playerid);
    if(EngineFail[veh] ^ false)
    {
        new Float:health;
        GetVehicleHealth(veh, health);

        if(health > 500) return SendClientMessage(playerid, -1, #Veнculo precisa de reparos !);
        {
            if(IsPlayerInAnyVehicle(playerid))
            {
                new engine, lights, alarm, doors, bonnet, boot, objective;
                GetVehicleParamsEx(veh, engine, lights, alarm, doors, bonnet, boot, objective);
                SetVehicleParamsEx(veh, 0, lights, alarm, doors, bonnet, boot, objective);
                EngineFail[veh] = true;
            }
        }
    }
    return 1;
}
Nгo esqueзa de por
Код:
EngineFail[veh] = false;
no comando de reparar o carro
Reply
#3

Quote:
Originally Posted by Duun
Посмотреть сообщение
@Editado


Cуdigo pronto feito por mim agora.
Veja ai se funciona

pawn Код:
new bool:EngineFail[MAX_VEHICLES];


public OnPlayerUpdate(playerid)
{
    new veh = GetPlayerVehicleID(playerid);
    if(EngineFail[veh] ^ false)
    {
        new Float:health;
        GetVehicleHealth(veh, health);

        if(health > 500) return SendClientMessage(playerid, -1, #Veнculo precisa de reparos !);
        {
            if(IsPlayerInAnyVehicle(playerid))
            {
                new engine, lights, alarm, doors, bonnet, boot, objective;
                GetVehicleParamsEx(veh, engine, lights, alarm, doors, bonnet, boot, objective);
                SetVehicleParamsEx(veh, 0, lights, alarm, doors, bonnet, boot, objective);
                EngineFail[veh] = true;
            }
        }
    }
    return 1;
}
Nгo esqueзa de por
Код:
EngineFail[veh] = false;
no comando de reparar o carro
esse seu codigo tem muito que lhe diga, da pra melhor imenso

isto aqui

pawn Код:
if(health > 500) return SendClientMessage(playerid, -1, #Veнculo precisa de reparos !);
nao deveria ser

pawn Код:
if(health < 500) return SendClientMessage(playerid, -1, #Veнculo precisa de reparos !);
??
Reply
#4

Novo code:

PT

pawn Код:
public OnPlayerUpdate(playerid)
{
    new veh = GetPlayerVehicleID(playerid);
    if (EngineFail[veh] != false)
    {
        new engine, lights, alarm, doors, bonnet, boot, objective;
        GetVehicleParamsEx(veh, engine, lights, alarm, doors, bonnet, boot, objective);
        SetVehicleParamsEx(veh, 0, lights, alarm, doors, bonnet, boot, objective);
    }
    new Float: health;
    GetVehicleHealth(veh, health);

    if (health > 500) return SendClientMessage(playerid, -1, #Veнculo precisa de reparos!);
    {
        if (IsPlayerInVehicle(playerid, veh))
        {
            EngineFail[veh] = true;
        }
    }
    return 1;
}
Reply
#5

Nгo deu certo, com nenhum do code.

A mensagem nгo aparece, e o caminhгo ainda funciona normalmente
Reply
#6

On GameModeInit

pawn Код:
SetTimer("CarroQuebrar", 1000, 1);
Final do GM

pawn Код:
forward CarroQuebrar();
public CarroQuebrar()
{
    for(new i=0; i<MAX_PLAYERS; ++i)
    {
    new Float:Speedo_HP;
    if(IsPlayerInAnyVehicle(i))
    {
        new vehicle = GetPlayerVehicleID(i);
        GetVehicleHealth(vehicle, Speedo_HP);
        if(Speedo_HP <= 250){
        SendClientMessage(i, 0xFF0000AA, "Seu veнculo quebrou!!!");
        new engine, lights, alarm, doors, bonnet, boot, objective;
        GetVehicleParamsEx(vehicle, engine, lights, alarm, doors, bonnet, boot, objective);
        SetVehicleParamsEx(vehicle, VEHICLE_PARAMS_OFF, lights, alarm, doors, bonnet, boot, objective);
        }
    }
    }
    return 1;
}
Use como base, caso queira.. mas acredito funcionar :3

Atenciosamente,
Reply
#7

Atй deu certo, porйm quando o carro capota ele explode normalmente
Reply
#8

A mas isso й impossнvel de ser retirado..
Ao menos й atй aonde eu sei...
Atenciosamente,
Reply
#9

Alguйm teria uma sugestгo de como posso fazer?

@OFF

Код:
This forum requires that you wait 120 seconds between posts. Please try again in 2 seconds.
Reply
#10

Quote:
Originally Posted by [BWL]Chamaleon
Посмотреть сообщение
On GameModeInit

pawn Код:
SetTimer("CarroQuebrar", 1000, 1);
Final do GM

pawn Код:
forward CarroQuebrar();
public CarroQuebrar()
{
    for(new i=0; i<MAX_PLAYERS; ++i)
    {
    new Float:Speedo_HP;
    if(IsPlayerInAnyVehicle(i))
    {
        new vehicle = GetPlayerVehicleID(i);
        GetVehicleHealth(vehicle, Speedo_HP);
        if(Speedo_HP <= 250){
        SendClientMessage(i, 0xFF0000AA, "Seu veнculo quebrou!!!");
        new engine, lights, alarm, doors, bonnet, boot, objective;
        GetVehicleParamsEx(vehicle, engine, lights, alarm, doors, bonnet, boot, objective);
        SetVehicleParamsEx(vehicle, VEHICLE_PARAMS_OFF, lights, alarm, doors, bonnet, boot, objective);
        }
    }
    }
    return 1;
}
Use como base, caso queira.. mas acredito funcionar :3

Atenciosamente,
Tinha como fazer isso sem timer, sу botar na OnPlayerUpdate.
Mais prбtico e rбpido, sem sobrecarregar o sistema xD
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)