FlacoBey

Untitled

Dec 24th, 2018
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.39 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. bool:g_enable = false;
  10.  
  11. public OnPluginStart()
  12. {
  13.     RegAdminCmd("sm_box", box_spawn, ADMFLAG_ROOT);
  14.     PrecacheModel("models/props_junk/wood_crate001a.mdl", true);
  15.     CreateTimer(15.0, TimerEnable, _, TIMER_FLAG_NO_MAPCHANGE)
  16. }
  17.  
  18. public OnMapStart()
  19. {
  20.     PrecacheModel("models/w_models/weapons/w_eq_painpills.mdl", true);
  21.     PrecacheModel("models/w_models/weapons/w_eq_adrenaline.mdl", true);
  22.     PrecacheModel("models/w_models/weapons/w_eq_Medkit.mdl", true);
  23. }
  24.  
  25. public Action:box_spawn(client, args)
  26. {
  27.     float Look[3];
  28.     GetLookPos(client, Look);
  29.     new karobka = CreateEntityByName("prop_physics");
  30.     if (karobka > MaxClients)
  31.     {
  32.         DispatchKeyValueVector(karobka, "origin", Look);
  33.         DispatchKeyValue(karobka, "health", "10");
  34.         SetEntityModel(karobka, MODEL_BOX);
  35.         DispatchSpawn(karobka);
  36.     }
  37. }
  38.  
  39. public Action TimerEnable(Handle hTimer)
  40. {
  41.     g_enable = true;
  42.     PrintToChatAll("Timer");
  43. }
  44.  
  45. public Action:OnEntityDestroyed(entity)
  46. {
  47.     if(g_enable == false)
  48.     return Plugin_Continue;
  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) && IsValidEdict(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) && IsValidEdict(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) && IsValidEdict(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.     return Plugin_Continue;
  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