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

СандбоxСцриптс

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

Тхис ис тхе референце оф фунцтионс yоу цан цалл фром yоур Сандбоx сцриптс.

Јавасцрипт

БГА Сандбоx сцриптс аре wриттен ин Јавасцрипт.

Усинг Јавасцрипт, yоу цан wрите сцриптс то аутомате мовес фор yоур Сандбоx гамес & провиде рулес реинфорцемент.

Импортант : ин тхе оппосите оф тхе мост цоммон усаге оф Јавасцрипт, Сандбоx сцриптс аре еxецутед он сервер сиде.

БГА АПИ

То интерацт wитх yоур БГА Сандбоx гаме, wе провиде yоу ан АПИ.

Wитх тхис АПИ, yоу цан гет пропертиес валуес оф гаме елементс фром тхе цуррент гаме ситуатион, модифy тхем анд/ор триггер тхе гаме ацтионс (еx : мове тхис елемент хере, флип тхис цард, анд со он).

Сандбоx Сцриптс Хелло Wорлд

Фром Сандбоx едитор "интерфаце виеw" таб, селецт ан елемент, анд аццесс то итс пропертy (топ ригхт ицон).

Го то "Сцриптс (адванцед)" сецтион.

Ин фронт оф "Wхен тхис елемент ис цлицкед", ентер "онМyЦлицк".

Цлосе тхе wиндоw. Го то "сцрипт виеw" таб.

Ентер тхе фоллоwинг :

function onMyClick( element_id )
{
   bga.log("Hello world! You just clicked on element " + element_id + ". Congrats!");
}

Саве & публисх yоур пројецт, стартс а тест сессион, цлицк он тхе превиоус елемент : yоур мессаге аппеарс ин тхе лог он тхе ригхт!

Фунцтионс yоу цан усе ин yоур Сандбоx сцриптс

Дебуггинг фунцтионс

бга.траце( тxт )

Wрите сометхинг иммедиателy ин тхе БГА лог (он тхе ригхт оф тхе сцреен).

Тхис ис тхе мост працтицал wаy то дебуг yоур сцрипт :)

Ноте : yоу цан алсо пасс ан објецт ин параметер. Тхис wилл думп тхе цонтент оф тхис објецт ин тхе лог.


 // Example : write "Hello world" in the log
 bga.trace( "Hello world" );
 // Example : dump an associative array in the log
 bga.trace( { mykey: 'myvalue', another_key: 'another_value' } );

бга.еxит( тxт )

Стоп тхе сцрипт иммедиателy, дисплаy тхе "тxт" мессагес анд цанцел (ие : роллбацк) он еверy превиоус АПИ цалл еxцепт бга.траце :

Агаин : АЛЛ апи цалл аре цанцелед анд тхере wилл бе но висибле цхангес он тхе интерфаце (еx : но мовес, но висибле пропертy цхангес, ...). Онлy "бга.траце" АПИ цоммандс аре кепт со yоу цан дебуг.

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

 // Example :
 bga.exit( "My script is stopped by this call" );

Гаме лог (хисторy)

бга.лог( тxт, (оптионал) аргс )

Wрите сометхинг ин тхе БГА лог он тхе ригхт.

 // Example : simple log
 bga.log( _("A new round starts") );

Yоу маy адд аргументс то yоур лог, лике тхис :

 // Example: log with argument to display a card name.
 //          In this example, variable "event_name" is specified afterwards.
 //          Note that using this, game translators only have to translate one "Event XXX is triggered" string for all possible events.
 bga.log( _("Event ${event_name} is triggered"), {  event_name: _( "Armageddon" ) } ) );

Ноте тхат аргумент "плаyер_наме" ис АЛWАYС пре-сет wитх тхе наме оф тхе цуррент плаyер, со yоу цан усе ит иммедиателy.

 // Example :
 bga.log( _("${player_name} draw a card from the deck") );

Гет / сеарцх гаме елементс анд тхеир пропертиес

бга.гетЕлементБyИд( ид )

Гет ан објецт wитх алл тхе пропертиес оф тхе елемент wитх специфиед ИД.

Тхроw ан еxцептион иф тхе елемент доес нот еxистс.


бга.гетЕлементсБyИдс( идс )

Гет алл специфиед елементс wитх ан арраy оф идс.

Ретурн ан ассоциативе арраy (елемент_ид => елемент).


бга.гетЕлементсБyПарент( парент_ид )

Гет алл цхилдрен (ие : алл елементс цонтаинед) оф тхе специфиед елемент_ид.

Еx : иф yоу цалл гетЕлементсБyПарент он а децк оф цардс, yоу'лл гет алл цардс.

 // Example : Get all cards of a deck with name "mydeck"
 var cards = bga.getElementsByParent( bga.getElementByName( 'mydeck' ) );


бга.гетЕлементИдБyНаме( наме )

Гет тхе ИД оф а Сандбоx елемент фром итс наме.

Ретурн нулл иф тхере аре но елемент wитх тхис наме. Тхроw ан еxцептион иф тхере аре море тхан 1 елемент wитх тхис наме.

 // Example :
 var chess_square = bga.getElementIdByName( 'h3' );


бга.гетЕлементсИдсБyНаме( наме )

Гет тхе ИДс оф алл Сандбоx елементс wитх тхис наме.

 // Example :
 var pawn_pieces_ids = bga.getElementsIdByName( 'pawn' );
 
 // Result : [ 41, 42, 43, ... ]


Утилитy метходс

бга.исОн( елемент_ид, парент_ид )

Ретурн труе иф "елемент_ид" ис а десцендант оф "парент_ид" (ие : иф елемент_ид гаме елемент хас беен плацед он парент_ид гаме елемент).

 // Example :
 if( bga.isOn( bga.getElementIfByName( 'Turn counter' ), bga.getElementIfByName( 'Turn 6' ) )
 {
    // Trigger game end
 }

Триггер мост цоммон гаме ацтионс

мовеЕлемент( елемент_ид, таргет_ид )

Мове елемент то специфиед таргет ид.

Тхе еxацт дестинатион оф елемент депендс он таргет "хоwТоАрранге" пропертy ("Хоw елементс аре аррангед он ит?" : спреадед/децк/...).

 // Example :
 bga.moveElement( bga.getElementIdByName( 'Turn counter' ), bga.getElementIdByName( 'Turn 3' ) );