000107. Обзор класса GAME
Обзор класса GAME|Всем привет! 8 уроков мы изучали некоторые возможности и особенности C#. Теперь мы будем их применять, используя библиотеку ScriptHookDotNet.|wmysterio|wmysterio||||Сегодня мы рассмотрим класс этой библиотеки -GAME. Содержит он функции, которые связаны с игровым процессом и я рассказу вам о тех, которые понял сам. Некоторые из них требуют подключить ссылку на библиотекуSystem.Windows.Forms. Сделаем это:

B добавим ссылку в коде скрипта:
cs
using System.Windows.Forms;
Теперь мы можем пользоваться функциями класса "GAME". Начнём наш обзор с функций:
``` cs /* делает затемнение экрана: / Game.FadeScreenOut(1000, true); / Здесь: 1000 - время, за которое нужно затемнить экран true - указывает, что нужно подождать пока экран не затемниться окончательно ( параметр не обязательный ) */ Пример в Sanny Builder: fade 0 1000 repeat wait 0 until fading </td></tr> <tr><td> cs /* делает осветление экрана: / Game.FadeScreenIn(1000, true); / Здесь: 1000 - время, за которое нужно осветлить экран true - указывает, что нужно подождать пока экран не осветлиться окончательно ( параметр не обязательный ) */ Пример в Sanny Builder: fade 1 1000 repeat wait 0 until fading </td></tr> <tr><td> cs /* Выводит сообщение (TEXTBOX) на экране: / Game.DisplayText("This is my text"); / Здесь: "This is my text" - необходимый нам текст */ Пример в Sanny Builder: 03E5: 'GXTNAME' // This is my text 0ACE: "This is my text" </td></tr> <tr><td> cs /* Включает или отключает максимальный лимит патронов: / Game.DisableMaxAmmoLimit = true; / Здесь: false - включает лимит true - отключает лимит */ Пример в Sanny Builder: нет</td></tr> <tr><td> cs /* Запи сывает в переменную текущий FPS: / Game.FPS; / Здесь: Возвращаемый тип: float */ Пример в Sanny Builder: нет</td></tr> <tr><td> cs /* Делает автосохранение игры. Если это делается в первый раз, то игра предоставит список слотов с сохранениями, куда нужно сохранить игру: */ Game.DoAutoSave(); Пример в Sanny Builder: 03D8: show_save_screen </td></tr> <tr><td> cs /* Получает статистику игрока с типом int: / Game.GetIntegerStatistic(IntegerStatistic.ARMED_KILLS); / Здесь: IntegerStatistic.ARMED_KILLS - объект коллекции IntegerStatistic Возвращаемый тип: int */ Пример в Sanny Builder: 0652: 1@ = integer_stat 181 </td></tr> <tr><td> cs /* Получает статистику игрока с типом float: / Game.GetFloatStatistic(FloatStatistic.MILES_BY_CAR); / Здесь: FloatStatistic.MILES_BY_CAR - объект коллекции FloatStatistic Возвращаемый тип: float */ Пример в Sanny Builder: 0653: 0@ = float_stat 21 </td></tr> <tr><td> cs /* делает затемнение экрана: / Game.FadeScreenOut(1000, true); Game.FadeScreenOut(1000); / Здесь: 1000 - время, за которое нужно затемнить экран true - указывает, что нужно подождать пока экран не затемниться окончательно(параметр не обязательный, но рекомендуемый) */ Пример в Sanny Builder: fade 0 1000 repeat wait 0 until fading </td></tr> <tr><td> cs /* делает осветление экрана: / Game.FadeScreenIn(1000, true); Game.FadeScreenIn(1000); / Здесь: 1000 - время, за которое нужно осветлить экран true - указывает, что нужно подождать пока экран не осветлиться окончательно(параметр не обязательный, но рекомендуемый) */ Пример в Sanny Builder: fade 1 1000 repeat wait 0 until fading </td></tr> <tr><td> cs /* Выводит сообщение (TEXTBOX) на экране: / Game.DisplayText("This is my text"); / Здесь: "This is my text" - необходимый нам текст */ Пример в Sanny Builder: 03E5: 'GXTNAME' // This is my text 0ACE: "This is my text" </td></tr> <tr><td> cs /* Включает/отключает максимальный лимит патронов: / Game.DisableMaxAmmoLimit = true; / Здесь: false - включает лимит true - отключает лимит */ Пример в Sanny Builder: нет</td></tr> <tr><td> cs /* Записывает в переменную текущий FPS: / Game.FPS; / Здесь: Возвращаемый тип: float */ Пример в Sanny Builder:нет</td></tr> <tr><td> cs /* Делает автосохранение игры. При первом использовании игра предоставит выбор слота для сохранения: */ Game.DoAutoSave(); Пример в Sanny Builder: 03D8: show_save_screen </td></tr> <tr><td> cs /* Получает статистику игрока с типом int: / Game.GetIntegerStatistic(IntegerStatistic.ARMED_KILLS); / Здесь: IntegerStatistic.ARMED_KILLS - объект коллекции IntegerStatistic Возвращаемый тип: int */ Пример в Sanny Builder: 0652: 1@ = integer_stat 181 </td></tr> <tr><td> cs /* Получает статистику игрока с типом float: / Game.GetFloatStatistic(FloatStatistic.MILES_BY_CAR); / Здесь: FloatStatistic.MILES_BY_CAR - объект коллекции FloatStatistic Возвращаемый тип: float */ Пример в Sanny Builder: 0653: 0@ = float_stat 21 </td></tr> <tr><td> cs /* Возвращает директорию, куда установлена игра: / Game.InstallFolder; / Здесь: Возвращаемый тип: string */ Пример в Sanny Builder: нет</td></tr> <tr><td> cs /* Проверка: "игра запущена в полный экран?": / Game.isFullscreen / Здесь: Возвращаемый тип: bool */ Пример в Sanny Builder: нет</td></tr> <tr><td> cs /* Проверка: "Нажал ли игрок игровую клавишу - Атаковать": / Game.isGameKeyPressed(GameKey.Attack) / Здесь: GameKey.Attack - элемент коллекции GameKey Возвращаемый тип: bool */ Пример в Sanny Builder: 00E1: player 0 pressed_key 17 </td></tr> <tr><td> cs /* Проверка: "Нажал ли игрок конкретную клавишу - F4": / Game.isKeyPressed(Keys.F4) / Здесь: Keys.F4 - элемент коллекции Keys Возвращаемый тип: bool */ Пример в Sanny Builder: 0AB0: key_pressed 115 // F4 </td></tr> <tr><td> cs /* Проверка: "Режим игры - мультиплеер?": / Game.isMultiplayer / Здесь: Возвращаемый тип: bool */ Пример в Sanny Builder: нет</td></tr> <tr><td> cs /* Узнать текущего локального игрока: / GTA.Player MyPlayer = Game.LocalPlayer; / Здесь: MyPlayer - экземпляр класса GTA.Player */ Пример в Sanny Builder: $PLAYER_CHAR </td></tr> <tr><td> cs /* Останавливает игру: / Game.Pause(); / Важно! Как и SannyBuilder, можно остановить игру. Как её продолжить я пока не знаю. */ Пример в Sanny Builder: 015D: set_gamespeed 0.0 </td></tr> <tr><td> cs /* Проверка: "Игра остановлена?": / Game.Paused / Здесь: Возвращаемый тип: bool */ Пример в Sanny Builder: нет</td></tr> <tr><td> cs /* Проигрывает мелодию события: / Game.PlayAudioEvent("EventName"); / Здесь: EventName - Имя события(string) */ Пример в Sanny Builder: 018C: play_sound 1052 at 0.0 0.0 0.0 </td></tr> <tr><td> cs /* запускает главную мелодию GTA 4 ( при загрузке слышно ): */ Game.PlayCreditsMusic(); Пример в Sanny Builder: 0952: load_soundtrack 1 0954: start_playing_loaded_soundtrack </td></tr> <tr><td> cs /* Количество игроков ( в мультиплеере, наверное ): / Game.PlayerCount; / Здесь: Возвращаемый тип: int */ Пример в Sanny Builder: нет</td></tr> <tr><td> cs /* Получить список игроков ( в мультиплеере наверное ): / Game.PlayerList; / Здесь: Возвращаемый тип: массив класса Player */ Пример в Sanny Builder: нет</td></tr> <tr><td> cs /* Проигрывает определённый звук: / Game.PlayFrontendSound("FrontedSoud"); / Здесь: FrontedSoud - имя звука( string ) */ Пример в Sanny Builder: 03D1: play_wav 1 </td></tr> <tr><td> cs /* Проиг рывает игровой звук: / Game.PlayGameSound("GameSound"); / Здесь: GameSound - имя звука(string) */ Пример в Sanny Builder: 0394: play_music 2 </td></tr> <tr><td> cs /* Задать тон нажатия клавиш телефона Нико: / Game.PlayPhoneKeypadTone(2); / Здесь: 2 - номер тона(int) */ Пример в Sanny Builder: нет</td></tr> <tr><td> cs /* Заставляет телефон Нико звонить: / Game.PreviewRingtone(2); / Здесь: 2 - ID мелодии звонка(int) */ Пример в Sanny Builder: нет</td></tr> <tr><td> cs /* Устанавливает и считывает масштаб радара: / Game.RadarZoom = 16; / Здесь: 16 - зум(в процентах) (int) */ Пример в Sanny Builder: 075B: zoom_radar 16 </td></tr> <tr><td> cs /* Задать/узнать текущую радиостанцию: / Game.RadioStation = RadioStation.Vladivostok; RadioStation MyRadio = Game.RadioStation; / Здесь: RadioStation.Vladivostok и MyRadio - элемент коллекции RadioStation */ Пример в Sanny Builder: 041E: set_radio_station 12 051E: 0@ = get_current_radio_station </td></tr> </tbody></table> Это не полный список функций класса**GAME**. Я предоставил те, которые сам понял или рассмотрел. Если узнаю как работают и для чего остальные - немедленно напишу. Получив эти данные мы можем написать простой пример использования их. Давайте напишем скрипт, что бы при нажатии кнопки <kbd>F4` нам появлялось окно с сохранением: <table class="table table-bordered"></thead> <tr><th>C#</th><th>Аналог в SannyBuilder</th></tr> <tr><td> cs using System; using System.Windows.Forms; using GTA; namespace TestScript { public class Thread : Script { public Thread() { while (true) { if ( Game.isKeyPressed(Keys.F4) ) { Game.DoAutoSave(); } Wait(0); } } } } </td><td> {$CLEO} 0000: thread 'Thread' while true if 0AB0: key_pressed 115 // F4 then 03D8: show_save_screen end wait 0 end </td></tr> </tbody></table> Теперь в GTA 4 можно сохраняться в любом месте, нажав клавишу <kbd>F4`! Как видите, зная функции GTA 4, мы можем делать скрипты не хуже GTA SA, а то и лучше! На этом урок окончен! Надеюсь, эта информация была для вас полезной! ;)|1335|1|0|43771574`png`482`400`400`331``\||obzor_klassa_game|1552382469 |