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

Negalima prašyti ar platinti betkokių žaidimą (multiplayer) palengvinančių programų ir scriptų! Kitaip bus taikoma 1.21. taisyklė

/autopilotas


ViVix

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3770 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

Pamokysiu kaip padaryti komandą kuri neleistu jums viršyti 90km/h

Skriptas kurtas NE mano, bet pamoką kūriau aš.

Pradėkim

Pačioje pradžioje jūsų gamemodo rašom:

forward SetPlayerSpeedCap( playerid, Float:value );
forward DisablePlayerSpeedCap( playerid );
forward OnPlayerUpdate( playerid );
new
Float:g_fSpeedCap[ MAX_PLAYERS ] = { 0.4, ... }
;
new
bool:GreicioMatvaimas[ MAX_PLAYERS ]
;

Tuomet einame:

public OnPlayerCommandText(playerid, cmdtext[])
{

Ir po ja rašome:

if(strcmp(cmdtext, "/autopilotas", true) == 0 )
{
if(!IsPlayerInAnyVehicle(playerid)){
			SendClientMessage(playerid,RED,"* Tu esi ne masinoje");
			return 1;
	}
   if( GreicioMatvaimas[ playerid ] == false )
   {
           GreicioMatvaimas[ playerid ] = true;

           SetPlayerSpeedCap( playerid, 0.4 );

           SendClientMessage(playerid, RED, "Autopilotas Ijungtas");
    }
    else
    {
           GreicioMatvaimas[ playerid ] = false;

           DisablePlayerSpeedCap( playerid );

           SendClientMessage(playerid, RED, "Autopilotas Isjungtas");
    }
    return true;
}

Tada po:

public OnPlayerUpdate(playerid)
{

dedam:

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;
}

Tada pačiam gale modo dedam :

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;
}

Pamoka baigta, jei iškilo klausimų rašykit čia.

Pamoka mano kurta, prašau neripint, ir kam negaila +rep

Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 7 mėnesių...
  • Parašė po 9 mėnesių...
  • Parašė po 4 savaičių...

Dar reiktų po OnPlayerEnterVehicle Callback'u dadėt

GreicioMatvaimas[ playerid ] = 0

Jau bandžiau, nes jei palieki įjungtą autopilotą ir išlipi iš mašinos, įlipi į betkurią mašiną visvien pasilieka Autopilotas, o jei padarai OnPlayerEnterVehicle

GreicioMatvaimas[ playerid ] = 0

Tada viskas gerai veikia naudoju savo Projekte Sazone.lt

Tik aš ištaisiau rašybos klaidą :D

GreicioMatvaimas[ playerid ] = 0

į

GreicioMatavimas[ playerid ] = 0

Ir dar patobulinau biški, nes Autopilotą gali ir šalia sėdintis įjungti, o šeip geras dalykas :P +REP, o tą sistemą jau naudoju vieną menesį savo projekte. Ačiū už sistemėlę

Ai, o

SetPlayerSpeedCap( playerid, 0.4 );

Yra 70km/h, o ne 90km/h :P

SetPlayerSpeedCap( playerid, 0.5);

Va čia 90km/h sau pasidariau, kad būtų tikrai 90km/h, nes kai įdėjau sistemą pamačiau, kad 70km/h Maksimumas.

Redaguota , nario Matas_Bukauskas
Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 1 mėnesio...
  • Parašė po 4 mėnesių...

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3770 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!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

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

Skelbimai


×
×
  • Sukurti naują...