Szerző Téma: GetPlayerFPS  (Megtekintve 2602 alkalommal)

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
GetPlayerFPS
« Dátum: 2013. Január 05. - 19:15:33 »
0 Show voters
Üdv all.
Találtam hiv. fórumon egy fps lekérõ kódot, de legtöbször 0-át ír.. :/
 
stock GetPlayerFPS(playerid) {
    SetPVarInt(playerid, \"DrunkL\", GetPlayerDrunkLevel(playerid));
    if(GetPVarInt(playerid, \"DrunkL\") < 100) {
        SetPlayerDrunkLevel(playerid, 2000);
    }else{
        if(GetPVarInt(playerid, \"LDrunkL\") != GetPVarInt(playerid, \"DrunkL\")) {
            SetPVarInt(playerid, \"FPS\", (GetPVarInt(playerid, \"LDrunkL\") - GetPVarInt(playerid, \"DrunkL\")));
            SetPVarInt(playerid, \"LDrunkL\", GetPVarInt(playerid, \"DrunkL\"));
            if((GetPVarInt(playerid, \"FPS\") > 0) && (GetPVarInt(playerid, \"FPS\") < 256)) {
                return GetPVarInt(playerid, \"FPS\") - 1;
            }
        }
    }
    return 0;
}

 
Mi a hiba?

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
GetPlayerFPS
« Válasz #1 Dátum: 2013. Január 05. - 20:31:49 »
0 Show voters
Esetleg probáld meg a 256 -ról 200 -ra tenni.. így 0 - 200 méri.
 

stock GetPlayerFPS(playerid) {
    SetPVarInt(playerid, \"DrunkL\", GetPlayerDrunkLevel(playerid));
    if(GetPVarInt(playerid, \"DrunkL\") < 100) {
        SetPlayerDrunkLevel(playerid, 2000);
    }else{
        if(GetPVarInt(playerid, \"LDrunkL\") != GetPVarInt(playerid, \"DrunkL\")) {
            SetPVarInt(playerid, \"FPS\", (GetPVarInt(playerid, \"LDrunkL\") - GetPVarInt(playerid, \"DrunkL\")));
            SetPVarInt(playerid, \"LDrunkL\", GetPVarInt(playerid, \"DrunkL\"));
            if((GetPVarInt(playerid, \"FPS\") >  0) && (GetPVarInt(playerid, \"FPS\") <  200)) {
                return GetPVarInt(playerid, \"FPS\") - 1;
            }
        }
    }
    return 0;
}

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
GetPlayerFPS
« Válasz #2 Dátum: 2013. Január 05. - 20:37:44 »
0 Show voters
Ugyanaz van, hogy 0-át mutat és sokszor áturgik a jó fps-re (nekem 92) és alig látom, mert visszaugrik egybõl.

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
GetPlayerFPS
« Válasz #3 Dátum: 2013. Január 05. - 20:40:04 »
0 Show voters
Akkor probáld megnézni ezt: http://forum.sa-mp.com/showthread.php?p=815112

Meg ezt:

 

#include <a_samp>
new pDrunkLevelLast[MAX_PLAYERS];
new pFPS[MAX_PLAYERS];
public OnFilterScriptInit(){
    SetTimer(\"DisplayFPS\",1000,1);
    return 1;
}
public OnPlayerConnect(playerid) {
    pDrunkLevelLast[playerid]   = 0;
    pFPS[playerid]          = 0;
}
public OnPlayerUpdate(playerid) {
    // handle fps counters.
    new drunknew = GetPlayerDrunkLevel(playerid);
    if (drunknew < 100) { // go back up, keep cycling.
        SetPlayerDrunkLevel(playerid, 2000);
    } else {
        if (pDrunkLevelLast[playerid] != drunknew) {
            new wfps = pDrunkLevelLast[playerid] - drunknew;
            if ((wfps > 0) && (wfps < 200))
                pFPS[playerid] = wfps;
            pDrunkLevelLast[playerid] = drunknew;
        }
    }
}
forward DisplayFPS();
public DisplayFPS(){
    new FPSmsg[20];
    for(new i; i < MAX_PLAYERS; i++)if(IsPlayerConnected(i)){
        format(FPSmsg,20,\"Your FPS is: %d\",pFPS);
        //Show it here on-screen and set PVar
    }
}

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
GetPlayerFPS
« Válasz #4 Dátum: 2013. Január 05. - 21:19:07 »
0 Show voters
Az eggyik ~180-at ír, a másik -1

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
GetPlayerFPS
« Válasz #5 Dátum: 2013. Január 05. - 21:23:50 »
+2 Show voters

new
g_pDrunkLevelLast[MAX_PLAYERS],
g_pFPS[MAX_PLAYERS];
// lekérés: g_pFPS[jatekosid]
public OnPlayerUpdate(playerid)
{
new
drunknew = GetPlayerDrunkLevel(playerid);
if(drunknew < 100)
{
SetPlayerDrunkLevel(playerid, 2000);
}
else
{
if(g_pDrunkLevelLast[playerid] != drunknew)
{
   new
      wfps = g_pDrunkLevelLast[playerid] - drunknew;
   if(0 <= wfps <= 200)
   {
      g_pFPS[playerid] = wfps;
   }
   g_pDrunkLevelLast[playerid] = drunknew;
}
}
return 1;
}

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
GetPlayerFPS
« Válasz #6 Dátum: 2013. Január 05. - 21:32:06 »
0 Show voters
Most az átlag 185
Fraps: 91-92-t mutat, ami igaz.
Itt az egész:
 
function gPlayerFpsPing() {
for(new playerid; playerid < MAX_PLAYERS; playerid++) {
if(!IsPlayerConnected(playerid)) continue;
if(GetPVarInt(playerid, \"fps\") == 1) {
        new drunknew = GetPlayerDrunkLevel(playerid);
        if(drunknew < 100) {
               SetPlayerDrunkLevel(playerid, 2000);
        }else{
               if(g_pDrunkLevelLast[playerid] != drunknew) {
                    new wfps = g_pDrunkLevelLast[playerid] - drunknew;
                    if(0 <= wfps <= 200) {
                      g_pFPS[playerid] = wfps;
                     }
                      g_pDrunkLevelLast[playerid] = drunknew;
                }
        }
   format(string, sizeof(string), \"~b~~h~~h~FPS: ~w~%i~n~~b~~h~~h~Ping: ~w~%i\", g_pFPS[playerid], GetPlayerPing(playerid));
   PlayerTextDrawSetString(playerid, FpsTD, string);
}
}
return 1;
}

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
GetPlayerFPS
« Válasz #7 Dátum: 2013. Január 05. - 22:25:19 »
+1 Show voters
Hát pedig ennek mûködni kell, ugyanez a kód.
Én a módomból másoltam az OnPlayerUpdate részt, azt használom 0.3b óta és mûködik tökéletesen.
http://forum.sa-mp.com/showthread.php?t=172085

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
GetPlayerFPS
« Válasz #8 Dátum: 2013. Január 05. - 22:28:42 »
0 Show voters
Esetleg nem ez a hiba? Probáld meg így.. de jónak kell lennie..  :hmmm:
 
if(0 <= wfps <= 200) 

 
helyett
 
 if ((wfps > 0) && (wfps < 200)) 

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
GetPlayerFPS
« Válasz #9 Dátum: 2013. Január 05. - 22:33:19 »
0 Show voters
Idézetet írta: ZyZu date=1357421322\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"31987\" data-ipsquote-contentclass=\"forums_Topic
Esetleg nem ez a hiba? Probáld meg így.. de jónak kell lennie..  :hmmm:
 
if(0 <= wfps <= 200) 

 
helyett
 
 if ((wfps > 0) && (wfps < 200)) 

 

Ugyan azt jelenti mind a kettõ, csak én leegyszerûsítettem.
Mongyuk azt most veszem észre, hogy az enyém beleszámolja a 0-t és a 200-at is :D
De nekem ez 2 éven keresztül mûködött, itt mással lesz a baj, nem ezzel a feltétellel.

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
GetPlayerFPS
« Válasz #10 Dátum: 2013. Január 06. - 00:33:54 »
0 Show voters
Az volt a baj, hogy timer-el csináltam, de így már jó, hogy OnPlayerUpdate alatt van, köszi nektek. :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal