hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2025.07.05. 00:06



Jelenlévő felhasználók

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

A legtöbb felhasználó (2761 fő) 2025.01.09. 20:06-kor tartózkodott itt.

Regisztrált felhasználók: Bing [Bot], Google [Bot]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  [8 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Anti freg lopás plugin bug
HozzászólásElküldve:2012.08.05. 14:54 
Offline
Őstag
Avatar

Csatlakozott:2010.04.16. 16:50
Hozzászólások:1342
Megköszönt másnak: 42 alkalommal
Megköszönték neki: 58 alkalommal
Van az anti freg lopás plugin (Kill assist) na és az a gond bele, hogy ha ez a plugin bent van akkor sokszor elszál az adminsága az adminoknak és ujra kell tölteni "amx_reloadadmins" parancsal és csak akkor lessz jó ujra... valami megoldás van erre vagy kilehetne küszöböli ezt a bugot valahogy?? Gondoltam arra is hogy berakok egy plugint ami pl minden csatlakozáskor végrehajtja a parancsot...de ink megkérdem elsönek, hogy nem e tud rá valaki jobb megoldást. jah és még annyi, hogy az adminok steam id-re vannak adva szóval nem névre mert akkor megérteném, hogy elszálna.

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Anti freg lopás plugin bug
HozzászólásElküldve:2012.08.05. 15:02 
Offline
Őstag

Csatlakozott:2011.06.12. 20:51
Hozzászólások:1089
Megköszönt másnak: 3 alkalommal
Megköszönték neki: 44 alkalommal
Kód:
  1. valami megoldás van erre vagy kilehetne küszöböli ezt a bugot valahogy??

igen küld az sma-t

_________________
[img]semmi[/img]


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Anti freg lopás plugin bug
HozzászólásElküldve:2012.08.05. 17:41 
Offline
Signore Senior
Avatar

Csatlakozott:2011.09.09. 17:39
Hozzászólások:4020
Megköszönt másnak: 12 alkalommal
Megköszönték neki: 139 alkalommal
fuck604 írta:
Kód:
  1. valami megoldás van erre vagy kilehetne küszöböli ezt a bugot valahogy??

igen küld az sma-t


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Anti freg lopás plugin bug
HozzászólásElküldve:2012.08.06. 11:29 
Offline
Őstag
Avatar

Csatlakozott:2010.04.16. 16:50
Hozzászólások:1342
Megköszönt másnak: 42 alkalommal
Megköszönték neki: 58 alkalommal
Kód:
  1. /* --------------------------------------------------------------------------

  2.         Kill assist (for CS) v1.2b

  3.           by Digi (a.k.a. Hunter-Digital)

  4.             www.thehunters.ro

  5.               -----------------------------------------------------------------

  6.  

  7.         Description:

  8.  

  9.           When a player gets killed, this plugin checks if another player, from the same team,

  10.           did enough damage to the victim so that he could be an accomplice to the kill and

  11.           the assister will also receive a frag

  12.           (all of these are cvar controlled)

  13.  

  14.  

  15.         CVars and default values:

  16.  

  17.           - amx_killassist_enable 0/1/2 (default: 1)

  18.             Enable modes: 0 = Disable / 1 = Enable with DeathMsg / 2 = Enable with HUD message

  19.  

  20.           - amx_killassist_mindamage 1-9999 (default: 50)

  21.             Minimum amount of damage to deal to be nominated for an assisted kill

  22.  

  23.           - amx_killassist_givefrags 0/1 (default: 1)

  24.             Give or not give the assister frags

  25.  

  26.           - amx_killassist_givemoney 0-16000 (default: 300)

  27.             Give or not give the assister some money, 0 disables, 1 or more sets how much money

  28.  

  29.           - amx_killassist_onlyalive 0/1 (default: 0)

  30.             Only alive players can be of assistance in killing other players

  31.  

  32.  

  33.         Credits and thanks:

  34.  

  35.           - ConnorMcLeod - for helping with quick name changing

  36.           - arkshine - for helping with name squeeze

  37.           - joaquimandrade - code improvements

  38.           - anakin_cstrike - code improvements

  39.           - Nextra - more code improvements

  40.           - ajvn - some ideas

  41.           - Dores - and more code improvements

  42.           - frearmer - hud message sugestion

  43.  

  44.  

  45.         Changelog:

  46.  

  47.           v1.2b - modified public variable to "killassist_version" and fixed deathmsg not showing when you suicide with worldspawn or an entity

  48.           v1.2 - added no-name-changing support, prints HUD message, to activate, set enabled to 2

  49.           v1.1b - simplified cvar checking using clamp()

  50.           v1.1 - converted to CS only, new cvars: amx_killassist_onlyalive, amx_killassist_givemoney, enriched cvar handling, added team cache and fixed some bugs

  51.           v1.0d - Removed useless stuff xD, added pcvar on amx_mode and used formatex()

  52.           v1.0c - Some modifications and added g_bOnline

  53.           v1.0b - Fixed admin name bug

  54.           v1.0 - Release

  55.  

  56.                 -------------------------------------------------------------- */

  57.  

  58. /* Feel free to modify these HUD message values */

  59.  

  60. #define HUD_colorR              255     // default: 255

  61. #define HUD_colorG              155     // default: 155

  62. #define HUD_colorB              0       // default: 0

  63. #define HUD_posX                        0.6     // default: 0.6

  64. #define HUD_posY                        0.2     // default: 0.2

  65. #define HUD_fx                  0       // default: 0

  66. #define HUD_fxTime              0.0     // default: 0.0

  67. #define HUD_holdTime            1.0     // default: 1.0

  68. #define HUD_fadeInTime          0.3     // default: 0.3

  69. #define HUD_fadeOutTime         2.0     // default: 2.0

  70. #define HUD_channel             -1      // default: -1

  71.  

  72. /* -------------------------------------------------------------------------

  73.         Nothing to edit below this point */

  74.  

  75. #include <amxmodx>

  76. #include <hamsandwich>

  77. #include <cstrike>

  78. #include <engine>

  79. #include <fun>

  80.  

  81. #define PLUGIN_TITLE            "Kill assist (for CS)"

  82. #define PLUGIN_VERSION          "1.2b"

  83. #define PLUGIN_AUTHOR           "Digi (www.thehunters.ro)"

  84. #define PLUGIN_PUBLICVAR        "killassist_version"

  85.  

  86. #define MAXPLAYERS              32 + 1

  87.  

  88. #define TEAM_NONE                       0

  89. #define TEAM_TE                 1

  90. #define TEAM_CT                 2

  91. #define TEAM_SPEC                       3

  92.  

  93. #define is_player(%1) (1 <= %1 <= g_iMaxPlayers)

  94.  

  95. new msgID_sayText

  96. new msgID_deathMsg

  97. new msgID_scoreInfo

  98. new msgID_money

  99.  

  100. new pCVar_amxMode

  101.  

  102. new pCVar_enabled

  103. new pCVar_minDamage

  104. new pCVar_giveFrags

  105. new pCVar_giveMoney

  106. new pCVar_onlyAlive

  107.  

  108. new ch_pCVar_enabled

  109. new ch_pCVar_minDamage

  110. new ch_pCVar_giveFrags

  111. new ch_pCVar_giveMoney

  112. new ch_pCVar_onlyAlive

  113.  

  114. new g_szName[MAXPLAYERS][32]

  115. new g_iTeam[MAXPLAYERS]

  116. new g_iDamage[MAXPLAYERS][MAXPLAYERS]

  117. new bool:g_bAlive[MAXPLAYERS] = {false, ...}

  118. new bool:g_bOnline[MAXPLAYERS] = {false, ...}

  119.  

  120. new g_iLastAmxMode

  121. new g_iMaxPlayers = 0

  122. new bool:g_bAmxModeExists = false

  123.  

  124. public plugin_init()

  125. {

  126.         register_plugin(PLUGIN_TITLE, PLUGIN_VERSION, PLUGIN_AUTHOR)

  127.         register_cvar(PLUGIN_PUBLICVAR, PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY)

  128.  

  129.         pCVar_enabled = register_cvar("amx_killassist_enabled", "1")

  130.         pCVar_minDamage = register_cvar("amx_killassist_mindamage", "50")

  131.         pCVar_giveFrags = register_cvar("amx_killassist_givefrags", "1")

  132.         pCVar_giveMoney = register_cvar("amx_killassist_givemoney", "300")

  133.         pCVar_onlyAlive = register_cvar("amx_killassist_onlyalive", "0")

  134.  

  135.         if(cvar_exists("amx_mode"))

  136.         {

  137.                 pCVar_amxMode = get_cvar_pointer("amx_mode")

  138.  

  139.                 g_bAmxModeExists = true

  140.         }

  141.  

  142.         msgID_money = get_user_msgid("Money")

  143.         msgID_sayText = get_user_msgid("SayText")

  144.         msgID_deathMsg = get_user_msgid("DeathMsg")

  145.         msgID_scoreInfo = get_user_msgid("ScoreInfo")

  146.  

  147.         register_message(msgID_deathMsg, "msg_deathMsg")

  148.  

  149.         register_logevent("event_roundStart", 2, "1=Round_Start")

  150.  

  151.         register_event("Damage", "player_damage", "be", "2!0", "3=0", "4!0")

  152.         register_event("DeathMsg", "player_die", "ae")

  153.         register_event("TeamInfo", "player_joinTeam", "a")

  154.  

  155.         RegisterHam(Ham_Spawn, "player", "player_spawn", 1)

  156.  

  157.         g_iMaxPlayers = get_maxplayers()

  158. }

  159.  

  160. public plugin_cfg() event_roundStart()

  161.  

  162. public event_roundStart()

  163. {

  164.         ch_pCVar_enabled = clamp(get_pcvar_num(pCVar_enabled), 0, 2)

  165.         ch_pCVar_minDamage = clamp(get_pcvar_num(pCVar_minDamage), 0, 9999)

  166.         ch_pCVar_giveFrags = clamp(get_pcvar_num(pCVar_giveFrags), 0, 1)

  167.         ch_pCVar_giveMoney = clamp(get_pcvar_num(pCVar_giveMoney), 0, 16000)

  168.         ch_pCVar_onlyAlive = clamp(get_pcvar_num(pCVar_onlyAlive), 0, 1)

  169. }

  170.  

  171. public client_putinserver(iPlayer)

  172. {

  173.         g_bOnline[iPlayer] = true

  174.  

  175.         get_user_name(iPlayer, g_szName[iPlayer], 31)

  176. }

  177.  

  178. public client_disconnect(iPlayer)

  179. {

  180.         g_iTeam[iPlayer] = TEAM_NONE

  181.         g_bAlive[iPlayer] = false

  182.         g_bOnline[iPlayer] = false

  183. }

  184.  

  185. public player_joinTeam()

  186. {

  187.         new iPlayer, szTeam[2]

  188.  

  189.         iPlayer = read_data(1)

  190.         read_data(2, szTeam, 1)

  191.  

  192.         switch(szTeam[0])

  193.         {

  194.                 case 'T': g_iTeam[iPlayer] = TEAM_TE

  195.                 case 'C': g_iTeam[iPlayer] = TEAM_CT

  196.                 default: g_iTeam[iPlayer] = TEAM_SPEC // since you can't transfer yourself to unassigned team...

  197.         }

  198.  

  199.         return PLUGIN_CONTINUE

  200. }

  201.  

  202. public player_spawn(iPlayer)

  203. {

  204.         if(!is_user_alive(iPlayer))

  205.                 return HAM_IGNORED

  206.  

  207.         g_bAlive[iPlayer] = true // he's alive !

  208.  

  209.         new szName[32]

  210.  

  211.         get_user_name(iPlayer, szName, 31)

  212.  

  213.         if(!equali(szName, g_szName[iPlayer])) // make sure he has his name !

  214.         {

  215.                 set_msg_block(msgID_sayText, BLOCK_ONCE)

  216.                 set_user_info(iPlayer, "name", g_szName[iPlayer])

  217.         }

  218.  

  219.         // reset damage meters

  220.  

  221.         for(new p = 1; p <= g_iMaxPlayers; p++)

  222.                 g_iDamage[iPlayer][p] = 0

  223.  

  224.         return HAM_IGNORED

  225. }

  226.  

  227. public player_damage(iVictim)

  228. {

  229.         if(!ch_pCVar_enabled || !is_player(iVictim))

  230.                 return PLUGIN_CONTINUE

  231.  

  232.         new iAttacker = get_user_attacker(iVictim)

  233.  

  234.         if(!is_player(iAttacker))

  235.                 return PLUGIN_CONTINUE

  236.  

  237.         g_iDamage[iAttacker][iVictim] += read_data(2)

  238.  

  239.         return PLUGIN_CONTINUE

  240. }

  241.  

  242. public player_die()

  243. {

  244.         if(!ch_pCVar_enabled)

  245.                 return PLUGIN_CONTINUE

  246.  

  247.         new iVictim = read_data(2)

  248.         new iKiller = read_data(1)

  249.         new iHS = read_data(3)

  250.         new szWeapon[24]

  251.         read_data(4, szWeapon, 23)

  252.  

  253.         if(!is_player(iVictim))

  254.         {

  255.                 do_deathmsg(iKiller, iVictim, iHS, szWeapon)

  256.  

  257.                 return PLUGIN_CONTINUE

  258.         }

  259.  

  260.         g_bAlive[iVictim] = false

  261.  

  262.         if(!is_player(iKiller))

  263.         {

  264.                 do_deathmsg(iKiller, iVictim, iHS, szWeapon)

  265.  

  266.                 return PLUGIN_CONTINUE

  267.         }

  268.  

  269.         new iKillerTeam = g_iTeam[iKiller]

  270.  

  271.         if(iKiller != iVictim && g_iTeam[iVictim] != iKillerTeam)

  272.         {

  273.                 new iKiller2 = 0

  274.                 new iDamage2 = 0

  275.  

  276.                 for(new p = 1; p <= g_iMaxPlayers; p++)

  277.                 {

  278.                         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)

  279.                         {

  280.                                 iKiller2 = p

  281.                                 iDamage2 = g_iDamage[p][iVictim]

  282.                         }

  283.  

  284.                         g_iDamage[p][iVictim] = 0

  285.                 }

  286.  

  287.                 if(iKiller2 > 0 && iDamage2 > ch_pCVar_minDamage)

  288.                 {

  289.                         if(ch_pCVar_giveFrags)

  290.                         {

  291.                                 new iFrags = get_user_frags(iKiller2)+1

  292.  

  293.                                 set_user_frags(iKiller2, iFrags)

  294.  

  295.                                 message_begin(MSG_ALL, msgID_scoreInfo)

  296.                                 write_byte(iKiller2)

  297.                                 write_short(iFrags)

  298.                                 write_short(get_user_deaths(iKiller2))

  299.                                 write_short(0)

  300.                                 write_short(iKillerTeam)

  301.                                 message_end()

  302.                         }

  303.  

  304.                         if(ch_pCVar_giveMoney)

  305.                         {

  306.                                 new iMoney = cs_get_user_money(iKiller2) + ch_pCVar_giveMoney

  307.  

  308.                                 if(iMoney > 16000)

  309.                                         iMoney = 16000

  310.  

  311.                                 cs_set_user_money(iKiller2, iMoney)

  312.  

  313.                                 if(g_bAlive[iKiller2]) // no reason to send a money message when the player has no hud :}

  314.                                 {

  315.                                         message_begin(MSG_ONE_UNRELIABLE, msgID_money, _, iKiller2)

  316.                                         write_long(iMoney)

  317.                                         write_byte(1)

  318.                                         message_end()

  319.                                 }

  320.                         }

  321.  

  322.                         if(ch_pCVar_enabled == 2)

  323.                         {

  324.                                 new szName1[32], szName2[32], szName3[32], szMsg[128]

  325.  

  326.                                 get_user_name(iKiller, szName1, 31)

  327.                                 get_user_name(iKiller2, szName2, 31)

  328.                                 get_user_name(iVictim, szName3, 31)

  329.  

  330.                                 formatex(szMsg, 63, "%s killed %s assisted by %s", szName1, szName3, szName2)

  331.  

  332.                                 set_hudmessage(HUD_colorR, HUD_colorG, HUD_colorB, HUD_posX, HUD_posY, HUD_fx, HUD_fxTime, HUD_holdTime, HUD_fadeInTime, HUD_fadeOutTime, HUD_channel)

  333.                                 show_hudmessage(0, szMsg)

  334.                         }

  335.                         else

  336.                         {

  337.                                 new szName1[32], iName1Len, szName2[32], iName2Len, szNames[32], szWeaponLong[32]

  338.  

  339.                                 iName1Len = get_user_name(iKiller, szName1, 31)

  340.                                 iName2Len = get_user_name(iKiller2, szName2, 31)

  341.  

  342.                                 g_szName[iKiller] = szName1

  343.  

  344.                                 if(iName1Len < 14)

  345.                                 {

  346.                                         formatex(szName1, iName1Len, "%s", szName1)

  347.                                         formatex(szName2, 28-iName1Len, "%s", szName2)

  348.                                 }

  349.                                 else if(iName2Len < 14)

  350.                                 {

  351.                                         formatex(szName1, 28-iName2Len, "%s", szName1)

  352.                                         formatex(szName2, iName2Len, "%s", szName2)

  353.                                 }

  354.                                 else

  355.                                 {

  356.                                         formatex(szName1, 13, "%s", szName1)

  357.                                         formatex(szName2, 13, "%s", szName2)

  358.                                 }

  359.  

  360.                                 formatex(szNames, 31, "%s + %s", szName1, szName2)

  361.  

  362.                                 set_msg_block(msgID_sayText, BLOCK_ONCE)

  363.                                 set_user_info(iKiller, "name", szNames)

  364.  

  365.                                 if(g_bAmxModeExists)

  366.                                 {

  367.                                         g_iLastAmxMode = get_pcvar_num(pCVar_amxMode)

  368.  

  369.                                         set_pcvar_num(pCVar_amxMode, 0)

  370.                                 }

  371.  

  372.                                 if(equali(szWeapon, "grenade"))

  373.                                         szWeaponLong = "weapon_hegrenade"

  374.                                 else

  375.                                         formatex(szWeaponLong, 31, "weapon_%s", szWeapon)

  376.  

  377.                                 new args[4]

  378.  

  379.                                 args[0] = iVictim

  380.                                 args[1] = iKiller

  381.                                 args[2] = iHS

  382.                                 args[3] = get_weaponid(szWeaponLong)

  383.  

  384.                                 set_task(0.1, "player_diePost", 0, args, 4)

  385.                         }

  386.                 }

  387.                 else if(ch_pCVar_enabled == 1)

  388.                         do_deathmsg(iKiller, iVictim, iHS, szWeapon)

  389.         }

  390.         else if(ch_pCVar_enabled == 1)

  391.                 do_deathmsg(iVictim, iVictim, iHS, szWeapon)

  392.  

  393.         return PLUGIN_CONTINUE

  394. }

  395.  

  396. public player_diePost(arg[])

  397. {

  398.         new szWeapon[24]

  399.         new iKiller = arg[1]

  400.  

  401.         get_weaponname(arg[3], szWeapon, 23)

  402.         replace(szWeapon, 23, "weapon_", "")

  403.  

  404.         do_deathmsg(iKiller, arg[0], arg[2], szWeapon)

  405.  

  406.         set_msg_block(msgID_sayText, BLOCK_ONCE)

  407.         set_user_info(iKiller, "name", g_szName[iKiller])

  408.  

  409.         if(g_bAmxModeExists)

  410.                 set_pcvar_num(pCVar_amxMode, g_iLastAmxMode)

  411.  

  412.         return PLUGIN_CONTINUE

  413. }

  414.  

  415. public msg_deathMsg()

  416.         return ch_pCVar_enabled == 1 ? PLUGIN_HANDLED : PLUGIN_CONTINUE

  417.  

  418. /* originally from messages_stocks.inc, but simplified */

  419.  

  420. stock do_deathmsg(iKiller, iVictim, iHS, const szWeapon[])

  421. {

  422.         message_begin(MSG_ALL, msgID_deathMsg)

  423.         write_byte(iKiller)

  424.         write_byte(iVictim)

  425.         write_byte(iHS)

  426.         write_string(szWeapon)

  427.         message_end()

  428. }

  429.  

  430. /* --------------------------------------------------------------------------

  431.         EOF

  432.                 -------------------------------------------------------------- */

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Anti freg lopás plugin bug
HozzászólásElküldve:2012.08.06. 13:46 
Offline
Őstag

Csatlakozott:2011.06.12. 20:51
Hozzászólások:1089
Megköszönt másnak: 3 alkalommal
Megköszönték neki: 44 alkalommal
aki nem tudná mit csináltam 333.sor
Kód:
  1. #define HUD_colorR              255     // default: 255

  2. #define HUD_colorG              155     // default: 155

  3. #define HUD_colorB              0       // default: 0

  4. #define HUD_posX                        0.6     // default: 0.6

  5. #define HUD_posY                        0.2     // default: 0.2

  6. #define HUD_fx                  0       // default: 0

  7. #define HUD_fxTime              0.0     // default: 0.0

  8. #define HUD_holdTime            1.0     // default: 1.0

  9. #define HUD_fadeInTime          0.3     // default: 0.3

  10. #define HUD_fadeOutTime         2.0     // default: 2.0

  11. #define HUD_channel             -1      // default: -1

  12.  

  13. /* -------------------------------------------------------------------------

  14.         Nothing to edit below this point */

  15.  

  16. #include <amxmodx>

  17. #include <hamsandwich>

  18. #include <cstrike>

  19. #include <engine>

  20. #include <fun>

  21.  

  22. #define PLUGIN_TITLE            "Kill assist (for CS)"

  23. #define PLUGIN_VERSION          "1.2b"

  24. #define PLUGIN_AUTHOR           "Digi (http://www.thehunters.ro)"

  25. #define PLUGIN_PUBLICVAR        "killassist_version"

  26.  

  27. #define MAXPLAYERS              32 + 1

  28.  

  29. #define TEAM_NONE                       0

  30. #define TEAM_TE                 1

  31. #define TEAM_CT                 2

  32. #define TEAM_SPEC                       3

  33.  

  34. #define is_player(%1) (1 <= %1 <= g_iMaxPlayers)

  35.  

  36. new msgID_sayText

  37. new msgID_deathMsg

  38. new msgID_scoreInfo

  39. new msgID_money

  40.  

  41. new pCVar_amxMode

  42.  

  43. new pCVar_enabled

  44. new pCVar_minDamage

  45. new pCVar_giveFrags

  46. new pCVar_giveMoney

  47. new pCVar_onlyAlive

  48.  

  49. new ch_pCVar_enabled

  50. new ch_pCVar_minDamage

  51. new ch_pCVar_giveFrags

  52. new ch_pCVar_giveMoney

  53. new ch_pCVar_onlyAlive

  54.  

  55. new g_szName[MAXPLAYERS][32]

  56. new g_iTeam[MAXPLAYERS]

  57. new g_iDamage[MAXPLAYERS][MAXPLAYERS]

  58. new bool:g_bAlive[MAXPLAYERS] = {false, ...}

  59. new bool:g_bOnline[MAXPLAYERS] = {false, ...}

  60.  

  61. new g_iLastAmxMode

  62. new g_iMaxPlayers = 0

  63. new bool:g_bAmxModeExists = false

  64.  

  65. public plugin_init()

  66. {

  67.         register_plugin(PLUGIN_TITLE, PLUGIN_VERSION, PLUGIN_AUTHOR)

  68.         register_cvar(PLUGIN_PUBLICVAR, PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY)

  69.  

  70.         pCVar_enabled = register_cvar("amx_killassist_enabled", "1")

  71.         pCVar_minDamage = register_cvar("amx_killassist_mindamage", "50")

  72.         pCVar_giveFrags = register_cvar("amx_killassist_givefrags", "1")

  73.         pCVar_giveMoney = register_cvar("amx_killassist_givemoney", "300")

  74.         pCVar_onlyAlive = register_cvar("amx_killassist_onlyalive", "0")

  75.  

  76.         if(cvar_exists("amx_mode"))

  77.         {

  78.                 pCVar_amxMode = get_cvar_pointer("amx_mode")

  79.  

  80.                 g_bAmxModeExists = true

  81.         }

  82.  

  83.         msgID_money = get_user_msgid("Money")

  84.         msgID_sayText = get_user_msgid("SayText")

  85.         msgID_deathMsg = get_user_msgid("DeathMsg")

  86.         msgID_scoreInfo = get_user_msgid("ScoreInfo")

  87.  

  88.         register_message(msgID_deathMsg, "msg_deathMsg")

  89.  

  90.         register_logevent("event_roundStart", 2, "1=Round_Start")

  91.  

  92.         register_event("Damage", "player_damage", "be", "2!0", "3=0", "4!0")

  93.         register_event("DeathMsg", "player_die", "ae")

  94.         register_event("TeamInfo", "player_joinTeam", "a")

  95.  

  96.         RegisterHam(Ham_Spawn, "player", "player_spawn", 1)

  97.  

  98.         g_iMaxPlayers = get_maxplayers()

  99. }

  100.  

  101. public plugin_cfg() event_roundStart()

  102.  

  103. public event_roundStart()

  104. {

  105.         ch_pCVar_enabled = clamp(get_pcvar_num(pCVar_enabled), 0, 2)

  106.         ch_pCVar_minDamage = clamp(get_pcvar_num(pCVar_minDamage), 0, 9999)

  107.         ch_pCVar_giveFrags = clamp(get_pcvar_num(pCVar_giveFrags), 0, 1)

  108.         ch_pCVar_giveMoney = clamp(get_pcvar_num(pCVar_giveMoney), 0, 16000)

  109.         ch_pCVar_onlyAlive = clamp(get_pcvar_num(pCVar_onlyAlive), 0, 1)

  110. }

  111.  

  112. public client_putinserver(iPlayer)

  113. {

  114.         g_bOnline[iPlayer] = true

  115.  

  116.         get_user_name(iPlayer, g_szName[iPlayer], 31)

  117. }

  118.  

  119. public client_disconnect(iPlayer)

  120. {

  121.         g_iTeam[iPlayer] = TEAM_NONE

  122.         g_bAlive[iPlayer] = false

  123.         g_bOnline[iPlayer] = false

  124. }

  125.  

  126. public player_joinTeam()

  127. {

  128.         new iPlayer, szTeam[2]

  129.  

  130.         iPlayer = read_data(1)

  131.         read_data(2, szTeam, 1)

  132.  

  133.         switch(szTeam[0])

  134.         {

  135.                 case 'T': g_iTeam[iPlayer] = TEAM_TE

  136.                 case 'C': g_iTeam[iPlayer] = TEAM_CT

  137.                 default: g_iTeam[iPlayer] = TEAM_SPEC // since you can't transfer yourself to unassigned team...

  138.         }

  139.  

  140.         return PLUGIN_CONTINUE

  141. }

  142.  

  143. public player_spawn(iPlayer)

  144. {

  145.         if(!is_user_alive(iPlayer))

  146.                 return HAM_IGNORED

  147.  

  148.         g_bAlive[iPlayer] = true // he's alive !

  149.  

  150.         new szName[32]

  151.  

  152.         get_user_name(iPlayer, szName, 31)

  153.  

  154.         if(!equali(szName, g_szName[iPlayer])) // make sure he has his name !

  155.         {

  156.                 set_msg_block(msgID_sayText, BLOCK_ONCE)

  157.                 set_user_info(iPlayer, "name", g_szName[iPlayer])

  158.         }

  159.  

  160.         // reset damage meters

  161.  

  162.         for(new p = 1; p <= g_iMaxPlayers; p++)

  163.                 g_iDamage[iPlayer][p] = 0

  164.  

  165.         return HAM_IGNORED

  166. }

  167.  

  168. public player_damage(iVictim)

  169. {

  170.         if(!ch_pCVar_enabled || !is_player(iVictim))

  171.                 return PLUGIN_CONTINUE

  172.  

  173.         new iAttacker = get_user_attacker(iVictim)

  174.  

  175.         if(!is_player(iAttacker))

  176.                 return PLUGIN_CONTINUE

  177.  

  178.         g_iDamage[iAttacker][iVictim] += read_data(2)

  179.  

  180.         return PLUGIN_CONTINUE

  181. }

  182.  

  183. public player_die()

  184. {

  185.         if(!ch_pCVar_enabled)

  186.                 return PLUGIN_CONTINUE

  187.  

  188.         new iVictim = read_data(2)

  189.         new iKiller = read_data(1)

  190.         new iHS = read_data(3)

  191.         new szWeapon[24]

  192.         read_data(4, szWeapon, 23)

  193.  

  194.         if(!is_player(iVictim))

  195.         {

  196.                 do_deathmsg(iKiller, iVictim, iHS, szWeapon)

  197.  

  198.                 return PLUGIN_CONTINUE

  199.         }

  200.  

  201.         g_bAlive[iVictim] = false

  202.  

  203.         if(!is_player(iKiller))

  204.         {

  205.                 do_deathmsg(iKiller, iVictim, iHS, szWeapon)

  206.  

  207.                 return PLUGIN_CONTINUE

  208.         }

  209.  

  210.         new iKillerTeam = g_iTeam[iKiller]

  211.  

  212.         if(iKiller != iVictim && g_iTeam[iVictim] != iKillerTeam)

  213.         {

  214.                 new iKiller2 = 0

  215.                 new iDamage2 = 0

  216.  

  217.                 for(new p = 1; p <= g_iMaxPlayers; p++)

  218.                 {

  219.                         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)

  220.                         {

  221.                                 iKiller2 = p

  222.                                 iDamage2 = g_iDamage[p][iVictim]

  223.                         }

  224.  

  225.                         g_iDamage[p][iVictim] = 0

  226.                 }

  227.  

  228.                 if(iKiller2 > 0 && iDamage2 > ch_pCVar_minDamage)

  229.                 {

  230.                         if(ch_pCVar_giveFrags)

  231.                         {

  232.                                 new iFrags = get_user_frags(iKiller2)+1

  233.  

  234.                                 set_user_frags(iKiller2, iFrags)

  235.  

  236.                                 message_begin(MSG_ALL, msgID_scoreInfo)

  237.                                 write_byte(iKiller2)

  238.                                 write_short(iFrags)

  239.                                 write_short(get_user_deaths(iKiller2))

  240.                                 write_short(0)

  241.                                 write_short(iKillerTeam)

  242.                                 message_end()

  243.                         }

  244.  

  245.                         if(ch_pCVar_giveMoney)

  246.                         {

  247.                                 new iMoney = cs_get_user_money(iKiller2) + ch_pCVar_giveMoney

  248.  

  249.                                 if(iMoney > 16000)

  250.                                         iMoney = 16000

  251.  

  252.                                 cs_set_user_money(iKiller2, iMoney)

  253.  

  254.                                 if(g_bAlive[iKiller2]) // no reason to send a money message when the player has no hud :}

  255.                                 {

  256.                                         message_begin(MSG_ONE_UNRELIABLE, msgID_money, _, iKiller2)

  257.                                         write_long(iMoney)

  258.                                         write_byte(1)

  259.                                         message_end()

  260.                                 }

  261.                         }

  262.  

  263.                         if(ch_pCVar_enabled == 2)

  264.                         {

  265.                                 new szName1[32], szName2[32], szName3[32], szMsg[128]

  266.  

  267.                                 get_user_name(iKiller, szName1, 31)

  268.                                 get_user_name(iKiller2, szName2, 31)

  269.                                 get_user_name(iVictim, szName3, 31)

  270.  

  271.                                 formatex(szMsg, 63, "%s killed %s assisted by %s", szName1, szName3, szName2)

  272.  

  273.                                 set_hudmessage(HUD_colorR, HUD_colorG, HUD_colorB, HUD_posX, HUD_posY, HUD_fx, HUD_fxTime, HUD_holdTime, HUD_fadeInTime, HUD_fadeOutTime, HUD_channel)

  274.                                 show_hudmessage(0, szMsg)

  275.                         }

  276.                         else

  277.                         {

  278.                                 new szName1[32], iName1Len, szName2[32], iName2Len, szNames[32], szWeaponLong[32]

  279.  

  280.                                 iName1Len = get_user_name(iKiller, szName1, 31)

  281.                                 iName2Len = get_user_name(iKiller2, szName2, 31)

  282.  

  283.                                 g_szName[iKiller] = szName1

  284.  

  285.                                 if(iName1Len < 14)

  286.                                 {

  287.                                         formatex(szName1, iName1Len, "%s", szName1)

  288.                                         formatex(szName2, 28-iName1Len, "%s", szName2)

  289.                                 }

  290.                                 else if(iName2Len < 14)

  291.                                 {

  292.                                         formatex(szName1, 28-iName2Len, "%s", szName1)

  293.                                         formatex(szName2, iName2Len, "%s", szName2)

  294.                                 }

  295.                                 else

  296.                                 {

  297.                                         formatex(szName1, 13, "%s", szName1)

  298.                                         formatex(szName2, 13, "%s", szName2)

  299.                                 }

  300.  

  301.                                 formatex(szNames, 31, "%s + %s", szName1, szName2)

  302.  

  303.                                 set_msg_block(msgID_sayText, BLOCK_ONCE)

  304.                                 set_user_info(iKiller, "name", szNames)

  305.  

  306.                                 if(g_bAmxModeExists)

  307.                                 {

  308.                                         g_iLastAmxMode = get_pcvar_num(pCVar_amxMode)

  309.  

  310.                                         set_pcvar_num(pCVar_amxMode, 0)

  311.                                 }

  312.  

  313.                                 if(equali(szWeapon, "grenade"))

  314.                                         szWeaponLong = "weapon_hegrenade"

  315.                                 else

  316.                                         formatex(szWeaponLong, 31, "weapon_%s", szWeapon)

  317.  

  318.                                 new args[4]

  319.  

  320.                                 args[0] = iVictim

  321.                                 args[1] = iKiller

  322.                                 args[2] = iHS

  323.                                 args[3] = get_weaponid(szWeaponLong)

  324.  

  325.                                 set_task(0.1, "player_diePost", 0, args, 4)

  326.                         }

  327.                 }

  328.                 else if(ch_pCVar_enabled == 1)

  329.                         do_deathmsg(iKiller, iVictim, iHS, szWeapon)

  330.         }

  331.         else if(ch_pCVar_enabled == 1)

  332.                 do_deathmsg(iVictim, iVictim, iHS, szWeapon)

  333.         server_cmd("amx_reloadadmins")

  334.  

  335.         return PLUGIN_CONTINUE

  336. }

  337.  

  338. public player_diePost(arg[])

  339. {

  340.         new szWeapon[24]

  341.         new iKiller = arg[1]

  342.  

  343.         get_weaponname(arg[3], szWeapon, 23)

  344.         replace(szWeapon, 23, "weapon_", "")

  345.  

  346.         do_deathmsg(iKiller, arg[0], arg[2], szWeapon)

  347.  

  348.         set_msg_block(msgID_sayText, BLOCK_ONCE)

  349.         set_user_info(iKiller, "name", g_szName[iKiller])

  350.  

  351.         if(g_bAmxModeExists)

  352.                 set_pcvar_num(pCVar_amxMode, g_iLastAmxMode)

  353.  

  354.         return PLUGIN_CONTINUE

  355. }

  356.  

  357. public msg_deathMsg()

  358.         return ch_pCVar_enabled == 1 ? PLUGIN_HANDLED : PLUGIN_CONTINUE

  359.  

  360. /* originally from messages_stocks.inc, but simplified */

  361.  

  362. stock do_deathmsg(iKiller, iVictim, iHS, const szWeapon[])

  363. {

  364.         message_begin(MSG_ALL, msgID_deathMsg)

  365.         write_byte(iKiller)

  366.         write_byte(iVictim)

  367.         write_byte(iHS)

  368.         write_string(szWeapon)

  369.         message_end()

  370. }

  371.  

  372. /* --------------------------------------------------------------------------

  373.         EOF

  374.                 -------------------------------------------------------------- */

_________________
[img]semmi[/img]


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Anti freg lopás plugin bug
HozzászólásElküldve:2012.08.06. 18:50 
Offline
Őskövület
Avatar

Csatlakozott:2012.03.22. 18:22
Hozzászólások:2978
Megköszönt másnak: 118 alkalommal
Megköszönték neki: 368 alkalommal
Nekem az admin loginos és az a gond hogy kijelentkeztett mikor én és egy másik gyerek lelövünk vkit.Ez arra is megoldás?:)

_________________
Blasenkampfwagen

https://discord.gg/uBYnNnZP
GTA:PURSUIT MTA


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Anti freg lopás plugin bug
HozzászólásElküldve:2012.08.06. 19:02 
Offline
Őstag
Avatar

Csatlakozott:2010.04.16. 16:50
Hozzászólások:1342
Megköszönt másnak: 42 alkalommal
Megköszönték neki: 58 alkalommal
Köszi fuck !! tesztelem :)

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Anti freg lopás plugin bug
HozzászólásElküldve:2012.08.06. 19:42 
Offline
Őstag

Csatlakozott:2011.06.12. 20:51
Hozzászólások:1089
Megköszönt másnak: 3 alkalommal
Megköszönték neki: 44 alkalommal
ultraibolya írta:
Nekem az admin loginos és az a gond hogy kijelentkeztett mikor én és egy másik gyerek lelövünk vkit.Ez arra is megoldás?:)

nem

_________________
[img]semmi[/img]


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


Ki van itt

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