Advertisement
Guest User

Untitled

a guest
Aug 10th, 2012
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.54 KB | None | 0 0
  1. //INKLUDOVI
  2. #include <a_samp>
  3. //NEW
  4. new Float:Camera[6];
  5. new Float:Distance;
  6. new Pozicija[MAX_PLAYERS];
  7. new InCamera[MAX_PLAYERS];
  8. //DEFINE
  9. #define VAR 8
  10. #define PLAVA 0xFF6347AA
  11. #define SCM SendClientMessage
  12. //COMMANDS
  13. public OnPlayerCommandText(playerid, cmdtext[])
  14. {
  15. new cmd[256];
  16. new idx;
  17. cmd = strtok(cmdtext, idx);
  18. //------------------------------------------------------------------------------
  19. if(strcmp(cmd, "/savepos", true) == 0)
  20. {
  21. new SAVE1[256];
  22. new SAVE2[256];
  23. new File:SAVES;
  24. format(SAVE1, sizeof(SAVE1),"SetPlayerCameraPos(playerid,%.3f,%.3f,%.3f);",Camera[0],Camera[1],Camera[2]);
  25. format(SAVE2, sizeof(SAVE2), "SetPlayerCameraLookAt(playerid,%.3f,%.3f,%.3f);",Camera[3],Camera[4],Camera[5]);
  26. SAVES = fopen("cam.txt", io_append);
  27. fwrite(SAVES, SAVE1, SAVE2);
  28. fclose(SAVES);
  29. SCM(playerid, PLAVA,"Uspesno Zacuvano!");
  30. return 1;
  31. }
  32. //------------------------------------------------------------------------------
  33. if(strcmp(cmd, "/usecam", true) == 0)
  34. {
  35. Pozicija[playerid] = 1;
  36. InCamera[playerid] = 0;
  37. SCM(playerid, PLAVA, "Dokolku vi treba pomos, koristete /camerahelp");
  38. TogglePlayerControllable(playerid,0);
  39. Distance = 0.1;
  40. GetPlayerCameraPos(playerid,Camera[0],Camera[1],Camera[2]);
  41. GetPlayerPos(playerid,Camera[3],Camera[4],Camera[5]);
  42. SetPlayerCameraPos(playerid,Camera[0],Camera[1],Camera[2]);
  43. SetPlayerCameraLookAt(playerid,Camera[3],Camera[4],Camera[5]);
  44. return 1;
  45. }
  46. //------------------------------------------------------------------------------
  47. if(strcmp(cmd, "/stopusecam", true) == 0)
  48. {
  49. TogglePlayerControllable(playerid,1);
  50. SetCameraBehindPlayer(playerid);
  51. Pozicija[playerid] = 0;
  52. InCamera[playerid] = 0;
  53. return 1;
  54. }
  55. //------------------------------------------------------------------------------
  56. if(strcmp(cmd, "/camerahelp", true) == 0)
  57. {
  58. SCM(playerid, PLAVA, "KEY_FIRE += X, KEY_DOWN += Y, Space += Z");
  59. SCM(playerid, PLAVA, "F -= X, ALTGR -= Y, Caps-Lock -= Z");
  60. SCM(playerid, PLAVA, "/usecam | /stopusecam | /savepos");
  61. return 1;
  62. }
  63. return 0;
  64. }
  65.  
  66. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  67. {
  68. if(newkeys == KEY_FIRE)
  69. {
  70. if(Pozicija[playerid] == 1)
  71. {
  72. Camera[0] += Distance;
  73. SetPlayerCameraPos(playerid,Camera[0],Camera[1],Camera[2]);
  74. SetPlayerCameraLookAt(playerid,Camera[3],Camera[4],Camera[5]);
  75. }
  76. else if(InCamera[playerid] == 1)
  77. {
  78. Camera[3] += Distance;
  79. SetPlayerCameraPos(playerid,Camera[0],Camera[1],Camera[2]);
  80. SetPlayerCameraLookAt(playerid,Camera[3],Camera[4],Camera[5]);
  81. }
  82. }
  83. if(newkeys == 16)
  84. {
  85. if(Pozicija[playerid] == 1)
  86. {
  87. Camera[0] -= Distance;
  88. SetPlayerCameraPos(playerid,Camera[0],Camera[1],Camera[2]);
  89. SetPlayerCameraLookAt(playerid,Camera[3],Camera[4],Camera[5]);
  90. }
  91. else if(InCamera[playerid] == 1)
  92. {
  93. Camera[3] -= Distance;
  94. SetPlayerCameraPos(playerid,Camera[0],Camera[1],Camera[2]);
  95. SetPlayerCameraLookAt(playerid,Camera[3],Camera[4],Camera[5]);
  96. }
  97. }
  98. if(newkeys == KEY_DOWN)
  99. {
  100. if(Pozicija[playerid] == 1)
  101. {
  102. Camera[1] += Distance;
  103. SetPlayerCameraPos(playerid,Camera[0],Camera[1],Camera[2]);
  104. SetPlayerCameraLookAt(playerid,Camera[3],Camera[4],Camera[5]);
  105. }
  106. else if(InCamera[playerid] == 1)
  107. {
  108. Camera[4] += Distance;
  109. SetPlayerCameraPos(playerid,Camera[0],Camera[1],Camera[2]);
  110. SetPlayerCameraLookAt(playerid,Camera[3],Camera[4],Camera[5]);
  111. }
  112. }
  113. if(newkeys == 4)
  114. {
  115. if(Pozicija[playerid] == 1)
  116. {
  117. Camera[1] -= Distance;
  118. SetPlayerCameraPos(playerid,Camera[0],Camera[1],Camera[2]);
  119. SetPlayerCameraLookAt(playerid,Camera[3],Camera[4],Camera[5]);
  120. }
  121. else if(InCamera[playerid] == 1)
  122. {
  123. Camera[4] -= Distance;
  124. SetPlayerCameraPos(playerid,Camera[0],Camera[1],Camera[2]);
  125. SetPlayerCameraLookAt(playerid,Camera[3],Camera[4],Camera[5]);
  126. }
  127. }
  128. if(newkeys == VAR)
  129. {
  130. if(Pozicija[playerid] == 1)
  131. {
  132. Camera[2] += Distance;
  133. SetPlayerCameraPos(playerid,Camera[0],Camera[1],Camera[2]);
  134. SetPlayerCameraLookAt(playerid,Camera[3],Camera[4],Camera[5]);
  135. }
  136. else if(InCamera[playerid] == 1)
  137. {
  138. Camera[5] += Distance;
  139. SetPlayerCameraPos(playerid,Camera[0],Camera[1],Camera[2]);
  140. SetPlayerCameraLookAt(playerid,Camera[3],Camera[4],Camera[5]);
  141. }
  142. }
  143. if(newkeys == 128)
  144. {
  145. if(Pozicija[playerid] == 1)
  146. {
  147. Camera[2] -= Distance;
  148. SetPlayerCameraPos(playerid,Camera[0],Camera[1],Camera[2]);
  149. SetPlayerCameraLookAt(playerid,Camera[3],Camera[4],Camera[5]);
  150. }
  151. else if(InCamera[playerid] == 1)
  152. {
  153. Camera[5] -= Distance;
  154. SetPlayerCameraPos(playerid,Camera[0],Camera[1],Camera[2]);
  155. SetPlayerCameraLookAt(playerid,Camera[3],Camera[4],Camera[5]);
  156. }
  157. }
  158. return 1;
  159. }
  160.  
  161. strtok(const string[], &index)
  162. {
  163. new length = strlen(string);
  164. while ((index < length) && (string[index] <= ' ')) { index++; }
  165. new offset = index;
  166. new result[20];
  167. while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  168. {
  169. result[index - offset] = string[index];
  170. index++;
  171. }
  172. result[index - offset] = EOS;
  173. return result;
  174. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement