hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.04.18. 17:21



Jelenlévő felhasználók

Jelenleg 136 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 136 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  [ 3 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: freg lopás
HozzászólásElküldve: 2013.03.09. 22:33 
Offline
Őskövület
Avatar

Csatlakozott: 2011.12.28. 00:35
Hozzászólások: 2736
Megköszönt másnak: 56 alkalommal
Megköszönték neki: 275 alkalommal
Hali.

Valaki bele tudná írni a freg lopos plugintba a következőt:

[<<eb@>> Freg lopas]: +1 freget kaptal: asd

+ mindekinek írja.

SMA Forráskód: [ Mindet kijelol ]
  1. /* Feel free to modify these HUD message values */
  2.  
  3. #define HUD_colorR 255 // default: 255
  4. #define HUD_colorG 155 // default: 155
  5. #define HUD_colorB 0 // default: 0
  6. #define HUD_posX 0.6 // default: 0.6
  7. #define HUD_posY 0.2 // default: 0.2
  8. #define HUD_fx 0 // default: 0
  9. #define HUD_fxTime 0.0 // default: 0.0
  10. #define HUD_holdTime 1.0 // default: 1.0
  11. #define HUD_fadeInTime 0.3 // default: 0.3
  12. #define HUD_fadeOutTime 2.0 // default: 2.0
  13. #define HUD_channel -1 // default: -1
  14.  
  15. /* -------------------------------------------------------------------------
  16. Nothing to edit below this point */
  17.  
  18. #include <amxmodx>
  19. #include <hamsandwich>
  20. #include <cstrike>
  21. #include <engine>
  22. #include <fun>
  23.  
  24. #define PLUGIN_TITLE "Kill assist (for CS)"
  25. #define PLUGIN_VERSION "1.2b"
  26. #define PLUGIN_AUTHOR "Digi (http://www.thehunters.ro)"
  27. #define PLUGIN_PUBLICVAR "killassist_version"
  28.  
  29. #define MAXPLAYERS 32 + 1
  30.  
  31. #define TEAM_NONE 0
  32. #define TEAM_TE 1
  33. #define TEAM_CT 2
  34. #define TEAM_SPEC 3
  35.  
  36. #define is_player(%1) (1 <= %1 <= g_iMaxPlayers)
  37.  
  38. new msgID_sayText
  39. new msgID_deathMsg
  40. new msgID_scoreInfo
  41. new msgID_money
  42.  
  43. new pCVar_amxMode
  44.  
  45. new pCVar_enabled
  46. new pCVar_minDamage
  47. new pCVar_giveFrags
  48. new pCVar_giveMoney
  49. new pCVar_onlyAlive
  50.  
  51. new ch_pCVar_enabled
  52. new ch_pCVar_minDamage
  53. new ch_pCVar_giveFrags
  54. new ch_pCVar_giveMoney
  55. new ch_pCVar_onlyAlive
  56.  
  57. new g_szName[MAXPLAYERS][32]
  58. new g_iTeam[MAXPLAYERS]
  59. new g_iDamage[MAXPLAYERS][MAXPLAYERS]
  60. new bool:g_bAlive[MAXPLAYERS] = {false, ...}
  61. new bool:g_bOnline[MAXPLAYERS] = {false, ...}
  62.  
  63. new g_iLastAmxMode
  64. new g_iMaxPlayers = 0
  65. new bool:g_bAmxModeExists = false
  66.  
  67. public plugin_init()
  68. {
  69. register_plugin(PLUGIN_TITLE, PLUGIN_VERSION, PLUGIN_AUTHOR)
  70. register_cvar(PLUGIN_PUBLICVAR, PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY)
  71.  
  72. pCVar_enabled = register_cvar("amx_killassist_enabled", "1")
  73. pCVar_minDamage = register_cvar("amx_killassist_mindamage", "50")
  74. pCVar_giveFrags = register_cvar("amx_killassist_givefrags", "1")
  75. pCVar_giveMoney = register_cvar("amx_killassist_givemoney", "300")
  76. pCVar_onlyAlive = register_cvar("amx_killassist_onlyalive", "0")
  77.  
  78. if(cvar_exists("amx_mode"))
  79. {
  80. pCVar_amxMode = get_cvar_pointer("amx_mode")
  81.  
  82. g_bAmxModeExists = true
  83. }
  84.  
  85. msgID_money = get_user_msgid("Money")
  86. msgID_sayText = get_user_msgid("SayText")
  87. msgID_deathMsg = get_user_msgid("DeathMsg")
  88. msgID_scoreInfo = get_user_msgid("ScoreInfo")
  89.  
  90. register_message(msgID_deathMsg, "msg_deathMsg")
  91.  
  92. register_logevent("event_roundStart", 2, "1=Round_Start")
  93.  
  94. register_event("Damage", "player_damage", "be", "2!0", "3=0", "4!0")
  95. register_event("DeathMsg", "player_die", "ae")
  96. register_event("TeamInfo", "player_joinTeam", "a")
  97.  
  98. RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
  99.  
  100. g_iMaxPlayers = get_maxplayers()
  101. }
  102.  
  103. public plugin_cfg() event_roundStart()
  104.  
  105. public event_roundStart()
  106. {
  107. ch_pCVar_enabled = clamp(get_pcvar_num(pCVar_enabled), 0, 2)
  108. ch_pCVar_minDamage = clamp(get_pcvar_num(pCVar_minDamage), 0, 9999)
  109. ch_pCVar_giveFrags = clamp(get_pcvar_num(pCVar_giveFrags), 0, 1)
  110. ch_pCVar_giveMoney = clamp(get_pcvar_num(pCVar_giveMoney), 0, 16000)
  111. ch_pCVar_onlyAlive = clamp(get_pcvar_num(pCVar_onlyAlive), 0, 1)
  112. }
  113.  
  114. public client_putinserver(iPlayer)
  115. {
  116. g_bOnline[iPlayer] = true
  117.  
  118. get_user_name(iPlayer, g_szName[iPlayer], 31)
  119. }
  120.  
  121. public client_disconnect(iPlayer)
  122. {
  123. g_iTeam[iPlayer] = TEAM_NONE
  124. g_bAlive[iPlayer] = false
  125. g_bOnline[iPlayer] = false
  126. }
  127.  
  128. public player_joinTeam()
  129. {
  130. new iPlayer, szTeam[2]
  131.  
  132. iPlayer = read_data(1)
  133. read_data(2, szTeam, 1)
  134.  
  135. switch(szTeam[0])
  136. {
  137. case 'T': g_iTeam[iPlayer] = TEAM_TE
  138. case 'C': g_iTeam[iPlayer] = TEAM_CT
  139. default: g_iTeam[iPlayer] = TEAM_SPEC // since you can't transfer yourself to unassigned team...
  140. }
  141.  
  142. return PLUGIN_CONTINUE
  143. }
  144.  
  145. public player_spawn(iPlayer)
  146. {
  147. if(!is_user_alive(iPlayer))
  148. return HAM_IGNORED
  149.  
  150. g_bAlive[iPlayer] = true // he's alive !
  151.  
  152. new szName[32]
  153.  
  154. get_user_name(iPlayer, szName, 31)
  155.  
  156. if(!equali(szName, g_szName[iPlayer])) // make sure he has his name !
  157. {
  158. set_msg_block(msgID_sayText, BLOCK_ONCE)
  159. set_user_info(iPlayer, "name", g_szName[iPlayer])
  160. }
  161.  
  162. // reset damage meters
  163.  
  164. for(new p = 1; p <= g_iMaxPlayers; p++)
  165. g_iDamage[iPlayer][p] = 0
  166.  
  167. return HAM_IGNORED
  168. }
  169.  
  170. public player_damage(iVictim)
  171. {
  172. if(!ch_pCVar_enabled || !is_player(iVictim))
  173. return PLUGIN_CONTINUE
  174.  
  175. new iAttacker = get_user_attacker(iVictim)
  176.  
  177. if(!is_player(iAttacker))
  178. return PLUGIN_CONTINUE
  179.  
  180. g_iDamage[iAttacker][iVictim] += read_data(2)
  181.  
  182. return PLUGIN_CONTINUE
  183. }
  184.  
  185. public player_die()
  186. {
  187. if(!ch_pCVar_enabled)
  188. return PLUGIN_CONTINUE
  189.  
  190. new iVictim = read_data(2)
  191. new iKiller = read_data(1)
  192. new iHS = read_data(3)
  193. new szWeapon[24]
  194. read_data(4, szWeapon, 23)
  195.  
  196. if(!is_player(iVictim))
  197. {
  198. do_deathmsg(iKiller, iVictim, iHS, szWeapon)
  199.  
  200. return PLUGIN_CONTINUE
  201. }
  202.  
  203. g_bAlive[iVictim] = false
  204.  
  205. if(!is_player(iKiller))
  206. {
  207. do_deathmsg(iKiller, iVictim, iHS, szWeapon)
  208.  
  209. return PLUGIN_CONTINUE
  210. }
  211.  
  212. new iKillerTeam = g_iTeam[iKiller]
  213.  
  214. if(iKiller != iVictim && g_iTeam[iVictim] != iKillerTeam)
  215. {
  216. new iKiller2 = 0
  217. new iDamage2 = 0
  218.  
  219. for(new p = 1; p <= g_iMaxPlayers; p++)
  220. {
  221. if(p != iKiller && g_bOnline[p] && (ch_pCVar_onlyAlive && g_bAlive[p] || !ch_pCVar_onlyAlive) && iKillerTeam == g_iTeam[p] && g_iDamage[p][iVictim] >= ch_pCVar_minDamage && g_iDamage[p][iVictim] > iDamage2)
  222. {
  223. iKiller2 = p
  224. iDamage2 = g_iDamage[p][iVictim]
  225. }
  226.  
  227. g_iDamage[p][iVictim] = 0
  228. }
  229.  
  230. if(iKiller2 > 0 && iDamage2 > ch_pCVar_minDamage)
  231. {
  232. if(ch_pCVar_giveFrags)
  233. {
  234. new iFrags = get_user_frags(iKiller2)+1
  235.  
  236. set_user_frags(iKiller2, iFrags)
  237.  
  238. message_begin(MSG_ALL, msgID_scoreInfo)
  239. write_byte(iKiller2)
  240. write_short(iFrags)
  241. write_short(get_user_deaths(iKiller2))
  242. write_short(0)
  243. write_short(iKillerTeam)
  244. message_end()
  245. }
  246.  
  247. if(ch_pCVar_giveMoney)
  248. {
  249. new iMoney = cs_get_user_money(iKiller2) + ch_pCVar_giveMoney
  250.  
  251. if(iMoney > 16000)
  252. iMoney = 16000
  253.  
  254. cs_set_user_money(iKiller2, iMoney)
  255.  
  256. if(g_bAlive[iKiller2]) // no reason to send a money message when the player has no hud :}
  257. {
  258. message_begin(MSG_ONE_UNRELIABLE, msgID_money, _, iKiller2)
  259. write_long(iMoney)
  260. write_byte(1)
  261. message_end()
  262. }
  263. }
  264.  
  265. if(ch_pCVar_enabled == 2)
  266. {
  267. new szName1[32], szName2[32], szName3[32], szMsg[128]
  268.  
  269. get_user_name(iKiller, szName1, 31)
  270. get_user_name(iKiller2, szName2, 31)
  271. get_user_name(iVictim, szName3, 31)
  272.  
  273. formatex(szMsg, 63, "%s killed %s assisted by %s", szName1, szName3, szName2)
  274.  
  275. set_hudmessage(HUD_colorR, HUD_colorG, HUD_colorB, HUD_posX, HUD_posY, HUD_fx, HUD_fxTime, HUD_holdTime, HUD_fadeInTime, HUD_fadeOutTime, HUD_channel)
  276. show_hudmessage(0, szMsg)
  277. }
  278. else
  279. {
  280. new szName1[32], iName1Len, szName2[32], iName2Len, szNames[32], szWeaponLong[32]
  281.  
  282. iName1Len = get_user_name(iKiller, szName1, 31)
  283. iName2Len = get_user_name(iKiller2, szName2, 31)
  284.  
  285. g_szName[iKiller] = szName1
  286.  
  287. if(iName1Len < 14)
  288. {
  289. formatex(szName1, iName1Len, "%s", szName1)
  290. formatex(szName2, 28-iName1Len, "%s", szName2)
  291. }
  292. else if(iName2Len < 14)
  293. {
  294. formatex(szName1, 28-iName2Len, "%s", szName1)
  295. formatex(szName2, iName2Len, "%s", szName2)
  296. }
  297. else
  298. {
  299. formatex(szName1, 13, "%s", szName1)
  300. formatex(szName2, 13, "%s", szName2)
  301. }
  302.  
  303. formatex(szNames, 31, "%s + %s", szName1, szName2)
  304.  
  305. set_msg_block(msgID_sayText, BLOCK_ONCE)
  306. set_user_info(iKiller, "name", szNames)
  307.  
  308. if(g_bAmxModeExists)
  309. {
  310. g_iLastAmxMode = get_pcvar_num(pCVar_amxMode)
  311.  
  312. set_pcvar_num(pCVar_amxMode, 0)
  313. }
  314.  
  315. if(equali(szWeapon, "grenade"))
  316. szWeaponLong = "weapon_hegrenade"
  317. else
  318. formatex(szWeaponLong, 31, "weapon_%s", szWeapon)
  319.  
  320. new args[4]
  321.  
  322. args[0] = iVictim
  323. args[1] = iKiller
  324. args[2] = iHS
  325. args[3] = get_weaponid(szWeaponLong)
  326.  
  327. set_task(0.1, "player_diePost", 0, args, 4)
  328. }
  329. }
  330. else if(ch_pCVar_enabled == 1)
  331. do_deathmsg(iKiller, iVictim, iHS, szWeapon)
  332. }
  333. else if(ch_pCVar_enabled == 1)
  334. do_deathmsg(iVictim, iVictim, iHS, szWeapon)
  335.  
  336. return PLUGIN_CONTINUE
  337. }
  338.  
  339. public player_diePost(arg[])
  340. {
  341. new szWeapon[24]
  342. new iKiller = arg[1]
  343.  
  344. get_weaponname(arg[3], szWeapon, 23)
  345. replace(szWeapon, 23, "weapon_", "")
  346.  
  347. do_deathmsg(iKiller, arg[0], arg[2], szWeapon)
  348.  
  349. set_msg_block(msgID_sayText, BLOCK_ONCE)
  350. set_user_info(iKiller, "name", g_szName[iKiller])
  351.  
  352. if(g_bAmxModeExists)
  353. set_pcvar_num(pCVar_amxMode, g_iLastAmxMode)
  354.  
  355. return PLUGIN_CONTINUE
  356. }
  357.  
  358. public msg_deathMsg()
  359. return ch_pCVar_enabled == 1 ? PLUGIN_HANDLED : PLUGIN_CONTINUE
  360.  
  361. /* originally from messages_stocks.inc, but simplified */
  362.  
  363. stock do_deathmsg(iKiller, iVictim, iHS, const szWeapon[])
  364. {
  365. message_begin(MSG_ALL, msgID_deathMsg)
  366. write_byte(iKiller)
  367. write_byte(iVictim)
  368. write_byte(iHS)
  369. write_string(szWeapon)
  370. message_end()
  371. }
  372.  
  373. /* --------------------------------------------------------------------------
  374. EOF
  375. -------------------------------------------------------------- */

_________________
****

Ők köszönték meg pixxa112 nek ezt a hozzászólást: Pele (2013.03.10. 10:02)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: freg lopás
HozzászólásElküldve: 2013.03.09. 22:39 
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
teszt nemvolt:
SMA Forráskód: [ Mindet kijelol ]
  1. /* Feel free to modify these HUD message values */
  2.  
  3. #define HUD_colorR 255 // default: 255
  4. #define HUD_colorG 155 // default: 155
  5. #define HUD_colorB 0 // default: 0
  6. #define HUD_posX 0.6 // default: 0.6
  7. #define HUD_posY 0.2 // default: 0.2
  8. #define HUD_fx 0 // default: 0
  9. #define HUD_fxTime 0.0 // default: 0.0
  10. #define HUD_holdTime 1.0 // default: 1.0
  11. #define HUD_fadeInTime 0.3 // default: 0.3
  12. #define HUD_fadeOutTime 2.0 // default: 2.0
  13. #define HUD_channel -1 // default: -1
  14.  
  15. /* -------------------------------------------------------------------------
  16. Nothing to edit below this point */
  17.  
  18. #include <amxmodx>
  19. #include <hamsandwich>
  20. #include <cstrike>
  21. #include <engine>
  22. #include <fun>
  23.  
  24. #define PLUGIN_TITLE "Kill assist (for CS)"
  25. #define PLUGIN_VERSION "1.2b"
  26. #define PLUGIN_AUTHOR "Digi (http://www.thehunters.ro)"
  27. #define PLUGIN_PUBLICVAR "killassist_version"
  28.  
  29. #define MAXPLAYERS 32 + 1
  30.  
  31. #define TEAM_NONE 0
  32. #define TEAM_TE 1
  33. #define TEAM_CT 2
  34. #define TEAM_SPEC 3
  35.  
  36. #define is_player(%1) (1 <= %1 <= g_iMaxPlayers)
  37.  
  38. new msgID_sayText
  39. new msgID_deathMsg
  40. new msgID_scoreInfo
  41. new msgID_money
  42.  
  43. new pCVar_amxMode
  44.  
  45. new pCVar_enabled
  46. new pCVar_minDamage
  47. new pCVar_giveFrags
  48. new pCVar_giveMoney
  49. new pCVar_onlyAlive
  50.  
  51. new ch_pCVar_enabled
  52. new ch_pCVar_minDamage
  53. new ch_pCVar_giveFrags
  54. new ch_pCVar_giveMoney
  55. new ch_pCVar_onlyAlive
  56.  
  57. new g_szName[MAXPLAYERS][32]
  58. new g_iTeam[MAXPLAYERS]
  59. new g_iDamage[MAXPLAYERS][MAXPLAYERS]
  60. new bool:g_bAlive[MAXPLAYERS] = {false, ...}
  61. new bool:g_bOnline[MAXPLAYERS] = {false, ...}
  62.  
  63. new g_iLastAmxMode
  64. new g_iMaxPlayers = 0
  65. new bool:g_bAmxModeExists = false
  66.  
  67. public plugin_init()
  68. {
  69. register_plugin(PLUGIN_TITLE, PLUGIN_VERSION, PLUGIN_AUTHOR)
  70. register_cvar(PLUGIN_PUBLICVAR, PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY)
  71.  
  72. pCVar_enabled = register_cvar("amx_killassist_enabled", "1")
  73. pCVar_minDamage = register_cvar("amx_killassist_mindamage", "50")
  74. pCVar_giveFrags = register_cvar("amx_killassist_givefrags", "1")
  75. pCVar_giveMoney = register_cvar("amx_killassist_givemoney", "300")
  76. pCVar_onlyAlive = register_cvar("amx_killassist_onlyalive", "0")
  77.  
  78. if(cvar_exists("amx_mode"))
  79. {
  80. pCVar_amxMode = get_cvar_pointer("amx_mode")
  81.  
  82. g_bAmxModeExists = true
  83. }
  84.  
  85. msgID_money = get_user_msgid("Money")
  86. msgID_sayText = get_user_msgid("SayText")
  87. msgID_deathMsg = get_user_msgid("DeathMsg")
  88. msgID_scoreInfo = get_user_msgid("ScoreInfo")
  89.  
  90. register_message(msgID_deathMsg, "msg_deathMsg")
  91.  
  92. register_logevent("event_roundStart", 2, "1=Round_Start")
  93.  
  94. register_event("Damage", "player_damage", "be", "2!0", "3=0", "4!0")
  95. register_event("DeathMsg", "player_die", "ae")
  96. register_event("TeamInfo", "player_joinTeam", "a")
  97.  
  98. RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
  99.  
  100. g_iMaxPlayers = get_maxplayers()
  101. }
  102.  
  103. public plugin_cfg() event_roundStart()
  104.  
  105. public event_roundStart()
  106. {
  107. ch_pCVar_enabled = clamp(get_pcvar_num(pCVar_enabled), 0, 2)
  108. ch_pCVar_minDamage = clamp(get_pcvar_num(pCVar_minDamage), 0, 9999)
  109. ch_pCVar_giveFrags = clamp(get_pcvar_num(pCVar_giveFrags), 0, 1)
  110. ch_pCVar_giveMoney = clamp(get_pcvar_num(pCVar_giveMoney), 0, 16000)
  111. ch_pCVar_onlyAlive = clamp(get_pcvar_num(pCVar_onlyAlive), 0, 1)
  112. }
  113.  
  114. public client_putinserver(iPlayer)
  115. {
  116. g_bOnline[iPlayer] = true
  117.  
  118. get_user_name(iPlayer, g_szName[iPlayer], 31)
  119. }
  120.  
  121. public client_disconnect(iPlayer)
  122. {
  123. g_iTeam[iPlayer] = TEAM_NONE
  124. g_bAlive[iPlayer] = false
  125. g_bOnline[iPlayer] = false
  126. }
  127.  
  128. public player_joinTeam()
  129. {
  130. new iPlayer, szTeam[2]
  131.  
  132. iPlayer = read_data(1)
  133. read_data(2, szTeam, 1)
  134.  
  135. switch(szTeam[0])
  136. {
  137. case 'T': g_iTeam[iPlayer] = TEAM_TE
  138. case 'C': g_iTeam[iPlayer] = TEAM_CT
  139. default: g_iTeam[iPlayer] = TEAM_SPEC // since you can't transfer yourself to unassigned team...
  140. }
  141.  
  142. return PLUGIN_CONTINUE
  143. }
  144.  
  145. public player_spawn(iPlayer)
  146. {
  147. if(!is_user_alive(iPlayer))
  148. return HAM_IGNORED
  149.  
  150. g_bAlive[iPlayer] = true // he's alive !
  151.  
  152. new szName[32]
  153.  
  154. get_user_name(iPlayer, szName, 31)
  155.  
  156. if(!equali(szName, g_szName[iPlayer])) // make sure he has his name !
  157. {
  158. set_msg_block(msgID_sayText, BLOCK_ONCE)
  159. set_user_info(iPlayer, "name", g_szName[iPlayer])
  160. }
  161.  
  162. // reset damage meters
  163.  
  164. for(new p = 1; p <= g_iMaxPlayers; p++)
  165. g_iDamage[iPlayer][p] = 0
  166.  
  167. return HAM_IGNORED
  168. }
  169.  
  170. public player_damage(iVictim)
  171. {
  172. if(!ch_pCVar_enabled || !is_player(iVictim))
  173. return PLUGIN_CONTINUE
  174.  
  175. new iAttacker = get_user_attacker(iVictim)
  176.  
  177. if(!is_player(iAttacker))
  178. return PLUGIN_CONTINUE
  179.  
  180. g_iDamage[iAttacker][iVictim] += read_data(2)
  181.  
  182. return PLUGIN_CONTINUE
  183. }
  184.  
  185. public player_die()
  186. {
  187. if(!ch_pCVar_enabled)
  188. return PLUGIN_CONTINUE
  189.  
  190. new iVictim = read_data(2)
  191. new iKiller = read_data(1)
  192. new iHS = read_data(3)
  193. new szWeapon[24]
  194. read_data(4, szWeapon, 23)
  195.  
  196. if(!is_player(iVictim))
  197. {
  198. do_deathmsg(iKiller, iVictim, iHS, szWeapon)
  199.  
  200. return PLUGIN_CONTINUE
  201. }
  202.  
  203. g_bAlive[iVictim] = false
  204.  
  205. if(!is_player(iKiller))
  206. {
  207. do_deathmsg(iKiller, iVictim, iHS, szWeapon)
  208.  
  209. return PLUGIN_CONTINUE
  210. }
  211.  
  212. new iKillerTeam = g_iTeam[iKiller]
  213.  
  214. if(iKiller != iVictim && g_iTeam[iVictim] != iKillerTeam)
  215. {
  216. new iKiller2 = 0
  217. new iDamage2 = 0
  218.  
  219. for(new p = 1; p <= g_iMaxPlayers; p++)
  220. {
  221. if(p != iKiller && g_bOnline[p] && (ch_pCVar_onlyAlive && g_bAlive[p] || !ch_pCVar_onlyAlive) && iKillerTeam == g_iTeam[p] && g_iDamage[p][iVictim] >= ch_pCVar_minDamage && g_iDamage[p][iVictim] > iDamage2)
  222. {
  223. iKiller2 = p
  224. iDamage2 = g_iDamage[p][iVictim]
  225. }
  226.  
  227. g_iDamage[p][iVictim] = 0
  228. }
  229.  
  230. if(iKiller2 > 0 && iDamage2 > ch_pCVar_minDamage)
  231. {
  232. if(ch_pCVar_giveFrags)
  233. {
  234. new iFrags = get_user_frags(iKiller2)+1
  235.  
  236. set_user_frags(iKiller2, iFrags)
  237.  
  238. message_begin(MSG_ALL, msgID_scoreInfo)
  239. write_byte(iKiller2)
  240. write_short(iFrags)
  241. write_short(get_user_deaths(iKiller2))
  242. write_short(0)
  243. write_short(iKillerTeam)
  244. message_end()
  245. }
  246.  
  247. if(ch_pCVar_giveMoney)
  248. {
  249. new iMoney = cs_get_user_money(iKiller2) + ch_pCVar_giveMoney
  250.  
  251. if(iMoney > 16000)
  252. iMoney = 16000
  253.  
  254. cs_set_user_money(iKiller2, iMoney)
  255.  
  256. if(g_bAlive[iKiller2]) // no reason to send a money message when the player has no hud :}
  257. {
  258. message_begin(MSG_ONE_UNRELIABLE, msgID_money, _, iKiller2)
  259. write_long(iMoney)
  260. write_byte(1)
  261. message_end()
  262. }
  263. }
  264.  
  265. if(ch_pCVar_enabled == 2)
  266. {
  267. new szName1[32], szName2[32], szName3[32], szMsg[128]
  268.  
  269. get_user_name(iKiller, szName1, 31)
  270. get_user_name(iKiller2, szName2, 31)
  271. get_user_name(iVictim, szName3, 31)
  272.  
  273. client_print(0, print_chat, "[<<eb@>> Freg lopas]: +1 freget kaptal: %s", szName3)
  274.  
  275. set_hudmessage(HUD_colorR, HUD_colorG, HUD_colorB, HUD_posX, HUD_posY, HUD_fx, HUD_fxTime, HUD_holdTime, HUD_fadeInTime, HUD_fadeOutTime, HUD_channel)
  276. show_hudmessage(0, szMsg)
  277. }
  278. else
  279. {
  280. new szName1[32], iName1Len, szName2[32], iName2Len, szNames[32], szWeaponLong[32]
  281.  
  282. iName1Len = get_user_name(iKiller, szName1, 31)
  283. iName2Len = get_user_name(iKiller2, szName2, 31)
  284.  
  285. g_szName[iKiller] = szName1
  286.  
  287. if(iName1Len < 14)
  288. {
  289. formatex(szName1, iName1Len, "%s", szName1)
  290. formatex(szName2, 28-iName1Len, "%s", szName2)
  291. }
  292. else if(iName2Len < 14)
  293. {
  294. formatex(szName1, 28-iName2Len, "%s", szName1)
  295. formatex(szName2, iName2Len, "%s", szName2)
  296. }
  297. else
  298. {
  299. formatex(szName1, 13, "%s", szName1)
  300. formatex(szName2, 13, "%s", szName2)
  301. }
  302.  
  303. formatex(szNames, 31, "%s + %s", szName1, szName2)
  304.  
  305. set_msg_block(msgID_sayText, BLOCK_ONCE)
  306. set_user_info(iKiller, "name", szNames)
  307.  
  308. if(g_bAmxModeExists)
  309. {
  310. g_iLastAmxMode = get_pcvar_num(pCVar_amxMode)
  311.  
  312. set_pcvar_num(pCVar_amxMode, 0)
  313. }
  314.  
  315. if(equali(szWeapon, "grenade"))
  316. szWeaponLong = "weapon_hegrenade"
  317. else
  318. formatex(szWeaponLong, 31, "weapon_%s", szWeapon)
  319.  
  320. new args[4]
  321.  
  322. args[0] = iVictim
  323. args[1] = iKiller
  324. args[2] = iHS
  325. args[3] = get_weaponid(szWeaponLong)
  326.  
  327. set_task(0.1, "player_diePost", 0, args, 4)
  328. }
  329. }
  330. else if(ch_pCVar_enabled == 1)
  331. do_deathmsg(iKiller, iVictim, iHS, szWeapon)
  332. }
  333. else if(ch_pCVar_enabled == 1)
  334. do_deathmsg(iVictim, iVictim, iHS, szWeapon)
  335.  
  336. return PLUGIN_CONTINUE
  337. }
  338.  
  339. public player_diePost(arg[])
  340. {
  341. new szWeapon[24]
  342. new iKiller = arg[1]
  343.  
  344. get_weaponname(arg[3], szWeapon, 23)
  345. replace(szWeapon, 23, "weapon_", "")
  346.  
  347. do_deathmsg(iKiller, arg[0], arg[2], szWeapon)
  348.  
  349. set_msg_block(msgID_sayText, BLOCK_ONCE)
  350. set_user_info(iKiller, "name", g_szName[iKiller])
  351.  
  352. if(g_bAmxModeExists)
  353. set_pcvar_num(pCVar_amxMode, g_iLastAmxMode)
  354.  
  355. return PLUGIN_CONTINUE
  356. }
  357.  
  358. public msg_deathMsg()
  359. return ch_pCVar_enabled == 1 ? PLUGIN_HANDLED : PLUGIN_CONTINUE
  360.  
  361. /* originally from messages_stocks.inc, but simplified */
  362.  
  363. stock do_deathmsg(iKiller, iVictim, iHS, const szWeapon[])
  364. {
  365. message_begin(MSG_ALL, msgID_deathMsg)
  366. write_byte(iKiller)
  367. write_byte(iVictim)
  368. write_byte(iHS)
  369. write_string(szWeapon)
  370. message_end()
  371. }
  372.  
  373. /* --------------------------------------------------------------------------
  374. EOF
  375. -------------------------------------------------------------- */

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


A hozzászólást 1 alkalommal szerkesztették, utoljára crazy` 2013.03.09. 22:43-kor.

Ők köszönték meg crazy` nek ezt a hozzászólást: bryan112.cfg (2013.03.11. 14:13)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: freg lopás
HozzászólásElküldve: 2013.03.09. 22:41 
Offline
Őskövület
Avatar

Csatlakozott: 2011.12.28. 00:35
Hozzászólások: 2736
Megköszönt másnak: 56 alkalommal
Megköszönték neki: 275 alkalommal
crazy` írta:
tesz nemvolt:
SMA Forráskód: [ Mindet kijelol ]
  1. /* Feel free to modify these HUD message values */
  2.  
  3. #define HUD_colorR 255 // default: 255
  4. #define HUD_colorG 155 // default: 155
  5. #define HUD_colorB 0 // default: 0
  6. #define HUD_posX 0.6 // default: 0.6
  7. #define HUD_posY 0.2 // default: 0.2
  8. #define HUD_fx 0 // default: 0
  9. #define HUD_fxTime 0.0 // default: 0.0
  10. #define HUD_holdTime 1.0 // default: 1.0
  11. #define HUD_fadeInTime 0.3 // default: 0.3
  12. #define HUD_fadeOutTime 2.0 // default: 2.0
  13. #define HUD_channel -1 // default: -1
  14.  
  15. /* -------------------------------------------------------------------------
  16. Nothing to edit below this point */
  17.  
  18. #include <amxmodx>
  19. #include <hamsandwich>
  20. #include <cstrike>
  21. #include <engine>
  22. #include <fun>
  23.  
  24. #define PLUGIN_TITLE "Kill assist (for CS)"
  25. #define PLUGIN_VERSION "1.2b"
  26. #define PLUGIN_AUTHOR "Digi (http://www.thehunters.ro)"
  27. #define PLUGIN_PUBLICVAR "killassist_version"
  28.  
  29. #define MAXPLAYERS 32 + 1
  30.  
  31. #define TEAM_NONE 0
  32. #define TEAM_TE 1
  33. #define TEAM_CT 2
  34. #define TEAM_SPEC 3
  35.  
  36. #define is_player(%1) (1 <= %1 <= g_iMaxPlayers)
  37.  
  38. new msgID_sayText
  39. new msgID_deathMsg
  40. new msgID_scoreInfo
  41. new msgID_money
  42.  
  43. new pCVar_amxMode
  44.  
  45. new pCVar_enabled
  46. new pCVar_minDamage
  47. new pCVar_giveFrags
  48. new pCVar_giveMoney
  49. new pCVar_onlyAlive
  50.  
  51. new ch_pCVar_enabled
  52. new ch_pCVar_minDamage
  53. new ch_pCVar_giveFrags
  54. new ch_pCVar_giveMoney
  55. new ch_pCVar_onlyAlive
  56.  
  57. new g_szName[MAXPLAYERS][32]
  58. new g_iTeam[MAXPLAYERS]
  59. new g_iDamage[MAXPLAYERS][MAXPLAYERS]
  60. new bool:g_bAlive[MAXPLAYERS] = {false, ...}
  61. new bool:g_bOnline[MAXPLAYERS] = {false, ...}
  62.  
  63. new g_iLastAmxMode
  64. new g_iMaxPlayers = 0
  65. new bool:g_bAmxModeExists = false
  66.  
  67. public plugin_init()
  68. {
  69. register_plugin(PLUGIN_TITLE, PLUGIN_VERSION, PLUGIN_AUTHOR)
  70. register_cvar(PLUGIN_PUBLICVAR, PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY)
  71.  
  72. pCVar_enabled = register_cvar("amx_killassist_enabled", "1")
  73. pCVar_minDamage = register_cvar("amx_killassist_mindamage", "50")
  74. pCVar_giveFrags = register_cvar("amx_killassist_givefrags", "1")
  75. pCVar_giveMoney = register_cvar("amx_killassist_givemoney", "300")
  76. pCVar_onlyAlive = register_cvar("amx_killassist_onlyalive", "0")
  77.  
  78. if(cvar_exists("amx_mode"))
  79. {
  80. pCVar_amxMode = get_cvar_pointer("amx_mode")
  81.  
  82. g_bAmxModeExists = true
  83. }
  84.  
  85. msgID_money = get_user_msgid("Money")
  86. msgID_sayText = get_user_msgid("SayText")
  87. msgID_deathMsg = get_user_msgid("DeathMsg")
  88. msgID_scoreInfo = get_user_msgid("ScoreInfo")
  89.  
  90. register_message(msgID_deathMsg, "msg_deathMsg")
  91.  
  92. register_logevent("event_roundStart", 2, "1=Round_Start")
  93.  
  94. register_event("Damage", "player_damage", "be", "2!0", "3=0", "4!0")
  95. register_event("DeathMsg", "player_die", "ae")
  96. register_event("TeamInfo", "player_joinTeam", "a")
  97.  
  98. RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
  99.  
  100. g_iMaxPlayers = get_maxplayers()
  101. }
  102.  
  103. public plugin_cfg() event_roundStart()
  104.  
  105. public event_roundStart()
  106. {
  107. ch_pCVar_enabled = clamp(get_pcvar_num(pCVar_enabled), 0, 2)
  108. ch_pCVar_minDamage = clamp(get_pcvar_num(pCVar_minDamage), 0, 9999)
  109. ch_pCVar_giveFrags = clamp(get_pcvar_num(pCVar_giveFrags), 0, 1)
  110. ch_pCVar_giveMoney = clamp(get_pcvar_num(pCVar_giveMoney), 0, 16000)
  111. ch_pCVar_onlyAlive = clamp(get_pcvar_num(pCVar_onlyAlive), 0, 1)
  112. }
  113.  
  114. public client_putinserver(iPlayer)
  115. {
  116. g_bOnline[iPlayer] = true
  117.  
  118. get_user_name(iPlayer, g_szName[iPlayer], 31)
  119. }
  120.  
  121. public client_disconnect(iPlayer)
  122. {
  123. g_iTeam[iPlayer] = TEAM_NONE
  124. g_bAlive[iPlayer] = false
  125. g_bOnline[iPlayer] = false
  126. }
  127.  
  128. public player_joinTeam()
  129. {
  130. new iPlayer, szTeam[2]
  131.  
  132. iPlayer = read_data(1)
  133. read_data(2, szTeam, 1)
  134.  
  135. switch(szTeam[0])
  136. {
  137. case 'T': g_iTeam[iPlayer] = TEAM_TE
  138. case 'C': g_iTeam[iPlayer] = TEAM_CT
  139. default: g_iTeam[iPlayer] = TEAM_SPEC // since you can't transfer yourself to unassigned team...
  140. }
  141.  
  142. return PLUGIN_CONTINUE
  143. }
  144.  
  145. public player_spawn(iPlayer)
  146. {
  147. if(!is_user_alive(iPlayer))
  148. return HAM_IGNORED
  149.  
  150. g_bAlive[iPlayer] = true // he's alive !
  151.  
  152. new szName[32]
  153.  
  154. get_user_name(iPlayer, szName, 31)
  155.  
  156. if(!equali(szName, g_szName[iPlayer])) // make sure he has his name !
  157. {
  158. set_msg_block(msgID_sayText, BLOCK_ONCE)
  159. set_user_info(iPlayer, "name", g_szName[iPlayer])
  160. }
  161.  
  162. // reset damage meters
  163.  
  164. for(new p = 1; p <= g_iMaxPlayers; p++)
  165. g_iDamage[iPlayer][p] = 0
  166.  
  167. return HAM_IGNORED
  168. }
  169.  
  170. public player_damage(iVictim)
  171. {
  172. if(!ch_pCVar_enabled || !is_player(iVictim))
  173. return PLUGIN_CONTINUE
  174.  
  175. new iAttacker = get_user_attacker(iVictim)
  176.  
  177. if(!is_player(iAttacker))
  178. return PLUGIN_CONTINUE
  179.  
  180. g_iDamage[iAttacker][iVictim] += read_data(2)
  181.  
  182. return PLUGIN_CONTINUE
  183. }
  184.  
  185. public player_die()
  186. {
  187. if(!ch_pCVar_enabled)
  188. return PLUGIN_CONTINUE
  189.  
  190. new iVictim = read_data(2)
  191. new iKiller = read_data(1)
  192. new iHS = read_data(3)
  193. new szWeapon[24]
  194. read_data(4, szWeapon, 23)
  195.  
  196. if(!is_player(iVictim))
  197. {
  198. do_deathmsg(iKiller, iVictim, iHS, szWeapon)
  199.  
  200. return PLUGIN_CONTINUE
  201. }
  202.  
  203. g_bAlive[iVictim] = false
  204.  
  205. if(!is_player(iKiller))
  206. {
  207. do_deathmsg(iKiller, iVictim, iHS, szWeapon)
  208.  
  209. return PLUGIN_CONTINUE
  210. }
  211.  
  212. new iKillerTeam = g_iTeam[iKiller]
  213.  
  214. if(iKiller != iVictim && g_iTeam[iVictim] != iKillerTeam)
  215. {
  216. new iKiller2 = 0
  217. new iDamage2 = 0
  218.  
  219. for(new p = 1; p <= g_iMaxPlayers; p++)
  220. {
  221. if(p != iKiller && g_bOnline[p] && (ch_pCVar_onlyAlive && g_bAlive[p] || !ch_pCVar_onlyAlive) && iKillerTeam == g_iTeam[p] && g_iDamage[p][iVictim] >= ch_pCVar_minDamage && g_iDamage[p][iVictim] > iDamage2)
  222. {
  223. iKiller2 = p
  224. iDamage2 = g_iDamage[p][iVictim]
  225. }
  226.  
  227. g_iDamage[p][iVictim] = 0
  228. }
  229.  
  230. if(iKiller2 > 0 && iDamage2 > ch_pCVar_minDamage)
  231. {
  232. if(ch_pCVar_giveFrags)
  233. {
  234. new iFrags = get_user_frags(iKiller2)+1
  235.  
  236. set_user_frags(iKiller2, iFrags)
  237.  
  238. message_begin(MSG_ALL, msgID_scoreInfo)
  239. write_byte(iKiller2)
  240. write_short(iFrags)
  241. write_short(get_user_deaths(iKiller2))
  242. write_short(0)
  243. write_short(iKillerTeam)
  244. message_end()
  245. }
  246.  
  247. if(ch_pCVar_giveMoney)
  248. {
  249. new iMoney = cs_get_user_money(iKiller2) + ch_pCVar_giveMoney
  250.  
  251. if(iMoney > 16000)
  252. iMoney = 16000
  253.  
  254. cs_set_user_money(iKiller2, iMoney)
  255.  
  256. if(g_bAlive[iKiller2]) // no reason to send a money message when the player has no hud :}
  257. {
  258. message_begin(MSG_ONE_UNRELIABLE, msgID_money, _, iKiller2)
  259. write_long(iMoney)
  260. write_byte(1)
  261. message_end()
  262. }
  263. }
  264.  
  265. if(ch_pCVar_enabled == 2)
  266. {
  267. new szName1[32], szName2[32], szName3[32], szMsg[128]
  268.  
  269. get_user_name(iKiller, szName1, 31)
  270. get_user_name(iKiller2, szName2, 31)
  271. get_user_name(iVictim, szName3, 31)
  272.  
  273. client_print(0, print_chat, "[<<eb@>> Freg lopas]: +1 freget kaptal: %s", szName3)
  274.  
  275. set_hudmessage(HUD_colorR, HUD_colorG, HUD_colorB, HUD_posX, HUD_posY, HUD_fx, HUD_fxTime, HUD_holdTime, HUD_fadeInTime, HUD_fadeOutTime, HUD_channel)
  276. show_hudmessage(0, szMsg)
  277. }
  278. else
  279. {
  280. new szName1[32], iName1Len, szName2[32], iName2Len, szNames[32], szWeaponLong[32]
  281.  
  282. iName1Len = get_user_name(iKiller, szName1, 31)
  283. iName2Len = get_user_name(iKiller2, szName2, 31)
  284.  
  285. g_szName[iKiller] = szName1
  286.  
  287. if(iName1Len < 14)
  288. {
  289. formatex(szName1, iName1Len, "%s", szName1)
  290. formatex(szName2, 28-iName1Len, "%s", szName2)
  291. }
  292. else if(iName2Len < 14)
  293. {
  294. formatex(szName1, 28-iName2Len, "%s", szName1)
  295. formatex(szName2, iName2Len, "%s", szName2)
  296. }
  297. else
  298. {
  299. formatex(szName1, 13, "%s", szName1)
  300. formatex(szName2, 13, "%s", szName2)
  301. }
  302.  
  303. formatex(szNames, 31, "%s + %s", szName1, szName2)
  304.  
  305. set_msg_block(msgID_sayText, BLOCK_ONCE)
  306. set_user_info(iKiller, "name", szNames)
  307.  
  308. if(g_bAmxModeExists)
  309. {
  310. g_iLastAmxMode = get_pcvar_num(pCVar_amxMode)
  311.  
  312. set_pcvar_num(pCVar_amxMode, 0)
  313. }
  314.  
  315. if(equali(szWeapon, "grenade"))
  316. szWeaponLong = "weapon_hegrenade"
  317. else
  318. formatex(szWeaponLong, 31, "weapon_%s", szWeapon)
  319.  
  320. new args[4]
  321.  
  322. args[0] = iVictim
  323. args[1] = iKiller
  324. args[2] = iHS
  325. args[3] = get_weaponid(szWeaponLong)
  326.  
  327. set_task(0.1, "player_diePost", 0, args, 4)
  328. }
  329. }
  330. else if(ch_pCVar_enabled == 1)
  331. do_deathmsg(iKiller, iVictim, iHS, szWeapon)
  332. }
  333. else if(ch_pCVar_enabled == 1)
  334. do_deathmsg(iVictim, iVictim, iHS, szWeapon)
  335.  
  336. return PLUGIN_CONTINUE
  337. }
  338.  
  339. public player_diePost(arg[])
  340. {
  341. new szWeapon[24]
  342. new iKiller = arg[1]
  343.  
  344. get_weaponname(arg[3], szWeapon, 23)
  345. replace(szWeapon, 23, "weapon_", "")
  346.  
  347. do_deathmsg(iKiller, arg[0], arg[2], szWeapon)
  348.  
  349. set_msg_block(msgID_sayText, BLOCK_ONCE)
  350. set_user_info(iKiller, "name", g_szName[iKiller])
  351.  
  352. if(g_bAmxModeExists)
  353. set_pcvar_num(pCVar_amxMode, g_iLastAmxMode)
  354.  
  355. return PLUGIN_CONTINUE
  356. }
  357.  
  358. public msg_deathMsg()
  359. return ch_pCVar_enabled == 1 ? PLUGIN_HANDLED : PLUGIN_CONTINUE
  360.  
  361. /* originally from messages_stocks.inc, but simplified */
  362.  
  363. stock do_deathmsg(iKiller, iVictim, iHS, const szWeapon[])
  364. {
  365. message_begin(MSG_ALL, msgID_deathMsg)
  366. write_byte(iKiller)
  367. write_byte(iVictim)
  368. write_byte(iHS)
  369. write_string(szWeapon)
  370. message_end()
  371. }
  372.  
  373. /* --------------------------------------------------------------------------
  374. EOF
  375. -------------------------------------------------------------- */


Köszi.

Nem működik valaki ki tudná javítani?

_________________
****


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 8 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