Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ____ ___ ___ ___
- `Mb( )d' MM `MM
- YM. ,P MM MM
- `Mb d' ____ ___ __ MM____ ___ MM
- YM. ,P 6MMMMb `MM 6MM MMMMMMb 6MMMMb MM
- `Mb d' 6M' `Mb MM69 " MM' `Mb 8M' `Mb MM
- YM. ,P MM MM MM' MM MM ,oMM MM
- `Mb d' MMMMMMMM MM MM MM ,6MM9'MM MM
- YM,P MM MM MM MM MM' MM MM
- `MM' YM d9 MM MM. ,M9 MM. ,MM MM
- YP YMMMM9 _MM_ _MYMMMM9 `YMMM9'Yb._MM_
- Verbal's Live Camera V0.1
- */
- #include <a_samp>
- #include <zcmd>
- #include <sscanf>
- #define VERSION "0.1"
- #define FLOAT_INFINITY (Float:0x7F800000)
- #define CAMERA_PRICE (700) // The price to buy a camera
- #define MAX_CAMERAS (3) // Maximum cameras a player can have
- new
- str[128],
- Camera[MAX_PLAYERS][MAX_CAMERAS],
- CameraMounted[MAX_PLAYERS][MAX_CAMERAS],
- bool:UsingCamera[MAX_PLAYERS][MAX_CAMERAS];
- public OnFilterScriptInit()
- {
- print("\n|_____________________________________________|\n");
- print("|\tVerbal's Live Camera V"VERSION" Loaded. |");
- print("\n|_____________________________________________|\n");
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- for (new i; i < MAX_CAMERAS; i++)
- {
- Camera[playerid][i] = -1;
- CameraMounted[playerid][i] = -1;
- UsingCamera[playerid][i] = false;
- }
- return 1;
- }
- CMD:mycameras(playerid)
- {
- SendClientMessage(playerid, 0xFF9900AA, "|________________ Cameras _______________|");
- for (new i; i < MAX_CAMERAS; i++)
- {
- if (Camera[playerid][i] == -1)
- {
- format(str, sizeof(str), "{FFFFFF}[%d] {FFFF00}Owned: {FF5959}No | {FFFF00}Vechile Mounted: {FF5959}None", i);
- SendClientMessage(playerid, 0xFFFF00AA, str);
- }
- else
- {
- format(str, sizeof(str), "{FFFFFF}[%d] {FFFF00}Owned: {33AA33}Yes | {FFFF00}Vechile Mounted: {33AA33}%d", i, CameraMounted[playerid][i]);
- SendClientMessage(playerid, 0xFFFF00AA, str);
- }
- }
- SendClientMessage(playerid, 0xFF9900AA, "|________________________________________|");
- return 1;
- }
- CMD:buycamera(playerid)
- {
- if (GetPlayerMoney(playerid) < CAMERA_PRICE) return SendClientMessage(playerid, 0xFF5959AA, "You don't have enough money to buy a camera.");
- if (Camera[playerid][2] != -1) return SendClientMessage(playerid, 0xFF5959AA, "You already have the maximum amount of cameras.");
- for (new i; i < MAX_CAMERAS; i++)
- {
- if (Camera[playerid][i] == -1)
- {
- Camera[playerid][i] = 1;
- break;
- }
- }
- GivePlayerMoney(playerid, -CAMERA_PRICE);
- SendClientMessage(playerid, 0x33AA33AA, "You have successfully purchased a camera.");
- return 1;
- }
- CMD:destroycamera(playerid, params[])
- {
- new
- cameraid;
- if (Camera[playerid][0] == -1) return SendClientMessage(playerid, 0xFF5959AA, "You don't have a camera.");
- if (sscanf(params, "d", cameraid)) return SendClientMessage(playerid, 0xFF5959AA, "USAGE: /destroycamera [camera slot]");
- if (Camera[playerid][cameraid] == -1) return SendClientMessage(playerid, 0xFF5959AA, "You don't have a camera in that slot.");
- if (cameraid == 0) return SendClientMessage(playerid, 0xFF5959AA, "You can't destroy the camera in slot 1.");
- Camera[playerid][cameraid] = -1;
- SendClientMessage(playerid, 0x33AA33AA, "You have successfully destroyed this camera.");
- return 1;
- }
- CMD:mountcamera(playerid, params[])
- {
- new
- closest = GetClosestVehicle(playerid, 5.0),
- cameraid;
- if (Camera[playerid][0] == -1) return SendClientMessage(playerid, 0xFF5959AA, "You don't have a camera.");
- if (closest == INVALID_VEHICLE_ID) return SendClientMessage(playerid, 0xFF5959AA, "You are not near any vehicle.");
- if (sscanf(params, "d", cameraid)) return SendClientMessage(playerid, 0xFF5959AA, "USAGE: /mountcamera [camera slot]");
- if (Camera[playerid][cameraid] == -1) return SendClientMessage(playerid, 0xFF5959AA, "You don't have a camera in that slot.");
- if (CameraMounted[playerid][cameraid] != -1) return SendClientMessage(playerid, 0xFF5959AA, "This camera is already mounted.");
- CameraMounted[playerid][cameraid] = closest;
- SendClientMessage(playerid, 0x33AA33AA, "You have successfully mounted the camera.");
- return 1;
- }
- CMD:unmountcamera(playerid, params[])
- {
- new
- cameraid;
- if (Camera[playerid][0] == -1) return SendClientMessage(playerid, 0xFF5959AA, "You don't have a camera.");
- if (sscanf(params, "d", cameraid)) return SendClientMessage(playerid, 0xFF5959AA, "USAGE: /unmountcamera [camera slot]");
- if (Camera[playerid][cameraid] == -1) return SendClientMessage(playerid, 0xFF5959AA, "You don't have a camera in that slot.");
- if (CameraMounted[playerid][cameraid] == -1) return SendClientMessage(playerid, 0xFF5959AA, "This camera is already unmounted.");
- CameraMounted[playerid][cameraid] = -1;
- TogglePlayerSpectating(playerid, 0);
- SendClientMessage(playerid, 0x33AA33AA, "You have successfully unmounted the camera.");
- return 1;
- }
- CMD:togcamera(playerid, params[])
- {
- new
- cameraid;
- if (Camera[playerid][0] == -1) return SendClientMessage(playerid, 0xFF5959AA, "You don't have a camera.");
- if (sscanf(params, "d", cameraid)) return SendClientMessage(playerid, 0xFF5959AA, "USAGE: /togcamera [camera slot]");
- if (Camera[playerid][cameraid] == -1) return SendClientMessage(playerid, 0xFF5959AA, "You don't have a camera in that slot.");
- if (CameraMounted[playerid][cameraid] == -1) return SendClientMessage(playerid, 0xFF5959AA, "This camera isn't mounted.");
- if (UsingCamera[playerid][cameraid] != true)
- {
- TogglePlayerSpectating(playerid, 1);
- PlayerSpectateVehicle(playerid, CameraMounted[playerid][cameraid]);
- UsingCamera[playerid][cameraid] = true;
- GameTextForPlayer(playerid, "~g~Using", 2000, 4);
- }
- else
- {
- TogglePlayerSpectating(playerid, 0);
- UsingCamera[playerid][cameraid] = false;
- GameTextForPlayer(playerid, "~r~Not Using", 2000, 4);
- }
- return 1;
- }
- stock GetClosestVehicle(playerid, Float:dis)
- {
- new Float:X, Float:Y, Float:Z;
- if(GetPlayerPos(playerid, X, Y, Z)) {
- new vehicleid = INVALID_VEHICLE_ID;
- for(new v, Float:temp, Float:VX, Float:VY, Float:VZ; v != MAX_VEHICLES; v++) {
- if(GetVehiclePos(v, VX, VY, VZ)) {
- VX -= X, VY -= Y, VZ -= Z;
- temp = VX * VX + VY * VY + VZ * VZ;
- if(temp < dis) dis = temp, vehicleid = v;
- }
- }
- dis = floatpower(dis, 0.5);
- return vehicleid;
- }
- return INVALID_VEHICLE_ID;
- }
Add Comment
Please, Sign In to add comment