Рейтинг - 5.0 (2)

Всем привет! 8 уроков мы изучали некоторые возможности и особенности C#. Теперь мы будем их применять, используя библиотеку ScriptHookDotNet.

Сегодня мы рассмотрим класс этой библиотеки - GAME. Содержит он функции, которые связаны с игровым процессом и я рассказу вам о тех, которые понял сам. Некоторые из них требуют подключить ссылку на библиотеку System.Windows.Forms. Сделаем это:

B добавим ссылку в коде скрипта:

using System.Windows.Forms;

Теперь мы можем пользоваться функциями класса "GAME". Начнём наш обзор с функций:

/* делает затемнение экрана: */
Game.FadeScreenOut(1000, true);
/* Здесь: 
1000 - время, за которое нужно затемнить экран
true - указывает, что нужно подождать пока экран не затемниться окончательно ( параметр не обязательный )
*/
Пример в Sanny Builder:
fade 0 1000
repeat
wait 0
until fading
/* делает осветление экрана: */
Game.FadeScreenIn(1000, true);
/* Здесь: 
1000 - время, за которое нужно осветлить экран
true - указывает, что нужно подождать пока экран не осветлиться окончательно ( параметр не обязательный )
*/
Пример в Sanny Builder:
fade 1 1000
repeat
wait 0
until fading
/* Выводит сообщение (TEXTBOX) на экране: */
Game.DisplayText("This is my text");
/* Здесь: 
"This is my text" - необходимый нам текст
*/
Пример в Sanny Builder:
03E5: 'GXTNAME' // This is my text
0ACE: "This is my text"
/* Включает или отключает максимальный лимит патронов: */
Game.DisableMaxAmmoLimit = true;
/* Здесь: 
false - включает лимит
true - отключает лимит
*/
Пример в Sanny Builder: нет
/* Записывает в переменную текущий FPS: */
Game.FPS;
/* Здесь: 
Возвращаемый тип: float
*/
Пример в Sanny Builder: нет
/* Делает автосохранение игры.
Если это делается в первый раз, то игра предоставит список слотов
с сохранениями, куда нужно сохранить игру: */
Game.DoAutoSave();
Пример в Sanny Builder:
03D8: show_save_screen
/* Получает статистику игрока с типом int: */
Game.GetIntegerStatistic(IntegerStatistic.ARMED_KILLS);
/* Здесь: 
IntegerStatistic.ARMED_KILLS - объект коллекции IntegerStatistic

Возвращаемый тип: int
*/
Пример в Sanny Builder:
0652: 1@ = integer_stat 181
/* Получает статистику игрока с типом float: */
Game.GetFloatStatistic(FloatStatistic.MILES_BY_CAR);
/* Здесь: 
FloatStatistic.MILES_BY_CAR - объект коллекции FloatStatistic

Возвращаемый тип: float
*/
Пример в Sanny Builder:
0653: 0@ = float_stat 21
/* : */

/* Здесь: 

*/
Пример в Sanny Builder:
/* : */

/* Здесь: 

*/
Пример в Sanny Builder:
/* : */

/* Здесь: 

*/
Пример в Sanny Builder:
Функция Описание: Параметры:
Game.FadeScreenOut(1000, true); 
  
или

Game.FadeScreenOut(1000); 
делает затемнение экрана 1000 - время, за которое нужно затемнить экран
true - указывает, что нужно подождать пока экран не затемниться окончательно(параметр не обязательный, но рекомендуемый)

Примеры в SannyBuilder:
fade 0 1000

repeat
wait 0
until fading
Game.FadeScreenIn(1000, true);

или

Game.FadeScreenIn(1000);
делает осветление экрана 1000 - время, за которое нужно осветлить экран
true - указывает, что нужно подождать пока экран не осветлиться окончательно(параметр не обязательный, но рекомендуемый)

Примеры в SannyBuilder:
fade 1 1000

repeat
wait 0
until fading
Game.DisplayText("This is my text"); Выводит сообщение (TEXTBOX) на экране This is my text - необходимый нам текст

Примеры в SannyBuilder:
03E5: 'GXTNAME' // This is my text
0ACE: "This is my text"
Game.DisableMaxAmmoLimit = true; Включает/отключает максимальный лимит патронов false - включает лимит
true - отключает лимит

Примеры в SannyBuilder: нет
Game.FPS; Записывает в переменную текущий FPS Возвращаемый тип: float

Примеры в SannyBuilder: нет
Game.DoAutoSave(); Делает автосохранение игры(если это делается в первый раз, то игра предоставит список слотов с сохранениями, куда нужно сохранить игру) Примеры в SannyBuilder:
 
03D8: show_save_screen
Game.GetIntegerStatistic(IntegerStatistic.ARMED_KILLS); Получает статистику игрока с типом int IntegerStatistic.ARMED_KILLS - объект коллекции IntegerStatistic

Возвращаемый тип: int

Примеры в SannyBuilder:
0652: 1@ = integer_stat 181
Game.GetFloatStatistic(FloatStatistic.MILES_BY_CAR);            Получает статистику игрока с типом float FloatStatistic.MILES_BY_CAR - объект коллекции FloatStatistic

Возвращаемый тип: float

Примеры в SannyBuilder:
0653: 0@ = float_stat 21
Game.InstallFolder; Считывает директорию, куда установлена игра Возвращаемый тип: string

Примеры в SannyBuilder: нет
Game.isFullscreen Проверка: "игра запущена в полный экран?" Возвращаемый тип: bool

Примеры в SannyBuilder: нет
Game.isGameKeyPressed(GameKey.Attack) Проверка: "Нажал ли игрок игровую клавишу - Атаковать" GameKey.Attack - элемент коллекции GameKey

Возвращаемый тип: bool

Примеры в SannyBuilder:
00E1:   player 0 pressed_key 17
Game.isKeyPressed(Keys.F4) Проверка: "Нажал ли игрок конкретную клавишу - F4" Keys.F4 - элемент коллекции Keys

Возвращаемый тип: bool

Примеры в SannyBuilder:
0AB0:  key_pressed 115 // F4
Game.isMultiplayer Проверка: "Режим игры - мультиплеер?" Возвращаемый тип: bool

Примеры в SannyBuilder: нет
GTA.Player MyPlayer = Game.LocalPlayer; Узнать текущего локального игрока MyPlayer - экземпляр класса GTA.Player

Примеры в SannyBuilder:
$PLAYER_CHAR
Game.Pause(); Останавливает игру Примеры в SannyBuilder:
015D: set_gamespeed 0.0
Важно! Как и SannyBuilder, можно остановить игру, но как её продолжить я пока не знаю.
Game.Paused Проверка: "Игра остановлена?" Возвращаемый тип: bool

Примеры в SannyBuilder: нет
Game.PlayAudioEvent("EventName"); Проигрывает мелодию события EventName - Имя события(string)

Примеры в SannyBuilder:
018C: play_sound 1052 at 0.0 0.0 0.0
Game.PlayCreditsMusic(); запускает главную мелодию GTA 4(при загрузке слышно) EventName - Имя события(string)

Примеры в SannyBuilder:
0952: load_soundtrack 1
0954: start_playing_loaded_soundtrack
Game.PlayerCount; Записывает к-во игроков(в мультиплеере, наверное) в переменную Возвращаемый тип: int

Примеры в SannyBuilder: нет
Game.PlayerList; Получить список игроков(тоже в мультиплеере, наверное) Возвращаемый тип: массив класса Player[]

Примеры в SannyBuilder: нет
Game.PlayFrontendSound("FrontedSoud"); Проигрывает определённый звук FrontedSoud - имя звука(string)

Примеры в SannyBuilder:
03D1: play_wav 1
Game.PlayGameSound("GameSound"); Проигрывает игровой звук GameSound - имя звука(string)

Примеры в SannyBuilder:
0394: play_music 2
Game.PlayPhoneKeypadTone(2); Задать тон нажатия клавиш телефона Нико 2 - номер тона(int)

Примеры в SannyBuilder: нет
Game.PreviewRingtone(2); Заставляет телефон Нико звонить 2 - ID мелодии звонка(int)

Примеры в SannyBuilder: нет
Game.RadarZoom = 16; Устанавливает и считывает зум(масштаб) радара 16 - зум(в процентах) (int)

Примеры в SannyBuilder:
075B: zoom_radar 16
Game.RadioStation = RadioStation.Vladivostok;
RadioStation MyRadio = Game.RadioStation;
Задать/узнать текущую радиостанцию RadioStation.Vladivostok и MyRadio - элемент коллекции RadioStation

Примеры в SannyBuilder:
041E: set_radio_station 12
051E: 0@ = get_current_radio_station

Это не полный список функций класса GAME. Я предоставил те, которые сам понял или рассмотрел. Если узнаю как работают и для чего остальные - немедленно напишу.

Получив эти данные мы можем написать простой пример использования их. Давайте напишем скрипт, что бы при нажатии кнопки F4 нам появлялось окно с сохранением:

c# Аналог в SannyBuilder
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);
            }          

} } }



{$CLEO}
0000:


thread 'Thread'

while true

    if
    0AB0:  key_pressed 115 // F4
    then
    03D8: show_save_screen
    end

wait 0
end

Теперь в GTA 4 можно сохраняться в любом месте, нажав клавишу F4! Как видите, зная функции GTA 4, мы можем делать скурипты не хуже GTA SA, а то и лучше!

На этом урок окончен! Надеюсь, эта информация была для вас полезной! ;)


Теги: Обзор класса GAME
Вход на сайт

Поиск
Категории раздела
Мини-чат
Пожалуйста, все вопросы по скриптингу задавать на форуме!
Наш опрос
Как Вы относитесь к модулям сайта: фото и видео?
Всего ответов: 2
Активность на сайте
Пожертвования
Кошельки WebMoney:
U859420971000
R407741810602
Z331072372430
E314272616890
Друзья сайта
Полезные ресурсы
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Сегодня нас посетили:
Рекомендую