Fraktionsautos

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
  • Hallo Leute wie oben schon erwähnt habe ich ein Problem mit den Frakautos und zwar will ich das die autos von der Frakt 1,2,3 genutzt werden können hab das so gemacht nur das geht nicht.


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate==PLAYER_STATE_DRIVER)
    {
    for(new i=0; i<sizeof(armycars); i++)
    {
    if(GetPlayerVehicleID(playerid)==armycars[i])
    {
    if(GetPVarInt(playerid,"Fraktion")!=1||2||3)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,COLOR_ROT,"Du bist nicht berechtigt das Fahrzeug zu fahren.");
    }
    }
    }
    }
    return 1;
    }

  • ich kenns nur so:
    if(GetPVarInt(playerid,"Fraktion")!=1||GetPVarInt(playerid,"Fraktion")!=2||GetPVarInt(playerid,"Fraktion")!=3)


    du kannst aber auch ein switch machen ..

    switch(GetPVarInt(playerid,"Fraktion"))
    {
    case 1..3:
    {
    //usw
    }
    case 4..20:
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,COLOR_ROT,"Du bist nicht berechtigt das Fahrzeug zu fahren.");
    }
    }

    Einmal editiert, zuletzt von Tround ()

  • Ich hätte es (ausm Gedächtnis, deshalb ungetestet) so gemacht:

    OnPlayerStateChange:


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate==PLAYER_STATE_DRIVER)
    {
    if(IsPlayerInFrac(playerid,1) || IsPlayerInFrac(playerid,2) || IsPlayerInFrac(playerid,3))
    for(new pv = 0; pv < sizeof(armycars); pv++)
    {
    if(newcar == armycars[pv])
    {
    SendClientMessage(playerid,COLOR_ROT,"Du bist nicht berechtigt das Fahrzeug zu fahren.");
    RemovePlayerFromVehicle(playerid);
    TogglePlayerControllable(playerid,false);
    TogglePlayerControllable(playerid,true);
    }
    }
    }
    return 1;
    }


    Und ein Stock:


    stock IsPlayerInFrac(playerid,fracid)
    {
    if (PlayerInfo[playerid][pMember] == fracid || PlayerInfo[playerid][pLeader] == fracid)
    return 1;
    return 0;
    }

  • Danke an alle :P
    Ps: suche ein Rangsystem hab schon was gemacht aber das geht nciht bin ziemlich unerfahren aber übung macht den Meister
    /* ocmd:r(playerid, params[])
    {
    new text[128];
    if(sscanf(params,"s",text))return SendClientMessage(playerid,COLOR_ROT,"BENUTZUNG: /r [TEXT]");
    format(text,sizeof(text),"%s %s: %s",GetRankName(playerid), SpielerName(playerid),text);//
    SendClientMessage(playerid, COLOR_BLAU, text);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsPlayerInFrakt(i,GetPVarInt(playerid,"Fraktion")))
    {
    SendClientMessage(i,COLOR_BLAU,text);
    }
    }
    }
    return 1;
    }*/


    stock IsPlayerRank(playerid,Rank)
    {
    if(GetPVarInt(playerid,"Rang") >= Rank)//Hier würde ich >= machen, damit alle anderen Einheiten, die ein Höheren Rang haben, auch die Nachricht bekommen.
    return 0;
    }


    /*stock GetRankName(playerid)
    {
    new faction = GetPVarInt(playerid,"Fraktion");
    new rank = GetPVarInt(playerid,"Rang");


    new tmpstr[32];


    switch ( faction )
    {
    case "ARMY"
    {
    switch ( rank )
    {
    return rankNameArray[rank-1];
    }
    }
    }
    }*/


    und die Ränge da wo noch nichts drin steht weiß ich noch nichts


    new rankNameArray[64][20] = {
    "Rekrut","Kanonier","Gefreiter","BT-1 | Obergefreiter","BT-2 | Hauptgefreiter",
    "","","","","ST | Fahnenjunker","LW-1 | Feldwebel","LW-2 | Oberfeldwebel","LW-3 | Hauptfeldwebel",
    "","Leutnant","Oberleutnant","BT-Oberst","LW-Oberst","Generalleutnant****","General****"
    };