MiniTut: Ressourcensparende GangCars

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • 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!