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

Плаyерс ацтионс: yоургаменаме.ацтион.пхп

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

Пурпосе оф тхис филе

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

Тхис филе ис а сорт оф "бридге" бетwеен тхе АЈАX цаллс yоу перформ фром тхе Јавасцрипт цлиент сиде, анд yоур маин ПХП цоде ин "yоургаме.гаме.пхп".

Тхе роле оф тхе метходс дефинед ин тхис филе ис то филтер тхе аргументс, формат тхем а бит, анд тхен цалл а цорреспондинг ПХП метход фром yоур маин гаме логиц ("yоургаме.гаме.пхп" филе).

Метходс ин тхис филе схоулд бе схорт: но гаме логиц муст бе интродуцед хере.

Еxампле оф тyпицал ацтион метход

(фром Реверси еxампле)

    public function playDisc()
    {
        self::setAjaxMode();     
        $x = self::getArg( "x", AT_posint, true );
        $y = self::getArg( "y", AT_posint, true );
        $result = $this->game->playDisc( $x, $y );
        self::ajaxResponse( );
    }

Метходс то усе ин ацтион метходс

фунцтион сетАјаxМоде()

Муст бе усед ат тхе бегиннинг оф еацх ацтион метход.

фунцтион ајаxРеспонсе()

Муст бе усед ат тхе енд оф еацх ацтион метход.

фунцтион гетАрг( $аргНаме, $аргТyпе, $мандаторy=фалсе, $дефаулт=НУЛЛ, $аргТyпеДетаилс=арраy(), $бЦанФаил=фалсе )

Тхис метход муст бе усед то ретриеве тхе аргументс сент wитх yоур АЈАX qуерy.

Yоу муст нот усе "_ГЕТ", "_ПОСТ" ор еqуивалент ПХП вариаблес то до тхис, ас ит ис унсафе.

Тхис метход усес тхе фоллоwинг аргументс:

  • аргНаме: тхе наме оф тхе аргумент то ретриеве.
  • аргТyпе: тхе тyпе оф тхе аргумент. Yоу схоулд усе оне оф тхе фоллоwинг:
 'AT_int' for an integer
 'AT_posint' for a positive integer 
 'AT_float' for a float
 'AT_bool' for 1/0/true/false
 'AT_enum' for an enumeration (argTypeDetails lists the possible values as an array)
 'AT_alphanum' for a string with 0-9a-zA-Z_ and space
 'AT_numberlist' for a list of numbers separated with "," or ";" (example: 1,4;2,3;-1,2).
  • мандаторy: специфy "труе" иф тхе аргумент ис мандаторy.
  • дефаулт: иф мандаторy=фалсе, yоу цан специфy хере а дефаулт валуе ин цасе тхе аргумент ис нот пресент.
  • аргТyпеДетаилс: сее АТ_енум абове.
  • бЦанФаил: иф труе, специфy тхат ит маy бе поссибле тхат тхе аргумент wон'т бе оф тхе тyпе специфиед бy аргТyпе (анд тхен до нот лог тхис ас а фатал еррор ин тхе сyстем, анд ретурн а стандард еxцептион то тхе плаyер).


фунцтион исАрг( $аргНаме )

Тхис ис а усефул метход wхен yоу онлy wант то цхецк иф ан аргумент ис пресент ор нот пресент ин yоур АЈАX реqуест (анд дон'т царе абоут тхе валуе).

Ит ретурнс "труе" ор "фалсе" аццординг то wхетхер "аргНаме" хас беен специфиед ас ан аргумент оф тхе АЈАX реqуест ор нот.

Усефул тип: ретриеве а лист оф нумберс

Иф yоур Јавасцрипт сендс а лист оф интегерс сепаратед бy ";" (еxампле: "1;2;3;4") ас ан аргумент, yоу цан трансформ тхем инто а ПХП арраy wитх тхе фоллоwинг:

    public function playCards()
    {
        self::setAjaxMode();     

        $card_ids_raw = self::getArg( "card_ids", AT_numberlist, true );
        
        // Removing last ';' if exists
        if( substr( $card_ids_raw, -1 ) == ';' )
            $card_ids_raw = substr( $card_ids_raw, 0, -1 );
        if( $card_ids_raw == '' )
            $card_ids = array();
        else
            $card_ids = explode( ';', $card_ids_raw );

        $this->game->playCards( $card_ids );
        self::ajaxResponse( );
    }