Beiträge von malE

    Hallo ( @Jeffry ),
    ich habe angefangen mit den Grundlagen der Funktion, nun weiß ich leider nicht weiter.
    Ich habe auch schon versucht per Beispiele welche ich durch Google gefunden habe, mir weiter zu helfen, leider erfolglos.


    Es soll so sein, das man nur zwischen den Skins wählen kann die im davor festgelegten Array sind.
    Wenn man dann ein Skin ausgesucht hat und Ihn auswählt, soll noch abgefragt werden ob die PoliceEXP ( eine EXP Variable ) für den Skin ausreicht, wenn nicht soll er den Skin nicht erhalten.


    Hier meine Codes & TextDraws ( bei den TextDraw ist die TextDrawSize noch verbuggt, ich weiß nicht wie ich es entbugge Bsp Bild)
    Ich bitte um eure Hilfe, ich komme nämlich alleine nicht weiter.




    Wenn du willst das nur der Fahrer gekickt wird, musst du davor abfragen ob playerid als passenger einsteigt.

    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if(!ispassenger)
    {
    new Float:health;
    new name[MAX_PLAYER_NAME], string[50+MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    if(health > 995)
    format(string, sizeof(string), "%s has been banned by the System for Vehicle Health Hack.", name);
    SendClientMessageToAll(RED,string);
    GetVehicleHealth(vehicleid, health);
    SetVehicleHealth(vehicleid, 995);
    Kick(playerid);
    }
    return 1;
    }

    if(IsCopCarEx(GetPlayerVehicleID(playerid)) != 1 || PoliceEquip[playerid][pe_Funkgerat] == false)return SendClientMessage(playerid, COLOR_GREY, " Du bist in keinem Polizeifahrzeug oder du hast kein Funkgerät.");
    Wenn ich ein Funkgerät habe kommt trotzdem die Fehlermeldung.
    Es soll aber nur so sein:
    Kein Funkgerät & in keinem Polizei Auto = Fehler.

    Dein Code funktioniert nur wenn ich das Fahrzeug mit einem Befehl respawne.
    Also es ist nicht von Anfang an verschlossen, sondern nur wenn ich es mit dem Befehl respawne.


    Ergo: Fahrzeug beim erstellen nicht verschlossen - respawne ich stattdessen ein Privatfahrzeug mit einem Befehl wird das Fahrzeug verschlossen gespawnt, dank dein Code.
    Aber es soll ja von Anfang an verschlossen spawnen.

    @Jeffry dein Code funktioniert, nur dann wenn ich das Fahrzeug schon einmal in dem Fall mit meinem Befehl respawne.


    @Bluescreen sowie ich es getestet habe, wird das Fahrzeug auch nicht direkt nach dem erstellen respawnt.
    stock CreateVehicleEx(model, Float:x, Float:y, Float:z, Float:r, color, color2, respawndelay, siren)
    {
    new id = CreateVehicle(model, x, y, z, r, color, color2, respawndelay, siren);
    SetVehicleToRespawn(id);
    return 1;
    }

    Zu diesem public, da lasse ich mir printen ob die Variable wirklich auf true ist, laut dem print schon.
    forward OnPlayerVehiclesLoad(playerid);
    public OnPlayerVehiclesLoad(playerid)
    {
    new num_fields, num_rows;
    cache_get_data(num_rows, num_fields, handle);
    if(!num_rows)return 1;
    for(new i=0; i < num_rows; i++)
    {
    VehicleInfo[i][v_Besitzer] = cache_get_field_content_int(i, "besitzer", handle);
    VehicleInfo[i][v_Model] = cache_get_field_content_int(i, "model", handle);
    VehicleInfo[i][v_Color1] = cache_get_field_content_int(i, "color1", handle);
    VehicleInfo[i][v_Color2] = cache_get_field_content_int(i, "color2", handle);
    VehicleInfo[i][v_X] = cache_get_field_content_float(i, "x", handle);
    VehicleInfo[i][v_Y] = cache_get_field_content_float(i, "y", handle);
    VehicleInfo[i][v_Z] = cache_get_field_content_float(i, "z", handle);
    VehicleInfo[i][v_R] = cache_get_field_content_float(i, "r", handle);
    VehicleInfo[i][v_Schloss] = bool:cache_get_field_content_int(i, "schloss", handle);
    VehicleInfo[i][v_ID] = cache_get_field_content_int(i, "id", handle);
    printf("Schloss: %d", VehicleInfo[i][v_Schloss]);
    if(VehicleInfo[i][v_Model] >= 400 && VehicleInfo[i][v_Model] <= 611) {
    VehicleInfo[i][v_DLID] = CreateVehicle(VehicleInfo[i][v_Model], VehicleInfo[i][v_X], VehicleInfo [i][v_Y], VehicleInfo[i][v_Z], VehicleInfo[i][v_R], VehicleInfo[i][v_Color1], VehicleInfo[i][v_Color2], -1, 0);
    } else{
    printf("[FEHLER] Fahrzeug-Model %d existiert nicht (DB-ID: %d).", VehicleInfo[i][v_Model], i);
    }
    }
    return 1;
    }

    Habe es provisorisch mit einem Befehl gemacht, weil ich in der Wiki gelesen habe das, dass public OnVehicleSpawn nur Aufgerufen wird wenn ein Fahrzeug respawnt wird.
    ocmd:vehrespawn(playerid,params[])
    {
    if(PlayerInfo[playerid][p_Admin] < 3)return 1;
    new id;
    if(sscanf(params, "i", id))return SendClientMessage(playerid, COLOR_GREY, "Benutze: /vehrespawn [Fahrzeug-ID]");
    if(!IsValidVehicle(id))return SendClientMessage(playerid, COLOR_GREY, " | Ungültige Fahrzeug-ID angegeben.");
    SetVehicleToRespawn(id);
    SendClientMessage(playerid, COLOR_ADMCMD, "[AdmCmd] Fahrzeuge wurde respawnt.");
    return 1;
    }
    Wenn ich damit das Fahrzeug respawne werden mir auch die Infos geprintet, aber das Fahrzeug bleibt halt immer noch aufgeschlossen.

    Das komische ist das, dass ganze nicht einmal aufgerufen wird, bzw. es wird nichts geprintet.


    //E:


    Naja wenn ich das Fahrzeug respawne ( SetVehicleToRespawn ) wird das geprintet.
    [20:14:42] Schloss: 1 // Wird beim erstellen des Fahrzeugs geprintet - also Schloss ist true


    OnVehicleSpawn
    [20:14:54] Schloss == false
    [20:14:54] Türen: 0

    Fahrzeug wird offen gespawnt, obwohl die Variable true ist.
    Habe mir auch die Variable printen lassen, die ist zu 100% true.
    public OnVehicleSpawn(vehicleid)
    {
    new engine, lights, alarm, doors, bonnet, boot, objective;
    if(VehicleInfo[vehicleid][v_Schloss] == true) {
    GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
    doors = 1; // Türen werden geschlossen
    }else{
    GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
    doors = 0; // Türen werden geöffnet
    }
    SetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
    return 1;
    }