hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.04.27. 13:54



Jelenlévő felhasználók

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

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

Regisztrált felhasználók: siska15 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  [ 17 hozzászólás ]  Oldal 1 2 Következő
Szerző Üzenet
HozzászólásElküldve: 2013.12.01. 20:08 
Offline
Fanatikus

Csatlakozott: 2013.11.17. 10:55
Hozzászólások: 160
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 3 alkalommal
Sziasztok!
Kellene nekem egy kitakaró plugin pl ha valaki azt irja:
anyad
akkor ez lesz:
*****
Nos, a csúnya szavak lehetnek, pl.
-b.a.zdmeg
-b.a.zd
-g.e.ci
-f.a.sz
Csak ezek ne:
aim
wh
speed
wallhack
walhack
anyad
apad
És ezeket tudjam bővíteni könnyedén!



Nos még kellene az a plugin hogyha valaki beírja hogy:
/jelent
/jelentes

Akkor előjön egy menü a játékosok nevével pl.

[Soldiers] CsaloBejelentese //menüneve

1. player1 //játékosneve
2. player2 //játékosneve
3. player3 //játékosneve
stb..

Akkor ha rámegy, megkell adni neki egy indokot amit ő ir meg. Pl.
Nagyon whzik
amingyanu pls nezd meg!

És csak az adminnak irja ki így:
[Soldiers] player1 bejelentette, hogy player2 csal! indok: Nagyon whzik
És persze a player1 és aplayer2 az a név legyen.
ha lehetséges, akkor a soldiers felirat, és a nevek és az indoka is zöld legyen!




Előre is köszi szépen!

_________________
Soldiers.~
37.221.209.96:27228


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2013.12.01. 20:46 
Offline
Jómunkásember
Avatar

Csatlakozott: 2013.10.27. 23:13
Hozzászólások: 412
Megköszönt másnak: 21 alkalommal
Megköszönték neki: 68 alkalommal
Találtam elég baba pluginokat neked.

ez egy kicsit részletesebb mert itt írhatnak /norecoil /speed vagy /aim /wh és ak írja okot. :

https://forums.alliedmods.net/showthread.php?t=142122

itt egy csúnya szó csillagozó*

edit (txt-be kell írni csúnya szavakat, és azt ki csillagóza )

De van itt egy olyan ami blokkolja a szavakat amit te írsz txt-be BÁRMIT!

https://forums.alliedmods.net/showthread.php?t=84603

_________________
Kép


A hozzászólást 1 alkalommal szerkesztették, utoljára NiGGeR-BorZ 2013.12.01. 21:12-kor.

Ők köszönték meg NiGGeR-BorZ nek ezt a hozzászólást: Papalo'. (2013.12.01. 21:06)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2013.12.01. 21:06 
Offline
Fanatikus

Csatlakozott: 2013.11.17. 10:55
Hozzászólások: 160
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 3 alkalommal
Okés, köszi!
De mondjuk nem erre a /wh | /aim | /speed -re gondoltam,.
Hanem a
/jelent
/jelentes

és ott egyéb okokat adhat meg.
És úgy ahogy le írtam. :)

_________________
Soldiers.~
37.221.209.96:27228


A hozzászólást 2 alkalommal szerkesztették, utoljára Papalo'. 2013.12.01. 21:10-kor.

Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2013.12.01. 21:09 
Offline
Jómunkásember
Avatar

Csatlakozott: 2013.10.27. 23:13
Hozzászólások: 412
Megköszönt másnak: 21 alkalommal
Megköszönték neki: 68 alkalommal
http://forums.alliedmods.net/showthread.php?t=132448

edit :nem is kell átírnom mert állítólag cvarból áttudod!!

_________________
Kép


A hozzászólást 7 alkalommal szerkesztették, utoljára NiGGeR-BorZ 2013.12.01. 21:26-kor.

Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2013.12.01. 21:10 
Offline
Fanatikus

Csatlakozott: 2013.11.17. 10:55
Hozzászólások: 160
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 3 alkalommal
Okés.
Amúgy https://forums.alliedmods.net/showthread.php?t=57537
itt csak smx-et lehet letölteni, az jó az amxx helyett? vagy totalcomanderbe irjam át .ammx-re vagy hogy?

_________________
Soldiers.~
37.221.209.96:27228


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2013.12.01. 21:13 
Offline
Jómunkásember
Avatar

Csatlakozott: 2013.10.27. 23:13
Hozzászólások: 412
Megköszönt másnak: 21 alkalommal
Megköszönték neki: 68 alkalommal
Nemnemnem bocsiii áhh.
Kevertem egészet.


Edit: Na Ezt használd ez már nem smx , előbb elnéztem :)
swearwords.ini-be ird a csúnya szavakat.


http://forums.alliedmods.net/showthread.php?t=1404

_________________
Kép


A hozzászólást 3 alkalommal szerkesztették, utoljára NiGGeR-BorZ 2013.12.01. 21:27-kor.

Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2013.12.01. 22:05 
Offline
Fanatikus

Csatlakozott: 2013.11.17. 10:55
Hozzászólások: 160
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 3 alkalommal
Beleirtam, minden, be tettem, és ugyanúgy ki írja! :/

_________________
Soldiers.~
37.221.209.96:27228


A hozzászólást 1 alkalommal szerkesztették, utoljára crazy` 2013.12.02. 05:20-kor.
duplaposztot kerüld


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2013.12.01. 22:10 
Offline
Jómunkásember
Avatar

Csatlakozott: 2013.10.27. 23:13
Hozzászólások: 412
Megköszönt másnak: 21 alkalommal
Megköszönték neki: 68 alkalommal
csináltál configsba swear mappát és abba az init?
Mert nekem működik.

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2013.12.01. 22:25 
Offline
Fanatikus

Csatlakozott: 2013.11.17. 10:55
Hozzászólások: 160
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 3 alkalommal
Igen csináltam!
De még a /jelent plugin is kellene!
3 szerón is láttam már olyat!

_________________
Soldiers.~
37.221.209.96:27228


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2013.12.02. 15:18 
Offline
Félisten
Avatar

Csatlakozott: 2013.03.12. 10:03
Hozzászólások: 859
Megköszönt másnak: 37 alkalommal
Megköszönték neki: 44 alkalommal
parancsolj..
/jelentes kihoza a menüt..
Szívesen
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <sockets>
  4.  
  5. /* Dont change */
  6. #define RECVBUF_LEN 4096
  7. #define PENDBUF_LEN 1000
  8.  
  9. #define ANTIFLOOD_TIMERID 6998
  10. #define IRC_CHECKSOCKID 6996
  11. #define IRC_SENDNEXTID 6997
  12.  
  13. #define IRC_CHECKSOCKTIMER 0.3
  14.  
  15. #define VERSION "1.52"
  16. //menu
  17. #define MENU_SIZE 256
  18. #define MENU_PLAYERS 7
  19. ///////////////////////
  20. #define MAXIMUM 512
  21.  
  22.  
  23. new irc_user[] = "nirc 0 * :reportcheater"; /* IRC USER */
  24.  
  25.  
  26. /**************************************************************/
  27. /**************************************************************/
  28. /* Settings below should only be changed if you have problems */
  29. /**************************************************************/
  30. /**************************************************************/
  31.  
  32. /* Debug settings - Uncomment to enable */
  33. /* debugging is only useful if the bot does not connect. */
  34. //#define IRC_DEBUG /* Show warning's and errors. Useful for debugging connection problems */
  35. //#define IRC_DEBUG2 /*Show all sent/recv'd data. This is _ALOT_. But might help debugging */
  36.  
  37.  
  38. /* Various tweaks relating to connecting and antiflood */
  39. /******* If it's not broken, don't change it! **********/
  40.  
  41. /* Experiment if the bot does not connect */
  42. #define IRC_CONNWAIT 9000000
  43. #define IRC_CONNDELAY 5.0
  44. #define IRC_CONNSTAGE1TIMER 8.0
  45. #define IRC_CONNSTAGE2TIMER 5.0
  46. #define IRC_PERFORMTIMER 5.0
  47.  
  48. /* Antiflood */
  49. #define IRC_SENDNEXTTIMER 0.8
  50. #define ANTIFLOOD_SECONDS 5
  51. #define ANTIFLOOD_BYTES 1500
  52. #define ANTIFLOOD_LINES 4
  53.  
  54. /*Advertise*/
  55. #define LISTEN_FREQ 10.0
  56.  
  57.  
  58. /* Use (maxplayers*3) pendbufs (Min 20,Max 70)*/
  59. #define PENDBUF_COUNT 30
  60.  
  61. ////////////////////
  62. new antiflood_lines,antiflood_bytes;
  63. new irc_sock, irc_error;
  64. new irc_recv[RECVBUF_LEN+1];
  65. new irc_recvold[RECVBUF_LEN+1];
  66. new irc_pend[PENDBUF_COUNT][PENDBUF_LEN+1];
  67.  
  68.  
  69. new irc_nextpend;
  70. new irc_nextsend;
  71. new irc_connected;
  72. new bool:nirc_morelines;
  73.  
  74. new irc_report_type1,irc_report_type2
  75.  
  76. new g_iMenuPosition
  77. new g_iMenuPlayers[32]
  78. new g_iMenuOption[32]
  79. new g_iMenuSettings[32]
  80.  
  81. new irc_server
  82. new irc_port
  83. new irc_mynick
  84. new irc_mychan
  85. new irc_mypass
  86. new irc_identify
  87. new irc_ident
  88. new irc_adv
  89. new irc_adv_freq
  90. new activator
  91. new g_iMaxPlayers
  92.  
  93. new chan[32]
  94.  
  95. new listened,listening
  96. new banfile[16]
  97. new configfolder[256]
  98. new output[MAXIMUM][32]
  99. new k = 0
  100. new path [64]
  101.  
  102. public plugin_init()
  103. {
  104. register_plugin("Report cheater",VERSION,"spHoTt!");
  105. register_cvar("Report_Cheater", "1.52",FCVAR_SERVER)
  106.  
  107. register_dictionary("reportcheater.txt")
  108. register_dictionary("common.txt")
  109.  
  110. register_clcmd("say_team", "handle_say")
  111. register_clcmd("say", "handle_say")
  112. register_clcmd ("amx_irc_unban", "unbancmd", ADMIN_KICK, "Unban players from reportcheater service")
  113.  
  114. irc_server = register_cvar("irc_server","")
  115. irc_mynick = register_cvar("irc_mynick","")
  116. irc_port = register_cvar("irc_port","")
  117. irc_mychan = register_cvar("irc_mychan","")
  118. irc_mypass = register_cvar("irc_mypass","")
  119.  
  120. irc_identify = register_cvar("irc_identify","0")
  121. irc_ident = register_cvar("irc_ident","",FCVAR_PROTECTED&FCVAR_UNLOGGED)
  122.  
  123. activator = register_cvar("irc_from_hlds_say_activator","/jelentes")
  124.  
  125. irc_report_type1 = register_cvar("irc_report_type1","Wh")
  126. irc_report_type2 = register_cvar("irc_report_type2","Aim/speedhack")
  127. register_menucmd(register_menuid("\r[Soldiers] CsaloBejelentese:"),1023,"actionVoteMenu")
  128.  
  129. register_cvar("irc_clientport","0",FCVAR_PROTECTED&FCVAR_UNLOGGED)
  130. irc_adv_freq = register_cvar ( "irc_adv_freq", "300.0" )
  131. irc_adv = register_cvar("irc_adv","1")
  132. if(get_pcvar_num(irc_adv))
  133. set_task ( Float:30.0, "Advertise", 0 )
  134.  
  135. remove_task(IRC_CHECKSOCKID);
  136. remove_task(IRC_SENDNEXTID);
  137.  
  138. register_cvar("nirc_ircsock","0",FCVAR_PROTECTED&FCVAR_UNLOGGED);
  139.  
  140. irc_sock=get_cvar_num("nirc_ircsock");
  141.  
  142. get_pcvar_string(irc_mychan,chan,charsmax(chan))
  143.  
  144. listening = register_cvar("irc_listening","0")
  145. listened = register_cvar("irc_listened","0")
  146. register_cvar("irc_listened_msg","")
  147. if(get_pcvar_num(listening))
  148. set_task ( LISTEN_FREQ, "listen", 0 )
  149.  
  150. banfile="rcban.ini"
  151. get_configsdir (configfolder, charsmax(configfolder))
  152.  
  153. format (path, charsmax(path), "%s/%s", configfolder, banfile)
  154. if(!file_exists(path))
  155. {
  156. new writestr[32]
  157. format(writestr,charsmax(writestr),"ReportCheater banfile!!!")
  158. write_file(path,writestr)
  159. }
  160. loadbanlist(0)
  161. irc_nextpend=0;
  162. irc_nextsend=0;
  163. g_iMaxPlayers = get_maxplayers()
  164. if(irc_sock==0)
  165. {
  166. irc_connected=0;
  167. new i;
  168. irc_recvold[0]='^x00';
  169. irc_recv[0] ='^x00';
  170.  
  171. for(i=0;i<PENDBUF_COUNT;i++)
  172. {
  173. irc_pend[i][0]='^x00';
  174. }
  175. set_task(IRC_CONNDELAY,"irc_connect");
  176. }
  177. else
  178. {
  179. irc_connected=1;
  180. set_task(IRC_CHECKSOCKTIMER,"irc_checksock",IRC_CHECKSOCKID,"",0,"b");
  181. set_task(IRC_SENDNEXTTIMER,"irc_sendnext",IRC_SENDNEXTID,"",0,"b");
  182. set_task(float(ANTIFLOOD_SECONDS),"antiflood_timer",ANTIFLOOD_TIMERID,"",0,"b");
  183. }
  184. }
  185. public actionVoteMenu( id, key )
  186. {
  187. switch( key )
  188. {
  189. case 7:
  190. {
  191. ++g_iMenuOption[id]
  192. g_iMenuOption[id] %= 2
  193.  
  194. switch(g_iMenuOption[id]){
  195. case 0: g_iMenuSettings[id] = 0
  196. case 1: g_iMenuSettings[id] = 1
  197. }
  198. showVoteMenu( id, g_iMenuPosition )
  199. }
  200. case 8:
  201. {
  202. showVoteMenu( id, ++g_iMenuPosition )
  203. }
  204. case 9:
  205. {
  206. showVoteMenu( id, --g_iMenuPosition )
  207. }
  208. default:
  209. {
  210.  
  211. new id_cheater = g_iMenuPlayers[g_iMenuPosition * MENU_PLAYERS + key]
  212.  
  213. if(is_user_admin(id)){
  214. if ( g_iMenuSettings[id] ) {
  215. banid(id,id_cheater,"id")
  216. } else
  217. {
  218. unbanid(id,id_cheater,"id")
  219. }
  220. }
  221. else if(!is_user_bot(id_cheater))
  222. {
  223. new authid_cheater[32]
  224. new type[32]
  225. new authid_reporter[32]
  226. new name_cheater[32]
  227. new finalmessage[301], len
  228. new name_reporter[32]
  229. get_user_authid(id_cheater,authid_cheater,charsmax(authid_cheater))
  230. get_user_name(id_cheater,name_cheater,charsmax(name_cheater))
  231. get_user_authid(id,authid_reporter,charsmax(authid_reporter))
  232. get_user_name(id,name_reporter,charsmax(name_reporter))
  233. len = format(finalmessage,300,"PRIVMSG %s : (%s)",chan,authid_reporter)
  234. len += format(finalmessage[len],300-len,"%s",name_reporter)
  235. if(g_iMenuSettings[id]){
  236. get_pcvar_string(irc_report_type1,type,charsmax(type))
  237. }
  238. else
  239. {
  240. get_pcvar_string(irc_report_type2,type,charsmax(type))
  241. }
  242. len += format(finalmessage[len],300-len," %L^n",LANG_SERVER,"IRC_MSG",name_cheater,type,authid_cheater)
  243. format(irc_pend[irc_nextpend],PENDBUF_LEN,"%s",finalmessage)
  244. format(finalmessage,300,"%s %L^n",name_reporter,LANG_SERVER,"IRC_MSG",name_cheater,type,authid_cheater)
  245. irc_incrpend()
  246. sendadmins(finalmessage)
  247. client_print(id,print_chat,"[ReportCheater] %L",LANG_PLAYER,"IRC_REQ2")
  248. }
  249. }
  250. }
  251. return PLUGIN_HANDLED
  252. }
  253. public showVoteMenu( id, pos )
  254. {
  255. if( pos < 0 ) return
  256. new i, j
  257. new szMenuBody[MENU_SIZE]
  258. new iCurrKey = 0
  259. new szUserName[32]
  260. new iStart = pos * MENU_PLAYERS
  261. new iNum
  262. new type[32]
  263. new m_back[16]
  264. new m_exit[16]
  265. new m_more[16]
  266. format( m_back, charsmax(m_back),"%L",LANG_PLAYER,"BACK")
  267. format( m_exit, charsmax(m_exit),"%L",LANG_PLAYER,"EXIT")
  268. format( m_more, charsmax(m_more),"%L",LANG_PLAYER,"MORE")
  269. get_players( g_iMenuPlayers, iNum )
  270.  
  271. if( iStart >= iNum )
  272. iStart = pos = g_iMenuPosition = 0
  273.  
  274. new iLen = format( szMenuBody, MENU_SIZE-1, "\r[Soldiers] CsaloBejelentese:\R%d/%d^n\w^n", pos+1, (iNum / MENU_PLAYERS + ((iNum % MENU_PLAYERS) ? 1 : 0 )) )
  275. new iEnd = iStart + MENU_PLAYERS
  276. new iKeys = (1<<9|1<<7)
  277.  
  278. if( iEnd > iNum )
  279. iEnd = iNum
  280.  
  281. for( i = iStart; i < iEnd; i++ )
  282. {
  283. j = g_iMenuPlayers[i]
  284. get_user_name( j, szUserName, 32 )
  285.  
  286.  
  287. if(( is_user_bot(j) || is_user_admin(j) || id==j ) )
  288. {
  289. iCurrKey++
  290. iLen += format( szMenuBody[iLen], (MENU_SIZE-1-iLen), "\d%d. %s^n\w", iCurrKey, szUserName )
  291. }
  292. else
  293. {
  294. iKeys |= (1<<iCurrKey++)
  295. iLen += format( szMenuBody[iLen], (MENU_SIZE-1-iLen), "%d. %s^n", iCurrKey, szUserName )
  296. }
  297.  
  298. }
  299. if(is_user_admin(id)){
  300. if ( g_iMenuSettings[id] )
  301. iLen += format( szMenuBody[iLen], (MENU_SIZE-1-iLen), "^n8. BAN^n" )
  302. else
  303. iLen += format( szMenuBody[iLen], (MENU_SIZE-1-iLen), "^n8. UNBAN^n" )
  304.  
  305.  
  306. } else {
  307. if(g_iMenuSettings[id]){
  308. get_pcvar_string(irc_report_type1,type,charsmax(type))
  309. }
  310. else
  311. {
  312. get_pcvar_string(irc_report_type2,type,charsmax(type))
  313. }
  314. }
  315. if( iEnd != iNum )
  316. {
  317. format( szMenuBody[iLen], (MENU_SIZE-1-iLen), "^n9. %s...^n0. %s",m_more, pos ? m_back : m_exit )
  318. iKeys |= (1<<8)
  319. }
  320. else
  321. format( szMenuBody[iLen], (MENU_SIZE-1-iLen), "^n0. %s", pos ? m_back : m_exit )
  322. show_menu( id, iKeys, szMenuBody, -1 )
  323. return
  324. }
  325.  
  326. public handle_say(id)
  327. {
  328. if(irc_connected && !isuserbanned(id,"id"))
  329. {
  330. new msg[256]
  331. new authid[32]
  332. new activat[32]
  333. get_pcvar_string(activator,activat,charsmax(activat))
  334. g_iMenuPosition = 0
  335. read_args(msg,charsmax(msg))
  336. remove_quotes(msg)
  337. if(strlen(msg) <= 0)
  338. return PLUGIN_CONTINUE
  339. new name[32]
  340. get_user_name(id,name,charsmax(name))
  341. if(containi(msg,"/admin") != -1)
  342. {
  343. new finalmessage[301]
  344. replace(msg,charsmax(msg),"/admin","")
  345. get_user_authid(id,authid,charsmax(authid))
  346. format(irc_pend[irc_nextpend],PENDBUF_LEN,"PRIVMSG %s : %L: %s^n",chan,LANG_SERVER,"IRC_REQ",name, authid,msg)
  347. format(finalmessage,300,"%L: %s",LANG_SERVER,"IRC_REQ",name,authid,msg)
  348. irc_incrpend()
  349. sendadmins(finalmessage)
  350. client_print(id,print_chat,"[Soldiers CsaloBejelentese] %L",LANG_PLAYER,"IRC_REQ2")
  351. return PLUGIN_HANDLED
  352. }
  353. else
  354. {
  355. if(containi(msg,activat) == -1)
  356. return 0
  357. else
  358. {
  359. replace(msg,1024,activat,"")
  360. showVoteMenu( id, g_iMenuPosition = 0 )
  361. return PLUGIN_HANDLED
  362. }
  363. }
  364. }
  365. return PLUGIN_CONTINUE;
  366. }
  367.  
  368.  
  369. public irc_conn1()
  370. {
  371. #if defined IRC_DEBUG
  372. log_amx("[ReportCheater] irc_conn1() STAGE|SENDNICK")
  373. #endif
  374. new nick[32]
  375. get_pcvar_string(irc_mynick,nick,charsmax(nick))
  376. format(irc_pend[irc_nextpend],PENDBUF_LEN,"NICK %s^n",nick)
  377. irc_incrpend()
  378. set_task(IRC_CONNSTAGE2TIMER,"irc_conn2")
  379. }
  380.  
  381. public irc_conn2()
  382. {
  383. #if defined IRC_DEBUG
  384. log_amx("[ReportCheater] irc_conn2() STAGE|SENDUSER")
  385. #endif
  386. format(irc_pend[irc_nextpend],PENDBUF_LEN,"USER %s^n",irc_user)
  387. irc_incrpend()
  388. set_task(IRC_PERFORMTIMER,"irc_conn3")
  389. }
  390.  
  391. public irc_conn3()
  392. {
  393. #if defined IRC_DEBUG
  394. log_amx("[ReportCheater] irc_conn3() STAGE|JOINCHAN")
  395. #endif
  396. new pass[32]
  397. new ident[128]
  398. new nick[32]
  399. get_pcvar_string(irc_mynick,nick,charsmax(nick))
  400. get_pcvar_string(irc_mypass,pass,charsmax(pass))
  401. get_pcvar_string(irc_ident,ident,charsmax(ident))
  402. get_pcvar_string(irc_mychan,chan,charsmax(chan))
  403. if(get_pcvar_num(irc_identify)){
  404. format(irc_pend[irc_nextpend],PENDBUF_LEN,"%s^n",ident)
  405. irc_incrpend()
  406. format(irc_pend[irc_nextpend],PENDBUF_LEN,"MODE %s +x^n",nick)
  407. irc_incrpend();
  408. }
  409. format(irc_pend[irc_nextpend],PENDBUF_LEN,"JOIN %s %s^n",chan,pass)
  410. irc_incrpend();
  411. irc_connected=1
  412. }
  413.  
  414. /* Yes I am aware this is a bad\ugly way of doing this - but it does work, and doesent bring the server to its knees */
  415. public irc_connect()
  416. {
  417. #if defined DEBUG
  418. log_amx("[ReportCheater] connect() STAGE|CONNECTING");
  419. #endif
  420. new server[64]
  421. get_pcvar_string(irc_server,server,charsmax(server))
  422. irc_sock = socket_open(server, get_pcvar_num (irc_port),SOCKET_TCP,irc_error);
  423. for(new i=0;i<PENDBUF_COUNT;i++)
  424. {
  425. irc_pend[i][0]='^x00';
  426. }
  427.  
  428. if(irc_sock>0)
  429. {
  430. set_cvar_num("nirc_ircsock",irc_sock);
  431. set_task(IRC_CHECKSOCKTIMER,"irc_checksock",IRC_CHECKSOCKID,"",0,"b");
  432. set_task(IRC_SENDNEXTTIMER,"irc_sendnext",IRC_SENDNEXTID,"",0,"b");
  433. set_task(float(ANTIFLOOD_SECONDS),"antiflood_timer",ANTIFLOOD_TIMERID,"",0,"b");
  434. set_task(IRC_CONNSTAGE1TIMER,"irc_conn1");
  435. }
  436. else
  437. {
  438. #if defined IRC_DEBUG
  439. log_amx("[Soldiers] CsaloBejelentese] ERROR|socket_open (%s:%d)",server,get_pcvar_num (irc_port));
  440. #endif
  441. set_task(50.0,"plugin_init");
  442. //set_task(120.0,"irc_connect");
  443. }
  444. }
  445.  
  446. public irc_checksock()
  447. {
  448. if(nirc_morelines)
  449. {
  450. nirc_checkrecv();
  451. }
  452.  
  453. else if(socket_change(irc_sock,1))
  454. {
  455. new l=strlen(irc_recvold);
  456. socket_recv(irc_sock,irc_recvold[l],sizeof(irc_recvold)-2-l);
  457. nirc_checkrecv();
  458. }
  459. }
  460.  
  461. nirc_checkrecv()
  462. {
  463. new l=strlen(irc_recvold),i,k;
  464. for(i=0;i<l;i++)
  465. {
  466. if(irc_recvold[i]!='^n')
  467. {
  468. irc_recv[i]=irc_recvold[i];
  469. }
  470. else
  471. {
  472. (irc_recv[i-1]=='^r')?(irc_recv[i-1]='^x00'):(irc_recv[i]='^x00');
  473. i++;
  474. l=strlen(irc_recvold[i]);
  475. k=0;
  476. while((k<l)&&(i+k<RECVBUF_LEN-1))
  477. {
  478. irc_recvold[k] = irc_recvold[i+k];
  479. k++;
  480. }
  481. irc_recvold[k] = '^x00';
  482. nirc_morelines=false;
  483. if(irc_parse()==-1)
  484. {
  485. socket_close(irc_sock);
  486. remove_task(IRC_CHECKSOCKID);
  487. remove_task(IRC_SENDNEXTID);
  488. set_cvar_num("nirc_ircsock",0);
  489. set_task(60.0,"irc_connect");
  490. irc_connected=0;
  491. #if defined DEBUG
  492. log_amx("[Soldiers] CsaloBejelentese] ERROR... restart in 60 seconds...");
  493. #endif
  494. }
  495. for(i=0;i<k;i++)
  496. {
  497. if(irc_recvold[i]=='^n')
  498. {
  499. nirc_morelines=true;
  500. nirc_checkrecv();
  501. i=k;
  502. }
  503. }
  504. i=l;
  505. }
  506. }
  507. }
  508.  
  509. public antiflood_timer()
  510. {
  511. antiflood_bytes = 0;
  512. antiflood_lines = 0;
  513. }
  514.  
  515. public irc_sendnext()
  516. {
  517. if(irc_pend[irc_nextsend][0]!='^x00')
  518. {
  519. new len = strlen(irc_pend[irc_nextsend]);
  520. if(((len+antiflood_bytes)<ANTIFLOOD_BYTES)&&(antiflood_lines+1<ANTIFLOOD_LINES))
  521. {
  522. #if defined IRC_DEBUG2
  523. log_amx("[Soldiers] CsaloBejelentese] SEND -> %s",irc_pend[irc_nextsend]);
  524. #endif
  525. socket_send(irc_sock,irc_pend[irc_nextsend],strlen(irc_pend[irc_nextsend]));
  526. irc_pend[irc_nextsend][0]='^x00';
  527.  
  528. irc_nextsend++;
  529. if(irc_nextsend==PENDBUF_COUNT)
  530. {
  531. irc_nextsend = 0;
  532. }
  533. antiflood_bytes+=len;
  534. antiflood_lines++;
  535. }
  536. }
  537. }
  538.  
  539.  
  540. /* Yeah... I do things in strange ways... */
  541. irc_parse()
  542. {
  543. #if defined IRC_DEBUG2
  544. log_amx("[ReportCheater] RECV <- %s",irc_recv);
  545. #endif
  546.  
  547. new i=0//,r=0;
  548. new tmp[4];
  549. if(equali(irc_recv, "ERROR", 5))
  550. {
  551. return -1;
  552. }
  553. if(equali(irc_recv,"PING",4))
  554. {
  555. format(irc_pend[irc_nextpend],PENDBUF_LEN,"PO%s^n",irc_recv[2]);
  556. irc_incrpend();
  557. return 1;
  558. }
  559. while((i<strlen(irc_recv))&&(irc_recv[i]!=' '))i++;
  560. tmp[0]=irc_recv[i+1];
  561. tmp[1]=irc_recv[i+2];
  562. tmp[2]=irc_recv[i+3];
  563. tmp[3]='^x00';
  564. switch(str_to_num(tmp))
  565. {
  566. case 431,432,433:
  567. {
  568. new nick[32]
  569. get_pcvar_string(irc_mynick,nick,charsmax(nick))
  570. format(irc_pend[irc_nextpend],PENDBUF_LEN,"NICK %s-^n",nick);
  571. irc_incrpend();
  572. format(nick,sizeof(nick)-1,"%s-",nick);
  573. #if defined IRC_DEBUG
  574. log_amx("[ReportCheater] WARNING -|- USING ALT_NICK %s",nick);
  575. #endif
  576. }
  577. case 451:
  578. {
  579. format(irc_pend[irc_nextpend],PENDBUF_LEN,"USER %s^n",irc_user);
  580. irc_incrpend();
  581. #if defined IRC_DEBUG
  582. log_amx("[Soldiers] CsaloBejelentese] WARNING -|- RESEND USER");
  583. #endif
  584. }
  585. case 404,442,461:
  586. {
  587. new pass[32]
  588. get_pcvar_string(irc_mypass,pass,charsmax(pass))
  589. get_pcvar_string(irc_mychan,chan,charsmax(chan))
  590. format(irc_pend[irc_nextpend],PENDBUF_LEN,"JOIN %s %s^n",chan,pass);
  591. irc_incrpend();
  592. #if defined IRC_DEBUG
  593. log_amx("[Soldiers] CsaloBejelentese] WARNING -|- REJOIN CHANNEL");
  594. #endif
  595. }
  596.  
  597.  
  598. }
  599.  
  600. return 0;
  601. }
  602.  
  603.  
  604.  
  605. irc_incrpend()
  606. {
  607. irc_nextpend++;
  608. if(irc_nextpend==PENDBUF_COUNT)
  609. {
  610. irc_nextpend=0;
  611. }
  612. }
  613. public sendadmins(msg[]){
  614. for( new i = 1; i <= g_iMaxPlayers ; i++ )
  615. {
  616. if( is_user_admin(i) )
  617. {
  618. client_print(i, print_chat, "[Soldiers] CsaloBejelentese] %s",msg);
  619. }
  620. }
  621.  
  622.  
  623. }
  624. public Advertise ( )
  625. {
  626. if(get_pcvar_num(irc_adv)) {
  627. client_print ( 0, print_chat, "%L",LANG_PLAYER,"IRC_ADVERT" )
  628. set_task ( get_pcvar_float ( irc_adv_freq ), "Advertise", 0 )
  629. }
  630. }
  631.  
  632. public listen ()
  633. {
  634. if(get_pcvar_num(listened)) {
  635. new msg[128]
  636. get_cvar_string("irc_listened_msg",msg,charsmax(msg))
  637. format(irc_pend[irc_nextpend],PENDBUF_LEN,"PRIVMSG %s :%s^n",chan,msg )
  638. sendadmins(msg)
  639. irc_incrpend();
  640. set_pcvar_num(listened,0)
  641. set_cvar_string("irc_listened_msg","")
  642. }
  643. if(get_pcvar_num(listening)) set_task ( LISTEN_FREQ, "listen", 0 )
  644. }
  645. public isuserbanned(g_id,authid_ch[32]){
  646. new g_authid[32]
  647. new i
  648. if(g_id)
  649. get_user_authid(g_id,g_authid,charsmax(g_authid))
  650. else
  651. g_authid=authid_ch
  652. for(i=1;i<k;i++){
  653. if(equal(g_authid,output[i])) return 1
  654. }
  655. return 0
  656. }
  657. public banid(g_id,id_cheater,authid_ch[32]){
  658. if(g_id && isuserbanned(id_cheater,authid_ch)){
  659. client_print(g_id,print_chat,"[ReportCheater] %L",LANG_PLAYER,"IRC_ALREADY_BANNED")
  660. return 0
  661. }
  662. new authid_cheater[32]
  663. if(!g_id){
  664. authid_cheater=authid_ch
  665. }
  666. else
  667. get_user_authid(id_cheater,authid_cheater,charsmax(authid_cheater))
  668. new writestr[33]
  669. format(writestr,charsmax(writestr),"%s",authid_cheater)
  670. new nextline = 0
  671. new rstr[33], fnum, b
  672. while(read_file(path,fnum,rstr,32,b))
  673. {
  674. if(b <= 0)
  675. {
  676. nextline = fnum
  677. break
  678. }
  679. fnum++
  680. }
  681. if(!nextline)
  682. write_file(path,writestr)
  683. else
  684. write_file(path,writestr,nextline)
  685. if(g_id){
  686. client_print(g_id,print_chat,"[ReportCheater] %L",LANG_PLAYER,"IRC_ADDED")
  687. loadbanlist(0)
  688. }
  689. return 1
  690. }
  691. public unbanid(g_id,id_cheater,authid_ch[32]){
  692. if(!isuserbanned(id_cheater,authid_ch)){
  693. if (g_id)client_print(g_id,print_chat,"[ReportCheater] %L",LANG_PLAYER,"IRC_NOTFOUND")
  694. return 0
  695. }
  696. new removed=0,i
  697. new authid_cheater[32]
  698. if(!g_id){
  699. authid_cheater=authid_ch
  700. }
  701. else
  702. get_user_authid(id_cheater,authid_cheater,charsmax(authid_cheater))
  703. if(file_exists ( path))
  704. delete_file ( path )
  705. new writestr[101]
  706. format(writestr,100,"ReportCheater banfile!!!")
  707. write_file(path,writestr)
  708. i=1
  709. while(i<k){
  710. if(!equali(output[i],authid_cheater))
  711. banid(0,0,output[i])
  712. else
  713. removed++
  714. i++
  715. }
  716. if(removed){
  717. if(g_id) client_print(g_id,print_chat,"[ReportCheater] %L",LANG_PLAYER,"IRC_REMOVED")
  718. loadbanlist(removed)
  719. return 1
  720. }
  721. return 0
  722. }
  723. public unbancmd(id)
  724. {
  725. new authid[32]
  726. read_args(authid,32)
  727. trim(authid)
  728. remove_quotes(authid)
  729. if(strlen(authid) <= 0){
  730. client_print(id,print_console,"[ReportCheater] amx_irc_unban <steam_id>")
  731. return PLUGIN_HANDLED
  732. }
  733. if(unbanid(0,0,authid))
  734. client_print(id,print_console,"[ReportCheater] %L",LANG_PLAYER,"IRC_REMOVED")
  735. else
  736. client_print(id,print_console,"[ReportCheater] %L",LANG_PLAYER,"IRC_NOTFOUND")
  737. return PLUGIN_HANDLED
  738. }
  739. public loadbanlist(removed){
  740. new i
  741. new file_handle = fopen (path, "rt+")
  742. new file_text [256]
  743. for(i=0;i<removed+k;i++){
  744. output[i]=""
  745. }
  746. k = 0
  747. while (!feof (file_handle) && k < MAXIMUM) {
  748. fgets (file_handle, file_text, 255)
  749. trim (file_text)
  750. if(!equali(file_text,""))
  751. {
  752. copy (output [k], strlen (file_text), file_text)
  753. }
  754. k++
  755. }
  756. fclose (file_handle)
  757. }
  758.  


Csatolmányok:
reportcheater.zip [735 bájt]
Letöltve 55 alkalommal.

_________________
Kép
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  [ 17 hozzászólás ]  Oldal 1 2 Következő


Ki van itt

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