Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- //
- // Aero's FreeCam Filterscript
- //
- //
- #define FILTERSCRIPT
- #include <a_samp>
- #include <zcmd>
- #include <sscanf2>
- #if defined FILTERSCRIPT
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print(" Aero's FreeCam");
- print("--------------------------------------\n");
- return 1;
- }
- public OnFilterScriptExit()
- {
- return 1;
- }
- #else
- main()
- {
- print("\n----------------------------------");
- print(" Blank Gamemode by your name here");
- print("----------------------------------\n");
- }
- #endif
- #define COLOR_ORANGE 0xDCB700FF
- #define COLOR_GREEN 0x00AA00AA
- #define COLOR_GREY 0xAAAAAAAA
- #define DIALOG_PlayerLock 250
- #define DIALOG_Credits 251
- new CamSet[MAX_PLAYERS];
- new bool:CamEnabled[MAX_PLAYERS];
- new bool:Isometric[MAX_PLAYERS];
- new bool:Widescreen[MAX_PLAYERS];
- new PlayerLock[MAX_PLAYERS];
- new CamSpeed[MAX_PLAYERS];
- new PlayerCatch[MAX_PLAYERS][6];
- new FlyTimer[MAX_PLAYERS];
- new IsoTimer[MAX_PLAYERS];
- new BoxCount[MAX_PLAYERS];
- new PlayerText:Textdraw0A[MAX_PLAYERS]; //Background
- new PlayerText:Textdraw0[MAX_PLAYERS]; //Aero's FC
- new PlayerText:Textdraw1[MAX_PLAYERS]; //Angle
- new PlayerText:Textdraw2[MAX_PLAYERS]; //Direction
- new PlayerText:Textdraw3[MAX_PLAYERS]; //Player Lock
- new PlayerText:Textdraw4[MAX_PLAYERS]; //Isometric Cam
- new PlayerText:Textdraw5[MAX_PLAYERS]; //Widescreen
- new PlayerText:TextdrawW0[MAX_PLAYERS]; //Wide Part1
- new PlayerText:TextdrawW1[MAX_PLAYERS]; //Wide Part2
- new bool:FCHUD[MAX_PLAYERS] = false;
- CMD:fccred(playerid, params[])
- {
- return ShowPlayerDialog(playerid, DIALOG_Credits, DIALOG_STYLE_MSGBOX, "{DCB700}[FreeCam] Credits and Notes", "{FFFFFF}Thanks for using this filterscript.\nI hope you enjoy it as much as I did\nscripting it.\n\nSincerely,\n{DCB700}Aerotactics\n\n{FFFFFF}Testing and Help:\n{DCB700}Rangerxxll", "Awesome", "");
- }
- CMD:fc(playerid,params[])
- {
- return cmd_freecam(playerid, params);
- }
- CMD:freecam(playerid,params[])
- {
- if(CamEnabled[playerid] == false)
- {
- new Float:x, Float:y, Float:z, Float:a;
- GetPlayerPos(playerid, x,y,z);
- GetPlayerFacingAngle(playerid, a);
- CamSet[playerid]=CreateObject(19300,x,y,z+2,0,0,a);
- AttachCameraToObject(playerid, CamSet[playerid]);
- CamEnabled[playerid] = true;
- PlayerCatch[playerid][0] = CreateObject(3095,x,y,z-32,0,0,0);
- PlayerCatch[playerid][1] = CreateObject(3095,x,y+3,z-30,90,0,0);
- PlayerCatch[playerid][2] = CreateObject(3095,x,y-3,z-30,90,0,0);
- PlayerCatch[playerid][3] = CreateObject(3095,x+3,y,z-30,0,90,0);
- PlayerCatch[playerid][4] = CreateObject(3095,x-3,y,z-30,0,90,0);
- PlayerCatch[playerid][5] = CreateObject(3095,x,y,z-27,0,0,0);
- SetPlayerPos(playerid, x,y,z-30);
- FlyTimer[playerid] = SetTimerEx("FreeCam",25,true,"i",playerid);
- PlayerTextDrawShow(playerid, Textdraw0A[playerid]);
- PlayerTextDrawShow(playerid, Textdraw0[playerid]);
- PlayerTextDrawShow(playerid, Textdraw1[playerid]);
- PlayerTextDrawShow(playerid, Textdraw2[playerid]);
- PlayerTextDrawShow(playerid, Textdraw3[playerid]);
- PlayerTextDrawShow(playerid, Textdraw4[playerid]);
- PlayerTextDrawShow(playerid, Textdraw5[playerid]);
- FCHUD[playerid] = true;
- }
- else
- {
- new Float:x, Float:y, Float:z, Float:a;
- GetObjectPos(CamSet[playerid], x, y, z);
- GetObjectRot(CamSet[playerid], a, a, a);
- SetPlayerPos(playerid,x,y,z);
- SetPlayerFacingAngle(playerid, a);
- DestroyObject(CamSet[playerid]);
- SetCameraBehindPlayer(playerid);
- CamEnabled[playerid] = false;
- KillTimer(FlyTimer[playerid]);
- for(new i=0; i<6; i++)
- {
- if (IsValidObject(PlayerCatch[playerid][i]))
- {
- DestroyObject(PlayerCatch[playerid][i]);
- }
- }
- BoxCount[playerid] = 0;
- PlayerTextDrawHide(playerid, Textdraw0A[playerid]);
- PlayerTextDrawHide(playerid, Textdraw0[playerid]);
- PlayerTextDrawHide(playerid, Textdraw1[playerid]);
- PlayerTextDrawHide(playerid, Textdraw2[playerid]);
- PlayerTextDrawHide(playerid, Textdraw3[playerid]);
- PlayerTextDrawHide(playerid, Textdraw4[playerid]);
- PlayerTextDrawHide(playerid, Textdraw5[playerid]);
- FCHUD[playerid] = false;
- PlayerLock[playerid] = -1;
- }
- return 1;
- }
- CMD:fcspeed(playerid,params[])
- {
- new speed;
- if(sscanf(params,"i",speed)) return SendClientMessage(playerid,COLOR_ORANGE,"[FreeCam] Usage: /fcspeed [1-5] (1 = slow, 2 = half slow, 3 = medium (default), 4 = half fast, 5 = fast)");
- if(speed < 1 || speed > 5) return SendClientMessage(playerid,COLOR_ORANGE,"[FreeCam] Usage: /fcspeed [1-5] (1 = slow, 2 = half slow, 3 = medium (default), 4 = half fast, 5 = fast)");
- if(CamEnabled[playerid] == true)
- {
- CamSpeed[playerid] = speed;
- }
- return 1;
- }
- CMD:fchelp(playerid,params[])
- {
- SendClientMessage(playerid,COLOR_ORANGE,"[FreeCam] Commands: /freecam (/fc), /fcspeed, /fchelp, /fchud, /fcsel, /fccred, /savecampos [comment (optional)]");
- SendClientMessage(playerid,COLOR_ORANGE,"[FreeCam] Controls: Aim with mouse, W/S is Forward/Backward, A/D is Rotation Left/Right.");
- SendClientMessage(playerid,COLOR_ORANGE,"[FreeCam] Controls: Press Shift for upward movement, and SpaceBar for downward monement.");
- return 1;
- }
- CMD:savecampos(playerid, params[])
- {
- new comment[128];
- if(sscanf(params,"s",comment)){comment = "";}
- new Float:x, Float:y, Float:z;
- GetPlayerCameraPos(playerid,x,y,z);
- new string[256];
- if(!fexist("/SavedCamPositions.txt")){format(string,sizeof(string),"FreeCam Saved Positions\r\n=============================\r\n[FreeCam] Position: %f, %f, %f //%s\r\n",x,y,z,comment);}
- else format(string,sizeof(string),"[FreeCam] Position: %f, %f, %f //%s\r\n",x,y,z,comment);
- new File:savepos = fopen("/SavedCamPositions.txt", io_append);
- if(savepos)
- {
- fwrite(savepos, string);
- fclose(savepos);
- }
- new string2[256];
- format(string2, sizeof(string2),"[FreeCam] Position: %f, %f, %f //%s",x,y,z,comment);
- SendClientMessage(playerid,COLOR_ORANGE,string2);
- SendClientMessage(playerid,COLOR_ORANGE,"Saved to /SavedCamPositions.txt");
- return 1;
- }
- CMD:fchud(playerid, params[])
- {
- if(CamEnabled[playerid] == false) return SendClientMessage(playerid, COLOR_ORANGE, "[FreeCam] Usage: /fchud (toggles the hud while in camera mode)");
- if(FCHUD[playerid] == true)
- {
- PlayerTextDrawHide(playerid, Textdraw0A[playerid]);
- PlayerTextDrawHide(playerid, Textdraw0[playerid]);
- PlayerTextDrawHide(playerid, Textdraw1[playerid]);
- PlayerTextDrawHide(playerid, Textdraw2[playerid]);
- PlayerTextDrawHide(playerid, Textdraw3[playerid]);
- PlayerTextDrawHide(playerid, Textdraw4[playerid]);
- PlayerTextDrawHide(playerid, Textdraw5[playerid]);
- FCHUD[playerid] = false;
- }
- else
- {
- PlayerTextDrawShow(playerid, Textdraw0A[playerid]);
- PlayerTextDrawShow(playerid, Textdraw0[playerid]);
- PlayerTextDrawShow(playerid, Textdraw1[playerid]);
- PlayerTextDrawShow(playerid, Textdraw2[playerid]);
- PlayerTextDrawShow(playerid, Textdraw3[playerid]);
- PlayerTextDrawShow(playerid, Textdraw4[playerid]);
- PlayerTextDrawShow(playerid, Textdraw5[playerid]);
- FCHUD[playerid] = true;
- }
- return 1;
- }
- CMD:fcsel(playerid, params[])
- {
- if(CamEnabled[playerid] == false) return SendClientMessage(playerid, COLOR_ORANGE, "[FreeCam] Usage: /fcsel (allows selection of FreeCam textdraws)");
- if(FCHUD[playerid] == false) return SendClientMessage(playerid, COLOR_ORANGE, "[FreeCam] Use /fchud to bring up the HUD in order to choose a textdraw.");
- SelectTextDraw(playerid, COLOR_GREEN);
- SendClientMessage(playerid, COLOR_ORANGE, "[FreeCam] Press ESC to cancel Textdraw select.");
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- SendClientMessage(playerid,COLOR_ORANGE,"[FreeCam] Aero's FreeCam Beta: /fchelp");
- CamEnabled[playerid] = false;
- Isometric[playerid] = false;
- Widescreen[playerid] = false;
- PlayerLock[playerid] = -1;
- CamSpeed[playerid] = 3;
- BoxCount[playerid] = 0;
- TextdrawW0[playerid] = CreatePlayerTextDraw(playerid, 641.599975, 1.500000, "usebox");
- PlayerTextDrawLetterSize(playerid, TextdrawW0[playerid], 0.000000, 7.039381);
- PlayerTextDrawTextSize(playerid, TextdrawW0[playerid], -2.000000, 0.000000);
- PlayerTextDrawAlignment(playerid, TextdrawW0[playerid], 1);
- PlayerTextDrawColor(playerid, TextdrawW0[playerid], 0);
- PlayerTextDrawUseBox(playerid, TextdrawW0[playerid], true);
- PlayerTextDrawBoxColor(playerid, TextdrawW0[playerid], 255);
- PlayerTextDrawSetShadow(playerid, TextdrawW0[playerid], 0);
- PlayerTextDrawSetOutline(playerid, TextdrawW0[playerid], 0);
- PlayerTextDrawFont(playerid, TextdrawW0[playerid], 0);
- TextdrawW1[playerid] = CreatePlayerTextDraw(playerid, 642.000000, 449.500000, "usebox");
- PlayerTextDrawLetterSize(playerid, TextdrawW1[playerid], 0.000000, -7.863334);
- PlayerTextDrawTextSize(playerid, TextdrawW1[playerid], -1.600000, 0.000000);
- PlayerTextDrawAlignment(playerid, TextdrawW1[playerid], 1);
- PlayerTextDrawColor(playerid, TextdrawW1[playerid], 0);
- PlayerTextDrawUseBox(playerid, TextdrawW1[playerid], true);
- PlayerTextDrawBoxColor(playerid, TextdrawW1[playerid], 255);
- PlayerTextDrawSetShadow(playerid, TextdrawW1[playerid], 0);
- PlayerTextDrawSetOutline(playerid, TextdrawW1[playerid], 0);
- PlayerTextDrawFont(playerid, TextdrawW1[playerid], 0);
- Textdraw0A[playerid] = CreatePlayerTextDraw(playerid, 477.599792, 408.193481, "usebox");
- PlayerTextDrawLetterSize(playerid, Textdraw0A[playerid], 0.000000, 3.787039);
- PlayerTextDrawTextSize(playerid, Textdraw0A[playerid], 153.200088, 0.000000);
- PlayerTextDrawAlignment(playerid, Textdraw0A[playerid], 1);
- PlayerTextDrawColor(playerid, Textdraw0A[playerid], 0);
- PlayerTextDrawUseBox(playerid, Textdraw0A[playerid], true);
- PlayerTextDrawBoxColor(playerid, Textdraw0A[playerid], 0xDCB70033);
- PlayerTextDrawSetShadow(playerid, Textdraw0A[playerid], 0);
- PlayerTextDrawSetOutline(playerid, Textdraw0A[playerid], 0);
- PlayerTextDrawFont(playerid, Textdraw0A[playerid], 2);
- Textdraw0[playerid] = CreatePlayerTextDraw(playerid, 315.600036, 411.661895, "Aero's FreeCam");
- PlayerTextDrawLetterSize(playerid, Textdraw0[playerid], 0.230000, 1.299999);
- PlayerTextDrawTextSize(playerid, Textdraw0[playerid], 462.000000, 313.600128);
- PlayerTextDrawAlignment(playerid, Textdraw0[playerid], 2);
- PlayerTextDrawColor(playerid, Textdraw0[playerid], -5963521);
- PlayerTextDrawUseBox(playerid, Textdraw0[playerid], true);
- PlayerTextDrawBoxColor(playerid, Textdraw0[playerid], 170);
- PlayerTextDrawSetShadow(playerid, Textdraw0[playerid], 0);
- PlayerTextDrawSetOutline(playerid, Textdraw0[playerid], 1);
- PlayerTextDrawBackgroundColor(playerid, Textdraw0[playerid], 170);
- PlayerTextDrawFont(playerid, Textdraw0[playerid], 2);
- PlayerTextDrawSetProportional(playerid, Textdraw0[playerid], 1);
- Textdraw1[playerid] = CreatePlayerTextDraw(playerid, 205.999786, 412.657653, "");
- PlayerTextDrawLetterSize(playerid, Textdraw1[playerid], 0.230000, 1.299999);
- PlayerTextDrawTextSize(playerid, Textdraw1[playerid], 0.399999, 93.582229);
- PlayerTextDrawAlignment(playerid, Textdraw1[playerid], 2);
- PlayerTextDrawColor(playerid, Textdraw1[playerid], -5963521);
- PlayerTextDrawUseBox(playerid, Textdraw1[playerid], true);
- PlayerTextDrawBoxColor(playerid, Textdraw1[playerid], -1431655834);
- PlayerTextDrawSetShadow(playerid, Textdraw1[playerid], 0);
- PlayerTextDrawSetOutline(playerid, Textdraw1[playerid], 1);
- PlayerTextDrawBackgroundColor(playerid, Textdraw1[playerid], 170);
- PlayerTextDrawFont(playerid, Textdraw1[playerid], 2);
- PlayerTextDrawSetProportional(playerid, Textdraw1[playerid], 1);
- Textdraw2[playerid] = CreatePlayerTextDraw(playerid, 424.799774, 412.657531, "");
- PlayerTextDrawLetterSize(playerid, Textdraw2[playerid], 0.230000, 1.299999);
- PlayerTextDrawTextSize(playerid, Textdraw2[playerid], 46.800003, 93.582237);
- PlayerTextDrawAlignment(playerid, Textdraw2[playerid], 2);
- PlayerTextDrawColor(playerid, Textdraw2[playerid], -5963521);
- PlayerTextDrawUseBox(playerid, Textdraw2[playerid], true);
- PlayerTextDrawBoxColor(playerid, Textdraw2[playerid], -1431655834);
- PlayerTextDrawSetShadow(playerid, Textdraw2[playerid], 0);
- PlayerTextDrawSetOutline(playerid, Textdraw2[playerid], 1);
- PlayerTextDrawBackgroundColor(playerid, Textdraw2[playerid], 170);
- PlayerTextDrawFont(playerid, Textdraw2[playerid], 2);
- PlayerTextDrawSetProportional(playerid, Textdraw2[playerid], 1);
- Textdraw3[playerid] = CreatePlayerTextDraw(playerid, 205.599990, 428.088867, "Player Lock");
- PlayerTextDrawLetterSize(playerid, Textdraw3[playerid], 0.230000, 1.299999);
- PlayerTextDrawTextSize(playerid, Textdraw3[playerid], 30, 94);
- PlayerTextDrawAlignment(playerid, Textdraw3[playerid], 2);
- PlayerTextDrawColor(playerid, Textdraw3[playerid], -5963521);
- PlayerTextDrawUseBox(playerid, Textdraw3[playerid], true);
- PlayerTextDrawBoxColor(playerid, Textdraw3[playerid], COLOR_GREY);
- PlayerTextDrawSetShadow(playerid, Textdraw3[playerid], 0);
- PlayerTextDrawSetOutline(playerid, Textdraw3[playerid], 1);
- PlayerTextDrawBackgroundColor(playerid, Textdraw3[playerid], 255);
- PlayerTextDrawFont(playerid, Textdraw3[playerid], 2);
- PlayerTextDrawSetProportional(playerid, Textdraw3[playerid], 1);
- PlayerTextDrawSetSelectable(playerid, Textdraw3[playerid], true);
- Textdraw4[playerid] = CreatePlayerTextDraw(playerid, 315.199859, 428.088623, "Isometric Cam");
- PlayerTextDrawLetterSize(playerid, Textdraw4[playerid], 0.230000, 1.299999);
- PlayerTextDrawTextSize(playerid, Textdraw4[playerid], 30, 94);
- PlayerTextDrawAlignment(playerid, Textdraw4[playerid], 2);
- PlayerTextDrawColor(playerid, Textdraw4[playerid], -5963521);
- PlayerTextDrawUseBox(playerid, Textdraw4[playerid], true);
- PlayerTextDrawBoxColor(playerid, Textdraw4[playerid], COLOR_GREY);
- PlayerTextDrawSetShadow(playerid, Textdraw4[playerid], 0);
- PlayerTextDrawSetOutline(playerid, Textdraw4[playerid], 1);
- PlayerTextDrawBackgroundColor(playerid, Textdraw4[playerid], 255);
- PlayerTextDrawFont(playerid, Textdraw4[playerid], 2);
- PlayerTextDrawSetProportional(playerid, Textdraw4[playerid], 1);
- PlayerTextDrawSetSelectable(playerid, Textdraw4[playerid], true);
- Textdraw5[playerid] = CreatePlayerTextDraw(playerid, 425.199859, 428.088989, "Widescreen");
- PlayerTextDrawLetterSize(playerid, Textdraw5[playerid], 0.230000, 1.299999);
- PlayerTextDrawTextSize(playerid, Textdraw5[playerid], 30, 94);
- PlayerTextDrawAlignment(playerid, Textdraw5[playerid], 2);
- PlayerTextDrawColor(playerid, Textdraw5[playerid], -5963521);
- PlayerTextDrawUseBox(playerid, Textdraw5[playerid], true);
- PlayerTextDrawBoxColor(playerid, Textdraw5[playerid], COLOR_GREY);
- PlayerTextDrawSetShadow(playerid, Textdraw5[playerid], 0);
- PlayerTextDrawSetOutline(playerid, Textdraw5[playerid], 1);
- PlayerTextDrawBackgroundColor(playerid, Textdraw5[playerid], 255);
- PlayerTextDrawFont(playerid, Textdraw5[playerid], 2);
- PlayerTextDrawSetProportional(playerid, Textdraw5[playerid], 1);
- PlayerTextDrawSetSelectable(playerid, Textdraw5[playerid], true);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- if(CamEnabled[playerid] == true)
- {
- DestroyObject(CamSet[playerid]);
- KillTimer(FlyTimer[playerid]);
- for(new i=0; i<6; i++)
- {
- if (IsValidObject(PlayerCatch[playerid][i])){DestroyObject(PlayerCatch[playerid][i]);}
- }
- BoxCount[playerid] = 0;
- }
- for(new i=0; i<MAX_PLAYERS; i++)
- {
- if(!IsPlayerConnected(i)){continue;}
- if(PlayerLock[i] == playerid)
- {
- SendClientMessage(playerid,COLOR_ORANGE,"[FreeCam] The Player Locked player disconnected.");
- PlayerLock[i] = -1;
- PlayerTextDrawHide(i, Textdraw3[i]);
- PlayerTextDrawBoxColor(i, Textdraw3[i], COLOR_GREY);
- PlayerTextDrawShow(i, Textdraw3[i]);
- if(Isometric[i] == true)
- {
- Isometric[i] = false;
- PlayerTextDrawHide(i, Textdraw4[i]);
- PlayerTextDrawBoxColor(i, Textdraw4[i], COLOR_GREY);
- PlayerTextDrawShow(i, Textdraw4[i]);
- }
- }
- }
- PlayerTextDrawHide(playerid, Textdraw0A[playerid]);
- PlayerTextDrawHide(playerid, Textdraw0[playerid]);
- PlayerTextDrawHide(playerid, Textdraw1[playerid]);
- PlayerTextDrawHide(playerid, Textdraw2[playerid]);
- PlayerTextDrawHide(playerid, Textdraw3[playerid]);
- PlayerTextDrawHide(playerid, Textdraw4[playerid]);
- PlayerTextDrawHide(playerid, Textdraw5[playerid]);
- return 1;
- }
- public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
- {
- if(playertextid == Textdraw3[playerid])
- {
- if(PlayerLock[playerid] == -1)
- {
- ShowPlayerDialog(playerid, DIALOG_PlayerLock, DIALOG_STYLE_INPUT, "{DCB700}[FreeCam] Player Lock", "Input the ID of the player you would\nlike to lock your camera towards.", "Enter", "Cancel");
- CancelSelectTextDraw(playerid);
- }
- else
- {
- PlayerTextDrawHide(playerid, Textdraw3[playerid]);
- PlayerTextDrawBoxColor(playerid, Textdraw3[playerid], COLOR_GREY);
- PlayerTextDrawShow(playerid, Textdraw3[playerid]);
- PlayerLock[playerid] = -1;
- CancelSelectTextDraw(playerid);
- }
- return 1;
- }
- if(playertextid == Textdraw4[playerid])
- {
- if(PlayerLock[playerid] == -1)
- {
- SendClientMessage(playerid,COLOR_ORANGE,"[FreeCam] The Isometric Cam requires a Player Lock.");
- CancelSelectTextDraw(playerid);
- return 1;
- }
- if(Isometric[playerid] == false)
- {
- PlayerTextDrawHide(playerid, Textdraw4[playerid]);
- PlayerTextDrawBoxColor(playerid, Textdraw4[playerid], COLOR_GREEN);
- PlayerTextDrawShow(playerid, Textdraw4[playerid]);
- IsoTimer[playerid] = SetTimerEx("IsoCam", 25, true, "i", playerid);
- CancelSelectTextDraw(playerid);
- Isometric[playerid] = true;
- }
- else
- {
- PlayerTextDrawHide(playerid, Textdraw4[playerid]);
- PlayerTextDrawBoxColor(playerid, Textdraw4[playerid], COLOR_GREY);
- PlayerTextDrawShow(playerid, Textdraw4[playerid]);
- KillTimer(IsoTimer[playerid]);
- CancelSelectTextDraw(playerid);
- Isometric[playerid] = false;
- }
- return 1;
- }
- if(playertextid == Textdraw5[playerid])
- {
- if(Widescreen[playerid] == false)
- {
- PlayerTextDrawHide(playerid, Textdraw5[playerid]);
- PlayerTextDrawBoxColor(playerid, Textdraw5[playerid], COLOR_GREEN);
- PlayerTextDrawShow(playerid, Textdraw5[playerid]);
- PlayerTextDrawShow(playerid, TextdrawW0[playerid]);
- PlayerTextDrawShow(playerid, TextdrawW1[playerid]);
- CancelSelectTextDraw(playerid);
- Widescreen[playerid] = true;
- }
- else
- {
- PlayerTextDrawHide(playerid, Textdraw5[playerid]);
- PlayerTextDrawBoxColor(playerid, Textdraw5[playerid], COLOR_GREY);
- PlayerTextDrawShow(playerid, Textdraw5[playerid]);
- PlayerTextDrawHide(playerid, TextdrawW0[playerid]);
- PlayerTextDrawHide(playerid, TextdrawW1[playerid]);
- CancelSelectTextDraw(playerid);
- Widescreen[playerid] = false;
- }
- return 1;
- }
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == DIALOG_PlayerLock)
- {
- if(response)
- {
- new string[5];
- strins(string, inputtext, 0);
- new target = strval(string);
- if(target < 0 || target > 500) return SendClientMessage(playerid,COLOR_ORANGE,"[FreeCam] Player IDs range from 0 to 500 in a standard server.");
- if(!IsPlayerConnected(target)) return SendClientMessage(playerid,COLOR_ORANGE,"[FreeCam] Invalid Player ID. Player is not connected.");
- if(CamEnabled[target] == true) return SendClientMessage(playerid,COLOR_ORANGE,"[FreeCam] Player is using a FreeCam. Player Lock not available.");
- PlayerLock[playerid] = target;
- PlayerTextDrawHide(playerid, Textdraw3[playerid]);
- PlayerTextDrawBoxColor(playerid, Textdraw3[playerid], COLOR_GREEN);
- PlayerTextDrawShow(playerid, Textdraw3[playerid]);
- return 1;
- }
- }
- return 0;
- }
- forward IsoCam(playerid);
- public IsoCam(playerid)
- {
- new Float:x, Float:y, Float:z;
- GetPlayerPos(PlayerLock[playerid], x, y ,z);
- SetPlayerCameraLookAt(playerid, x, y, z+1);
- MoveObject(CamSet[playerid],x+5,y+5,z+5,10);
- return 1;
- }
- forward FreeCam(playerid);
- public FreeCam(playerid)
- {
- new Keys,ud,lr;
- new Float:fb,Float:ss,Float:ud2;
- new Float:cx, Float:cy, Float:cz, Float:ca;
- GetPlayerKeys(playerid,Keys,ud,lr);
- if(CamEnabled[playerid] == true)
- {
- if(ud == KEY_UP){fb=1.2;}
- if(ud == KEY_DOWN){fb=-1.2;}
- if(lr == KEY_LEFT){ss=1.75;}
- if(lr == KEY_RIGHT){ss=-1.75;}
- if(Keys == KEY_SPRINT){ud2=-0.2;}
- if(Keys == KEY_JUMP){ud2=0.2;}
- GetXYInFrontOfObject(CamSet[playerid], cx, cy, cz, fb);
- GetObjectRot(CamSet[playerid], ca, ca, ca);
- MoveObject(CamSet[playerid],cx,cy,cz+(ud2),CamSpeed[playerid]*3,0,0,ca+ss);
- if(PlayerLock[playerid] != -1)
- {
- new Float:x2,Float:y2,Float:z2;
- GetPlayerPos(PlayerLock[playerid],x2,y2,z2);
- SetPlayerCameraLookAt(playerid,x2,y2,z2+1);
- }
- }
- if(BoxCount[playerid] == 100)
- {
- for(new i=0; i<6; i++)
- {
- if (IsValidObject(PlayerCatch[playerid][i]))
- {
- DestroyObject(PlayerCatch[playerid][i]);
- }
- }
- PlayerCatch[playerid][0] = CreateObject(3095,cx,cy,-32,0,0,0);
- PlayerCatch[playerid][1] = CreateObject(3095,cx,cy+3,-30,90,0,0);
- PlayerCatch[playerid][2] = CreateObject(3095,cx,cy-3,-30,90,0,0);
- PlayerCatch[playerid][3] = CreateObject(3095,cx+3,cy,-30,0,90,0);
- PlayerCatch[playerid][4] = CreateObject(3095,cx-3,cy,-30,0,90,0);
- PlayerCatch[playerid][5] = CreateObject(3095,cx,cy,-27,0,0,0);
- SetPlayerPos(playerid, cx,cy,-30);
- BoxCount[playerid] = 0;
- }
- BoxCount[playerid]++;
- UpdateTDs(playerid);
- return 1;
- }
- stock UpdateTDs(playerid)
- {
- new TD1[24];
- new TD2[24];
- new Float:Rot;
- GetObjectRot(CamSet[playerid], Rot, Rot, Rot);
- new Dir = floatround(Rot,floatround_round);
- while(Dir > 360){Dir -= 360;}
- while(Dir < 0){Dir += 360;}
- format(TD1, sizeof(TD1), "Angle: %i", Dir);
- new Str[3];
- switch(Dir)
- {
- case 0..22: Str = "N";
- case 23..67: Str = "NW";
- case 68..112: Str = "W";
- case 113..157: Str = "SW";
- case 158..202: Str = "S";
- case 203..247: Str = "SE";
- case 248..292: Str = "E";
- case 293..337: Str = "NE";
- case 338..360: Str = "N";
- }
- format(TD2, sizeof(TD2), "Direction: %s", Str);
- PlayerTextDrawSetString(playerid, Textdraw1[playerid], TD1);
- PlayerTextDrawSetString(playerid, Textdraw2[playerid], TD2);
- }
- GetXYInFrontOfObject(objectid, &Float:x2, &Float:y2, &Float:z2, Float:distance)
- { //modified from GetXYInFrontOfPlayer
- new Float:a2;
- GetObjectPos(objectid, x2, y2, z2);
- GetObjectRot(objectid, a2, a2, a2);
- x2 += (distance * floatsin(-a2, degrees));
- y2 += (distance * floatcos(-a2, degrees));
- }
Advertisement
Add Comment
Please, Sign In to add comment