Facebook
From Beige Motmot, 7 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 309
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <codmod>
  4. #include <engine>
  5. #include <hamsandwich>
  6. #include <fakemeta>
  7. #include <cstrike>
  8.        
  9. new const nazwa[]   = "Skrytobójca";
  10. new const opis[]    = "Skrytbójca - jego zadaniem jest przedostanie się na tyły wroga, zabija PPM z noża, niska grawitacja, szybki bieg.";
  11. new const bronie    = 0;
  12. new const zdrowie   = -50;
  13. new const kondycja  = 40;
  14. new const inteligencja = 0;
  15. new const wytrzymalosc = 0;
  16.    
  17. new skoki[33];
  18.  
  19. new ostatnio_prawym[33];
  20.  
  21. new ma_klase[33];
  22.  
  23. public plugin_init()
  24. {
  25.         register_plugin(nazwa, "1.0", "amxx.pl");
  26.  
  27.         cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
  28.  
  29.         register_event("CurWeapon", "eventKnife_Niewidzialnosc", "be", "1=1");
  30.    
  31.         RegisterHam(Ham_Spawn, "player", "fwSpawn_Grawitacja", 1);
  32.  
  33.    
  34.         register_forward(FM_CmdStart, "fwCmdStart_MultiJump");
  35.  
  36.  
  37.         RegisterHam(Ham_TakeDamage, "player", "fwTakeDamage_JedenCios");
  38.         RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_knife", "fwPrimaryAttack_JedenCios");
  39.         RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_knife", "fwSecondaryAttack_JedenCios");
  40.  
  41. }
  42.  
  43. public cod_class_enabled(id)
  44. {
  45.  
  46.         entity_set_float(id, EV_FL_gravity, 300.0/800.0);
  47.         ma_klase[id] = true;
  48.  
  49. }
  50.  
  51. public cod_class_disabled(id)
  52. {
  53.         set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255);
  54.    
  55.         entity_set_float(id, EV_FL_gravity, 1.0);
  56.         ma_klase[id] = false;
  57.  
  58. }
  59.  
  60. public eventKnife_Niewidzialnosc(id)
  61. {
  62.         if(!ma_klase[id])
  63.                 return;
  64.  
  65.         if( read_data(2) == CSW_KNIFE )
  66.         {
  67.                 set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 0);
  68.         }
  69.         else
  70.         {
  71.                 set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255);
  72.         }
  73. }
  74.  
  75. public fwSpawn_Grawitacja(id)
  76. {
  77.         if(ma_klase[id])
  78.                 entity_set_float(id, EV_FL_gravity, 300.0/800.0);
  79. }
  80.  
  81.  
  82. public fwCmdStart_MultiJump(id, uc_handle)
  83. {
  84.         if(!is_user_alive(id) || !ma_klase[id])
  85.                 return FMRES_IGNORED;
  86.  
  87.         new flags = pev(id, pev_flags);
  88.  
  89.         if((get_uc(uc_handle, UC_Buttons) & IN_JUMP) && !(flags & FL_ONGROUND) && !(pev(id, pev_oldbuttons) & IN_JUMP) && skoki[id])
  90.         {
  91.                 skoki[id]--;
  92.                 new Float:velocity[3];
  93.                 pev(id, pev_velocity,velocity);
  94.                 velocity[2] = random_float(265.0,285.0);
  95.                 set_pev(id, pev_velocity,velocity);
  96.         }
  97.         else if(flags & FL_ONGROUND)
  98.                 skoki[id] = 3;
  99.  
  100.         return FMRES_IGNORED;
  101. }
  102.  
  103. public fwTakeDamage_JedenCios(id, ent, attacker)
  104. {
  105.         if(is_user_alive(attacker) && ma_klase[attacker] && get_user_weapon(attacker) == CSW_KNIFE && !ostatnio_prawym[id])
  106.         {
  107.                 cs_set_user_armor(id, 0, CS_ARMOR_NONE);
  108.                 SetHamParamFloat(4, float(get_user_health(id) + 1));
  109.                 return HAM_HANDLED;
  110.         }
  111.         return HAM_IGNORED;
  112. }
  113.  
  114. public fwPrimaryAttack_JedenCios(ent)
  115. {
  116.         new id = pev(ent, pev_owner);
  117.         ostatnio_prawym[id] = 1;
  118. }
  119.  
  120. public fwSecondaryAttack_JedenCios(ent)
  121. {
  122.         new id = pev(ent, pev_owner);
  123.         ostatnio_prawym[id] = 0;
  124. }
  125.