• 0

Кто-нибудь знает как именно на определенную машину установить скорость с этим скриптом?

Вопросы

Homer4ik
Освоившийся

Кто-нибудь знает как именно на определенную машину установить скорость с этим скриптом?

 

Спойлер

stock SetVehicleSpeed(vehicleid,mph)
{
new Float:Vx, Float:Vy, Float:Vz ,Float:speeds, Float:multiple;
GetVehicleVelocity(vehicleid,Vx,Vy,Vz);
speeds = floatsqroot(Vx*Vx + Vy*Vy + Vz*Vz);
if(speeds > 0)
{
multiple = (mph / (speeds * 250));
return SetVehicleVelocity(vehicleid, Vx*multiple, Vy*multiple, Vz*multiple);
}
return 0;
}

 

Поделиться сообщением


Ссылка на сообщение

38 ответов на этот вопрос

  • 0
Homer4ik
Освоившийся
Только что, DEST сказал:

@Homer4ik Этот скрипт не устанавливает новую скорость, он лишь дает машине разгона. 

Ну как поставить на определенную машину разгон такой-то

Поделиться сообщением


Ссылка на сообщение
  • 0

@Homer4ik Точнее придаст резкое ускорение определенной машине на указанное кол-во "миль в час". 

А сделать очень просто, нужно добавить туда, где хотите добавить ускорение следующий код: 
 

SetVehicleSpeed(GetPlayerVehicleID(playerid),20); // добавит ускорение машине, в которой сидит игрок, на 20 миль в час

 

Поделиться сообщением


Ссылка на сообщение
  • 0
Homer4ik
Освоившийся
Только что, DEST сказал:

@Homer4ik Точнее придаст резкое ускорение определенной машине на указанное кол-во "миль в час". 

А сделать очень просто, нужно добавить туда, где хотите добавить ускорение следующий код: 
 


SetVehicleSpeed(GetPlayerVehicleID(playerid),20); // добавит ускорение машине, в которой сидит игрок, на 20 миль в час

 

это куда вставлять?

Поделиться сообщением


Ссылка на сообщение
  • 0

@Homer4ik например, можете сделать так :

Ко всем new: 

new timer[MAX_PLAYERS]; 

В OnPlayerStateChange после { вставьте: 

if(newstate == PLAYER_STATE_DRIVER)
  timer[playerid] = SetTimerEx("SpeedVehicle", 10000, true, "d", playerid); 
else if(oldstate == PLAYER_STATE_DRIVER)
  KillTimer(timer[playerid]); 

В конец мода (можно после стока SetVehicleSpeed)
 

forward SpeedVehicle(playerid); 
public SpeedVehicle(playerid) return SetVehicleSpeed(GetPlayerVehicleID(playerid), 5); 

В результате каждые 10 секунд машине будет прибавляться по 5 миль / ч к скорости. 

Поделиться сообщением


Ссылка на сообщение
  • 0
Homer4ik
Освоившийся
Только что, DEST сказал:

@Homer4ik например, можете сделать так :

Ко всем new: 


new timer[MAX_PLAYERS]; 

В OnPlayerStateChange после { вставьте: 


if(newstate == PLAYER_STATE_DRIVER)
  timer[playerid] = SetTimerEx("SpeedVehicle", 10000, true, "d", playerid); 
else if(oldstate == PLAYER_STATE_DRIVER)
  KillTimer(timer[playerid]); 

В конец мода (можно после стока SetVehicleSpeed)
 


forward SpeedVehicle(playerid); 
public SpeedVehicle(playerid) return SetVehicleSpeed(GetPlayerVehicleID(playerid), 5); 

В результате каждые 10 секунд машине будет прибавляться по 5 миль / ч к скорости. 

Это той машине в которой сидит игрок? А для каждой машины разное ускорение нельзя, как на ра*мире

Поделиться сообщением


Ссылка на сообщение
  • 0

@Homer4ik Тогда сделайте так (замените предыдущий код): 

if(newstate == PLAYER_STATE_DRIVER)
{
  new modelid = GetVehicleModel(GetPlayerVehicleID(playerid)); 
  timer[playerid] = SetTimerEx("SpeedVehicle", 10000, true, "dd", playerid, modelid); 
}
else if(oldstate == PLAYER_STATE_DRIVER)
  KillTimer(timer[playerid]); 

И соответственно паблик этим: 

forward SpeedVehicle(playerid, modelid); 
public SpeedVehicle(playerid, modelid) 
{
  new newmph; 
  switch(modelid)
  {
    case X: newmph = XXmph; 
    case Y: newmph = YYmph;
  }
  return SetVehicleSpeed(GetPlayerVehicleID(playerid), newmph);
}

Вместо X ид первой машины, вместо XXmph ускорение для первой машины в миль/час.. 

Вместо Y ид второй машины, вместо YYmph ускорение для второй машины в миль/час. 

Дальше добавлять по аналогии. 
 

Поделиться сообщением


Ссылка на сообщение
  • 0
Homer4ik
Освоившийся
8 минут назад, DEST сказал:

@Homer4ik Тогда сделайте так (замените предыдущий код): 


if(newstate == PLAYER_STATE_DRIVER)
{
  new modelid = GetVehicleModel(GetPlayerVehicleID(playerid)); 
  timer[playerid] = SetTimerEx("SpeedVehicle", 10000, true, "dd", playerid, modelid); 
}
else if(oldstate == PLAYER_STATE_DRIVER)
  KillTimer(timer[playerid]); 

И соответственно паблик этим: 


forward SpeedVehicle(playerid, modelid); 
public SpeedVehicle(playerid, modelid) 
{
  new newmph; 
  switch(modelid)
  {
    case X: newmph = XXmph; 
    case Y: newmph = YYmph;
  }
  return SetVehicleSpeed(GetPlayerVehicleID(playerid), newmph);
}

Вместо X ид первой машины, вместо XXmph ускорение для первой машины в миль/час.. 

Вместо Y ид второй машины, вместо YYmph ускорение для второй машины в миль/час. 

Дальше добавлять по аналогии. 
 

Ошибку выдало на new timer[MAX_PLAYERS];

C:\Users\Ivan\Desktop\ArzamasRP\gamemodes\ArzamasRP.pwn(516) : error 021: symbol already defined: "timer"
Pawn compiler 3.2.3664     Copyright (c) 1997-2006, ITB CompuPhase

1 Error.

Поделиться сообщением


Ссылка на сообщение
  • 0

@Homer4ik значит эту строку: 

new timer[MAX_PLAYERS]; 

Замените на эту: 

new speedvehicle[MAX_PLAYERS]; 

Эту строку: 
 

else if(oldstate == PLAYER_STATE_DRIVER)
  KillTimer(timer[playerid]); 

На эту: 
 

else if(oldstate == PLAYER_STATE_DRIVER)
  KillTimer(speedvehicle[playerid]); 

Ну и эту строку: 

timer[playerid] = SetTimerEx("SpeedVehicle", 10000, true, "dd", playerid, modelid); 

На эту: 

speedvehicle[playerid] = SetTimerEx("SpeedVehicle", 10000, true, "dd", playerid, modelid); 

Поделиться сообщением


Ссылка на сообщение
  • 0
Homer4ik
Освоившийся
7 минут назад, DEST сказал:

@Homer4ik значит эту строку: 


new timer[MAX_PLAYERS]; 

Замените на эту: 


new speedvehicle[MAX_PLAYERS]; 

Эту строку: 
 


else if(oldstate == PLAYER_STATE_DRIVER)
  KillTimer(timer[playerid]); 

На эту: 
 


else if(oldstate == PLAYER_STATE_DRIVER)
  KillTimer(speedvehicle[playerid]); 

Ну и эту строку: 


timer[playerid] = SetTimerEx("SpeedVehicle", 10000, true, "dd", playerid, modelid); 

На эту: 


speedvehicle[playerid] = SetTimerEx("SpeedVehicle", 10000, true, "dd", playerid, modelid); 

Это в конец мода?

forward SpeedVehicle(playerid, modelid); public SpeedVehicle(playerid, modelid) { new newmph; switch(modelid) { case X: newmph = XXmph; case Y: newmph = YYmph; } return SetVehicleSpeed(GetPlayerVehicleID(playerid), newmph); }

Поделиться сообщением


Ссылка на сообщение
  • 0
Homer4ik
Освоившийся
2 минуты назад, DEST сказал:

@Homer4ik да

C:\Users\Ivan\Desktop\ArzamasRP\gamemodes\ArzamasRP.pwn(80106) : error 025: function heading differs from prototype
C:\Users\Ivan\Desktop\ArzamasRP\gamemodes\ArzamasRP.pwn(80107) : error 025: function heading differs from prototype
C:\Users\Ivan\Desktop\ArzamasRP\gamemodes\ArzamasRP.pwn(80108) : error 021: symbol already defined: "SpeedVehicle"
Pawn compiler 3.2.3664     Copyright (c) 1997-2006, ITB CompuPhase

3 Errors.

Поделиться сообщением


Ссылка на сообщение
  • 0
Homer4ik
Освоившийся
Только что, DEST сказал:

@Homer4ik не надо вставлять два раза то, что я скинул. 

крч, если тебе не трудно, можешь сразу кинуть что вставлять?

Поделиться сообщением


Ссылка на сообщение
  • 0

@Homer4ik То, что вставляли до этого удалить, начните вставлять все с чистого листа, чтобы без ошибок. 

Ко всем new: 

new speedtimer[MAX_PLAYERS];

В OnPlayerStateChange: 
 

if(newstate == PLAYER_STATE_DRIVER)
  speedtimer[playerid] = SetTimerEx("SpeedVehicle", 10000, true, "d", playerid); 
else if(oldstate == PLAYER_STATE_DRIVER)
  KillTimer(speedtimer[playerid]); 

В конец мода: 
 

forward SpeedVehicle(playerid, modelid); 
public SpeedVehicle(playerid, modelid) 
{
  new newmph; 
  switch(modelid)
  {
    case X: newmph = XXmph; 
    case Y: newmph = YYmph;
  }
  return SetVehicleSpeed(GetPlayerVehicleID(playerid), newmph);
}

 

Поделиться сообщением


Ссылка на сообщение
  • 0
Homer4ik
Освоившийся
6 минут назад, DEST сказал:

@Homer4ik То, что вставляли до этого удалить, начните вставлять все с чистого листа, чтобы без ошибок. 

Ко всем new: 


new speedtimer[MAX_PLAYERS];

В OnPlayerStateChange: 
 


if(newstate == PLAYER_STATE_DRIVER)
  speedtimer[playerid] = SetTimerEx("SpeedVehicle", 10000, true, "d", playerid); 
else if(oldstate == PLAYER_STATE_DRIVER)
  KillTimer(speedtimer[playerid]); 

В конец мода: 
 


forward SpeedVehicle(playerid, modelid); 
public SpeedVehicle(playerid, modelid) 
{
  new newmph; 
  switch(modelid)
  {
    case X: newmph = XXmph; 
    case Y: newmph = YYmph;
  }
  return SetVehicleSpeed(GetPlayerVehicleID(playerid), newmph);
}

 

C:\Users\Ivan\Desktop\ArzamasRP\gamemodes\ArzamasRP.pwn(80105) : error 025: function heading differs from prototype
C:\Users\Ivan\Desktop\ArzamasRP\gamemodes\ArzamasRP.pwn(80106) : error 025: function heading differs from prototype
C:\Users\Ivan\Desktop\ArzamasRP\gamemodes\ArzamasRP.pwn(80107) : error 021: symbol already defined: "SpeedVehicle"
Pawn compiler 3.2.3664     Copyright (c) 1997-2006, ITB CompuPhase

3 Errors.

Поделиться сообщением


Ссылка на сообщение
  • 0
Homer4ik
Освоившийся
Только что, DEST сказал:

@Homer4ik строки сразу скидывайте

вот это в конце мода       }
    }
}
 forward SpeedVehicle(playerid, modelid);
 public SpeedVehicle(playerid, modelid)
 {
   new newmph;
   switch(modelid)
   {
     case 541: newmph = 100;
     case 503: newmph = 120;
   }
   return SetVehicleSpeed(GetPlayerVehicleID(playerid), newmph);
 }

Поделиться сообщением


Ссылка на сообщение
  • 0
Homer4ik
Освоившийся
Только что, DEST сказал:

@Homer4ik а еще у вас где-нибудь forward SpeedVehicle в моде есть? 

нету, но есть

 if(newstate == PLAYER_STATE_DRIVER)
   speedtimer[playerid] = SetTimerEx("SpeedVehicle", 10000, true, "d", playerid);
 else if(oldstate == PLAYER_STATE_DRIVER)
   KillTimer(speedtimer[playerid]);

 и

}
stock SpeedVehicle(playerid)
{

 

Поделиться сообщением


Ссылка на сообщение
  • 0

@Homer4ik заменяйте так: 
 

if(newstate == PLAYER_STATE_DRIVER)
{
  new modelid = GetVehicleModel(GetPlayerVehicleID(playerid)); 
  timer[playerid] = SetTimerEx("SpeedVehicle222", 10000, true, "dd", playerid, modelid); 
}

и форвард с пабликом на этот замените: 
 

forward SpeedVehicle222(playerid, modelid); 
public SpeedVehicle222(playerid, modelid) 
{
  new newmph; 
  switch(modelid)
  {
    case X: newmph = XXmph; 
    case Y: newmph = YYmph;
  }
  return SetVehicleSpeed(GetPlayerVehicleID(playerid), newmph);
}

 

Поделиться сообщением


Ссылка на сообщение
  • 0
Homer4ik
Освоившийся
2 минуты назад, DEST сказал:

@Homer4ik заменяйте так: 
 


if(newstate == PLAYER_STATE_DRIVER)
{
  new modelid = GetVehicleModel(GetPlayerVehicleID(playerid)); 
  timer[playerid] = SetTimerEx("SpeedVehicle222", 10000, true, "dd", playerid, modelid); 
}

и форвард с пабликом на этот замените: 
 

 

это


 if(newstate == PLAYER_STATE_DRIVER)
   speedtimer[playerid] = SetTimerEx("SpeedVehicle", 10000, true, "d", playerid);
 else if(oldstate == PLAYER_STATE_DRIVER)
   KillTimer(speedtimer[playerid]);

на это?

if(newstate == PLAYER_STATE_DRIVER) { new modelid = GetVehicleModel(GetPlayerVehicleID(playerid)); timer[playerid] = SetTimerEx("SpeedVehicle222", 10000, true, "dd", playerid, modelid); }

 

 

9 минут назад, DEST сказал:

@Homer4ik заменяйте так: 
 


if(newstate == PLAYER_STATE_DRIVER)
{
  new modelid = GetVehicleModel(GetPlayerVehicleID(playerid)); 
  timer[playerid] = SetTimerEx("SpeedVehicle222", 10000, true, "dd", playerid, modelid); 
}

и форвард с пабликом на этот замените: 
 


forward SpeedVehicle222(playerid, modelid); 
public SpeedVehicle222(playerid, modelid) 
{
  new newmph; 
  switch(modelid)
  {
    case X: newmph = XXmph; 
    case Y: newmph = YYmph;
  }
  return SetVehicleSpeed(GetPlayerVehicleID(playerid), newmph);
}

 

Скинь еще раз, как сможешь короче, что куда вставлять

Поделиться сообщением


Ссылка на сообщение
  • 0

@Homer4ik Скидываю последний раз, если не поймете, ваши проблемы. 

Ко всем new: 

new speedtimer[MAX_PLAYERS];

В OnPlayerStateChange: 

if(newstate == PLAYER_STATE_DRIVER)
{
  new modelid = GetVehicleModel(GetPlayerVehicleID(playerid)); 
  speedtimer[playerid] = SetTimerEx("SpeedVehicle222", 10000, true, "dd", playerid, modelid); 
}
if(oldstate == PLAYER_STATE_DRIVER)
	KillTimer(speedtimer[playerid]); 

В конец мода: 

forward SpeedVehicle222(playerid, modelid); 
public SpeedVehicle222(playerid, modelid) 
{
  new newmph; 
  switch(modelid)
  {
    case X: newmph = XXmph; 
    case Y: newmph = YYmph;
  }
  return SetVehicleSpeed(GetPlayerVehicleID(playerid), newmph);
}

 

Поделиться сообщением


Ссылка на сообщение
  • 0
Homer4ik
Освоившийся
17 минут назад, DEST сказал:

@Homer4ik Скидываю последний раз, если не поймете, ваши проблемы. 

Ко всем new: 


new speedtimer[MAX_PLAYERS];

В OnPlayerStateChange: 


if(newstate == PLAYER_STATE_DRIVER)
{
  new modelid = GetVehicleModel(GetPlayerVehicleID(playerid)); 
  speedtimer[playerid] = SetTimerEx("SpeedVehicle222", 10000, true, "dd", playerid, modelid); 
}
if(oldstate == PLAYER_STATE_DRIVER)
	KillTimer(speedtimer[playerid]); 

В конец мода: 


forward SpeedVehicle222(playerid, modelid); 
public SpeedVehicle222(playerid, modelid) 
{
  new newmph; 
  switch(modelid)
  {
    case X: newmph = XXmph; 
    case Y: newmph = YYmph;
  }
  return SetVehicleSpeed(GetPlayerVehicleID(playerid), newmph);
}

 

последний вопрос, вот эта строчка case X: newmph = XXmph; case Y: newmph = YYmph;

XXmph полностью менять или только XX

Заметка от Гость , создано

Код берите под "Код" или спойлер

Поделиться сообщением


Ссылка на сообщение
  • 0

@Homer4ik конечно же все заменяйте на свои данные. Это приведено в качестве примера. Вместо X и Y ид машин, а вмечто XXmph и YYmph ускорение в миль / час. 

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Андрей Лазарев
      От Андрей Лазарев
      ROSTOV-HOST.RU - Современный Хостинг Игровых Серверов по невероятно низким ценам и удобной панелью управления 

      — Защита от DDoS-атак 
      — Бесплатная техническая поддержка 
      — Доступ в панель управления и личный кабинет 
      — Переустановка игрового сервера в любое время суток 
      — Редактирование конфигурационных файлов игрового сервера 
      — FTP доступ к файлам игрового сервера 
      — Мониторинг процессов 
      — Изменение количества слотов игрового сервера 
      — Система управления счетами и оплаты услуг 
      — Локальная MySQL база данных 
      — Автоустановка модов
      — Смена (версии / игры) сразу в панели управления


      Цены: с помесячной оплатой
      — GTA: SAMP              - 1слот / 0.40копп.
      — GTA: CRMP              - 1слот / 0.40копп.
      — GTA: MTA                 - 1слот / 0.80копп.
      — GTA: United MP       - 1слот / 0.80копп.
      — MineCraft: PE           - 1слот / 3.00копп.
      — MineCraft                  - 1слот / 5.00копп.
      — Counter Strike 1.6    - 1слот / 4.00копп.
       
      Цены: плати один раз пользуйся до скончания веков
      — 1 200 руб / SA:MP 0.3е/ CR:MP 0.3е/ МТА /    500 слотов
      — 1 800 руб / SA:MP 0.3.7/ CR:MP 0.3.7/ МТА /    1000 слотов
       

      Сайт: https://rostov-host.ru
      Группа в VK: https://vk.com/rostov_host
       
       
    • 9at0z
      От 9at0z
      Flatgame.ru - Хостинг игровых серверов. Gta SAMP: 0.50коп/слот Gta СRMP: 0.50коп/слот MTA: 0.50коп/слот Minecraft: 5руб/слот Counter Stire 1.6: 7руб/слот Все сервера с автоусновкой модов, которые есть доступны. Обширная панель управления сервером. Тестовый периуд 3 дня. И очень много чего интересного!

    • FanVan
      От FanVan

       
      Дешевый хостинг серверов SAMP, CRMP, Minecraft: Java & Bedrock Edition
       
      Помогаем запуститься начинающим проектам без больших вложений.
      Сделаем так, чтобы твои затраты на хостинг уменьшились без потери качества.
       
      Размещаем серверы в Хельсинках, Финляндия на процессоре частотой до 4.8 ГГц и NVMe диске.
      У нас нет красивого сайта, покупка услуг производится через бота в ЛС группы, а управление сервером -- посредством панели Pterodactyl.
      Мы не ограничиваем тебя слотами: все тарифы -- это маленькие компьютеры, ты волен сам устанавливать максимальное количество игроков, без повышения стоимости.
       
      К нам обращаются, когда хостинг начинает съедать большую часть бюджета из-за того, что хостер захотел выпендриться и добавил бесполезный функционал. Но лучше обратиться еще в начале, чтобы уменьшить затраты на хостинг и вложить как можно больше в рекламу.
       
      Никто не идеален, ничто не идеально: мы не можем помочь
      если у тебя высоконагруженный проект если тебе требуется защита от DDOS если тебе нужен пинг -1 если тебе важна автоустановка модов  
      Но ты можешь написать нам в тех. поддержку и, возможно, мы подберем более мощный тариф на отдельном сервере персонально для тебя по цене ниже, чем у других.
       
      Мы стремимся сделать создание сервера доступным каждому. Если остались вопросы или хочешь протестировать оборудование, напиши нам в ЛС группы.