da posaljes mozda kod i da bolje objasnis sta se desava znali bi.. nema niko ovdje u glavi svaki mod pa da zna gdje je sta i kako radi
Citat: njoBe_ poslato Mart 28, 2023, 23:16:34 POSLE PODNE
da posaljes mozda kod i da bolje objasnis sta se desava znali bi.. nema niko ovdje u glavi svaki mod pa da zna gdje je sta i kako radi
razumem te skroz ne znam bas najbolje da objasnim
dok sam u salonu i trebam da sacuvam kordinate za kameru jednostavno me prebaci u vazduh a kada sam van salona radi normalno mogu da se krecem
[pawn]CMD:ascamera( playerid, params[] ) {
if( PlayerInfo[ playerid ][ xAdmin ] >= 7 ) {
if( FlyMode[ playerid ] == true && flymodecamera[ playerid ][ cameramode ] == true ) {
new as = KreiranAutoSalon[ playerid ];
new Float:fPX, Float:fPY, Float:fPZ,
Float:fVX, Float:fVY, Float:fVZ,
Float:object_x, Float:object_y, Float:object_z;
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 );
AutoSalon[ as ][ aCameraPos ][ 0 ] = fPX;
AutoSalon[ as ][ aCameraPos ][ 1 ] = fPY;
AutoSalon[ as ][ aCameraPos ][ 2 ] = fPZ;
AutoSalon[ as ][ aCameraLookAt ][ 0 ] = object_x;
AutoSalon[ as ][ aCameraLookAt ][ 1 ] = object_y;
AutoSalon[ as ][ aCameraLookAt ][ 2 ] = object_z;
SaveSalon( as );
CancelFlyMode( playerid );
SendInfoMessage( playerid, "Uspesno si sacuvao pozicije." );
SendInfoMessage( playerid, "Sada koristi /asport da se vratis do auto salona." );
}
}
return true;
}[/pawn]//ovo je komanda za cuvanje pozicije
[pawn]enum noclipenum {
bool:cameramode,
flyobject,
mode,
lrold,
udold,
lastmove,
Float:accelmul
}
new flymodecamera[ MAX_PLAYERS ][noclipenum];
#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 MOVE_SPEED 100.0
#define ACCEL_RATE 0.03[/pawn]
[pawn] flymodecamera[ playerid ][cameramode] = false;
flymodecamera[ playerid ][lrold] = 0;
flymodecamera[ playerid ][udold] = 0;
flymodecamera[ playerid ][mode] = 0;
flymodecamera[ playerid ][lastmove] = 0;
flymodecamera[ playerid ][accelmul] = 0.0;[/pawn]
[pawn]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( flymodecamera[ playerid ][ accelmul ] <= 1 ) flymodecamera[ playerid ][ accelmul ] += ACCEL_RATE;
new Float:speed = MOVE_SPEED * flymodecamera[ playerid ][ accelmul ];
new Float:Xa, Float:Ya, Float:Za;
GetNextCameraPosition( flymodecamera[ playerid ][ mode ], CP, FV, Xa, Ya, Za );
MovePlayerObject( playerid, flymodecamera[ playerid ][ flyobject ], Xa, Ya, Za, speed );
flymodecamera[ playerid ][ lastmove ] = GetTickCount( );
return 1;
}
stock GetNextCameraPosition(move_mode, Float:CP[ 3 ], Float:FV[ 3 ], &Float:Xa, &Float:Ya, &Float:Za) {
#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:
{
Xa = CP[0]+OFFSET_X;
Ya = CP[1]+OFFSET_Y;
Za = CP[2]+OFFSET_Z;
}
case MOVE_BACK:
{
Xa = CP[0]-OFFSET_X;
Ya = CP[1]-OFFSET_Y;
Za = CP[2]-OFFSET_Z;
}
case MOVE_LEFT:
{
Xa = CP[0]-OFFSET_Y;
Ya = CP[1]+OFFSET_X;
Za = CP[2];
}
case MOVE_RIGHT:
{
Xa = CP[0]+OFFSET_Y;
Ya = CP[1]-OFFSET_X;
Za = CP[2];
}
case MOVE_BACK_LEFT:
{
Xa = CP[0]+(-OFFSET_X - OFFSET_Y);
Ya = CP[1]+(-OFFSET_Y + OFFSET_X);
Za = CP[2]-OFFSET_Z;
}
case MOVE_BACK_RIGHT:
{
Xa = CP[0]+(-OFFSET_X + OFFSET_Y);
Ya = CP[1]+(-OFFSET_Y - OFFSET_X);
Za = CP[2]-OFFSET_Z;
}
case MOVE_FORWARD_LEFT:
{
Xa = CP[0]+(OFFSET_X - OFFSET_Y);
Ya = CP[1]+(OFFSET_Y + OFFSET_X);
Za = CP[2]+OFFSET_Z;
}
case MOVE_FORWARD_RIGHT:
{
Xa = CP[0]+(OFFSET_X + OFFSET_Y);
Ya = CP[1]+(OFFSET_Y - OFFSET_X);
Za = CP[2]+OFFSET_Z;
}
}
}
stock CancelFlyMode( playerid ) {
FlyMode[ playerid ] = false;
CancelEdit( playerid );
TogglePlayerSpectating( playerid, false);
DestroyPlayerObject( playerid, flymodecamera[ playerid ][ flyobject ] );
flymodecamera[ playerid ][ cameramode ] = false;
return 1;
}
forward FlyMode1( playerid );
public FlyMode1( playerid ) {
FlyModeAh( playerid );
}
stock FlyModeAh( playerid ) {
new Float:X, Float:Y, Float:Z;
GetPlayerPos( playerid, X, Y, Z );
TogglePlayerSpectating( playerid, true );
flymodecamera[ playerid ][ flyobject ] = CreatePlayerObject( playerid, 19300, X, Y, Z, 0.0, 0.0, 0.0 );
AttachCameraToPlayerObject( playerid, flymodecamera[ playerid ][ flyobject ] );
FlyMode[ playerid ] = true;
flymodecamera[ playerid ][ cameramode ] = true;
return 1;
}[/pawn]//za flymode
[pawn] if( flymodecamera[ playerid ][ cameramode ] == true ) {
new keys,ud,lr;
GetPlayerKeys(playerid,keys,ud,lr);
if(flymodecamera[ playerid ][mode] && (GetTickCount() - flymodecamera[ playerid ][ lastmove ] > 100))
{
MoveCamera(playerid);
}
if(flymodecamera[ playerid ][udold] != ud || flymodecamera[ playerid ][lrold] != lr)
{
if((flymodecamera[ playerid ][udold] != 0 || flymodecamera[ playerid ][lrold] != 0) && ud == 0 && lr == 0){
StopPlayerObject(playerid, flymodecamera[ playerid ][flyobject] );
flymodecamera[ playerid ][mode] = 0;
flymodecamera[ playerid ][accelmul] = 0.0;
}
else
{
flymodecamera[ playerid ][mode] = GetMoveDirectionFromKeys(ud, lr);
MoveCamera(playerid);
}
}
flymodecamera[ playerid ][udold] = ud; flymodecamera[ playerid ][lrold] = lr;
return 0;
}
return true;
}[/pawn]
sve sto je bilo nazvano pod flymode ili flymodecamera je ovde
cak sam i to prebacio iz drugog moda u kome radi perfektno ali kod mene ne radi bas najbolje
koliko vidim to je neki vid camera moda ili slicno, da li ti dobijes mogucnost da pomjeras kameru kada ukucas ascamera jer tu se samo vidi kako uzimas pozicije kamere i vektora kamere nikakva druga radnja
Prvo nauci da objasnis pa onda skriptaj.. Problem sam po sebi kompleksan jer ni sam ne znam sta se desi.. Ti kazes nesto ti kameru mrda pa spominjes enterijer pa odjednom promijeni polozaj kamere tamo negdje, onda brdo nekog koda koji vjerovatno nema veze sa autosalonom itd. To ti 5 ljudi ne skontalo ste je pisac htio da kaze