Beiträge von Jeffry

    ocmd:invite(playerid,params[])
    {
    new pID;
    if(SpielerInfo[playerid][pRang] < 6) return SendClientMessage(playerid,Rot,""COLO"[4YR]Du bist kein Leader");
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,Rot,""COLO"Verwendung: "COLR"/invite [playerid] ");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,Rot,"Keiner ist Verbunden mit dieser ID!");
    SendClientMessage(pID, Rot,"Zum akzeptieren /accept invite eingeben.");
    SetPVarInt(pID, "inv_fraktid", SpielerInfo[playerid][pFraktion]);
    SetPVarInt(pID, "inv_inviter", playerid);
    return 1;
    }


    ocmd:accept(playerid, params[])
    {
    new item[64];
    if(sscanf(params,"s",item)) return SendClientMessage(playerid, Rot, "INFO: /accept [invite]");
    if(!strcmp(item, "invite", false))
    {
    if(GetPVarInt(playerid, "inv_fraktid") == 0)return SendClientMessage(playerid, Rot, "Du wurdest in keine Fraktion eingeladen.");
    new fID = GetPVarInt(playerid, "inv_fraktid");
    SpielerInfo[playerid][pFraktion] = fID;
    SpielerInfo[playerid][pRang] = 1;
    new string[128];
    format(string,sizeof(string), "Du bist der Fraktion %s beigetreten.",fInfo[fID][f_name]);
    SendClientMessage(playerid, Rot, string);
    format(string,sizeof(string), "%s ist der Fraktion beigetreten.",GetName(playerid));
    new frak = SpielerInfo[playerid][pFraktion];
    SetPlayerPos(playerid,fInfo[frak][f_x],fInfo[frak][f_y],fInfo[frak][f_z]);
    SetPlayerInterior(playerid,fInfo[frak][f_inter]);
    SetPlayerVirtualWorld(playerid,fInfo[frak][f_world]);
    SendClientMessage(GetPVarInt(playerid, "inv_inviter"), Rot,string);
    SetPVarInt(playerid, "inv_fraktid", 0);
    return 1;
    }
    return 1;
    }


    Achte darauf, etwas sparsam mit deinen Variablen umzugehen. fID und frak ist das gleiche in deinem /accept Befehl, da reicht eins von beidem. ;)

    Textdraw0[playerid] = CreatePlayerTextDraw(playerid, 15.000000, 110.000000, "PayDay");
    Textdraw1[playerid] = CreatePlayerTextDraw(playerid, 161.500000, 111.900001, "00/04");
    Textdraw2[playerid] = CreatePlayerTextDraw(playerid, 15.000000, 127.000000, "Lohn:");
    Textdraw3[playerid] = CreatePlayerTextDraw(playerid, 15.000000, 139.000000, "Zinsen:");
    Textdraw4[playerid] = CreatePlayerTextDraw(playerid, 15.000000, 151.000000, "Steuern:");
    Textdraw5[playerid] = CreatePlayerTextDraw(playerid, 15.000000, 163.000000, "Promille:");
    Textdraw6[playerid] = CreatePlayerTextDraw(playerid, 15.000000, 175.000000, "Kontoalt:");
    Textdraw7[playerid] = CreatePlayerTextDraw(playerid, 15.000000, 187.000000, "Kontoneu:");


    Wenn du meinen Code genommen hast dann nehme ich es auf meine Kappe, ich hab es nämlich auch vergessen zu ändern.

    Zitat

    Ich meine beim makeleader Befehl sollte ,wenn man den User Zivilist macht, auf Rank 0 gestellt werden. Weil dann in den /stats steht Fraktion: Zivilist Rang: 6.


    Ah, so meinst du das.
    SpielerInfo[pID][pRang] = 6;
    zu:
    if(fID != 0) SpielerInfo[pID][pRang] = 6;
    else SpielerInfo[pID][pRang] = 0;


    Zitat

    Beim /f chat gebe ich ein /f test und dann kommt:


    Nutzt du das Plugin oder den stock? Ich tippe auch den stock, also:
    if(sscanf(params, "s[128]", string))
    zu:
    if(sscanf(params, "s", string))

    Hier, ich hab's dir kurz gemacht, sonst schreiben wir nochmal 10 mal hin und her. ;)
    Dafür gibt es STRG+H, ich hab 30 Sekunden für alles gebraucht:


    Spoiler anzeigen
    //Payday
    Textdraw0[playerid] = CreatePlayerTextDraw(playerid, 15.000000, 110.000000, "PayDay");
    PlayerTextDrawBackgroundColor(playerid, Textdraw0[playerid], 255);
    PlayerTextDrawFont(playerid, Textdraw0[playerid], 2);
    PlayerTextDrawLetterSize(playerid, Textdraw0[playerid], 0.479999, 1.299998);
    PlayerTextDrawColor(playerid, Textdraw0[playerid], -1);
    PlayerTextDrawSetOutline(playerid, Textdraw0[playerid], 0);
    PlayerTextDrawSetProportional(playerid, Textdraw0[playerid], 1);
    PlayerTextDrawSetShadow(playerid, Textdraw0[playerid], 1);
    PlayerTextDrawUseBox(playerid, Textdraw0[playerid], 1);
    PlayerTextDrawBoxColor(playerid, Textdraw0[playerid], -16776961);
    PlayerTextDrawTextSize(playerid, Textdraw0[playerid], 197.000000, 67.000000);

    Spoiler anzeigen
    Textdraw1[playerid] = CreatePlayerTextDraw(playerid, 161.500000, 111.900001, "00/04");
    PlayerTextDrawBackgroundColor(playerid, Textdraw1[playerid], 255);
    PlayerTextDrawFont(playerid, Textdraw1[playerid], 1);
    PlayerTextDrawLetterSize(playerid, Textdraw1[playerid], 0.200000, 0.699998);
    PlayerTextDrawColor(playerid, Textdraw1[playerid], -1);
    PlayerTextDrawSetOutline(playerid, Textdraw1[playerid], 0);
    PlayerTextDrawSetProportional(playerid, Textdraw1[playerid], 1);
    PlayerTextDrawSetShadow(playerid, Textdraw1[playerid], 1);

    Spoiler anzeigen
    Textdraw2[playerid] = CreatePlayerTextDraw(playerid, 15.000000, 127.000000, "Lohn:");
    PlayerTextDrawBackgroundColor(playerid, Textdraw2[playerid], 255);
    PlayerTextDrawFont(playerid, Textdraw2[playerid], 1);
    PlayerTextDrawLetterSize(playerid, Textdraw2[playerid], 0.500000, 1.000000);
    PlayerTextDrawColor(playerid, Textdraw2[playerid], -1);
    PlayerTextDrawSetOutline(playerid, Textdraw2[playerid], 0);
    PlayerTextDrawSetProportional(playerid, Textdraw2[playerid], 1);
    PlayerTextDrawSetShadow(playerid, Textdraw2[playerid], 1);
    PlayerTextDrawUseBox(playerid, Textdraw2[playerid], 1);
    PlayerTextDrawBoxColor(playerid, Textdraw2[playerid], 65535);
    PlayerTextDrawTextSize(playerid, Textdraw2[playerid], 197.000000, 37.000000);

    Spoiler anzeigen
    Textdraw3[playerid] = CreatePlayerTextDraw(playerid, 15.000000, 139.000000, "Zinsen:");
    PlayerTextDrawBackgroundColor(playerid, Textdraw3[playerid], 255);
    PlayerTextDrawFont(playerid, Textdraw3[playerid], 1);
    PlayerTextDrawLetterSize(playerid, Textdraw3[playerid], 0.500000, 1.000000);
    PlayerTextDrawColor(playerid, Textdraw3[playerid], -1);
    PlayerTextDrawSetOutline(playerid, Textdraw3[playerid], 0);
    PlayerTextDrawSetProportional(playerid, Textdraw3[playerid], 1);
    PlayerTextDrawSetShadow(playerid, Textdraw3[playerid], 1);
    PlayerTextDrawUseBox(playerid, Textdraw3[playerid], 1);
    PlayerTextDrawBoxColor(playerid, Textdraw3[playerid], 65535);
    PlayerTextDrawTextSize(playerid, Textdraw3[playerid], 197.000000, 37.000000);

    Spoiler anzeigen
    Textdraw4[playerid] = CreatePlayerTextDraw(playerid, 15.000000, 151.000000, "Steuern:");
    PlayerTextDrawBackgroundColor(playerid, Textdraw4[playerid], 255);
    PlayerTextDrawFont(playerid, Textdraw4[playerid], 1);
    PlayerTextDrawLetterSize(playerid, Textdraw4[playerid], 0.500000, 1.000000);
    PlayerTextDrawColor(playerid, Textdraw4[playerid], -1);
    PlayerTextDrawSetOutline(playerid, Textdraw4[playerid], 0);
    PlayerTextDrawSetProportional(playerid, Textdraw4[playerid], 1);
    PlayerTextDrawSetShadow(playerid, Textdraw4[playerid], 1);
    PlayerTextDrawUseBox(playerid, Textdraw4[playerid], 1);
    PlayerTextDrawBoxColor(playerid, Textdraw4[playerid], 65535);
    PlayerTextDrawTextSize(playerid, Textdraw4[playerid], 197.000000, 37.000000);

    Spoiler anzeigen
    Textdraw5[playerid] = CreatePlayerTextDraw(playerid, 15.000000, 163.000000, "Promille:");
    PlayerTextDrawBackgroundColor(playerid, Textdraw5[playerid], 255);
    PlayerTextDrawFont(playerid, Textdraw5[playerid], 1);
    PlayerTextDrawLetterSize(playerid, Textdraw5[playerid], 0.500000, 1.000000);
    PlayerTextDrawColor(playerid, Textdraw5[playerid], -1);
    PlayerTextDrawSetOutline(playerid, Textdraw5[playerid], 0);
    PlayerTextDrawSetProportional(playerid, Textdraw5[playerid], 1);
    PlayerTextDrawSetShadow(playerid, Textdraw5[playerid], 1);
    PlayerTextDrawUseBox(playerid, Textdraw5[playerid], 1);
    PlayerTextDrawBoxColor(playerid, Textdraw5[playerid], 65535);
    PlayerTextDrawTextSize(playerid, Textdraw5[playerid], 197.000000, 37.000000);

    Spoiler anzeigen
    Textdraw6[playerid] = CreatePlayerTextDraw(playerid, 15.000000, 175.000000, "Kontoalt:");
    PlayerTextDrawBackgroundColor(playerid, Textdraw6[playerid], 255);
    PlayerTextDrawFont(playerid, Textdraw6[playerid], 1);
    PlayerTextDrawLetterSize(playerid, Textdraw6[playerid], 0.500000, 1.000000);
    PlayerTextDrawColor(playerid, Textdraw6[playerid], -1);
    PlayerTextDrawSetOutline(playerid, Textdraw6[playerid], 0);
    PlayerTextDrawSetProportional(playerid, Textdraw6[playerid], 1);
    PlayerTextDrawSetShadow(playerid, Textdraw6[playerid], 1);
    PlayerTextDrawUseBox(playerid, Textdraw6[playerid], 1);
    PlayerTextDrawBoxColor(playerid, Textdraw6[playerid], 65535);
    PlayerTextDrawTextSize(playerid, Textdraw6[playerid], 197.000000, 37.000000);

    Spoiler anzeigen
    Textdraw7[playerid] = CreatePlayerTextDraw(playerid, 15.000000, 187.000000, "Kontoneu:");
    PlayerTextDrawBackgroundColor(playerid, Textdraw7[playerid], 255);
    PlayerTextDrawFont(playerid, Textdraw7[playerid], 1);
    PlayerTextDrawLetterSize(playerid, Textdraw7[playerid], 0.500000, 1.000000);
    PlayerTextDrawColor(playerid, Textdraw7[playerid], -1);
    PlayerTextDrawSetOutline(playerid, Textdraw7[playerid], 0);
    PlayerTextDrawSetProportional(playerid, Textdraw7[playerid], 1);
    PlayerTextDrawSetShadow(playerid, Textdraw7[playerid], 1);
    PlayerTextDrawUseBox(playerid, Textdraw7[playerid], 1);
    PlayerTextDrawBoxColor(playerid, Textdraw7[playerid], 65535);
    PlayerTextDrawTextSize(playerid, Textdraw7[playerid], 197.000000, 37.000000);

    Ich würde sagen wir gehen das Schritt für Schritt, eins nach dem anderen, durch, damit du es auch verstehst, und vielleicht nach der Hälfte schon selbst weitermachen kannst.


    Zitat

    Und der Rank wird jeweils auf der Fraktions ID gesetzt also sprich: Bundeswehr ist Frakid 2 wird der Rank auf 2 gesetzt


    Beim Invite:
    SpielerInfo[pID][pRang] = frak;
    zu:
    SpielerInfo[pID][pRang] = 0;



    Zitat

    Und beim Makeleader befehlt sollte man(Wenn man /makeleader ID 0 eingibt (FRAKID 0 ist Zivil) der Rank in den Stats auch auf 0 gesetzt werden)


    Hast du eine Variable für den Leader, oder wie wird der Leader definiert? Hier ist er doch Rank 6, warum Rank 0? Das macht keinen Sinn.


    Zitat

    Unteranderem geht der /f Chat nicht.


    Was geht da nicht?

    Ok, du kommst der Sache näher.


    ALLE EDIT: TheTutoFreak: ;)
    Textdraw0
    zu
    Textdraw0[playerid]
    ebenso für die anderen Zahlen.


    Die Deklarationen:
    new PlayerText:Textdraw0[MAX_PLAYERS];
    ebenso für die anderen Zahlen.



    Nicht vergessen, bei OnPlayerDisconnect die PlayerTextdraws zu löschen.

    Hast du die Textdraws bei OnPlayerConnect mit
    http://wiki.sa-mp.com/wiki/CreatePlayerTextDraw
    erstellt?


    Die Deklarationen sind dann auch nicht mehr mit "Text:", sondern:
    new PlayerText:Textdraw0[MAX_PLAYERS];


    Dein Payday würde dann so aussehen:
    public Payday()
    {
    new string[128];
    new hour,minute, second;
    gettime(hour, minute,second);
    format(string,sizeof(string),"SERVER: Es ist %d:%02d:%02d Uhr",hour, minute, second);
    SendClientMessageToAll(Weis,string);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    GameTextForPlayer(i,"~g~PAYDAY",3000,1);
    PlayerTextDrawShow(i, Textdraw0[i]);
    PlayerTextDrawShow(i, Textdraw1[i]);
    PlayerTextDrawShow(i, Textdraw2[i]);
    PlayerTextDrawShow(i, Textdraw3[i]);
    PlayerTextDrawShow(i, Textdraw4[i]);
    PlayerTextDrawShow(i, Textdraw5[i]);
    PlayerTextDrawShow(i, Textdraw6[i]);
    PlayerTextDrawShow(i, Textdraw7[i]);
    }
    }
    return 1;
    }

    Ah danke jetzt klappt es aber wie kann ich die Textdraws dann nach 4 Sekunden wieder entfernen ?


    Les dir mal durch was ich geschrieben habe. Dein Code mag zwar auf den ersten Blick funktionieren, aber wenn du einen zweiten Payday bekommst haut es dir alles über den Haufen. Das tut vielleicht, zeitweise, ist aber keineswegs richtig. ;)
    PlayerTextdraws ist das Stichwort.

    Was macht ihr da eigentlich?
    Man kann doch nicht in der Schleife bei jedem Payday X mal MAX_PLAYERS-Textdraws erstellen. Da ist nach ein paar mal das Limit aber sowas von erreicht.


    public Payday()
    {
    new string[128];
    new hour,minute, second;
    gettime(hour, minute, second);
    format(string,sizeof(string),"SERVER: Es ist %d:%02d:%02d Uhr",hour, minute, second);
    SendClientMessageToAll(Weis,string);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    GameTextForPlayer(i,"~g~PAYDAY",3000,1);
    }
    }
    return 1;
    }


    Die Textdraws muss man als PlayerTextdraw bei OnPlayerConnect erstellen.
    http://wiki.sa-mp.com/wiki/CreatePlayerTextDraw


    Die ganzen Funktionen für das Layout der Textdraws sind dabei, du musst nämlich alle deine Textdraw zu PlayerTextdraws ändern.

    Ich glaube wir haben gerade aneinander vorbei geredet. :D


    Es war so gemeint:

    • Du sollst dort nachschauen, was du als letztes geändert hast.
    • Als Code sollst du den gesamten Code posten.


    Das war auch von mit etwas ungeschickt ausgedrückt.


    Aber, bevor du das machst. Unter welchem Callback (public) stehen denn die RemoveBuildingForPlayer's ?

    der user neben mir timeoutet und im Chat steht Youre Banned from the Server das ist aber nicht nur bei diesen Befehl sondern es passiert manchmal auchso


    Dann liegt es eigentlich nicht an dem Befehl, sondern an der Verbindung zwischen dem Spieler und dem Server. Das da "You are banned from this server." steht ist ein Fehler von SA-MP.

    Müsste so passen:
    ocmd:editbiz(playerid, params[])
    {
    if(PlayerDaten[playerid][pTutorial] == 1)return SendClientMessage(playerid,ORANGE," Du bist noch im Tutorial!");
    if(PlayerDaten[playerid][pLogin] == 0)return SendClientMessage(playerid,ORANGE ," Du bist nicht Eingeloggt!");
    if(PlayerDaten[playerid][pAdminlevel] != 2000)return SendClientMessage(playerid,DUNKELROT," Du hast kein Zugriff auf diesen Befehl!");
    new BizIDWahl, ExistsBiz[84], cmd[12], angabe[32];
    if(sscanf(params,"is[12]s[32]", BizIDWahl, cmd, angabe)) return SendClientMessage(playerid,DUNKELROT," Benutzung: /editbiz [ID] [Name/Preis] [Angabe]");
    format(ExistsBiz,sizeof(ExistsBiz),"/Firmen/%i.ini", BizIDWahl);
    if(dini_Exists(ExistsBiz))
    {
    if(strcmp(cmd,"Name",true) == 0)
    {
    // Hier ist noch alles Leer.
    }
    if(strcmp(cmd,"Preis",true) == 0)
    {
    if(!IsNumeric(angabe)) return SendClientMessage(playerid,DUNKELROT,"Ein Preis besteht nicht aus Buchstaben!");
    new preis = strval(angabe);
    }
    }
    return 1;
    }