FlacoBey

Untitled

Dec 28th, 2018
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.29 KB | None | 0 0
  1. #include <sourcemod>
  2. #include <sdktools>
  3.  
  4. #define MODEL_PILLS "models/w_models/weapons/w_eq_painpills.mdl"
  5. #define MODEL_ADRENALINE "models/w_models/weapons/w_eq_adrenaline.mdl"
  6. #define MODEL_FIRST_AID_KIT "models/w_models/weapons/w_eq_Medkit.mdl"
  7. #define MODEL_BOX "models/props_junk/wood_crate001a.mdl"
  8.  
  9. new bool:gFix = false;
  10.  
  11. public OnPluginStart()
  12. {
  13.     RegAdminCmd("sm_box", box_spawn, ADMFLAG_ROOT);
  14. }
  15.  
  16. public OnMapStart()
  17. {
  18.     PrecacheModel("models/w_models/weapons/w_eq_painpills.mdl", true);
  19.     PrecacheModel("models/w_models/weapons/w_eq_adrenaline.mdl", true);
  20.     PrecacheModel("models/w_models/weapons/w_eq_Medkit.mdl", true);
  21.     PrecacheModel("models/props_junk/wood_crate001a.mdl", true);
  22.     gFix = false;
  23.     CreateTimer(15.0, Enabler, _, TIMER_FLAG_NO_MAPCHANGE);
  24. }
  25.  
  26. public Action Enabler(Handle timer)
  27. {
  28.     gFix = true;
  29. }
  30.  
  31. public Action:box_spawn(client, args)
  32. {
  33.     float Look[3];
  34.     GetLookPos(client, Look);
  35.     Look[2] += 20;
  36.     new karobka = CreateEntityByName("prop_physics");
  37.     if (karobka > MaxClients)
  38.     {
  39.         DispatchKeyValueVector(karobka, "origin", Look);
  40.         DispatchKeyValue(karobka, "health", "10");
  41.         SetEntityModel(karobka, MODEL_BOX);
  42.         DispatchSpawn(karobka);
  43.     }
  44. }
  45.  
  46. public OnEntityDestroyed(entity)
  47. {
  48.     if(gFix == true)
  49.     {
  50.         new String:model_name[256];
  51.         GetEntPropString(entity, Prop_Data, "m_ModelName", model_name, sizeof(model_name));
  52.         if (StrContains(model_name, "models/props_junk/wood_crate001a.mdl", false) != -1)
  53.         {
  54.             float ent_pos[3];
  55.             GetEntPropVector(entity, Prop_Send, "m_vecOrigin", ent_pos)
  56.             switch(GetRandomInt(1, 6))
  57.             {
  58.                 case 1, 2:
  59.                 {
  60.                     new adrenaline = CreateEntityByName("weapon_adrenaline");
  61.                     if(IsValidEntity(adrenaline))
  62.                     {
  63.                         PrintHintTextToAll("Была сломана коробка из которой выпал адреналин");
  64.                         DispatchSpawn(adrenaline);
  65.                         SetEntityModel(adrenaline, MODEL_ADRENALINE);
  66.                         TeleportEntity(adrenaline, ent_pos, NULL_VECTOR, NULL_VECTOR);
  67.                     }
  68.                 }
  69.                 case 3:
  70.                 {
  71.                     new first_aid_kit = CreateEntityByName("weapon_first_aid_kit");
  72.                     if(IsValidEntity(first_aid_kit))
  73.                     {
  74.                         PrintHintTextToAll("Была сломана коробка из которой выпала аптечка");
  75.                         DispatchSpawn(first_aid_kit);
  76.                         SetEntityModel(first_aid_kit, MODEL_FIRST_AID_KIT);
  77.                         TeleportEntity(first_aid_kit, ent_pos, NULL_VECTOR, NULL_VECTOR);
  78.                     }
  79.                 }
  80.                 case 4,6:
  81.                 {
  82.                     new pills = CreateEntityByName("weapon_pain_pills");
  83.                     if(IsValidEntity(pills))
  84.                     {
  85.                         PrintHintTextToAll("Была сломана коробка из которой выпали таблетки");
  86.                         DispatchSpawn(pills);
  87.                         SetEntityModel(pills, MODEL_PILLS);
  88.                         TeleportEntity(pills, ent_pos, NULL_VECTOR, NULL_VECTOR);
  89.                     }
  90.                 }
  91.             }
  92.         }
  93.     }
  94. }
  95.  
  96. stock GetLookPos(client, Float:v[3])
  97. {
  98.      decl Float:EyePosition[3], Float:EyeAngles[3], Handle:h_trace;
  99.      GetClientEyePosition(client, EyePosition);
  100.      GetClientEyeAngles(client, EyeAngles);
  101.      h_trace = TR_TraceRayFilterEx(EyePosition, EyeAngles, MASK_SOLID, RayType_Infinite, GetLookPos_Filter, client);
  102.      TR_GetEndPosition(v, h_trace);
  103.      CloseHandle(h_trace);
  104. }
  105.  
  106. public bool:GetLookPos_Filter(ent, mask, any:client)
  107. {
  108.       return client != ent;
  109. }
Advertisement
Add Comment
Please, Sign In to add comment