Guest User

Lj

a guest
May 24th, 2009
907
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.81 KB | None | 0 0
  1. //-------------------------------------------------
  2. //
  3. // Simple photo gallery script.
  4. // by Lj - 2009.
  5. //
  6. //-------------------------------------------------
  7.  
  8. #include <a_samp>
  9. #define KEY_AIM 128
  10.  
  11. enum SavePosENUM { Float:picX, Float:picY, Float:picZ, Float:picA, SavedPos };
  12. new SavePos[MAX_PLAYERS][SavePosENUM];
  13. new PosI[MAX_PLAYERS];
  14.  
  15. enum LastPosENUM { Float:X, Float:Y, Float:Z, Float:A };
  16. new LastPos[MAX_PLAYERS][LastPosENUM];
  17. new Pos2I[MAX_PLAYERS];
  18.  
  19. new Beepy;
  20. new IsViewing[MAX_PLAYERS];
  21. new Clear;
  22.  
  23. forward AutoClear(playerid);
  24. forward Beep(playerid);
  25.  
  26. #define COLOR_RED 0xFF0000AA
  27. #define COLOR_SYSTEM 0xEFEFF7AA
  28. //-------------------------------------------------
  29.  
  30. public OnFilterScriptInit()
  31. {
  32. return 1;
  33. }
  34.  
  35. public OnPlayerCommandText(playerid, cmdtext[])
  36. {
  37. if(strcmp(cmdtext, "/viewphoto", true) == 0)
  38. {
  39. if(SavePos[playerid][SavedPos] == 0)
  40. {
  41. SendClientMessage(playerid, COLOR_SYSTEM, ">> You haven't taken a photo. - You can take one by equipting a camera, aiming and pressing the FIRE key on your mouse.");
  42. }
  43. else
  44. {
  45. GetPlayerPos(playerid, LastPos[playerid][X], LastPos[playerid][Y], LastPos[playerid][Z]);
  46. GetPlayerFacingAngle(playerid, LastPos[playerid][A]);
  47. Pos2I[playerid] = (GetPlayerInterior(playerid));
  48. TogglePlayerControllable(playerid, false);
  49. SetPlayerPos(playerid, SavePos[playerid][picX], SavePos[playerid][picY], SavePos[playerid][picZ]+10);
  50. SetPlayerCameraPos(playerid, SavePos[playerid][picX], SavePos[playerid][picY], SavePos[playerid][picZ]);
  51. #define DISTANCE 10.0
  52. SetPlayerCameraLookAt(playerid, SavePos[playerid][picX] + DISTANCE * floatsin(-SavePos[playerid][picA], degrees), SavePos[playerid][picY] + DISTANCE * floatcos(-SavePos[playerid][picA], degrees), SavePos[playerid][picZ]);
  53. SetPlayerInterior(playerid, PosI[playerid]);
  54. Clear = SetTimerEx("AutoClear", 8000, false, "i", playerid);
  55. SendClientMessage(playerid, COLOR_SYSTEM, ">> Photo auto-deleting in 8 seconds. - Press the FIRE key to go back.");
  56. Beepy = SetTimerEx("Beep", 1000, true, "i", playerid);
  57. ResetPlayerWeapons(playerid);
  58. IsViewing[playerid] = 1;
  59. SetPlayerVirtualWorld(playerid, 6);
  60. }
  61. return 1;
  62. }
  63. return 0;
  64. }
  65.  
  66.  
  67. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  68. {
  69. if (GetPlayerWeapon(playerid) == 43 && newkeys & KEY_FIRE && oldkeys & KEY_AIM)
  70. {
  71. GetPlayerPos(playerid, SavePos[playerid][picX], SavePos[playerid][picY], SavePos[playerid][picZ]);
  72. GetPlayerFacingAngle(playerid, SavePos[playerid][picA]);
  73. PosI[playerid] = (GetPlayerInterior(playerid));
  74. SavePos[playerid][SavedPos] = 1;
  75. GameTextForPlayer(playerid, "~w~Photo Taken! ~n~~r~/viewphoto ~w~to view it!", 2500, 5);
  76. }
  77. if (IsViewing[playerid] == 1 && newkeys & KEY_FIRE)
  78. {
  79. SetPlayerPos(playerid, LastPos[playerid][X], LastPos[playerid][Y], LastPos[playerid][Z]);
  80. SetPlayerFacingAngle(playerid, LastPos[playerid][A]);
  81. SetCameraBehindPlayer(playerid);
  82. SetPlayerInterior(playerid, Pos2I[playerid]);
  83. TogglePlayerControllable(playerid, true);
  84. KillTimer(Beepy);
  85. KillTimer(Clear);
  86. GivePlayerWeapon(playerid, 43, 10);
  87. SetPlayerVirtualWorld(playerid, 0);
  88. }
  89. return 1;
  90. }
  91.  
  92. public AutoClear(playerid)
  93. {
  94. SetPlayerPos(playerid, LastPos[playerid][X], LastPos[playerid][Y], LastPos[playerid][Z]);
  95. SetPlayerFacingAngle(playerid, LastPos[playerid][A]);
  96. SetCameraBehindPlayer(playerid);
  97. SetPlayerInterior(playerid, Pos2I[playerid]);
  98. TogglePlayerControllable(playerid, true);
  99. KillTimer(Beepy);
  100. GameTextForPlayer(playerid, "~w~Photo Reset!", 2500, 5);
  101. GivePlayerWeapon(playerid, 43, 10);
  102. SavePos[playerid][SavedPos] = 0;
  103. SetPlayerVirtualWorld(playerid, 0);
  104. return 1;
  105. }
  106.  
  107. public Beep(playerid)
  108. {
  109. PlayerPlaySound(playerid, 1137, 0.0, 0.0, 0.0);
  110. return 1;
  111. }
Advertisement
Add Comment
Please, Sign In to add comment