首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 網頁遊戲 Xnova (OGame) 原始碼解析(十三):造船廠與防禦建築頁面邏輯

     編輯:PHP 綜合知識

造船廠頁面架構

造船廠頁面(FleetBuildingPage.php)並不直接生成艦船,僅將玩家輸入的艦種與數量寫入資料庫佇列;實際生產邏輯在 PlanetResourceUpdate 中處理。

頁面構造流程

  1. 檢查星球是否擁有造船廠,否則提示
  2. 迴圈輸出各艦種建造介面(資源需求、建造時間、可建造上限)
  3. 動態顯示「正在建造」列表(僅為視覺呈現,資料庫實際更新需刷新)
  4. 關鍵欄位:b_hangar_id(建造佇列字串)、b_hangar(剩餘秒數)
  5. 使用 ElementBuildListBox() 構建倒數計時腳本

玩家下單處理邏輯

  1. 取得艦種代碼與數量
  2. 驗證數量不超過最大可建造值(資源/空間限制)
  3. 檢查前置條件(科技等級、船廠等級)
  4. 計算資源消耗與建造時間
  5. 更新星球資料:扣除資源、寫入 b_hangar_id

防禦建築頁面差異

DefensesBuildingPage.php 邏輯大同小異,額外限制:

  • 大/小護盾同星球僅能擇一建造(代碼行 407-408)
  • 攔截導彈與星際導彈數量有聯動限制,且需檢查佇列中現有導彈數(代碼行 502-503)
  • 同樣使用 b_hangar_id 佇列欄位

核心程式碼片段

if ($Count >= 1) {
    $CurrentPlanet['metal']     -= $Ressource['metal'];
    $CurrentPlanet['crystal']   -= $Ressource['crystal'];
    $CurrentPlanet['deuterium'] -= $Ressource['deuterium'];
    $CurrentPlanet['b_hangar_id'] .= "". $Element .",". $Count .";";
}

設計重點

「前端下單、後端異步生產」的分離架構,降低了即時運算壓力。佇列字串儲存雖簡單,但解析成本隨項目增長而增加,大型專案建議改用 JSON 或關聯表儲存。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved