Beiträge von Manniac

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums

    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