hlmod.hu
https://hlmod.hu/

Hátba késelni ne lehessen
https://hlmod.hu/viewtopic.php?f=9&t=5061
Oldal: 1 / 1

Szerző:  pixxa112 [2012.07.04. 03:05 ]
Hozzászólás témája:  Hátba késelni ne lehessen

Hali.

Ez az a plugin amikor hátba késelni nem lehet?
Ha igen akkor valaki bele tudja írni azt, hogy aki hátba akar valait késelni akkor eldobja az adott játékost aki hátba akart szúrni, vagy levesz tőle 25hp-t. (KNIFE SZERVERRE KELL).
Kód:
  1. #include <amxmodx>

  2.     #include <hamsandwich>

  3.     #include <fakemeta>

  4.      

  5.     #define PLUGIN "Anti Behind"

  6.     #define VERSION "1.1"

  7.     #define AUTHOR "Bobs"

  8.      

  9.     #define fm_get_user_team(%1) get_pdata_int(%1, FM_OFFSET_TEAM)

  10.     #define FM_OFFSET_TEAM 114

  11.      

  12.     #define BACKSTAB_ANGLE 93.0     //Changeable

  13.     #define BACKSTAB_MAX_DAMAGE 0.0 //Changeable

  14.      

  15.     #define FFADE_IN         0x0000

  16.     #define FFADE_OUT        0x0001

  17.      

  18.     new gmsgScreenFade;

  19.     new gMaxPlayers;

  20.     new bool:gBackStabing[33];

  21.     new cvar_slap;

  22.      

  23.      

  24.     public plugin_init()  

  25.     {

  26.             register_plugin(PLUGIN, VERSION, AUTHOR);

  27.            

  28.             register_forward(FM_CmdStart, "Fwd_CmdStart");

  29.            

  30.             cvar_slap = register_cvar("ab_slap", "1");

  31.            

  32.             RegisterHam(Ham_TakeDamage, "player", "Event_TakeDamage");

  33.            

  34.             gMaxPlayers = global_get(glb_maxClients);

  35.            

  36.             gmsgScreenFade = get_user_msgid("ScreenFade");

  37.     }

  38.      

  39.     public Fwd_CmdStart(id, uc_handle, uc_seed)

  40.     {

  41.             if(!is_user_alive(id))

  42.                     return FMRES_IGNORED;

  43.            

  44.             static Float:fViewAngles[3], iButton, iTemp;

  45.             get_uc(uc_handle, UC_ViewAngles, fViewAngles);

  46.             iButton = get_uc(uc_handle, UC_Buttons);

  47.            

  48.             if(((iButton & IN_ATTACK) || (iButton & IN_ATTACK2)) && get_user_weapon(id, iTemp, iTemp) == CSW_KNIFE)

  49.             {

  50.                     static iEnt, Float:fOrigin[3];

  51.                     pev(id, pev_origin, fOrigin);

  52.                    

  53.                     iEnt = fm_trace_target(id, fOrigin, 100);

  54.                    

  55.                     if(!(1 <= iEnt <= gMaxPlayers))

  56.                             return FMRES_IGNORED;

  57.                    

  58.                     static Float:fTViewAngles[3];

  59.                     pev(iEnt, pev_v_angle, fTViewAngles);

  60.                    

  61.                     static Float:fMinAngle, Float:fMaxAngle;

  62.                     fMinAngle = fViewAngles[1] - BACKSTAB_ANGLE;

  63.                     fMaxAngle = fViewAngles[1] + BACKSTAB_ANGLE;

  64.                    

  65.                     if(fMinAngle <= fTViewAngles[1] <= fMaxAngle)

  66.                     {

  67.                             gBackStabing[id] = true;

  68.                     }

  69.                     else

  70.                     {

  71.                             gBackStabing[id] = false;

  72.                     }

  73.             }

  74.             return FMRES_IGNORED;

  75.     }

  76.      

  77.     public Event_TakeDamage(this, inflictor, attacker, Float:damage, dmgbits)

  78.     {

  79.             if(inflictor == 0)

  80.                     return HAM_IGNORED;

  81.            

  82.             if(!is_user_alive(attacker) || !gBackStabing[attacker] || (fm_get_user_team(this) == fm_get_user_team(attacker)))

  83.                     return HAM_IGNORED;

  84.            

  85.             if(damage > BACKSTAB_MAX_DAMAGE)

  86.             {

  87.                     SetHamParamFloat(4, BACKSTAB_MAX_DAMAGE);

  88.                     set_task(0.1, "FadeScreenAttacker", attacker);

  89.                     set_task(0.1, "FadeScreenVictim", this);

  90.             }

  91.             return HAM_HANDLED;

  92.     }

  93.      

  94.     stock fm_trace_target(ignoreent, const Float:start[3], distance)

  95.     {

  96.             new Float:fAim[3], Float:end[3];

  97.             velocity_by_aim(ignoreent, distance, fAim);

  98.            

  99.             end[0] = start[0] + fAim[0];

  100.             end[1] = start[1] + fAim[1];

  101.             end[2] = start[2] + fAim[2];

  102.            

  103.             engfunc(EngFunc_TraceLine, start, end, ignoreent == -1 ? 1 : 0, ignoreent, 0);

  104.            

  105.             new ent = get_tr2(0, TR_pHit);

  106.            

  107.             return pev_valid(ent) ? ent : 0;

  108.     }

  109.      

  110.     public FadeScreenAttacker(idattacker)

  111.     {

  112.             if(!is_user_connected(idattacker))

  113.             {

  114.                     return PLUGIN_HANDLED;

  115.             }

  116.            

  117.             if(get_pcvar_num(cvar_slap))

  118.             {

  119.                     user_slap(idattacker, 0);

  120.                     user_slap(idattacker, 0);

  121.                     user_slap(idattacker, 0);

  122.             }

  123.            

  124.             message_begin(MSG_ONE, gmsgScreenFade, {0,0,0}, idattacker);

  125.             write_short(2000); // Timer ex: 1000 = 1 sec

  126.             write_short(2000); // Timer ex: 1000 = 1 sec

  127.             write_short(FFADE_IN);

  128.             write_byte(139); // Red

  129.             write_byte(26); // Green

  130.             write_byte(26); // Blue

  131.             write_byte(255); // Transperency

  132.             message_end();

  133.            

  134.             return PLUGIN_HANDLED;

  135.     }

  136.      

  137.     public FadeScreenVictim(id)

  138.     {

  139.             if(!is_user_connected(id))

  140.             {

  141.                     return PLUGIN_HANDLED;

  142.             }

  143.            

  144.             message_begin(MSG_ONE, gmsgScreenFade, {0,0,0}, id);

  145.             write_short(600); // Timer ex: 1000 = 1 sec

  146.             write_short(600); // Timer ex: 1000 = 1 sec

  147.             write_short(FFADE_IN);

  148.             write_byte(20); // Red

  149.             write_byte(20); // Green

  150.             write_byte(255); // Blue

  151.             write_byte(175); // Transperency

  152.             message_end();

  153.            

  154.             return PLUGIN_HANDLED

  155.     }

  156.     /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE

  157.     *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1030\\ f0\\ fs16 \n\\ par }

  158.     */

  159.      

Szerző:  CeDee [2012.07.04. 10:50 ]
Hozzászólás témája:  Re: Hátba késelni ne lehessen

Ja, az
http://forums.alliedmods.net/showthread.php?t=179316

Szerző:  pixxa112 [2012.07.04. 16:35 ]
Hozzászólás témája:  Re: Hátba késelni ne lehessen

Köszi CeDee :))

Oldal: 1 / 1 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/