RSSy MYGO.pl Opublikowano Kwiecień 16, 2020 o 18:54 RSSy Udostępnij Opublikowano Kwiecień 16, 2020 o 18:54 Anyone can make these say messages: - If player's fps is lower than 60 "^x04%s^x03 has^x04 %d^x03 FPS and a bad PC!" - If player's fps is lower than 40 "^x04%s^x03 has^x04 %d^x03 FPS (someone buy this guy a new pc)" Please no misunderstanding, it's just for fun. PHP Code: /* * * rFPSometer: * * * CVars: * rfps 1/0 // Enable/Disable rFPSometer. Default: 1/on. * rfpsall 1/0 // Print rFPSometer MSG to all players? Default: 1/on. * rfpsvisual 1/0 // Show/Hide /fps chat message? Default: 1/on. * * Usage: * Type " /fps <nick/#userid> " in say. * Type " /rfps " in say/say_team for about plugin. * * Notes; * To change delay between user /fps command, edit DELAY_COMMAND and recompile. * This is engine FPS. * Original FPS Counting by newbie. * * * By: raggy * Email: [email protected] * HomePage: http://www.rayish.com * IRC: #rayish @ QuakeNet * */ #include <amxmodx> #include <amxmisc> #include <fakemeta> #define PLUGIN_NAME "rFPSometer" #define PLUGIN_VERSION "1.1.1" #define PLUGIN_AUTHOR "raggy" #pragma semicolon 1 #define DELAY_COUNT 1.0 //Delay between frame counts, adjust this according to server ticrate. MUST BE FLOAT #define DELAY_COMMAND 5.0 //Delay between user /fps command. MUST BE FLOAT #define COLOR 0x03 //0x01 normal, 0x04 green, 0x03 other. MUST BE CHAR #define MAX_PLAYERS 32 + 1 new g_iUserFPS[MAX_PLAYERS]; new g_irFPS; new g_irFPSAll; new g_irFPSVisual; public plugin_init() { register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR); register_cvar(PLUGIN_NAME, PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY); g_irFPS = register_cvar("rfps", "1"); g_irFPSAll = register_cvar("rfpsall", "1"); g_irFPSVisual = register_cvar("rfpsvisual", "1"); register_forward(FM_PlayerPreThink, "fwdPlayerPreThink"); register_clcmd("say", "sayHandle"); register_clcmd("say /rfps", "cmdAboutrFPS"); register_clcmd("say_team /rfps", "cmdAboutrFPS"); } public fwdPlayerPreThink(id) { if ( !get_pcvar_num(g_irFPS) ) return FMRES_IGNORED; static Float:fGameTime, Float:fCountNext[MAX_PLAYERS], iCountFrames[MAX_PLAYERS]; if ( fCountNext[id] >= (fGameTime = get_gametime()) ) { iCountFrames[id]++; return FMRES_IGNORED; } g_iUserFPS[id] = iCountFrames[id]; iCountFrames[id] = 0; fCountNext[id] = fGameTime + DELAY_COUNT; return FMRES_IGNORED; } public sayHandle(id) { if ( !get_pcvar_num(g_irFPS) ) return PLUGIN_CONTINUE; new szArgs[64]; read_args(szArgs, charsmax(szArgs)); remove_quotes(szArgs); trim(szArgs); if ( !szArgs[0] ) return PLUGIN_HANDLED; if ( szArgs[0] != '/' ) return PLUGIN_CONTINUE; //Command new szTarget[32]; parse(szArgs,\ szArgs, charsmax(szArgs),\ szTarget, charsmax(szTarget)); if ( !equali(szArgs, "/fps", 4) ) return PLUGIN_CONTINUE; //Command //Delay new Float:fCommandDelay = DELAY_COMMAND; static Float:fCommandUsed[MAX_PLAYERS]; if ( fCommandUsed[id] > get_gametime() ) { printMessage(id, id, "Please^x04 wait %.0f seconds^x03 between commands!", fCommandDelay); return PLUGIN_HANDLED; } //Delay //Display trim(szTarget); if ( !szTarget[0] ) fCommandUsed[id] = displayFPS(id, id, fCommandDelay); else { new targetId = cmd_target(id, szTarget, 2); if ( targetId ) fCommandUsed[id] = displayFPS(id, targetId, fCommandDelay); else { printMessage(id, id, "There is no OR multiple players with that name ->^x04 %s", szTarget); return PLUGIN_HANDLED; } } //Display return get_pcvar_num(g_irFPSVisual) ? PLUGIN_CONTINUE : PLUGIN_HANDLED; } Float:displayFPS(id, targetId, Float:fCommandDelay) { new szName[32]; get_user_name(targetId, szName, charsmax(szName)); new szMsg[192]; formatex(szMsg, charsmax(szMsg), "^x04%s^x03 has^x04 %d^x03 FPS", szName, g_iUserFPS[targetId]); printMessage(id, get_pcvar_num(g_irFPSAll) ? 0 : id, szMsg); return get_gametime() + fCommandDelay; } public cmdAboutrFPS(id) { printMessage(id, id, "^x04%s^x03 Version^x04 %s^x03 By^x04 %s^x03 -> Status^x04 %s^x03 Command is^x04 %s", PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR, get_pcvar_num(g_irFPS) ? "enabled" : "disabled", get_pcvar_num(g_irFPSVisual) ? "not blocked" : "blocked"); return get_pcvar_num(g_irFPSVisual) ? PLUGIN_CONTINUE : PLUGIN_HANDLED; } printMessage(id, targetId, const sMsg[], any:...) { new szMessage[192]; vformat(szMessage, charsmax(szMessage), sMsg, 4); format(szMessage, charsmax(szMessage), "%c[rFPS] %s", COLOR, szMessage); static iSayText; if ( !iSayText ) iSayText = get_user_msgid("SayText"); message_begin(targetId ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, iSayText, {0, 0, 0}, targetId); write_byte(id); write_string(szMessage); message_end(); } Przeczytaj cały wpis Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi