rendered paste body#include <a_samp>
// Created By Baly23 //
//-----------------//
/* Spect */
//-----------------//
new CameraPos[5][3]=
{
{2080,2290,20},
{2065,2255,30},
{2025,2270,30},
{2100,2280,10},
{2115,2280,10}
};
new CameraLookAt[5][3]=
{
{2045,2275,10},
{2040,2270,10},
{2100,2280,12},
{2060,2360,130},
{2115,2260,10}
};
new PlayerCameraLookAtX[MAX_PLAYERS];
new PlayerCameraLookAtY[MAX_PLAYERS];
new PlayerCameraLookAtZ[MAX_PLAYERS];
new CurrentId[MAX_PLAYERS];
new ciclic;
new CicleON[MAX_PLAYERS];
new CameraMsg[50];
//-------------------
main()
{
print("\nLoaded CameraMove - SpectMode \n");
}
public ExitTheGamemode()
GameModeExit();
public CameraCiclic(playerid)
{
CurrentId[playerid]++;
if(CurrentId[playerid]==5)CurrentId[playerid]=0;
CameraLookAtAndPos(playerid);
}
CameraLookAtAndPos(playerid)
{
format(CameraMsg, sizeof(CameraMsg), "~r~Camera %i", CurrentId[playerid]);
GameTextForAll(CameraMsg,5000,3);
PlayerCameraLookAtX[playerid]=CameraLookAt[CurrentId[playerid]][0];
PlayerCameraLookAtY[playerid]=CameraLookAt[CurrentId[playerid]][1];
PlayerCameraLookAtZ[playerid]=CameraLookAt[CurrentId[playerid]][2];
SetPlayerCameraPos(playerid,CameraPos[CurrentId[playerid]][0],CameraPos[CurrentId[playerid]][1],CameraPos[CurrentId[playerid]][2]);
SetPlayerCameraLookAt(playerid,CameraLookAt[CurrentId[playerid]][0],CameraLookAt[CurrentId[playerid]][1],CameraLookAt[CurrentId[playerid]][2]);
return 1;
}
public OnGameModeInit()
{
SetGameModeText("CameraMove - SpectMode");
ShowPlayerMarkers(1);
ShowNameTags(1);
SetWorldTime(10);
AddPlayerClass(60,2043.9395,2265.8181,10.8203,12.9082,24,500,0,0,0,0);
return 1;
}
public OnPlayerConnect(playerid)
{
SendClientMessage(playerid, 0xc0ff00AA, "Welcome to SpectMode");
SendClientMessage(playerid, 0xc0ff00AA, "Coded by Baly23");
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerCameraPos(playerid, 2179.5264, 2268.0776, 11.7728);
SetPlayerPos(playerid, 2185.1941, 2268.3496, 10.8203);
SetPlayerFacingAngle(playerid, 93.2527);
SetPlayerCameraLookAt(playerid, 2185.1941, 2268.3496, 10.8203);
return 1;
}
public OnPlayerSpawn(playerid)
{
SetPlayerInterior(playerid,0);
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[]){
new idx,value,cmd[256];
cmd = strtok(cmdtext,idx);
if (strcmp(cmdtext, "/cameras", true)==0){
SendClientMessage(playerid,0xFFD400AA,"Type /camera 0 for the 1st camera");
SendClientMessage(playerid,0xFFD400AA,"Type /camera 1 for the 2nd camera");
SendClientMessage(playerid,0xFFD400AA,"Type /camera 2 for the 3th camera");
SendClientMessage(playerid,0xFFD400AA,"Type /camera 3 for the 4th camera");
SendClientMessage(playerid,0xFFD400AA,"Type /camera 4 for the 5th camera");
return 1;
}
if (strcmp(cmd,"/camera",true) == 0)
{
cmd = strtok(cmdtext,idx);
value = strval(cmd);
if ((!strlen(cmd))||(value < 0)||(value > 4))
{
SendClientMessage(playerid,0xFFD400AA,"USAGE: /camera [0-4]");
}
else
{
CurrentId[playerid]= value;
CameraLookAtAndPos(playerid);
}
return 1;
}
if (strcmp(cmdtext, "/ciclic", true)==0)
{
if (CicleON[playerid] == 0)
{
CicleON[playerid] = 1;
ciclic = SetTimer("CameraCiclic", 5000, 1);
GameTextForAll("~w~Ciclic ~r~ON",5000,3);
}
else
{
CicleON[playerid] = 0;
KillTimer(ciclic);
GameTextForAll("~w~Ciclic ~r~OFF",5000,3);
}
return 1;
}
if (strcmp(cmdtext, "/speeddome", true)==0){
SendClientMessage(playerid,0xFFD400AA,"Type /x+ or /x- for move orizzontally");
SendClientMessage(playerid,0xFFD400AA,"Type /y+ or /y- for move vertically");
SendClientMessage(playerid,0xFFD400AA,"Type /z+ or /z- for move height");
return 1;
}
if (strcmp(cmdtext, "/x+", true)==0){
PlayerCameraLookAtX[playerid]++;
SetPlayerCameraLookAt(playerid,PlayerCameraLookAtX[playerid],PlayerCameraLookAtY[playerid],PlayerCameraLookAtZ[playerid]);
return 1;
}
if (strcmp(cmdtext, "/x-", true)==0){
PlayerCameraLookAtX[playerid]--;
SetPlayerCameraLookAt(playerid,PlayerCameraLookAtX[playerid],PlayerCameraLookAtY[playerid],PlayerCameraLookAtZ[playerid]);
return 1;
}
if (strcmp(cmdtext, "/y+", true)==0){
PlayerCameraLookAtY[playerid]++;
SetPlayerCameraLookAt(playerid,PlayerCameraLookAtX[playerid],PlayerCameraLookAtY[playerid],PlayerCameraLookAtZ[playerid]);
return 1;
}
if (strcmp(cmdtext, "/y-", true)==0){
PlayerCameraLookAtY[playerid]--;
SetPlayerCameraLookAt(playerid,PlayerCameraLookAtX[playerid],PlayerCameraLookAtY[playerid],PlayerCameraLookAtZ[playerid]);
return 1;
}
if (strcmp(cmdtext, "/z+", true)==0){
PlayerCameraLookAtZ[playerid]++;
SetPlayerCameraLookAt(playerid,PlayerCameraLookAtX[playerid],PlayerCameraLookAtY[playerid],PlayerCameraLookAtZ[playerid]);
return 1;
}
if (strcmp(cmdtext, "/z-", true)==0){
PlayerCameraLookAtZ[playerid]--;
SetPlayerCameraLookAt(playerid,PlayerCameraLookAtX[playerid],PlayerCameraLookAtY[playerid],PlayerCameraLookAtZ[playerid]);
return 1;
}
return 0;
}
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}