Peršokti į turinį

Klaida su Mašinos užvedimu


Recommended Posts

Padariau užvedimo/užgęsinimo simple sistema, kai įlipu į mašiną būną kaip originaliai: užsikuria automatiškai, o jei palaikau tada galiu važiuoti ir jei nespaudžiu nevažiuoja. nemoku paaiškinti :D

kodas: 

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    new vehicleid = GetPlayerVehicleID(playerid);
    if (GetPlayerVehicleSeat(playerid) == 0)
    {
        if (newkeys & KEY_ANALOG_DOWN)
        {
            GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
            SetVehicleParamsEx(vehicleid, 1, lights, alarm, doors, bonnet, boot, objective);
            SendClientMessage(playerid, color_RED, "Mašinos variklis užsivedė .");
            }else{
            SendClientMessage(playerid, color_RED, "Mašinos variklis užgęsintas .");
            GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
            SetVehicleParamsEx(vehicleid,0,lights,alarm,doors,bonnet,boot,objective);
        }

    }
    return 1;
}

 

Nuoroda į komentarą
Dalintis per kitą puslapį

5 minutes prieš, mariusqw parašė:

Sukurk publicą, paleisk for'ą kuris užgesintų visas mašinas. Ir kai krauna serverį sukurk timerį, kad jis kartotųsi.

Ką įrašyti į public? tuos visus kur yra įrašyti į OnPlayerKeyStateChange? ir kas tas For?:D Neesu toks geras skripteris

Nuoroda į komentarą
Dalintis per kitą puslapį

1 minute prieš, ALFRED. parašė:

Paaiškink labiau ką nori padaryt, nes pagal kodą spėju neveikia net ką padarei, kadangi bereikšmingas else pareiškimas.

noriu jog galėčiau užvesti mašiną su mygtuku. Ir paskui užgesinti su tuo pačiu mygtuku

Nuoroda į komentarą
Dalintis per kitą puslapį

Prirašyk šitas funkcijas kur tau patogiau, ar dokumento viršuje ar apačioje:

enum
{
	VEHICLE_ENGINE,
	VEHICLE_LIGHTS,
	VEHICLE_ALARM,
	VEHICLE_DOORS,
	VEHICLE_BONNET,
	VEHICLE_BOOT,
	VEHICLE_OBJECTIVE
};



GetVehicleParams(vehicleid, param)
{
	new
	    params[7];

	GetVehicleParamsEx(vehicleid, params[0], params[1], params[2], params[3], params[4], params[5], params[6]);
	return params[param] == VEHICLE_PARAMS_ON;
}

SetVehicleParams(vehicleid, param, status)
{
	new
	    params[7];

	GetVehicleParamsEx(vehicleid, params[0], params[1], params[2], params[3], params[4], params[5], params[6]);

	params[param] = status;

	return SetVehicleParamsEx(vehicleid, params[0], params[1], params[2], params[3], params[4], params[5], params[6]);
}

Toliau, norint padaryti jog transportas užsivestų/užsigesintų paspaudus klavišą:

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    new vehicleid = GetPlayerVehicleID(playerid);
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER))
    {
        if(newkeys & KEY_ANALOG_DOWN)
        {
            if(!GetVehicleParams(vehicleid, VEHICLE_ENGINE))
			{
				SetVehicleParams(vehicleid, VEHICLE_ENGINE, true);
				SendClientMessage(playerid, -1, "[!] Užvedėte transporto priemonės variklį.");
			}
			else
			{
				SetVehicleParams(vehicleid, VEHICLE_ENGINE, false);
				SendClientMessage(playerid, -1, "[!] Išjungėte transporto priemonės variklį.");
			}
        }

    }
    return 1;
}

Funkcijų gali neįsidėti, tačiau ateityje kai susidursi su kitom sistemom bus patogiau išjungti/įjungti variklį su viena eilute, nei kopijuoti 5+ eilutes iš naujo.

Redaguota , nario ALFRED.
Nuoroda į komentarą
Dalintis per kitą puslapį

18 minutes prieš, ALFRED. parašė:

Prirašyk šitas funkcijas kur tau patogiau, ar dokumento viršuje ar apačioje:

enum
{
	VEHICLE_ENGINE,
	VEHICLE_LIGHTS,
	VEHICLE_ALARM,
	VEHICLE_DOORS,
	VEHICLE_BONNET,
	VEHICLE_BOOT,
	VEHICLE_OBJECTIVE
};



GetVehicleParams(vehicleid, param)
{
	new
	    params[7];

	GetVehicleParamsEx(vehicleid, params[0], params[1], params[2], params[3], params[4], params[5], params[6]);
	return params[param] == VEHICLE_PARAMS_ON;
}

SetVehicleParams(vehicleid, param, status)
{
	new
	    params[7];

	GetVehicleParamsEx(vehicleid, params[0], params[1], params[2], params[3], params[4], params[5], params[6]);

	params[param] = status;

	return SetVehicleParamsEx(vehicleid, params[0], params[1], params[2], params[3], params[4], params[5], params[6]);
}

Toliau, norint padaryti jog transportas užsivestų/užsigesintų paspaudus klavišą:

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    new vehicleid = GetPlayerVehicleID(playerid);
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER))
    {
        if(newkeys & KEY_ANALOG_DOWN)
        {
            if(!GetVehicleParams(vehicleid, VEHICLE_ENGINE))
			{
				SetVehicleParams(vehicleid, VEHICLE_ENGINE, true);
				SendClientMessage(playerid, -1, "[!] Užvedėte transporto priemonės variklį.");
			}
			else
			{
				SetVehicleParams(vehicleid, VEHICLE_ENGINE, false);
				SendClientMessage(playerid, -1, "[!] Išjungėte transporto priemonės variklį.");
			}
        }

    }
    return 1;
}

Funkcijų gali neįsidėti, tačiau ateityje kai susidursi su kitom sistemom bus patogiau išjungti/įjungti variklį su viena eilute, nei kopijuoti 5+ eilutes iš naujo.

 error 029: invalid expression, assumed zero

ant 

 if(newkeys & KEY_ANALOG_DOWN)

Nuoroda į komentarą
Dalintis per kitą puslapį

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    new vehicleid = GetPlayerVehicleID(playerid);
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
        if(newkeys & KEY_ANALOG_DOWN)
        {
            if(!GetVehicleParams(vehicleid, VEHICLE_ENGINE))
			{
				SetVehicleParams(vehicleid, VEHICLE_ENGINE, true);
				SendClientMessage(playerid, -1, "[!] Užvedėte transporto priemonės variklį.");
			}
			else
			{
				SetVehicleParams(vehicleid, VEHICLE_ENGINE, false);
				SendClientMessage(playerid, -1, "[!] Išjungėte transporto priemonės variklį.");
			}
        }

    }
    return 1;
}

Vienu skliausteliu per daug pridėjau, pabandyk šitą.

Nuoroda į komentarą
Dalintis per kitą puslapį

8 minutes prieš, ALFRED. parašė:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    new vehicleid = GetPlayerVehicleID(playerid);
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
        if(newkeys & KEY_ANALOG_DOWN)
        {
            if(!GetVehicleParams(vehicleid, VEHICLE_ENGINE))
			{
				SetVehicleParams(vehicleid, VEHICLE_ENGINE, true);
				SendClientMessage(playerid, -1, "[!] Užvedėte transporto priemonės variklį.");
			}
			else
			{
				SetVehicleParams(vehicleid, VEHICLE_ENGINE, false);
				SendClientMessage(playerid, -1, "[!] Išjungėte transporto priemonės variklį.");
			}
        }

    }
    return 1;
}

Vienu skliausteliu per daug pridėjau, pabandyk šitą.

Dėkui, bet kai tik ilipu būną užvesta

 

Nuoroda į komentarą
Dalintis per kitą puslapį

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.


×
×
  • Sukurti naują...