Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 5405 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

AUTOPILOTAS

Taigi,pastebėjau,kad daugelis prašo autopiloto ir štai jums parodysiu,kaip tai padaryti.

SetPlayerSpeedCap( playerid, 0.5 );

Šitą vietą pakeiskite tiek kiek norite greičio limito,mano atveju bus 90km/h

0.3=50km/h

Dabar darysime,kai žaidėjas pasiekia greičio limito ribą:

PASTABA:jai šitą scriptą turite šitą dalį praleiskite

Kažkur viršuje:

forward SetPlayerSpeedCap( playerid, Float:value );

forward DisablePlayerSpeedCap( playerid );

new

Float:g_fSpeedCap[ MAX_PLAYERS ] = { 0.0, ... }

;

new

bool:GreicioMatvaimas[ MAX_PLAYERS ]

;

Po OnPlayerUpdate(playerid)

static

s_iVehicle

;

if ( g_fSpeedCap[ playerid ] != 0.0 && GetPlayerState( playerid ) == PLAYER_STATE_DRIVER )

{

s_iVehicle = GetPlayerVehicleID( playerid );

if ( s_iVehicle )

{

static

Float:s_fX,

Float:s_fY,

Float:s_fZ,

Float:s_fVX,

Float:s_fVY,

Float:s_fVZ

;

GetVehiclePos( s_iVehicle, s_fX, s_fY, s_fZ );

GetVehicleVelocity( s_iVehicle, s_fVX, s_fVY, s_fVZ );

if ( !IsPlayerInRangeOfPoint( playerid, g_fSpeedCap[ playerid ] + 0.05, s_fX + s_fVX, s_fY + s_fVY, s_fZ + s_fVZ ) )

{

static

Float:s_fLength

;

s_fLength = floatsqroot( ( s_fVX * s_fVX ) + ( s_fVY * s_fVY ) + ( s_fVZ * s_fVZ ) );

s_fVX = ( s_fVX / s_fLength ) * g_fSpeedCap[ playerid ];

s_fVY = ( s_fVY / s_fLength ) * g_fSpeedCap[ playerid ];

s_fVZ = ( s_fVZ / s_fLength ) * g_fSpeedCap[ playerid ];

if ( s_iVehicle )

SetVehicleVelocity( s_iVehicle, s_fVX, s_fVY, s_fVZ );

else

SetPlayerVelocity( playerid, s_fVX, s_fVY, s_fVZ );

}

}

}

return 1;

}

Kazkur apacioje:

public SetPlayerSpeedCap( playerid, Float:value )

{

if ( 0 <= playerid < sizeof( g_fSpeedCap ) )

g_fSpeedCap[ playerid ] = value;

}

public DisablePlayerSpeedCap( playerid )

{

if ( 0 <= playerid < sizeof( g_fSpeedCap ) )

g_fSpeedCap[ playerid ] = 0.0;

}

Štai ir viskas

Dabar darysime,parašius komandą nustatytų žaidejo greičio limitą tai:

Po:

public OnPlayerCommandText(playerid, cmdtext[])

{

Dedame:

if(strcmp(cmdtext, "/autopilotas", true) == 0 )

{

if( GreicioMatvaimas[ playerid ] == false )

{

GreicioMatvaimas[ playerid ] = true;

SetPlayerSpeedCap( playerid, 0.5 );

SendClientMessage(playerid, RED, "Ribotuvas Ijunktas");

}

else

{

GreicioMatvaimas[ playerid ] = false;

DisablePlayerSpeedCap( playerid );

SendClientMessage(playerid, RED, "Ribotuvas Isiunktas");

}

return true;

}

Dabar paskutinis scriptas jis tikrins jai žaidėjas įlipa i mašiną ir turi ijungęs autopilotą,jam nustatys greičio limitą:

Dėkite po:

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)

{

if( GreicioMatvaimas[ playerid ] == true )

SetPlayerSpeedCap( playerid, 0.5 );

else

DisablePlayerSpeedCap( playerid );

}

Štai ir viskas.Jai kažkas neveikia,meta error rašykite čia.Tai pat noriu pasakyti,kad tai pirmasis mano įkeltas scriptas ir norėčiau,kad įvertintumėte.

Labai norėčiau padėkoti:

RenisiL

Jis man labai padėjo šitą dalyką padaryti,tai todėl aš jam dėkingas.

Jai ką kažkaip netaip padariau,ar suklydau,jai nesunku pataisykite,kas pamatysite.

Tai pat jai norėsite pakeisti greičio limitą turėsite keisti dvejose vietose:

if(strcmp(cmdtext, "/autopilotas", true) == 0 )

{

if( GreicioMatvaimas[ playerid ] == false )

{

GreicioMatvaimas[ playerid ] = true;

SetPlayerSpeedCap( playerid, 0.5 );//(0.5)čia pakeisti į norimą

SendClientMessage(playerid, RED, "Ribotuvas Ijunktas");

}

else

{

GreicioMatvaimas[ playerid ] = false;

DisablePlayerSpeedCap( playerid );

SendClientMessage(playerid, RED, "Ribotuvas Isiunktas");

}

return true;

}

Ir tai pat:

if( GreicioMatvaimas[ playerid ] == true )

SetPlayerSpeedCap( playerid, 0.5 );//(0.5)čia pakeisti į norimą

else

DisablePlayerSpeedCap( playerid );

}

Atsiminkite,kad jie turi būti vienodi!

Taigi pamačiau,kad daugeliui nepavyksta padaryti,tai as visa sistemą įdėjau į filterscript.

Čia pastebin:

http://pastebin.com/L0zCzz5g

Filterscript:

http://www.mediafire.com/?mpc40hypg64q4p3

PARDUODU UNIKALIĄ " POKER " SISTEMĄ, PRITAIKYTĄ SA:MP ŽAIDIMUI

gta-samp-pardavimai/parduodu-unikali-poker-sistem-t108719.html

Kai idėjau po onplayerupdate meta don send kodėl

static

s_iVehicle

;

if ( g_fSpeedCap[ playerid ] != 0.0 && GetPlayerState( playerid ) == PLAYER_STATE_DRIVER )

{

s_iVehicle = GetPlayerVehicleID( playerid );

if ( s_iVehicle )

{

static

Float:s_fX,

Float:s_fY,

Float:s_fZ,

Float:s_fVX,

Float:s_fVY,

Float:s_fVZ

;

GetVehiclePos( s_iVehicle, s_fX, s_fY, s_fZ );

GetVehicleVelocity( s_iVehicle, s_fVX, s_fVY, s_fVZ );

if ( !IsPlayerInRangeOfPoint( playerid, g_fSpeedCap[ playerid ] + 0.05, s_fX + s_fVX, s_fY + s_fVY, s_fZ + s_fVZ ) )

{

static

Float:s_fLength

;

s_fLength = floatsqroot( ( s_fVX * s_fVX ) + ( s_fVY * s_fVY ) + ( s_fVZ * s_fVZ ) );

s_fVX = ( s_fVX / s_fLength ) * g_fSpeedCap[ playerid ];

s_fVY = ( s_fVY / s_fLength ) * g_fSpeedCap[ playerid ];

s_fVZ = ( s_fVZ / s_fLength ) * g_fSpeedCap[ playerid ];

if ( s_iVehicle )

SetVehicleVelocity( s_iVehicle, s_fVX, s_fVY, s_fVZ );

else

SetPlayerVelocity( playerid, s_fVX, s_fVY, s_fVZ );

}

}

}

return 1;

}

man dėl to kad padedu sita

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 5405 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...