Problem mit Fahrzeug ohne Führerschein

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

  • if(newstate == PLAYER_STATE_DRIVER)
    {
    if(!PlayerInfo[playerid][pCarLic])//pCarLic
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast kein Führerschein.");
    RemovePlayerFromVehicle(playerid);
    TogglePlayerControllable(playerid,false);
    TogglePlayerControllable(playerid,true);
    return 1;
    }
    }
    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(!PlayerInfo[playerid][pFlyLic])//pFlyLic
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast kein Flugschein.");
    RemovePlayerFromVehicle(playerid);
    TogglePlayerControllable(playerid,false);
    TogglePlayerControllable(playerid,true);
    return 1;
    }
    }
    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(!PlayerInfo[playerid][pBoatLic])//pBoatLic
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast kein Bootschein.");
    RemovePlayerFromVehicle(playerid);
    TogglePlayerControllable(playerid,false);
    TogglePlayerControllable(playerid,true);
    return 1;
    }
    }



    Warum wird der Spieler nicht vom Auto rausgeworfen wen er kein Führerschein hat?

  • if(strcmp(cmd, "/makeleader", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pAdmin] < 4)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Dazu bist du nicht befugt!");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GOLD, "Fraktion 1: LSPD || Fraktion 2: FBI");
    SendClientMessage(playerid, COLOR_GOLD, "Fraktion 4: Sanitäter || Fraktion 5: LCM || Fraktion 6: Yakuza");
    SendClientMessage(playerid, COLOR_GOLD, "Fraktion 7: Präsident || 8: Hitman || 9: San News");
    SendClientMessage(playerid, COLOR_GOLD, "Fraktion 13: Grove Street || Fraktion 14: Ballas");
    SendClientMessage(playerid, COLOR_GOLD, "Fraktion 18: San Fierro Rifa");
    SendClientMessage(playerid, COLOR_GOLD, "Fraktion 23: Russen Mafia || Fraktion 24: Ordnungsamt");
    return 1;
    }
    new para1;
    new level;
    para1 = ReturnUser(tmp);
    tmp = strtok(cmdtext, idx);
    level = strval(tmp);
    if(level > 24 || level < 0) { SendClientMessage(playerid, COLOR_GREY, " Geh nicht tiefer als Nummer 0, oder höher als Nummer 24!"); return 1; }
    if (PlayerInfo[playerid][pAdmin] >= 4)
    {
    if(IsPlayerConnected(para1))
    {
    if(para1 != INVALID_PLAYER_ID)
    {
    if(PlayerInfo[para1][pMember] > 0 || PlayerInfo[para1][pFMember] < 255)
    {
    SendClientMessage(playerid, COLOR_GREY, " Dieser Player ist bereits/noch in einer Fraktion!");
    return 1;
    }
    if(PlayerInfo[para1][pFrakSperre] > 0)
    {
    SendClientMessage(playerid, COLOR_GREY, " Dieser Spieler hat FraktionsSperre!");
    return 1;
    }
    new ftext[32];
    if(level == 0) { ftext = "Zivilisten"; } else { ftext = Fracs[(level-1)]; }
    GetPlayerName(para1, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), " Du hast %s die Leaderrechte der Fraktion %s gegeben.", giveplayer,ftext);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), " Admin %s hat dich zum Leader von der Fraktion %s ernannt.", sendername,ftext);
    SendClientMessage(para1, COLOR_LIGHTBLUE, string);
    SendClientMessage(para1, COLOR_GRAD5, " Du kannst mit /help deine neuen Fraktionsbefehle betrachten");
    SendClientMessage(para1, COLOR_GRAD5, " Vergiss nicht: Du hast nun 4 Wochen Pflicht Leader in dieser Fraktion zu bleiben!");
    SendClientMessage(para1, COLOR_GRAD5, " Wenn du vor Ablauf der Frist rausgeworfen wirst, musst du die Rest der Zeit Zivilist bleiben.");
    gTeam[para1] = 0;
    PlayerInfo[para1][pTeam] = 0;
    PlayerInfo[para1][pRank] = 11;
    PlayerInfo[para1][pLeader] = level;
    PlayerInfo[para1][pGehalt] = 0;
    new iyear, imonth,iday;
    getdate(iyear, imonth, iday);
    format(string, sizeof(string), "%s[Level:%d] wurde von %s Als Leader der Fraktion %s eingeladen (%d-%d-%d)", giveplayer,PlayerInfo[para1][pLevel],sendername,ftext,imonth,iday,iyear);
    LeaderLog(string);
    if(level == 0)
    {
    gTeam[para1] = 3;
    PlayerInfo[para1][pTeam] = 3;
    PlayerInfo[para1][pMember] = 0;
    PlayerInfo[para1][pRank] = 0;
    PlayerInfo[para1][pChar] = 0;
    SetSpawnInfo(para1, gTeam[para1], 2,0.0,0.0,0.0,0,0,0,0,0,0,0);
    PlayerInfo[para1][pModel] = 2;
    MedicBill[para1] = 0;
    SpawnPlayer(para1);
    }
    else if(level == 1) { PlayerInfo[para1][pChar] = 283; gTeam[para1] = 2; PlayerInfo[para1][pTeam] = 2; } // LOS SANTOS POLICE
    else if(level == 2) { PlayerInfo[para1][pChar] = 294; gTeam[para1] = 2; PlayerInfo[para1][pTeam] = 2; } // SAN FIERRO POLICE
    else if(level == 3) { PlayerInfo[para1][pChar] = 287; gTeam[para1] = 2; PlayerInfo[para1][pTeam] = 2; } // Bundeswehr
    else if(level == 4) { PlayerInfo[para1][pChar] = 70; gTeam[para1] = 4; PlayerInfo[para1][pTeam] = 4; } // Medic
    else if(level == 5) { PlayerInfo[para1][pChar] = 223; } // La Cosa Nostra
    else if(level == 6) { PlayerInfo[para1][pChar] = 186; } // Yakuza
    else if(level == 7) { PlayerInfo[para1][pChar] = 295; } // Mayor
    else if(level == 8) { PlayerInfo[para1][pChar] = 230; } // Hitmans
    else if(level == 9) { PlayerInfo[para1][pChar] = 187; } // CNN
    else if(level == 10) { PlayerInfo[para1][pChar] = 189; } // Taxi Cab Company
    else if(level == 11) { PlayerInfo[para1][pChar] = 240; } // Fahrschule
    else if(level == 12) { PlayerInfo[para1][pChar] = 120; } // Fuegos
    else if(level == 13) { PlayerInfo[para1][pChar] = 270; } // Grove Street
    else if(level == 14) { PlayerInfo[para1][pChar] = 104; } // Ballas
    else if(level == 15) { PlayerInfo[para1][pChar] = 185; } // Street Racer
    else if(level == 16) { PlayerInfo[para1][pChar] = 110; } // Los Santos Vagos
    else if(level == 17) { PlayerInfo[para1][pChar] = 115; } // Varios Los Aztecas
    else if(level == 18) { PlayerInfo[para1][pChar] = 115; } // Los Santos Rifa
    else if(level == 19) { PlayerInfo[para1][pChar] = 19; } // Red Soldiers
    else if(level == 20) { PlayerInfo[para1][pChar] = 108; } // Terroristen
    else if(level == 21) { PlayerInfo[para1][pChar] = 47; } //Wheelmen
    else if(level == 22) { PlayerInfo[para1][pChar] = 285; } // S.W.A.T Elite Troop
    else if(level == 23) { PlayerInfo[para1][pChar] = 113; } // russenmafia
    else if(level == 24) { PlayerInfo[para1][pChar] = 71; } // Ordnungsamt
    SetPlayerSkin(para1, PlayerInfo[para1][pChar]);
    }
    }//not connected
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, " ** INFO: Das ist ein Adminbefehl, Du bist nicht befugt!");
    }
    }
    return 1;
    }


    Ich habe noch ein Problem wen ich ein Spieler Kicke wird er ab und zu beim Bauernhof gespawnt und fliegt durch die welt warum?

  • Verändere dort einfach die SpawnInfo, dann wird der Spieler an der gewünschten Stelle gespawned :)

  • Das stimmt, aber wenn du den Spawnskin ändern willst würde ich eher die Skinvariable (sprich PlayerInfo[para1][pSkin(?)]) ändern und dann SetPlayerSkin verwenden.
    Wenn du SetSpawnInfo verwendest setzt du gleichzeitig den Spawn auf x=0.0, y=0.0, z=0.0, angle=0.0.
    Alternativ kannst du auch (falls du das nicht schon tust) die Fraktionsspawns in Variablen abspeichern und dann dort einsetzen :)

  • Ich finde den Code allgemein etwas unübersichtlich, du wiederholst dich an einigen Stellen und ich habe das Gefühl, dass du alles in diesem Befehl selbst festlegst.
    Ich würde dir empfehlen die Daten entweder aus einer Datenbank zu laden undoder irgendwo festzulegen, sodass du eigentlich nur sagen müsstest:



    Alternativ kannst du aber auch nur die Fraktion & den Rank ändern, sodass du beim nächsten Spawn abfragst, ob die Fraktion "xyz" ist und er daher einen neu festgelegten Spawn hat (was ich dir raten würde).
    Habe übrigens nicht ganz genau mit deinen Variablen gearbeitet, aber hoffe, dass du trotzdem verstehst worauf ich hinaus möchte.


    Hier das Gedankenkonstrukt:
    "/setleader hans 5 -> hans wird in Fraktion 5 gesetzt -> Hans bekommt DEINLEADERRANK -> beim nächsten Tod wird in einer expliziten Funktion abgefragt, welcher Fraktion er angehört -> SetSpawn bei jedem Spawn individuell"
    Diese Funktion kannst du dann auch am Ende hier anhängen, sodass er neu gespawned wird. Hoffe das war verständlich :x