[Урок]Ограничитель скорости [Samp-Rp копия] - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Phoenixxx_Czar, Getbackthere, [CM]OlegEhtler  
[Урок]Ограничитель скорости [Samp-Rp копия]
[CM]Dobrov Дата: Суббота, 25.01.2014, 23:13 | Сообщение # 1
Новичок
Сообщений: 4
Статус: Offline
Здравствуйте.

Проверял несколько раз все работает отлично и идет на любой сервак Samp-Rp и RLS (И других модов из этой линейки).

И так , для начала в pInfo вставляем:
Код
pCarSkill

Ко всем new's:
Код
new Slimit[MAX_PLAYERS];

В OnPlayerConnect:
Код
PlayerInfo[playerid][pCarSkill] = 0;  

В OnPlayerRegister:
Код
ini_setInteger(File,"CarSkill",PlayerInfo[playerid][pCarSkill]);  

В OnPlayerLogin:
Код
ini_getInteger(File,"CarSkill",PlayerInfo[playerid][pCarSkill]);

В OnPlayerUpdateRL или другую систему сохранения:
Код
ini_setInteger(File,"CarSkill",PlayerInfo[playerid][pCarSkill]);

В OnVehicleDamageStatusUpdate:
( Ставим этот код до системы поломки pProz )
Код
GetVehicleHealth(vehicleid, carhp);
                    if(carhp > 300 && carhp < 500)
          {
              new skill = PlayerInfo[playerid][pCarSkill];
              if(skill == 0)
              {
                  SendClientMessage(playerid, COLOR_RED, "Ваш навык вождения понижен");
                  Slimit[playerid] = 0;
                     return 1;
              }
              SendClientMessage(playerid, COLOR_RED, "Ваш навык вождения понижен");
              PlayerInfo[playerid][pCarSkill] -= 300;
              Slimit[playerid] = 0;
          }  

В Таймер Fresh:
( Вставляем после всех )
Код
if(IsPlayerInAnyVehicle(i))
{
                    new tacha = GetPlayerVehicleID(i);
           if(!IsAPlane(tacha) && !IsABoat(tacha))
          {
              new skill = PlayerInfo[i][pCarSkill];
              if(skill >= 0 && skill < 1200)
              {
                  PlayerInfo[i][pCarSkill] += 1;
              }
              if(skill == 300 || skill == 600 || skill == 900)
              {
                  SendClientMessage(i, COLOR_BLUE, "Ваш навык вождения повышен");
              }
              else if(skill == 1199)
              {
                  SendClientMessage(i, COLOR_BLUE, "Ваш навык повышен");
                  SendClientMessage(i, COLOR_WHITE, "(( Введите /slimit чтобы снять ограничитель ))");
              }
          }
}

В Таймер UpdateSpeedometr:
( Добавляем после этого кода )
Код
format(str1, sizeof(str1),"%d",SpeedVehicle(playerid));
if(Fuell[vehicleid] <= 45)  format(str2, sizeof(str2),"~r~%.0f",Fuell[vehicleid]);
else if(Fuell[vehicleid] <= 100)  format(str2, sizeof(str2),"~y~%.0f",Fuell[vehicleid]);
else if(Fuell[vehicleid] <= 300)  format(str2, sizeof(str2),"~g~%.0f",Fuell[vehicleid]);
format(str3, sizeof(str3), "KM/H");
format(str4, sizeof(str4), "FUEL");
format(str5, sizeof(str5), "%s",locked);

Вот этот код:
Код
new skill = PlayerInfo[playerid][pCarSkill];
                    new tacha = GetPlayerVehicleID(playerid);
           if(!IsAPlane(tacha) && !IsABoat(tacha))
          {
              if(skill >= 900 && skill <= 1199 || Slimit[playerid] == 1)
              {
                  #define MAX_SPEEDO 0.50
                  #define SLOW_FACTOR 0.70
                  new Float:x,Float:y,Float:z,veh;
                    veh = GetPlayerVehicleID(playerid);
                  GetVehicleVelocity(veh,x,y,z);
                   if((x > MAX_SPEEDO || x < -MAX_SPEEDO) || (y > MAX_SPEEDO || y < -MAX_SPEEDO))
                  {
                       SetVehicleVelocity(veh,x*SLOW_FACTOR,y*SLOW_FACTOR,z);
                  }
              }
              if(skill >= 600 && skill <= 899)
              {
                  #define MAX_SPEEDO 0.45
                  #define SLOW_FACTOR 0.65
                  new Float:x,Float:y,Float:z,veh;
                    veh = GetPlayerVehicleID(playerid);
                    GetVehicleVelocity(veh,x,y,z);
                     if((x > MAX_SPEEDO || x < -MAX_SPEEDO) || (y > MAX_SPEEDO || y < -MAX_SPEEDO))
                    {
                        SetVehicleVelocity(veh,x*SLOW_FACTOR,y*SLOW_FACTOR,z);
                  }
              }
              if(skill >= 300 && skill <= 599)
              {
                  #define MAX_SPEEDO 0.40
                  #define SLOW_FACTOR 0.60
                  new Float:x,Float:y,Float:z,veh;
                    veh = GetPlayerVehicleID(playerid);
                  GetVehicleVelocity(veh,x,y,z);
                     if((x > MAX_SPEEDO || x < -MAX_SPEEDO) || (y > MAX_SPEEDO || y < -MAX_SPEEDO))
                    {
                        SetVehicleVelocity(veh,x*SLOW_FACTOR,y*SLOW_FACTOR,z);
                  }
              }
              if(skill >= 0 && skill <= 299)
              {
                  #define MAX_SPEEDO 0.35
                  #define SLOW_FACTOR 0.55
                  new Float:x,Float:y,Float:z,veh;
                  veh = GetPlayerVehicleID(playerid);
                       GetVehicleVelocity(veh,x,y,z);
                        if((x > MAX_SPEEDO || x < -MAX_SPEEDO) || (y > MAX_SPEEDO || y < -MAX_SPEEDO))
                  {
                     SetVehicleVelocity(veh,x*SLOW_FACTOR,y*SLOW_FACTOR,z);
                  }
              }
          }  

В OnPlayerCommand:
Код
else if(strcmp(cmd,"/slimit",true) == 0)
{
          new tacha = GetPlayerVehicleID(playerid);
          if(IsPlayerInAnyVehicle(playerid) && !IsAPlane(tacha) && !IsABoat(tacha))
              {
                  new skill = PlayerInfo[playerid][pCarSkill];
              if(skill == 1200)
              {
                  switch (Slimit[playerid])
                  {
                      case 0:
                      {
                          Slimit[playerid] = 1;
                          return 1;
                      }
                      case 1:
                      {
                          Slimit[playerid] = 0;
                          return 1;
                      }
                  }
                  return 1;
              }
              else
              {
                      SendClientMessage(playerid, COLOR_WHITE, "У вас низкий навык вождения!");
                  return 1;
              }
          }
          else
          {
                        SendClientMessage(playerid, COLOR_WHITE, "Вы не за рулём!");
              return 1;
          }
}  

Все проверенно работает можете ставить и радоваться сис-мой.


Сообщение отредактировал [CM]Dobrov - Суббота, 25.01.2014, 23:16
[CM]Logotipo Дата: Воскресенье, 23.02.2014, 23:33 | Сообщение # 2
Авторитет
Сообщений: 1083
Статус: Offline
Отличная система, один -: она под РЛС, что делает его ещё более лаганым.Переписать его под new.pwn, и будет шик

Скуп
ВК
RakDroid - прокачка аккаунтов с телефона
VKMusic - вк музыка без браузера
Делаю сайты/софт/стимботов на заказ
wend Дата: Четверг, 13.03.2014, 16:54 | Сообщение # 3
Боец
Сообщений: 171
Статус: Offline
Оптимизацией тут не пахнет...
Эта "копия" была ещё, кажется, в моде щербета, а щербет не может сделать копию


»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»[МОИ ТЕМЫ]««««««««««««««««««««««««««««««
[ARP] Заработок свыше 60.000$ за час - http://cheat-master.ru/forum/146-335358
[ARP] Повышаемся в ранге за несколько минут - http://cheat-master.ru/forum/146-340205
[DRP] Как угнать прибыльный столик у крупье в казино - http://cheat-master.ru/forum/192-333429
[SA:MP] WallHack без читов - http://cheat-master.ru/forum/14-339817
Brian_Skyline Дата: Среда, 17.09.2014, 04:26 | Сообщение # 4
Новичок
Сообщений: 1
Статус: Offline
Помогите, пожалуйста!!!

Код
if(newkeys == KEY_SUBMISSION)
  {
   if(IsPlayerInAnyVehicle(playerid))
   {
    OnPlayerCommandText(playerid, "/en");
   }
  }
  if(newkeys == KEY_ACTION)
  {
   if(IsPlayerInAnyVehicle(playerid))
   {
    OnPlayerCommandText(playerid, "/slimit");
   }
  }


У меня вот таким образом работает команда (1) запуска/выключения двигателя и (2) включения/выключения ограничителя скорости. Но! В момент нажатия W или S, они не срабатывают, приходится отжимать, чтобы включить (огран./двиг.). При нажатии A или D, например, такого не происходит. Помогите, как мне сделать, чтобы ограничитель переключался без отжимания W или S ???
SeX-PrO-AdReNaLiN Дата: Вторник, 23.09.2014, 19:41 | Сообщение # 5
Авторитет
Сообщений: 1310
Статус: Offline
Не копия. С горы вместе с включенным огран. прыгни летать будешь.

user N over 99999
MisterOlympia Дата: Суббота, 27.09.2014, 13:15 | Сообщение # 6
Боец
Сообщений: 170
Статус: Offline
Цитата SeX-PrO-AdReNaLiN ()
Не копия. С горы вместе с включенным огран. прыгни летать будешь.

+


[B]online Дата: Воскресенье, 28.09.2014, 17:54 | Сообщение # 7
Боец
Сообщений: 98
Статус: Offline
Да так норм.
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума