hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.04.28. 19:36



Jelenlévő felhasználók

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

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

Regisztrált felhasználók: IrOn 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  [ 5 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Előtag+allchat
HozzászólásElküldve: 2013.11.28. 18:19 
Offline
Lelkes

Csatlakozott: 2013.11.24. 20:18
Hozzászólások: 20
Megköszönt másnak: 4 alkalommal
Sziasztok.
Ezt a 2 plugint összetudnátok írni?
Előtagok
http://forums.alliedmods.net/showthread.php?t=56825
Mert ha berakom külön külön őket, akkor 2x írja le a chat az üzenetet+nevet
Köszönöm előre is :)


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Előtag+allchat
HozzászólásElküldve: 2013.11.28. 18:29 
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
Nesze :)
Remélem segíthetem :)

SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <amxmisc>
  3.  
  4. #define PLUGIN "PLUGIN"
  5. #define VERSION "VERSION"
  6. #define AUTHOR "AUTHOR"
  7.  
  8. #define ACCESS_LEVEL ADMIN_KICK
  9. #define ADMIN_LISTEN ADMIN_KICK
  10.  
  11. new message[192]
  12. new sayText
  13. new teamInfo
  14. new maxPlayers
  15.  
  16. new strName[191]
  17. new strText[191]
  18. new alive[11]
  19. #define FLAG ADMIN_RESERVATION
  20.  
  21. new COLCHAR[3][2] = { "^x03"/*team col*/, "^x04"/*green*/, "^x01"/*white*/ }
  22.  
  23. //cvar pointers
  24. new p_allchat, p_namecol, p_msgcol, p_alltalk, p_hidestat, p_teamchat
  25.  
  26. //vars to check if message has already been duplicated
  27. new alv_sndr, alv_str2[26], alv_str4[101]
  28. new msg[200]
  29.  
  30. public plugin_init()
  31. {
  32. register_plugin (PLUGIN, VERSION, AUTHOR)
  33.  
  34. sayText = get_user_msgid ("SayText")
  35. teamInfo = get_user_msgid ("TeamInfo")
  36. maxPlayers = get_maxplayers()
  37.  
  38. register_message (sayText, "avoid_duplicated")
  39.  
  40. register_clcmd ("say", "hook_say")
  41. register_clcmd ("say_team", "hook_teamsay")
  42. p_allchat = register_cvar( "sv_allchat", "1" )
  43. p_namecol = register_cvar( "ac_namecolor", "0" )
  44. p_msgcol = register_cvar( "ac_msgcolor", "1" )
  45. p_hidestat = register_cvar( "ac_hidestatus", "0" )
  46. p_teamchat = register_cvar( "ac_teamchat", "0" )
  47. p_alltalk = get_cvar_pointer( "sv_alltalk" )
  48.  
  49. register_message( get_user_msgid("SayText"), "col_changer" )
  50. return PLUGIN_CONTINUE
  51. }
  52.  
  53. public avoid_duplicated (msgId, msgDest, receiver)
  54. {
  55. return PLUGIN_HANDLED
  56. }
  57.  
  58. public hook_say(id)
  59. {
  60. read_args (message, 191)
  61. remove_quotes (message)
  62.  
  63. if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, "")) // Ignores Admin Hud Messages, Admin Slash commands,
  64.  
  65. return PLUGIN_CONTINUE
  66.  
  67.  
  68. new name[32]
  69. get_user_name (id, name, 31)
  70.  
  71. new bool:admin = false
  72.  
  73. if (get_user_flags(id) & ACCESS_LEVEL)
  74. admin = true
  75.  
  76.  
  77. new bool:steam = false
  78.  
  79. if (is_user_steam(id))
  80. steam = true
  81.  
  82. new isAlive
  83.  
  84. if (is_user_alive (id))
  85. {
  86. isAlive = 1
  87. alive = "^x01*Él* "
  88. }
  89. else
  90. {
  91. isAlive = 0
  92. alive = "^x01*Halott* "
  93. }
  94.  
  95. static color[10]
  96.  
  97. if(get_user_flags(id)&ADMIN_LEVEL_C)
  98. {
  99. get_user_team (id, color, 9)
  100.  
  101. format (strName, 191, "%s^x04[Konfigos] » ^x03%s", alive, name)
  102.  
  103. format (strText, 191, "^x04%s", message)
  104. }
  105.  
  106. else if(get_user_flags(id)&ADMIN_LEVEL_B)
  107. {
  108. get_user_team (id, color, 9)
  109.  
  110. format (strName, 191, "%s^x04[Tulaj] » ^x03%s", alive, name)
  111.  
  112. format (strText, 191, "^x04%s", message)
  113. }
  114.  
  115. else if(admin)
  116. {
  117. get_user_team (id, color, 9)
  118.  
  119. format (strName, 191, "%s^x04[Admin] » ^x03%s", alive, name)
  120.  
  121. format (strText, 191, "^x04%s", message)
  122. }
  123.  
  124.  
  125. else if(!steam)
  126. {
  127. get_user_team (id, color, 9)
  128.  
  129. format (strName, 191, "%s^x04[Játékos] » ^x03%s", alive, name)
  130.  
  131. format (strText, 191, "%s", message)
  132. }
  133. else if (steam)
  134. {
  135. get_user_team (id, color, 9)
  136.  
  137. format (strName, 191, "%s^x04[Steames] » ^x03%s", alive, name)
  138.  
  139. format (strText, 191, "%s", message)
  140. }
  141.  
  142. format (message, 191, "%s »^x01 %s", strName, strText)
  143.  
  144. sendMessage (color, isAlive)
  145.  
  146. return PLUGIN_CONTINUE
  147. }
  148.  
  149.  
  150. public hook_teamsay(id)
  151. {
  152. new playerTeam = get_user_team(id)
  153. new playerTeamName[19]
  154.  
  155. switch (playerTeam)
  156. {
  157. case 1:
  158. copy (playerTeamName, 11, "Terrorista")
  159.  
  160. case 2:
  161. copy (playerTeamName, 18, "Anti-Terrorista")
  162.  
  163. default:
  164. copy (playerTeamName, 9, "Néző")
  165. }
  166.  
  167. read_args (message, 191)
  168. remove_quotes (message)
  169.  
  170. if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, ""))
  171.  
  172. return PLUGIN_CONTINUE
  173.  
  174.  
  175. new name[32]
  176. get_user_name (id, name, 31)
  177.  
  178. new bool:admin = false
  179.  
  180. if (get_user_flags(id) & ACCESS_LEVEL)
  181. admin = true
  182.  
  183.  
  184. new bool:steam = false
  185.  
  186. if(is_user_steam(id))
  187. steam = true
  188.  
  189. new isAlive
  190.  
  191. if (is_user_alive (id))
  192. {
  193. isAlive = 1
  194. alive = "^x01*Él* "
  195. }
  196. else
  197. {
  198. isAlive = 0
  199. alive = "^x01*Halott* "
  200. }
  201.  
  202. static color[10]
  203.  
  204. if(get_user_flags(id)&ADMIN_LEVEL_C)
  205. {
  206. get_user_team (id, color, 9)
  207.  
  208. format (strName, 191, "%s(%s) ^x04[Konfigos] » ^x03%s", alive, playerTeamName, name)
  209.  
  210. format (strText, 191, "^x04%s", message)
  211. }
  212.  
  213. else if(get_user_flags(id)&ADMIN_LEVEL_B)
  214. {
  215. get_user_team (id, color, 9)
  216.  
  217. format (strName, 191, "%s(%s) ^x04[Tulaj] » ^x03%s", alive, playerTeamName, name)
  218.  
  219. format (strText, 191, "^x04%s", message)
  220. }
  221.  
  222. else if (admin)
  223. {
  224. get_user_team (id, color, 9)
  225.  
  226. format (strName, 191, "%s(%s) ^x04[Admin] » ^x03%s", alive, playerTeamName, name)
  227.  
  228. format (strText, 191, "^x04%s", message)
  229. }
  230.  
  231. else if(!steam)
  232. {
  233. get_user_team (id, color, 9)
  234.  
  235. format (strName, 191, "%s(%s) ^x04[Játékos] » ^x03%s", alive, playerTeamName, name)
  236.  
  237. format (strText, 191, "%s", message)
  238. }
  239. else if(steam)
  240. {
  241. get_user_team (id, color, 9)
  242.  
  243. format (strName, 191, "%s(%s) ^x04[Steames] » ^x03%s", alive, playerTeamName, name)
  244.  
  245. format (strText, 191, "%s", message)
  246. }
  247.  
  248. format (message, 191, "%s » ^x01%s", strName, strText)
  249.  
  250. sendTeamMessage (color, isAlive, playerTeam)
  251.  
  252. return PLUGIN_CONTINUE
  253. }
  254.  
  255. public sendMessage (color[], alive)
  256. {
  257. new teamName[10]
  258.  
  259. for (new player = 1; player < maxPlayers; player++)
  260. {
  261. if (!is_user_connected(player))
  262. continue
  263.  
  264. if (alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_user_flags(player) & ADMIN_LISTEN)
  265. {
  266. get_user_team (player, teamName, 9)
  267.  
  268. changeTeamInfo (player, color)
  269.  
  270. writeMessage (player, message)
  271.  
  272. changeTeamInfo (player, teamName)
  273. }
  274. }
  275. }
  276.  
  277.  
  278. public sendTeamMessage (color[], alive, playerTeam)
  279. {
  280. new teamName[10]
  281.  
  282. for (new player = 1; player < maxPlayers; player++)
  283. {
  284. if (!is_user_connected(player))
  285. continue
  286.  
  287. if (get_user_team(player) == playerTeam || get_user_flags(player) & ADMIN_LISTEN)
  288. {
  289. if (alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_user_flags(player) & ADMIN_LISTEN)
  290. {
  291. get_user_team (player, teamName, 9)
  292.  
  293. changeTeamInfo (player, color)
  294. writeMessage (player, message)
  295.  
  296. changeTeamInfo (player, teamName)
  297. }
  298. }
  299. }
  300. }
  301.  
  302.  
  303. public changeTeamInfo (player, team[])
  304. {
  305. message_begin (MSG_ONE, teamInfo, _, player)
  306. write_byte (player)
  307. write_string (team)
  308. message_end()
  309. }
  310.  
  311.  
  312. public writeMessage (player, message[])
  313. {
  314. message_begin (MSG_ONE, sayText, {0, 0, 0}, player)
  315. write_byte (player)
  316. write_string (message)
  317. message_end ()
  318. }
  319.  
  320. stock bool:is_user_steam(id)
  321. {
  322. static dp_pointer;
  323.  
  324. if (dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
  325. {
  326. server_cmd("dp_clientinfo %d", id);
  327. server_exec();
  328. return (get_pcvar_num(dp_pointer) == 2) ? true : false;
  329. }
  330.  
  331. return false;
  332. }
  333.  
  334. public col_changer( msg_id, msg_dest, rcvr )
  335. {
  336. new str2[26]
  337. get_msg_arg_string( 2, str2, 25 )
  338. if( equal( str2, "#Cstrike_Chat", 13 ) )
  339. {
  340. new str3[22]
  341. get_msg_arg_string( 3, str3, 21 )
  342.  
  343. if( !strlen( str3 ) )
  344. {
  345. new str4[101]
  346. get_msg_arg_string( 4, str4, 100 )
  347. new sndr = get_msg_arg_int( 1 )
  348.  
  349. new bool:is_team_msg = !bool:equal( str2, "#Cstrike_Chat_All", 17 )
  350.  
  351. new sndr_team = get_user_team( sndr )
  352. new bool:is_sndr_spec = !bool:( 0 < sndr_team < 3 )
  353.  
  354. new namecol = clamp( get_pcvar_num(p_namecol), 0, 2 )
  355. new msgcol = clamp( get_pcvar_num(p_msgcol), 0, 2 )
  356.  
  357. new bool:same_as_last = bool:( alv_sndr == sndr && equal( alv_str2, str2 ) && equal( alv_str4, str4) )
  358.  
  359. if( !same_as_last )
  360. {//Duplicate message once
  361. new allchat = clamp( get_pcvar_num( p_allchat ), 0, 2 )
  362. if( allchat == 2 || ( allchat == 1 && clamp( get_pcvar_num( p_alltalk ), 0, 1 ) == 1 ) )
  363. {
  364. if( !( is_team_msg && ( is_sndr_spec || is_team_msg && get_pcvar_num( p_teamchat ) == 0 ) ) )
  365. {//Don't duplicate if it's a spectator team message
  366. new flags[5], team[10]
  367. if( is_user_alive( sndr ) ) flags = "bch"
  368. else flags = "ach"
  369.  
  370. if( is_team_msg )
  371. {
  372. add( flags[strlen( flags )], 4, "e" )
  373. if( sndr_team == 1 ) team = "TERRORIST"
  374. else team = "CT"
  375. }
  376.  
  377. new players[32], num
  378. get_players( players, num, flags, team )
  379.  
  380. if( get_user_flags( sndr ) & FLAG )
  381. buildmsg( sndr, is_sndr_spec, is_team_msg, sndr_team, namecol, msgcol, str4 ) //admin colored, by cvars
  382. else buildmsg( sndr, is_sndr_spec, is_team_msg, sndr_team, 0, 2, str4 ) //normal colors
  383.  
  384. for( new i=0; i < num; i++ )
  385. {
  386. message_begin( MSG_ONE, get_user_msgid( "SayText" ), _, players[i] )
  387. write_byte( sndr )
  388. write_string( msg )
  389. message_end()
  390. }
  391.  
  392. }
  393.  
  394. alv_sndr = sndr
  395. alv_str2 = str2
  396. alv_str4 = str4
  397. if( task_exists( 411 ) ) remove_task( 411 )
  398. set_task( 0.1, "task_clear_antiloop_vars", 411 )
  399. }
  400. }
  401.  
  402. if( get_user_flags( sndr ) & FLAG && ( namecol != 0 || msgcol != 2 ) )
  403. {//execute if sndr is admin and cols are not set to engine defaults
  404. if( !same_as_last ) buildmsg( sndr, is_sndr_spec, is_team_msg, sndr_team, namecol, msgcol, str4 )
  405.  
  406. set_msg_arg_string( 2, msg )
  407. set_msg_arg_string( 4, "" )
  408. }
  409. }
  410. }
  411. return PLUGIN_CONTINUE
  412. }
  413.  
  414. public buildmsg( sndr, is_sndr_spec, is_team_msg, sndr_team, namecol, msgcol, str4[ ] )
  415. {
  416. new sndr_name[33]
  417. get_user_name( sndr, sndr_name, 32 )
  418.  
  419. new prefix[30] = "^x01"
  420. if( get_pcvar_num( p_hidestat ) == 0 )
  421. {
  422. if( is_sndr_spec ) prefix = "^x01*SPEC* "
  423. else if( !is_user_alive( sndr ) ) prefix = "^x01*DEAD* "
  424. }
  425.  
  426. if( is_team_msg )
  427. {
  428. if( is_sndr_spec ) prefix = "^x01(Spectator) "
  429. else if( sndr_team == 1 ) add( prefix[strlen(prefix)-1], 29, "(Terrorist) " )
  430. else if( sndr_team == 2 ) add( prefix[strlen(prefix)-1], 29, "(Counter-Terrorist) " )
  431. }
  432.  
  433. format( msg, 199, "%s%s%s : %s%s",\
  434. strlen( prefix ) > 1 ? prefix : "",\
  435. COLCHAR[namecol], sndr_name, COLCHAR[msgcol], str4 )
  436. return PLUGIN_HANDLED
  437. }
  438.  
  439. public task_clear_antiloop_vars( )
  440. {
  441. alv_sndr = 0
  442. alv_str2 = ""
  443. alv_str4 = ""
  444. return PLUGIN_HANDLED
  445. }
  446.  

_________________
Kép

Ők köszönték meg NiGGeR-BorZ nek ezt a hozzászólást: Neee csámcsogj (2013.11.28. 18:57)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Előtag+allchat
HozzászólásElküldve: 2013.11.28. 18:58 
Offline
Lelkes

Csatlakozott: 2013.11.24. 20:18
Hozzászólások: 20
Megköszönt másnak: 4 alkalommal
NiGGeR-BorZ írta:
Nesze :)
Remélem segíthetem :)

SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <amxmisc>
  3.  
  4. #define PLUGIN "PLUGIN"
  5. #define VERSION "VERSION"
  6. #define AUTHOR "AUTHOR"
  7.  
  8. #define ACCESS_LEVEL ADMIN_KICK
  9. #define ADMIN_LISTEN ADMIN_KICK
  10.  
  11. new message[192]
  12. new sayText
  13. new teamInfo
  14. new maxPlayers
  15.  
  16. new strName[191]
  17. new strText[191]
  18. new alive[11]
  19. #define FLAG ADMIN_RESERVATION
  20.  
  21. new COLCHAR[3][2] = { "^x03"/*team col*/, "^x04"/*green*/, "^x01"/*white*/ }
  22.  
  23. //cvar pointers
  24. new p_allchat, p_namecol, p_msgcol, p_alltalk, p_hidestat, p_teamchat
  25.  
  26. //vars to check if message has already been duplicated
  27. new alv_sndr, alv_str2[26], alv_str4[101]
  28. new msg[200]
  29.  
  30. public plugin_init()
  31. {
  32. register_plugin (PLUGIN, VERSION, AUTHOR)
  33.  
  34. sayText = get_user_msgid ("SayText")
  35. teamInfo = get_user_msgid ("TeamInfo")
  36. maxPlayers = get_maxplayers()
  37.  
  38. register_message (sayText, "avoid_duplicated")
  39.  
  40. register_clcmd ("say", "hook_say")
  41. register_clcmd ("say_team", "hook_teamsay")
  42. p_allchat = register_cvar( "sv_allchat", "1" )
  43. p_namecol = register_cvar( "ac_namecolor", "0" )
  44. p_msgcol = register_cvar( "ac_msgcolor", "1" )
  45. p_hidestat = register_cvar( "ac_hidestatus", "0" )
  46. p_teamchat = register_cvar( "ac_teamchat", "0" )
  47. p_alltalk = get_cvar_pointer( "sv_alltalk" )
  48.  
  49. register_message( get_user_msgid("SayText"), "col_changer" )
  50. return PLUGIN_CONTINUE
  51. }
  52.  
  53. public avoid_duplicated (msgId, msgDest, receiver)
  54. {
  55. return PLUGIN_HANDLED
  56. }
  57.  
  58. public hook_say(id)
  59. {
  60. read_args (message, 191)
  61. remove_quotes (message)
  62.  
  63. if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, "")) // Ignores Admin Hud Messages, Admin Slash commands,
  64.  
  65. return PLUGIN_CONTINUE
  66.  
  67.  
  68. new name[32]
  69. get_user_name (id, name, 31)
  70.  
  71. new bool:admin = false
  72.  
  73. if (get_user_flags(id) & ACCESS_LEVEL)
  74. admin = true
  75.  
  76.  
  77. new bool:steam = false
  78.  
  79. if (is_user_steam(id))
  80. steam = true
  81.  
  82. new isAlive
  83.  
  84. if (is_user_alive (id))
  85. {
  86. isAlive = 1
  87. alive = "^x01*Él* "
  88. }
  89. else
  90. {
  91. isAlive = 0
  92. alive = "^x01*Halott* "
  93. }
  94.  
  95. static color[10]
  96.  
  97. if(get_user_flags(id)&ADMIN_LEVEL_C)
  98. {
  99. get_user_team (id, color, 9)
  100.  
  101. format (strName, 191, "%s^x04[Konfigos] » ^x03%s", alive, name)
  102.  
  103. format (strText, 191, "^x04%s", message)
  104. }
  105.  
  106. else if(get_user_flags(id)&ADMIN_LEVEL_B)
  107. {
  108. get_user_team (id, color, 9)
  109.  
  110. format (strName, 191, "%s^x04[Tulaj] » ^x03%s", alive, name)
  111.  
  112. format (strText, 191, "^x04%s", message)
  113. }
  114.  
  115. else if(admin)
  116. {
  117. get_user_team (id, color, 9)
  118.  
  119. format (strName, 191, "%s^x04[Admin] » ^x03%s", alive, name)
  120.  
  121. format (strText, 191, "^x04%s", message)
  122. }
  123.  
  124.  
  125. else if(!steam)
  126. {
  127. get_user_team (id, color, 9)
  128.  
  129. format (strName, 191, "%s^x04[Játékos] » ^x03%s", alive, name)
  130.  
  131. format (strText, 191, "%s", message)
  132. }
  133. else if (steam)
  134. {
  135. get_user_team (id, color, 9)
  136.  
  137. format (strName, 191, "%s^x04[Steames] » ^x03%s", alive, name)
  138.  
  139. format (strText, 191, "%s", message)
  140. }
  141.  
  142. format (message, 191, "%s »^x01 %s", strName, strText)
  143.  
  144. sendMessage (color, isAlive)
  145.  
  146. return PLUGIN_CONTINUE
  147. }
  148.  
  149.  
  150. public hook_teamsay(id)
  151. {
  152. new playerTeam = get_user_team(id)
  153. new playerTeamName[19]
  154.  
  155. switch (playerTeam)
  156. {
  157. case 1:
  158. copy (playerTeamName, 11, "Terrorista")
  159.  
  160. case 2:
  161. copy (playerTeamName, 18, "Anti-Terrorista")
  162.  
  163. default:
  164. copy (playerTeamName, 9, "Néző")
  165. }
  166.  
  167. read_args (message, 191)
  168. remove_quotes (message)
  169.  
  170. if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, ""))
  171.  
  172. return PLUGIN_CONTINUE
  173.  
  174.  
  175. new name[32]
  176. get_user_name (id, name, 31)
  177.  
  178. new bool:admin = false
  179.  
  180. if (get_user_flags(id) & ACCESS_LEVEL)
  181. admin = true
  182.  
  183.  
  184. new bool:steam = false
  185.  
  186. if(is_user_steam(id))
  187. steam = true
  188.  
  189. new isAlive
  190.  
  191. if (is_user_alive (id))
  192. {
  193. isAlive = 1
  194. alive = "^x01*Él* "
  195. }
  196. else
  197. {
  198. isAlive = 0
  199. alive = "^x01*Halott* "
  200. }
  201.  
  202. static color[10]
  203.  
  204. if(get_user_flags(id)&ADMIN_LEVEL_C)
  205. {
  206. get_user_team (id, color, 9)
  207.  
  208. format (strName, 191, "%s(%s) ^x04[Konfigos] » ^x03%s", alive, playerTeamName, name)
  209.  
  210. format (strText, 191, "^x04%s", message)
  211. }
  212.  
  213. else if(get_user_flags(id)&ADMIN_LEVEL_B)
  214. {
  215. get_user_team (id, color, 9)
  216.  
  217. format (strName, 191, "%s(%s) ^x04[Tulaj] » ^x03%s", alive, playerTeamName, name)
  218.  
  219. format (strText, 191, "^x04%s", message)
  220. }
  221.  
  222. else if (admin)
  223. {
  224. get_user_team (id, color, 9)
  225.  
  226. format (strName, 191, "%s(%s) ^x04[Admin] » ^x03%s", alive, playerTeamName, name)
  227.  
  228. format (strText, 191, "^x04%s", message)
  229. }
  230.  
  231. else if(!steam)
  232. {
  233. get_user_team (id, color, 9)
  234.  
  235. format (strName, 191, "%s(%s) ^x04[Játékos] » ^x03%s", alive, playerTeamName, name)
  236.  
  237. format (strText, 191, "%s", message)
  238. }
  239. else if(steam)
  240. {
  241. get_user_team (id, color, 9)
  242.  
  243. format (strName, 191, "%s(%s) ^x04[Steames] » ^x03%s", alive, playerTeamName, name)
  244.  
  245. format (strText, 191, "%s", message)
  246. }
  247.  
  248. format (message, 191, "%s » ^x01%s", strName, strText)
  249.  
  250. sendTeamMessage (color, isAlive, playerTeam)
  251.  
  252. return PLUGIN_CONTINUE
  253. }
  254.  
  255. public sendMessage (color[], alive)
  256. {
  257. new teamName[10]
  258.  
  259. for (new player = 1; player < maxPlayers; player++)
  260. {
  261. if (!is_user_connected(player))
  262. continue
  263.  
  264. if (alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_user_flags(player) & ADMIN_LISTEN)
  265. {
  266. get_user_team (player, teamName, 9)
  267.  
  268. changeTeamInfo (player, color)
  269.  
  270. writeMessage (player, message)
  271.  
  272. changeTeamInfo (player, teamName)
  273. }
  274. }
  275. }
  276.  
  277.  
  278. public sendTeamMessage (color[], alive, playerTeam)
  279. {
  280. new teamName[10]
  281.  
  282. for (new player = 1; player < maxPlayers; player++)
  283. {
  284. if (!is_user_connected(player))
  285. continue
  286.  
  287. if (get_user_team(player) == playerTeam || get_user_flags(player) & ADMIN_LISTEN)
  288. {
  289. if (alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_user_flags(player) & ADMIN_LISTEN)
  290. {
  291. get_user_team (player, teamName, 9)
  292.  
  293. changeTeamInfo (player, color)
  294. writeMessage (player, message)
  295.  
  296. changeTeamInfo (player, teamName)
  297. }
  298. }
  299. }
  300. }
  301.  
  302.  
  303. public changeTeamInfo (player, team[])
  304. {
  305. message_begin (MSG_ONE, teamInfo, _, player)
  306. write_byte (player)
  307. write_string (team)
  308. message_end()
  309. }
  310.  
  311.  
  312. public writeMessage (player, message[])
  313. {
  314. message_begin (MSG_ONE, sayText, {0, 0, 0}, player)
  315. write_byte (player)
  316. write_string (message)
  317. message_end ()
  318. }
  319.  
  320. stock bool:is_user_steam(id)
  321. {
  322. static dp_pointer;
  323.  
  324. if (dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
  325. {
  326. server_cmd("dp_clientinfo %d", id);
  327. server_exec();
  328. return (get_pcvar_num(dp_pointer) == 2) ? true : false;
  329. }
  330.  
  331. return false;
  332. }
  333.  
  334. public col_changer( msg_id, msg_dest, rcvr )
  335. {
  336. new str2[26]
  337. get_msg_arg_string( 2, str2, 25 )
  338. if( equal( str2, "#Cstrike_Chat", 13 ) )
  339. {
  340. new str3[22]
  341. get_msg_arg_string( 3, str3, 21 )
  342.  
  343. if( !strlen( str3 ) )
  344. {
  345. new str4[101]
  346. get_msg_arg_string( 4, str4, 100 )
  347. new sndr = get_msg_arg_int( 1 )
  348.  
  349. new bool:is_team_msg = !bool:equal( str2, "#Cstrike_Chat_All", 17 )
  350.  
  351. new sndr_team = get_user_team( sndr )
  352. new bool:is_sndr_spec = !bool:( 0 < sndr_team < 3 )
  353.  
  354. new namecol = clamp( get_pcvar_num(p_namecol), 0, 2 )
  355. new msgcol = clamp( get_pcvar_num(p_msgcol), 0, 2 )
  356.  
  357. new bool:same_as_last = bool:( alv_sndr == sndr && equal( alv_str2, str2 ) && equal( alv_str4, str4) )
  358.  
  359. if( !same_as_last )
  360. {//Duplicate message once
  361. new allchat = clamp( get_pcvar_num( p_allchat ), 0, 2 )
  362. if( allchat == 2 || ( allchat == 1 && clamp( get_pcvar_num( p_alltalk ), 0, 1 ) == 1 ) )
  363. {
  364. if( !( is_team_msg && ( is_sndr_spec || is_team_msg && get_pcvar_num( p_teamchat ) == 0 ) ) )
  365. {//Don't duplicate if it's a spectator team message
  366. new flags[5], team[10]
  367. if( is_user_alive( sndr ) ) flags = "bch"
  368. else flags = "ach"
  369.  
  370. if( is_team_msg )
  371. {
  372. add( flags[strlen( flags )], 4, "e" )
  373. if( sndr_team == 1 ) team = "TERRORIST"
  374. else team = "CT"
  375. }
  376.  
  377. new players[32], num
  378. get_players( players, num, flags, team )
  379.  
  380. if( get_user_flags( sndr ) & FLAG )
  381. buildmsg( sndr, is_sndr_spec, is_team_msg, sndr_team, namecol, msgcol, str4 ) //admin colored, by cvars
  382. else buildmsg( sndr, is_sndr_spec, is_team_msg, sndr_team, 0, 2, str4 ) //normal colors
  383.  
  384. for( new i=0; i < num; i++ )
  385. {
  386. message_begin( MSG_ONE, get_user_msgid( "SayText" ), _, players[i] )
  387. write_byte( sndr )
  388. write_string( msg )
  389. message_end()
  390. }
  391.  
  392. }
  393.  
  394. alv_sndr = sndr
  395. alv_str2 = str2
  396. alv_str4 = str4
  397. if( task_exists( 411 ) ) remove_task( 411 )
  398. set_task( 0.1, "task_clear_antiloop_vars", 411 )
  399. }
  400. }
  401.  
  402. if( get_user_flags( sndr ) & FLAG && ( namecol != 0 || msgcol != 2 ) )
  403. {//execute if sndr is admin and cols are not set to engine defaults
  404. if( !same_as_last ) buildmsg( sndr, is_sndr_spec, is_team_msg, sndr_team, namecol, msgcol, str4 )
  405.  
  406. set_msg_arg_string( 2, msg )
  407. set_msg_arg_string( 4, "" )
  408. }
  409. }
  410. }
  411. return PLUGIN_CONTINUE
  412. }
  413.  
  414. public buildmsg( sndr, is_sndr_spec, is_team_msg, sndr_team, namecol, msgcol, str4[ ] )
  415. {
  416. new sndr_name[33]
  417. get_user_name( sndr, sndr_name, 32 )
  418.  
  419. new prefix[30] = "^x01"
  420. if( get_pcvar_num( p_hidestat ) == 0 )
  421. {
  422. if( is_sndr_spec ) prefix = "^x01*SPEC* "
  423. else if( !is_user_alive( sndr ) ) prefix = "^x01*DEAD* "
  424. }
  425.  
  426. if( is_team_msg )
  427. {
  428. if( is_sndr_spec ) prefix = "^x01(Spectator) "
  429. else if( sndr_team == 1 ) add( prefix[strlen(prefix)-1], 29, "(Terrorist) " )
  430. else if( sndr_team == 2 ) add( prefix[strlen(prefix)-1], 29, "(Counter-Terrorist) " )
  431. }
  432.  
  433. format( msg, 199, "%s%s%s : %s%s",\
  434. strlen( prefix ) > 1 ? prefix : "",\
  435. COLCHAR[namecol], sndr_name, COLCHAR[msgcol], str4 )
  436. return PLUGIN_HANDLED
  437. }
  438.  
  439. public task_clear_antiloop_vars( )
  440. {
  441. alv_sndr = 0
  442. alv_str2 = ""
  443. alv_str4 = ""
  444. return PLUGIN_HANDLED
  445. }
  446.  


Köszönöm szépen!
Ment a gomb :)


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Előtag+allchat
HozzászólásElküldve: 2013.11.29. 06:47 
Offline
Developer
Avatar

Csatlakozott: 2011.06.01. 21:11
Hozzászólások: 7962
Megköszönt másnak: 295 alkalommal
Megköszönték neki: 535 alkalommal
Felesleges az allchat, az előtagokba ugyan azok a funkciók megvannak alapból. Szal elég az előtagokat használod.

_________________
http://www.easyrankup.eu


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Előtag+allchat
HozzászólásElküldve: 2013.11.29. 14:01 
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
Hát ja. Én is akartam mondani , de ő tudja. :)

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


Ki van itt

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