hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2020.07.10. 05:57



Jelenlévő felhasználók

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

A legtöbb felhasználó (652 fő) 2015.05.25. 22:38-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: Rate manager
HozzászólásElküldve: 2014.07.11. 07:40 
Offline
Nagyúr
Avatar

Csatlakozott: 2012.09.23. 09:50
Hozzászólások: 569
Megköszönt másnak: 76 alkalommal
Megköszönték neki: 37 alkalommal
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmod>
  2.  
  3. new origupdr[33], origrate[33], excl[33]
  4. #define MAX_IP 32
  5. new ignip[MAX_IP][32], ippos=0
  6. #define MAX_WONID 128
  7. new ignwonid[MAX_WONID], wonidpos=0
  8.  
  9. public check_rr() {
  10. new maxupdr=get_cvar_num("rm_maxupdr")
  11. new minupdr=get_cvar_num("rm_minupdr")
  12. new maxrate=get_cvar_num("rm_maxrate")
  13. new minrate=get_cvar_num("rm_minrate")
  14. new announce=get_cvar_num("rm_announce")
  15. new players[32], np, i, playername[32]
  16. new clupdr[8], clrt[16], msg[256]
  17. new tmpupdr, tmprate, cmdexe[32]
  18. get_players(players, np, "ac")
  19. for(i=0; i<np; i++)
  20. if ((players[i]!=0)&&(!is_user_hltv(players[i]))) {
  21. get_user_ping(players[i], tmpupdr, tmprate)
  22. if ((tmpupdr>get_cvar_num("rm_localping"))&&(excl[players[i]]==0)) {
  23. get_user_info(players[i], "cl_updaterate", clupdr, 7)
  24. get_user_info(players[i], "rate", clrt, 15)
  25. tmpupdr=str_to_num(clupdr)
  26. tmprate=str_to_num(clrt)
  27. if (announce)
  28. get_user_name(players[i],playername,31)
  29. if (tmpupdr>maxupdr) {
  30. origupdr[players[i]]=maxupdr
  31. format(cmdexe, 31, "cl_updaterate %i", maxupdr)
  32. client_cmd(players[i], cmdexe)
  33. if (announce) {
  34. format(msg, 255, "* [<<eb@>>] %s set 'cl_updaterate' to '%i' (max '%i') - blocked by plugin !", playername, tmpupdr, maxupdr)
  35. client_print(0, print_chat, msg)
  36. }
  37. }
  38. if (tmpupdr<minupdr) {
  39. origupdr[players[i]]=minupdr
  40. format(cmdexe, 31, "cl_updaterate %i", minupdr)
  41. client_cmd(players[i], cmdexe)
  42. if (announce) {
  43. format(msg, 255, "* [<<eb@>>] %s set 'cl_updaterate' to '%i' (min '%i') - blocked by plugin !", playername, tmpupdr, minupdr)
  44. client_print(0, print_chat, msg)
  45. }
  46. }
  47. if (tmprate>maxrate) {
  48. origrate[players[i]]=maxrate
  49. format(cmdexe, 31, "rate %i", maxrate)
  50. client_cmd(players[i], cmdexe)
  51. format(cmdexe, 31, "cl_rate %i", maxrate)
  52. client_cmd(players[i], cmdexe)
  53. if (announce) {
  54. format(msg, 255, "* [<<eb@>>] %s set 'rate' to '%i' (max '%i') - blocked by plugin !", playername, tmprate, maxrate)
  55. client_print(0, print_chat, msg)
  56. }
  57. }
  58. if (tmprate<minrate) {
  59. origrate[players[i]]=minrate
  60. format(cmdexe, 31, "rate %i", minrate)
  61. client_cmd(players[i], cmdexe)
  62. format(cmdexe, 31, "cl_rate %i", minrate)
  63. client_cmd(players[i], cmdexe)
  64. if (announce) {
  65. format(msg, 255, "* [AMX_RM] %s set 'rate' to '%i' (min '%i') - blocked by plugin !", playername, tmprate, minrate)
  66. client_print(0, print_chat, msg)
  67. }
  68. }
  69. }
  70. }
  71. new Float:freq=get_cvar_float("rm_delay")
  72. if (freq > 0.0) set_task(freq, "check_rr")
  73. return PLUGIN_CONTINUE
  74. }
  75.  
  76. public alive_again(id) {
  77. if ((is_user_bot(id))||(is_user_hltv(id)))
  78. return PLUGIN_CONTINUE
  79. if (excl[id]==1)
  80. return PLUGIN_CONTINUE
  81. new Float:ratio=get_cvar_float("rm_deadratio")
  82. if (ratio==1.0)
  83. return PLUGIN_CONTINUE
  84. new ping, loss
  85. get_user_ping(id, ping, loss)
  86. if (ping>get_cvar_num("rm_localping")) {
  87. new cmdexe[32]
  88. format(cmdexe, 31, "cl_updaterate %i", origupdr[id])
  89. client_cmd(id, cmdexe)
  90. format(cmdexe, 31, "rate %i", origrate[id])
  91. client_cmd(id, cmdexe)
  92. format(cmdexe, 31, "cl_rate %i", origrate[id])
  93. client_cmd(id, cmdexe)
  94. if (get_cvar_num("rm_announce")) {
  95. new msg[256]
  96. format(msg, 255, "* [AMX_RM] Your net settings have been restored : 'cl_updaterate' = '%i', 'rate' = '%i'", origupdr[id], origrate[id])
  97. client_print(id, print_chat, msg)
  98. }
  99. }
  100. return PLUGIN_CONTINUE
  101. }
  102.  
  103. public dead_now() {
  104. new victim=read_data(2)
  105. if ((is_user_bot(victim))||(is_user_hltv(victim)))
  106. return PLUGIN_CONTINUE
  107. if (excl[victim]==1)
  108. return PLUGIN_CONTINUE
  109. new Float:ratio=get_cvar_float("rm_deadratio")
  110. if (ratio==1.0)
  111. return PLUGIN_CONTINUE
  112. new tmpupdr, tmprate
  113. get_user_ping(victim, tmpupdr, tmprate)
  114. if (tmpupdr>get_cvar_num("rm_localping")) {
  115. new cmdexe[32]
  116. tmpupdr=floatround(float(origupdr[victim])*ratio)
  117. tmprate=floatround(float(origrate[victim])*ratio)
  118. format(cmdexe, 31, "cl_updaterate %i", tmpupdr)
  119. client_cmd(victim, cmdexe)
  120. format(cmdexe, 31, "rate %i", tmprate)
  121. client_cmd(victim, cmdexe)
  122. format(cmdexe, 31, "cl_rate %i", tmprate)
  123. client_cmd(victim, cmdexe)
  124. if (get_cvar_num("rm_announce")) {
  125. new msg[256]
  126. format(msg, 255, "* [AMX_RM] Your net settings have been lowered : 'cl_updaterate' = '%i', 'rate' = '%i'", tmpupdr, tmprate)
  127. client_print(victim, print_chat, msg)
  128. }
  129. }
  130. return PLUGIN_CONTINUE
  131. }
  132.  
  133. public ignore_ip(id) {
  134. new argc=read_argc()
  135. if (argc<2) {
  136. console_print(id, "Usage: rm_ignoreip <IP> [IP] [IP] [IP] ...")
  137. return PLUGIN_CONTINUE
  138. }
  139. for(new i=1; i<argc; i++)
  140. if (ippos<MAX_IP) {
  141. read_argv(i, ignip[ippos], 31)
  142. ippos++
  143. }
  144. else {
  145. console_print(id, "* [AMX_RM] Too many IP addresses added to the ignore IP list")
  146. return PLUGIN_CONTINUE
  147. }
  148. return PLUGIN_CONTINUE
  149. }
  150.  
  151. public ignore_wonid(id) {
  152. new argc=read_argc()
  153. if (argc<2) {
  154. console_print(id, "Usage: rm_ignorewonid <WonID> [WonID] [WonID] [WonID] ...")
  155. return PLUGIN_CONTINUE
  156. }
  157. new tmp[32]
  158. for(new i=1; i<argc; i++)
  159. if (wonidpos<MAX_WONID) {
  160. read_argv(i, tmp, 31)
  161. ignwonid[wonidpos]=strtonum(tmp)
  162. wonidpos++
  163. }
  164. else {
  165. console_print(id, "* [AMX_RM] Too many WonIDs added to the ignore WonID list")
  166. return PLUGIN_CONTINUE
  167. }
  168. return PLUGIN_CONTINUE
  169. }
  170.  
  171. public client_connect(id) {
  172. if ((is_user_bot(id))||(is_user_hltv(id)))
  173. return PLUGIN_CONTINUE
  174. new clupdr[8], clrt[16]
  175. get_user_info(id, "cl_updaterate", clupdr, 7)
  176. get_user_info(id, "rate", clrt, 15)
  177. origupdr[id]=str_to_num(clupdr)
  178. origrate[id]=str_to_num(clrt)
  179. excl[id]=0
  180. new i
  181. if (ippos>0) {
  182. new userip[32]
  183. get_user_ip(id, userip, 31)
  184. copyc(userip, 31, userip, ':')
  185. new len
  186. for(i=0; i<ippos; i++) {
  187. len=containi(ignip[i],".x")
  188. if (len>-1) {
  189. if (equal(userip, ignip[i], len)) {
  190. excl[id]=1
  191. break
  192. }
  193. }
  194. else if (equal(userip, ignip[i])) {
  195. excl[id]=1
  196. break
  197. }
  198. }
  199. }
  200. if ((wonidpos>0)&&(excl[id]==0)) {
  201. new wonid=0
  202. wonid=get_user_wonid(id)
  203. if (wonid>0)
  204. for(i=0; i<wonidpos; i++)
  205. if (wonid==ignwonid[i]) {
  206. excl[id]=1
  207. break
  208. }
  209. }
  210. if (get_cvar_num("rm_hello")==0)
  211. return PLUGIN_CONTINUE
  212. new plgver[16]
  213. get_cvar_string("rate_manager", plgver, 15)
  214. client_cmd(id, "echo ======================================================================")
  215. client_cmd(id, "echo ^"* AMX Rate Manager v%s *^"", plgver)
  216. new Float:freq=get_cvar_float("rm_delay")
  217. if (freq>0.0) {
  218. new maxupdr=get_cvar_num("rm_maxupdr")
  219. new minupdr=get_cvar_num("rm_minupdr")
  220. new maxrate=get_cvar_num("rm_maxrate")
  221. new minrate=get_cvar_num("rm_minrate")
  222. client_cmd(id, "echo ^" - allowed 'cl_updaterate' range : '%i' - '%i', you have '%i'^"", minupdr, maxupdr, origupdr[id])
  223. client_cmd(id, "echo ^" - allowed 'rate' range : '%i' - '%i', you have '%i'^"", minrate, maxrate, origrate[id])
  224. }
  225. new Float:ratio=get_cvar_float("rm_deadratio")
  226. if (ratio<1.0)
  227. client_cmd(id, "echo ^" - dead players use %2.0f%%%% of their normal net settings^"", (ratio*100.0))
  228. client_cmd(id, "echo ======================================================================")
  229. return PLUGIN_CONTINUE
  230. }
  231.  
  232. public client_disconnect(id) {
  233. if ((is_user_bot(id))||(is_user_hltv(id)))
  234. return PLUGIN_CONTINUE
  235. origupdr[id]=get_cvar_num("rm_minupdr")
  236. origrate[id]=get_cvar_num("rm_minrate")
  237. excl[id]=0
  238. return PLUGIN_CONTINUE
  239. }
  240.  
  241. public set_servercvars() {
  242. new tmp[16]
  243. get_cvar_string("rm_exclmaxupdr", tmp, 15)
  244. set_cvar_string("sv_maxupdaterate", tmp)
  245. get_cvar_string("rm_exclminupdr", tmp, 15)
  246. set_cvar_string("sv_minupdaterate", tmp)
  247. get_cvar_string("rm_exclmaxrate", tmp, 15)
  248. set_cvar_string("sv_maxrate", tmp)
  249. get_cvar_string("rm_exclminrate", tmp, 15)
  250. set_cvar_string("sv_minrate", tmp)
  251. if (get_cvar_num("rm_announce"))
  252. console_print(0, "* [AMX_RM] Bandwith limits for excluded players have been set")
  253. return PLUGIN_CONTINUE
  254. }
  255.  
  256. public plugin_init() {
  257. register_plugin("Rate Manager", "1.2", "Marach")
  258. register_cvar("rate_manager", "1.2", FCVAR_SERVER)
  259. register_event("ResetHUD", "alive_again", "be","1=1")
  260. register_event("DeathMsg","dead_now","a")
  261. register_cvar("rm_maxupdr", "101")
  262. register_cvar("rm_minupdr", "101")
  263. register_cvar("rm_maxrate", "25000")
  264. register_cvar("rm_minrate", "25000")
  265. register_cvar("rm_exclmaxupdr", "60")
  266. register_cvar("rm_exclminupdr", "24")
  267. register_cvar("rm_exclmaxrate", "15360")
  268. register_cvar("rm_exclminrate", "6144")
  269. register_cvar("rm_delay", "20")
  270. register_cvar("rm_deadratio", "0.4")
  271. register_cvar("rm_localping", "0")
  272. register_cvar("rm_announce", "1")
  273. register_cvar("rm_hello", "1")
  274. register_srvcmd("rm_ignoreip", "ignore_ip")
  275. register_srvcmd("rm_ignorewonid", "ignore_wonid")
  276. new Float:freq=get_cvar_float("rm_delay")
  277. if (freq>0.0) {
  278. set_task(freq, "check_rr")
  279. set_task(5.0, "set_servercvars")
  280. }
  281. return PLUGIN_CONTINUE
  282. }
  283. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  284. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par }
  285. */
  286.  


Valaki javítaná?
Kód:
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2013 ITB CompuPhase, AMX Mod X Team

ratemanager.sma(202) : error 017: undefined symbol "get_user_wonid"

1 Error.
Could not locate output file ratemanager.amx (compile failed).

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Rate manager
HozzászólásElküldve: 2014.07.11. 14:57 
Offline
Developer
Avatar

Csatlakozott: 2011.06.01. 21:11
Hozzászólások: 7895
Megköszönt másnak: 292 alkalommal
Megköszönték neki: 520 alkalommal
Csinálj egy get_user_wonid funkciót, s hogy mit akarsz elérni vele, azt nemtudom, te csináltad, neked kell tudni, ha meg nem te, akkor meg ne törölj olyat, amit nem tudod hogy mi!


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Rate manager
HozzászólásElküldve: 2014.07.11. 15:23 
Offline
Felfüggesztve
Avatar

Csatlakozott: 2013.06.09. 18:47
Hozzászólások: 2008
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 220 alkalommal
Anno így írták meg a plugint. Nem értem, az eredeti pluginnál is ezt az errort dobta.

kiki írta:
Csinálj egy get_user_wonid funkciót, s hogy mit akarsz elérni vele, azt nemtudom, te csináltad, neked kell tudni, ha meg nem te, akkor meg ne törölj olyat, amit nem tudod hogy mi!

_________________
Ha elnyerte valamelyik témában a hozzászólásom a tetszésedet melyet olvastál, akkor egy egyszerű gombnyomással kifejezheted, hogy tetszett.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Rate manager
HozzászólásElküldve: 2014.07.11. 15:38 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2011.09.18. 13:01
Hozzászólások: 4108
Megköszönt másnak: 53 alkalommal
Megköszönték neki: 430 alkalommal
Mivel ez amxmod es nem amxmodx

_________________
A rózsa vörös az ibolya kék az anál vonaton nincsen fék.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Rate manager
HozzászólásElküldve: 2014.07.11. 15:41 
Offline
Felfüggesztve
Avatar

Csatlakozott: 2013.06.09. 18:47
Hozzászólások: 2008
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 220 alkalommal
Attól függetlenül nem kéne errort dobnia.

amxmodx incel:

/tmp/textXHjauO.sma(161) : error 017: undefined symbol "strtonum"
/tmp/textXHjauO.sma(202) : error 017: undefined symbol "get_user_wonid"


DeteCT0R írta:
Mivel ez amxmod es nem amxmodx

_________________
Ha elnyerte valamelyik témában a hozzászólásom a tetszésedet melyet olvastál, akkor egy egyszerű gombnyomással kifejezheted, hogy tetszett.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Rate manager
HozzászólásElküldve: 2014.07.11. 15:50 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2011.09.18. 13:01
Hozzászólások: 4108
Megköszönt másnak: 53 alkalommal
Megköszönték neki: 430 alkalommal
amxxbe nincs ilyen funkcio... (get_user_wonid)

_________________
A rózsa vörös az ibolya kék az anál vonaton nincsen fék.

Ők köszönték meg DeteCT0R nek ezt a hozzászólást: kiki (2014.07.11. 19:46)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Rate manager
HozzászólásElküldve: 2014.07.11. 19:47 
Offline
Developer
Avatar

Csatlakozott: 2011.06.01. 21:11
Hozzászólások: 7895
Megköszönt másnak: 292 alkalommal
Megköszönték neki: 520 alkalommal
Jé, tényleg, szép észrevétel detector. Akkor a pluginnal semmi gond nincs, csak ne amxxbe próbált futtatni :d


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 28 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:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség és a hlmod.hu csapata
Portal: Kiss Portal Extension © Michael O'Toole