Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //INKLUDOVI
- #include <a_samp>
- //NEW
- new Float:Camera[6];
- new Float:Distance;
- new Pozicija[MAX_PLAYERS];
- new InCamera[MAX_PLAYERS];
- //DEFINE
- #define VAR 8
- #define PLAVA 0xFF6347AA
- #define SCM SendClientMessage
- //COMMANDS
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- new cmd[256];
- new idx;
- cmd = strtok(cmdtext, idx);
- //------------------------------------------------------------------------------
- if(strcmp(cmd, "/savepos", true) == 0)
- {
- new SAVE1[256];
- new SAVE2[256];
- new File:SAVES;
- format(SAVE1, sizeof(SAVE1),"SetPlayerCameraPos(playerid,%.3f,%.3f,%.3f);",Camera[0],Camera[1],Camera[2]);
- format(SAVE2, sizeof(SAVE2), "SetPlayerCameraLookAt(playerid,%.3f,%.3f,%.3f);",Camera[3],Camera[4],Camera[5]);
- SAVES = fopen("cam.txt", io_append);
- fwrite(SAVES, SAVE1, SAVE2);
- fclose(SAVES);
- SCM(playerid, PLAVA,"Uspesno Zacuvano!");
- return 1;
- }
- //------------------------------------------------------------------------------
- if(strcmp(cmd, "/usecam", true) == 0)
- {
- Pozicija[playerid] = 1;
- InCamera[playerid] = 0;
- SCM(playerid, PLAVA, "Dokolku vi treba pomos, koristete /camerahelp");
- TogglePlayerControllable(playerid,0);
- Distance = 0.1;
- GetPlayerCameraPos(playerid,Camera[0],Camera[1],Camera[2]);
- GetPlayerPos(playerid,Camera[3],Camera[4],Camera[5]);
- SetPlayerCameraPos(playerid,Camera[0],Camera[1],Camera[2]);
- SetPlayerCameraLookAt(playerid,Camera[3],Camera[4],Camera[5]);
- return 1;
- }
- //------------------------------------------------------------------------------
- if(strcmp(cmd, "/stopusecam", true) == 0)
- {
- TogglePlayerControllable(playerid,1);
- SetCameraBehindPlayer(playerid);
- Pozicija[playerid] = 0;
- InCamera[playerid] = 0;
- return 1;
- }
- //------------------------------------------------------------------------------
- if(strcmp(cmd, "/camerahelp", true) == 0)
- {
- SCM(playerid, PLAVA, "KEY_FIRE += X, KEY_DOWN += Y, Space += Z");
- SCM(playerid, PLAVA, "F -= X, ALTGR -= Y, Caps-Lock -= Z");
- SCM(playerid, PLAVA, "/usecam | /stopusecam | /savepos");
- return 1;
- }
- return 0;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- if(newkeys == KEY_FIRE)
- {
- if(Pozicija[playerid] == 1)
- {
- Camera[0] += Distance;
- SetPlayerCameraPos(playerid,Camera[0],Camera[1],Camera[2]);
- SetPlayerCameraLookAt(playerid,Camera[3],Camera[4],Camera[5]);
- }
- else if(InCamera[playerid] == 1)
- {
- Camera[3] += Distance;
- SetPlayerCameraPos(playerid,Camera[0],Camera[1],Camera[2]);
- SetPlayerCameraLookAt(playerid,Camera[3],Camera[4],Camera[5]);
- }
- }
- if(newkeys == 16)
- {
- if(Pozicija[playerid] == 1)
- {
- Camera[0] -= Distance;
- SetPlayerCameraPos(playerid,Camera[0],Camera[1],Camera[2]);
- SetPlayerCameraLookAt(playerid,Camera[3],Camera[4],Camera[5]);
- }
- else if(InCamera[playerid] == 1)
- {
- Camera[3] -= Distance;
- SetPlayerCameraPos(playerid,Camera[0],Camera[1],Camera[2]);
- SetPlayerCameraLookAt(playerid,Camera[3],Camera[4],Camera[5]);
- }
- }
- if(newkeys == KEY_DOWN)
- {
- if(Pozicija[playerid] == 1)
- {
- Camera[1] += Distance;
- SetPlayerCameraPos(playerid,Camera[0],Camera[1],Camera[2]);
- SetPlayerCameraLookAt(playerid,Camera[3],Camera[4],Camera[5]);
- }
- else if(InCamera[playerid] == 1)
- {
- Camera[4] += Distance;
- SetPlayerCameraPos(playerid,Camera[0],Camera[1],Camera[2]);
- SetPlayerCameraLookAt(playerid,Camera[3],Camera[4],Camera[5]);
- }
- }
- if(newkeys == 4)
- {
- if(Pozicija[playerid] == 1)
- {
- Camera[1] -= Distance;
- SetPlayerCameraPos(playerid,Camera[0],Camera[1],Camera[2]);
- SetPlayerCameraLookAt(playerid,Camera[3],Camera[4],Camera[5]);
- }
- else if(InCamera[playerid] == 1)
- {
- Camera[4] -= Distance;
- SetPlayerCameraPos(playerid,Camera[0],Camera[1],Camera[2]);
- SetPlayerCameraLookAt(playerid,Camera[3],Camera[4],Camera[5]);
- }
- }
- if(newkeys == VAR)
- {
- if(Pozicija[playerid] == 1)
- {
- Camera[2] += Distance;
- SetPlayerCameraPos(playerid,Camera[0],Camera[1],Camera[2]);
- SetPlayerCameraLookAt(playerid,Camera[3],Camera[4],Camera[5]);
- }
- else if(InCamera[playerid] == 1)
- {
- Camera[5] += Distance;
- SetPlayerCameraPos(playerid,Camera[0],Camera[1],Camera[2]);
- SetPlayerCameraLookAt(playerid,Camera[3],Camera[4],Camera[5]);
- }
- }
- if(newkeys == 128)
- {
- if(Pozicija[playerid] == 1)
- {
- Camera[2] -= Distance;
- SetPlayerCameraPos(playerid,Camera[0],Camera[1],Camera[2]);
- SetPlayerCameraLookAt(playerid,Camera[3],Camera[4],Camera[5]);
- }
- else if(InCamera[playerid] == 1)
- {
- Camera[5] -= Distance;
- SetPlayerCameraPos(playerid,Camera[0],Camera[1],Camera[2]);
- SetPlayerCameraLookAt(playerid,Camera[3],Camera[4],Camera[5]);
- }
- }
- return 1;
- }
- 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;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement