~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
}