Keine Fragen

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
  • Es funktioniert irgendwie nicht keine Ahnung warum da sthet nur Server unknow command.


    Besitzt du eine PVar auch, die den Namen "Rang" trägt?


    Du musst bei deinem Fraktions Befehlen, wenn er invitet wird folgendes schreiben:


    SetPVarInt(playerid,"Rang",1);


    Und auch einen GiveRank Befehl wo du dieses PVar nutzt ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S


  • Also bei /invite habe ich das
    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], pID;
    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),"Herzlichen Glückwunsch, du bist nun in der Fraktion %s.",ftext);
    SendClientMessage(playerid,GRÜN,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;
    SpawnPlayer(pID);
    SpielerSpeichern(pID);
    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),ftext,SpielerName(InviteID));
    SendClientMessage(InviteID,BABYBLAU,string);
    invfrak[InviteID] = rank;
    invited[InviteID] = 1;
    return 1;
    }


    Ist das so richtig?
    Und meinst du bei /f das ich denGetPVarInt auslesen muss?

  • Ist das so richtig?


    Schreib den Command von mir so, dann klappt es:


    ocmd:f(playerid,params[]) {
    if(!params[0]) return SendClientMessage(playerid,-1,"Benutze: /f [Text]");
    if(!GetPVarInt(playerid,"Fraktion")) return SendClientMessage(playerid,-1,"Du bist in keiner Fraktion!");
    new string[144],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,MAX_PLAYER_NAME),format(string,144,"* %s %s sagt: %s",rang_name[GetPVarInt(playerid,"Fraktion")-1][GetPVarInt(playerid,"Rank")-1],name,params);
    for(new i; i<MAX_PLAYERS; i++) {
    if(!IsPlayerConnected(i) || GetPVarInt(i,"Fraktion") != GetPVarInt(playerid,"Fraktion")) continue;
    SendClientMessage(i,-1,string);
    }
    return 1;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S



  • Es klappt alles soweit
    Nur noch ein /giverank befehl und damit kann ich nichts anfangen ich weis das ich eine Abfrage ob spieler Leader ist dann eine Abfrage welche Fraktion etc. aber ich weis nicht wie ich das schreibe.

  • Nur noch ein /giverank befehl und damit kann ich nichts anfangen ich weis das ich eine Abfrage ob spieler Leader ist dann eine Abfrage welche Fraktion etc. aber ich weis nicht wie ich das schreibe.


    So zum Beispiel:


    ocmd:giverank(playerid,params[]) {
    if(!GetPVarInt(playerid,"Fraktion") || GetPVarInt(playerid,"Rank") != 6) return SendClientMessage(playerid,-1,"Du bist nicht der Leader einer Fraktion!");
    new pID,rang,string[144],name[2][MAX_PLAYER_NAME];
    if(sscanf(params,"ud",pID,rang)) return SendClientMessage(playerid,-1,"Verwendung: /giverank [spielerid] [Rang]");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,-1,"Ein Spieler mit dieser ID ist nicht online!");
    if(GetPVarInt(pID,"Fraktion") != GetPVarInt(playerid,"Fraktion")) return SendClientMessage(playerid,-1,"Dieser Spieler ist nicht in deiner Fraktion!");
    if(rang <= 0 || rang > 6) return SendClientMessage(playerid,-1,"Dies ist ein ungültiger Rang!");
    GetPlayerName(playerid,name[0],MAX_PLAYER_NAME),GetPlayerName(pID,name[1],MAX_PLAYER_NAME);
    format(string,sizeof string,"* Leader %s hat %s zum Rang %s (%d) ernannt!",name[0],name[1],rang_name[GetPVarInt(pID,"Fraktion")-1][rang-1],rang);
    return SetPVarInt(pID,"Rank",rang),SendClientMessage(playerid,-1,string),SendClientMessage(pID,-1,string);
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S



  • Ok und danke teste mal


    Sonst klappt alles.



    Und mit einem /uninvite und ein /carrespawn befehl???? ( für Administratoren )
    Das mit dem Uninvite khab ich ocmd:uninvite(playerid,params[])
    {
    if(!isPlayerRank(playerid,6))return SendClientMessage(playerid,-1,"Du bist kein Leader einer Fraktion.");
    new InviteID, rank, pID;
    if(sscanf(params,"u",InviteID))return SendClientMessage(playerid,-1,"Benutze: /uninvite [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),"Du wurdest aus der Fraktion %s geworfen.",ftext);
    SendClientMessage(InviteID,BABYBLAU,string);
    SetPVarInt(playerid,"Fraktion",0);
    SpielerSpeichern(pID);
    return 1;
    }


    Wie ist der Befehl zum Wanted geben also im Script????
    Und ist /uninvite richtig deiner Meinung bei mir Funkt alles ^^

    4 Mal editiert, zuletzt von The Sensei ()