В коллекции скриптов от Атаса есть такой скрипт от naryv для использования меню:
Код:
using System;
using System.Collections;
using maddox.game;
using maddox.game.world;
public class Mission : AMission {
private void setMainMenu( Player player ) {
GamePlay.gpSetOrderMissionMenu( player, false, 0, new string[] { "1", "2", "3" }, new bool[] { true, false, false } );
}
private void setSubMenu( Player player ) {
GamePlay.gpSetOrderMissionMenu( player, true, 1, new string[] { "1-1", "1-2", "1-3" }, new bool[] { false, false, false } );
}
public override void OnOrderMissionMenuSelected( Player player, int ID, int menuItemIndex ) {
if( ID == 0 ) { // main menu
if( menuItemIndex == 1 ) {
GamePlay.gpHUDLogCenter("Menu selected Loading mission aaa2.mis");
GamePlay.gpPostMissionLoad("missions\\aaa2.mis");
setSubMenu( player );
}
} else if( ID == 1 ) { // sub menu
setMainMenu( player );
}
}
public override void OnPlayerConnected( Player player ) {
if( MissionNumber == 0 ) {
setMainMenu( player );
}
}
public override void Inited() {
if( MissionNumber == 0 ) {
setMainMenu(GamePlay.gpPlayer());
}
}
}
Попробовал к онлайн-миссии прикрутить, вызов скрипта из хоста. Tab 4 не реагирует на нажатие (скорее всего из-за второго параметра false). Интересует формат команд.
1.
Код:
GamePlay.gpSetOrderMissionMenu( player, false, 0, new string[] { "1", "2", "3" }, new bool[] { true, false, false } );
1,2,3 - это текст пунктов меню как я понял. Что значит "new bool" - зависит отображается пункт или нет?
2. Зачем нужнаа проверка if( MissionNumber == 0 ) точнее как этот номер узнать или задать?
3. MainMenu - это меню, которое вызывается по Tab+4?
SubMenu - вложенных меню может быть сколько угодно уровней?
4. Для онлайна этот скрипт подходит?
5. Несколько раз встречал такую строчку:
Код:
List<string> CarTypes = new List<string>();
Это класс используемый вместо массива, какое преимущество он дает?