RButton vk48 global MyNickNameEx RegExReplace nick global MyID getID g

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
~RButton & vk48::
global MyNickNameEx := RegExReplace(nick, "_", " ")
global MyID := getID()
global ID := getIdByPed(getTargetPed())
global NickNameEx := RegExReplace(getPlayerNameById(ID),"_"," ")
SkinExam := getTargetPlayerSkinIdById(ID)
SexSkinExam := getSexBySkin(SkinExam)
if (SexSkinExam = 1) {
Mess1 := ""
}
else if (SexSkinExam = 2) {
Mess1 := "а"
}
if (activate = 0) {
addChatMessageEx(0xBDBDBD,"{045fb4}[AHK] {BDBDBD}Пожалуйста, активируйте программу. {ffffff}Alt+1")
} else if (activate = 1) {
if (ID > -1) {
AntiCrash() ShowDialog(2, "{045fb4}[AHK] {BDBDBD}*{FF0000}" NickNameEx, "{045FB4}[1] {BDBDBD}Экзамен`n{045fb4}[2] {BDBDBD}Выдача лицензии`n{045fb4}[3] {BDBDBD}Выдача страховки`n{FF0000}Создатель Amadeo Carmone", "Закрыть")
Dialog := LineDialog()
if (!Dialog) {
return
} else if (Dialog = 1) {
if (rang < 2) {
addChatMessageEx(0xBDBDBD,"{045FB4}[AHK] {BDBDBD}Ошибка, эта функция доступна сотрудникам с должности 'Консультант'")
} else if (rang >= 2) {
SendChat("Приветствую! Меня зовут " MyNickNameEx ", с данного момента я Ваш личный инструктор.")
Sleep, 2000
SendChat("Вы на какой вид транспорта сдали теоретический экзамен?")
Sleep, 500
AddChatMessageEx("{FFFFFF}", "{FFFFFF}• {F5DEB3}[Подсказка] {FFFFFF}После ответа на данный вопрос используйте {1E90FF}'ПКМ' {FFFFFF}для продолжения.")
KeyWait, RButton, D
SendChat("Отлично, предъявите ваши личные документы, а именно Паспорт.")
Sleep, 2000
SendChat("/n Используйте для этого команды: /pass " MyID)
Sleep, 200
AddChatMessageEx("{FFFFFF}", "{FFFFFF}• {F5DEB3}[Подсказка] {FFFFFF}После просмотра документа используйте {1E90FF}'ПКМ' {FFFFFF}для продолжения.")
KeyWait, RButton, D
AntiCrash() ShowDialog(2, "{FFFFFF}Практические экзамены {1E90FF}AutoSchool", "{F5DEB3}Принять:`n{1E90FF}• {FFFFFF}Наземный транспорт`n{1E90FF}• {FFFFFF}Воздушный транспорт`n{F5DEB3}Отклонить:`n{1E90FF}• {FFFFFF}Недостаточный возраст`n{1E90FF}• {FFFFFF}NonRP NickName`n{1E90FF}• {FFFFFF}Недостаточный уровень","Выбрать")
Dialog := LineDialog()
if (!Dialog) {
return
} else if (Dialog = 2) {
LicenseForGroundTransport()
} else if (Dialog = 3) {
LicenseForAirTransport()
} else if (Dialog = 4) {
SendChat("К сожалению, чтобы сдать данный экзамен, Вам должно быть больше 16-и лет.")
Sleep, 500
SendChat("/exam")
Send, {down}
Sleep, 50
Send, {down}
Sleep, 50
Send, {enter}
Sleep, 500
SendChat("/time")
Sleep 500
SendInput, {F8}
} else if (Dialog = 6) {
SendChat("К сожалению, чтобы сдать данный экзамен, Вы должны проживать в штате больше 2-х лет.")
Sleep, 500
SendChat("/exam")
Send, {down}
Sleep, 50
Send, {down}
Sleep, 50
Send, {enter}
Sleep, 500
SendChat("/time")
Sleep 500
SendInput, {F8}
} else if (Dialog = 5) {
ArrayToSendChat(["/do Паспорт залит чернилом, данных о человеке не видно.","Простите, у Вас паспорт залит чернилом, ничем не можем помочь в таких ситуациях.","/n У Вас NonRP NickName - это означает, что Ваше игровое имя не соответствует параметрам Role Play режима.","/n Ваше игровое имя должно содержать такую форму: Nick_Name (Имя_Фамилия)","/n Вы можете изменить ваш NonRP NickName на RP NickName, используя ""Смена НонРП ника"" в меню сервера.","/n Чтобы открыть меню сервера, введите в чате команду: /menu (/mn)","/n Приятной игры на Diamond Role Play | Sapphire!"])
}
}
} else if (Dialog = 2) {
if (rang < 3) {
addChatMessageEx(0xBDBDBD,"{045FB4}[AHK] {BDBDBD}Ошибка, эта функция доступна сотрудникам с должности 'Экзаменатор'")
} else if (rang >= 3) {
AntiCrash() ShowDialog(2, "{045fb4}[AHK] {BDBDBD}Выдача лицензии", "{045FB4}[1] {BDBDBD}Лицензия на водный транспорт`n{045FB4}[2] {BDBDBD}Лицензия на оружие", "Закрыть")
if (!Dialog) {
return
} else if (Dialog = 1) {
LicenseForWaterTransport()
} else if (Dialog = 2) {
LicenseForWeapons()
}
}
} else if (Dialog = 3) {
if (rang < 4) {
addChatMessageEx(0xBDBDBD,"{045FB4}[AHK] {BDBDBD}Ошибка, эта функция доступна сотрудникам с должности 'Младший Инструктор'")
} else if (rang >= 4) {
Insurance()
}
}
} else if (ID = -1) {
AntiCrash() ShowDialog("2", "{045fb4}[AHK] {BDBDBD}Личное меню", "{045fb4}[1] {BDBDBD}Лекции", "Закрыть")
}
}
return
LicenseForGroundTransport() {
ArrayToSendChat1(["/anim 1 5","/todo Hi Carm, открой мне базу данных автошколы.*посмотрев на Carm Watch."])
Sleep, 2000
SendChat("/me провев указательным пальцем по экрану, выбрал" RP " меню очереди на экзамены.")
Sleep, 2000
SendChat("/me вызвал" RP " в базе данных " NickNameEx " на прохождение экзамена по вождению.")
Sleep, 1000
SendChat("/f Вызвал" RP " клиента " NickNameEx " на практический экзамен по категории: Наземный транспорт.")
Sleep, 2100
SendChat("Прошу Вас пройти за мной для прохождения экзамена по вождению!")
Sleep, 200
AddChatMessageEx("{FFFFFF}", "{FFFFFF}• {F5DEB3}[Подсказка] {FFFFFF}Отправляйтесь с клиентом на площадку, после чего используйте {1E90FF}'ПКМ' {FFFFFF}для продолжения.")
KeyWait, RButton, D
SendChat("Присаживайтесь в учебный автомобиль на водительское место.")
KeyWait, vk47, D
AddChatMessageEx("{FFFFFF}", "{FFFFFF}• {F5DEB3}[Подсказка] {FFFFFF}Чтобы открыть меню нарушений практического экзамена используйте: {1E90FF}/unexam")
Sleep, 2500
ArrayToSendChat(["Сейчас мы проведем экзамен на управление наземным видом транспорта.", "Если вам будет что-то непонятно говорите сразу мне, я вам помогу.", "/todo Пристегните ремень безопасности.*пристегнув ремень безопасности.", "/n Завести двигатель - CTRL. Пример отыгровки действия: /me пристегнул(-а) ремень безопасности."])
AddChatMessageEx("{FFFFFF}", "{FFFFFF}• {F5DEB3}[Подсказка] {FFFFFF}Когда клиент выполнит данное действие используйте {1E90FF}'ПКМ' {FFFFFF}для продолжения.")
KeyWait, RButton, D
SendChat("Выжимаем сцепление и включаем зажигание двигателя.")
Sleep, 2000
SendChat("/do В скважине зажигания автомобиля находится ключ с брелочком «AutoSchool».")
Sleep, 2000
SendChat("Затем потихоньку отпускаем сцепление и движемся вперед к учебной площадки!")
Sleep, 2000
SendChat("Остановитесь возле стратовой разметки и ожидайте моих дальнейших указаний!")
Sleep, 1000
NextStep := 1
loop {
if IsPlayerInRangeOfPoint(-2054.575928,-176.534698,35.920311,10) and (NextStep = 1) {
Sleep, 1000
SendChat("Проедьте по лежачим полицейским, после чего приступайте к упражнению «Змейка».")
NextStep := 2
} else if IsPlayerInRangeOfPoint(-2052.755859,-198.885147,35.927391,10) and (NextStep = 2) {
Sleep 1000
ArrayToSendChat(["/todo Приступайте к упражнению «Змейка»!*посмотрев на конусы, которые находятся впереди.", "Вам необходимо объехать все конусы, не задев их и не пересекая сплошные боковые линии."])
NextStep := 3
} else if IsPlayerInRangeOfPoint(-2055.958984,-244.708893,35.927391,7) and (NextStep = 3) {
Sleep 1000
SendChat("Великолепно! Сейчас въезжаем передом в бокс, который находится справа от Вас.")
NextStep := 4
} else if IsPlayerInRangeOfPoint(-2065.067383,-245.351425,35.920311,5) and (NextStep = 4) {
Sleep 1000
SendChat("Выезжаем задним ходом из данного места, и приступаем к следующему упражнению «Лабиринт».")
NextStep := 5
} else if IsPlayerInRangeOfPoint(-2055.958984,-244.708893,35.927391,5) and (NextStep = 5) {
Sleep, 1000
ArrayToSendChat(["/todo Следующие упражнение «Лабиринт».*посмотрев на лабиринт, который находится впереди.", "Двигаетесь вперед в направлении красных стрелок, чувствуя свои габариты."])
NextStep := 6
} else if IsPlayerInRangeOfPoint(-2035.174194, -261.058563, 35.920311,10) and (NextStep = 6) {
Sleep, 1000
ArrayToSendChat(["/todo Следующие упражнение «Правильная парковка».*указав указательным пальцем на парковочные места.", "Вы должны припарковать учебный автомобиль на необходимое парковочное место."])
NextStep := 7
} else if IsPlayerInRangeOfPoint(-2015.644287, -253.626511, 35.814171,5) and (NextStep = 7) {
Sleep, 1000
SendChat("Теперь выезжаем задним ходом из парковочного места и останавливаемся возле белой разметки.")
NextStep := 8
} else if IsPlayerInRangeOfPoint(-2027.358154, -249.712097, 35.811565,5) and (NextStep = 8) {
Sleep, 1000
ArrayToSendChat(["/todo Следующие упражнение «Эстакада».*посмотрев на эстакаду, которая находится впереди.","Заезжаем на эстакаду так, чтобы все колеса автомобиля находились на наклонной поверхности."])
NextStep := 9
} else if IsPlayerInRangeOfPoint(-2027.386719, -232.194000, 36.953644, 5) and (NextStep = 9) {
Sleep, 1000
SendChat("/todo Остановитесь возле окончательной разметки!*указав указательным пальцем на окончательную разметку.")
NextStep := 10
} else if IsPlayerInRangeOfPoint(-2027.232178, -216.687424, 35.811741, 5) and (NextStep = 10) {
Sleep, 1000
ArrayToSendChat(["/todo Хорошо, теперь поставьте автомобиль на парковку, откуда мы выезжали.*указав указательным пальцем на парковку.","/do В левой руке находится закрытый портфель с необходимыми предметами.","/me положил" RP " портфель на колени, после чего ввел" RP " секретный код от этого замка.","/do В портфеле лежат раскрытые образцы водительских прав и прочее предметы.","/todo Ожидайте пожалуйста, я оформлю Ваши водительские права!*взяв в правую руку гелевую ручку для письма.","/me быстрыми движениями правой руки, вписал" RP " необходимую информацию в водительские права.", "/me поставил" RP " на документах подпись инструктора «" MyNickNameEx "».","/do В водительских правах записанные личные данные №" ID " с датой " A_DD "/" A_MM "/" A_YYYY ".","/me положил" RP " гелевую ручку в портфель, после чего взял" RP " в правую руку водительские права.","/me передал" RP " водительские права " NickNameEx ".","/todo Поздравляю Вас с получением водительских прав!*закрыв портфель, подобрал" RP " эго в левую руку.","/exam"])
Send, {down}
Sleep, 50
Send, {enter}
Sleep, 500
SendChat("/time")
Sleep, 500
SendInput, {F8}
break
}
}
}
return
LicenseForAirTransport() {
ArrayToSendChat1(["/anim 1 5","/todo Hi Carm, открой мне базу данных автошколы.*посмотрев на Carm Watch."])
Sleep, 2000
SendChat("/me провев указательным пальцем по экрану, выбрал" RP " меню очереди на экзамены.")
Sleep, 2000
SendChat("/me вызвал" RP1 " в базе данных " NickNameEx " на прохождение экзамена по пилотированию.")
Sleep, 1000
SendChat("/f Вызвал" RP1 " клиента на практический экзамен по категории: Воздушный транспорт.")
Sleep, 2100
SendChat("Прошу Вас пройти за мной для прохождения экзамена по пилотированию!")
Sleep, 200
AddChatMessageEx("{FFFFFF}", "{FFFFFF}• {F5DEB3}[Подсказка] {FFFFFF}Отправляйтесь с клиентом на площадку, после чего используйте {1E90FF}'ПКМ' {FFFFFF}для продолжения.")
KeyWait, RButton, D
SendChat("Присаживайтесь в учебный вертолет на пилотное место.")
KeyWait, vk47, D
AddChatMessageEx("{FFFFFF}", "{FFFFFF}• {F5DEB3}[Подсказка] {FFFFFF}Чтобы открыть меню нарушений практического экзамена используйте: {1E90FF}/unexam")
Sleep, 2500
SendChat("/todo Пристегните ремень безопасности и наденьте наушники.*пристегнув ремень безопасности и надев наушники.")
Sleep, 2100
SendChat("/n Пример отыгровки действия: /me пристегнул(-а) ремень безопасности и надел(-а) наушники.")
Sleep, 200
AddChatMessageEx("{FFFFFF}", "{FFFFFF}• {F5DEB3}[Подсказка] {FFFFFF}Когда клиент выполнит данное действие используйте {1E90FF}'ПКМ' {FFFFFF}для продолжения.")
KeyWait, RButton, D
SendChat("Перед полетом Вам стоит проверить штурвал и закрылки.")
Sleep, 2100
SendChat("/do В кабине вертолета находится панель управления.")
Sleep, 2100
SendChat("/n Пример отыгровки действия: /me проверил(-а) штурвал и закрылки.")
Sleep, 200
AddChatMessageEx("{FFFFFF}", "{FFFFFF}• {F5DEB3}[Подсказка] {FFFFFF}Когда клиент выполнит данное действие используйте {1E90FF}'ПКМ' {FFFFFF}для продолжения.")
KeyWait, RButton, D
SendChat("Прекрасно, теперь заводим двигатель учебного вертолета и ожидаем некоторое время...")
Sleep, 1100
SendChat("..чтобы лопасти раскрутились до определенной скорости.")
Sleep, 200
AddChatMessageEx("{FFFFFF}", "{FFFFFF}• {F5DEB3}[Подсказка] {FFFFFF}Когда клиент выполнит данное действие используйте {1E90FF}'ПКМ' {FFFFFF}для продолжения.")
KeyWait, RButton, D
SendChat("Теперь набираем достаточную высоту, примерно выше здания автошколы.")
Sleep, 200
AddChatMessageEx("{FFFFFF}", "{FFFFFF}• {F5DEB3}[Подсказка] {FFFFFF}Когда клиент выполнит данное действие используйте {1E90FF}'ПКМ' {FFFFFF}для продолжения.")
KeyWait, RButton, D
SendChat("/todo Приступайте к упражнению «Облет объекта»!*посмотрев на площадку, которая находится внизу.")
Sleep, 2000
SendChat("Вам необходимо облететь один раз площадку автошколы, и обратно...")
Sleep, 1100
SendChat("..вернуться на взлетно-посадочную полосу.")
Sleep, 2000
SendChat("/n Инструкция управления воздушным средством:")
Sleep, 2100
SendChat("/n 'A' - повернуть влево. | 'D' - повернуть вправо. | 'Q' - обернуться влево. | 'E' - обернуться вправо.")
Sleep, 2100
SendChat("/n 'Down Page' - двигаться назад. | 'Up Page' - двигаться вперед. | 'CapsLock' - выравнивание.")
Sleep, 200
AddChatMessageEx("{FFFFFF}", "{FFFFFF}• {F5DEB3}[Подсказка] {FFFFFF}Когда клиент завершит данное упражнение используйте {1E90FF}'ПКМ' {FFFFFF}для продолжения.")
KeyWait, RButton, D
SendChat("Вы молодец! Теперь садитесь на взлетно-посадочную полосу, с которой мы взлетели.")
Sleep, 200
AddChatMessageEx("{FFFFFF}", "{FFFFFF}• {F5DEB3}[Подсказка] {FFFFFF}Когда будете находиться на взлетно-посадочной полосе используйте {1E90FF}'ПКМ' {FFFFFF}для продолжения.")
KeyWait, RButton, D
SendChat("/todo Глушим двигатель, снимаем наушники и отстегиваем ремень безопасности.*сняв наушники и отстегнув ремень.")
Sleep, 2000
SendChat("/do В левой руке находится закрытый портфель с необходимыми предметами.")
Sleep, 2000
SendChat("/me положил" RP1 " портфель на колени, после чего ввел" RP1 " секретный код от эго замков.")
Sleep, 2000
SendChat("/do В портфеле лежат раскрытые образцы лицензии пилота и прочее предметы.")
Sleep, 2000
SendChat("/todo Ожидайте пожалуйста, я оформлю Вашу лицензию пилота!*взяв в правую руку гелевую ручку для письма.")
Sleep, 2000
SendChat("/me быстрыми движениями правой руки, вписал" RP1 " необходимую информацию в лицензию пилота.")
Sleep, 2000
SendChat("/me поставил" RP1 " на документах подпись инструктора «" MyNickNameEx "».")
Sleep, 2000
SendChat("/do В лицензии пилота записанные личные данные №" NickNameID " с даты " A_DD "/" A_MM "/" A_YYYY ".")
Sleep, 2000
SendChat("/me положил" RP1 " гелевую ручку в портфель, после чего взял" RP1 " в правую руку лицензию пилота.")
Sleep, 2000
SendChat("/me передал" RP1 " лицензию пилота " NickNameEx ".")
Sleep, 2000
SendChat("/todo Поздравляю Вас с получением лицензии пилота!*закрыв портфель, подобрал" RP1 " эго в левую руку.")
Sleep, 200
return
}
LicenseForWeapons() {
LicenseWeaponsRP := ["/do На стойке находится включенный моноблок «iCarm Pro» и другие предметы.", "/todo Пожалуйста ожидайте, я оформлю Вам лицензию на оружие.*рассматривая экран моноблока.", "/do На рабочем столе моноблока находится в раскрытом виде база данных.", "/me подсунул" RP " клавиатуру к себе, разместив пальцы на нужные клавиши.", "/me выбрал" RP " в базе данных автошколы меню регистрации продажи лицензии.", "/me быстрыми движениями пальцев, ввел" RP " необходимую информацию в базу данных.", "/me подтвердил" RP " регистрацию персональных данных человека " NickNameEx ".", "/do В базе данных зарегистрирована продажа лицензии №" ID " с даты " A_DD "/" A_MM "/" A_YYYY ".", "/do На стойке находится включенный портативный термопринтер «Carm A4».", "/do Портативный принтер начал автоматический процесс печатания документа.", "/todo Благодарим Вас за покупку лицензии на оружие!*достав документ из принтера, передал" RP " эго человеку напротив.", "/selllic " ID " 2"]
ArrayToSendChat(LicenseWeaponsRP)
return
}
LicenseForWaterTransport() {
LicenseWaterRP := ["/do На стойке находится включенный моноблок «iCarm Pro» и другие предметы.", "/todo Пожалуйста ожидайте, я оформлю Вам лицензию на водный транспорт.*рассматривая экран моноблока.", "/do На рабочем столе моноблока находится в раскрытом виде база данных.", "/me подсунул" RP " клавиатуру к себе, разместив пальцы на нужные клавиши.", "/me выбрал" RP " в базе данных автошколы меню регистрации продажи лицензии.", "/me быстрыми движениями пальцев, ввел" RP " необходимую информацию в базу данных.", "/me подтвердил" RP " регистрацию персональных данных человека " NickNameEx ".", "/do В базе данных зарегистрирована продажа лицензии №" ID " с даты " A_DD "/" A_MM "/" A_YYYY ".", "/do На стойке находится включенный портативный термопринтер «Carm A4».", "/do Портативный принтер начал автоматический процесс печатания документа.", "/todo Благодарим Вас за покупку лицензии на водный транспорт!*достав документ из принтера, передал" RP " эго человеку.", "/selllic " ID " 1"]
ArrayToSendChat(LicenseWaterRP)
return
}
Insurance() {
SendChat("Вы на сколько дней желаете застраховать свое транспортное средство?")
Sleep, 200
AddChatMessageEx("{FFFFFF}", "{FFFFFF}• {F5DEB3}[Подсказка] {FFFFFF}После ответа на данный вопрос используйте {1E90FF}'ПКМ' {FFFFFF}для продолжения.")
KeyWait, RButton, D
InsuranceOne := ["/do На стойке находится включенный моноблок «iCarm Pro» и другие предметы.", "/todo Пожалуйста ожидайте, я оформлю Вам автострахование.*рассматривая экран моноблока.", "/do На рабочем столе моноблока находится в раскрытом виде база данных.", "/me подсунул" RP " клавиатуру к себе, разместив пальцы на нужные клавиши.", "/me выбрал" RP " в базе данных автошколы меню регистрации автострахования.", "/me быстрыми движениями пальцев, ввел" RP " необходимую информацию в базу данных.", "/me подтвердил" RP " регистрацию персональных данных человека " NickNameEx ".", "/do В базе данных зарегистрировано автострахование №" ID " с даты " A_DD "/" A_MM "/" A_YYYY ".", "/do На стойке находится включенный платежный мини-терминал «CarmBank».", "/do На экране платежного мини-терминала высветился QR-код транзакции.", "Пожалуйста, отсканируйте данный QR-код, воспользовавшись приложением «Carm Pay».", "/n Пример отыгровки действия: /me достал(-а) смартфон и отсканировал(-а) QR-код."]
ArrayToSendChat(InsuranceOne)
AddChatMessageEx("{FFFFFF}", "{FFFFFF}• {F5DEB3}[Подсказка] {FFFFFF}Когда игрок выполнит данное действие используйте {1E90FF}'ПКМ' {FFFFFF}для продолжения.")
KeyWait, RButton, D
InsuranceOK := ["/do Была совершена транзакция оплаты через приложение «Carm Pay».", "/do Платежный мини-терминал напечатал чек с информацией данной покупки.", "/todo Благодарим Вас за страхование транспортного средства!*достав чек из терминала, передал" RP " эго человеку."]
ArrayToSendChat(InsuranceOK)
SendInput, {F6}/insurance %ID%{Space}
return
}