Beiträge von Jeffry

    Wie erstellst du denn die normalen und die Fraktions-Fahrzeuge?
    Und löschst du erst das eine, erstellst dann das andere und versuchst es dann zu löschen? In welcher Reihenfolge führst du die Befehle aus?

    Nutze den direkten download link bei solidfiles (steht ganz klein drunter). Für SAMP, das kannst du dir merken, wirst du nie eine exe brauchen, zumindest nicht für sowas.


    Da steht ganz klein, direct download link. Das musst du nehmen.

    ocmd:lock(playerid,params[])
    {
    for(new i=0;i<MAX_PRIVATE_VEHICLES;i++)
    {
    new Float:pos[3], new vID;
    vID = PrivateVehicle[i][p_vID];
    GetVehiclePos(vID,pos[0],pos[1],pos[2]);
    if(IsPlayerInRangeOfPoint(playerid,5,pos[0],pos[1],pos[2]))
    {
    if(!strlen(PrivateVehicle[i][p_owner]))continue;
    if(!strcmp(PrivateVehicle[i][p_owner], getPlayerName(playerid)))
    {
    printf("Owner = %s",PrivateVehicle[i][p_owner]);
    printf("Player = %s",getPlayerName(playerid));
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(vID,engine,lights,alarm,doors,bonnet,boot,objective);
    if(doors == 1)
    {
    SetVehicleParamsEx(vID,engine,lights,alarm,0,bonnet,boot,objective);
    SendClientMessage(playerid,Gelb,"[SInfo] {FFFFFF}You have unlocked your Vehicle.");
    return 1;
    }
    else
    {
    SetVehicleParamsEx(vID,engine,lights,alarm,1,bonnet,boot,objective);
    SendClientMessage(playerid,Gelb,"[SInfo] {FFFFFF}You have locked your Vehicle.");
    return 1;
    }
    }
    return SendClientMessage(playerid,Rot,"Error: {FFFFFF}You are not near by your Vehicle.");
    }
    }
    return SendClientMessage(playerid,Rot,"Error: {FFFFFF}You are not near by your Vehicle.");
    }




    EDIT: (Post unten)
    CaZe: Da dein Problem behoben ist, wäre es super, wenn du den Thread als erledigt markierst. Danke! :)

    Weiß jemand wieso das so ist?


    1.) Dieser Teil vom Code wird nie erreicht, weil du irgendwo ein oder mehrere returns davor hast, die es unter jeder Bedingung unmöglich machen, dass diese Zeile erreicht wird. Prüfe das, oder poste gegebenenfalls den Code.


    2.) Diese Variable wird nie verwendet. Suche nach ihr und lösche sie.


    3.) Diese vielen Zahlen kommen dadurch, dass du zu viele Variablen verwendest, sprich zu viel Speicher reservierst. Du kannst versuchen es mit einem pragma zu entfernen.
    #pragma dynamic 1000000
    Falls die Meldung nicht weg geht, erhöhe die Zahl.

    Dass er zwei mal bei Debug 1 ist liegt an der Schleife, das passt schon.
    Nur der Debug 5 passt nicht.


    Wie sieht denn der Code jetzt aus?


    Edit:
    Das Laden muss übrigens so aussehen
    cache_get_field_content(i,"Owner",PrivateVehicle[i][p_owner],Handle,MAX_PLAYER_NAME);

    Außerdem musst du p_owner im enum zu p_owner[MAX_PLAYER_NAME] ändern.


    Und
    if(PrivateVehicle[i][p_owner] == playerid)
    zu
    if(!strcmp(PrivateVehicle[i][p_owner], SpielerName(playerid)))
    ändern.



    PS: Darf ich dich fragen, wo du diesen Code her hast? Genau dieses Problem habe ich jetzt schon mindestens drei mal in kurzer Zeit gesehen. Ist das ein Gamemode oder aus einem Tutorial?

    Lädst du vielleicht extrem viel Zeug an der Spawn Stelle, möglicherweise ganz viele Fahrzeuge, da kann das vorkommen.


    Oder setzt du die Velocity extrem hoch?


    Entferne ggf immer wieder Teile deines Codes und prüfe ob es dann geht (immer mehr Code auskommentieren, bis es geht), so findet sich solch ein Fehler meistens recht gut.

    Ach, stimmt, ich denke da nie dran weil ich es bei mir automatisch umgangen habe.


    Füge noch das hinzu, zu OnPlayerStateChange:
    if(newstate == PLAYER_STATE_DRIVER) SetPVarInt(playerid, "vID", GetPlayerVehicleID(playerid));
    else SetPVarInt(playerid, "vID", 0);
    Und ändere das GetPlayerVehicleID in dem Code von dir bei oldstate == PLAYER_STATE_DRIVER zu:
    new vID = GetPVarInt(playerid, "vID");


    Bei OnPlayerStateChange funktioniert nämlich GetPlayerVehicleID nach dem change nicht mehr.




    EDIT: (Post unten)
    ahoi123: Gerne! Bei Fragen einfach fragen. ;)