Beiträge von [ASAP]Frosty

    stock isPlayerRank(playerid,rankid)
    {
    if(GetPVarInt(playerid,"Rank") >= rankid)return 1;
    return 0;
    }


    Da hab ich irgendwie gefailt. Die Warnings haben alle nichts damit zu tun.


    ocmd:admins(playerid,params[])
    {
    new text[128];
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(SpielerInfo[i][Adminlevel] >= 1){
    format(text,sizeof(text),"%s\n%s ID: %d",text, pName(i),i);
    }


    }
    ShowPlayerDialog(playerid,DIALOG_SHOWADMINS,DIALOG_STYLE_MSGBOX,"Alle verfügbaren Admins\n%s",text,"Fertig","");
    return 1;
    }

    Bekommst gleich 'ne Antworte, dauert noch 5 Minuten.



    new invited[MAX_PLAYERS] = 0;
    new invfrak[MAX_PLAYERS] = 0;
    ocmd:annehmen(playerid,params[])
    {
    if(invited[playerid] == 0) return SendClientMessage(playerid,-1,"Du wurdest nicht in eine Fraktion eingeladen!");
    //if(GetPVarInt(playerid,"Fraktion") != 0)return SendClientMessage(playerid,-1,"Du bist bereits in einer Fraktion.");
    new ftext[128];
    if(invfrak[playerid] == 1) { ftext= "LSPD"; SetPVarInt(playerid,"Fraktion",1); SetPVarInt(playerid,"Rank",1); }
    else if(invfrak[playerid] == 2) { ftext= "Ordnungsamt"; SetPVarInt(playerid,"Fraktion",2); SetPVarInt(playerid,"Rank",1); }
    else if(invfrak[playerid] == 3) { ftext= "Sanitäter"; SetPVarInt(playerid,"Fraktion",3); SetPVarInt(playerid,"Rank",1); }
    else if(invfrak[playerid] == 4) { ftext= "Grove Street"; SetPVarInt(playerid,"Fraktion",4); SetPVarInt(playerid,"Rank",1); }
    else if(invfrak[playerid] == 5) { ftext= "Yakuza"; SetPVarInt(playerid,"Fraktion",5); SetPVarInt(playerid,"Rank",1); }
    new string[128];
    format(string,sizeof(string),"Du bist nun Mitglied der Fraktion %s.",ftext);
    SendClientMessage(playerid,-1,string);
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(GetPVarInt(i,"Fraktion") == invfrak[playerid] && GetPVarInt(i,"Rank") == 6)
    {
    SendClientMessage(i,-1,"Die Inviteanfrange wurde angenommen.");
    }
    }
    invited[playerid] = 0;
    invfrak[playerid] = 0;
    return 1;
    }
    ocmd:invite(playerid,params[])
    {
    if(!isPlayerRank(playerid,6))return SendClientMessage(playerid,-1,"Du bist kein Leader einer Fraktion.");
    new InviteID, rank;
    if(sscanf(params,"u",InviteID))return SendClientMessage(playerid,-1,"Benutze: /invite [Spielerid]");
    rank = GetPVarInt(playerid,"Fraktion");
    new ftext[128];
    if(rank == 1) { ftext= "LSPD";}
    else if(rank == 2) { ftext= "Ordnungsamt";}
    else if(rank == 3) { ftext= "Sanitäter";}
    else if(rank == 4) { ftext= "Grove Street";}
    else if(rank == 5) { ftext= "Yakuza";}
    new string[128];
    format(string,sizeof(string),"%s von der Fraktion %s möchte dich %s in die Fraktion aufnehmen. Tippe /annehmen.",SpielerName(playerid),SpielerName(InviteID),ftext);
    SendClientMessage(InviteID,-1,string);
    invfrak[InviteID] = rank;
    invited[InviteID] = 1;
    return 1;
    }


    Ungetestet, kann also sein, dass das nicht ganz funktioniert, dann sag einfach Bescheid. Falls du was nicht verstehst sag auch Bescheid.


    //edit2: Und an dem stock ist was falsch, so ist es richtig:

    stock isPlayerRank(playerid,rankid)
    {
    if(GetPVarInt(playerid,"Rank") < rankid)return 1;
    return 0;
    }


    //edit3: Das auskommentiert dort oben, kannst du mit reinnehmen, musst du aber nicht.

    Machst du doch schon mit "SetPVarInt(playerid,"Rank",6);".
    Um den Rank abzufragen, beispielsweise im /invite Befehl:

    if(GetPVarInt(playerid,"Rank") < 6) return SendClientMessage(playerid,FARBE,"Du hast nicht die nötigen Rechte!"); //Wenn der Rank kleiner ist als 6, soll die Message ausgegeben werden
    else //ansonsten
    {
    //Was passieren soll, wenn man Rank 6 ist.
    }

    Wanteds kannst du mit "SetPlayerWantedLevel" vergeben.
    Punkte für einen Führerscheinentzug ist ein wenig komplizierter, dafür müsstest du in der Spielerdatei/tabelle einen Punkt names "Punkte" o.ä. hinzufügen und diesem immer um eins erhöhen, wenn man bspw. durch einen Blitzer fährt oder ein Cop mit einem Befehl dem Spieler einen Punkt gibt.


    //e: Wenn ich dir das mal über TeamViewer oder so zeigen soll, musst du mich morgen anschreiben. Bin jetzt erstmal off.


    new hitsound[MAX_PLAYERS];
    new Arena[MAX_PLAYERS];
    new ordnungsamtcar[26];
    new lspdcar[18];


    main() //fehler Laut Pawn
    {
    print("\n----------------------------------");
    print("United Deathmatch");
    print("----------------------------------\n");
    }
    Hinter dem lspdcars[18] fehlte ein ";".


    Und:

    //Ordnungsamt
    #define ordnungsamtspawn 2262.3352,2035.9197,10.8203


    Da war ein Komma zu viel.


    switch(GetPVarInt(playerid,"Fraktion"))
    {
    case 0:{}
    case 1:{SetPlayerPos(playerid,lspdspawn);SetPlayerColor(playerid,BLAU);GivePlayerWeapon(playerid,41,500);GivePlayerWeapon(playerid,24,200);GivePlayerWeapon(playerid,3,1);GivePlayerWeapon(playerid,25,200);GivePlayerWeapon(playerid,31,250);GivePlayerWeapon(playerid,34,50);}
    case 2:{SetPlayerPos(playerid,ordnungsamtspawn);SetPlayerColor(playerid,BABYBLAU);GivePlayerWeapon(playerid,41,500);}
    case 3:{SetPlayerPos(playerid,sanitäterspawn);SetPlayerColor(playerid,ROT);GivePlayerWeapon(playerid,41,500);}
    case 4:{SetPlayerPos(playerid,grovestreetspawn);GivePlayerWeapon(playerid,24,100);GivePlayerWeapon(playerid,1,1);GivePlayerWeapon(playerid,25,40);GivePlayerWeapon(playerid,30,100);}
    case 5:{SetPlayerPos(playerid,yakuzaspawn);GivePlayerWeapon(playerid,24,100);GivePlayerWeapon(playerid,8,1);GivePlayerWeapon(playerid,25,40);GivePlayerWeapon(playerid,30,100);}
    }
    return 1;


    So sollte es klappen, lag am GivePlayerWeapon; du kannst nicht mehrere Waffen in einem "GivePlayerWeapon" vergeben.

    Zeig mal wie du lspdspawn definiert hast.
    Du musst nämlich eigentlich x, y und z einzeln definieren, bspw. lspdspawnx, lspdspawny.. oder lspdspawn[3];