• Страница 1 из 1
  • 1
Модератор форума: admin, TweIk  
Личные автомобили для GF
adminДата: Вторник, 25.01.2011, 14:50:40 | Сообщение # 1

Группа: Администраторы
Сообщений: 3869
Для начала мы заведем новую переменную, для сохранения в аккаунт:
в
Code
enum pInfo

добавим
Code
pCarKey

Теперь создадим переменные для наших загружаемых машин:
Code
enum cInfo
{
cOwned,
cModel
};
new CarInfo[1][cInfo];

и создаем
Code
forward LoadCars();

Далее перейдем к загрузке машины.

Создадим функцию

Code
public LoadCars()
{
new arrCoords[2][64];
new strFromFile2[256];
new File: file = fopen("cars.cfg", io_read);
if (file)
{
new idx;
while (idx < sizeof(CarInfo))
{
fread(file, strFromFile2);
split(strFromFile2, arrCoords, '|');
CarInfo[idx][cOwned] = strval(arrCoords[0]);
CarInfo[idx][cModel] = strval(arrCoords[1]);
idx++;
}
fclose(file);
}
return 1;
}

Создадим файл cars.cfg и закинем его в папку scriptfiles
внутри файла пропишем
0|411

Это собственно наши переменные

Теперь создадим массив с координатами машин:

Code
new Float:BuyCarsSpawn[1][4]={
{1111.3768,-1796.1268,16.5938,123.1231}
};

где 1111.3768,-1796.1268,16.5938,123.1231 - координаты x,y,z,f машины (f - угол поворота)

И загрузим машины в мод:
Добавим в

Code
OnGameModeInit

Code

LoadCars();

и сразу после этого
Code
for(new c = 0; c < sizeof(CarInfo); c++)
{
AddStaticVehicleEx(CarInfo[c][cModel], BuyCarsSpawn[c][0], BuyCarsSpawn[c][1], BuyCarsSpawn[c][2], BuyCarsSpawn[c][3], -1, -1, 600000);
}

Вставьте этот код перед всеми вашими машинами.

Теперь мы разобрались с машинами.

Добавим в

Code
OnPlayerStateChange(playerid, newstate, oldstate)
, что бы выкидывало, когда игрок садиться

после

Code
if(newstate == PLAYER_STATE_DRIVER)

Code
if(newcar < sizeof(CarInfo)&&newcar!=0)
     {
      if(newcar!=PlayerInfo[playerid][pCarKey]&&CarInfo[newcar-1][cOwned]==1)
      {
       SendClientMessage(playerid, COLOR_GREY,"Машина не продаеться");
          RemovePlayerFromVehicle(playerid);
      }
      else if(CarInfo[newcar-1][cOwned]==0)
      {
       SendClientMessage(playerid, COLOR_GREY,"Мащина продаеться вы можете купить напечатать команду /buycar");
          TogglePlayerControllable(playerid, 0);
      }
      return 1;
     }

Ну и сделаем покупку машины
Code
if(strcmp(cmd, "/buycar", true) == 0)
    {
     new newcar = GetPlayerVehicleID(playerid);
     if(newcar!=0&&newcar < sizeof(CarInfo)&&CarInfo[newcar-1][cOwned]==0)
     {
      CarInfo[newcar-1][cOwned]=1;
      PlayerInfo[playerid][pCarKey]=newcar;
      SendClientMessage(playerid, COLOR_WHITE, "Вы купили машину");
      GivePlayerMoney(playerid, -20000);
      TogglePlayerControllable(playerid, 1);
     }
    }

и продажу
Code
if(strcmp(cmd, "/sellcar", true) == 0)
    {
     CarInfo[PlayerInfo[playerid][pCarKey]-1][cOwned]=0;
     PlayerInfo[playerid][pCarKey]=0;
     SendClientMessage(playerid, COLOR_WHITE, "Вы продали машину");
     GivePlayerMoney(playerid, 20000);
     RemovePlayerFromVehicle(playerid);
     OnPropUpdate();
    }

и добавим в OnPropUpdate, для сохранения информации в файл
Code
idx = 0;
while (idx < sizeof(CarInfo))
{
new coordsstring[256];
format(coordsstring, sizeof(coordsstring), "%i|%i\n",CarInfo[idx][cOwned],CarInfo[idx][cModel]);
if(idx == 0) file2 = fopen("cars.cfg", io_write);
else file2 = fopen("cars.cfg", io_append);
fwrite(file2, coordsstring);
idx++;
fclose(file2);
}

Автор:HELKERN


zm-jail.ru

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


 
СообщениеДля начала мы заведем новую переменную, для сохранения в аккаунт:
в
Code
enum pInfo

добавим
Code
pCarKey

Теперь создадим переменные для наших загружаемых машин:
Code
enum cInfo
{
cOwned,
cModel
};
new CarInfo[1][cInfo];

и создаем
Code
forward LoadCars();

Далее перейдем к загрузке машины.

Создадим функцию

Code
public LoadCars()
{
new arrCoords[2][64];
new strFromFile2[256];
new File: file = fopen("cars.cfg", io_read);
if (file)
{
new idx;
while (idx < sizeof(CarInfo))
{
fread(file, strFromFile2);
split(strFromFile2, arrCoords, '|');
CarInfo[idx][cOwned] = strval(arrCoords[0]);
CarInfo[idx][cModel] = strval(arrCoords[1]);
idx++;
}
fclose(file);
}
return 1;
}

Создадим файл cars.cfg и закинем его в папку scriptfiles
внутри файла пропишем
0|411

Это собственно наши переменные

Теперь создадим массив с координатами машин:

Code
new Float:BuyCarsSpawn[1][4]={
{1111.3768,-1796.1268,16.5938,123.1231}
};

где 1111.3768,-1796.1268,16.5938,123.1231 - координаты x,y,z,f машины (f - угол поворота)

И загрузим машины в мод:
Добавим в

Code
OnGameModeInit

Code

LoadCars();

и сразу после этого
Code
for(new c = 0; c < sizeof(CarInfo); c++)
{
AddStaticVehicleEx(CarInfo[c][cModel], BuyCarsSpawn[c][0], BuyCarsSpawn[c][1], BuyCarsSpawn[c][2], BuyCarsSpawn[c][3], -1, -1, 600000);
}

Вставьте этот код перед всеми вашими машинами.

Теперь мы разобрались с машинами.

Добавим в

Code
OnPlayerStateChange(playerid, newstate, oldstate)
, что бы выкидывало, когда игрок садиться

после

Code
if(newstate == PLAYER_STATE_DRIVER)

Code
if(newcar < sizeof(CarInfo)&&newcar!=0)
     {
      if(newcar!=PlayerInfo[playerid][pCarKey]&&CarInfo[newcar-1][cOwned]==1)
      {
       SendClientMessage(playerid, COLOR_GREY,"Машина не продаеться");
          RemovePlayerFromVehicle(playerid);
      }
      else if(CarInfo[newcar-1][cOwned]==0)
      {
       SendClientMessage(playerid, COLOR_GREY,"Мащина продаеться вы можете купить напечатать команду /buycar");
          TogglePlayerControllable(playerid, 0);
      }
      return 1;
     }

Ну и сделаем покупку машины
Code
if(strcmp(cmd, "/buycar", true) == 0)
    {
     new newcar = GetPlayerVehicleID(playerid);
     if(newcar!=0&&newcar < sizeof(CarInfo)&&CarInfo[newcar-1][cOwned]==0)
     {
      CarInfo[newcar-1][cOwned]=1;
      PlayerInfo[playerid][pCarKey]=newcar;
      SendClientMessage(playerid, COLOR_WHITE, "Вы купили машину");
      GivePlayerMoney(playerid, -20000);
      TogglePlayerControllable(playerid, 1);
     }
    }

и продажу
Code
if(strcmp(cmd, "/sellcar", true) == 0)
    {
     CarInfo[PlayerInfo[playerid][pCarKey]-1][cOwned]=0;
     PlayerInfo[playerid][pCarKey]=0;
     SendClientMessage(playerid, COLOR_WHITE, "Вы продали машину");
     GivePlayerMoney(playerid, 20000);
     RemovePlayerFromVehicle(playerid);
     OnPropUpdate();
    }

и добавим в OnPropUpdate, для сохранения информации в файл
Code
idx = 0;
while (idx < sizeof(CarInfo))
{
new coordsstring[256];
format(coordsstring, sizeof(coordsstring), "%i|%i\n",CarInfo[idx][cOwned],CarInfo[idx][cModel]);
if(idx == 0) file2 = fopen("cars.cfg", io_write);
else file2 = fopen("cars.cfg", io_append);
fwrite(file2, coordsstring);
idx++;
fclose(file2);
}

Автор:HELKERN

Автор - admin
Дата добавления - 25.01.2011 в 14:50:40
  • Страница 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)

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

vkontakte :samp-pawno.ru: