Unzerstörbare Adminfahrzeuge

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 Liebe Brotfische!



    Ich habe eine Frage an euch.


    Ich habe mir ein Admincarsystem angelegt welches noch nicht Vollkommen fertig ist da mir noch einiges fehlt ( Wobei Ihr mir sicher helfen könnt)


    1. Ich möchte, dass wenn ein Admin sich ein Admincar aus der Liste der Vorgegebenen Fahrzeuge erstellt, in seiner Spielerdatei etwas eingetragen wird, womit man Abfragen kann ob er schon ein Auto erstellt hat oder nicht.
    Sollte er bereits eins erstellt haben so müsste er es mit /delveh löschen.


    2. Die Fahrzeuge die die Admins erstellen sollen Unzerstörbar sein. Mir wurde schon einmal geraten diese Fahrzeuge mit einem Timer der jede Sekunde das Fahrzeug repariert.


    Problem hierbei ----> Ich kenne mich mit Timer leider nicht aus.


    Kann mir hier jemand helfen?


    Hier die Schnipsel meines Admincarsystems bis jetzt :

    if (strcmp("/aveh", cmdtext, true, 10) == 0)
    {
    if(isPlayerAnAdmin(playerid,1337))
    {
    if(!IsPlayerInAnyVehicle(playerid))
    {
    ShowPlayerDialog(playerid, DIALOG_ADMINCAR, DIALOG_STYLE_LIST, "Wähle ein Fahrzeug", "Turismo \n Sultan \n Comet \n Maverick","Auswählen","Abbruch");
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du bist bereits in einem Fahrzeug! Steige vorher aus!");
    }
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du bist kein Admin!");
    }
    return true;
    }
    /*-----------------------------------------------------------*/


    if(dialogid==DIALOG_ADMINCAR)
    {
    if(isPlayerAnAdmin(playerid,1337))
    {




    switch (listitem) {
    case 0: {
    new Float:x;
    new Float:y;
    new Float:z;
    new Float:angle;
    new veh;
    GetPlayerFacingAngle(playerid,angle);
    GetPlayerPos(playerid,x,y,z);
    veh=CreateVehicle(451,x,y,z,angle,0,0,-1);
    SetVehicleNumberPlate(veh,"AdminCar");
    vehicle_info[veh] = 1;
    PutPlayerInVehicle(playerid,veh,0);}
    case 1: {
    new Float:x;
    new Float:y;
    new Float:z;
    new Float:angle;
    new veh;
    GetPlayerFacingAngle(playerid,angle);
    GetPlayerPos(playerid,x,y,z);
    veh=CreateVehicle(560,x,y,z,angle,0,0,-1);
    SetVehicleNumberPlate(veh,"AdminCar");
    vehicle_info[veh] = 1;
    PutPlayerInVehicle(playerid,veh,0);}
    case 2: {
    new Float:x;
    new Float:y;
    new Float:z;
    new Float:angle;
    new veh;
    GetPlayerFacingAngle(playerid,angle);
    GetPlayerPos(playerid,x,y,z);
    veh=CreateVehicle(480,x,y,z,angle,0,0,-1);
    SetVehicleNumberPlate(veh,"AdminCar");
    PutPlayerInVehicle(playerid,veh,0);}
    case 3: {
    new Float:x;
    new Float:y;
    new Float:z;
    new Float:angle;
    new veh;
    GetPlayerFacingAngle(playerid,angle);
    GetPlayerPos(playerid,x,y,z);
    veh=CreateVehicle(487,x,y,z,angle,0,0,-1);
    PutPlayerInVehicle(playerid,veh,0);}}






    }



  • ganz einfach...



    switch (listitem)
    {
    case 0:
    {
    new Float:x;
    new Float:y;
    new Float:z;
    new Float:angle;
    new veh;
    GetPlayerFacingAngle(playerid,angle);
    GetPlayerPos(playerid,x,y,z);
    veh=CreateVehicle(451,x,y,z,angle,0,0,-1);
    SetVehicleNumberPlate(veh,"AdminCar");
    vehicle_info[veh] = 1;
    PutPlayerInVehicle(playerid,veh,0);
    SetPVarInt(playerid,"Fahrzeug",1); // eingefügt
    }


    und beim command fragste du ab, ob es die PVar auf 1 ist..

    if(GetPVarInt(playerid,"Fahrzeug")==1)
    {
    SendClientMessage(playerid,farbe,"Es gibt bereits ein Auto! benutze /delveh");
    }

    der befehl delveh

    if(strcmp(cmdtext, "/delveh", true) == 0)
    {
    new veh;
    veh = GetPlayerVehicleID(playerid);
    DestroyVehicle(veh);
    return 1;
    }


    beim timer machste ganz einfach

    forward cargod(playerid);

    SetTimer("cargod", 1000, true); // (1 Sekunde)

    public cargod(playerid)
    {
    RepairVehicle(GetPlayerVehicleID(playerid));
    }

  • Okai danke zu den Abfragen wegen dem Admincar ob er eins hat.



    Zum Timer:


    Kannst du mir sagen wie Ich das definieren soll wenn nur die AdminCars die erstellt wurden repariert werden sollen?
    Denn so wird ja jedes einzelne Auto repariert oder?

  • Gut,


    Dann müsst Ihr mir nur erklären wo Ich das einfügen soll.
    Bei dem
    case 0: {
    new Float:x;
    new Float:y;
    new Float:z;
    new Float:angle;
    // new veh;
    GetPlayerFacingAngle(playerid,angle);
    GetPlayerPos(playerid,x,y,z);
    AdminCar=CreateVehicle(451,x,y,z,angle,0,0,-1);
    SetVehicleNumberPlate(AdminCar,"AdminCar");
    vehicle_info[AdminCar] = 1;
    PutPlayerInVehicle(playerid,AdminCar,0);
    SetPVarInt(playerid,"AdminFahrzeug",1);}


    Einfügen den Set Timer?


  • switch (listitem)
    {
    case 0:
    {
    new Float:x;
    new Float:y;
    new Float:z;
    new Float:angle;
    new veh;
    GetPlayerFacingAngle(playerid,angle);
    GetPlayerPos(playerid,x,y,z);
    veh=CreateVehicle(451,x,y,z,angle,0,0,-1);
    SetVehicleNumberPlate(veh,"AdminCar");
    vehicle_info[veh] = 1;
    PutPlayerInVehicle(playerid,veh,0);
    SetPVarInt(playerid,"Fahrzeug",1); // eingefügt
    SetTimer("cargod", 1000, true); // (1 Sekunde)
    }

  • Danke somit hat sich meine Frage bestätigt.



    Ich habe jetzt übrigens eine neue Variable alternativ zu new veh; angelegt.


    Ganz oben im Scriptkopf habe ich new AdminCar; eingefügt und das dann in den Case eigetragen wo die Fahrzeuge erstellt werden.



    Edit :


    Die Fahrzeuge werden Leider alle repariert....

    Einmal editiert, zuletzt von reLaXXo ()