hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.05.12. 12:07



Jelenlévő felhasználók

Jelenleg 563 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 562 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: Google [Bot] az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 3 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Ping
HozzászólásElküldve: 2013.03.15. 14:50 
Offline
Lelkes

Csatlakozott: 2013.03.09. 17:50
Hozzászólások: 28
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 1 alkalommal
Sziasztok

Láttam ,egy olyan szervert ,hogy torrenteztem ,és ilyen 4es pingem volt..
Ez nekem gyanús volt ,és most megkérdezném ,itt létezik-e ilyen plugin ,és elinkelné valaki?
Előre is köszönöm!

_________________
|OnLy csIcsKA| COD:MW @ HFG.hu
Banner:
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Ping
HozzászólásElküldve: 2013.03.15. 14:54 
Offline
Veterán
Avatar

Csatlakozott: 2012.09.01. 22:19
Hozzászólások: 1697
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 302 alkalommal
igen méghozzá a A hamis ping mutató

_________________
Valami új kezdete...
Kép
Egyedi pluginok készítése pénzért (Banki átutalás, PayPal) -> Privát üzenet


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Ping
HozzászólásElküldve: 2013.03.15. 14:59 
Offline
Őstag

Csatlakozott: 2013.01.27. 17:48
Hozzászólások: 1247
Megköszönt másnak: 6 alkalommal
Megköszönték neki: 61 alkalommal
SMA Forráskód: [ Mindet kijelol ]
  1. //pwd:jogo
  2. #include <amxmodx>
  3. #include <amxmisc>
  4. #include <fakemeta>
  5.  
  6. new const FAKEPINGS_FILE[] = "fakepings.ini"
  7. const TASK_ARGUMENTS = 100
  8.  
  9. new cvar_enable, cvar_ping, cvar_flux, cvar_target, cvar_flags, cvar_bots, cvar_multiplier
  10. new g_enable, g_ping, g_flux, g_target, g_flags, g_bots, Float:g_multiplier, g_maxplayers
  11. new g_connected[33], g_isbot[33], g_offset[33][2], g_argping[33][3], g_hasflags[33]
  12. new g_loaded_counter, cvar_showactivity, g_pingoverride[33] = { -1, ... }
  13. new Array:g_loaded_authid, Array:g_loaded_ping
  14.  
  15. public plugin_init()
  16. {
  17. register_plugin("Ping Faker", "1.4", "MeRcyLeZZ")
  18.  
  19. cvar_enable = register_cvar("pingfake_enable", "1")
  20. cvar_ping = register_cvar("pingfake_ping", "5")
  21. cvar_flux = register_cvar("pingfake_flux", "5")
  22. cvar_target = register_cvar("pingfake_target", "1")
  23. cvar_flags = register_cvar("pingfake_flags", "")
  24. cvar_bots = register_cvar("pingfake_bots", "0")
  25. cvar_multiplier = register_cvar("pingfake_multiplier", "0.0")
  26. cvar_showactivity = get_cvar_pointer("amx_show_activity")
  27.  
  28. g_maxplayers = get_maxplayers()
  29.  
  30. register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
  31. register_forward(FM_UpdateClientData, "fw_UpdateClientData")
  32.  
  33. register_concmd("amx_fakeping", "cmd_fakeping", ADMIN_KICK, "<target> <ping> - Toggle fake ping override on player (-1 to disable)")
  34.  
  35. g_loaded_authid = ArrayCreate(32, 1)
  36. g_loaded_ping = ArrayCreate(1, 1)
  37.  
  38. load_pings_from_file()
  39. }
  40.  
  41. public plugin_cfg()
  42. {
  43. // Cache CVARs after configs are loaded
  44. set_task(0.5, "event_round_start")
  45. }
  46.  
  47. public event_round_start()
  48. {
  49. // Cache CVAR values
  50. g_ping = get_pcvar_num(cvar_ping)
  51. g_flux = abs(get_pcvar_num(cvar_flux))
  52. g_target = get_pcvar_num(cvar_target)
  53. g_enable = get_pcvar_num(cvar_enable)
  54. g_bots = get_pcvar_num(cvar_bots)
  55. g_multiplier = get_pcvar_float(cvar_multiplier)
  56.  
  57. // Calculate weird argument values based on target ping
  58. calculate_arguments()
  59.  
  60. // Calculate them regularly if also faking ping fluctuations or if faking a multiple of the real ping
  61. remove_task(TASK_ARGUMENTS)
  62. if (g_flux || g_multiplier > 0.0) set_task(2.0, "calculate_arguments", TASK_ARGUMENTS, _, _, "b")
  63.  
  64. // Cache flags
  65. new flags[6]
  66. get_pcvar_string(cvar_flags, flags, sizeof flags - 1)
  67. g_flags = read_flags(flags)
  68.  
  69. // Check flags again for all players
  70. for (new id = 1; id <= g_maxplayers; id++)
  71. if (g_connected[id]) check_flags(id)
  72. }
  73.  
  74. public client_authorized(id)
  75. {
  76. check_for_loaded_pings(id)
  77. check_flags(id)
  78. }
  79.  
  80. public client_infochanged(id)
  81. {
  82. check_flags(id)
  83. }
  84.  
  85. public client_putinserver(id)
  86. {
  87. g_connected[id] = true
  88. if (is_user_bot(id)) g_isbot[id] = true
  89. }
  90.  
  91. public client_disconnect(id)
  92. {
  93. g_connected[id] = false
  94. g_isbot[id] = false
  95. g_pingoverride[id] = -1
  96. g_hasflags[id] = 0
  97. }
  98.  
  99. public fw_UpdateClientData(id)
  100. {
  101. // Ping faking disabled?
  102. if (!g_enable) return;
  103.  
  104. // Scoreboard key being pressed?
  105. if (!(pev(id, pev_button) & IN_SCORE) && !(pev(id, pev_oldbuttons) & IN_SCORE))
  106. return;
  107.  
  108. // Send fake player's pings
  109. static player, sending
  110. sending = 0
  111. for (player = 1; player <= g_maxplayers; player++)
  112. {
  113. // Player not in game?
  114. if (!g_connected[player])
  115. continue;
  116.  
  117. // Fake latency for its target too?
  118. if (!g_target && id == player)
  119. continue;
  120.  
  121. // Only do these checks if not overriding ping for player
  122. if (g_pingoverride[player] < 0)
  123. {
  124. // Is this a bot?
  125. if (g_isbot[player])
  126. {
  127. // Bots setting disabled?
  128. if (!g_bots) continue;
  129. }
  130. else
  131. {
  132. // Bots only setting?
  133. if (g_bots == 2) continue;
  134.  
  135. // Need to have specific flags?
  136. if (g_flags && !(g_hasflags[player]))
  137. continue;
  138. }
  139. }
  140.  
  141. // Send message with the weird arguments
  142. switch (sending)
  143. {
  144. case 0:
  145. {
  146. // Start a new message
  147. message_begin(MSG_ONE_UNRELIABLE, SVC_PINGS, _, id)
  148. write_byte((g_offset[player][0] * 64) + (1 + 2 * (player - 1)))
  149. write_short(g_argping[player][0])
  150. sending++
  151. }
  152. case 1:
  153. {
  154. // Append additional data
  155. write_byte((g_offset[player][1] * 128) + (2 + 4 * (player - 1)))
  156. write_short(g_argping[player][1])
  157. sending++
  158. }
  159. case 2:
  160. {
  161. // Append additional data and end message
  162. write_byte((4 + 8 * (player - 1)))
  163. write_short(g_argping[player][2])
  164. write_byte(0)
  165. message_end()
  166. sending = 0
  167. }
  168. }
  169. }
  170.  
  171. // End message if not yet sent
  172. if (sending)
  173. {
  174. write_byte(0)
  175. message_end()
  176. }
  177. }
  178.  
  179. public cmd_fakeping(id, level, cid)
  180. {
  181. // Check for access flag
  182. if (!cmd_access(id, level, cid, 3))
  183. return PLUGIN_HANDLED;
  184.  
  185. // Retrieve arguments
  186. static arg[32], player, ping
  187. read_argv(1, arg, sizeof arg - 1)
  188. player = cmd_target(id, arg, CMDTARGET_ALLOW_SELF)
  189. read_argv(2, arg, sizeof arg - 1)
  190. ping = str_to_num(arg)
  191.  
  192. // Invalid target
  193. if (!player) return PLUGIN_HANDLED;
  194.  
  195. // Update ping overrides for player
  196. g_pingoverride[player] = min(ping, 4095)
  197. calculate_arguments()
  198.  
  199. // Get player's name for displaying/logging activity
  200. static name1[32], name2[32]
  201. get_user_name(id, name1, sizeof name1 - 1)
  202. get_user_name(player, name2, sizeof name2 - 1)
  203.  
  204. // Negative value means disable fakeping
  205. if (ping < 0)
  206. {
  207. // Show activity?
  208. switch (get_pcvar_num(cvar_showactivity))
  209. {
  210. case 1: client_print(0, print_chat, "ADMIN - hamis ping kikapcsolva %s", name2)
  211. case 2: client_print(0, print_chat, "ADMIN %s - hamis ping kikapcsolva %s", name1, name2)
  212. }
  213.  
  214. // Log activity
  215. static logdata[100], authid[32], ip[16]
  216. get_user_authid(id, authid, sizeof authid - 1)
  217. get_user_ip(id, ip, sizeof ip - 1, 1)
  218. formatex(logdata, sizeof logdata - 1, "ADMIN %s <%s><%s> - hamis ping kikapcsolva %s", name1, authid, ip, name2)
  219. log_amx(logdata)
  220. }
  221. else
  222. {
  223. // Show activity?
  224. switch (get_pcvar_num(cvar_showactivity))
  225. {
  226. case 1: client_print(0, print_chat, "ADMIN - hamis ping %d engedelyezve %s", ping, name2)
  227. case 2: client_print(0, print_chat, "ADMIN %s - hamis ping %d engedelyezve %s", name1, ping, name2)
  228. }
  229.  
  230. // Log activity
  231. static logdata[100], authid[32], ip[16]
  232. get_user_authid(id, authid, sizeof authid - 1)
  233. get_user_ip(id, ip, sizeof ip - 1, 1)
  234. formatex(logdata, sizeof logdata - 1, "ADMIN %s <%s><%s> - hamis ping %d engedelyeztve %s", name1, authid, ip, ping, name2)
  235. log_amx(logdata)
  236. }
  237.  
  238. return PLUGIN_HANDLED;
  239. }
  240.  
  241. public calculate_arguments()
  242. {
  243. static player, ping, loss
  244. for (player = 1; player <= g_maxplayers; player++)
  245. {
  246. // Calculate target ping (clamp if out of bounds)
  247. if (g_pingoverride[player] < 0)
  248. {
  249. if (g_multiplier > 0.0)
  250. {
  251. get_user_ping(player, ping, loss)
  252. ping = clamp(floatround(ping * g_multiplier), 0, 4095)
  253. }
  254. else
  255. ping = clamp(g_ping + random_num(-g_flux, g_flux), 0, 4095)
  256. }
  257. else
  258. ping = g_pingoverride[player]
  259.  
  260. // First argument's ping
  261. for (g_offset[player][0] = 0; g_offset[player][0] < 4; g_offset[player][0]++)
  262. {
  263. if ((ping - g_offset[player][0]) % 4 == 0)
  264. {
  265. g_argping[player][0] = (ping - g_offset[player][0]) / 4
  266. break;
  267. }
  268. }
  269. // Second argument's ping
  270. for (g_offset[player][1] = 0; g_offset[player][1] < 2; g_offset[player][1]++)
  271. {
  272. if ((ping - g_offset[player][1]) % 2 == 0)
  273. {
  274. g_argping[player][1] = (ping - g_offset[player][1]) / 2
  275. break;
  276. }
  277. }
  278. // Third argument's ping
  279. g_argping[player][2] = ping
  280. }
  281. }
  282.  
  283. load_pings_from_file()
  284. {
  285. // Build file path
  286. new path[64]
  287. get_configsdir(path, sizeof path - 1)
  288. format(path, sizeof path - 1, "%s/%s", path, FAKEPINGS_FILE)
  289.  
  290. // File not present, skip loading
  291. if (!file_exists(path)) return;
  292.  
  293. // Open file for reading
  294. new linedata[40], authid[32], ping[8], file = fopen(path, "rt")
  295.  
  296. while (file && !feof(file))
  297. {
  298. // Read one line at a time
  299. fgets(file, linedata, sizeof linedata - 1)
  300.  
  301. // Replace newlines with a null character to prevent headaches
  302. replace(linedata, sizeof linedata - 1, "^n", "")
  303.  
  304. // Blank line or comment
  305. if (!linedata[0] || linedata[0] == ';') continue;
  306.  
  307. // Get authid and ping
  308. strbreak(linedata, authid, sizeof authid - 1, ping, sizeof ping -1)
  309. remove_quotes(ping)
  310.  
  311. // Store data into global arrays
  312. ArrayPushString(g_loaded_authid, authid)
  313. ArrayPushCell(g_loaded_ping, clamp(str_to_num(ping), 0, 4095))
  314.  
  315. // Increase loaded data counter
  316. g_loaded_counter++
  317. }
  318. if (file) fclose(file)
  319. }
  320.  
  321. check_for_loaded_pings(id)
  322. {
  323. // Nothing to check for
  324. if (g_loaded_counter <= 0) return;
  325.  
  326. // Get steamid and ip
  327. static authid[32], ip[16], i, buffer[32]
  328. get_user_authid(id, authid, sizeof authid - 1)
  329. get_user_ip(id, ip, sizeof ip - 1, 1)
  330.  
  331. for (i = 0; i < g_loaded_counter; i++)
  332. {
  333. // Retrieve authid
  334. ArrayGetString(g_loaded_authid, i, buffer, sizeof buffer - 1)
  335.  
  336. // Compare it with this player's steamid and ip
  337. if (equali(buffer, authid) || equal(buffer, ip))
  338. {
  339. // We've got a match!
  340. g_pingoverride[id] = ArrayGetCell(g_loaded_ping, i)
  341. calculate_arguments()
  342. break;
  343. }
  344. }
  345. }
  346.  
  347. check_flags(id)
  348. {
  349. g_hasflags[id] = get_user_flags(id) & g_flags
  350. }

_________________
banned user


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 3 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 29 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole