Beiträge von Romnus

    Vielen dank, funktioniert jetzt. Ja das mit dem Spieler speichern ist unnötig, habs jetzt bei OnPlayerDisconnect.

    new Reward[MAX_PLAYERS];


    Reward[playerid] = SetTimerEx("PlayReward", 900000, true, "i", playerid);


    forward public PlayReward(playerid);public PlayReward(playerid){ for(new i=0; i<MAX_PLAYERS; i++) { if(PlayerInfo[i][LoggedIn] == false) continue; if(isPlayerAFK(i)) return 1; PlayerInfo[i][Tokens] += 5; SFM(playerid,COLOR_COP,"Reward: {FFFFFF}Du bekommst 5 Tokens!"); SavePlayer(i); } return 1;}


    public OnPlayerDisconnect(playerid, reason){ KillTimer(Reward[playerid]);


    Das Problem dabei ist dass das System manchmal 5x 5 Tokens gibt. (manchmal auch 2 oder 6, ist immer unterschiedlich.) Hat jemand eine Lösung dafür?

    Hallo, ich will ein System erstellen, welches einen Spiel verhindern das ein Spieler bunnyhoppt (also rennt und dabei gleichzeitig springt).
    Das (filter)script sieht momentan so aus:



    #include <a_samp>



    forward KillTimerSprung(playerid);
    forward FunktionInSprung(playerid);



    #define PRESSED(%0) (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))



    new InSprung[MAX_PLAYERS] = 0;
    new TimerIDSprung;



    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    new Float:vx,Float:vy,Float:vz;
    GetPlayerVelocity(playerid,vx,vy,vz);
    if (PRESSED(KEY_JUMP) && (vy > 0.01 || vy <-0.01 || vx > 0.01 || vx <-0.01) && IsPlayerInAnyVehicle(playerid) == 0 && InSprung[playerid] == 0)
    {
    if(vz > 0.01 || vz < -0.01) return 1;
    InSprung[playerid] = 1;
    TimerIDSprung = SetTimerEx("FunktionInSprung",1,true,"i",playerid);
    }
    return 1;
    }



    public KillTimerSprung(playerid)
    {
    InSprung[playerid] = 0;
    return 1;
    }



    public FunktionInSprung(playerid)
    {
    new animlib[32];
    new animname[32];
    new Float:vx,Float:vy,Float:vz;
    GetPlayerVelocity(playerid,vx,vy,vz);
    if(vz < -0.5)
    {
    KillTimer(TimerIDSprung);
    SetTimerEx("KillTimerSprung",1000,false,"i",playerid);
    return 1;
    }
    GetAnimationName(GetPlayerAnimationIndex(playerid),animlib,32,animname,32);
    if(!strcmp(animname,"JUMP_LAND") || !strcmp(animname,"FALL_LAND"))
    {
    KillTimer(TimerIDSprung);
    ClearAnimations(playerid,1);
    ApplyAnimation(playerid,"ped","FALL_land",4.1,0,1,1,0,0,1);
    SetTimerEx("KillTimerSprung",1000,false,"i",playerid);
    }
    return 1;
    }


    Nun hab ich das problem, dass das system auch den spieler in eine animation versetzt, wenn er springt und normal läuft (ohne zu sprinten) und man nach einmaligem springen (mit sprinten) in der animation ist (besser wären 3x hintereinander) hoffe jemand kann mir helfen