Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <YSI\y_commands>
- forward ControlBoxPos(playerid);
- forward UAVCanFire(playerid);
- forward ControlZoom(playerid);
- new string[128], Float: Pos[4], UAVPlane, UAVBox, UAVMissile, bool: UAVStarted = false, BoxPos, ZoomPos, Float: NewX, Float: NewY, Float: NewZ, Float: CamNewX, Float: CamNewY, Float: CamNewZ, Float: Rot[4], CanFire, UAVPlayer[24], bool: AllowAim = false, bool: AllowZoom = false;
- enum bInfo
- {
- Float: bPosX,
- Float: bPosY,
- Float: bPosZ,
- Float: bCamPosX,
- Float: bCamPosY,
- Float: bCamPosZ,
- };
- new BoxInfo[1][bInfo];
- public OnFilterScriptInit()
- {
- print("\n");
- print(" \4\4\4\4\4\4\4\4\4\4\4\4");
- print(" \4 UAV \4");
- print(" \4 by \4");
- print(" \4 System32 \4");
- print(" \4\4\4\4\4\4\4\4\4\4\4\4\n");
- return 1;
- }
- public OnFilterScriptExit()
- {
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- return 1;
- }
- YCMD:uavstart(playerid, params[], help)
- {
- #pragma unused help
- #pragma unused params
- new chname[24], playername[24];
- GetPlayerName(playerid, chname, sizeof(chname));
- if(UAVStarted == true) return SendClientMessage(playerid, -1, "UAV is already here!");
- if(strcmp(chname, "None", false))
- {
- GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
- UAVPlane = CreateObject(10757, Pos[0], Pos[1], Pos[2] + 50, 9.8890, 8.6291, 359.75, 300);
- UAVBox = CreatePlayerObject(playerid, 19054, Pos[0] + 2, Pos[1] + 2, Pos[2], 0, 0, 0, 300);
- UAVMissile = CreateObject(3786, Pos[0], Pos[1], Pos[2] + 49.5, 0.00000000, -6.00000000, 0.000000, 300);
- BoxInfo[0][bPosX] = Pos[0] + 2;
- BoxInfo[0][bPosY] = Pos[1] + 2;
- BoxInfo[0][bPosZ] = Pos[2];
- BoxInfo[0][bCamPosX] = Pos[0];
- BoxInfo[0][bCamPosY] = Pos[1];
- BoxInfo[0][bCamPosZ] = Pos[2] + 49.3;
- CanFire = 1;
- AllowAim = true;
- AllowZoom = false;
- TogglePlayerControllable(playerid, 0);
- SetPlayerCameraPos(playerid, Pos[0], Pos[1], Pos[2] + 49.3);
- GetPlayerName(playerid, playername, sizeof(playername));
- format(UAVPlayer, 24, "%s", playername);
- SetPlayerCameraLookAt(playerid, Pos[0], Pos[1], Pos[2] - 90);
- BoxPos = SetTimerEx("ControlBoxPos", 250, 1, "d", playerid);
- UAVStarted = true;
- }
- else SendClientMessage(playerid, -1, "Somebody already control UAV!");
- return 1;
- }
- YCMD:uavstop(playerid, params[], help)
- {
- #pragma unused help
- #pragma unused params
- new chname[24];
- GetPlayerName(playerid, chname, sizeof(chname));
- if(UAVStarted == false) return SendClientMessage(playerid, -1, "UAV isn't already here!");
- if(strcmp(chname, UAVPlayer, false)) return SendClientMessage(playerid, -1, "Somebody already control UAV!");
- GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
- SetCameraBehindPlayer(playerid);
- DestroyObject(UAVPlane);
- DestroyPlayerObject(playerid, UAVBox);
- DestroyObject(UAVMissile);
- TogglePlayerControllable(playerid, 1);
- AllowAim = false;
- AllowZoom = false;
- KillTimer(BoxPos);
- KillTimer(ZoomPos);
- format(UAVPlayer, 24, "None");
- UAVStarted = false;
- return 1;
- }
- YCMD:uavzoom(playerid, params[], help)
- {
- #pragma unused help
- #pragma unused params
- new chname[24];
- GetPlayerName(playerid, chname, sizeof(chname));
- if(UAVStarted == false) return SendClientMessage(playerid, -1, "UAV isn't here!");
- if(strcmp(chname, UAVPlayer, false)) return SendClientMessage(playerid, -1, "Somebody already control UAV!");
- AllowAim = false;
- AllowZoom = true;
- ZoomPos = SetTimerEx("ControlZoom", 250, 1, "d", playerid);
- return 1;
- }
- public ControlBoxPos(playerid)
- {
- new keys, ud, lr;
- GetPlayerKeys(playerid, keys, ud, lr);
- if(AllowAim == true)
- {
- AllowZoom = false;
- if(ud > 0)
- {
- if(keys == KEY_SPRINT) NewX -= 10.0;
- else NewX -= 1.0;
- format(string, sizeof(string), "~n~~n~~n~~n~~n~~n~~n~~n~X: %.4f Y: %.4f Z: %.4f", NewX, NewY, NewZ);
- GameTextForPlayer(playerid, string, 3000, 5);
- SetPlayerObjectPos(playerid, UAVBox, BoxInfo[0][bPosX] + NewX, BoxInfo[0][bPosY] + NewY, BoxInfo[0][bPosZ] + NewZ);
- }
- else if(ud < 0)
- {
- if(keys == KEY_SPRINT) NewX += 10.0;
- else NewX += 1.0;
- format(string, sizeof(string), "~n~~n~~n~~n~~n~~n~~n~~n~X: %.4f Y: %.4f Z: %.4f", NewX, NewY, NewZ);
- GameTextForPlayer(playerid, string, 3000, 5);
- SetPlayerObjectPos(playerid, UAVBox, BoxInfo[0][bPosX] + NewX, BoxInfo[0][bPosY] + NewY, BoxInfo[0][bPosZ] + NewZ);
- }
- if(lr > 0)
- {
- if(keys == KEY_SPRINT) NewY -= 10.0;
- else NewY -= 1.0;
- format(string, sizeof(string), "~n~~n~~n~~n~~n~~n~~n~~n~X: %.4f Y: %.4f Z: %.4f", NewX, NewY, NewZ);
- GameTextForPlayer(playerid, string, 3000, 5);
- SetPlayerObjectPos(playerid, UAVBox, BoxInfo[0][bPosX] + NewX, BoxInfo[0][bPosY] + NewY, BoxInfo[0][bPosZ] + NewZ);
- }
- else if(lr < 0)
- {
- if(keys == KEY_SPRINT) NewY += 10.0;
- else NewY += 1.0;
- format(string, sizeof(string), "~n~~n~~n~~n~~n~~n~~n~~n~X: %.4f Y: %.4f Z: %.4f", NewX, NewY, NewZ);
- GameTextForPlayer(playerid, string, 3000, 5);
- SetPlayerObjectPos(playerid, UAVBox, BoxInfo[0][bPosX] + NewX, BoxInfo[0][bPosY] + NewY, BoxInfo[0][bPosZ] + NewZ);
- }
- if(keys == KEY_CROUCH)
- {
- if(keys == KEY_SPRINT) NewZ -= 10.0;
- else NewZ -= 1.0;
- format(string, sizeof(string), "~n~~n~~n~~n~~n~~n~~n~~n~X: %.4f Y: %.4f Z: %.4f", NewX, NewY, NewZ);
- GameTextForPlayer(playerid, string, 5000, 5);
- SetPlayerObjectPos(playerid, UAVBox, BoxInfo[0][bPosX] + NewX, BoxInfo[0][bPosY] + NewY, BoxInfo[0][bPosZ] + NewZ);
- }
- else if(keys == KEY_WALK)
- {
- if(keys == KEY_SPRINT) NewZ += 10.0;
- else NewZ += 1.0;
- format(string, sizeof(string), "~n~~n~~n~~n~~n~~n~~n~~n~X: %.4f Y: %.4f Z: %.4f", NewX, NewY, NewZ);
- GameTextForPlayer(playerid, string, 5000, 5);
- SetPlayerObjectPos(playerid, UAVBox, BoxInfo[0][bPosX] + NewX, BoxInfo[0][bPosY] + NewY, BoxInfo[0][bPosZ] + NewZ);
- }
- if(keys == KEY_SECONDARY_ATTACK)
- {
- if(CanFire == 1)
- {
- GetPlayerObjectRot(playerid, UAVBox, Rot[0], Rot[1], Rot[2]);
- SetObjectRot(UAVMissile, Rot[0], Rot[1], Rot[2]);
- MoveObject(UAVMissile, BoxInfo[0][bPosX] + NewX, BoxInfo[0][bPosY] + NewY, BoxInfo[0][bPosZ] + NewZ, 100);
- CanFire = 0;
- }
- }
- }
- return 1;
- }
- public OnObjectMoved(objectid)
- {
- if(objectid == UAVMissile)
- {
- GetObjectPos(UAVMissile, Pos[0], Pos[1], Pos[2]);
- if(Pos[0], Pos[1], Pos[2] == BoxInfo[0][bPosX] + NewX, BoxInfo[0][bPosY] + NewY, BoxInfo[0][bPosZ] + NewZ)
- {
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(!IsPlayerConnected(i)) continue;
- SetTimerEx("UAVCanFire", 5000, 0, "d", i);
- }
- GetObjectPos(UAVPlane, Pos[0], Pos[1], Pos[2]);
- SetObjectPos(UAVMissile, Pos[0], Pos[1], Pos[2] - 0.5);
- CreateExplosion(BoxInfo[0][bPosX] + NewX, BoxInfo[0][bPosY] + NewY, BoxInfo[0][bPosZ] + NewZ, 7, 1);
- CreateExplosion(BoxInfo[0][bPosX] + NewX, BoxInfo[0][bPosY] + NewY, BoxInfo[0][bPosZ] + NewZ, 7, 1);
- StopObject(UAVMissile);
- }
- }
- return 1;
- }
- public UAVCanFire(playerid)
- {
- new chname[24];
- GetPlayerName(playerid, chname, sizeof(chname));
- CanFire = 1;
- if(!strcmp(chname, UAVPlayer, false)) SendClientMessage(playerid, -1, "Missile is reloaded!");
- return 1;
- }
- public ControlZoom(playerid)
- {
- new keys, ud, lr;
- GetPlayerKeys(playerid, keys, ud, lr);
- if(AllowZoom == true)
- {
- if(ud < 0)
- {
- if(keys == KEY_SPRINT) CamNewZ -= 10.0;
- else CamNewZ -= 1.0;
- format(string, sizeof(string), "~n~~n~~n~~n~~n~X: %.4f Y: %.4f Z: %.4f", CamNewX, CamNewY, CamNewZ);
- GameTextForPlayer(playerid, string, 3000, 5);
- GetObjectPos(UAVPlane, Pos[0], Pos[1], Pos[2]);
- SetPlayerCameraPos(playerid, Pos[0], Pos[1], BoxInfo[0][bCamPosZ] + CamNewZ);
- SetPlayerCameraLookAt(playerid, Pos[0], Pos[1], BoxInfo[0][bCamPosZ] - 90);
- }
- else if(ud > 0)
- {
- if(keys == KEY_SPRINT) CamNewZ += 10.0;
- else CamNewZ += 1.0;
- format(string, sizeof(string), "~n~~n~~n~~n~~n~X: %.4f Y: %.4f Z: %.4f", CamNewX, CamNewY, CamNewZ);
- GameTextForPlayer(playerid, string, 3000, 5);
- GetObjectPos(UAVPlane, Pos[0], Pos[1], Pos[2]);
- SetPlayerCameraPos(playerid, Pos[0], Pos[1], BoxInfo[0][bCamPosZ] + CamNewZ);
- SetPlayerCameraLookAt(playerid, Pos[0], Pos[1], BoxInfo[0][bCamPosZ] - 90);
- }
- if(keys == KEY_SECONDARY_ATTACK)
- {
- AllowAim = true;
- SendClientMessage(playerid, 0x10F441AA, "Now you can control your UAV!");
- KillTimer(ZoomPos);
- }
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement