Beiträge von Jeffry

    MID ist die VID (ModelID) falls du das meinst also da speicher ich das Vehicle also 500 z.B

    Nein, ich meine die vehicleid.



    Ist damit die VehicleID gemeint? Wenn nein was denn?

    Ja.



    Und wie werde ich dann P_VID nutzen?

    Die brauchst du, um herauszufinden, ob ein Spieler in einem seiner Fahrzeuge sitzt.


    OnPlayerEnterVehicle z.B.:
    new bool:allowed;
    for(new d = 0; d < sizeof(PCar[]); d++)
    {
    if(PCar[playerid][d][P_VID] == vehicleid)
    {
    allowed = true;
    break;
    }
    }
    if(!allowed)
    {
    TogglePlayerControllable(false);
    TogglePlayerControllable(true);
    SendClientMessage(playerid, 0xFF0000FF, "Error: Dieses Fahrzeug gehört dir nicht.");
    return 1;
    }

    Herzlichen Glückwunsch shoxinat0r! Das hast du dir auf jeden Fall verdient! :)


    An dieser Stelle großen Dank an dich und selbstverständlich auch an das ganze Team für die tolle Arbeit, die ihr jeden Tag leistet!

    Woher weiß ich jetzt das dieses Fahrzeug "X" dem Spieler "Y" gehört und es auf seinem Namen abliest

    Brauchst du nicht. Da das Array auf "playerid" läuft, ist es eindeutig, dass es dem Spieler mit der playerid gehört.



    Ist es diese "ID" in Zeile 2628

    3628 nehme ich an. Die P_ID ist die "id" aus der Datenbank, meiner Annahme nach die id mit AUTO_INCREMENT in der Tabelle.



    Zeile 3624 bis 3637 musst du zu dem hier anpassen:
    for(new d = 0; d < sizeof(PCar[]); d++)
    {
    //Prüfe, ob Fahrzeug existiert. Wenn nicht, nutze den Slot und lege das Fahrzeug an.
    if(PCar[playerid][d][P_MID] == 0)
    {
    PCar[playerid][d][P_X] = SAHSpawn[SP][0];
    PCar[playerid][d][P_Y] = SAHSpawn[SP][1];
    PCar[playerid][d][P_Z] = SAHSpawn[SP][2];
    PCar[playerid][d][P_R] = SAHSpawn[SP][3];
    PCar[playerid][d][P_C1] = FB;
    PCar[playerid][d][P_C2] = FB;
    PCar[playerid][d][P_MID] = GetVehicleModel(Autohausauto1[i]);
    //VID = vehicleid, die solltest du mit speichern, falls du auf das Auto zugreifen willst
    PCar[playerid][d][P_VID] = CreateVehicle(PCar[playerid][d][P_MID],PCar[playerid][d][P_X] , PCar[playerid][d][P_Y], PCar[playerid][d][P_Z], PCar[playerid][d][P_R], PCar[playerid][d][P_C1], PCar[playerid][d][P_C2], -1);
    //Hier dann noch ein INSERT Query für die Datenbank, damit das Auto angelegt wird.
    //...
    //hier einbauen!
    //...
    break;
    }
    }


    Das INSERT Query schickst du dann mit mysql_pquery ab, und im zugehörigen Callback schreibst du PCar[playerid][d][P_ID] = cache_insert_id(); rein.
    Über mysql_pquery gibst du mit "dd" das "d" und "playerid" mit.

    Du kannst es so machen:
    forward LoadPlayerCars(playerid);
    public LoadPlayerCars(playerid)
    {
    new rows, id;
    cache_get_row_count(rows);
    for(new i = 0; i < rows; i++)
    {
    cache_get_value_name_int(i, "ID", PCar[playerid][i][P_ID]);
    cache_get_value_name_float(i,"P_X",PCar[playerid][i][P_X]);
    cache_get_value_name_float(i,"P_Y",PCar[playerid][i][P_Y]);
    cache_get_value_name_float(i,"P_Z",PCar[playerid][i][P_Z]);
    cache_get_value_name_float(i,"p_R",PCar[playerid][i][P_R);
    cache_get_value_name_int(i,"P_C1",PCar[playerid][i][P_C1);
    cache_get_value_name_int(i,"P_C2",PCar[playerid][i][P_C2]);
    cache_get_value_name_int(i,"P_MID",PCar[playerid][i][P_MID]);
    }
    return 1;
    }

    Was passiert wenn ich 2 Autos habe? Das selbe mit 2 am Ende (P_X2 e.g)

    new PCar[MAX_PCARS][PCarEnum];
    zu:
    new PCar[MAX_PLAYERS][MAX_PCARS][PCarEnum];


    Außerdem musst du dann alle
    PCarEnum[id][enumWert]
    zu:
    PCarEnum[playerid][id][enumWert]
    ändern.


    Und in LoadPlayerCars mit einer Schleife arbeiten.




    Verstehe dieses Tutorial nicht so ganz, liegt an der MYSQL glaube ich ist ja bisschen älter.

    Das stimmt, aber du hast es doch schon gut hinbekommen. Kleine Änderungen sind durch den Wechsel auf R40+ notwendig. Das Grundprinzip bleibt aber gleich.

    Ändere bitte mal
    if(sscanf(inputtext,"u", pid))
    zu:
    if(sscanf(inputtext,"u", pid)) return SendClientMessage(playerid, -1, "Bitte gebe einen Spieler ein.");
    printf("inputtext: %d / pid: %d / playerid: %d", inputtext, pid, playerid);


    Was wird dir so im Server Log ausgegeben?

    Ich habe jetzt doch etwas früher zugeschlagen als eigentlich geplant. Geplant war ja der Black Friday, mein inzwischen etwas in die Jahre gekommenes S4 zu ersetzen (4,5 Jahre, immer sehr zufrieden damit!), aber bei dem Angebot gestern konnte ich nicht nein sagen.
    Folgendes Angebot gab es gestern bei Saturn (über dealdoktor.de gefunden). Screenshots, da der Artikel inzwischen angepasst wurde, da das Angebot kurz danach ausverkauft war.




    Das Angebot ist für mich genial. 2GB ist doppelt so viel wie ich aktuell habe. Die Geschwindigkeit ist ebenfalls doppelt so hoch wie aktuell. LTE benötige ich nicht, das hat der aktuelle Vertrag auch nicht (und wenn wirklich mal gar nichts mehr geht, das Geschäftshandy hat Telekom-LTE, war bisher aber noch nie der Fall, eher andersrum). Allnet-Flat war mir wichtig, das ist dabei, zuvor waren es 300 Einheiten, da wollte ich einfach nicht mehr begrenzt sein. SMS Einheiten sind keine dabei (das war vorher mit dabei), ich weiß aber auch nicht, wann ich die letzte SMS geschrieben habe.
    Der Preis dazu (26,99€/mtl. + 79€ einmalig) ist dafür mega.


    Da musste ich also zuschlagen :D



    Dazu dann noch Schutzfolie und Bumper:



    PS:
    Falls jemand Interesse an der Uhr oder am Tablet hat, darf sich gerne bei mir mit einem seriösen Angebot melden, ansonsten landet beides bei eBay.

    mysql.inc plugin in pawno>include zu stecken

    G:\Scripts\GCR\gamemodes\richtig.pwn(5065) : error 017: undefined symbol "mysql_fetch_row_format"

    Nutze die a_mysql.inc.



    Und arbeite etwas gewissenhafter. Ich stelle die Fragen nicht umsonst. Wenn du innerhalb von 5 Minuten antwortest und sich dann im Nachhinein herausstellt, dass du die Hälfte davon gar nicht gemacht hast, dann bringt das alles nichts.
    Also nochmal:
    1. Include richtig einfügen und nur die a_mysql.inc inkludiert haben.
    2. Code kompilieren, ohne Warnungen oder Errors.
    3. .amx hochladen
    4. Server neu startet, mit neuer .amx und R5 .so Plugin.

    if(dialogid == DIALOG_MDCREASON)
    {
    if(!response) return 1;
    new pid = GetPVarInt(playerid,"FahndetName"), string62[128];
    SendClientMessage(pid,-1,"du wirdst gesucht!");
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && IsACop(i))
    {
    format(string62, sizeof(string62), "HQ: Alle Einheiten: Reporter: %s",GetName(playerid));
    SendClientMessage(i, TEAM_BLUE_COLOR, string62);
    format(string62, sizeof(string62), "HQ: %s wird Gesucht, Verbrechen: %s",GetName(pid),inputtext);
    SendClientMessage(i, TEAM_BLUE_COLOR, string62);
    }
    }
    return 1;
    }