This is a documentation for Board Game Arena: play board games online !

Гаме оптионс анд преференцес: гамеоптионс.инц.пхп

Извор: Board Game Arena
Пређи на навигацију Пређи на претрагу

Ин тхис филе, yоу цан дефине yоур гаме оптионс (= гаме вариантс) анд усер преференцес.

Ноте: Иф yоур гаме хас но вариантс ор преференцес, yоу дон'т хаве то модифy тхис филе.

Гаме Оптионс

Гаме оптионс ис сометхинг селецтед бy табле цреатор анд усуаллy цорреспонд то гаме вариатион, фор еxампле иф гаме инцлудес еxпансион ор цертаин специал руле.

  • дисплаyцондитион цхецкс тхе цондитионс бефоре дисплаyинг тхе оптион фор селецтион. Алл цондитионс муст бе труе фор тхе оптион то дисплаy. Суппортед цондитион тyпес:
    • отхероптион цондитион енсурес анотхер оптион ис сет то тхис гивен валуе
  • стартцондитион цхецкс тхе цондитионс бефоре стартинг тхе гаме. Алл цондитионс муст бе труе фор тхе гаме то старт, отхерwисе плаyерс wилл гет а ред еррор мессаге wхен аттемптинг то бегин тхе гаме. Суппортед цондитион тyпес:
    • минплаyерс цондитион енсурес ат леаст тхис манy плаyерс
    • маxплаyерс цондитионс енсуре ат мост тхис манy плаyерс
 $game_options = array(
     100 => array(
         'name' => totranslate('my game option'),
         'values' => array(
             // A simple value for this option:
             1 => array(
                 'name' => totranslate('option 1')
             ),

             // A simple value for this option.
             // If this value is chosen, the value of "tmdisplay" is displayed in the game lobby
             2 => array(
                 'name' => totranslate('option 2'),
                 'tmdisplay' => totranslate('option 2')
             ),

             // Another value, with other options:
             //  beta=true => this option is in beta version right now.
             //  nobeginner=true  =>  this option is not recommended for beginners
             3 => array(
                 'name' => totranslate('option 3'),
                 'beta' => true,
                 'nobeginner' => true
             ),
         )
     ),
     
     101 => array(
         'name' => totranslate('Draft variant'),
         'values' => array(
             1 => array(
                 'name' => totranslate('No draft')
             ),
             2 => array(
                 'name' => totranslate('Draft'),
                 'tmdisplay' => totranslate('Draft'),
                 'premium' => true,
                 'nobeginner' => true
             ),
         ),
         'displaycondition' => array( // Note: do not display this option unless these conditions are met
             array(
                 'type' => 'otheroption',
                 'id' => 100,
                 'value' => array(2, 3, 4)
             )
         ),
         'startcondition' => array(
             1 => array(),
             2 => array(
                 array(
                     'type' => 'maxplayers',
                     'value' => 3,
                     'message' => totranslate('Draft option is available for 3 players maximum.')
                 )
             ),
         ),
         'disable' => true
     ),
     
     102 => array(
         'name' => totranslate('Takeovers'),
         'values' => array(
             2 => array(
                 'name' => totranslate('No takeover')
             ),
             1 => array(
                 'name' => totranslate('Allow takeovers'),
                 'tmdisplay' => totranslate('Takeovers'),
                 'premium' => true,
                 'nobeginner' => true
             ),
         ),
         'displaycondition' => array( // Note: do not display this option unless these conditions are met
             array(
                 'type' => 'otheroption',
                 'id' => 100,
                 'value' => array(3, 4)
             )
         ),
         'startcondition' => array(
             2 => array(),
             1 => array(
                 array(
                     'type' => 'maxplayers',
                     'value' => 2,
                     'message' => totranslate('Rebel vs Imperium Takeover Scenario is available for 2 players only.')
                 )
             ),
         ),
         'disable' => true
     )
 );

Ноте²: Алл оптионс дефинед ин тхис филе схоулд хаве а цорреспондинг "гаме стате лабелс" wитх тхе саме ИД (сее "инитГамеСтатеЛабелс" ин yоургаме.гаме.пхп)


            self::initGameStateLabels ( array (
                       ...
                       "my_first_game_variant" => 100,
             ) );


ИМПОРТАНТ: Афтер yоу едитед анд деплоyед тхис филе yоу хаве то го то цонтрол панел анд пресс "Релоад гаме оптионс цонфигуратион"

Усер Преференцес

Усер преференцес ис сометхинг цосметиц абоут тхе гаме интерфаце wхицх хоwевер цан цреате усер wарс, со yоу цан сатисфy алл усер бy гивинг тхем индивидуал преференцес. До нот усе тхис унлесс абсолутелy нецессарy анд усуаллy онлy афтер гаме хас беен ин продуцтион фор а wхиле. Иф yоу адд тхесе цуррентлy онлy админс цан апплy тхесе сеттингс, со yоу wоулд хаве то цонтацт тхем афтер едитинг тхис филе.

$game_preferences = array(
    100 => array(
			'name' => totranslate('Notation style'),
			'needReload' => true, // after user changes this preference game interface would auto-reload
			'values' => array(
					1 => array( 'name' => totranslate( 'Classic' ), 'cssPref' => 'notation_classic' ),
					2 => array( 'name' => totranslate( 'Tournament' ), 'cssPref' => 'notation_tournament' )
			)
	)
);

Тхере ис тwо wаyс то цхецк/апплy тхис. Ин јава Сцрипт

 if (this.prefs[100].value == 2) ...

Тхис цхецкс иф преференцес 100 хас селецтед валуе 2.

Сецонд, иф цссПреф специфиед ит wилл бе апплиед то тхе бодy таг. Со yоу цан усе дифферент цсс стyлинг фор тхе преференце.

Ас усер yоу хаве то селецт тхем фром тхе Геар мену wхен гаме ис стартед. Он студио онлy усер0 wилл хаве ит ацтуаллy wоркинг (буг?).