Beiträge von HandsUpFreak

    Ich muss anscheinend doch nochmal stören, sorry for Doublepost.
    So sieht der Code derzeit aus:

    new Float:plrPosX, Float:plrPosY, Float:plrPosZ, Float:dis, string[256];
    new nearest_dist = -1;
    GetPlayerPos(playerid, plrPosX, plrPosY, plrPosZ);


    for(new i = 0; i < sizeof(CustomPos); i++) {
    dis = floatsqroot(floatpower(floatabs(floatsub(CustomPos[i][psPosX],plrPosX)),2)+floatpower(floatabs(floatsub(CustomPos[i][psPosY],plrPosY)),2)+floatpower(floatabs(floatsub(CustomPos[i][psPosZ],plrPosZ)),2));
    format(string, sizeof(string), "%f", dis);
    if (strval(string) < nearest_dist || nearest_dist == -1) {
    nearest_dist = strval(string);
    CustomInfo[playerid][NearPsName] = CustomPos[i][psComment];
    CustomInfo[playerid][NearPsPosX] = CustomPos[i][psPosX];
    CustomInfo[playerid][NearPsPosY] = CustomPos[i][psPosY];
    CustomInfo[playerid][NearPsPosZ] = CustomPos[i][psPosZ];
    }
    }

    Leider schmeißt er mir so eine Koordinate raus, die irgendwo auf einem Farmgelände in LS ist.
    Weiß jemand Abhilfe?

    Ja, außer bei dem item 2, und das möcht ich ja auch getriggert haben :)
    //Edit:
    Also zur besseren Verständnis:
    Ich habe bei dem Listitem 2 noch mehr Befehle, mir geht es einfach nur darum, dass er gar nicht erst das "List 2" printed. Würde er das tun, müsste ich hier nicht nachfragen. Die Punkte(.....) dienen auch nur dazu, um zu zeigen, dass dahinter noch ein ganzer Haufen Commands ist.

    Hallo,
    ich habe ein Problem mit dem Listdialog. Ich hab es genauso gemacht wie einen Testdialog, der bei mir mal funktioniert hat, aber dieser hier funktioniert nicht. Hier der Code:

    if(dialogid == TestDialog) { //Testdialog vorher natürlich oben mit #define festgelegt
    printf("DIALOG LIST ID %d", listitem); //Dient zum Debug, kommt 2 raus
    if(response == 0) {
    return 1;
    }
    if(response == 1) {
    return 1;
    }
    switch(listitem) {
    case 0: {
    return 1;
    }
    case 1: {
    return 1;
    }
    case 2: {
    printf("List 2"); //Wird nicht mehr angezeigt
    .....
    }
    }
    }


    ShowPlayerDialog(playerid, TestDialog, DIALOG_STYLE_LIST, "Einfach ein Test", "Test 1\n \nTest2", "Seite 2", "Schließen");

    Wenn ich bei dem Dialog nun auf "Test" drücke, passiert gar nichts und wie oben beschrieben kommt nur "listitem 2" raus. Ich hoffe, jemand kann mir hier helfen da ich anscheinend blind bin :pinch:
    Vielen Dank schonmal im voraus.

    Hallo,
    ich würde einmal gerne wissen, wie ich aus einem Enum die am naheliegensten Position rausfinden kann.
    D.h. ein Spieler steht mitten in der Wüste und ich habe eine Reihe von Punkten um ihn rum festgelegt. Nun möchte ich ermitteln, welches dieser Punkte am nächsten ist.


    Mfg

    Generell, nicht nur der Prozessor wird durch einen SA:MP Server belastet, sondern auch der RAM. Ich würde einfach nur gerne wissen, ob es schlecht ist wenn ich für jede einzelne "Kategorie"(Status, Gruppe, Auto usw) ein eigenes enum anlege.

    Hallo,
    ich speichere gerne und viel in enums, ich weiß auch nicht warum, aber ich tu es. Ist dies sehr performancelastig?
    Bestes Beispiel:
    Ich speichere Group-Daten in einem enum namens "GroupInfo", den Spieler-Status in "PlayerStatus" und die Spieler-Infos in PlayerInfo.


    Mfg

    Hallo,
    Derzeit cleane ich Arrays so:

    PlayerStatus[playerid][banned] = 0;
    PlayerStatus[playerid][bannedReason] = 0;
    PlayerStatus[playerid][getAccount] = 0;
    PlayerStatus[playerid][loggedIn] = 0;

    Ich habe aber sehr sehr viele Arrays und die Zeilen werden natürlich dementsprechend viele dadurch. Gibt es eine bessere Möglichkeit gesamte Arrays zu leeren?



    Mfg

    Hallo,
    ich würde einmal gerne wissen, wie man Daten aus einer Tabelle der MySQL-DB zieht(das weiß ich!) und wie man diese anschließend in einem Array speichert, sodass ich immer darauf zugreifen kann. Derzeit check ich z.B. das ganze so ab:

    stock IsPlayerInPetrolStation(playerid) {
    new sql[256];
    format(sql, sizeof(sql), "SELECT * FROM samp_petrolstations WHERE active = 1");
    mysql_query(sql);
    mysql_store_result();
    if(mysql_num_rows() > 0) {
    new line[750];
    new Tempdata[2];
    while(mysql_fetch_row(line)) {
    new Float:minX, Float:minY, Float:maxX, Float:maxY;
    sscanf(line, "p|ddffff",Tempdata[0], Tempdata[1], minX, maxX, minY, maxY);
    new Float:pX, Float:pY, Float:pZ;
    GetPlayerPos(playerid,pX,pY,pZ);
    if(IsPlayerInArea(playerid, minX, minY, maxX, maxY)) {
    mysql_free_result();
    return 1;
    }
    else {
    mysql_free_result();
    return 0;
    }
    }
    }
    return 0;
    }

    Nun würde ich aber gern, dass genau diese Daten in einem Array abgespeichert werden. Das ganze soll dann beim Gamemode-Init passieren. Das ist alles an sich kein Problem für mich nur bei der Array-Speicherung hapert es ein wenig. Wenn ich das nämlich so abfrage wird das zur reinsten Tortur für den Server.
    Vielen Dank schonmal und soweit noch einen schönen Abend.


    Mfg

    Hallo,
    ich möchte mit diesem Code ein Fahrzeug in die MySQL-DB eintragen:

    stock MeineFunktion(playerid, carid, Float:pos_x, Float:pos_y, Float:pos_z, Float:pos_angle, color1, color2, server) {
    new sql[128];
    new px[128], py[128], pz[128], pa[128];
    format(px, sizeof(px), "%f", pos_x);
    format(py, sizeof(py), "%f", pos_y);
    format(pz, sizeof(pz), "%f", pos_z);
    format(pa, sizeof(pa), "%f", pos_angle);
    format(sql, sizeof(sql), "INSERT INTO `samp_publiccars` (carid, pos_x, pos_y, pos_z, pos_angle, car_color1, car_color2, server) VALUES (%d, '%s', '%s', '%s', '%s', %d, %d, %d)", carid, px, py, pz, pa, color1, color2, server);
    mysql_query(sql);

    Leider zeigt mir dieser immer an:

    Zitat

    [21:39:45] CMySQLHandler::Query(INSERT INTO `samp_publiccars` (carid, pos_x, pos_y, pos_z, pos_angle, car_color1, car_color2, server) VALUE (520, '1417.540771') - An error has occured. (Error ID: 1064, You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1)

    Ich habe es vorher schon mit %f probiert aber das hat genausowenig geklappt, daher hab ich die floats in strings umgewandelt.
    Hat jemand eine Idee woran es liegen könnte?


    bei den Area Teilen, oder auch bei GangZones bietet sich das hier sehr gut an:


    http://forum.sa-mp.com/showthread.php?t=372


    einfach gewünsche Map stelle auswählen, und er gibt dir Automatisch die min & max x und y Achsen aus. einfach mal probieren..

    Ich möchte sehr kleine Gebiete festlegen, das Tool ist mir zu "grob".



    Area: 994.078979, 1015.293701, -940.880310, -932.806396
    Spieler:1002.087829, -939.329650


    Versuchs mal so.


    Probiert:

    Area: 994.078979, 1015.293701, -940.880310, -932.806396
    Spieler: 1008.535339, -939.449829

    Wieder ein false...