FlacoBey

Test

Jun 6th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.53 KB | None | 0 0
  1. #pragma semicolon 1
  2. #pragma newdecls required
  3.  
  4. #include <sourcemod>
  5. #include <sdktools>
  6.  
  7. static float vPos[MAXPLAYERS+1][3];
  8. Handle call;
  9.  
  10. public void OnPluginStart()
  11. {
  12.     /*
  13.     Handle hGamedata = LoadGameConfigFile("SpawnSpitter");
  14.     if(hGamedata == INVALID_HANDLE)
  15.         SetFailState("Failed to load \"SpawnSpitter.txt\" gamedata.");
  16.    
  17.     StartPrepSDKCall(SDKCall_Player);
  18.     PrepSDKCall_AddParameter(SDKType_CBasePlayer, SDKPass_Pointer);
  19.     PrepSDKCall_SetFromConf(hGamedata, SDKConf_Signature, "CSpitterSpawn");
  20.     call = EndPrepSDKCall();
  21.     delete hGamedata;
  22.     */
  23.    
  24.     RegConsoleCmd("sm_spawn_spit", sm_test);
  25.     RegConsoleCmd("sm_setcoordinates", smCoordinates);
  26. }
  27.  
  28. public Action sm_test(int client, int args)
  29. {
  30.     int spawnflags = GetCommandFlags("z_spawn");
  31.     SetCommandFlags("z_spawn", spawnflags & ~FCVAR_CHEAT);
  32.     FakeClientCommand(client, "z_spawn spitter");
  33.     SetCommandFlags("z_spawn", spawnflags);
  34.    
  35.     TeleportEntity(spitter, vPos[client], NULL_VECTOR, NULL_VECTOR);
  36.     return Plugin_Handled;
  37. }
  38.  
  39. public Action smCoordinates(int client, int args)
  40. {
  41.     DisplaySetCoordinates(client);
  42.     return Plugin_Handled;
  43. }
  44.  
  45. void DisplaySetCoordinates(int client)
  46. {  
  47.     Handle SetPos = CreateMenu(Callback);
  48.     SetMenuTitle(SetPos, "Тип:");
  49.  
  50.     AddMenuItem(SetPos, "0", "На прицел");
  51.     AddMenuItem(SetPos, "1", "На своё местоположение");
  52.     DisplayMenu(SetPos, client, MENU_TIME_FOREVER);
  53. }
  54.  
  55. public int Callback(Handle CallbackMoney, MenuAction action, int client, int symbol)
  56. {
  57.     if (action == MenuAction_End)
  58.     {
  59.         CloseHandle(CallbackMoney);
  60.         return;
  61.     }
  62.     if (action != MenuAction_Select) return;
  63.    
  64.     switch(symbol)
  65.     {
  66.         case 0:
  67.         {
  68.             GetLookPos(client, vPos[client]);
  69.             PrintToChat(client, "Координаты успешно поставлены(%.03f, %.03f, %.03f)", vPos[client][0], vPos[client][1], vPos[client][2]);
  70.         }
  71.         default:
  72.         {
  73.             GetClientAbsOrigin(client, vPos[client]);
  74.             PrintToChat(client, "Координаты успешно поставлены(%.03f, %.03f, %.03f)", vPos[client][0], vPos[client][1], vPos[client][2]);
  75.         }
  76.     }
  77. }
  78.  
  79. stock void GetLookPos(int client, float v[3])
  80. {
  81.     float EyePosition[3], EyeAngles[3];
  82.     Handle h_trace;
  83.     GetClientEyePosition(client, EyePosition);
  84.     GetClientEyeAngles(client, EyeAngles);
  85.     h_trace = TR_TraceRayFilterEx(EyePosition, EyeAngles, MASK_SOLID, RayType_Infinite, GetLookPos_Filter, client);
  86.     TR_GetEndPosition(v, h_trace);
  87.     CloseHandle(h_trace);
  88. }
  89.  
  90. public bool GetLookPos_Filter(int ent, int mask, any client)
  91. {
  92.     return client != ent;
  93. }
Advertisement
Add Comment
Please, Sign In to add comment