MySQL: Carlock Befehl - alle Autos berücksichtigen

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Moin,


    ich bin mal wieder an einem Punkt angelangt, wo ich auch nach stundenlangem Probieren nicht selbst auf die Lösung komme. Es geht um einen /carlock Befehl. Den Befehl an sich habe ich mir dabei so gedacht:


    /carlock OCMD Befehl
    ocmd:carlock(playerid,params[])
    {
    for(new i=0; i<sizeof(cInfo); i++)
    {
    if(cInfo[i][id_x]==0)continue;
    new Float:x,Float:y,Float:z;
    GetVehiclePos(cInfo[i][id_x],x,y,z);
    if(!IsPlayerInRangeOfPoint(playerid,2,x,y,z))return SendClientMessage(playerid,GRAU,"Du bist nicht an deinem Fahrzeug.");
    if(cInfo[i][besitzer]!=sInfo[playerid][db_id])return SendClientMessage(playerid,GRAU,"Du bist nicht der Besitzer dieses Fahrzeugs!");
    new tmp_engine,tmp_lights,tmp_alarm,tmp_doors,tmp_bonnet,tmp_boot,tmp_objective;
    {
    GetVehicleParamsEx(cInfo[i][id_x], tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
    if(tmp_doors==1)
    {
    tmp_doors = 0;
    SendClientMessage(playerid,GRUEN,"Fahrzeug aufgeschlossen.");
    }
    else
    {
    tmp_doors = 1;
    SendClientMessage(playerid,GRUEN,"Fahrzeug abgeschlossen.");
    }
    SetVehicleParamsEx(cInfo[i][id_x], tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
    PlayerPlaySound(playerid,1145,0,0,0);
    }
    return 1;
    }
    return 1;
    }


    Dies funktioniert auch einigermaßen. Allerdings ist es für jeden Spieler in meinem Testscript derzeit noch möglich, unbegrenzt viele Fahrzeuge zu haben. Der Befehl funktioniert dann nur beim 1. Auto des Spielers in der Fahrzeugdatenbank, alle weiteren Fahrzeuge werden nicht berücksichtigt. Hier ein Screen von der Struktur meiner Datenbank:



    In meinem Fall funktioniert der Befehl also nur bei "ID 6", dem Infernus mit der model id 411. Bei allen weiteren Fahrzeugen erscheint dann die von mir erstellte message, dass ich nicht an meinem Fahrzeug bin.


    Und hier nochmal mein CarEnum, falls zum Verständnis benötigt:


    CarEnum
    enum carEnum{
    id_x,
    model,
    carcol1,
    carcol2,
    c_paintjob,
    c_spoiler,
    c_hood,
    c_roof,
    c_side,
    c_lamps,
    c_nitro,
    c_exhaust,
    c_wheels,
    c_stereo,
    c_hydraulics,
    c_fbump,
    c_rbump,
    c_ventleft,
    c_ventright,
    c_tank,
    c_health,
    c_lock,
    besitzer,
    Float:c_x,
    Float:c_y,
    Float:c_z,
    Float:c_r,
    db_id
    }


    Wie prüfe ich also alle Fahrzeuge eines Spielers ab, sodass der Befehl auch entsprechend bei allen Fahrzeugen eines Spielers funktioniert? Wie immer bitte ich zu berücksichtigen, dass ich mich erst seit ca. 1 Woche mit dem Scripting beschäftige. Sollte es offensichtlich Quatsch sein, was ich da programmiert habe, seht es mir nach. :P


    Danke!


    // Keiner einen Tipp parat? :|

    2 Mal editiert, zuletzt von Macronix ()