Szerző Téma: daused - Szüneteltetés észlelése  (Megtekintve 2586 alkalommal)

Nem elérhető DrAkE

  • 2078
    • Profil megtekintése
daused - Szüneteltetés észlelése
« Dátum: 2013. Január 01. - 20:02:37 »
0
Üdvözlök mindenkit.
Még régebben írtam egy olyan függvénykönyvtárat, ami érzékeli, hogy ha a játékos ESC-et nyom, esetleg lerakja tálcára.
Most jön az a kérdés, mivel is jobb ez, mint akármelyik más ugyan ilyen script. Nos a válasz egyszerû. Míg a többi scriptnél, ha egy helyben állsz esetleg mozogsz elõfordul az, hogy akkor is úgy érzékeli, hogy szünetelteted a játékot, ez addig tökéletesen észleli, hogy ha ESC-et nyomsz, lerakod a tálcára, esetleg alkalmazást váltasz.
Kettõ darab eljárása (callback-je) van:
 
  • OnPlayerPause(playerid)

  • OnPlayerUnPause(playerid)


Ezen felül rendelkezik egy darab függvénnyel is:
 
  • IsPlayerPaused(playerid)

De nézzünk is rá egy példát:
 

#include <a_samp>
#define FILTERSCRIPT //FIGYELEM! FONTOS MEGJEGYEZNI, HOGY HA FILTERSCRIPTBEN ALKALMAZOD EZ DEFINIÁLVA LEGYEN!
#include <daused>
public OnFilterScriptInit()
{
print(\"A FilterScript betöltve!\");
return true;
}
public OnFilterScriptExit()
{
print(\"A FilterScript ki lett véve!\");
return true;
}
public OnPlayerPause(playerid)
{
SendClientMessage(playerid, -1, \"Éppen szünetelteted a játékot!\");
return true;
}
public OnPlayerUnPause(playerid)
{
SendClientMessage(playerid, -1, \"Már nem szünetelteti a játékot!\");
return true;
}

 
Letöltés:
PasteBin
FIGYELEM! Ha filterscriptben használod, akkor a következõképp használd:
 

#define FILTERSCRIPT
#include <daused>
« Utoljára szerkesztve: 2013. Január 01. - 20:12:31 írta DrAkE »

Nem elérhető Rupert

  • 2301
    • Profil megtekintése
daused - Szüneteltetés észlelése
« Válasz #1 Dátum: 2013. Január 01. - 20:18:55 »
0
Nagyon szép munka, nekem nagyon tetszik!

Nem elérhető totar

  • 425
    • Profil megtekintése
daused - Szüneteltetés észlelése
« Válasz #2 Dátum: 2013. Január 01. - 21:23:44 »
0
Nekem tetszik, de ha le spawnolok akkor írja, hogy
 

Éppen szünetelteted a játékot!
Már nem szünetelteti a játékot!
 
[/quote]
+ eltünnek a playertext-jeim.
Legalábbis nálam.
Amúgy még nálam forwardolni is kellett a publicokat
« Utoljára szerkesztve: 2013. Január 01. - 21:25:51 írta totar »

Nem elérhető tonyo

  • 1335
  • Moderális Generátor
    • Profil megtekintése
daused - Szüneteltetés észlelése
« Válasz #3 Dátum: 2013. Január 01. - 22:02:51 »
0
Ugyan nem teszteltem, de a .inc-ben én sem találom a 2 callback forward-ját.

Nem elérhető DrAkE

  • 2078
    • Profil megtekintése
daused - Szüneteltetés észlelése
« Válasz #4 Dátum: 2013. Január 01. - 22:14:33 »
0
Frissítve, most már jónak kell lennie.

Nem elérhető Csabesz

  • 7827
    • Profil megtekintése
daused - Szüneteltetés észlelése
« Válasz #5 Dátum: 2013. Január 01. - 23:44:08 »
0
Hát, 0.5 mp-ként én nem hívnám meg ezt:
 

forward CheckIfPaused(playerid);
public CheckIfPaused(playerid)
{
new
Float:CameraPos[3];
GetPlayerCameraPos(playerid, CameraPos[0], CameraPos[1], CameraPos[2]);
if(d_AfkTeszt[playerid] && d_Afkzik[playerid] && !InvalidStates(playerid))
{
d_Afkzik[playerid] = false;
if(daused_g_HasOPUP)
{
   CallLocalFunction(\"OnPlayerUnPause\", \"i\", playerid);
}
}
else if(!d_AfkTeszt[playerid] && !d_Afkzik[playerid] && (d_CameraPosok[playerid][0] == CameraPos[0]) && (d_CameraPosok[playerid][1] == CameraPos[1]) && (d_CameraPosok[playerid][2] == CameraPos[2]) && !InvalidStates(playerid))
{
d_Afkzik[playerid] = true;
if(daused_g_HasOPP)
{
   CallLocalFunction(\"OnPlayerPause\", \"i\", playerid);
}
}
GetPlayerCameraPos(playerid, d_CameraPosok[playerid][0], d_CameraPosok[playerid][1], d_CameraPosok[playerid][2]);
d_AfkTeszt[playerid] = 0;
return true;
}

 
Sok játékosnál, ez sok mûvelet, sok mûvelet = lagg.

Nem elérhető DrAkE

  • 2078
    • Profil megtekintése
daused - Szüneteltetés észlelése
« Válasz #6 Dátum: 2013. Január 02. - 00:12:59 »
0
Még csak meg se terheli a szervert.

Nem elérhető tonyo

  • 1335
  • Moderális Generátor
    • Profil megtekintése
daused - Szüneteltetés észlelése
« Válasz #7 Dátum: 2013. Január 02. - 00:30:44 »
0
Ez nem sok mûvelet, túlságosan félsz kihasználni a szervert :D

Nem elérhető totar

  • 425
    • Profil megtekintése
daused - Szüneteltetés észlelése
« Válasz #8 Dátum: 2013. Január 02. - 09:12:30 »
0
Drake, még mindig nem jelennek meg a playertext-ek, és még 1-2 alkalommal spawnkor kiírja a szünetelést...

Nem elérhető DrAkE

  • 2078
    • Profil megtekintése
daused - Szüneteltetés észlelése
« Válasz #9 Dátum: 2013. Január 02. - 11:53:01 »
0
Milyen PlayerTextek?

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
daused - Szüneteltetés észlelése
« Válasz #10 Dátum: 2013. Január 02. - 11:59:23 »
0
Idézetet írta: totar date=1357114350\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"31789\" data-ipsquote-contentclass=\"forums_Topic
Drake, még mindig nem jelennek meg a playertext-ek, és még 1-2 alkalommal spawnkor kiírja a szünetelést...
 
Ez nem 3D -s textbõl lett készítve..  :facepalm: Ez csak simán egy függvény ami észleli az ESC gomb lenyomását, nagyon jó lett felhasználom csak lenne egy apró kérdésem ha a szerveren lenne lagg akkor nem rakja be ESC módba?  :hmmm:

Nem elérhető tonyo

  • 1335
  • Moderális Generátor
    • Profil megtekintése
daused - Szüneteltetés észlelése
« Válasz #11 Dátum: 2013. Január 02. - 12:01:47 »
0
public OnPlayerUpdate(playerid)
{
        d_AfkTeszt[playerid]++; return true;
}
[/quote]
Kimaradt egy CallRemoteFunction nem?  :) Ez megmagyarázná a gondját, gondolom onplayerupdate alatt van neki a playertext(player textdraw?), és emiatt nem látja.
Valamint OnPlayerDisconnectnél is kimaradt, és OnPlayerConnect-nél is.
« Utoljára szerkesztve: 2013. Január 02. - 12:03:46 írta Anthony »

Nem elérhető totar

  • 425
    • Profil megtekintése
daused - Szüneteltetés észlelése
« Válasz #12 Dátum: 2013. Január 02. - 12:33:32 »
+3
Pontosan Antony!
Player Textdraw
Zyzu inkább maradj ki a  :facepalm: jeleiddel okoska...

Nem elérhető DrAkE

  • 2078
    • Profil megtekintése
daused - Szüneteltetés észlelése
« Válasz #13 Dátum: 2013. Január 02. - 13:47:42 »
0
Tényleg kimaradt (trehány vagyok). Ha még valahol észreveszitek, hogy kimaradt, szóljatok.

Nem elérhető totar

  • 425
    • Profil megtekintése
daused - Szüneteltetés észlelése
« Válasz #14 Dátum: 2013. Január 02. - 13:59:03 »
0
Még 1-2 spawnál kiírja a szöveget, meg még mindig nem jelennek meg a player textdrawok + még mindig forwardolni kell.
« Utoljára szerkesztve: 2013. Január 02. - 14:05:49 írta totar »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal