Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma semicolon 1
- #pragma newdecls required
- #include <sourcemod>
- #include <sdktools>
- static float vPos[MAXPLAYERS+1][3];
- Handle call;
- public void OnPluginStart()
- {
- /*
- Handle hGamedata = LoadGameConfigFile("SpawnSpitter");
- if(hGamedata == INVALID_HANDLE)
- SetFailState("Failed to load \"SpawnSpitter.txt\" gamedata.");
- StartPrepSDKCall(SDKCall_Player);
- PrepSDKCall_AddParameter(SDKType_CBasePlayer, SDKPass_Pointer);
- PrepSDKCall_SetFromConf(hGamedata, SDKConf_Signature, "CSpitterSpawn");
- call = EndPrepSDKCall();
- delete hGamedata;
- */
- RegConsoleCmd("sm_spawn_spit", sm_test);
- RegConsoleCmd("sm_setcoordinates", smCoordinates);
- }
- public Action sm_test(int client, int args)
- {
- int spawnflags = GetCommandFlags("z_spawn");
- SetCommandFlags("z_spawn", spawnflags & ~FCVAR_CHEAT);
- FakeClientCommand(client, "z_spawn spitter");
- SetCommandFlags("z_spawn", spawnflags);
- TeleportEntity(spitter, vPos[client], NULL_VECTOR, NULL_VECTOR);
- return Plugin_Handled;
- }
- public Action smCoordinates(int client, int args)
- {
- DisplaySetCoordinates(client);
- return Plugin_Handled;
- }
- void DisplaySetCoordinates(int client)
- {
- Handle SetPos = CreateMenu(Callback);
- SetMenuTitle(SetPos, "Тип:");
- AddMenuItem(SetPos, "0", "На прицел");
- AddMenuItem(SetPos, "1", "На своё местоположение");
- DisplayMenu(SetPos, client, MENU_TIME_FOREVER);
- }
- public int Callback(Handle CallbackMoney, MenuAction action, int client, int symbol)
- {
- if (action == MenuAction_End)
- {
- CloseHandle(CallbackMoney);
- return;
- }
- if (action != MenuAction_Select) return;
- switch(symbol)
- {
- case 0:
- {
- GetLookPos(client, vPos[client]);
- PrintToChat(client, "Координаты успешно поставлены(%.03f, %.03f, %.03f)", vPos[client][0], vPos[client][1], vPos[client][2]);
- }
- default:
- {
- GetClientAbsOrigin(client, vPos[client]);
- PrintToChat(client, "Координаты успешно поставлены(%.03f, %.03f, %.03f)", vPos[client][0], vPos[client][1], vPos[client][2]);
- }
- }
- }
- stock void GetLookPos(int client, float v[3])
- {
- float EyePosition[3], EyeAngles[3];
- Handle h_trace;
- GetClientEyePosition(client, EyePosition);
- GetClientEyeAngles(client, EyeAngles);
- h_trace = TR_TraceRayFilterEx(EyePosition, EyeAngles, MASK_SOLID, RayType_Infinite, GetLookPos_Filter, client);
- TR_GetEndPosition(v, h_trace);
- CloseHandle(h_trace);
- }
- public bool GetLookPos_Filter(int ent, int mask, any client)
- {
- return client != ent;
- }
Advertisement
Add Comment
Please, Sign In to add comment