Beiträge von DialogHD

    Es kann sein das ich etwas durcheinander bringe, aber:


    du sagst er soll "Fraktion" von pID auf den Wert der variable fID setzen.
    Aber er bekommt nirgendwo den Wert für die variable fID

    Zitat

    ich will das er Leader abfragt oder ob er bei rank 11 hat warum < das
    wen man es mit == abfragen kann ? weil das egal ob ob man da abragt ob
    er drüber ist oder gleich ist


    nur er fragt nur leader ab wen ich kein leader bin und nur rank 11 habe lässt er mich net

    So sollte es gehen:


    if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pRank] >= 11 && PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pRank] >= 11)

    if(strcmp(cmd, "/invite", true) == 0)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "BENUTZUNG: /invite [playerid/Name]");
    return 1;
    }
    new leader = PlayerInfo[playerid][pLeader];
    new para1 = ReturnUser(tmp);
    if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pRank] == 11)
    {
    if(IsPlayerConnected(para1))
    {
    if(para1 != INVALID_PLAYER_ID)
    {
    if(gTeam[para1]==TEAM_GREEN && PlayerInfo[para1][pMember] == 0 && PlayerInfo[para1][pFMember] == 255)
    {
    if(PlayerInfo[para1][pFrakSperre] == 0)
    {
    GetPlayerName(para1, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    printf("Adminmeldung: %s hat %s in die Fraktion %s eingeladen.", sendername, giveplayer,Fracs[leader-1]);
    format(string, sizeof(string), "Du wurdest in die Fraktion %s von Leader %s eingeladen.",Fracs[leader-1], sendername);
    SendClientMessage(para1, COLOR_LIGHTBLUE, string);
    ShowPlayerDialog(para1,DIALOG_INVITE,DIALOG_STYLE_MSGBOX,"Du wurdes Eingeladen","Ein leader möchte dich gerne Einladen\nMöchtes du Invitet werden?","Ja","Nein");
    format(string, sizeof(string), "Du hast %s in die Fraktion %s eingeladen.", giveplayer,Fracs[leader-1]);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    SendClientMessage(playerid, COLOR_GRAD2, " Der Spieler muss nun deine Einladung annehmen oder ablehnen.");
    new iyear, imonth,iday;
    getdate(iyear, imonth, iday);
    format(string, sizeof(string), "%s[Level:%d] wurde von %s in die Fraktion %s eingeladen (%d-%d-%d)", giveplayer,PlayerInfo[para1][pLevel],sendername,Fracs[leader-1],imonth,iday,iyear);
    Eingeladen[para1] = leader;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Dieser Spieler hat eine Fraktions-Sperre");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Dieser Spieler ist in einer anderen Fraktion oder bereits ein Fraktionsmitglied.");
    return 1;
    }
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Nur der Leader kann diesen Befehl nutzen!");
    return 1;
    }
    return 1;
    }

    Zitat

    if(PlayerInfo[playerid][pLeader] == 1 && PlayerInfo[playerid][pRank] == 11)

    So ein blödsinn, hier fragst du ab ob er Leader und Rang 11 hat.


    mit || sagst du oder
    da du sagen möchtest Leader == 1 oder Rang == 11 must du mit || arbeiten.


    zeig mal den gesamten Code, vielleicht liegt ja garnicht hier der Fehler.
    (Ich denke man das da eigendlich eine Klammer dran ist, oder??... wenn nicht fehlt da eine ;) )


    und wo genau liegt dein problem?

    if(strcmp(cmd, "/ahelp", true) == 0 || strcmp(cmd, "/ah", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pAdmin] >= 1 || PlayerInfo[playerid][pSupporter] >= 1)
    {
    new str[2048];
    strcat(str,""#COL_ORANGE"Supporter:\n/kick - Jemanden Kicken\n/unfreeze - Jemanden vom Freeze befreihen\n");
    strcat(str,"/goto - Sich zu einem Spieler Teleportieren\n/aws - \n");
    strcat(str,"/aduty - Sich als Supporter anmelden\n/supmobil - Ein Supporter Fahrzeug Spawnen\n");
    strcat(str,"/gethere - Jemand zu sich Teleportieren\n/bigears - Den Chat lauschen\n\n");
    strcat(str,""#COL_RED"Adminlevel 1:\n/prison - Die Gefängniszeit von jemanden bearbeiten\n/");
    strcat(str,"/ar - Den report von jemanden annehmen\n/cr - Den Report von jemanden schließen\n");
    strcat(str,"/tr - Den Report von jemanden verweigern\n/cleartext - Den Chatverlauf löschen\n");
    strcat(str,"/checkwarns - Von jemanden die Warnsanzahl überprüfen\n/check - Die Statistiken von jemanden anzeigen\n");
    strcat(str,"/setint - Das Interrior von jemanden setzen\n/mute - Jemanden Muten(Stummschalten)\n");
    strcat(str,"/kickres - Reservierte Plätze kicken\n/warn - Jemanden Warnen\n/sban - Jemand ohne Nachricht Bannen\n");
    strcat(str,"/ban - Jemand Bannen mit Nachricht an alle Spieler\n");
    ShowPlayerDialog(playerid,DIALOG_ADMINHELP,DIALOG_STYLE_MSGBOX,"Hi",str,"Nächste Seite","Abbrechen");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_WHITE, "Du bist kein Supporter / Admin.");
    return 1;
    }
    }
    return 1;
    }


    Teste es mal :)

    über dem
    if (GetPlayerState(playerid) == 2)
    {
    new tmpcar = GetPlayerVehicleID(playerid);
    SetVehiclePos(tmpcar, plocx, plocy+4, plocz);
    TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0;
    }

    bau eine Abfrage rein:


    if(GetPlayerInterior(playerid) != GetPlayerInterior(plo))
    {
    SetPlayerInterior(playerid,GetPlayerInterior(plo));
    }


    Dort fragst du ab ob der, der sich Teleportiert im selben Interrior ist wie der, zu dem man sich portet.
    Wenn nicht wird der Interior auf den selben gesetzt.

    Ich denke mir mal das deine FraktionsID's mit den Namen der Dateien übereinstimmen.
    Wenn ja könntest du vielleicht mit folgendem arbeiten:


    fDaten[Spieler[playerid][Fraktion]][Spieler[playerid][Rang]] //Ich hoffe das konnte dir einen kleinen denk anschub geben;

    Ich empfehle dir das Textdraw nicht mit einem Timer zu Updaten sondern immer wenn er sich einloggt oder
    sein Job kündigt bzw einen neuen Job annimmt.


    unter OnGameModeInit definierst du wie vorher dein Textdraw, jedoch diesmal mit einer Schleife da dein
    Textdraw Spielerbezogen sein muss.

    Textdraw1[playerid] = TextDrawCreate(497.000000, 388.000000, ""); //Das kann ruhig leer bleiben
    TextDrawBackgroundColor(Textdraw1[playerid], 255);
    TextDrawFont(Textdraw1[playerid], 1);
    TextDrawLetterSize(Textdraw1[playerid], 0.390000, 1.000000);
    TextDrawColor(Textdraw1[playerid], 65535);
    TextDrawSetOutline(Textdraw1[playerid], 0);
    TextDrawSetProportional(Textdraw1[playerid], 1);
    TextDrawSetShadow(Textdraw1[playerid], 1);


    unter OnPlayerSpawn aktualisiert du anschließend das Textdraw:


    new jtext[20];
    if(Spieler[playerid][Job] == 0)
    {
    new TextString[20];
    format(TextString, sizeof(TextString), "Du bist derzeit Arbeitslos");
    TextDrawSetString(Textdraw1[playerid], TextString);
    TextDrawShowForPlayer(i, Tacho[playerid]);
    }
    else
    {
    if(Spieler[playerid][Job] == 1) { jtext = Job1)
    else if(Spieler[playerid][Job] == 2) { jtext = Job2)
    new TextString[20];
    format(TextString, sizeof(TextString), "Du arbeitest derzeit als %s", jtext); //Wie das Textdraw heißen soll
    TextDrawSetString(Textdraw1[playerid], TextString);
    TextDrawShowForPlayer(i, Tacho[playerid]);
    }


    Das selbe machst du da wo er sein Job Kündigt bzw einen neuen Job annimmt.


    Zu deinem Fehler: Das Spieler must du natürlich an dein Account System anpassen.