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