or
#define FILTERSCRIPT
#include a_samp
#include sscanf2
#include zcmd
#define CameraMode(%0) GetPVarInt(%0, \"cameramode\")
#define Error(%0,%1) SendClientMessage(%0, 0xff6666ff, %1)
new
Float:p[4],
str[128],
string[1024],
bool:iscamera=false
;
enum { DIALOG_CAMERAMENU=10, DIALOG_CAMERAMENU2 }
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {
if(iscamera == true) {
if(newkeys & KEY_YES && CameraMode(playerid) == 1) {
GetPlayerPos(playerid, p[0], p[1], p[2]);
GetPlayerFacingAngle(playerid, p[3]);
str[0] = EOS;
format(str, sizeof(str), \"%f,%f,%f,%f\", p[0], p[1], p[2], p[3]);
SetPVarString(playerid, \"playerpos\", str);
SendClientMessage(playerid, -1, \"Camera :: Pozíció lementve.\");
if(GetPVarInt(playerid, \"cameramode2\")) return ShowPlayerDialog(playerid, DIALOG_CAMERAMENU, 2, \"Menü\", \"Megszakítom az egész folyamatot\\nÚjra beállítom a játékos pozícióját\\nÚjra beállítom a kamera pozícióját\\nKész vagyok!\", \"Választ\", \"\");
SendClientMessage(playerid, -1, \"Camera :: Most menj a kívánt kamera pozíciójához és nyomd meg az \'N\' gombot!\");
SetPVarInt(playerid, \"cameramode\", 2);
DeletePVar(playerid, \"cameramode2\");
}
if(newkeys & KEY_NO && CameraMode(playerid) == 2) {
GetPlayerPos(playerid, p[0], p[1], p[2]);
str[0] = EOS;
format(str, sizeof(str), \"%f,%f,%f\", p[0], p[1], p[2]);
SetPVarString(playerid, \"camerapos\", str);
ShowPlayerDialog(playerid, DIALOG_CAMERAMENU, 2, \"Menü\", \"Megszakítom az egész folyamatot\\nÚjra beállítom a játékos pozícióját\\nÚjra beállítom a kamera pozícióját\\nKész vagyok!\", \"Választ\", \"\");
}
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
if(dialogid == DIALOG_CAMERAMENU) {
switch(listitem) {
case 0: {
Error(playerid, \"Megszakítottad a kamera készítését!\");
DeletePVar(playerid, \"cameramode\");
DeletePVar(playerid, \"cameramode2\");
iscamera = false;
SetCameraBehindPlayer(playerid);
}
case 1: {
SetPVarInt(playerid, \"cameramode\", 1);
SetPVarInt(playerid, \"cameramode2\", 1);
SetCameraBehindPlayer(playerid);
SendClientMessage(playerid, -1, \"Camera :: Menj arra a pozicíóra, mely a játékos tartózkodási helye legyen! Majd ha odaérték nyomd meg az \'Y\' betüt!\");
}
case 2: {
SetPVarInt(playerid, \"cameramode\", 2);
DeletePVar(playerid, \"cameramode2\");
SetCameraBehindPlayer(playerid);
SendClientMessage(playerid, -1, \"Camera :: Menj a kívánt kamera pozíciójához és nyomd meg az \'N\' gombot!\");
}
case 3: {
DeletePVar(playerid, \"cameramode\");
iscamera = false;
ShowPlayerDialog(playerid, DIALOG_CAMERAMENU2, 2, \"Menü (2)\", \"Megnézem az eredményt\\nLementem egy .txt fájlba\\nLementem egy szkriptbe skinválasztóként\\nHagyom a picsába\", \"Választ\", \"\");
}
}
}
if(dialogid == DIALOG_CAMERAMENU2) {
new asd[128], asd2[128], Float:pp[3];
switch(listitem) {
case 0: {
GetPVarString(playerid, \"playerpos\", asd, sizeof(asd));
sscanf(asd, \"p<,>ffff\", p[0], p[1], p[2], p[3]);
SetPlayerPos(playerid, p[0], p[1], p[2]);
SetPlayerFacingAngle(playerid, p[3]);
GetPVarString(playerid, \"camerapos\", asd2, sizeof(asd2));
sscanf(asd2, \"p<,>fff\", pp[0], pp[1], pp[2]);
SetPlayerCameraPos(playerid, pp[0], pp[1], pp[2]);
SetPlayerCameraLookAt(playerid, p[0], p[1], p[2]);
TogglePlayerControllable(playerid, false);
SendClientMessage(playerid, -1, \"Camera :: 5 másodperc múlva újra előjön a dialog!\");
SetTimerEx(\"CameraDialog\", 5000, false, \"i\", playerid);
}
case 1: {
GetPVarString(playerid, \"playerpos\", asd, sizeof(asd));
sscanf(asd, \"p<,>ffff\", p[0], p[1], p[2], p[3]);
GetPVarString(playerid, \"camerapos\", asd2, sizeof(asd2));
sscanf(asd2, \"p<,>fff\", pp[0], pp[1], pp[2]);
new File:file = fopen(\"camera.txt\", io_write);
format(string, sizeof(string), \"Játékos pozíció: %f, %f, %f\\r\\n\", p[0], p[1], p[2]);
fwrite(file, string);
format(string, sizeof(string), \"Játékos forgási szöge: %f\\r\\n\", p[3]);
fwrite(file, string);
format(string, sizeof(string), \"Kamera pozíció: %f, %f, %f\\r\\n\", pp[0], pp[1], pp[2]);
fwrite(file, string);
fclose(file);
DeletePVar(playerid, \"cameramode\");
DeletePVar(playerid, \"cameramode2\");
iscamera = false;
SetCameraBehindPlayer(playerid);
SendClientMessage(playerid, -1, \"Kamera lementve a \'scriptfiles\' mappába {00ff00}\'camera.txt\' {ffffff}néven\");
}
case 2: {
GetPVarString(playerid, \"playerpos\", asd, sizeof(asd));
sscanf(asd, \"p<,>ffff\", p[0], p[1], p[2], p[3]);
GetPVarString(playerid, \"camerapos\", asd2, sizeof(asd2));
sscanf(asd2, \"p<,>fff\", pp[0], pp[1], pp[2]);
new File:file = fopen(\"camera.pwn\", io_write);
fwrite(file, \"#include a_samp\\r\\n\");
fwrite(file, \"public OnPlayerRequestClass(playerid, classid) {\\r\\n\");
format(string, sizeof(string), \" SetPlayerPos(playerid, %f, %f, %f);\\r\\n\", p[0], p[1], p[2]);
fwrite(file, string);
format(string, sizeof(string), \" SetPlayerFacingAngle(playerid, %f);\\r\\n\", p[3]);
fwrite(file, string);
format(string, sizeof(string), \" SetPlayerCameraPos(playerid, %f, %f, %f);\\r\\n\", pp[0], pp[1], pp[2]);
fwrite(file, string);
format(string, sizeof(string), \" SetPlayerCameraLookAt(playerid, %f, %f, %f);\\r\\n\", p[0], p[1], p[2]);
fwrite(file, string);
fwrite(file, \" return 1;\\r\\n\");
fwrite(file, \"}\\r\\n\");
fclose(file);
DeletePVar(playerid, \"cameramode\");
DeletePVar(playerid, \"cameramode2\");
iscamera = false;
SetCameraBehindPlayer(playerid);
SendClientMessage(playerid, -1, \"Kamera lementve a \'scriptfiles\' mappába {00ff00}\'camera.pwn\' {ffffff}néven\");
}
case 3: {
SendClientMessage(playerid, -1, \"Camera :: Hagytad a picsába ._.\");
DeletePVar(playerid, \"cameramode\");
DeletePVar(playerid, \"cameramode2\");
iscamera = false;
SetCameraBehindPlayer(playerid);
}
}
}
return 1;
}
forward CameraDialog(playerid);
public CameraDialog(playerid) {
ShowPlayerDialog(playerid, DIALOG_CAMERAMENU2, 2, \"Menü (2)\", \"Megnézem az eredményt\\nLementem egy .txt fájlba\\nLementem egy szkriptbe skinválasztóként\\nHagyom a picsába\", \"Választ\", \"\");
TogglePlayerControllable(playerid, true);
return 1;
}
CMD:camera(playerid) {
if(iscamera == true) return Error(playerid, \"Már folyamatban van egy kamera készítése!\");
if(CameraMode(playerid)) return Error(playerid, \"Be van kapcsolva a kamera mód!\");
iscamera = true;
SetPVarInt(playerid, \"cameramode\", 1);
DeletePVar(playerid, \"cameramode2\");
SendClientMessage(playerid, -1, \"Camera :: Menj arra a pozicíóra, mely a játékos tartózkodási helye legyen! Majd ha odaérték nyomd meg az \'Y\' betüt!\");
return 1;
}
Használjátok egészséggel!