Рейтинг - 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
/* делает затемнение экрана: */
Game.FadeScreenOut(1000, true);
Game.FadeScreenOut(1000);
/* Здесь: 
1000 - время, за которое нужно затемнить экран
true - указывает, что нужно подождать пока экран не затемниться окончательно(параметр не обязательный, но рекомендуемый)

*/
Пример в Sanny Builder:
fade 0 1000

repeat
wait 0
until fading
/* делает осветление экрана: */
Game.FadeScreenIn(1000, true);
Game.FadeScreenIn(1000);
/* Здесь: 
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
/* Возвращает директорию, куда установлена игра: */
Game.InstallFolder;
/* Здесь: 
Возвращаемый тип: string
*/
Пример в Sanny Builder: нет
/* Проверка: "игра запущена в полный экран?": */
Game.isFullscreen
/* Здесь: 
Возвращаемый тип: bool
*/
Пример в Sanny Builder: нет
/* Проверка: "Нажал ли игрок игровую клавишу - Атаковать": */
Game.isGameKeyPressed(GameKey.Attack)
/* Здесь: 
GameKey.Attack - элемент коллекции GameKey

Возвращаемый тип: bool
*/
Пример в Sanny Builder:
00E1: player 0 pressed_key 17
/* Проверка: "Нажал ли игрок конкретную клавишу - F4": */
Game.isKeyPressed(Keys.F4)
/* Здесь: 
Keys.F4 - элемент коллекции Keys

Возвращаемый тип: bool
*/
Пример в Sanny Builder:
0AB0: key_pressed 115 // F4
/* Проверка: "Режим игры - мультиплеер?": */
Game.isMultiplayer
/* Здесь: 
Возвращаемый тип: bool
*/
Пример в Sanny Builder: нет
/* Узнать текущего локального игрока: */
GTA.Player MyPlayer = Game.LocalPlayer;
/* Здесь: 
MyPlayer - экземпляр класса GTA.Player
*/
Пример в Sanny Builder:
$PLAYER_CHAR
/* Останавливает игру: */
Game.Pause();
/* 
Важно! Как и SannyBuilder, можно остановить игру.
Как её продолжить я пока не знаю.
*/
Пример в Sanny Builder:
015D: set_gamespeed 0.0
/* Проверка: "Игра остановлена?": */
Game.Paused
/* Здесь: 
Возвращаемый тип: bool
*/
Пример в Sanny Builder: нет
/* Проигрывает мелодию события: */
Game.PlayAudioEvent("EventName");
/* Здесь: 
EventName - Имя события(string)
*/
Пример в Sanny Builder:
018C: play_sound 1052 at 0.0 0.0 0.0
/* запускает главную мелодию GTA 4 ( при загрузке слышно ): */
Game.PlayCreditsMusic();
Пример в Sanny Builder:
0952: load_soundtrack 1
0954: start_playing_loaded_soundtrack
/* Количество игроков ( в мультиплеере, наверное ): */
Game.PlayerCount;
/* Здесь: 
Возвращаемый тип: int
*/
Пример в Sanny Builder: нет
/* Получить список игроков ( в мультиплеере наверное ): */
Game.PlayerList;
/* Здесь: 
Возвращаемый тип: массив класса Player
*/
Пример в Sanny Builder: нет
/* Проигрывает определённый звук: */
Game.PlayFrontendSound("FrontedSoud");
/* Здесь: 
FrontedSoud - имя звука( string )
*/
Пример в Sanny Builder:
03D1: play_wav 1
/* Проигрывает игровой звук: */
Game.PlayGameSound("GameSound");
/* Здесь: 
GameSound - имя звука(string)
*/
Пример в Sanny Builder:
0394: play_music 2
/* Задать тон нажатия клавиш телефона Нико: */
Game.PlayPhoneKeypadTone(2);
/* Здесь: 
2 - номер тона(int)
*/
Пример в Sanny Builder: нет
/* Заставляет телефон Нико звонить: */
Game.PreviewRingtone(2);
/* Здесь: 
2 - ID мелодии звонка(int)
*/
Пример в Sanny Builder: нет
/* Устанавливает и считывает масштаб радара: */
Game.RadarZoom = 16;
/* Здесь: 
16 - зум(в процентах) (int)
*/
Пример в Sanny Builder:
075B: zoom_radar 16
/* Задать/узнать текущую радиостанцию: */
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

Это не полный список функций класса 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
Вход на сайт

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

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

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