• Страница 1 из 1
  • 1
Модератор форума: [east_side]_trane, drifter-dron, valych, admin  
Урок по созданию техосмотра с сохранением номера [0.3с]
adminДата: Среда, 20.04.2011, 04:14:04 | Сообщение # 1

Группа: Администраторы
Сообщений: 3869
И так все доброго дня, долго не хотел делать этот урок))
Но надо
И так начну сначала, это команда сделана для тех у кого есть автосалон, то есть загрузка авто на продажу идёт из файла ( ЛАРП и т.п. )

И так:
В enum cInfo добавляем:

Code

cTeh,
cNomer,

В LoadCar(); Или у вас другой паблик, делаем по своему
Code

new arrCoords[15][64];// Как получить 15? Надо взять последний компонет( будем называть его так xD ) и прибавить к нему 1  
CarInfo[idx][cNomer] = strval(arrCoords[13]);// где 13 это последний компонет, думаю там будет понятно
CarInfo[idx][cTeh] = strval(arrCoords[14]);// тоже что и 13  

В OnPropUpdate, ищем всё что связанно с машинами, и добавляем туда
Code

CarInfo[idx][cNomer],//13
CarInfo[idx][cTeh]);//14  

Так же прибавляем к такой строчке ( Примерно такой )
Code

format(coordsstring, sizeof(coordsstring), "%d,%f,%f,%f,%f,%d,%d,%s,%s,%d,%s,%d,%d,%d\n",  
%d,%d// и в конце должна стоять \n  

Далее в OnGameModInit вставляем

Code

for(new i = 7; i <91; i++)// тут 7 ид авто с которого начинаются авто на продажу, 91 последняя машина на продажу
{
if(CarInfo[i][cTeh] == 1)
{
         format(string,sizeof(string),"{000000}SA %d RC",CarInfo[i][cNomer]);
         SetVehicleNumberPlate(i,string);
         SetVehicleToRespawn(i);
}
else
{
format(string,sizeof(string),"  ",i);
         SetVehicleNumberPlate(i,string);
         SetVehicleToRespawn(i);
}
}  

Далее в public OnVehicleDeath вставляем это

Code

new string[256];
for(new i = 7; i <91; i++)// опять же , 7 ид первой машины на продажу, 91 последней  
{
if(CarInfo[i][cTeh] == 1)
{
         format(string,sizeof(string),"{000000}SA %d RC",CarInfo[i][cNomer]);
         SetVehicleNumberPlate(i,string);
}
else
{
format(string,sizeof(string),"  ",i);
         SetVehicleNumberPlate(i,string);
}
}  

В OnPlayerCommandText добавляем саму команду получения номера

Code

if (strcmp("/regveh", cmdtext, true, 10) == 0)
     {
        new v = GetPlayerVehicleID(playerid);
        new Float:hp;
        if (PlayerToPointS(4.0, playerid, 209.0753,-8.2579,2.5565) && IsAnOwnableCar(v))// Ваши координаты, IsAnOwnableCar это проверка на машину если она на продажу, если не нужна удалите
         {
         if(CarInfo[v][cOwned] != 1)
        {
        SendClientMessage(playerid, COLOR_LIGHTRED, "(( Это авто, невозможно зарегистрировать на вас ))");
        return 1;
        }
        GetVehicleHealth(v, hp);
        if(hp < 950)// проверка на хп
        {
        SendClientMessage(playerid, COLOR_LIGHTRED, " Ваше транспортное стредство не прошло техосмотр ");
        return 1;
        }
        if(!IsPlayerInAnyVehicle(playerid))
        {
        SendClientMessage(playerid, COLOR_LIGHTRED, " Техосмотр проходят с машиной ");
        return 1;
        }
        if(CarInfo[v][cTeh]==1)// проверка на техосмотр
        {
        SendClientMessage(playerid, COLOR_LIGHTRED, " Вы уже прошли техосмотр ");
        return 1;
        }
        CarInfo[v][cTeh]=1;
        new randnumber = 100 + random(999);
        CarInfo[v][cNomer] = randnumber;
        SetTimerEx("Tehocmotp",33000,false, "i", playerid);
        SendClientMessage(playerid, COLOR_GREEN, "Ожидайте идёт техосмотр (( 2-3 минуты ))" );
        TogglePlayerControllable(playerid, 0);
        OnPropUpdate();
        return 1;
       }
     return 1;
     }

Дальше в конец мода добавляем паблик

Code

forward Tehocmotp(playerid);
public Tehocmotp(playerid)
{
     if(IsPlayerConnected(playerid))
     {
         new string[256];
         new v = GetPlayerVehicleID(playerid);
         SendClientMessage(playerid, COLOR_GRAD1, " Вы успешно прошли технический осмотр транспорта! ");
         new Float:x,Float:y,Float:z,Float:ang;
         new Float:a;
         GetVehiclePos(v, x, y, z);
         GetVehicleZAngle(v, a);
         CarInfo[v][cLocationx] = x;
         CarInfo[v][cLocationy] = y;
         CarInfo[v][cLocationz] = z;
         CarInfo[v][cAngle] = a;
         format(string,sizeof(string)," На вашу машину поставлены номера: SA %d RC",CarInfo[v][cNomer]);
         SendClientMessage(playerid,COLOR_YELLOW,string);
         format(string,sizeof(string)," {000000}SA %d RC",CarInfo[v][cNomer]);
         SetVehicleNumberPlate(v,string);
         GetVehiclePos(GetPlayerVehicleID(playerid),x,y,z);
         GetVehicleZAngle(GetPlayerVehicleID(playerid),ang);
         SetVehicleToRespawn(GetPlayerVehicleID(playerid));
         SetVehiclePos(GetPlayerVehicleID(playerid),x,y,z);
         PutPlayerInVehicle(playerid,GetPlayerVehicleID(playerid),0);
         SetVehicleZAngle(GetPlayerVehicleID(playerid),ang);
         TogglePlayerControllable(playerid, 1);
     }
     return 1;
}

Ну вот вроде и всё, осталось только добавить в команду продажи авто, перед OnPropUpdate
Code

CarInfo[cTeh] = 0;
CarInfo[cNomer] = 0;

Урок написал Vovan228



zm-jail.ru

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


 
СообщениеИ так все доброго дня, долго не хотел делать этот урок))
Но надо
И так начну сначала, это команда сделана для тех у кого есть автосалон, то есть загрузка авто на продажу идёт из файла ( ЛАРП и т.п. )

И так:
В enum cInfo добавляем:

Code

cTeh,
cNomer,

В LoadCar(); Или у вас другой паблик, делаем по своему
Code

new arrCoords[15][64];// Как получить 15? Надо взять последний компонет( будем называть его так xD ) и прибавить к нему 1  
CarInfo[idx][cNomer] = strval(arrCoords[13]);// где 13 это последний компонет, думаю там будет понятно
CarInfo[idx][cTeh] = strval(arrCoords[14]);// тоже что и 13  

В OnPropUpdate, ищем всё что связанно с машинами, и добавляем туда
Code

CarInfo[idx][cNomer],//13
CarInfo[idx][cTeh]);//14  

Так же прибавляем к такой строчке ( Примерно такой )
Code

format(coordsstring, sizeof(coordsstring), "%d,%f,%f,%f,%f,%d,%d,%s,%s,%d,%s,%d,%d,%d\n",  
%d,%d// и в конце должна стоять \n  

Далее в OnGameModInit вставляем

Code

for(new i = 7; i <91; i++)// тут 7 ид авто с которого начинаются авто на продажу, 91 последняя машина на продажу
{
if(CarInfo[i][cTeh] == 1)
{
         format(string,sizeof(string),"{000000}SA %d RC",CarInfo[i][cNomer]);
         SetVehicleNumberPlate(i,string);
         SetVehicleToRespawn(i);
}
else
{
format(string,sizeof(string),"  ",i);
         SetVehicleNumberPlate(i,string);
         SetVehicleToRespawn(i);
}
}  

Далее в public OnVehicleDeath вставляем это

Code

new string[256];
for(new i = 7; i <91; i++)// опять же , 7 ид первой машины на продажу, 91 последней  
{
if(CarInfo[i][cTeh] == 1)
{
         format(string,sizeof(string),"{000000}SA %d RC",CarInfo[i][cNomer]);
         SetVehicleNumberPlate(i,string);
}
else
{
format(string,sizeof(string),"  ",i);
         SetVehicleNumberPlate(i,string);
}
}  

В OnPlayerCommandText добавляем саму команду получения номера

Code

if (strcmp("/regveh", cmdtext, true, 10) == 0)
     {
        new v = GetPlayerVehicleID(playerid);
        new Float:hp;
        if (PlayerToPointS(4.0, playerid, 209.0753,-8.2579,2.5565) && IsAnOwnableCar(v))// Ваши координаты, IsAnOwnableCar это проверка на машину если она на продажу, если не нужна удалите
         {
         if(CarInfo[v][cOwned] != 1)
        {
        SendClientMessage(playerid, COLOR_LIGHTRED, "(( Это авто, невозможно зарегистрировать на вас ))");
        return 1;
        }
        GetVehicleHealth(v, hp);
        if(hp < 950)// проверка на хп
        {
        SendClientMessage(playerid, COLOR_LIGHTRED, " Ваше транспортное стредство не прошло техосмотр ");
        return 1;
        }
        if(!IsPlayerInAnyVehicle(playerid))
        {
        SendClientMessage(playerid, COLOR_LIGHTRED, " Техосмотр проходят с машиной ");
        return 1;
        }
        if(CarInfo[v][cTeh]==1)// проверка на техосмотр
        {
        SendClientMessage(playerid, COLOR_LIGHTRED, " Вы уже прошли техосмотр ");
        return 1;
        }
        CarInfo[v][cTeh]=1;
        new randnumber = 100 + random(999);
        CarInfo[v][cNomer] = randnumber;
        SetTimerEx("Tehocmotp",33000,false, "i", playerid);
        SendClientMessage(playerid, COLOR_GREEN, "Ожидайте идёт техосмотр (( 2-3 минуты ))" );
        TogglePlayerControllable(playerid, 0);
        OnPropUpdate();
        return 1;
       }
     return 1;
     }

Дальше в конец мода добавляем паблик

Code

forward Tehocmotp(playerid);
public Tehocmotp(playerid)
{
     if(IsPlayerConnected(playerid))
     {
         new string[256];
         new v = GetPlayerVehicleID(playerid);
         SendClientMessage(playerid, COLOR_GRAD1, " Вы успешно прошли технический осмотр транспорта! ");
         new Float:x,Float:y,Float:z,Float:ang;
         new Float:a;
         GetVehiclePos(v, x, y, z);
         GetVehicleZAngle(v, a);
         CarInfo[v][cLocationx] = x;
         CarInfo[v][cLocationy] = y;
         CarInfo[v][cLocationz] = z;
         CarInfo[v][cAngle] = a;
         format(string,sizeof(string)," На вашу машину поставлены номера: SA %d RC",CarInfo[v][cNomer]);
         SendClientMessage(playerid,COLOR_YELLOW,string);
         format(string,sizeof(string)," {000000}SA %d RC",CarInfo[v][cNomer]);
         SetVehicleNumberPlate(v,string);
         GetVehiclePos(GetPlayerVehicleID(playerid),x,y,z);
         GetVehicleZAngle(GetPlayerVehicleID(playerid),ang);
         SetVehicleToRespawn(GetPlayerVehicleID(playerid));
         SetVehiclePos(GetPlayerVehicleID(playerid),x,y,z);
         PutPlayerInVehicle(playerid,GetPlayerVehicleID(playerid),0);
         SetVehicleZAngle(GetPlayerVehicleID(playerid),ang);
         TogglePlayerControllable(playerid, 1);
     }
     return 1;
}

Ну вот вроде и всё, осталось только добавить в команду продажи авто, перед OnPropUpdate
Code

CarInfo[cTeh] = 0;
CarInfo[cNomer] = 0;

Урок написал Vovan228


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

ps798829

(Среда 08:23:47)

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)

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

vkontakte :samp-pawno.ru: