Jump to content

Lyrics Free Camera Mode


LYRIcS

Recommended Posts

Ahojte, kedze mi nesiel CamHack a dost ma to sr*lo tak som spravil neco podobne, kamerovy mod v ktorom behate s kamerou po mape, prakticky je to to ist ako CamHack, az na to ze sa to ovlada klavesnicou.

 

Ovladanie:

DOPREDU: sipka hore

DOZADU: sipka dole

DOPRAVA: sipka vpravo

DOLAVA: sipka vlavo

HORE: ltm (lave tlacitko mysi)

DOLE: ptm (prave tlacitko mysi)

NADHLAD: KEY_SPRINT + sipka dole

PODHLAD: KEY_SPRINT + sipka hore

 

POUZIVANIE:

Prihlaste sa na server na RCON. Mod zapnete prikazom /camera, vypnete ho spetnym prikazom /camera, rychlost pohybu kamery menite v dialogu prikazom /cameraopt

 

VIDEO:

Toto video som tocil pomocou mojho "LFCM" :d

 

PWN:

 

#include

 

#pragma tabsize 0

 

#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

#define Dialog_CameraOptions 8347

#define MAX_PLAYERS_EX 30

 

enum PLAYER_INFO

{

State,

Float:cX,

Float:cY,

Float:cZ,

Float:lX,

Float:lY,

Float:lZ,

Timer,

Float:Speed,

Float:sX,

Float:sY,

Float:sZ

}

 

new Player[MAX_PLAYERS_EX][PLAYER_INFO];

 

public OnPlayerConnect(playerid)

{

Player[playerid][state]=0;

return 1;

}

 

public OnPlayerDisconnect(playerid)

{

Player[playerid][state]=0;

return 1;

}

 

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

{

if(IsPlayerConnected(playerid))

{

if(dialogid == Dialog_CameraOptions)

{

if(response == 1)

{

if(listitem == 0) Player[playerid][speed]=0.1;

else if(listitem == 1) Player[playerid][speed]=0.25;

else if(listitem == 2) Player[playerid][speed]=0.6;

else if(listitem == 3) Player[playerid][speed]=1.1;

else if(listitem == 4) Player[playerid][speed]=1.5;

else if(listitem == 5) Player[playerid][speed]=2.0;

else if(listitem == 6) Player[playerid][speed]=2.6;

else if(listitem == 7) Player[playerid][speed]=3.15;

else if(listitem == 8) Player[playerid][speed]=3.625;

else if(listitem == 9) Player[playerid][speed]=4.2;

else if(listitem == 10) Player[playerid][speed]=5.05;

else if(listitem == 11) Player[playerid][speed]=7.0;

 

SendClientMessage(playerid,0xFF0000FF,"OK");

}

}

}

return 1;

}

 

public OnPlayerUpdate(playerid)

{

if(Player[playerid][state] == 1)

{

new keys, ud, lr, Float:angle;

GetPlayerKeys(playerid, keys, ud, lr);

GetPlayerFacingAngle(playerid, angle);

 

if(ud<0) /*dozadu*/

{

Player[playerid][cX] = Player[playerid][cX]+(Player[playerid][speed] * floatsin(-angle, degrees));

Player[playerid][cY] = Player[playerid][cY]+(Player[playerid][speed] * floatcos(-angle, degrees));

Player[playerid][lX] = Player[playerid][cX]+(100 * floatsin(-angle, degrees));

Player[playerid][lY] = Player[playerid][cY]+(100 * floatcos(-angle, degrees));

}

else if(ud>0) /*dopredu */

{

Player[playerid][cX] = Player[playerid][cX]-(Player[playerid][speed] * floatsin(-angle, degrees));

Player[playerid][cY] = Player[playerid][cY]-(Player[playerid][speed] * floatcos(-angle, degrees));

Player[playerid][lX] = Player[playerid][cX]+(100 * floatsin(-angle, degrees));

Player[playerid][lY] = Player[playerid][cY]+(100 * floatcos(-angle, degrees));

}

if(lr<0) /*vlavo*/

{

angle+=Player[playerid][speed];

SetPlayerFacingAngle(playerid,angle);

Player[playerid][lX] = Player[playerid][cX]+(100 * floatsin(-angle, degrees));

Player[playerid][lY] = Player[playerid][cY]+(100 * floatcos(-angle, degrees));

 

}

else if(lr>0) /*vpravo*/

{

angle-=Player[playerid][speed];

SetPlayerFacingAngle(playerid,angle);

Player[playerid][lX] = Player[playerid][cX]+(100 * floatsin(-angle, degrees));

Player[playerid][lY] = Player[playerid][cY]+(100 * floatcos(-angle, degrees));

}

 

if(keys & KEY_SPRINT && ud<0) /*camera look at*/ Player[playerid][cZ]-=Player[playerid][speed];

else if(keys & KEY_SPRINT && ud>0) /*camera look at*/ Player[playerid][cZ]+=Player[playerid][speed];

if(keys & KEY_FIRE) /*camera look at*/ { Player[playerid][cZ]+=Player[playerid][speed]; Player[playerid][lZ]+=Player[playerid][speed]; }

else if(keys & KEY_HANDBRAKE) /*camera look at*/ { Player[playerid][cZ]-=Player[playerid][speed]; Player[playerid][lZ]-=Player[playerid][speed]; }

 

SetPlayerCameraPos (playerid,Player[playerid][cX],Player[playerid][cY],Player[playerid][cZ]);

SetPlayerCameraLookAt(playerid,Player[playerid][lX],Player[playerid][lY],Player[playerid][lZ]);

SetPlayerPos (playerid,Player[playerid][cX],Player[playerid][cY],-49);

}

return 1;

}

 

public OnPlayerCommandText(playerid,cmdtext[])

{

dcmd(camera,6, cmdtext);

dcmd(cameraopt,9, cmdtext);

return 0;

}

 

dcmd_camera(playerid, params[])

{

#pragma unused params

if(IsPlayerAdmin(playerid))

{

if(Player[playerid][state]==0)

{

Player[playerid][state]=1;

new Float:x, Float:y, Float:z, Float:a;

GetPlayerFacingAngle(playerid,a);

GetPlayerPos(playerid,x,y,z);

Player[playerid][sX]=x;

Player[playerid][sY]=y;

Player[playerid][sZ]=z+0.25;

Player[playerid][cX]=x;

Player[playerid][cY]=y;

Player[playerid][cZ]=z+1.5;

Player[playerid][lX] = Player[playerid][cX]+(100 * floatsin(-a, degrees));

Player[playerid][lY] = Player[playerid][cY]+(100 * floatcos(-a, degrees));

Player[playerid][lZ]=z+1.5;

Player[playerid][speed]=2.25;

SetPlayerCameraPos (playerid,Player[playerid][cX],Player[playerid][cY],Player[playerid][cZ]);

SetPlayerCameraLookAt(playerid,Player[playerid][lX],Player[playerid][lY],Player[playerid][lZ]);

TogglePlayerControllable(playerid,0);

SetPlayerPos(playerid,Player[playerid][cX],Player[playerid][cY],-30);

}

else if(Player[playerid][state]==1)

{

Player[playerid][state]=0;

SetCameraBehindPlayer(playerid);

TogglePlayerControllable(playerid,1);

SetPlayerPos(playerid, Player[playerid][sX], Player[playerid][sY], Player[playerid][sZ]);

}

}

return 1;

}

 

dcmd_cameraopt(playerid, params[])

{

#pragma unused params

if(IsPlayerAdmin(playerid)) ShowPlayerDialog(playerid,Dialog_CameraOptions,DIALOG_STYLE_LIST,"Camera Options","Speed 1\nSpeed 2\nSpeed 3\nSpeed 4\nSpeed 5 (normal)\nSpeed 6\nSpeed 7\nSpeed 8\nSpeed 9\nSpeed 10\nSpeed 11\nSpeed 12","Select","Cancel");

return 1;

}

 

 

Snad sa vam bude moj FS pacit ;)

Link to comment
Share on other sites

  • 2 months later...

mam problém,dal jsem si to do includu,načet do modu,ale hází mi to Errory

C:\Users\Pavel\Desktop\LVD server\pawno\LVD.pwn(159) : error 029: invalid expression, assumed zero

C:\Users\Pavel\Desktop\LVD server\pawno\LVD.pwn(315) : error 029: invalid expression, assumed zero

Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

 

 

2 Errors.

řádky :

SS_OnPlayerCommandText(playerid,cmdtext[]);

SS_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]);

 

prosím poraďte

Link to comment
Share on other sites

  • 3 weeks later...
mam problém,dal jsem si to do includu,načet do modu,ale hází mi to Errory

C:\Users\Pavel\Desktop\LVD server\pawno\LVD.pwn(159) : error 029: invalid expression, assumed zero

C:\Users\Pavel\Desktop\LVD server\pawno\LVD.pwn(315) : error 029: invalid expression, assumed zero

Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

 

 

2 Errors.

řádky :

SS_OnPlayerCommandText(playerid,cmdtext[]);

SS_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]);

 

prosím poraďte

SS_OnPlayerCommandText(playerid,cmdtext);
SS_OnDialogResponse(playerid, dialogid, response, listitem, inputtext);

takto ;)

Link to comment
Share on other sites

  • 5 months later...
  • Majitel

Jsi to dělal docela zbytečně, hlavně proto, že přesně takovej (vymazlenej) script už je dodávanej jako FS s balíkem SA:MP serveru (flymode.amx)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...