Auto nur für bestimmte skin

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
  • die gewünschten AUtos via for-Schleife herrasufiltern, dann bei


    OnPlayerStateCHange abfraen, ob das Auto in das der Spieler einsteigt eines dieser Fahrzeuge ist, dann den Skin abfragen, wenn das nicht passt - Remove, ansonsten nichts.

  • hab so
    Ongamemodeit....


    carskin = AddStaticVehicle(522,2494.4177,-1674.3195,12.8919,328.1621,3,8); // nrg-500


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(IsPlayerInVehicle(playerid,carskin))
    {
    if(GetPlayerSkin(playerid) == 188)
    {
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    }
    }


    return 1;
    }
    aber das fehler wo liegt das ich kann mit jedem skin es fahren


    Edit: was vergessen

  • //Ganz oben
    new SkinAuto[4];
    forward IsASkinAuto


    //Unter OnGameModeInit
    SkinAuto[0] = AddStaticVehicle(CARID,XYZ...);
    SkinAuto[1] = AddStaticVehicle(CARID,XYZ...);
    SkinAuto[2] = AddStaticVehicle(CARID,XYZ...);
    SkinAuto[3] = AddStaticVehicle(CARID,XYZ...);


    public IsASkinAuto(carid)
    {
    for(new i = 0; i < sizeof(SkinAuto); i++)
    {
    if(carid == SkinAuto[i])
    {
    return 1;
    }
    }
    return 0;
    }


    //Unter OnPlayerStateChange
    new newcar = GetPlayerVehicleID(playerid);


    if(IsASkinAuto(newcar))
    {
    new Skin[MAX_PLAYERS];
    Skin = GetPlayerSkin(playerid);
    if(!Skin[playerid] == SkinID)
    {
    SendClientMessage(playerid,farbe,"Du brauchst die Skinid: (Skinid)!.");
    RemovePlayerFromVehicle(playerid);
    }
    return 1;
    }


    Ungetestet!


    @Dollar, schau dir das beispiel an.


    Mfg

  • so habe ich es gemacht:
    Beispiel:


    #define fraktname0 "Zivilist"
    #define zivispawn 1154.7126,-1768.8016,16.5938


    public OnPlayerSpawn(playerid)
    {
    switch(GetPVarInt(playerid,"Fraktion"))
    {
    case 0:{SetPlayerPos(playerid,zivispawn}
    }
    return 1;
    }


    public OnPlayerCommand.....
    if(strcmp(cmdtext,"/stats",true)==0)
    {
    new string[128];
    new frakname[64];
    switch(GetPVarInt(playerid,"Fraktion"))
    {
    case 0:{frakname=fraktname0;}


    // usw...


    Wo sollte ich dann ich abfrage einfügen? Habe die Fraktion in mehreren Orten erstellt^^
    Habe erst vorgestern angefangen zu scripten :\
    LG und danke für deine Hilfe!
    :thumbup: :thumbup: :thumbup:

  • @france:


    Dir wurde doch deutlich beschrieben, was Du machen musst oO



    Er hat Dir gleich zuerst geantwortet..


    Grüße,
    tonyalva

  • Bei OnPlayerStateChange solltet ihr den Change noch mit angeben

    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    // Autoabfrage
    // Skinabfrage etc.
    }
    return 1;
    }


    EDIT: [pwn] vergessen <.<