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

Last updated