• Страница 1 из 1
  • 1
Модератор форума: [east_side]_trane, drifter-dron, valych, admin  
pawno урок сохранение спидометра на машине
adminДата: Среда, 12.10.2011, 00:38:30 | Сообщение # 1

Группа: Администраторы
Сообщений: 3869


И так начнем уроку!
верху мода должен быть устоновлен include
Code
#include <dini>
если у вас есть то 2 раз можно не добавлять.
и так же верху мода вставляем:
Code
#define SERVER_VEHICLES 101 //сколько у вас машин устоновлено в samp в моде.

new Text:Contador[SERVER_VEHICLES];
new Metros[SERVER_VEHICLES];
new Kilometros[SERVER_VEHICLES];
new TimerContador[MAX_PLAYERS];

forward CrearContadores();
forward DestruirContadores();
forward CargarDatosVehiculos();
forward GuardarDatosVehiculos();
forward ContarKM(vehicleid);

После этого ищем public OnGameModeInit() и туда вставляем:
Code
    CrearContadores();
  CargarDatosVehiculos();

Примерно так должен быть public:
Code
public OnGameModeInit()
{
  CrearContadores();
  CargarDatosVehiculos();
  return 1;
}

После этого ищем public OnGameModeExit() и туда вставляем:
Code
DestruirContadores();
     GuardarDatosVehiculos();

Примерно так должен быть public:
Code
public OnGameModeExit()
{
  DestruirContadores();
     GuardarDatosVehiculos();
     return 1;
}

После этого ищем public OnPlayerDisconnect(playerid, reason) и туда вставляем:
Code
KillTimer(TimerContador[playerid]);

Примерно так должен быть public:
Code
public OnPlayerDisconnect(playerid, reason)
{
     KillTimer(TimerContador[playerid]);
  return 1;
}

После этого ищем public OnPlayerStateChange(playerid, newstate, oldstate) и туда вставляем:
Code
    if(newstate == PLAYER_STATE_DRIVER)
  {
      TextDrawShowForPlayer(playerid, Contador[GetPlayerVehicleID(playerid)]);
      TimerContador[playerid] = SetTimerEx("ContarKM", 2500, true, "i", GetPlayerVehicleID(playerid));
  }

Примерно так должен быть public:
Code
public OnPlayerStateChange(playerid, newstate, oldstate)
{
  if(newstate == PLAYER_STATE_DRIVER)
  {
      TextDrawShowForPlayer(playerid, Contador[GetPlayerVehicleID(playerid)]);
      TimerContador[playerid] = SetTimerEx("ContarKM", 2500, true, "i", GetPlayerVehicleID(playerid));
  }
  return 1;
}

После этого ищем public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) и туда вставляем:
Code
ContarKM(vehicleid);

Примерно так должен быть public:
Code
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
     ContarKM(vehicleid);
  return 1;
}

После этого ищем public OnPlayerExitVehicle(playerid, vehicleid) и туда вставляем:
Code
TextDrawHideForPlayer(playerid, Contador[vehicleid]);
     KillTimer(TimerContador[playerid]);

Примерно так должен быть public:
Code
public OnPlayerExitVehicle(playerid, vehicleid)
{
     TextDrawHideForPlayer(playerid, Contador[vehicleid]);
     KillTimer(TimerContador[playerid]);
  return 1;
}

После этого добавляем функции в любое место:
Code
public ContarKM(vehicleid)
{
  static string[16];
  if(GetVehicleSpeed(vehicleid) > 10)
  {
      Metros[vehicleid] += floatround(floatdiv(GetVehicleSpeed(vehicleid), 60.0));
  }
  if(Metros[vehicleid] > 9)
   {
   Kilometros[vehicleid] += 1;
   Metros[vehicleid] = 0;
  }
   if(arrlen(Kilometros[vehicleid]) == 1)
  {
   format(string, 16, "0000%d~r~%d", Kilometros[vehicleid], Metros[vehicleid]);
   TextDrawSetString(Contador[vehicleid], string);
  }
  else if(arrlen(Kilometros[vehicleid]) == 2)
  {
   format(string, 16, "000%d~r~%d", Kilometros[vehicleid], Metros[vehicleid]);
   TextDrawSetString(Contador[vehicleid], string);
  }
  else if(arrlen(Kilometros[vehicleid]) == 3)
  {
   format(string, 16, "00%d~r~%d", Kilometros[vehicleid], Metros[vehicleid]);
   TextDrawSetString(Contador[vehicleid], string);
  }
  else if(arrlen(Kilometros[vehicleid]) == 4)
  {
   format(string, 16, "0%d~r~%d", Kilometros[vehicleid], Metros[vehicleid]);
   TextDrawSetString(Contador[vehicleid], string);
  }
  else if(arrlen(Kilometros[vehicleid]) == 5)
  {
   format(string, 16, "%d~r~%d", Kilometros[vehicleid], Metros[vehicleid]);
   TextDrawSetString(Contador[vehicleid], string);
  }
  return 1;
}

public CrearContadores()
{
     for(new i = 1; i < SERVER_VEHICLES; i++)
  {
   Contador[i] = TextDrawCreate(568.000000, 410.000000, "0000~r~0");
   TextDrawBackgroundColor(Contador[i], 255);
   TextDrawFont(Contador[i], 2);
   TextDrawLetterSize(Contador[i], 0.270000, 1.000000);
   TextDrawColor(Contador[i], -1);
   TextDrawSetOutline(Contador[i], 1);
   TextDrawSetProportional(Contador[i], 1);
  }
  print("Vehicle textdraws succesfully created.");
  return 1;
}

public DestruirContadores()
{
  for(new i = 1; i < SERVER_VEHICLES; i++)
  {
      TextDrawDestroy(Contador[i]);
  }
  print("Vehicle textdraws succesfully destroyed.");
  return 1;
}

public CargarDatosVehiculos()
{
  new string[24];
     for(new i = 1; i < SERVER_VEHICLES; i++)
  {
      format(string, 24, "Vehicles/%d.ini", i);
      if(!dini_Exists(string))
      {
          dini_Create(string);
          dini_IntSet(string, "metros", 0);
          dini_IntSet(string, "kilometros", 0);
          Metros[i] = dini_Int(string, "metros");
       Kilometros[i] = dini_Int(string, "kilometros");
      }
   else
   {
       Metros[i] = dini_Int(string, "metros");
       Kilometros[i] = dini_Int(string, "kilometros");
   }
  }
  print("Vehicle data succesfully loaded.");
  return 1;
}

public GuardarDatosVehiculos()
{
     new string[24], i = 1;
  for(; i < SERVER_VEHICLES; i++)
  {
      format(string, 24, "Vehicles/%d.ini", i);
      dini_IntSet(string, "metros", Metros[i]);
      dini_IntSet(string, "kilometros", Kilometros[i]);
  }
  print("Vehicle data succesfully saved.");
  return 1;
}

stock GetVehicleSpeed(vehicleid)
{
  new Float: ST[4];
  GetVehicleVelocity(vehicleid, ST[0], ST[1], ST[2]);
  ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 180;
  return floatround(ST[3]);
}

stock arrlen(&constinteger)
{
  new tmp[12];
  format(tmp, 12, "%i", constinteger);
  return strlen(tmp);
}

урок by 26_RUSSS
Автор 26_RUSSS Plojimas


zm-jail.ru

Разработка сайта samp-pawno.ru


 
Сообщение

И так начнем уроку!
верху мода должен быть устоновлен include
Code
#include <dini>
если у вас есть то 2 раз можно не добавлять.
и так же верху мода вставляем:
Code
#define SERVER_VEHICLES 101 //сколько у вас машин устоновлено в samp в моде.

new Text:Contador[SERVER_VEHICLES];
new Metros[SERVER_VEHICLES];
new Kilometros[SERVER_VEHICLES];
new TimerContador[MAX_PLAYERS];

forward CrearContadores();
forward DestruirContadores();
forward CargarDatosVehiculos();
forward GuardarDatosVehiculos();
forward ContarKM(vehicleid);

После этого ищем public OnGameModeInit() и туда вставляем:
Code
    CrearContadores();
  CargarDatosVehiculos();

Примерно так должен быть public:
Code
public OnGameModeInit()
{
  CrearContadores();
  CargarDatosVehiculos();
  return 1;
}

После этого ищем public OnGameModeExit() и туда вставляем:
Code
DestruirContadores();
     GuardarDatosVehiculos();

Примерно так должен быть public:
Code
public OnGameModeExit()
{
  DestruirContadores();
     GuardarDatosVehiculos();
     return 1;
}

После этого ищем public OnPlayerDisconnect(playerid, reason) и туда вставляем:
Code
KillTimer(TimerContador[playerid]);

Примерно так должен быть public:
Code
public OnPlayerDisconnect(playerid, reason)
{
     KillTimer(TimerContador[playerid]);
  return 1;
}

После этого ищем public OnPlayerStateChange(playerid, newstate, oldstate) и туда вставляем:
Code
    if(newstate == PLAYER_STATE_DRIVER)
  {
      TextDrawShowForPlayer(playerid, Contador[GetPlayerVehicleID(playerid)]);
      TimerContador[playerid] = SetTimerEx("ContarKM", 2500, true, "i", GetPlayerVehicleID(playerid));
  }

Примерно так должен быть public:
Code
public OnPlayerStateChange(playerid, newstate, oldstate)
{
  if(newstate == PLAYER_STATE_DRIVER)
  {
      TextDrawShowForPlayer(playerid, Contador[GetPlayerVehicleID(playerid)]);
      TimerContador[playerid] = SetTimerEx("ContarKM", 2500, true, "i", GetPlayerVehicleID(playerid));
  }
  return 1;
}

После этого ищем public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) и туда вставляем:
Code
ContarKM(vehicleid);

Примерно так должен быть public:
Code
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
     ContarKM(vehicleid);
  return 1;
}

После этого ищем public OnPlayerExitVehicle(playerid, vehicleid) и туда вставляем:
Code
TextDrawHideForPlayer(playerid, Contador[vehicleid]);
     KillTimer(TimerContador[playerid]);

Примерно так должен быть public:
Code
public OnPlayerExitVehicle(playerid, vehicleid)
{
     TextDrawHideForPlayer(playerid, Contador[vehicleid]);
     KillTimer(TimerContador[playerid]);
  return 1;
}

После этого добавляем функции в любое место:
Code
public ContarKM(vehicleid)
{
  static string[16];
  if(GetVehicleSpeed(vehicleid) > 10)
  {
      Metros[vehicleid] += floatround(floatdiv(GetVehicleSpeed(vehicleid), 60.0));
  }
  if(Metros[vehicleid] > 9)
   {
   Kilometros[vehicleid] += 1;
   Metros[vehicleid] = 0;
  }
   if(arrlen(Kilometros[vehicleid]) == 1)
  {
   format(string, 16, "0000%d~r~%d", Kilometros[vehicleid], Metros[vehicleid]);
   TextDrawSetString(Contador[vehicleid], string);
  }
  else if(arrlen(Kilometros[vehicleid]) == 2)
  {
   format(string, 16, "000%d~r~%d", Kilometros[vehicleid], Metros[vehicleid]);
   TextDrawSetString(Contador[vehicleid], string);
  }
  else if(arrlen(Kilometros[vehicleid]) == 3)
  {
   format(string, 16, "00%d~r~%d", Kilometros[vehicleid], Metros[vehicleid]);
   TextDrawSetString(Contador[vehicleid], string);
  }
  else if(arrlen(Kilometros[vehicleid]) == 4)
  {
   format(string, 16, "0%d~r~%d", Kilometros[vehicleid], Metros[vehicleid]);
   TextDrawSetString(Contador[vehicleid], string);
  }
  else if(arrlen(Kilometros[vehicleid]) == 5)
  {
   format(string, 16, "%d~r~%d", Kilometros[vehicleid], Metros[vehicleid]);
   TextDrawSetString(Contador[vehicleid], string);
  }
  return 1;
}

public CrearContadores()
{
     for(new i = 1; i < SERVER_VEHICLES; i++)
  {
   Contador[i] = TextDrawCreate(568.000000, 410.000000, "0000~r~0");
   TextDrawBackgroundColor(Contador[i], 255);
   TextDrawFont(Contador[i], 2);
   TextDrawLetterSize(Contador[i], 0.270000, 1.000000);
   TextDrawColor(Contador[i], -1);
   TextDrawSetOutline(Contador[i], 1);
   TextDrawSetProportional(Contador[i], 1);
  }
  print("Vehicle textdraws succesfully created.");
  return 1;
}

public DestruirContadores()
{
  for(new i = 1; i < SERVER_VEHICLES; i++)
  {
      TextDrawDestroy(Contador[i]);
  }
  print("Vehicle textdraws succesfully destroyed.");
  return 1;
}

public CargarDatosVehiculos()
{
  new string[24];
     for(new i = 1; i < SERVER_VEHICLES; i++)
  {
      format(string, 24, "Vehicles/%d.ini", i);
      if(!dini_Exists(string))
      {
          dini_Create(string);
          dini_IntSet(string, "metros", 0);
          dini_IntSet(string, "kilometros", 0);
          Metros[i] = dini_Int(string, "metros");
       Kilometros[i] = dini_Int(string, "kilometros");
      }
   else
   {
       Metros[i] = dini_Int(string, "metros");
       Kilometros[i] = dini_Int(string, "kilometros");
   }
  }
  print("Vehicle data succesfully loaded.");
  return 1;
}

public GuardarDatosVehiculos()
{
     new string[24], i = 1;
  for(; i < SERVER_VEHICLES; i++)
  {
      format(string, 24, "Vehicles/%d.ini", i);
      dini_IntSet(string, "metros", Metros[i]);
      dini_IntSet(string, "kilometros", Kilometros[i]);
  }
  print("Vehicle data succesfully saved.");
  return 1;
}

stock GetVehicleSpeed(vehicleid)
{
  new Float: ST[4];
  GetVehicleVelocity(vehicleid, ST[0], ST[1], ST[2]);
  ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 180;
  return floatround(ST[3]);
}

stock arrlen(&constinteger)
{
  new tmp[12];
  format(tmp, 12, "%i", constinteger);
  return strlen(tmp);
}

урок by 26_RUSSS
Автор 26_RUSSS Plojimas

Автор - admin
Дата добавления - 12.10.2011 в 00:38:30
  • Страница 1 из 1
  • 1
Поиск:
Загрузка страницы, займет меньше минуты...
Загрузка...

Статистика Форума
Последнии темы Читаемые темы Лучшие пользователи Новые пользователи
Система телефонов поломалась
Не в себе
фильм скалайн
Трансформеры 3
форсаж 6
Ищу [FS]Для админок на сервер
нужны координаты карты для отметки зон...
Помогите найти мод
pawno урок автоматические ворота
обращение к скриптерам.
Вопросы по скриптингу
Ваши ошибки при компиляции GM/FS

Вопросы по скриптингу

(1081)

Считаем до 1000

(274)

Ваши ошибки при компиляция gm

(260)

Набор в команду

(80)

Ваши ошибки при компиляции GM/FS

(71)

вопроосы по скриптингу от 22.04.2013

(64)

Баннеробмен

(64)

несколько команд на samp 0.3 c

(64)

Оценки сайта samp-pawno.ru

(55)

Заказ хостинга

(51)

Набор в команду(форум)

(45)

Урок №61 по созданию системы авто для GodFather

(45)

admin

(3869)

[east_side]_trane

(443)

TWiX

(316)

valych

(501)

drifter-dron

(477)

danik_rok

(317)

Dimka_71rus

(360)

Drifter96

(300)

MaNb9K

(220)

[MTA]MaPeR5518

(181)

Dima_Tkach

(107)

Nik_Ull

(184)

system32xzxz

(Четверг 09:25:24)

torbin169

(Суббота 23:09:29)

kuchuk_00

(Суббота 17:10:14)

artem_boyko_3

(Суббота 15:57:37)

greggelbak

(Среда 18:29:37)

vladisvlavs

(Среда 13:51:57)

add02102002

(Понедельник 22:37:15)

Диман221

(Понедельник 18:12:45)

almas051004

(Воскресенье 11:05:32)

megasuccessms

(Суббота 14:15:36)

nawe

(Пятница 22:25:23)

swoysb

(Пятница 14:55:29)

Вверх
23:33:21
ОбновитьСмайлыУправление мини-чатом
ЧАТ-PAWNO
2010-2025

vkontakte :samp-pawno.ru: