Jump to content
  • 0

pomoc Zrychlení auta


martanius

Dotaz

:wave: potřeboval bych přes klávesu L. ALT zrychlit auto, ale když zjistím rychlost auta a přidám k nim nějakou hodnotu tak vždy to auto zrychlí, ale jako někdy doleva nebo doprava. Prostě nevím jak rychlit auto rovně...

 

Mám to asi takhle :

 

if(newkeys==KEY_WALK){
if(IsPlayerInAnyVehicle(playerid)){
new Float:velx[MAX_PLAYERS],Float:vely[MAX_PLAYERS],Float:velz[MAX_PLAYERS];
GetVehicleVelocity(GetPlayerVehicleID(playerid),velx[playerid],vely[playerid],velz[playerid]);
SetVehicleVelocity(GetPlayerVehicleID(playerid),velx[playerid]+2,vely[playerid]+2,velz[playerid]);
}
}

 

To auto se sice zrychluje, ale do os X a Y,ale když jede hráč po ose X tak ho to zrychlí i do osy Y a naopak :(

 

Díky za odpověď.

Link to comment
Share on other sites

7 odpovědí na tuto otázku

Recommended Posts

  • 0

stock SetVehicleSpeed(vehicleid, Float: speed, mode = 0)
{
   new
       Float: vAngle
   ;
   GetVehicleZAngle(vehicleid, vAngle);
   speed = ((!mode) ? (speed / 105.0) : (speed / 170.0));

   return SetVehicleVelocity(vehicleid, speed * floatsin(-vAngle, degrees), speed * floatcos(-vAngle, degrees), 0.0);
}

 

mode: 0 = kmh, 1 = mph

speed: na jakou rychlost se má auto změnit

vehicleid: id auta - GetPlayerVehicleID(playerid)

Link to comment
Share on other sites

  • 0
stock SetVehicleSpeed(vehicleid, Float: speed, mode = 0)
{
   new
       Float: vAngle
   ;
   GetVehicleZAngle(vehicleid, vAngle);
   speed = ((!mode) ? (speed / 105.0) : (speed / 170.0));

   return SetVehicleVelocity(vehicleid, speed * floatsin(-vAngle, degrees), speed * floatcos(-vAngle, degrees), 0.0);
}

 

mode: 0 = kmh, 1 = mph

speed: na jakou rychlost se má auto změnit

vehicleid: id auta - GetPlayerVehicleID(playerid)

 

Ahoj morte :d mám dotaz tam v pawnu mi to píše: undefined symbol "SetVehicleSpeed"

a nevím co s tím skou šel sem new SetVehicleSpeed;

dal sem to dopublic OnPlayerKeyStateChange(playerid, newkeys, oldkeys)

 

a nejde byl bych ti moc vděčný kdyby si mi poradil ....

Link to comment
Share on other sites

  • 0
stock SetVehicleSpeed(vehicleid, Float: speed, mode = 0)
{
   new
       Float: vAngle
   ;
   GetVehicleZAngle(vehicleid, vAngle);
   speed = ((!mode) ? (speed / 105.0) : (speed / 170.0));

   return SetVehicleVelocity(vehicleid, speed * floatsin(-vAngle, degrees), speed * floatcos(-vAngle, degrees), 0.0);
}

 

mode: 0 = kmh, 1 = mph

speed: na jakou rychlost se má auto změnit

vehicleid: id auta - GetPlayerVehicleID(playerid)

 

Ahoj morte :d mám dotaz tam v pawnu mi to píše: undefined symbol "SetVehicleSpeed"

a nevím co s tím skou šel sem new SetVehicleSpeed;

dal sem to dopublic OnPlayerKeyStateChange(playerid, newkeys, oldkeys)

 

a nejde byl bych ti moc vděčný kdyby si mi poradil ....

:lol: ved si daj ten stock niekde do modu najlepšie hned pod include a_samp

:lol: nič si s toho nerob stava sa

Link to comment
Share on other sites

  • 0
stock SetVehicleSpeed(vehicleid, Float: speed, mode = 0)
{
   new
       Float: vAngle
   ;
   GetVehicleZAngle(vehicleid, vAngle);
   speed = ((!mode) ? (speed / 105.0) : (speed / 170.0));

   return SetVehicleVelocity(vehicleid, speed * floatsin(-vAngle, degrees), speed * floatcos(-vAngle, degrees), 0.0);
}

 

mode: 0 = kmh, 1 = mph

speed: na jakou rychlost se má auto změnit

vehicleid: id auta - GetPlayerVehicleID(playerid)

 

Ahoj morte :d mám dotaz tam v pawnu mi to píše: undefined symbol "SetVehicleSpeed"

a nevím co s tím skou šel sem new SetVehicleSpeed;

dal sem to dopublic OnPlayerKeyStateChange(playerid, newkeys, oldkeys)

 

a nejde byl bych ti moc vděčný kdyby si mi poradil ....

:lol: ved si daj ten stock niekde do modu najlepšie hned pod include a_samp

:lol: nič si s toho nerob stava sa

eště menší dotaz ... co tam mám napsat pod to include ? :rofl::rofl::d:d:facepalm:

Link to comment
Share on other sites

  • 0

toto:

stock SetVehicleSpeed(vehicleid, Float: speed, mode = 0)
{
   new
       Float: vAngle
   ;
   GetVehicleZAngle(vehicleid, vAngle);
   speed = ((!mode) ? (speed / 105.0) : (speed / 170.0));

   return SetVehicleVelocity(vehicleid, speed * floatsin(-vAngle, degrees), speed * floatcos(-vAngle, degrees), 0.0);
}

Link to comment
Share on other sites

  • 0

mal si to dobre len mesto + si mal dať krát * pretože čo ak bude cuvať ???

a MAX_PLAYERS nemusiš davať zbytočne zataženie

ale nwm ako zrobiť aby ti zrychlilo iba na niečo toto ti iba kráti

if(newkeys==KEY_WALK){
  if(IsPlayerInAnyVehicle(playerid)){
  new Float:velx,Float:vely,Float:velz;
  GetVehicleVelocity(GetPlayerVehicleID(playerid),velx,vely,velz);
  SetVehicleVelocity(GetPlayerVehicleID(playerid),velx*2,vely*2,velz);
  }
  }

Link to comment
Share on other sites

  • 0

Tu máš jeden script z netu ktorý som preložil

 

#include

 

#define COLOR_LIGHTBLUE 0xFFDD00AA

 

new Float:SpeedBoostMultiplier[MAX_PLAYERS];

 

public OnFilterScriptInit()

{

for (new i = 0; i < MAX_PLAYERS; i++)

{

if (IsPlayerConnected(i) && !IsPlayerNPC(i))

{

SpeedBoostMultiplier = 1.5;

}

}

return 1;

}

public OnFilterScriptExit()

{

return 1;

}

public OnPlayerCommandText(playerid, cmdtext[])

{

new cmd[256];

new idx;

 

cmd = strtok(cmdtext, idx);

 

if (strcmp(cmd, "/speed", true) == 0 )

{

new strBoostMultiplier[256];

new strTempString[256];

 

strBoostMultiplier = strtok(cmdtext, idx);

 

if (!strlen(strBoostMultiplier))

{

SendClientMessage(playerid, COLOR_LIGHTBLUE, "Použitie: /speed (1.0-3.0)");

SendClientMessage(playerid, COLOR_LIGHTBLUE, "Umožňuje to nastaviť rýchlost, ktorá je použitá, keï stlaèíš tlaèidlo klaksónu");

SendClientMessage(playerid, COLOR_LIGHTBLUE, "Akceptovaná hodnota je medzi 1.0 a 3.0");

format(strTempString,sizeof(strTempString), " Tvoje nastavenie je %0.2f", SpeedBoostMultiplier[playerid]);

SendClientMessage(playerid, COLOR_LIGHTBLUE, strTempString);

return 1;

}

if (!IsNumeric2(strBoostMultiplier))

{

SendClientMessage(playerid, COLOR_LIGHTBLUE, "Použitie: /speed (1.0-3.0)");

SendClientMessage(playerid, COLOR_LIGHTBLUE, "Umožòuje to nastavi rýchlost, ktorá je použitá, keï stlaèíš tlaèidlo klaksónu");

SendClientMessage(playerid, COLOR_LIGHTBLUE, "Akceptovaná hodnota je medzi 1.0 a 3.0");

format(strTempString,sizeof(strTempString), " Tvoje nastavenie je %0.2f", SpeedBoostMultiplier[playerid]);

SendClientMessage(playerid, COLOR_LIGHTBLUE, strTempString);

return 1;

}

new Float:BoostMultiplier = floatstr(strBoostMultiplier);

 

if (BoostMultiplier < 1.0 || BoostMultiplier > 3.0)

{

SendClientMessage(playerid, COLOR_LIGHTBLUE, "Speed Boost je od 1.0 do 3.0");

return 1;

}

SpeedBoostMultiplier[playerid] = BoostMultiplier;

format(strTempString,sizeof(strTempString), "Tvoje nastavenie je %0.2f", SpeedBoostMultiplier[playerid]);

SendClientMessage(playerid, COLOR_LIGHTBLUE, strTempString);

 

return 1;

}

return 0;

}

public OnPlayerConnect(playerid)

{

SpeedBoostMultiplier[playerid] = 1.5;

return 1;

}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)

{

if (IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)

{

if (newkeys & KEY_CROUCH)

{

new Float:vx, Float:vy, Float:vz;

 

GetVehicleVelocity(GetPlayerVehicleID(playerid), vx, vy, vz);

 

if (floatabs(vx) < 3 && floatabs(vy) < 3 && floatabs(vz) < 3)

{

SetVehicleVelocity(GetPlayerVehicleID(playerid), vx * SpeedBoostMultiplier[playerid], vy * SpeedBoostMultiplier[playerid], vz * SpeedBoostMultiplier[playerid]);

}

return 1;

}

}

return 1;

}

stock strtok(const string[], &index)

{

new length = strlen(string);

while ((index < length) && (string[index] <= ' '))

{

index++;

}

 

new offset = index;

new result[20];

while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))

{

result[index - offset] = string[index];

index++;

}

result[index - offset] = EOS;

return result;

}

 

IsNumeric2(const string[])

{

new length=strlen(string);

if (length==0) return false;

for (new i = 0; i < length; i++)

{

if((string > '9' || string < '0' && string!='-' && string!='+' && string!='.')

|| (string=='-' && i!=0)

|| (string=='+' && i!=0)

) return false;

}

if (length==1 && (string[0]=='-' || string[0]=='+' || string[0]=='.')) return false;

return true;

}

 

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...