Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #define FS_PlayersMaximal 500
- #define FS_PositionsMaximal 10
- #define FS_PositionsDialog 0
- #define FS_PositionDialog 1
- new FS_PlayerInterior[FS_PlayersMaximal][FS_PositionsMaximal];
- new FS_PlayerVirtualWorld[FS_PlayersMaximal][FS_PositionsMaximal];
- new Float:FS_PlayerPositionX[FS_PlayersMaximal][FS_PositionsMaximal];
- new Float:FS_PlayerPositionY[FS_PlayersMaximal][FS_PositionsMaximal];
- new Float:FS_PlayerPositionZ[FS_PlayersMaximal][FS_PositionsMaximal];
- new Float:FS_PlayerPositionA[FS_PlayersMaximal][FS_PositionsMaximal];
- new FS_PlayerPositionSelected[FS_PlayersMaximal];
- public OnPlayerConnect(playerid)
- {
- for(new FS_Loop = 0; FS_Loop < FS_PositionsMaximal; FS_Loop++)
- {
- FS_PlayerInterior[playerid][FS_Loop] = 0;
- FS_PlayerVirtualWorld[playerid][FS_Loop] = 0;
- FS_PlayerPositionX[playerid][FS_Loop] = 0.0;
- FS_PlayerPositionY[playerid][FS_Loop] = 0.0;
- FS_PlayerPositionZ[playerid][FS_Loop] = 0.0;
- FS_PlayerPositionA[playerid][FS_Loop] = 0.0;
- }
- FS_PlayerPositionSelected[playerid] = -1;
- return 1;
- }
- public OnPlayerDisconnect(playerid,reason)
- {
- for(new FS_Loop = 0; FS_Loop < FS_PositionsMaximal; FS_Loop++)
- {
- FS_PlayerInterior[playerid][FS_Loop] = 0;
- FS_PlayerVirtualWorld[playerid][FS_Loop] = 0;
- FS_PlayerPositionX[playerid][FS_Loop] = 0.0;
- FS_PlayerPositionY[playerid][FS_Loop] = 0.0;
- FS_PlayerPositionZ[playerid][FS_Loop] = 0.0;
- FS_PlayerPositionA[playerid][FS_Loop] = 0.0;
- }
- FS_PlayerPositionSelected[playerid] = -1;
- return 1;
- }
- public OnPlayerCommandText(playerid,cmdtext[])
- {
- new FS_Parameter;
- FS_Parameter = strfind(cmdtext," ") + 1;
- if(FS_Parameter)
- {
- cmdtext[FS_Parameter - 1] = EOS;
- }
- if(!cmdtext[FS_Parameter])
- {
- FS_Parameter = 0;
- }
- if(!strcmp(cmdtext,"/SavePosition",true) || !strcmp(cmdtext,"/Sp",true))
- {
- if(!FS_Parameter)
- {
- SendClientMessage(playerid,0xFFFFFFFF,"(Error): {FF0000}Type: /SavePosition [Position ID] Or /Sp [Position ID].");
- return 1;
- }
- if(strval(cmdtext[FS_Parameter]) > FS_PositionsMaximal - 1)
- {
- SendClientMessage(playerid,0xFFFFFFFF,"(Error): {FF0000}You can not save this position.");
- return 1;
- }
- FS_PlayerInterior[playerid][strval(cmdtext[FS_Parameter])] = GetPlayerInterior(playerid);
- FS_PlayerVirtualWorld[playerid][strval(cmdtext[FS_Parameter])] = GetPlayerVirtualWorld(playerid);
- if(IsPlayerInAnyVehicle(playerid))
- {
- GetVehiclePos(GetPlayerVehicleID(playerid),FS_PlayerPositionX[playerid][strval(cmdtext[FS_Parameter])],FS_PlayerPositionY[playerid][strval(cmdtext[FS_Parameter])],FS_PlayerPositionZ[playerid][strval(cmdtext[FS_Parameter])]);
- GetVehicleZAngle(GetPlayerVehicleID(playerid),FS_PlayerPositionA[playerid][strval(cmdtext[FS_Parameter])]);
- }
- if(!IsPlayerInAnyVehicle(playerid))
- {
- GetPlayerPos(playerid,FS_PlayerPositionX[playerid][strval(cmdtext[FS_Parameter])],FS_PlayerPositionY[playerid][strval(cmdtext[FS_Parameter])],FS_PlayerPositionZ[playerid][strval(cmdtext[FS_Parameter])]);
- GetPlayerFacingAngle(playerid,FS_PlayerPositionA[playerid][strval(cmdtext[FS_Parameter])]);
- }
- SendClientMessage(playerid,0xFFFFFFFF,"(Success): {00FF00}Your positions is successfully saved.");
- return 1;
- }
- if(!strcmp(cmdtext,"/LoadPosition",true) || !strcmp(cmdtext,"/Lp",true))
- {
- if(!FS_Parameter)
- {
- SendClientMessage(playerid,0xFFFFFFFF,"(Error): {FF0000}Type: /LoadPosition [Position ID] Or /Lp [Position ID].");
- return 1;
- }
- if(strval(cmdtext[FS_Parameter]) > FS_PositionsMaximal - 1)
- {
- SendClientMessage(playerid,0xFFFFFFFF,"(Error): {FF0000}You can not load this position.");
- return 1;
- }
- if(FS_PlayerInterior[playerid][strval(cmdtext[FS_Parameter])] == 0 && FS_PlayerVirtualWorld[playerid][strval(cmdtext[FS_Parameter])] == 0 && FS_PlayerPositionX[playerid][strval(cmdtext[FS_Parameter])] == 0.0 && FS_PlayerPositionY[playerid][strval(cmdtext[FS_Parameter])] == 0.0 && FS_PlayerPositionZ[playerid][strval(cmdtext[FS_Parameter])] == 0.0 && FS_PlayerPositionA[playerid][strval(cmdtext[FS_Parameter])] == 0.0)
- {
- SendClientMessage(playerid,0xFFFFFFFF,"(Error): {FF0000}This position is not saved yet.");
- return 1;
- }
- SetPlayerInterior(playerid,FS_PlayerInterior[playerid][strval(cmdtext[FS_Parameter])]);
- SetPlayerVirtualWorld(playerid,FS_PlayerVirtualWorld[playerid][strval(cmdtext[FS_Parameter])]);
- if(IsPlayerInAnyVehicle(playerid))
- {
- LinkVehicleToInterior(GetPlayerVehicleID(playerid),FS_PlayerInterior[playerid][strval(cmdtext[FS_Parameter])]);
- SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),FS_PlayerVirtualWorld[playerid][strval(cmdtext[FS_Parameter])]);
- SetVehiclePos(GetPlayerVehicleID(playerid),FS_PlayerPositionX[playerid][strval(cmdtext[FS_Parameter])],FS_PlayerPositionY[playerid][strval(cmdtext[FS_Parameter])],FS_PlayerPositionZ[playerid][strval(cmdtext[FS_Parameter])]);
- SetVehicleZAngle(GetPlayerVehicleID(playerid),FS_PlayerPositionA[playerid][strval(cmdtext[FS_Parameter])]);
- }
- if(!IsPlayerInAnyVehicle(playerid))
- {
- SetPlayerPos(playerid,FS_PlayerPositionX[playerid][strval(cmdtext[FS_Parameter])],FS_PlayerPositionY[playerid][strval(cmdtext[FS_Parameter])],FS_PlayerPositionZ[playerid][strval(cmdtext[FS_Parameter])]);
- SetPlayerFacingAngle(playerid,FS_PlayerPositionA[playerid][strval(cmdtext[FS_Parameter])]);
- }
- SendClientMessage(playerid,0xFFFFFFFF,"(Success): {00FF00}Your position is successfully loaded.");
- return 1;
- }
- if(!strcmp(cmdtext,"/DeletePosition",true) || !strcmp(cmdtext,"/Dp",true))
- {
- if(!FS_Parameter)
- {
- SendClientMessage(playerid,0xFFFFFFFF,"(Error): {FF0000}Type: /DeletePosition [Position ID] Or /Dp [Position ID].");
- return 1;
- }
- if(strval(cmdtext[FS_Parameter]) > FS_PositionsMaximal - 1)
- {
- SendClientMessage(playerid,0xFFFFFFFF,"(Error): {FF0000}You can not delete this position.");
- return 1;
- }
- if(FS_PlayerInterior[playerid][strval(cmdtext[FS_Parameter])] == 0 && FS_PlayerVirtualWorld[playerid][strval(cmdtext[FS_Parameter])] == 0 && FS_PlayerPositionX[playerid][strval(cmdtext[FS_Parameter])] == 0.0 && FS_PlayerPositionY[playerid][strval(cmdtext[FS_Parameter])] == 0.0 && FS_PlayerPositionZ[playerid][strval(cmdtext[FS_Parameter])] == 0.0 && FS_PlayerPositionA[playerid][strval(cmdtext[FS_Parameter])] == 0.0)
- {
- SendClientMessage(playerid,0xFFFFFFFF,"(Error): {FF0000}This position is not saved yet.");
- return 1;
- }
- FS_PlayerInterior[playerid][strval(cmdtext[FS_Parameter])] = 0;
- FS_PlayerVirtualWorld[playerid][strval(cmdtext[FS_Parameter])] = 0;
- FS_PlayerPositionX[playerid][strval(cmdtext[FS_Parameter])] = 0.0;
- FS_PlayerPositionY[playerid][strval(cmdtext[FS_Parameter])] = 0.0;
- FS_PlayerPositionZ[playerid][strval(cmdtext[FS_Parameter])] = 0.0;
- FS_PlayerPositionA[playerid][strval(cmdtext[FS_Parameter])] = 0.0;
- SendClientMessage(playerid,0xFFFFFFFF,"(Success): {00FF00}Your position is successfully deleted.");
- return 1;
- }
- if(!strcmp(cmdtext,"/Positions",true) || !strcmp(cmdtext,"/P",true))
- {
- new FS_String[30 * FS_PositionsMaximal];
- FS_String[0] = EOS;
- for(new FS_Loop = 0; FS_Loop < FS_PositionsMaximal; FS_Loop++)
- {
- format(FS_String,sizeof(FS_String),"%s{FFFFFF}Position {00FF00}%d\n",FS_String,FS_Loop);
- }
- ShowPlayerDialog(playerid,FS_PositionsDialog,DIALOG_STYLE_LIST,"{FFFFFF}Positions",FS_String,"Select","Cancel");
- return 1;
- }
- return 0;
- }
- public OnDialogResponse(playerid,dialogid,response,listitem,inputtext[])
- {
- switch(dialogid)
- {
- case FS_PositionsDialog:
- {
- if(response)
- {
- FS_PlayerPositionSelected[playerid] = listitem;
- ShowPlayerDialog(playerid,FS_PositionDialog,DIALOG_STYLE_LIST,"{FFFFFF}Positions","{FFFFFF}Save\n{FFFFFF}Load\n{FFFFFF}Delete","Select","Back");
- }
- }
- case FS_PositionDialog:
- {
- if(response)
- {
- switch(listitem)
- {
- case 0:
- {
- FS_PlayerInterior[playerid][FS_PlayerPositionSelected[playerid]] = GetPlayerInterior(playerid);
- FS_PlayerVirtualWorld[playerid][FS_PlayerPositionSelected[playerid]] = GetPlayerVirtualWorld(playerid);
- if(IsPlayerInAnyVehicle(playerid))
- {
- GetVehiclePos(GetPlayerVehicleID(playerid),FS_PlayerPositionX[playerid][FS_PlayerPositionSelected[playerid]],FS_PlayerPositionY[playerid][FS_PlayerPositionSelected[playerid]],FS_PlayerPositionZ[playerid][FS_PlayerPositionSelected[playerid]]);
- GetVehicleZAngle(GetPlayerVehicleID(playerid),FS_PlayerPositionA[playerid][FS_PlayerPositionSelected[playerid]]);
- }
- if(!IsPlayerInAnyVehicle(playerid))
- {
- GetPlayerPos(playerid,FS_PlayerPositionX[playerid][FS_PlayerPositionSelected[playerid]],FS_PlayerPositionY[playerid][FS_PlayerPositionSelected[playerid]],FS_PlayerPositionZ[playerid][FS_PlayerPositionSelected[playerid]]);
- GetPlayerFacingAngle(playerid,FS_PlayerPositionA[playerid][FS_PlayerPositionSelected[playerid]]);
- }
- SendClientMessage(playerid,0xFFFFFFFF,"(Success): {00FF00}Your positions is successfully saved.");
- }
- case 1:
- {
- if(FS_PlayerInterior[playerid][FS_PlayerPositionSelected[playerid]] == 0 && FS_PlayerVirtualWorld[playerid][FS_PlayerPositionSelected[playerid]] == 0 && FS_PlayerPositionX[playerid][FS_PlayerPositionSelected[playerid]] == 0.0 && FS_PlayerPositionY[playerid][FS_PlayerPositionSelected[playerid]] == 0.0 && FS_PlayerPositionZ[playerid][FS_PlayerPositionSelected[playerid]] == 0.0 && FS_PlayerPositionA[playerid][FS_PlayerPositionSelected[playerid]] == 0.0)
- {
- SendClientMessage(playerid,0xFFFFFFFF,"(Error): {FF0000}This position is not saved yet.");
- return 1;
- }
- SetPlayerInterior(playerid,FS_PlayerInterior[playerid][FS_PlayerPositionSelected[playerid]]);
- SetPlayerVirtualWorld(playerid,FS_PlayerVirtualWorld[playerid][FS_PlayerPositionSelected[playerid]]);
- if(IsPlayerInAnyVehicle(playerid))
- {
- LinkVehicleToInterior(GetPlayerVehicleID(playerid),FS_PlayerInterior[playerid][FS_PlayerPositionSelected[playerid]]);
- SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),FS_PlayerVirtualWorld[playerid][FS_PlayerPositionSelected[playerid]]);
- SetVehiclePos(GetPlayerVehicleID(playerid),FS_PlayerPositionX[playerid][FS_PlayerPositionSelected[playerid]],FS_PlayerPositionY[playerid][FS_PlayerPositionSelected[playerid]],FS_PlayerPositionZ[playerid][FS_PlayerPositionSelected[playerid]]);
- SetVehicleZAngle(GetPlayerVehicleID(playerid),FS_PlayerPositionA[playerid][FS_PlayerPositionSelected[playerid]]);
- }
- if(!IsPlayerInAnyVehicle(playerid))
- {
- SetPlayerPos(playerid,FS_PlayerPositionX[playerid][FS_PlayerPositionSelected[playerid]],FS_PlayerPositionY[playerid][FS_PlayerPositionSelected[playerid]],FS_PlayerPositionZ[playerid][FS_PlayerPositionSelected[playerid]]);
- SetPlayerFacingAngle(playerid,FS_PlayerPositionA[playerid][FS_PlayerPositionSelected[playerid]]);
- }
- SendClientMessage(playerid,0xFFFFFFFF,"(Success): {00FF00}Your position is successfully loaded.");
- }
- case 2:
- {
- if(FS_PlayerInterior[playerid][FS_PlayerPositionSelected[playerid]] == 0 && FS_PlayerVirtualWorld[playerid][FS_PlayerPositionSelected[playerid]] == 0 && FS_PlayerPositionX[playerid][FS_PlayerPositionSelected[playerid]] == 0.0 && FS_PlayerPositionY[playerid][FS_PlayerPositionSelected[playerid]] == 0.0 && FS_PlayerPositionZ[playerid][FS_PlayerPositionSelected[playerid]] == 0.0 && FS_PlayerPositionA[playerid][FS_PlayerPositionSelected[playerid]] == 0.0)
- {
- SendClientMessage(playerid,0xFFFFFFFF,"(Error): {FF0000}This position is not saved yet.");
- return 1;
- }
- FS_PlayerInterior[playerid][FS_PlayerPositionSelected[playerid]] = 0;
- FS_PlayerVirtualWorld[playerid][FS_PlayerPositionSelected[playerid]] = 0;
- FS_PlayerPositionX[playerid][FS_PlayerPositionSelected[playerid]] = 0.0;
- FS_PlayerPositionY[playerid][FS_PlayerPositionSelected[playerid]] = 0.0;
- FS_PlayerPositionZ[playerid][FS_PlayerPositionSelected[playerid]] = 0.0;
- FS_PlayerPositionA[playerid][FS_PlayerPositionSelected[playerid]] = 0.0;
- SendClientMessage(playerid,0xFFFFFFFF,"(Success): {00FF00}Your position is successfully deleted.");
- }
- }
- }
- }
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment