Обзор класса 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 - отключает лимит */
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"
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
</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