Szerző Téma: Ingame Camera Movement Editor  (Megtekintve 1532 alkalommal)

Ingame Camera Movement Editor
« Dátum: 2012. december 16. - 20:52:17 »
+2 Show voters
Sziasztok!
Gondoltam megosztom veletek ezt a jó kis filterscript-et. (Angol nyelvû)
Letöltése: http://www.solidfiles.com/d/a798e4229a/
Videó: 

Ezzel a szerverünk bejelentkezõ képét tudjuk beállítani/felvenni.
Az elkészült kódot a szerverünk \"Scriptfiles\" mappájába menti.
Parancsok:
/cameditor (Ezzel nyitod meg a kezelõ felületet)
/closecameditor (Ezzel lépünk ki az aktuális felvételbõl)
\"a_samp\" Include szükséges csak hozzá!
(Innen letölthetõ, ha valakinek nem lenne meg: http://www.solidfiles.com/d/g5qI/)
Forrás: http://forum.sa-mp.com/showthread.php?t=330879
(Ezt annak tudom ajánlani aki DT/Oxford editet használ, hogy ne az EQ fölötti szokásos képet nézzük!)
« Utoljára szerkesztve: 2012. december 16. - 23:14:49 írta Brian Watter »

Ingame Camera Movement Editor
« Válasz #1 Dátum: 2012. december 16. - 21:23:14 »
0 Show voters
Ezt, megtaláljuk forum.sa-mp.com- on!!

Ennyi, erõvel lefordítod adok érte 2+-t!!

Ingame Camera Movement Editor
« Válasz #2 Dátum: 2012. december 16. - 22:16:04 »
0 Show voters
Idézetet írta: PlayHard date=1355689394\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"31034\" data-ipsquote-contentclass=\"forums_Topic
Ezt, megtaláljuk forum.sa-mp.com- on!!

Ennyi, erõvel lefordítod adok érte 2+-t!!

 
:facepalm: ez felesleges, mer szoktak áthozni scripteket
egyébként forráskód kötelezõ!
 
/*
    _____           _     _
   |  __ \\         | |   (_)
   | |  | |_ __ ___| |__  _ _ __
   | |  | | \'__/ _ \\ \'_ \\| | \'_ \\
   | |__| | | |  __/ |_) | | | | |
   |_____/|_|  \\___|_.__/|_|_| |_|
            ˆ2012
               v 1.1
*/
#define FILTERSCRIPT
#include <a_samp>
#define MOVE_SPEED              100.0
#define ACCEL_RATE              0.03
#define CAMERA_MODE_NONE       0
#define CAMERA_MODE_FLY        1
#define MOVE_FORWARD          1
#define MOVE_BACK             2
#define MOVE_LEFT             3
#define MOVE_RIGHT            4
#define MOVE_FORWARD_LEFT       5
#define MOVE_FORWARD_RIGHT      6
#define MOVE_BACK_LEFT          7
#define MOVE_BACK_RIGHT         8
#define DIALOG_MENU 1678
#define DIALOG_MOVE_SPEED 1679
#define DIALOG_ROT_SPEED 1680
#define DIALOG_EXPORTNAME 1681
#define DIALOG_CLOSE_NEW 1682
const Float:fScale = 5.0;
new MenuTimer;
new Float:fPX, Float:fPY, Float:fPZ,
   Float:fVX, Float:fVY, Float:fVZ,
   Float:object_x, Float:object_y, Float:object_z;
new bool:IsCreating[MAX_PLAYERS]       = false;
new bool:IsReSettingStart[MAX_PLAYERS]    = false;
new bool:IsReSettingEnd[MAX_PLAYERS]    = false;
new bool:SettingFirstLoc[MAX_PLAYERS]    = false;
new bool:SettingLastLoc[MAX_PLAYERS]    = false;
new bool:IsCamMoving[MAX_PLAYERS]       = false;
enum noclipenum
{
cameramode,
flyobject,
mode,
lrold,
udold,
lastmove,
Float:accelmul
}
new noclipdata[MAX_PLAYERS][noclipenum];
enum Coordinates
{
Float:StartX,
Float:StartY,
Float:StartZ,
Float:EndX,
Float:EndY,
Float:EndZ,
Float:StartLookX,
Float:StartLookY,
Float:StartLookZ,
Float:EndLookX,
Float:EndLookY,
Float:EndLookZ,
MoveSpeed,
RotSpeed
}
new coordInfo[MAX_PLAYERS][Coordinates];
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
print(\"\\n--------------------------------------\");
print(\" CamEditor by Drebin\");
print(\"--------------------------------------\\n\");
return 1;
}
public OnFilterScriptExit()
{
    for(new x; x<MAX_PLAYERS; x++)
{
if(noclipdata
  • [cameramode] == CAMERA_MODE_FLY) CancelFlyMode(x);

}
return 1;
}
#endif
public OnPlayerConnect(playerid)
{
    noclipdata[playerid][cameramode]    = CAMERA_MODE_NONE;
noclipdata[playerid][lrold]             = 0;
noclipdata[playerid][udold]         = 0;
noclipdata[playerid][mode]         = 0;
noclipdata[playerid][lastmove]      = 0;
noclipdata[playerid][accelmul]      = 0.0;
IsCreating[playerid]             = false;
IsReSettingStart[playerid]          = false;
IsReSettingEnd[playerid]          = false;
SettingFirstLoc[playerid]          = false;
SettingLastLoc[playerid]          = false;
IsCamMoving[playerid]             = false;
coordInfo[playerid][MoveSpeed]       = 1000;
coordInfo[playerid][RotSpeed]       = 1000;
return 1;
}
public OnPlayerSpawn(playerid)
{
if(IsCreating[playerid] == false) SendClientMessage(playerid, -1, \"Type /cameditor to open the camera movement editor\");
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, \"/cameditor\", true))
{
    if(IsCamMoving[playerid] == false)
    {
   if(GetPVarType(playerid, \"FlyMode\"))
   {
      CancelFlyMode(playerid);
      IsCreating[playerid] = false;
   }
   else FlyMode(playerid);
}
return 1;
}
if(!strcmp(cmdtext, \"/closecameditor\", true))
{
    if(IsCreating[playerid])
    {
        CancelFlyMode(playerid);
            IsCreating[playerid] = false;
            noclipdata[playerid][cameramode]    = CAMERA_MODE_NONE;
   noclipdata[playerid][lrold]             = 0;
   noclipdata[playerid][udold]         = 0;
   noclipdata[playerid][mode]         = 0;
   noclipdata[playerid][lastmove]      = 0;
   noclipdata[playerid][accelmul]      = 0.0;
   IsCreating[playerid]             = false;
   IsReSettingStart[playerid]          = false;
   IsReSettingEnd[playerid]          = false;
   SettingFirstLoc[playerid]          = false;
   SettingLastLoc[playerid]          = false;
   IsCamMoving[playerid]             = false;
   coordInfo[playerid][MoveSpeed]       = 1000;
   coordInfo[playerid][RotSpeed]       = 1000;
   SendClientMessage(playerid, -1, \"You exited the camera movement editor.\");
    }
    else SendClientMessage(playerid, -1, \"You are currently not using the camera movement editor.\");
    return 1;
}
return 0;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if ((newkeys & KEY_FIRE) && !(oldkeys & KEY_FIRE))
    {
        if(IsCreating[playerid] == true)
        {
            if(SettingFirstLoc[playerid] == true)
   {
        const Float:fScale = 5.0;
      GetPlayerCameraPos(playerid, fPX, fPY, fPZ);
      GetPlayerCameraFrontVector(playerid, fVX, fVY, fVZ);
      object_x = fPX + floatmul(fVX, fScale);
      object_y = fPY + floatmul(fVY, fScale);
      object_z = fPZ + floatmul(fVZ, fScale);
      coordInfo[playerid][startX]       = fPX;
      coordInfo[playerid][startY]       = fPY;
      coordInfo[playerid][startZ]       = fPZ;
      coordInfo[playerid][startLookX]    = object_x;
      coordInfo[playerid][startLookY]    = object_y;
      coordInfo[playerid][startLookZ]    = object_z;
        if(IsReSettingStart[playerid] == true)
        {
         SendClientMessage(playerid, -1, \"{8EFF8E}>{FFFFFF} Start position {8EFF8E}re-set.\");
         ShowPlayerDialog(playerid, DIALOG_MENU, DIALOG_STYLE_LIST,\"Next step?\",\"Preview\\nChange Start\\nChange End\\nChange Speed\\nSave\",\"Ok\",\"Cancel\");
         IsReSettingStart[playerid]       = false;
         IsReSettingEnd[playerid]       = false;
         SettingFirstLoc[playerid]       = false;
         SettingLastLoc[playerid]       = false;
      }
      else
      {
          SendClientMessage(playerid, -1, \"{8EFF8E}>{FFFFFF} Start position {8EFF8E}set.\");
          SendClientMessage(playerid, -1, \"Now use {F58282}~k~~PED_FIREWEAPON~ {FFFFFF}to save the camera\'s position as the {F58282}end {FFFFFF}position.\");
          SettingLastLoc[playerid] = true;
          SettingFirstLoc[playerid] = false;
      }
   }
   else if(SettingLastLoc[playerid] == true)
   {
       const Float:fScale = 5.0;
        new string[512];
       format(string, sizeof(string), \"Please enter the desired {F58282}movement{a9c4e4} time in milliseconds\\n\\nCurrent movement speed: \\t{F58282}%i milliseconds\\n{a9c4e4}Current rotation speed: \\t{F58282}%i milliseconds\\n\\n\\nNote: {a9c4e4}1 second = 1000 milliseconds\", coordInfo[playerid][MoveSpeed], coordInfo[playerid][RotSpeed]);
       ShowPlayerDialog(playerid, DIALOG_MOVE_SPEED, DIALOG_STYLE_INPUT, \"Movement Speed\", string,\"Ok\",\"Cancel\");
      GetPlayerCameraPos(playerid, fPX, fPY, fPZ);
      GetPlayerCameraFrontVector(playerid, fVX, fVY, fVZ);
      object_x = fPX + floatmul(fVX, fScale);
      object_y = fPY + floatmul(fVY, fScale);
      object_z = fPZ + floatmul(fVZ, fScale);
      coordInfo[playerid][EndX]          = fPX;
      coordInfo[playerid][EndY]          = fPY;
      coordInfo[playerid][EndZ]          = fPZ;
      coordInfo[playerid][EndLookX]       = object_x;
      coordInfo[playerid][EndLookY]       = object_y;
      coordInfo[playerid][EndLookZ]       = object_z;
      if(IsReSettingEnd[playerid] == true)
      {
          SendClientMessage(playerid, -1, \"{8EFF8E}>{FFFFFF} End position {8EFF8E}re-set.\");
          ShowPlayerDialog(playerid, DIALOG_MENU, DIALOG_STYLE_LIST,\"Next step?\",\"Preview\\nChange Start\\nChange End\\nChange Speed\\nSave\",\"Ok\",\"Cancel\");
            IsReSettingStart[playerid]       = false;
         IsReSettingEnd[playerid]       = false;
         SettingFirstLoc[playerid]       = false;
         SettingLastLoc[playerid]       = false;
      }
      else
      {
          SendClientMessage(playerid, -1, \"{8EFF8E}>{FFFFFF} End position {8EFF8E}set.\");
          SettingLastLoc[playerid] = false;
      }
   }
}
    }
return 1;
}
public OnPlayerUpdate(playerid)
{
if(noclipdata[playerid][cameramode] == CAMERA_MODE_FLY)
{
new keys,ud,lr;
GetPlayerKeys(playerid,keys,ud,lr);
if(noclipdata[playerid][mode] && (GetTickCount() - noclipdata[playerid][lastmove] > 100))
{
    MoveCamera(playerid);
}
if(noclipdata[playerid][udold] != ud || noclipdata[playerid][lrold] != lr)
{
   if((noclipdata[playerid][udold] != 0 || noclipdata[playerid][lrold] != 0) && ud == 0 && lr == 0){
      StopPlayerObject(playerid, noclipdata[playerid][flyobject]);
      noclipdata[playerid][mode]      = 0;
      noclipdata[playerid][accelmul]  = 0.0;
   }
   else
   {
      noclipdata[playerid][mode] = GetMoveDirectionFromKeys(ud, lr);
      MoveCamera(playerid);
   }
}
noclipdata[playerid][udold] = ud; noclipdata[playerid][lrold] = lr;
return 0;
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
    case DIALOG_MENU:
    {
        if(response)
        {
        switch(listitem)
        {
         case 0: //Preview
         {
             PreviewMovement(playerid);
         }
         case 1: //Change start
         {
             DestroyPlayerObject(playerid, noclipdata[playerid][flyobject]);
            IsReSettingEnd[playerid]    = false;
            SettingLastLoc[playerid]    = false;
             IsReSettingStart[playerid] = true;
             SettingFirstLoc[playerid]  = true;
             noclipdata[playerid][flyobject] = CreatePlayerObject(playerid, 19300, coordInfo[playerid][startX], coordInfo[playerid][startY], coordInfo[playerid][startZ], 0.0, 0.0, 0.0);
                        TogglePlayerSpectating(playerid, true);
            AttachCameraToPlayerObject(playerid, noclipdata[playerid][flyobject]);
            SetPVarInt(playerid, \"FlyMode\", 1);
            noclipdata[playerid][cameramode] = CAMERA_MODE_FLY;
            SendClientMessage(playerid, -1, \"Use {F58282}~k~~PED_FIREWEAPON~ {FFFFFF}to set a new {F58282}start {FFFFFF}position.\");
         }
         case 2: //Change end
         {
             DestroyPlayerObject(playerid, noclipdata[playerid][flyobject]);
            IsReSettingStart[playerid]    = false;
            SettingFirstLoc[playerid]    = false;
             IsReSettingEnd[playerid] = true;
             SettingLastLoc[playerid] = true;
             IsCreating[playerid]     = true;
             SetCameraBehindPlayer(playerid);
             noclipdata[playerid][flyobject] = CreatePlayerObject(playerid, 19300, coordInfo[playerid][EndX], coordInfo[playerid][EndY], coordInfo[playerid][EndZ], 0.0, 0.0, 0.0);
                        TogglePlayerSpectating(playerid, true);
            AttachCameraToPlayerObject(playerid, noclipdata[playerid][flyobject]);
            SetPVarInt(playerid, \"FlyMode\", 1);
            noclipdata[playerid][cameramode] = CAMERA_MODE_FLY;
            SendClientMessage(playerid, -1, \"Use {F58282}~k~~PED_FIREWEAPON~ {FFFFFF}to set a new {F58282}end {FFFFFF}position.\");
         }
         case 3: //Change speed
         {
             new string[512];
             format(string, sizeof(string), \"Please enter the desired {F58282}movement{a9c4e4} time in milliseconds\\n\\nCurrent movement speed: \\t{F58282}%i milliseconds\\n{a9c4e4}Current rotation speed: \\t{F58282}%i milliseconds\\n\\n\\nNote: {a9c4e4}1 second = 1000 milliseconds\", coordInfo[playerid][MoveSpeed], coordInfo[playerid][RotSpeed]);
             ShowPlayerDialog(playerid, DIALOG_MOVE_SPEED, DIALOG_STYLE_INPUT, \"Movement Speed\", string,\"Ok\",\"Cancel\");
         }
         case 4: //Export
         {
             ShowPlayerDialog(playerid, DIALOG_EXPORTNAME, DIALOG_STYLE_INPUT, \"Save movement\",\"Enter a name for the movement\",\"Ok\",\"Cancel\");
         }
        }
   }
   else
   {
      CancelFlyMode(playerid);
             SendClientMessage(playerid, -1, \"You exited the camera movement editor.\");
               IsCreating[playerid] = false;
   }
    }
     case DIALOG_MOVE_SPEED:
    {
        if(response)
        {
      if(strlen(inputtext))
      {
            if(IsNumeric(inputtext))
            {
                coordInfo[playerid][MoveSpeed] = strval(inputtext);
                new string[512];
             format(string, sizeof(string), \"Please enter the desired {F58282}rotation{a9c4e4} time in milliseconds\\n\\nCurrent movement speed: \\t{F58282}%i milliseconds\\n{a9c4e4}Current rotation speed: \\t{F58282}%i milliseconds\\n\\n\\n{F58282}Note: {a9c4e4}1 second = 1000 milliseconds\", coordInfo[playerid][MoveSpeed], coordInfo[playerid][RotSpeed]);
                    ShowPlayerDialog(playerid, DIALOG_ROT_SPEED, DIALOG_STYLE_INPUT, \"Rotation Speed\", string,\"Ok\",\"Cancel\");
                    IsReSettingStart[playerid] = false;
            IsReSettingEnd[playerid]   = false;
         }
            else
            {
                new string[512];
                format(string, sizeof(string), \"Please enter the desired {F58282}movement{a9c4e4} time in milliseconds\\n\\nCurrent movement speed: \\t{F58282}%i milliseconds\\n{a9c4e4}Current rotation speed: \\t{F58282}%i milliseconds\\n{FF0000}NUMBERS ONLY\\n\\n{F58282}Note: {a9c4e4}1 second = 1000 milliseconds\", coordInfo[playerid][MoveSpeed], coordInfo[playerid][RotSpeed]);
                ShowPlayerDialog(playerid, DIALOG_MOVE_SPEED, DIALOG_STYLE_INPUT, \"Movement Speed\", string,\"Ok\",\"Cancel\");
            }
      }
      else
      {
          new string[512];
                format(string, sizeof(string), \"Please enter the desired {F58282}movement{a9c4e4} time in milliseconds\\n\\nCurrent movement speed: \\t{F58282}%i milliseconds\\n{a9c4e4}Current rotation speed: \\t{F58282}%i milliseconds\\n{FF0000}You need to enter a value\\n\\n{F58282}Note: {a9c4e4}1 second = 1000 milliseconds\", coordInfo[playerid][MoveSpeed], coordInfo[playerid][RotSpeed]);
                 ShowPlayerDialog(playerid, DIALOG_MOVE_SPEED, DIALOG_STYLE_INPUT, \"Movement Speed\", string,\"Ok\",\"Cancel\");
      }
        }
        else
        {
                ShowPlayerDialog(playerid, DIALOG_MENU, DIALOG_STYLE_LIST,\"Next step?\",\"Preview\\nChange Start\\nChange End\\nChange Speed\\nSave\",\"Ok\",\"Cancel\");
        }
    }
    case DIALOG_ROT_SPEED:
    {
        if(response)
        {
            if(strlen(inputtext))
            {
            if(IsNumeric(inputtext))
            {
                coordInfo[playerid][RotSpeed] = strval(inputtext);
                ShowPlayerDialog(playerid, DIALOG_MENU, DIALOG_STYLE_LIST,\"Next step?\",\"Preview\\nChange Start\\nChange End\\nChange Speed\\nSave\",\"Ok\",\"Cancel\");
                    IsReSettingStart[playerid] = false;
            IsReSettingEnd[playerid]   = false;
         }
            else
            {
                new string[512];
                format(string, sizeof(string), \"Please enter the desired {F58282}rotation{a9c4e4} time in milliseconds\\n\\nCurrent movement speed: \\t{F58282}%i milliseconds\\n{a9c4e4}Current rotation speed: \\t{F58282}%i milliseconds\\n{FF0000}NUMBERS ONLY!\\n\\n{F58282}Note: {a9c4e4}1 second = 1000 milliseconds\", coordInfo[playerid][MoveSpeed], coordInfo[playerid][RotSpeed]);
                ShowPlayerDialog(playerid, DIALOG_ROT_SPEED, DIALOG_STYLE_INPUT, \"Rotation Speed\", string,\"Ok\",\"Cancel\");
            }
      }
      else
      {
          new string[512];
                format(string, sizeof(string), \"Please enter the desired {F58282}rotation{a9c4e4} time in milliseconds\\n\\nCurrent movement speed: \\t{F58282}%i milliseconds\\n{a9c4e4}Current rotation speed: \\t{F58282}%i milliseconds\\n{FF0000}You need to enter a value\\n\\n{F58282}Note: {a9c4e4}1 second = 1000 milliseconds\", coordInfo[playerid][MoveSpeed], coordInfo[playerid][RotSpeed]);
                 ShowPlayerDialog(playerid, DIALOG_ROT_SPEED, DIALOG_STYLE_INPUT, \"Rotation Speed\", string,\"Ok\",\"Cancel\");
      }
        }
        else
        {
            new string[512];
             format(string, sizeof(string), \"Please enter the desired {F58282}movement{a9c4e4} time in milliseconds\\n\\nCurrent movement speed: \\t{F58282}%i milliseconds\\n{a9c4e4}Current rotation speed: \\t{F58282}%i milliseconds\\n\\n\\n{F58282}Note: {a9c4e4}1 second = 1000 milliseconds\", coordInfo[playerid][MoveSpeed], coordInfo[playerid][RotSpeed]);
                ShowPlayerDialog(playerid, DIALOG_MOVE_SPEED, DIALOG_STYLE_INPUT, \"Movement Speed\",string,\"Ok\",\"Cancel\");
        }
    }
    case DIALOG_EXPORTNAME:
    {
        if(response)
        {
                if(strlen(inputtext))
                {
         ExportMovement(playerid, inputtext);
      }
      else
      {
          ShowPlayerDialog(playerid, DIALOG_EXPORTNAME, DIALOG_STYLE_INPUT, \"Save movement\",\"Enter a name for the movement\\n{FF0000}You need to enter a text\",\"Ok\",\"Cancel\");
      }
   }
        else
        {
            ShowPlayerDialog(playerid, DIALOG_MENU, DIALOG_STYLE_LIST,\"Next step?\",\"Preview\\nChange Start\\nChange End\\nChange Speed\\nSave\",\"Ok\",\"Cancel\");
        }
    }
    case DIALOG_CLOSE_NEW:
    {
        if(response)
        {
            IsCreating[playerid]      = true;
      SettingFirstLoc[playerid] = true;
      FlyMode(playerid);
        }
        else
        {
            SendClientMessage(playerid, -1, \"You exited the camera movement editor.\");
      CancelFlyMode(playerid);
            IsCreating[playerid] = false;
        }
    }
}
return 1;
}
forward ShowPlayerMenu(playerid);
public ShowPlayerMenu(playerid)
{
KillTimer(MenuTimer);
IsCamMoving[playerid] = false;
ShowPlayerDialog(playerid, DIALOG_MENU, DIALOG_STYLE_LIST,\"Next step?\",\"Preview\\nChange Start\\nChange End\\nChange Speed\\nSave\",\"Ok\",\"Cancel\");
return 1;
}
forward PreviewMovement(playerid);
public PreviewMovement(playerid)
{
    IsCamMoving[playerid] = true;
    DestroyObject(noclipdata[playerid][flyobject]);
    SetCameraBehindPlayer(playerid);
    if(coordInfo[playerid][MoveSpeed] > coordInfo[playerid][RotSpeed])
       MenuTimer = SetTimer(\"ShowPlayerMenu\", coordInfo[playerid][MoveSpeed], 0);
else
MenuTimer = SetTimer(\"ShowPlayerMenu\", coordInfo[playerid][RotSpeed], 0);
InterpolateCameraPos(playerid, coordInfo[playerid][startX], coordInfo[playerid][startY], coordInfo[playerid][startZ], coordInfo[playerid][EndX], coordInfo[playerid][EndY], coordInfo[playerid][EndZ],coordInfo[playerid][MoveSpeed]);
InterpolateCameraLookAt(playerid, coordInfo[playerid][startLookX],coordInfo[playerid][startLookY],coordInfo[playerid][startLookZ],coordInfo[playerid][EndLookX],coordInfo[playerid][EndLookY],coordInfo[playerid][EndLookZ],coordInfo[playerid][RotSpeed]);
return 1;
}
forward ExportMovement(playerid, inputtext[]);
public ExportMovement(playerid, inputtext[])
{
    new tagstring[64];
new movestring[512];
new rotstring[512];
new filename[50];
format(filename, 128, \"CamEdit_%s.txt\", inputtext);
format(tagstring, sizeof(tagstring), \"|----------%s----------|\\r\\n\", inputtext);
format(movestring, sizeof(movestring),\"InterpolateCameraPos(playerid, %f, %f, %f, %f, %f, %f, %i);\\r\\n\",coordInfo[playerid][startX], coordInfo[playerid][startY], coordInfo[playerid][startZ], coordInfo[playerid][EndX], coordInfo[playerid][EndY], coordInfo[playerid][EndZ],coordInfo[playerid][MoveSpeed]);
format(rotstring,sizeof(rotstring),\"InterpolateCameraLookAt(playerid, %f, %f, %f, %f, %f, %f, %i);\",coordInfo[playerid][startLookX],coordInfo[playerid][startLookY],coordInfo[playerid][startLookZ],coordInfo[playerid][EndLookX],coordInfo[playerid][EndLookY],coordInfo[playerid][EndLookZ],coordInfo[playerid][RotSpeed]);
new File:File = fopen(filename, io_write);
fwrite(File, tagstring);
fwrite(File, movestring);
fwrite(File, rotstring);
fclose(File);
new myOutpString[256];
format(myOutpString, sizeof(myOutpString), \"Camera movements saved under {F58282}%s {a9c4e4}to the scriptfiles folder!\\n\\nWhat do you want to do next?\", filename);
ShowPlayerDialog(playerid, DIALOG_CLOSE_NEW, DIALOG_STYLE_MSGBOX,\"What next?\",myOutpString,\"Create new\",\"Exit\");
}
stock GetMoveDirectionFromKeys(ud, lr)
{
new direction = 0;
    if(lr < 0)
{
if(ud < 0)       direction = MOVE_FORWARD_LEFT;
else if(ud > 0) direction = MOVE_BACK_LEFT;
else            direction = MOVE_LEFT;
}
else if(lr > 0)
{
if(ud < 0)      direction = MOVE_FORWARD_RIGHT;
else if(ud > 0) direction = MOVE_BACK_RIGHT;
else         direction = MOVE_RIGHT;
}
else if(ud < 0)    direction = MOVE_FORWARD;
else if(ud > 0)    direction = MOVE_BACK;
return direction;
}
//--------------------------------------------------
stock MoveCamera(playerid)
{
new Float:FV[3], Float:CP[3];
GetPlayerCameraPos(playerid, CP[0], CP[1], CP[2]);
    GetPlayerCameraFrontVector(playerid, FV[0], FV[1], FV[2]);
if(noclipdata[playerid][accelmul] <= 1) noclipdata[playerid][accelmul] += ACCEL_RATE;
new Float:speed = MOVE_SPEED * noclipdata[playerid][accelmul];
new Float:X, Float:Y, Float:Z;
GetNextCameraPosition(noclipdata[playerid][mode], CP, FV, X, Y, Z);
MovePlayerObject(playerid, noclipdata[playerid][flyobject], X, Y, Z, speed);
noclipdata[playerid][lastmove] = GetTickCount();
return 1;
}
//--------------------------------------------------
stock GetNextCameraPosition(move_mode, Float:CP[3], Float:FV[3], &Float:X, &Float:Y, &Float:Z)
{
    #define OFFSET_X (FV[0]*6000.0)
#define OFFSET_Y (FV[1]*6000.0)
#define OFFSET_Z (FV[2]*6000.0)
switch(move_mode)
{
case MOVE_FORWARD:
{
   X = CP[0]+OFFSET_X;
   Y = CP[1]+OFFSET_Y;
   Z = CP[2]+OFFSET_Z;
}
case MOVE_BACK:
{
   X = CP[0]-OFFSET_X;
   Y = CP[1]-OFFSET_Y;
   Z = CP[2]-OFFSET_Z;
}
case MOVE_LEFT:
{
   X = CP[0]-OFFSET_Y;
   Y = CP[1]+OFFSET_X;
   Z = CP[2];
}
case MOVE_RIGHT:
{
   X = CP[0]+OFFSET_Y;
   Y = CP[1]-OFFSET_X;
   Z = CP[2];
}
case MOVE_BACK_LEFT:
{
   X = CP[0]+(-OFFSET_X - OFFSET_Y);
      Y = CP[1]+(-OFFSET_Y + OFFSET_X);
    Z = CP[2]-OFFSET_Z;
}
case MOVE_BACK_RIGHT:
{
   X = CP[0]+(-OFFSET_X + OFFSET_Y);
      Y = CP[1]+(-OFFSET_Y - OFFSET_X);
    Z = CP[2]-OFFSET_Z;
}
case MOVE_FORWARD_LEFT:
{
   X = CP[0]+(OFFSET_X  - OFFSET_Y);
   Y = CP[1]+(OFFSET_Y  + OFFSET_X);
   Z = CP[2]+OFFSET_Z;
}
case MOVE_FORWARD_RIGHT:
{
   X = CP[0]+(OFFSET_X  + OFFSET_Y);
   Y = CP[1]+(OFFSET_Y  - OFFSET_X);
   Z = CP[2]+OFFSET_Z;
}
}
}
//--------------------------------------------------
stock CancelFlyMode(playerid)
{
DeletePVar(playerid, \"FlyMode\");
CancelEdit(playerid);
TogglePlayerSpectating(playerid, false);
DestroyPlayerObject(playerid, noclipdata[playerid][flyobject]);
noclipdata[playerid][cameramode] = CAMERA_MODE_NONE;
IsReSettingStart[playerid]    = false;
IsReSettingEnd[playerid]    = false;
SettingFirstLoc[playerid]    = false;
SettingLastLoc[playerid]    = false;
return 1;
}
//--------------------------------------------------
stock FlyMode(playerid)
{
new Float:X, Float:Y, Float:Z;
IsCreating[playerid] = true;
SettingFirstLoc[playerid] = true;
GetPlayerPos(playerid, X, Y, Z);
noclipdata[playerid][flyobject] = CreatePlayerObject(playerid, 19300, X, Y, Z, 0.0, 0.0, 0.0);
TogglePlayerSpectating(playerid, true);
AttachCameraToPlayerObject(playerid, noclipdata[playerid][flyobject]);
SetPVarInt(playerid, \"FlyMode\", 1);
noclipdata[playerid][cameramode] = CAMERA_MODE_FLY;
SendClientMessage(playerid, -1, \"You entered the camera movement editor.\");
SendClientMessage(playerid, -1, \"You can use /closecameditor to close it.\");
SendClientMessage(playerid, -1, \"With {F58282}~k~~GO_FORWARD~, ~k~~GO_BACK~, ~k~~GO_LEFT~ and ~k~~GO_RIGHT~{FFFFFF} you can move the camera.\");
SendClientMessage(playerid, -1, \"Use {F58282}~k~~PED_FIREWEAPON~ {FFFFFF}to save the camera\'s position as the {F58282}start {FFFFFF}position.\");
return 1;
}
IsNumeric(szInput[]) {
new iChar, i = 0;
while ((iChar = szInput[i++])) if (!(\'0\' <= iChar <= \'9\')) return 0;
return 1;
}

Nem elérhető DyZe

Ingame Camera Movement Editor
« Válasz #3 Dátum: 2012. december 16. - 22:20:36 »
+1 Show voters
Jó, kis kamera filterszkript!!
Már, elkezdtem fordítani magyarra, ha kész lesz feltöltöm egy letöltõ oldalra és módosítsd és írd ki!!

Köszi, ezt a filterszkriptet még egyszer örök hála neked!!


+!!

Nem elérhető zeteni

  • 1970
  • Ex-Scripter
    • Profil megtekintése
Ingame Camera Movement Editor
« Válasz #4 Dátum: 2012. december 16. - 22:45:41 »
0 Show voters
[mod]Kérlek bõvítsd a szabályzat szerint![/mod]

Nem elérhető DyZe

Ingame Camera Movement Editor
« Válasz #5 Dátum: 2012. december 16. - 22:52:42 »
0 Show voters
Kérlek bõvítsd a szabályzat szerint![/quote]
Zeteni megelõztél :S

Most, akartam ki ír hogy
legalább a parancsokat írja ki meg hogy milyen include kell hozzá meg stb..

Ingame Camera Movement Editor
« Válasz #6 Dátum: 2013. január 11. - 15:25:56 »
0 Show voters
Tudom hogy már elavult téma meg minden de meg szeretném kérdezni hogy,hogy kell berakni?

Nem elérhető skyLine

  • Globális moderátor
  • 2171
  • 2020
  • Vaterán
    • Profil megtekintése
Ingame Camera Movement Editor
« Válasz #7 Dátum: 2013. január 11. - 16:02:40 »
0 Show voters
Csak simán berakod a filterscripts mappába és beírod a server.cfg-be :hmmm:

Ingame Camera Movement Editor
« Válasz #8 Dátum: 2013. január 11. - 16:42:05 »
0 Show voters
nem azt hanem a rögzitet cuccot!

Nem elérhető Beckham

  • 1693
  • Noresz
  • Discord: Noresz#4265
    • Profil megtekintése
    • OctansV Alt:v szervere
Ingame Camera Movement Editor
« Válasz #9 Dátum: 2013. január 11. - 18:00:13 »
+1 Show voters
\" post=\"384258\" timestamp=\"1357914356\"]
Tudom hogy már elavult téma meg minden de meg szeretném kérdezni hogy,hogy kell berakni?
 
[/quote]
És még te vagy scripter?:D

Ingame Camera Movement Editor
« Válasz #10 Dátum: 2013. január 11. - 18:05:52 »
0 Show voters
Kérnék normális válaszokat!

Nem elérhető lusta19

  • 9084
  • £u$taÐi$znó
    • Profil megtekintése
Ingame Camera Movement Editor
« Válasz #11 Dátum: 2013. január 25. - 23:22:37 »
0 Show voters
[gmod]Kedves téma nyitó!
Egy új alfórum jött létre ( Hivatalos fórumról áthozott szkriptek ) Melyben csak magyarra fordított scripteket tehettek közzé. És megkérnélek hogy fordítsd le.
Vagy ha nem akarod kérd a téma törlését. Szabályzatot ide kattintva tekintheted meg.
További jó fórumozást![/gmod]
« Utoljára szerkesztve: 2013. január 26. - 11:13:36 írta <[£u$ta]> »

Ingame Camera Movement Editor
« Válasz #12 Dátum: 2013. január 25. - 23:41:56 »
0 Show voters
Lusta Szerintem Brian szabadságon van egy ideig nem lesz!
www.twitch.tv/almightymartin

Az év STAFF tagja - 2015
Az év RP szervere - 2015 - [rc-rp.hu]

Red County Role Play [rc-rp.hu] - Tulajdonos
Project San Andreas [psa.hu] - Főadminisztrátor
See MTA LV [see-game.com] - Admin 4

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal