Beiträge von Manniac

    Wie willst du mit einem Mod die Daten der MYSQL Datenbank bekommen? Dafür müsstest du dich in den MYSQL Server hacken -> strafbar

    Wiki:
    // example code: protect vehicle tires from being popped
    // uses encode_tires function from: http://forum.sa-mp.com/index.php?topic=161491.msg960040#msg960040

    public OnVehicleDamageStatusUpdate(vehicleid, playerid)
    {
    #pragma unused playerid

    new panels, doors, lights, tires;
    GetVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
    tires = encode_tires(0, 0, 0, 0); // fix all tires
    panels = encode_panels(0, 0, 0, 0, 0, 0, 0); // fix all panels //fell off - (3, 3, 3, 3, 3, 3, 3)
    doors = encode_doors(0, 0, 0, 0, 0, 0); // fix all doors //fell off - (4, 4, 4, 4, 0, 0)
    lights = encode_lights(0, 0, 0, 0); // fix all lights
    UpdateVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
    return 1;
    }

    encode_tires(tire1, tire2, tire3, tire4) return tire1 | (tire2 << 1) | (tire3 << 2) | (tire4 << 3);
    encode_panels(flp, frp, rlp, rrp, windshield, front_bumper, rear_bumper)
    {
    return flp | (frp << 4) | (rlp << 8) | (rrp << 12) | (windshield << 16) | (front_bumper << 20) | (rear_bumper << 24);
    }
    encode_doors(bonnet, boot, driver_door, passenger_door, behind_driver_door, behind_passenger_door)
    {
    #pragma unused behind_driver_door
    #pragma unused behind_passenger_door
    return bonnet | (boot << 8) | (driver_door << 16) | (passenger_door << 24);
    }
    encode_lights(light1, light2, light3, light4)
    {
    return light1 | (light2 << 1) | (light3 << 2) | (light4 << 3);
    }


    Wie hast du "playername" definiert?

    Wahrscheinlich.
    Mir fällt gerade auf, dass noch die Fraktionsabfrage fällt. Musst die noch reinmachen, aber diesmal mit einem ! davor.
    if(!isPlayer..,dann kannste ganz einfach return SendClie..dahinterschreiben

    ocmd:sz(playerid,params[])
    {
    new pID,tpreis,grund[128],Float:p[3];
    if(sscanf(params,"uis[128]",pID,tpreis,grund))return ErrorMsg(playerid,"INFO: /sz [SpielerID] [Betrag] [Grund]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid, COLOR_GRAD2, "Dieser Spieler ist Offline!");
    if(SpielerInfo[pID][Eingeloggt]!=1)return SendClientMessage(playerid, -1, " Der Spieler ist nicht eingeloggt");
    GetPlayerPos(playerid,p[0],p[1],p[2]);
    if(!IsPlayerInRangeOfPoint(pID,15,p[0],p[1],p[2]))return SendClientMessage(playerid,COLOR_WHITE,"Spieler ist nicht in deiner Nähe.");
    ticketpreis[pID]=tpreis;
    ticketverkaufer[pID]=playerid;
    format(string,sizeof(string),"Staatsbeamter %s gibt dir ein Strafzettel in höhe von %d €! Grund: %s",SpielerName(playerid),tpreis,grund);
    SendClientMessage(pID,COLOR_LIGHTBLUE,string);
    SendClientMessage(pID,COLOR_LIGHTBLUE,"Gib /accept ticket ein, um den Strafzettel anzunehmen.");
    format(string,sizeof(string),"Strafzettel ausgestellt an: %s | Kosten: %d € | Grund: %s ",SpielerName(pID),tpreis,grund);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
    return 1;
    }
    Probier das mal

    Weil du zuerst Fahrschule[playerid] mit dem Checkpoint setzt, danach setzt du die var aber auf 1.
    Wenn dann


    new FahrschuleCP[MAX_PLAYERS][2];
    FahrschuleCP[playerid][0] = ...
    FahrschuleCP[playerid][1] = 1;

    Du willst also etwas aus einer Tabelle laden & in ein Enum übertragen?
    Mach es einfach so:
    stock LoadPlayer(playerid)
    {
    if(!IsPlayerNPC(playerid))//ist eigentlich irrelevant, kommt darauf an, wie du deinen stock aufrufst
    {
    new idx,
    result[500];
    format(result, 128, "SELECT * FROM `/*name der tab*/` WHERE `name` = '%s'", PlayerName(playerid));//ich gehe davon aus, dass du die Spalte "Name" hast.
    mysql_query(result);
    mysql_store_result();
    while(mysql_fetch_row_format(result, "|"))
    {
    sscanf(result, "p<|>{i}s[30]s[30]iiiiiiis[30]",/*enumname*/[idx]);//nur als bsp.
    // p<|>trennt die einzelnen werte mit einem |
    // { i} = irrelevanter integer. Wenn du z.b in deiner Tabelle deine Spieler mittels AI hochzählst, kannst du diese var überspringen, falls du keine verwendung hast. -> {} //überspring die var in der db.
    // s = string..(Name, etc)
    // f = Float(pos, hp etc)
    // Wenn du das dann angegeben hast (Es muss alles, was in der DB steht, auch im "sscanf teil" stehen. wenn du eine var nicht brauchst -> {}.
    // Nun werden die Daten in das(den?) Enum geladen.
    idx ++;//erhöhung, wegen while()
    }
    mysql_free_result();

    return 1;
    }


    Habs' mal so geschrieben. Ist ungetestet. Sollte aber vom Prinzip her funktionieren.


    (zu faul den code richtig einzurücken