Beiträge von Jeffry

    Woran kann das liegen?


    pID entspricht deinem HackAntrag[playerid]. Ich habe alle diese Aufkommen durch pID ersetzt, und pID ganz oben (siehe Kommentar) deklariert und instanziiert, mit dem Wert von HackAntrag[playerid].
    So ist der Code etwas leserlicher.


    wanteds war ebenfalls immer 0. Dies entspricht deinem HackWanteds[playerid], was wiederum WantedsHack ist. Ich habe also "wanteds" mit WantedsHack ersetzt.


    Die Schleife habe ich entfernt, da diese keien Wirkung hatte.
    Ebenfalls die if-Abfrage.


    Damit sieht der Code dann so aus:


    else if(strcmp(option, "hacken", true) == 0)
    {
    new Float:X, Float:Y, Float:Z;
    new pID = HackAntrag[playerid]; //Damit es einfacher ist. pID entspricht HackAntrag[playerid].
    if(pID != INVALID_PLAYER_ID)
    {
    if(HackAntrag[pID] != INVALID_PLAYER_ID)
    {
    if(IsLoggedIn(pID))
    {
    GetPlayerPos(pID, X, Y, Z);
    if(!IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z))return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht in der Nähe vom Spieler.");
    new WantedsHack = HackWanteds[playerid];
    new Geld = HackBetrag[playerid];
    if(GetMoney(pID) < Geld)return SendClientMessage(playerid, COLOR_GREY, "Dein Partner hat nicht genügend Geld.");

    if(WantedsHack < 0 || WantedsHack > 5)return SendClientMessage(playerid, COLOR_GREY, "Du kannst nur zwischen 1 und 5 Wanteds löschen.");
    if(Spieler[pID][pWanteds] == 0)return SendClientMessage(playerid, COLOR_GREY, "Der Spieler hat keine Wanteds.");
    OnWantedChange(pID, Spieler[pID][pWanteds], (Spieler[pID][pWanteds]-wanteds));
    Spieler[pID][pWanteds] -= wanteds;
    if(Spieler[pID][pWanteds] <= 0)Spieler[pID][pWanteds] = 0;

    new string[145];
    GetPlayerName(pID, string, MAX_PLAYER_NAME);
    format(string, sizeof(string), "Du hast %s den Hackbetrag genommen (+$%d).", string, Geld);
    SendClientMessage(playerid, COLOR_GREEN, string);
    GiveMoney(playerid, Geld);
    GiveMoney(pID, -Geld);

    HackBetrag[playerid] = 0;
    HackBetrag[pID] = 0;
    HackWanteds[playerid] = 0;
    HackWanteds[pID] = 0;
    HackAntrag[pID] = INVALID_PLAYER_ID;
    }
    }
    }
    return 1;
    }

    Einen Rat bitte was ich nicht beachtet habe?

    Die classid ist die ID, die AddPlayerClassEx zurück gibt, also der return Wert.


    Damit muss es so aussehen:
    switch(classid)
    {
    case 0..2:
    {
    GameTextForPlayer(playerid, "~g~Paramedic", 6000, 4);
    SetPlayerColor(playerid, 0x0000FFFF);
    }
    case 3..5:
    {
    GameTextForPlayer(playerid, "~g~Newsreporter", 6000, 4);
    SetPlayerColor(playerid, 0x0000FF00);
    }
    }



    Was du bei AddPlayerClassEx als 0 und 1 angegeben hast, ist die teamid (SetPlayerTeam/GetPlayerTeam).

    Wenn das Tog für die Polizei steht, dann so:
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(Tog[i][Mitglieder] == 1)
    {
    //Polizist:
    //i ist in dem Fall er selber, marker die anderen
    for(new marker=0; marker<MAX_PLAYERS; marker++)
    {
    if(IsPlayerNPC(marker))
    {
    SetPlayerMarkerForPlayer(i,marker, (GetPlayerColor(marker) & 0xFFFFFF00) ); //Unsichtbar, Farbe im Chat bleibt
    }
    if(Spieler[marker][Fraktion] == 1 && Spieler[i][Fraktion] == 1)
    {
    SetPlayerMarkerForPlayer(i,marker,0x0073FFFF); //blaue farbe
    }
    }
    }
    else
    {
    //Alle anderen:
    for(new marker=0; marker<MAX_PLAYERS; marker++)
    {
    SetPlayerMarkerForPlayer(i,marker, (GetPlayerColor(marker) & 0xFFFFFF00) ); //Unsichtbar, Farbe im Chat bleibt
    }
    }
    }

    Dart ist einfach geil :) Bin morgen auf das Match barneveld gg Taylor gespannt.. Ich hoffe ja dass Taylor gewinnt. #ThePower

    Ich auch!
    Ich würde es Taylor gönnen, dass er die WM nochmal gewinnt und dann mit dem WM Sieg seine Karriere beenden kann. Dafür muss er aber noch mindestens eine Schippe drauf legen, sowohl im Scoring als auch auf die Doppels.


    Wenn's Taylor nicht macht, dann hoffentlich Snakebite :D

    Du hast die Änderung aus Post #14 nicht gemacht.


    mysql_pquery(MySqlConnection,"SELECT * FROM accounts","OnQueryFinish","siii","SELECT * FROM accounts",_SQL_REGISTREDACCS_COUNT,playerid,MySqlConnection);
    zu:
    mysql_pquery(MySqlConnection,"SELECT * FROM accounts","OnQueryFinish","siii","SELECT * FROM accounts",_SQL_REGISTREDACCS_COUNT,playerid, _:MySqlConnection);

    wie kann ich beheben

    ocmd:editn2(playerid,params[])
    {
    if(PlayerInfo[playerid][pAdmin] >= 7)
    {
    new string[1024];
    format(string,sizeof(string),"{87FF00}Navipunkt hinzufügen{FFFFFF}");
    for(new n = 1; n <sizeof(NaviInfo); n++)
    {
    if(NaviInfo[n][naAktiv] == 1)
    {
    format(string,sizeof(string),"%s\n%s",string,NaviInfo[n][naName]);
    }
    }
    ShowPlayerDialog(playerid,DIALOG_NAVI_EDIT,DIALOG_STYLE_LIST,"Navigations System Bearbeiten",string,"Bearbeiten","Abbrechen");
    }
    else SendClientMessage(playerid,COLOR_GREY,"Du bist kein admin");
    return 1;
    }

    Simpel aber laeuft

    Nein, das wird nicht funktionieren.
    Grund ist, dass, wenn die erste ID im ValidSounds-Array nicht der targetsoundid entspricht, die Schleife mit der Fehlermeldung abgebrochen wird, da da else in der Schleife ist.


    Außerdem ist targetsoundid in dem Code nicht deklariert, das wird zu einem Fehler führen.


    Korrekt wäre es so:
    if(strcmp(cmd, "/sound", true) == 0)
    {
    new tmp[20], targetsoundid;
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, 0xFF0000FF, "USAGE: /sound [soundid]");
    targetsoundid = strval(tmp);
    for(new i=0; i < sizeof(ValidSounds); i++)
    {
    if(targetsoundid == ValidSounds[i])
    {
    PlayerPlaySound(playerid, targetsoundid, 0,0,0);
    //printf("Playing SoundID: %i",targetsoundid);
    return 1;
    }
    }
    SendClientMessage(playerid, 0xFF0000FF, "Invalid SoundID!");
    //printf("Tried to playback invalid SoundID: %i",targetsoundid);
    return 1;
    }


    Zusätzlich wird vor diesem Code (meist ist das direkt unter OnPlayerCommandText zu finden) folgendes benötigt:
    new cmd[20], idx;
    cmd = strtok(cmdtext, idx);


    Anbei das Array mit den Sound IDs: http://pastebin.com/sA5DNFaw (von: https://wiki.sa-mp.com/wiki/SoundID)



    Zusätzlich ist anzumerken, dass für diesen Code die strtok Funktion vorausgesetzt wird (daher die gl_common.inc). Die gl_common.inc nutzt allerdings eine veraltete strtok Funktion.
    Meine strtok 2.0 Funktion findet sich hier:
    http://wiki.sa-mp.com/wiki/Code_Snippets#Strtok

    format(query, sizeof(query), "INSERT INTO `ATMs` (`ID`, `X`, `Y`, `Z`, `A`) VALUES ('%d', '%d', '%d', '%d', '%d')", i, Pos[0], Pos[1], Pos[2], Pos[3]);
    zu:
    format(query, sizeof(query), "INSERT INTO `ATMs` (`ID`, `X`, `Y`, `Z`, `A`) VALUES ('%d', '%02f', '%02f', '%02f', '%02f')", i, Pos[0], Pos[1], Pos[2], Pos[3]);