RSSy MYGO.pl Opublikowano Kwiecień 21, 2024 o 13:48 RSSy Udostępnij Opublikowano Kwiecień 21, 2024 o 13:48 D i 5 7 i n c T's HUD Info Simple multiple HUD info plugin that can display any information in any style you want, with the ability to also display dynamic multilingual info such as real time server FPS, time left, player & round count, current server time, etc. Runs on any GoldSource(Half-Life 1) engine game. Short videos:CVar list(they are self explanatory): PHP Code: // Interval between HUD refreshes D7HUDInfoInterval 1.0 // HUD 1 type. 1 is normal HUD and 2 is DHUD. D7HUDInfoType1 2 // HUD 2 type D7HUDInfoType2 1 // HUD colors: // HUD1 alive players R G B, HUD1 dead players R G B // HUD2 alive players R G B, HUD2 dead players R G B // If any HUD2 color is not set, it will use the color from HUD1 // -1 will generate a random amount for the given color // Having all R, G and B set to -1 will generate saturated and visible colors // A value smaller than -1 will random the amount between 0 and the negated value minus one // Example: -129 will random an amount between 0 and 128 D7HUDInfoColor "-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1" // HUD colors: // HUD1 alive players X Y, HUD1 dead players X Y // HUD2 alive players X Y, HUD2 dead players X Y // If any HUD2 position is not set, it will use the position from HUD1 D7HUDInfoPos "-1.0 0.0 -1.0 0.13 -1.0 0.035 -1.0 0.165" // HUD texts to display. Variables: // $name$ - Server name // $fps$ - Server FPS // $pnum$ - Current connected player count // $pmax$ - Max players. Will try to use sv_visiblemaxplayers CVar value if it is not set to -1. // $Lmap$ - Current map multilingual // $map$ - Current map name // $Ltimel$ - Time left multilingual // $timel$ - Time left // $Lround$ - Round number multilingual // $round$ - Round number // $roundmax$ - Max rounds(mp_maxrounds) // $Lmapn$ - Next map multilingual // $mapn$ - Next map name(amx_nextmap) // $timeh$ - Current server time hour // $timem$ - Current server time minute // $times$ - Current server time second // // Use ^n for new line // Leave blank to disable the corresponding HUD D7HUDInfoText "$name$ | FPS: $fps$ | $pnum$/$pmax$" D7HUDInfoText2 "$Lmap$: $map$ | $Ltimel$: $timel$ | $Lround$: $round$/$roundmax$ | $Lmapn$: $mapn$ | $timeh$:$timem$:$times$" miscstats.txt nextmap.txt timeleft.txtThis plug-in requires the following: - DHUD messages include file (dhudmessage.inc)(only if compiling with AMXX 1.8.2 or older). Attached along below.Get source and compile locally.dorin2oo7 - For his images I used to style up my post.NiHiLaNTh, schmurgel1983, KliPPy, meTaLiCroSS, Hedgehog Fog - For being true friends and always helping and teaching me new stuff. Code: T = needs testing X = done - = cancelled [T] make randoming from 0 possible [T] decide whether to go to the new line for player count through the extra info cvar [T] support hud refresh rate 0.1 and calculate hud hold time properly [T] customizable new line after host name or not [T] change host name into an int cvar instead of string for optimization v0.0.6 [T] rewrite v1.0.0 [T] client_disconnected for AMXX_VERSION_NUM >= 182 [T] fix runtime error 5 memory access [T] fix interval cvar change not showing hud anymore [T] fix round count not changing until freezetime is over [T] random color number base on 64 instead of 51 ? [X] check if client fps detection works properly [T] g_iIDTaskHUD to avoid any interference v1.0.6 [T] use alive hud colors and positions if dead not present [T] have final color before setting hud [T] fix wrong color being used for hud 2 alive v1.0.9 [ ] better way of checking if the dhudmessage is already defined through a native or not [ ] cvars for hud properties [ ] optimize [ ] cfg file [ ] fixed channel for set_hudmessage ?Code(for easy readability): PHP Code: #include <amxmodx> #include <engine> #include <bitsums> #if AMXX_VERSION_NUM <= 182//!defined set_dhudmessage #include <dhudmessage> #endif enum (+= 33) { g_iIDTaskHUD = 32 } new g_iIDPCVarInterval, g_iIDPCVarType1, g_iIDPCVarType2, g_iIDPCVarColor, g_iIDPCVarPos, g_iIDPCVarText, g_iIDPCVarText2, g_iFPSSV, g_iFPSCl[33], g_iBsBot, g_iIDPCVarHostName, g_iIDPCVarMaxPlayersVis, g_iIDPCVarMaxRounds, g_iIDPCVarNextMap, g_iRound, g_iMaxPlayers, g_szMap[32]; public plugin_init() { register_plugin("D7 HUD Info", "1.0.9", "D i 5 7 i n c T") register_dictionary("miscstats.txt") register_dictionary("nextmap.txt") register_dictionary("timeleft.txt") //register_logevent("fwEvLogRoundStart", 2, "1=Round_Start") register_event("HLTV", "fwEventHltvRoundStart", "a", "1=0", "2=0") register_event("TextMsg", "fwEvTextCommenceRestart", "a", "2=#Game_Commencing", "2=#Game_will_restart_in"); g_iIDPCVarInterval = register_cvar("D7HUDInfoInterval", "1.0"); g_iIDPCVarType1 = register_cvar("D7HUDInfoType1", "2"); g_iIDPCVarType2 = register_cvar("D7HUDInfoType2", "1"); g_iIDPCVarColor = register_cvar("D7HUDInfoColor", "-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1"); g_iIDPCVarPos = register_cvar("D7HUDInfoPos", "-1.0 0.0 -1.0 0.13 -1.0 0.035 -1.0 0.165"); g_iIDPCVarText = register_cvar("D7HUDInfoText", "$name$ | FPS: $fps$ | $pnum$/$pmax$"); g_iIDPCVarText2 = register_cvar("D7HUDInfoText2", "$Lmap$: $map$ | $Ltimel$: $timel$ | $Lround$: $round$/$roundmax$ | $Lmapn$: $mapn$ | $timeh$:$timem$:$times$"); g_iIDPCVarHostName = get_cvar_pointer("hostname"); g_iIDPCVarMaxPlayersVis = get_cvar_pointer("sv_visiblemaxplayers"); g_iIDPCVarMaxRounds = get_cvar_pointer("mp_maxrounds"); g_iIDPCVarNextMap = get_cvar_pointer("amx_nextmap"); g_iMaxPlayers = get_maxplayers(); get_mapname(g_szMap, charsmax(g_szMap)) set_task(3.0, "fwTaskHUD", g_iIDTaskHUD, "", 31) } public fwEventHltvRoundStart() g_iRound++; public fwEvTextCommenceRestart() g_iRound = 0; public server_frame() g_iFPSSV++; public client_authorized(iID) { if (is_user_bot(iID)) bitsum_add(g_iBsBot, iID) else g_iFPSCl[iID] = 0; } #if AMXX_VERSION_NUM <= 182 public client_disconnect(iID) #else public client_disconnected(iID) #endif bitsum_del(g_iBsBot, iID) public client_PreThink(iID) { if (!bitsum_get(g_iBsBot, iID)) g_iFPSCl[iID]++; } public fwTaskHUD(szTemp[32], iIDTask) { new Float:fTemp = get_pcvar_float(g_iIDPCVarInterval); if (!szTemp[0] || fTemp != str_to_float(szTemp)) { remove_task(g_iIDTaskHUD) float_to_str(fTemp, szTemp, charsmax(szTemp)) set_task(fTemp, "fwTaskHUD", g_iIDTaskHUD, szTemp, charsmax(szTemp), "b") g_iFPSSV = 0; g_iFPSCl = ""; return; } new iNum, iIDsPlayersDead[32], iNum2, i; // alive get_players(szTemp, iNum, "ach") get_players(iIDsPlayersDead, iNum2, "bch") // dead for (i = iNum - 1; i >= 0; i--) { if (g_iFPSCl[szTemp[i]] >= 40) { g_iFPSCl[szTemp[i]] = 0; continue; } g_iFPSCl[szTemp[i]] = 0; iNum--; } for (i = iNum2 - 1; i >= 0; i--) { if (g_iFPSCl[iIDsPlayersDead[i]] >= 40) { g_iFPSCl[iIDsPlayersDead[i]] = 0; continue; } g_iFPSCl[iIDsPlayersDead[i]] = 0; iNum2--; } if (!iNum && !iNum2) return; new szTemp2[6][10], szTemp3[64], iR, iG, iB, iR2, iG2, iB2, Float:fPosY, Float:fPosZ, Float:fPosY2, Float:fPosZ2, iCVarType, szCVarText[175], szMessage[sizeof szCVarText]; get_pcvar_string(g_iIDPCVarText, szCVarText, charsmax(szCVarText)) if (!szCVarText[0]) goto GoToHUD2; get_pcvar_string(g_iIDPCVarColor, szMessage, charsmax(szMessage)) parse(szMessage, szTemp2[0], charsmax(szTemp2[]), szTemp2[1], charsmax(szTemp2[]), szTemp2[2], charsmax(szTemp2[]), szTemp2[3], charsmax(szTemp2[]), szTemp2[4], charsmax(szTemp2[]), szTemp2[5], charsmax(szTemp2[])) iR = str_to_num(szTemp2[0]); iG = str_to_num(szTemp2[1]); iB = str_to_num(szTemp2[2]); if (iR == -1 && iG == -1 && iB == -1) { i = random_num(0, 2) if (i == 0) { iR = 255; if (!random_num(0, 1)) { iG = 0; iB = 64 * random_num(1, 4); } else { iG = 64 * random_num(1, 4); iB = 0; } } else if (i == 1) { iG = 255; if (!random_num(0, 1)) { iR = 0; iB = 64 * random_num(1, 4); } else { iR = 64 * random_num(1, 4); iB = 0; } } else if (i == 2) { iB = 255; if (!random_num(0, 1)) { iR = 0; iG = 64 * random_num(1, 4); } else { iR = 64 * random_num(1, 4); iG = 0; } } if (iR > 255) iR = 255 if (iG > 255) iG = 255 if (iB > 255) iB = 255 } else { if (iR < 0) iR = random_num(-iR - 1, 255) if (iG < 0) iG = random_num(-iG - 1, 255) if (iB < 0) iB = random_num(-iB - 1, 255) } if (szTemp2[3][0]) iR2 = str_to_num(szTemp2[3]); else iR2 = iR; if (szTemp2[4][0]) iG2 = str_to_num(szTemp2[4]); else iG2 = iG; if (szTemp2[5][0]) iB2 = str_to_num(szTemp2[5]); else iB2 = iB; if (iR2 == -1 && iG2 == -1 && iB2 == -1) { i = random_num(0, 2) if (i == 0) { iR2 = 255; if (!random_num(0, 1)) { iG2 = 0; iB2 = 64 * random_num(1, 4); } else { iG2 = 64 * random_num(1, 4); iB2 = 0; } } else if (i == 1) { iG2 = 255; if (!random_num(0, 1)) { iR2 = 0; iB2 = 64 * random_num(1, 4); } else { iR2 = 64 * random_num(1, 4); iB2 = 0; } } else if (i == 2) { iB2 = 255; if (!random_num(0, 1)) { iR2 = 0; iG2 = 64 * random_num(1, 4); } else { iR2 = 64 * random_num(1, 4); iG2 = 0; } } if (iR2 > 255) iR2 = 255 if (iG2 > 255) iG2 = 255 if (iB2 > 255) iB2 = 255 } else { if (iR2 < 0) iR2 = random_num(-iR2 - 1, 255) if (iG2 < 0) iG2 = random_num(-iG2 - 1, 255) if (iB2 < 0) iB2 = random_num(-iB2 - 1, 255) } //client_print(0, print_chat, "[HUD1] Color alive: %d %d %d. Color dead: %d %d %d.", iR, iG, iB, iR2, iG2, iB2) get_pcvar_string(g_iIDPCVarPos, szMessage, charsmax(szMessage)) parse(szMessage, szTemp2[0], charsmax(szTemp2[]), szTemp2[1], charsmax(szTemp2[]), szTemp2[2], charsmax(szTemp2[]), szTemp2[3], charsmax(szTemp2[])) fPosY = str_to_float(szTemp2[0]); fPosZ = str_to_float(szTemp2[1]); if (szTemp2[2][0]) fPosY2 = str_to_float(szTemp2[2]); else fPosY2 = fPosY; if (szTemp2[3][0]) fPosZ2 = str_to_float(szTemp2[3]); else fPosZ2 = fPosZ; replace_all(szCVarText, charsmax(szCVarText), "^^n", "^n") get_pcvar_string(g_iIDPCVarHostName, szTemp3, charsmax(szTemp3)) replace_all(szCVarText, charsmax(szCVarText), "$name$", szTemp3) get_pcvar_string(g_iIDPCVarNextMap, szTemp3, charsmax(szTemp3)) replace_all(szCVarText, charsmax(szCVarText), "$mapn$", szTemp3) formatex(szTemp3, charsmax(szTemp3), "%d", get_playersnum(1)) replace_all(szCVarText, charsmax(szCVarText), "$pnum$", szTemp3) i = get_pcvar_num(g_iIDPCVarMaxPlayersVis); formatex(szTemp3, charsmax(szTemp3), "%d", i > -1 ? i : g_iMaxPlayers) replace_all(szCVarText, charsmax(szCVarText), "$pmax$", szTemp3) formatex(szTemp3, charsmax(szTemp3), "%04d", floatround(g_iFPSSV / fTemp)) replace_all(szCVarText, charsmax(szCVarText), "$fps$", szTemp3) formatex(szTemp3, charsmax(szTemp3), "%02d", g_iRound) replace_all(szCVarText, charsmax(szCVarText), "$round$", szTemp3) formatex(szTemp3, charsmax(szTemp3), "%02d", get_pcvar_num(g_iIDPCVarMaxRounds)) replace_all(szCVarText, charsmax(szCVarText), "$roundmax$", szTemp3) i = get_timeleft(); formatex(szTemp3, charsmax(szTemp3), "%02d:%02d", i / 60, i % 60) replace_all(szCVarText, charsmax(szCVarText), "$timel$", szTemp3) get_time("%H", szTemp3, charsmax(szTemp3)) replace_all(szCVarText, charsmax(szCVarText), "$timeh$", szTemp3) get_time("%M", szTemp3, charsmax(szTemp3)) replace_all(szCVarText, charsmax(szCVarText), "$timem$", szTemp3) get_time("%S", szTemp3, charsmax(szTemp3)) replace_all(szCVarText, charsmax(szCVarText), "$times$", szTemp3) replace_all(szCVarText, charsmax(szCVarText), "$map$", g_szMap) iCVarType = get_pcvar_num(g_iIDPCVarType1); if (iCVarType != 1) { // red = 0, green = 160, blue = 0, Float:x = -1.0, Float:y = 0.65, // effects = 2, Float:fxtime = 6.0, Float:holdtime = 3.0, // Float:fadeintime = 0.1, Float:fadeouttime = 1.5, bool:reliable = true set_dhudmessage(iR, iG, iB, fPosY, fPosZ, 0, 0.0, fTemp + ((fTemp >= 0.2) ? 0.1 : 0.075), 0.0, 0.0) } else { // red = 0, green = 160, blue = 0, Float:x = -1.0, Float:y = 0.65, // effects = 2, Float:fxtime = 6.0, Float:holdtime = 3.0, // Float:fadeintime = 0.1, Float:fadeouttime = 1.5, bool:reliable = true set_hudmessage(iR, iG, iB, fPosY, fPosZ, 0, 0.0, fTemp + ((fTemp >= 0.2) ? 0.1 : 0.075), 0.0, 0.0) } i = iNum; for (i -= 1; i >= 0; i--) { szMessage = szCVarText; formatex(szTemp3, charsmax(szTemp3), "%L", szTemp[i], "PLAYED_MAP") replace_all(szMessage, charsmax(szMessage), "$Lmap$", szTemp3) formatex(szTemp3, charsmax(szTemp3), "%L", szTemp[i], "TIME_LEFT") replace_all(szMessage, charsmax(szMessage), "$Ltimel$", szTemp3) formatex(szTemp3, charsmax(szTemp3), "%L", szTemp[i], "NEXT_MAP") replace(szTemp3, charsmax(szTemp3), ":", "") replace_all(szMessage, charsmax(szMessage), "$Lmapn$", szTemp3) formatex(szTemp3, charsmax(szTemp3), "%L", szTemp[i], "PREPARE_FIGHT", 999) //client_print(szTemp[i], print_chat, szTemp3) szTemp2[0][0] = contain(szTemp3, "^n"); if (szTemp2[0][0] != -1) { szTemp2[0][1] = contain(szTemp3, "999"); replace(szTemp3, charsmax(szTemp3), "999", "") if (szTemp2[0][1] > szTemp2[0][0]) format(szTemp3, charsmax(szTemp3), "%s", szTemp3[szTemp2[0][0] + 1]) else szTemp3[szTemp2[0][0]] = EOS; trim(szTemp3) //add(szTemp3, charsmax(szTemp3), ":") replace_all(szMessage, charsmax(szMessage), "$Lround$", szTemp3) //client_print(szTemp[i], print_chat, "^"%s^"", szTemp3) } else replace_all(szMessage, charsmax(szMessage), "$Lround$", "Round") if (iCVarType != 1) show_dhudmessage(szTemp[i], szMessage) else show_hudmessage(szTemp[i], szMessage) } if (iCVarType != 1) { // red = 0, green = 160, blue = 0, Float:x = -1.0, Float:y = 0.65, // effects = 2, Float:fxtime = 6.0, Float:holdtime = 3.0, // Float:fadeintime = 0.1, Float:fadeouttime = 1.5, bool:reliable = true set_dhudmessage(iR2, iG2, iB2, fPosY2, fPosZ2, 0, 0.0, fTemp + ((fTemp >= 0.2) ? 0.1 : 0.075), 0.0, 0.0) } else { // red = 0, green = 160, blue = 0, Float:x = -1.0, Float:y = 0.65, // effects = 2, Float:fxtime = 6.0, Float:holdtime = 3.0, // Float:fadeintime = 0.1, Float:fadeouttime = 1.5, bool:reliable = true set_hudmessage(iR2, iG2, iB2, fPosY2, fPosZ2, 0, 0.0, fTemp + ((fTemp >= 0.2) ? 0.1 : 0.075), 0.0, 0.0) } i = iNum2; for (i -= 1; i >= 0; i--) { szMessage = szCVarText; formatex(szTemp3, charsmax(szTemp3), "%L", iIDsPlayersDead[i], "PLAYED_MAP") replace_all(szMessage, charsmax(szMessage), "$Lmap$", szTemp3) formatex(szTemp3, charsmax(szTemp3), "%L", iIDsPlayersDead[i], "TIME_LEFT") replace_all(szMessage, charsmax(szMessage), "$Ltimel$", szTemp3) formatex(szTemp3, charsmax(szTemp3), "%L", iIDsPlayersDead[i], "NEXT_MAP") replace(szTemp3, charsmax(szTemp3), ":", "") replace_all(szMessage, charsmax(szMessage), "$Lmapn$", szTemp3) formatex(szTemp3, charsmax(szTemp3), "%L", iIDsPlayersDead[i], "PREPARE_FIGHT", 999) //client_print(iIDsPlayersDead[i], print_chat, szTemp3) szTemp2[0][0] = contain(szTemp3, "^n"); if (szTemp2[0][0] != -1) { szTemp2[0][1] = contain(szTemp3, "999"); replace(szTemp3, charsmax(szTemp3), "999", "") if (szTemp2[0][1] > szTemp2[0][0]) format(szTemp3, charsmax(szTemp3), "%s", szTemp3[szTemp2[0][0] + 1]) else szTemp3[szTemp2[0][0]] = EOS; trim(szTemp3) //add(szTemp3, charsmax(szTemp3), ":") replace_all(szMessage, charsmax(szMessage), "$Lround$", szTemp3) //client_print(szTemp[i], print_chat, "^"%s^"", szTemp3) } else replace_all(szMessage, charsmax(szMessage), "$Lround$", "Round") if (iCVarType != 1) show_dhudmessage(iIDsPlayersDead[i], szMessage) else show_hudmessage(iIDsPlayersDead[i], szMessage) } GoToHUD2: get_pcvar_string(g_iIDPCVarText2, szCVarText, charsmax(szCVarText)) if (!szCVarText[0]) goto GoToFPSReset; get_pcvar_string(g_iIDPCVarColor, szMessage, charsmax(szMessage)) new iCount; for (iCount = 0; iCount < 6; iCount++) { if ((i = contain(szMessage, " ")) == -1) break; i += 1; format(szMessage, charsmax(szMessage), szMessage[i]) } /* client_print(0, print_chat, "") client_print(0, print_chat, szMessage) client_print(0, print_chat, "Color iCount: %d", iCount)*/ if (iCount == 6) { parse(szMessage, szTemp2[0], charsmax(szTemp2[]), szTemp2[1], charsmax(szTemp2[]), szTemp2[2], charsmax(szTemp2[]), szTemp2[3], charsmax(szTemp2[]), szTemp2[4], charsmax(szTemp2[]), szTemp2[5], charsmax(szTemp2[])) if (szTemp2[0][0]) iR = str_to_num(szTemp2[0]); if (szTemp2[1][0]) iG = str_to_num(szTemp2[1]); if (szTemp2[2][0]) iB = str_to_num(szTemp2[2]); if (iR == -1 && iG == -1 && iB == -1) { i = random_num(0, 2) if (i == 0) { iR = 255; if (!random_num(0, 1)) { iG = 0; iB = 64 * random_num(1, 4); } else { iG = 64 * random_num(1, 4); iB = 0; } } else if (i == 1) { iG = 255; if (!random_num(0, 1)) { iR = 0; iB = 64 * random_num(1, 4); } else { iR = 64 * random_num(1, 4); iB = 0; } } else if (i == 2) { iB = 255; if (!random_num(0, 1)) { iR = 0; iG = 64 * random_num(1, 4); } else { iR = 64 * random_num(1, 4); iG = 0; } } if (iR > 255) iR = 255 if (iG > 255) iG = 255 if (iB > 255) iB = 255 } else { if (iR < 0) iR = random_num(-iR - 1, 255) if (iG < 0) iG = random_num(-iG - 1, 255) if (iB < 0) iB = random_num(-iB - 1, 255) } if (szTemp2[3][0]) iR2 = str_to_num(szTemp2[3]); else iR2 = iR; if (szTemp2[4][0]) iG2 = str_to_num(szTemp2[4]); else iG2 = iG; if (szTemp2[5][0]) iB2 = str_to_num(szTemp2[5]); else iB2 = iB; if (iR2 == -1 && iG2 == -1 && iB2 == -1) { i = random_num(0, 2) if (i == 0) { iR2 = 255; if (!random_num(0, 1)) { iG2 = 0; iB2 = 64 * random_num(1, 4); } else { iG2 = 64 * random_num(1, 4); iB2 = 0; } } else if (i == 1) { iG2 = 255; if (!random_num(0, 1)) { iR2 = 0; iB2 = 64 * random_num(1, 4); } else { iR2 = 64 * random_num(1, 4); iB2 = 0; } } else if (i == 2) { iB2 = 255; if (!random_num(0, 1)) { iR2 = 0; iG2 = 64 * random_num(1, 4); } else { iR2 = 64 * random_num(1, 4); iG2 = 0; } } if (iR2 > 255) iR2 = 255 if (iG2 > 255) iG2 = 255 if (iB2 > 255) iB2 = 255 } else { if (iR2 < 0) iR2 = random_num(-iR2 - 1, 255) if (iG2 < 0) iG2 = random_num(-iG2 - 1, 255) if (iB2 < 0) iB2 = random_num(-iB2 - 1, 255) } } //client_print(0, print_chat, "[HUD2] Color alive: %d %d %d. Color dead: %d %d %d.", iR, iG, iB, iR2, iG2, iB2) get_pcvar_string(g_iIDPCVarPos, szMessage, charsmax(szMessage)) for (iCount = 0; iCount < 4; iCount++) { if ((i = contain(szMessage, " ")) == -1) break; i += 1; format(szMessage, charsmax(szMessage), szMessage[i]) } /* client_print(0, print_chat, szMessage) client_print(0, print_chat, "Position iCount: %d", iCount)*/ if (iCount == 4) { parse(szMessage, szTemp2[0], charsmax(szTemp2[]), szTemp2[1], charsmax(szTemp2[]), szTemp2[2], charsmax(szTemp2[]), szTemp2[3], charsmax(szTemp2[])) if (szTemp2[0][0]) fPosY = str_to_float(szTemp2[0]); if (szTemp2[1][0]) fPosZ = str_to_float(szTemp2[1]); if (szTemp2[2][0]) fPosY2 = str_to_float(szTemp2[2]); else fPosY2 = fPosY; if (szTemp2[3][0]) fPosZ2 = str_to_float(szTemp2[3]); else fPosZ2 = fPosZ; } replace_all(szCVarText, charsmax(szCVarText), "^^n", "^n") get_pcvar_string(g_iIDPCVarHostName, szTemp3, charsmax(szTemp3)) replace_all(szCVarText, charsmax(szCVarText), "$name$", szTemp3) get_pcvar_string(g_iIDPCVarNextMap, szTemp3, charsmax(szTemp3)) replace_all(szCVarText, charsmax(szCVarText), "$mapn$", szTemp3) formatex(szTemp3, charsmax(szTemp3), "%d", get_playersnum(1)) replace_all(szCVarText, charsmax(szCVarText), "$pnum$", szTemp3) i = get_pcvar_num(g_iIDPCVarMaxPlayersVis); formatex(szTemp3, charsmax(szTemp3), "%d", i > -1 ? i : g_iMaxPlayers) replace_all(szCVarText, charsmax(szCVarText), "$pmax$", szTemp3) formatex(szTemp3, charsmax(szTemp3), "%04d", floatround(g_iFPSSV / fTemp)) replace_all(szCVarText, charsmax(szCVarText), "$fps$", szTemp3) formatex(szTemp3, charsmax(szTemp3), "%02d", g_iRound) replace_all(szCVarText, charsmax(szCVarText), "$round$", szTemp3) formatex(szTemp3, charsmax(szTemp3), "%02d", get_pcvar_num(g_iIDPCVarMaxRounds)) replace_all(szCVarText, charsmax(szCVarText), "$roundmax$", szTemp3) i = get_timeleft(); formatex(szTemp3, charsmax(szTemp3), "%02d:%02d", i / 60, i % 60) replace_all(szCVarText, charsmax(szCVarText), "$timel$", szTemp3) get_time("%H", szTemp3, charsmax(szTemp3)) replace_all(szCVarText, charsmax(szCVarText), "$timeh$", szTemp3) get_time("%M", szTemp3, charsmax(szTemp3)) replace_all(szCVarText, charsmax(szCVarText), "$timem$", szTemp3) get_time("%S", szTemp3, charsmax(szTemp3)) replace_all(szCVarText, charsmax(szCVarText), "$times$", szTemp3) replace_all(szCVarText, charsmax(szCVarText), "$map$", g_szMap) iCVarType = get_pcvar_num(g_iIDPCVarType2); if (iCVarType != 1) { // red = 0, green = 160, blue = 0, Float:x = -1.0, Float:y = 0.65, // effects = 2, Float:fxtime = 6.0, Float:holdtime = 3.0, // Float:fadeintime = 0.1, Float:fadeouttime = 1.5, bool:reliable = true set_dhudmessage(iR, iG, iB, fPosY, fPosZ, 0, 0.0, fTemp + ((fTemp >= 0.2) ? 0.1 : 0.075), 0.0, 0.0) } else { // red = 0, green = 160, blue = 0, Float:x = -1.0, Float:y = 0.65, // effects = 2, Float:fxtime = 6.0, Float:holdtime = 3.0, // Float:fadeintime = 0.1, Float:fadeouttime = 1.5, bool:reliable = true set_hudmessage(iR, iG, iB, fPosY, fPosZ, 0, 0.0, fTemp + ((fTemp >= 0.2) ? 0.1 : 0.075), 0.0, 0.0) } i = iNum; for (i -= 1; i >= 0; i--) { szMessage = szCVarText; formatex(szTemp3, charsmax(szTemp3), "%L", szTemp[i], "PLAYED_MAP") replace_all(szMessage, charsmax(szMessage), "$Lmap$", szTemp3) formatex(szTemp3, charsmax(szTemp3), "%L", szTemp[i], "TIME_LEFT") replace_all(szMessage, charsmax(szMessage), "$Ltimel$", szTemp3) formatex(szTemp3, charsmax(szTemp3), "%L", szTemp[i], "NEXT_MAP") replace(szTemp3, charsmax(szTemp3), ":", "") replace_all(szMessage, charsmax(szMessage), "$Lmapn$", szTemp3) formatex(szTemp3, charsmax(szTemp3), "%L", szTemp[i], "PREPARE_FIGHT", 999) //client_print(szTemp[i], print_chat, szTemp3) szTemp2[0][0] = contain(szTemp3, "^n"); if (szTemp2[0][0] != -1) { szTemp2[0][1] = contain(szTemp3, "999"); replace(szTemp3, charsmax(szTemp3), "999", "") if (szTemp2[0][1] > szTemp2[0][0]) format(szTemp3, charsmax(szTemp3), "%s", szTemp3[szTemp2[0][0] + 1]) else szTemp3[szTemp2[0][0]] = EOS; trim(szTemp3) //add(szTemp3, charsmax(szTemp3), ":") replace_all(szMessage, charsmax(szMessage), "$Lround$", szTemp3) //client_print(szTemp[i], print_chat, "^"%s^"", szTemp3) } else replace_all(szMessage, charsmax(szMessage), "$Lround$", "Round") if (iCVarType != 1) show_dhudmessage(szTemp[i], szMessage) else show_hudmessage(szTemp[i], szMessage) } if (iCVarType != 1) { // red = 0, green = 160, blue = 0, Float:x = -1.0, Float:y = 0.65, // effects = 2, Float:fxtime = 6.0, Float:holdtime = 3.0, // Float:fadeintime = 0.1, Float:fadeouttime = 1.5, bool:reliable = true set_dhudmessage(iR2, iG2, iB2, fPosY2, fPosZ2, 0, 0.0, fTemp + ((fTemp >= 0.2) ? 0.1 : 0.075), 0.0, 0.0) } else { // red = 0, green = 160, blue = 0, Float:x = -1.0, Float:y = 0.65, // effects = 2, Float:fxtime = 6.0, Float:holdtime = 3.0, // Float:fadeintime = 0.1, Float:fadeouttime = 1.5, bool:reliable = true set_hudmessage(iR2, iG2, iB2, fPosY2, fPosZ2, 0, 0.0, fTemp + ((fTemp >= 0.2) ? 0.1 : 0.075), 0.0, 0.0) } i = iNum2; for (i -= 1; i >= 0; i--) { szMessage = szCVarText; formatex(szTemp3, charsmax(szTemp3), "%L", iIDsPlayersDead[i], "PLAYED_MAP") replace_all(szMessage, charsmax(szMessage), "$Lmap$", szTemp3) formatex(szTemp3, charsmax(szTemp3), "%L", iIDsPlayersDead[i], "TIME_LEFT") replace_all(szMessage, charsmax(szMessage), "$Ltimel$", szTemp3) formatex(szTemp3, charsmax(szTemp3), "%L", iIDsPlayersDead[i], "NEXT_MAP") replace(szTemp3, charsmax(szTemp3), ":", "") replace_all(szMessage, charsmax(szMessage), "$Lmapn$", szTemp3) formatex(szTemp3, charsmax(szTemp3), "%L", iIDsPlayersDead[i], "PREPARE_FIGHT", 999) //client_print(iIDsPlayersDead[i], print_chat, szTemp3) szTemp2[0][0] = contain(szTemp3, "^n"); if (szTemp2[0][0] != -1) { szTemp2[0][1] = contain(szTemp3, "999"); replace(szTemp3, charsmax(szTemp3), "999", "") if (szTemp2[0][1] > szTemp2[0][0]) format(szTemp3, charsmax(szTemp3), "%s", szTemp3[szTemp2[0][0] + 1]) else szTemp3[szTemp2[0][0]] = EOS; trim(szTemp3) //add(szTemp3, charsmax(szTemp3), ":") replace_all(szMessage, charsmax(szMessage), "$Lround$", szTemp3) //client_print(szTemp[i], print_chat, "^"%s^"", szTemp3) } else replace_all(szMessage, charsmax(szMessage), "$Lround$", "Round") if (iCVarType != 1) show_dhudmessage(iIDsPlayersDead[i], szMessage) else show_hudmessage(iIDsPlayersDead[i], szMessage) } GoToFPSReset: g_iFPSSV = 0; g_iFPSCl = ""; } Attached Thumbnails Attached Files dhudmessage.inc (3.3 KB) Get Plugin or Get Source (D7HUDInfo.sma - 23.6 KB) Przeczytaj cały wpis Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi