2017/03/28

火線獵殺 野境 - 資源蒐集方法

除了技能點數以外,還需要有大量的反抗軍資源才能開啟技能。

個人觀察發現,「攔截運輸車」這個事件會隨機出現,但是在該省區 boss 解決掉以後,事件出現機率會掉很多。
所以比較好的方法,就是最終 boss 先不要急著打,無聊先去搶劫,把資源搶起來放。這樣 boss 打掉以後給的技能點數,馬上就可以拿來選技能,不用在去跑腿。

第三行 ....?

2017/03/15

火線獵殺 - 野境 (Ghost Recon - Wildlands) 心得

完了 Ghost Recon - Wildlands (以下簡稱 GRw) 覺得開放式地圖做的實在不錯,各地區皆有隨機事件,破關方法也可以隨個人喜好自行調整。

但還是覺得有些可惜的地方,像是:

  • 遊戲難度平衡沒有調整的很好
  • 交通工具不好操控
  • 聯合軍有開外掛的感覺
  • 休閒模式還是要練等級,才能看劇情 QQ




我完全不會開飛機 XD


=== 2017/03/17 補充 ===

玩了 35 小時,覺得「野境」裡面中,「聯合軍」的設計,真的把整個遊戲的平衡性給毀了。

攻擊聯合軍只會讓對方的強度越來越高,而且永遠不會減弱,相當於玩家不使用匿蹤的方式進行遊戲就會再見,這樣還好意思說野境是一個任玩家自由採取行動的遊戲?

2017/03/07

為 Gitlab 加上 CI runner 做自動化測試

gitlab-ci-runner 可以裝在 local 也可以跑在 docker container,我自己是安裝在 docker container
docker run -d --name gitlab-runner --restart always \
  -v /srv/gitlab-runner/config:/etc/gitlab-runner \
  -v /var/run/docker.sock:/var/run/docker.sock \
  gitlab/gitlab-runner:latest

上面步驟完成以後,可以先進入 Gitlab 的 Admin => Runner,這邊會顯示 runner access token:



在該頁面可以找到 token,如果要讓之前設定的 token 失效,可以先點選「Reset」換一個 acces token:


先把 access token 複製下來,接下來建立一個 runner 並連接到 Gitlab 上:
docker exec -it gitlab-runner gitlab-runner register

設定說明:
  • gitlab-ci coordinator URL:輸入欲使用 runner 的 Gitlab 網址
  • gitlab-ci token:就是你剛剛複製下來的 access token
  • gitlab-ci description:輸入 runner 的名稱,例如 runner-php56 或是 runner-php70。這個名稱會在 Gitlab 上面看到,建議填寫清楚的名稱以供辨識。
  • executor:我這邊要讓 runner 在 docker container 裡面跑,所以選擇「docker」
  • Docker image:在 docker container 執行時,要使用哪個 image 當作 base。我自己懶的自己 built,用的是「edbizarro/gitlab-ci-pipeline-php
  • gitlab-ci tags for this runner:這邊會請你輸入幾個關鍵字,假設在 project 設定中,出現這幾個關鍵字,則 Gitlab 會自動把符合的 executor on 起來跑。我自己會設定「docker」、「phptest」等等

到這邊若沒看到什麼錯誤,在 Gitlab 的 runner 頁面重新整理後,則頁面最下方可以看到剛剛設定好的 gitlab-ci description (runner name):


這頁有看到的話,可以依樣畫胡驢,在需要使用到的專案 runner 設定頁面,使用這個 runner 來跑測試。



在 Gitlab 上將 runner 設定好,接下來只要在專案上加入「.gitlab.ci.yml」,當 git push 後 Gitlab 便會檔案中的設定自動把 executor on 起來跑,設定方法可以參考 Gitlab 提供的 gitlab-ci.yml 說明

簡易的 PHP library (不包含任何 framework) project 的 .gitlab-ci.yml 大概長這樣:
image: edbizarro/gitlab-ci-pipeline-php:5.6


syntax-check:
    script:
        - "find . -name '*.php' -print0 | xargs -0 -n1 php -l"
    tags:
        - docker

unit-test:
    script:
        - composer install --prefer-dist --no-ansi --no-interaction --no-progress --no-scripts
        - ./vendor/bin/phpunit -v --coverage-text --colors=never --stderr
    tags:
        - docker

上面可以看到我要求 executor 一定要使用「edbizarro/gitlab-ci-pipeline-php:5.6」這個 image,不過由於 tasks 有特別設定 tags,所以這行也不是必要。

而這邊設定了二個 tasks 要求 executor 協助執行:「syntax-check」和「unit-test」。因此 executor 會先跑 syntax-check,確認沒有錯誤後,再去執行 unit-test。

完成後,只要 Gitlab 收到 commit 且就會依照 .gitlab-ci.yml 的設定下去跑。結果會自動顯示在「Pipeline」的列表當中:




Reference:

2017/03/05

Laravel 5.3 的 API routing

弄了很久才搞清楚 5.3 版的 routing 是怎麼搞的,覺得作者把事情弄的更複雜了,也少了一些彈性。

Laravel 5.3 中,routes 已經不是放在 App/Http 底下了,將設定獨立出來放在根目錄:
johnroyer@box:~/devel/laravel53$ tree routes
routes
├── api.php
├── console.php
└── web.php

有個 API 專用 routing 看了當然開心,只是怎麼樣都是不出來 api.php 這邊的設定要怎樣才能起作用。

後來找了很久才發現 Route 功能,已經在 provider 階段把 web / api 的 routing rule 寫死,所以 API 的 routing 有固定的 prefix,在網址是上必須是「http://laravel.root/api」開頭,才會吃到 api.php 的設定。該項 rule 被寫在 RouteServiceProvider 中:
    protected function mapApiRoutes()
    {
        Route::group([
            'middleware' => 'api',
            'namespace' => $this->namespace,
            'prefix' => 'api',
        ], function ($router) {
            require base_path('routes/api.php');
        });
    }


Reference: