shape1
shape2
shape3
shape4
shape7
shape8

[Мануал] Система номеров как на GreenTech RP


Dima12

Новичок
Пользователь
18.08.2016
101
2
0
Игрок
Добрый вечер, форумчане! Сегодня я научу вас делать систему номеров как на GRTRP.

Что нам для это понадобиться:

- Моделька с txd sa plate текстурами. (Скрины ниже)

mxINI либо mySQL.

Приступим.

В начало мода:

#include
#define DIA_SET 0
#define DIA_VIB 1
#define DIA_SET1 2
#define VEHICLES 10


Ко всем new

new Text3D:dt[VEHICLES];


 В public OnGameModeInit(после всего транспорта): 

LoadNumbers();


В public OnPlayerCommandText: 

if(strcmp("/setnum", cmdtext, true, 7) == 0)
{
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,0x00FF00AA,"Вы не в транспорте!");
ShowPlayerDialog(playerid, DIA_VIB, DIALOG_STYLE_LIST, "Выбирите тип","3d номера\nОбычные","Выбрать","Отмена");
return 1;
}  


В public OnDialogResponse: 

if(dialogid == DIA_VIB)
{
if(response)
{
if(listitem == 0) ShowPlayerDialog(playerid, DIA_SET1, DIALOG_STYLE_INPUT, "Номера(3d)","Введите номер для автомобиля","Установить","Отмена");
if(listitem == 1) ShowPlayerDialog(playerid, DIA_SET, DIALOG_STYLE_INPUT, "Номера(Обычные)","Введите номер для автомобиля","Установить","Отмена");
}
}
if(dialogid == DIA_SET1)
{
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIA_SET1, DIALOG_STYLE_INPUT, "Номера(3d)","Введите номер для автомобиля","Установить","Отмена");
new vid = GetPlayerVehicleID(playerid);
new Str[10];
new File1 = ini_openFile("num(3d).ini");
format(Str,10,"%d",vid);
ini_setString(File1,Str,inputtext);
ini_closeFile(File1);
Delete3DTextLabel(dt[vid]);
dt[vid] = Create3DTextLabel(inputtext, 0xFFFFFFFF, 0.0, 0.0, 0.0, 50.0, 0, 1 );
Attach3DTextLabelToVehicle(dt[vid], vid, 0.0, 0.0, 1.0);
}
else { }
}
if(dialogid == DIA_SET)
{
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIA_SET, DIALOG_STYLE_INPUT, "Номера","Введите номер для автомобиля","Установить","Отмена");
new vid = GetPlayerVehicleID(playerid),Str[10], Float:x, Float:y, Float:z, Float:ang;
new File = ini_openFile("num.ini");
format(Str,10,"%d",vid);
ini_setString(File,Str,inputtext);
ini_closeFile(File);
SetVehicleNumberPlate(vid, inputtext);
GetVehiclePos(vid, x,y,z);
GetVehicleZAngle(vid,ang);
SetVehicleToRespawn(vid);
SetVehiclePos(vid,x,y,z);
PutPlayerInVehicle(playerid,vid,0);
SetVehicleZAngle(vid,ang);
SendClientMessage(playerid, 0xFFFFFFFF, "Номера на автомобиль установлены!");
}
else { }
}  


В конец мода: 

stock LoadNumbers()
{
new File = ini_openFile("num.ini");
new Str[10], Str2[25];
for(new i = 0; i < VEHICLES; i++)
{
format(Str,10,"%d",i);
ini_getString(File,Str, Str2);
SetVehicleNumberPlate(i, Str2);
}
ini_closeFile(File);
new File1 = ini_openFile("num(3d).ini");
new Str3[10], Str4[25];
for(new i = 0; i < VEHICLES; i++)
{
format(Str3,10,"%d",i);
ini_getString(File1,Str3, Str4);
dt = Create3DTextLabel(Str4, 0xFFFFFFFF, 0.0, 0.0, 0.0, 50.0, 0, 1 );
Attach3DTextLabelToVehicle(dt, i, 0.0, 0.0, 1.0);
}
ini_closeFile(File1);
}
 


Табулировать вам придётся самим

Если, что-то не так - пишите.

Автор: Никита Зайцев

Прошу администрацию поправить мои ошибки (в коде)

Моделька с txd - sa plate

]https://www.gtavicecity.ru/gta-san-andreas/cars/82016-volkswagen-passat-dps.html








Итог

Код:
https://pp.userapi.com/c840222/v840222010/17eb3/ak3bqeot5q8.jpg
 
Последнее редактирование модератором:

Batka1337

Хацкер-программист
Пользователь
08.12.2014
363
154
0
26
Код написан по принципу: меньше строк - больше оптимизация?

 

Dima12

Новичок
Пользователь
18.08.2016
101
2
0
Игрок
времени не было, просто всё взял и скопил из pawno. Всё вот-так получилось(.  Думаю люди смогут разделить строки.

 
Последнее редактирование модератором:

noname_idk

Гуру
Пользователь
19.07.2015
4 046
7
787
0
Скриптер
Думаю стоило бы добавить, что количество автомобилей, на которые можно установить номера, ограничены, и их количество можно менять. А лучше вместо VEHICLES использовать уже известный нам MAX_VEHICLES.

Из принципа не поставлю плюсик. Уж табуляцию-то могли и настроить. Поправил ее.

Дополнение к сообщению:
И да, было бы неплохо залить модельку на какое-нибудь облако, или диск, допустимые едиными правилами форума.

 

Dima12

Новичок
Пользователь
18.08.2016
101
2
0
Игрок
@Elrmrnt-Kritik, В следующий раз, исправлю все свои ошибки описаные в этом посте. Спасибо за критику. Этим вы мне только помогаете. И да вроде таких постов больше на просторах гугла я не видел.. Эксклюзив, почти... xd

 
Последнее редактирование модератором:

SweetyDeveloper

Освоившийся
Пользователь
09.08.2016
320
1
48
0
25
@Dima12, уже было на форуме.
По теме: нету сохранения после рестарта. 

 

ac1nve

Продвинутый
Пользователь
23.02.2016
591
231
0
@Dima12,можно, но здесь есть люди, которые только начали изучать pawn. Поэтому они не смогут это сделать. 

 
Последнее редактирование модератором:

Drujok

Освоившийся
Пользователь
04.07.2017
26
1
21
0
Помогите Вылезает окно прекращение работы что делать?

 

noname_idk

Гуру
Пользователь
19.07.2015
4 046
7
787
0
Скриптер
@Drujok, искать пропущенную строку, критическую ошибку (например, если неправильно использовать switch, зачастую происходит завершение работы компилятора), или длинную строку. 

 

Drujok

Освоившийся
Пользователь
04.07.2017
26
1
21
0
@Elrmrnt-Kritik,Все загрузил как показано в начале и создал в СкриптФайл num.ini и num(3d).ini не чего не вижу пропущеного или длиннго что делать?

@Elrmrnt-Kritik,Все я нашел ошибку скомпилировад без ошибок но пишу /setnum Вылазит ввожу номер а не чего не работает что делать?

 
Последнее редактирование модератором:

Drujok

Освоившийся
Пользователь
04.07.2017
26
1
21
0
@Dima12,Обычная из Мода Green Tech "Ctrl" Ключ, Завести Двиготель "N" 

MxINI

 
Последнее редактирование модератором:

Dima12

Новичок
Пользователь
18.08.2016
101
2
0
Игрок
@Elrmrnt-Kritik, Людям, качать придется. Что-бы посмотреть. А там - со скринами. Логично же. 

 
G

Guest

Гость
Гость
А нужно на модельках стерать стандартные номера?

 

Remmi_Channel

Ничего особенного, просто создаю проект и помогаю
Пользователь
27.10.2015
362
1
37
0
22
,да, конечно и нужно ставить эти номера на модельки

Дополнение к сообщению:

@Drujok, возможно диалоги пересекаются, если я правильно понял.

 

Loloshka

Новичок
Пользователь
11.07.2017
0
2
0
Я пишу /setnum у меня появляется диалог "Не правильный пароль" Если я вожу туда свой пароль от аккаунт у меня персонаж спавнится,как исправить подскажите пожалуйста.

 

Remmi_Channel

Ничего особенного, просто создаю проект и помогаю
Пользователь
27.10.2015
362
1
37
0
22
@Loloshka, у вас "переплетаются диалоги", попробуйте вместо 

#define DIA_SET 0
#define DIA_VIB 1
#define DIA_SET1 2
#define VEHICLES 10  
Поставить это 

Код:
#define DIA_SET 100
#define DIA_VIB 101
#define DIA_SET1 102
#define VEHICLES 103 
 

Dima12

Новичок
Пользователь
18.08.2016
101
2
0
Игрок
, также будет работать и на SA номерах