So heute zeige ich euch mal wie ihr ressourcensparendere gang cars macht.
zuersteinmal ein define wie viele gagcars ihr habt.( 5 reichen für unser tut)
#define MAX_GANGCARS 5
so nun kommen wir zu den varriablen die wir brauchen:
new gangcarid = -1; //<= das ist die zählnumer der gang cars
new gcar[MAX_GANGCARS];//<= Das ist die Vehicleid eurer gang cars
new ginfo[MAX_VEHICLES];//<= hier wird die fraktionsnummer gespeichert welche fraktion mit dem car fahren kann
nun kommen wir zu den stock der die gangcars erstellt
stock AddGangCar(gangid, modelid, Float:X,Float:Y,Float:Z,Float:V,color1,color2)
{
gangcarid++;//<= Hier wird die Zählnummer um eins hochgesetzt
gcar[gangcarid] = AddStaticVehicle(modelid, Float:X,Float:Y,Float:Z,Float:V, color1, color2);//<= Car wird erstellt
ginfo[gcar[gangcarid]] = gangid; //< Hier wird die nummer der fraktion in einem array gespeichert wer die cars fahren kann
}
So Fragt man ab ob es sich um ein gangcar handelt:
stock IsAGangCar(newcar)
{
for(new i=0;i<MAX_GANGCARS;i++)
{
if(newcar==gcar[i])
{
return 1;
}
}
return 0;
}
Nun kommen wir zur überprüfung ob ein wenn ein spieler sich in ein gangcar setzt Dazu gehen wir in das public OnPlayerStateChange
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)// wenn spieler fahrer wird
{
new newcar=GetPlayerVehicleID(playerid);//vehicleid wird in newcar gespeichert
if(IsAGangCar(newcar)&& pInfo[playerid][team] != ginfo[newcar])//wenn das auto ein gangcar ist und die fraktionsnummer des spielers (in meinem falle pInfo[playerid][team]) ungleich der fraktionsnumer des autos ist...
{
RemovePlayerFromVehicle(playerid);//wird er hinausgeworfen
new string[100];
format(string,sizeof string,"Du bist kein mitglied der %i!",ginfo[newcar]);
SendClientMessage(playerid, COLOR_GREY,string);//und folgender text angezeigt.
}
}
return 1;
}
So erstellt ihr ein gangcar
ihr schreibt unter ongamemode init AddGangCar(FRAKTIONSNUMMER, MODEL ID DES AUTOS, Float:X,Float:Y,Float:Z,Float:V,FARBE 1,FARBE 2);
vorraussetztung ist allerdings das ihr bereits ein fraktionssystem habt
und vergesst nicht, dass ihr pInfo[playerid][team] an eure varriablen anpassen müsst!