GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => A témát indította: DrAkE - 2013. Január 01. - 20:02:37

Cím: daused - Szüneteltetés észlelése
Írta: DrAkE - 2013. Január 01. - 20:02:37
Ü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:
 

Ezen felül rendelkezik egy darab függvénnyel is:
 

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>
Cím: daused - Szüneteltetés észlelése
Írta: Rupert - 2013. Január 01. - 20:18:55
Nagyon szép munka, nekem nagyon tetszik!
Cím: daused - Szüneteltetés észlelése
Írta: totar - 2013. Január 01. - 21:23:44
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
Cím: daused - Szüneteltetés észlelése
Írta: tonyo - 2013. Január 01. - 22:02:51
Ugyan nem teszteltem, de a .inc-ben én sem találom a 2 callback forward-ját.
Cím: daused - Szüneteltetés észlelése
Írta: DrAkE - 2013. Január 01. - 22:14:33
Frissítve, most már jónak kell lennie.
Cím: daused - Szüneteltetés észlelése
Írta: Csabesz - 2013. Január 01. - 23:44:08
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.
Cím: daused - Szüneteltetés észlelése
Írta: DrAkE - 2013. Január 02. - 00:12:59
Még csak meg se terheli a szervert.
Cím: daused - Szüneteltetés észlelése
Írta: tonyo - 2013. Január 02. - 00:30:44
Ez nem sok mûvelet, túlságosan félsz kihasználni a szervert :D
Cím: daused - Szüneteltetés észlelése
Írta: totar - 2013. Január 02. - 09:12:30
Drake, még mindig nem jelennek meg a playertext-ek, és még 1-2 alkalommal spawnkor kiírja a szünetelést...
Cím: daused - Szüneteltetés észlelése
Írta: DrAkE - 2013. Január 02. - 11:53:01
Milyen PlayerTextek?
Cím: daused - Szüneteltetés észlelése
Írta: ZyZu. - 2013. Január 02. - 11:59:23
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:
Cím: daused - Szüneteltetés észlelése
Írta: tonyo - 2013. Január 02. - 12:01:47
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.
Cím: daused - Szüneteltetés észlelése
Írta: totar - 2013. Január 02. - 12:33:32
Pontosan Antony!
Player Textdraw
Zyzu inkább maradj ki a  :facepalm: jeleiddel okoska...
Cím: daused - Szüneteltetés észlelése
Írta: DrAkE - 2013. Január 02. - 13:47:42
Tényleg kimaradt (trehány vagyok). Ha még valahol észreveszitek, hogy kimaradt, szóljatok.
Cím: daused - Szüneteltetés észlelése
Írta: totar - 2013. Január 02. - 13:59:03
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.
Cím: daused - Szüneteltetés észlelése
Írta: DrAkE - 2013. Január 02. - 14:14:16
Azt kizárt dolognak tartom, mivel létre vannak hozva a prototípusok. (forward)
Cím: daused - Szüneteltetés észlelése
Írta: totar - 2013. Január 02. - 14:19:42
A gané pastebin-nek az alsó részérõl jelöltem ki és nem volt a a frisseb változat sry.
Már látom hogy van forward.
A forwardolás kavart be neki... (már látszanak a TD-k)
A spawnkor még mindig írja az állapotot.

Dupla hozzászólás automatikusan összefûzve. ( 2013. Január 02. - 18:24:38 )

Meg még akkor is kiírja az állapotot, ha ugratsz egy motorral például...
Cím: daused - Szüneteltetés észlelése
Írta: totar - 2013. Január 11. - 19:57:37
Csá!
Itt van a dpaus bug videó felvételem.
http://www.youtube.com/watch?v=OvKYBKS9bEc
http://www.youtube.com/watch?v=Nt5EZmE38YI
+ az F8 hotkey is kiváltja az állapot kiírását(gondolom a pillanatnyi megfagyástól, miközben készül a fotó)
Pls relase