fparken Problem

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
  • Hallo Community,


    Wäre gut wen @Jeffry antworten würde weil es aus seinem System basiert ist :p
    Hab wieder ein Problem wegen dem fraktionscar system :p
    Irgendwie speichert er die Positionen nicht Richtig ab nach dem fparken befehl hier sind die Screenshots


    Vor dem /fparken befehl:
    http://prntscr.com/7p4zeq


    http://fs2.directupload.net/images/150705/yvp6a6d7.png



    Nach dem /fparken befehl:
    http://prntscr.com/7p4zvx


    http://fs2.directupload.net/images/150705/m66d9728.png



    Hier der code


    ocmd:fparken(playerid)
    {
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_DRED, "Du bist in keinem Fahrzeug.");
    new vehicleid = GetPlayerVehicleID(playerid);
    if(SaveFracVehCheck(vehicleid)) return SendClientMessage(playerid, COLOR_DGREEN, "Fahrzeug geparkt.");
    else return SendClientMessage(playerid, COLOR_DRED, "Dieses Fahrzeug kann nicht geparkt werden.");
    }

    Einmal editiert, zuletzt von JOK3R ()


  • stock SaveFracVehCheck(vehicleid)
    {
    new query[256];
    for(new i=0; i<MAX_FRAC_VEHICLES; i++)
    {
    if(fcInfo[i][e_vID] == vehicleid)
    {
    GetVehiclePos(fcInfo[i][e_vID], fcInfo[i][e_x], fcInfo[i][e_y], fcInfo[i][e_z]);
    GetVehicleZAngle(fcInfo[i][e_vID], fcInfo[i][e_a]);
    format(query, sizeof(query), "UPDATE frakautos SET ModelID = '%d', PosX = '%f', PosY = '%f', PosZ = '%f', PosA = '%f', Color1 = '%d', Color2 = '%d', FracID = '%d' WHERE ID = '%d'",
    fcInfo[i][e_modelID], fcInfo[i][e_x], fcInfo[i][e_y], fcInfo[i][e_z], fcInfo[i][e_a], fcInfo[i][e_color1], fcInfo[i][e_color2], fcInfo[i][e_fracID], i);
    printf("query: %s", query);
    mysql_function_query(dbhandle, query, false, "", "");
    return 1;
    }
    }
    return 0;


    }

  • Kann es sein das du in dem Innenraum spawnst?
    Wenn ja dann liegt das an dem Innenraum, ist ein bekannter SA-MP Bug, lässt sich aber umgehen indem man den Spieler in eine andere Virtuelle Welt setzen lässt wenn er im Innenraum spawnt.

    05eb03de-9fda-461c-9dfc-834ae5b64e65.png << Server | Home >> 13462590508.png

  • Wow es Klappt :huh: :huh:


    Danke Manuel ^^


    Jetzt habe ich noch eine frage mein flock befehl klappt nicht richtig warum ?
    ocmd:flock(playerid,params[])
    {
    new string[128];
    new vehicleid;
    if(vehicleid==INVALID_VEHICLE_ID)return 1;
    for(new i=0; i<MAX_FRAC_VEHICLES; i++)
    {
    if(!IsPlayerInAnyVehicle(playerid))
    {
    vehicleid=GetNearestVehicle(playerid,fcInfo[i][e_vID],true);
    }
    else
    {
    vehicleid=GetPlayerVehicleID(playerid);
    }
    if(fcInfo[i][e_vID] == vehicleid)
    {
    if(sInfo[playerid][fraktion] != fcInfo[i][e_fracID])
    {
    if(!isFVehicleLocked(vehicleid))
    {
    flockVehicle(vehicleid);
    SetVehicleParamsForPlayer(fcInfo[i][e_vID],playerid,0,1);
    format(string,sizeof(string),"~w~%s ~r~abgeschlossen","Roller");
    GameTextForPlayer(playerid,string,2000,4);
    PlayerPlaySound(playerid,1027,0.0,0.0,0.0);
    return 1;
    }
    else
    {
    funlockVehicle(vehicleid);
    SetVehicleParamsForPlayer(fcInfo[i][e_vID],playerid,0,0);
    format(string,sizeof(string),"~w~%s ~g~aufgeschlossen","Roller");
    GameTextForPlayer(playerid,string,2000,4);
    PlayerPlaySound(playerid,1027,0.0,0.0,0.0);
    return 1;
    }
    }
    }
    }
    return 1;
    }

  • Versuche es so:
    ocmd:flock(playerid,params[])
    {
    new string[128];
    new vehicleid;
    if(!IsPlayerInAnyVehicle(playerid))
    {
    vehicleid=GetNearestVehicle(playerid,fcInfo[i][e_vID],true);
    }
    else
    {
    vehicleid=GetPlayerVehicleID(playerid);
    }
    if(vehicleid==INVALID_VEHICLE_ID)return 1;
    for(new i=0; i<MAX_FRAC_VEHICLES; i++)
    {
    if(fcInfo[i][e_vID] == vehicleid)
    {
    if(sInfo[playerid][fraktion] == fcInfo[i][e_fracID])
    {
    if(!isFVehicleLocked(vehicleid))
    {
    flockVehicle(vehicleid);
    SetVehicleParamsForPlayer(fcInfo[i][e_vID],playerid,0,1);
    format(string,sizeof(string),"~w~%s ~r~abgeschlossen","Roller");
    GameTextForPlayer(playerid,string,2000,4);
    PlayerPlaySound(playerid,1027,0.0,0.0,0.0);
    }
    else
    {
    funlockVehicle(vehicleid);
    SetVehicleParamsForPlayer(fcInfo[i][e_vID],playerid,0,0);
    format(string,sizeof(string),"~w~%s ~g~aufgeschlossen","Roller");
    GameTextForPlayer(playerid,string,2000,4);
    PlayerPlaySound(playerid,1027,0.0,0.0,0.0);
    }
    return 1;
    }

    }

    }
    return 1;
    }


  • stock GetNearestVehicle(playerid, Float:Distance = 1000.0, bool:Mode)
    {
    if(!Distance) Distance = 10.0;
    new Float:X[2], Float:Y[2], Float:Z[2], Float:NearestPos = floatabs(Distance), NearestVehicle = INVALID_VEHICLE_ID;
    GetPlayerPos(playerid, X[1], Y[1], Z[1]);
    for(new i; i<MAX_AUTOS; i++)
    {
    if(!IsVehicleStreamedIn(i, playerid))continue;
    if(IsPlayerInVehicle(playerid, i)) continue;
    if(NearestPos > GetVehicleDistanceFromPoint(i,X[1], Y[1], Z[1])) NearestPos = GetVehicleDistanceFromPoint(i,X[1], Y[1], Z[1]), NearestVehicle = i;
    }
    return NearestVehicle;
    }

  • Okay passt :)
    Jetzt schon wieder ein befehl :/ Sorry wenn ich das jetzt hier alles in einem Thread mache aber will das jetzt gefixxt bekommen


    Habe noch nen changefcolor gemacht der aber auch nicht wirklich Klappen will :/



    ocmd:changefcolor(playerid,params[])
    {
    if(!isAdmin(playerid,4))return SendClientMessage(playerid,COLOR_RED,"Dein Adminrang ist zu niedrig.");
    new vehicleid,color1 = -1, color2 = -1;
    if(sscanf(params, "ddd",vehicleid,color1,color2)) return SendClientMessage(playerid,COLOR_GREY, "INFO: {FF9600}/changefcolor {B3B3B3}[VehicleID] [color1] [color2]");
    if(color1 < 0 || color1 > 255 || color2 < 0 || color2 > 255) return SendClientMessage(playerid,COLOR_RED, "Die Color-IDs müssen zwischen 0 und 255 sein!");
    for(new i=0; i<MAX_FRAC_VEHICLES; i++)
    {
    if(fcInfo[i][e_vID] == vehicleid)
    {
    fcInfo[i][e_color1] = color1;
    fcInfo[i][e_color1] = color2;
    ChangeVehicleColor(vehicleid, color1, color2);
    SaveFracVehCheck(vehicleid);
    break;
    }
    }
    return 1;
    }

  • Ich habe beides versucht im chat kommt nix und in der DB wird auch nichts geändert.


    //Edit nvm Klappt doch aber was ich nicht verstehe das die Tabelle schon wieder die FracID mit der color 2 vertauscht ....
    Ich sehe auch keinen Fehler in der save funktion


    public SaveAllFracVehs()
    {
    new query[256];
    for(new i=0; i<MAX_FRAC_VEHICLES; i++)
    {
    if(fcInfo[e_modelID] >= 400 && fcInfo[e_modelID] <= 611)
    {
    GetVehiclePos(fcInfo[e_vID], fcInfo[e_x], fcInfo[e_y], fcInfo[e_z]);
    GetVehicleZAngle(fcInfo[e_vID], fcInfo[e_a]);
    format(query, sizeof(query), "UPDATE frakautos SET ModelID = '%d', PosX = '%f', PosY = '%f', PosZ = '%f', PosA = '%f', Color1 = '%d', Color2 = '%d', FracID = '%d' WHERE ID = '%d'",
    fcInfo[e_modelID], fcInfo[e_x], fcInfo[e_y], fcInfo[e_z], fcInfo[e_a], fcInfo[e_color1], fcInfo[e_color2], fcInfo[e_fracID], i);
    printf("query: %s", query);
    mysql_function_query(dbhandle, query, false, "", "");
    }
    }
    return 1;
    }


    stock SaveFracVehCheck(vehicleid)
    {
    new query[256];
    for(new i=0; i<MAX_FRAC_VEHICLES; i++)
    {
    if(fcInfo[e_vID] == vehicleid)
    {
    GetVehiclePos(fcInfo[e_vID], fcInfo[e_x], fcInfo[e_y], fcInfo[e_z]);
    GetVehicleZAngle(fcInfo[e_vID], fcInfo[e_a]);
    format(query, sizeof(query), "UPDATE frakautos SET ModelID = '%d', PosX = '%f', PosY = '%f', PosZ = '%f', PosA = '%f', Color1 = '%d', Color2 = '%d', FracID = '%d' WHERE ID = '%d'",
    fcInfo[e_modelID], fcInfo[e_x], fcInfo[e_y], fcInfo[e_z], fcInfo[e_a], fcInfo[e_color1], fcInfo[e_color2], fcInfo[e_fracID], i);
    printf("query: %s", query);
    mysql_function_query(dbhandle, query, false, "", "");
    return 1;
    }
    }
    return 0;
    }


    Und das hat mir die Server_Log gegeben.

    SQL
    [18:23:04] query: UPDATE frakautos SET ModelID = '567', PosX = '2485.520996', PosY = '-1680.021118', PosZ = '13.241792', PosA = '245.214797', Color1 = '86', Color2 = '7', FracID = '86' WHERE ID = '2'


    Normalerweise müsste hier auch noch eine 86 stehen, steht aber nicht 8| ich glaube dieses system verarscht mich :c


    [18:41:21] LoadFracVehicles_Data aufgerufen.
    [18:41:21] 1 Fahrzeuge gefunden.
    [18:41:21] id: 1
    [18:41:21] 567 2489.040039 -1678.020019 13.195199 275.597991 86 (86) 7
    [18:41:21] Erstellt: 40

    3 Mal editiert, zuletzt von JOK3R ()

  • Hmm in meinem Script ist das aber schon alles mit bei dem fcInfo O.o anscheint hat das forum gebuggt :x weil warum sollte ich das hier löschen ^^


    Trotzdem steht in der Server_Log nur Color1 und FracID wieder keine Color2 :/


    //Edit
    Okay Größter Facepalm der geschichte... kalppt alles
    Ich bin nur zu blöd um den command einzugen :x
    Ich habe /createfcar 567 (hier dann eigentlich FracID aber habe die Color hingeschrieben, 86) 86 und dann hier die Fraction 7 ...

    2 Mal editiert, zuletzt von JOK3R ()