hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.06.16. 04:43



Jelenlévő felhasználók

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

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

Regisztrált felhasználók: nincs regisztrált felhasználó 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  [ 7 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Ping
HozzászólásElküldve: 2014.09.07. 14:43 
Offline
Veterán
Avatar

Csatlakozott: 2011.11.17. 15:48
Hozzászólások: 1904
Megköszönt másnak: 17 alkalommal
Megköszönték neki: 54 alkalommal
Üdv.
Azt a plugint keresem, mely annyit tesz hogy nem a rendes pinget mutatja, hanem mindenkinek 5-ös vagy 6-os pinget mutat.
Én most nem a Fake Pinger-re gondolok,
Köszöntem.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Ping
HozzászólásElküldve: 2014.09.09. 18:29 
Offline
Fanatikus
Avatar

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


pocok5 írta:
Üdv.
Azt a plugint keresem, mely annyit tesz hogy nem a rendes pinget mutatja, hanem mindenkinek 5-ös vagy 6-os pinget mutat.
Én most nem a Fake Pinger-re gondolok,
Köszöntem.


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

Csatlakozott: 2011.11.17. 15:48
Hozzászólások: 1904
Megköszönt másnak: 17 alkalommal
Megköszönték neki: 54 alkalommal
Deee ez nemaz ,
Nemtudom mi volt a neve :(


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Ping
HozzászólásElküldve: 2014.10.31. 15:46 
Offline
Nagyúr

Csatlakozott: 2014.05.10. 16:41
Hozzászólások: 721
Megköszönt másnak: 43 alkalommal
Megköszönték neki: 64 alkalommal
AMX BOOSTER


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Ping
HozzászólásElküldve: 2014.10.31. 15:58 
Offline
Tud valamit
Avatar

Csatlakozott: 2014.10.28. 14:08
Hozzászólások: 120
Megköszönték neki: 2 alkalommal
tessék pockos

SMA Forráskód: [ Mindet kijelol ]
  1. #include < amxmodx >
  2. #include < fakemeta >
  3.  
  4. new g_iCvarPing, g_iCvarFlux;
  5. new g_iPing, g_iFlux;
  6. new g_iMaxPlayers;
  7. new g_iOffset[ 33 ][ 2 ]
  8. new g_iArgumentPing[ 33 ][ 3 ];
  9. new g_iPingOverride[ 33 ] = { -1, ... };
  10.  
  11. public plugin_init( )
  12. {
  13. register_plugin( "Ping Faker", "1.0", "ASD" );
  14. register_forward( FM_UpdateClientData, "fw_UpdateClientData" );
  15.  
  16. g_iCvarPing = register_cvar( "pingfake_ping", "10", FCVAR_SERVER );
  17. g_iCvarFlux = register_cvar( "pingfake_flux", "4", FCVAR_SERVER );
  18.  
  19. g_iMaxPlayers = get_maxplayers( );
  20. }
  21.  
  22. public plugin_cfg( )
  23. set_task( 0.5, "ReadCommandVars", 3426422 );
  24.  
  25. public ReadCommandVars( )
  26. {
  27. g_iPing = clamp( get_pcvar_num( g_iCvarPing ), 0, 4095 );
  28. g_iFlux = clamp( get_pcvar_num( g_iCvarFlux ), 0, 4095 );
  29.  
  30. set_task( 2.0, "calculate_arguments", 4235621, _, _, "b" );
  31. }
  32.  
  33. public client_disconnect( id )
  34. g_iPingOverride[ id ] = -1;
  35.  
  36. public fw_UpdateClientData( id )
  37. {
  38. if( !(pev( id, pev_button ) & IN_SCORE ) && !( pev( id, pev_oldbuttons ) & IN_SCORE ) )
  39. return;
  40.  
  41. static player, sending;
  42. sending = 0;
  43.  
  44. for( player = 1; player <= g_iMaxPlayers; player++ )
  45. {
  46. if( !is_user_connected( player ) )
  47. continue;
  48.  
  49. switch( sending )
  50. {
  51. case 0:
  52. {
  53. message_begin( MSG_ONE_UNRELIABLE, SVC_PINGS, _, id );
  54. write_byte( ( g_iOffset[ player ][ 0 ] * 64 ) + ( 1 + 2 * ( player - 1 ) ) );
  55. write_short( g_iArgumentPing[ player ][ 0 ] );
  56. sending++;
  57. }
  58.  
  59. case 1:
  60. {
  61. write_byte( ( g_iOffset[ player ][ 1 ] * 128 ) + ( 2 + 4 * ( player - 1 ) ) );
  62. write_short( g_iArgumentPing[ player ][ 1 ] );
  63. sending++;
  64. }
  65.  
  66. case 2:
  67. {
  68. write_byte( ( 4 + 8 * ( player - 1 ) ) );
  69. write_short( g_iArgumentPing[ player ][ 2 ] );
  70. write_byte( 0 );
  71. message_end( );
  72. sending = 0;
  73. }
  74. }
  75. }
  76.  
  77. if (sending)
  78. {
  79. write_byte( 0 );
  80. message_end( );
  81. }
  82. }
  83.  
  84. public calculate_arguments( )
  85. {
  86. static player, ping;
  87.  
  88. for( player = 1; player <= g_iMaxPlayers; player++ )
  89. {
  90. if( g_iPingOverride[ player ] < 0 )
  91. ping = clamp( g_iPing + random_num( -g_iFlux, g_iFlux ), 0, 4095 );
  92.  
  93. else
  94. ping = g_iPingOverride[ player ];
  95.  
  96. for( g_iOffset[ player ][ 0 ] = 0; g_iOffset[ player ][ 0 ] < 4; g_iOffset[ player ][ 0 ]++ )
  97. {
  98. if( ( ping - g_iOffset[ player ][ 0 ] ) % 4 == 0 )
  99. {
  100. g_iArgumentPing[ player ][ 0 ] = ( ping - g_iOffset[ player ][ 0 ] ) / 4;
  101. break;
  102. }
  103. }
  104.  
  105. for (g_iOffset[player][1] = 0; g_iOffset[player][1] < 2; g_iOffset[player][1]++)
  106. {
  107. if( ( ping - g_iOffset[ player ][ 1 ] ) % 2 == 0 )
  108. {
  109. g_iArgumentPing[ player ][ 1 ] = ( ping - g_iOffset[ player ][ 1 ] ) / 2;
  110. break;
  111. }
  112. }
  113.  
  114. g_iArgumentPing[ player ][ 2 ] = ping;
  115. }
  116. }
  117.  

_________________
új accom---> raziq.

ezt a "babapiskóta.~" néven lévő hülyeséget töröljétek kérlek.


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

Csatlakozott: 2011.11.17. 15:48
Hozzászólások: 1904
Megköszönt másnak: 17 alkalommal
Megköszönték neki: 54 alkalommal
Már felesleges :D De köszönöm :D


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Ping
HozzászólásElküldve: 2014.10.31. 16:00 
Offline
Tud valamit
Avatar

Csatlakozott: 2014.10.28. 14:08
Hozzászólások: 120
Megköszönték neki: 2 alkalommal
pocok5 írta:
Már felesleges :D De köszönöm :D

akko mindegy de azért jár a keksz nem?:D

_________________
új accom---> raziq.

ezt a "babapiskóta.~" néven lévő hülyeséget töröljétek kérlek.


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  [ 7 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 51 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