Beiträge von ToastFighter

    Haus[hausid][PickupID] = CreatePickup((Haus[hausid][Gekauft])?1239:1273,1,Haus[hausid][Pos][0],Haus[hausid][Pos][1],Haus[hausid][Pos][2]);


    was soll denn dieses ?1239:1273 bedeuten? Hab ich ja noch nie gesehen o.0


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {


    if(newkeys & KEY_FIRE) //Fragt ob er schießt
    {
    if(GetPlayerWeapon(playerid) == 24) //Fragt ab ob er eine Deagle hält
    {
    if(GetPlayerAmmo(playerid) == 1) //Fragt ab ob er nur noch 1Schuss hat.
    {
    SetPlayerArmedWeapon(playerid, 0); //Setzt die Faust als aktive Waffe.
    SendClientMessage(playerid, 0x8C8C8CFF, "Du hast keine Munition mehr für die Deagle! Geh dir welche kaufen!");
    return 1;
    }
    }
    }
    }



    Keine Ahnung ob er den schuss trotzdem abgibt. Nicht getestet.

    Du machst einfach einen Variable wie PayDayZeit[MAX_PLAYERS];


    Und setzt in deinem PayDay - Timer dann jeweils die Variable für jeden Spieler um 1 hoch, es sei denn
    die Variable ist = 60, dann setzt du diese wieder auf 0 und gibst dem Spieler seinen PayDay.


    Bei deinem Spieler Speichern Stock speicherst du ebenfalls die PayDayZeit[playerid] Variable in seine Datei.

    Wie ist deine Speicherfunktion?
    Dini ? MySQL?


    Bei Dini speicherst du beim Ausloggen den Skin in die PlayerDatei machst SpawnPlayer(playerid); um den Spieler spawnen zu lassen. Dann lädst du bei OnPlayerSpawn den Skin wieder aus der Datei und gibst ihm diesen mit SetPlayerSkin(playerid, dini_Int(...

    Dann müsstest du es explodieren lassen, wartet bis es respawnt und dann das Auto wieder mit SetVehiclePos und SetVehicleZAngle an die Unfallstelle bringen.


    new Float:UX[MAX_VEHICLES],Float:UY[MAX_VEHICLES],Float:UZ[MAX_VEHICLES],Float:UR[MAX_VEHICLES];



    public OnVehicleSpawn(vehicleid)
    {
    SetVehiclePos(vehicleid, UX[vehicleid], UY[vehicleid], UZ[vehicleid]);
    SetVehicleZAngle(vehicleid, UR[vehicleid]);
    return 1;
    }


    public OnVehicleDeath(vehicleid, killerid)
    {
    GetVehiclePos(vehicleid, UX[vehicleid], UY[vehicleid], UZ[vehicleid]);
    GetVehicleZAngle(vehicleid, UR[vehicleid]);
    return 1;
    }


    Kommt drauf an was du dann mit dem Auto machen möchtest. Soll es kaputt sein oder soll es wieder komplett ganz sein?

    forward CarCheckTimer();



    OnGameModeInit()
    {
    SetTimer("CarCheckTImer", 2000, 1);
    }




    public CarCheckTimer()
    {
    for(new i; i < MAX_VEHICLES; i++)
    {
    new Float:h;
    GetVehicleHealth(i, h);
    if(h < 250)
    {
    SetVehicleHealth(i, 251);
    new engine, lights, alarm, doors, bonnet, boot, objective;
    GetVehicleParamsEx(i, engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(i, 0, lights, alarm, doors, bonnet, boot, objective);
    return 1;
    }
    return 1;
    }
    }



    Nicht getestet, müsste aber funktionieren.


    Funktion:


    Wenn der Zustand vom Auto kleiner als 250 ist (Also wenns brennt) wird der Zustand auf 251 gesetzt und der Motor wird aus gemacht.


    Ist eine Explosion notwendig?

    if(LKPH >= VehicleMaxSpeed)
    {
    TogglePlayerControllable(i,0);
    LUnFreeze = SetTimer("LuX_UnFreezeCar", 250, 1);
    format(lstr,sizeof(lstr),"~g~MP/H: ~w~%d ~g~KM/H: ~r~%d",LMPH,LKPH);
    TextDrawSetString(Lmph, lstr);
    }
    }


    Du musst bei LUnFreeze = SetTimer("LuX_UnFreezeCar", 250, 1);
    die Playerid mitgeben,


    also


    if(LKPH >= VehicleMaxSpeed)
    {
    TogglePlayerControllable(i,0);
    LUnFreeze[playerid] = SetTimerEx("LuX_UnFreezeCar", 250, 1, "i", playerid);
    format(lstr,sizeof(lstr),"~g~MP/H: ~w~%d ~g~KM/H: ~r~%d",LMPH,LKPH);
    TextDrawSetString(Lmph, lstr);
    }
    }


    Dann noch:


    new LUnFreeze;
    zu
    new LUnFreeze[MAX_PLAYERS];


    forward LuX_UnFreezeCar(playerid);
    public LuX_UnFreezeCar(playerid)
    {
    for(new i=0; i<PLAYERS; i++)
    {
    TogglePlayerControllable(playerid,1);
    KillTimer(LUnFreeze[playerid]);
    }
    return 1;
    }

    Das 1. wird es nicht sein.


    Die beiden unteren hängen miteinander zusammen.


    Der 2. startet den Timer "Lux_Unfreezecar"


    Wird der Spieler denn nach dem Freeze wieder unfreezed oder bleibt er gefreezed`?

    Wir sind ja nicht bei Wünsch dir Was.


    Du benötigst dafür Textdraws, eine KM/h berechnung und eine Tank Variable.


    Km/h Berechnung:
    stock GetPlayerSpeedSpeedo(playerid, bool:kmh) // by misco
    {
    new Float:Vx,Float:Vy,Float:Vz,Float:rtn;
    if(IsPlayerInAnyVehicle(playerid)) GetVehicleVelocity(GetPlayerVehicleID(playerid),Vx,Vy,Vz); else GetPlayerVelocity(playerid,Vx,Vy,Vz);
    rtn = floatsqroot(floatabs(floatpower(Vx + Vy + Vz,2)));
    return kmh?floatround(rtn * 100 * 1.61):floatround(rtn * 100);
    }


    TankVariable:
    new Tank[MAX_VEHICLES];


    Und die Textdraws musst du selbst erstellen. Such mal nach einem Textdraweditor im Forum.
    Dann lässt du bei OnPlayerStateChange, wenn der Player Driver ist, die Textdraws anzeigen, startet einen Timer, der die Km/h auf das Textdraw formatiert, und einen Timer der alle XX Sekunden den Tank um 1. Senkt.
    Sollte der Tank auf 0 sein, stoppst du den Motor.