国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP網頁游戲學習之Xnova(ogame)源碼解讀(十)

PHP網頁游戲學習之Xnova(ogame)源碼解讀(十)

2020-07-11 15:26鐵船長 PHP教程

這篇文章主要介紹了PHP網頁游戲Xnova(ogame)源碼解讀的建造總覽部分,需要的朋友可以參考下

十三、 建造總覽(buildings.php)

從這篇文章開始,對xnova的研究重點放在流程上面,其實就是大量的函數;至于頁面的構造將不再仔細解釋。

buildings.php文件不只是處理建筑金屬礦產等,而是包括了建筑、研究、造船廠、防御四個功能;通過傳遞不同的參數來決定進入哪個功能,所以這個文件其實是一個導航文件。下面我們簡單解釋下這個文件。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//更新當前星球的建筑隊列,比較復雜
UpdatePlanetBatimentQueueList ( $planetrow, $user );
//處理當前用戶的科技研究
HandleTechnologieBuild ( $planetrow, $user );
//下面是根據參數進入不同的功能頁面
//造船廠頁面
case 'fleet':
FleetBuildingPage ( $planetrow, $user );
//研究頁面
case 'research':
ResearchBuildingPage ( $planetrow, $user, $IsWorking['OnWork'], $IsWorking['WorkOn'] );
//防御頁面
case 'defense':
DefensesBuildingPage ( $planetrow, $user );
//剩下的自然是建筑頁面
default:
BatimentBuildingPage ( $planetrow, $user );
下面我們看更新當前星球的建筑隊列函數
function UpdatePlanetBatimentQueueList ( &$CurrentPlanet, &$CurrentUser ) {
 $RetValue = false;
 //判斷是否有建筑隊列,字段b_building_id保存建筑隊列
 if ( $CurrentPlanet['b_building_id'] != 0 ) {
 //進入循環,開始處理隊列
 while ( $CurrentPlanet['b_building_id'] != 0 ) {
  //如果當前建造的建筑時間小于time的話,就處理,字段b_building保存建筑到期的時間
  if ( $CurrentPlanet['b_building'] <= time() ) {
  //先更新下星球的資源,以后再解析
  PlanetResourceUpdate ( $CurrentUser, $CurrentPlanet, $CurrentPlanet['b_building'], false );
  //處理掉當前的建筑,并把當前建筑字段清空;代碼很多,其實比較簡單
  $IsDone = CheckPlanetBuildingQueue( $CurrentPlanet, $CurrentUser );
  //如果前面處理成功,這里就要處理隊列中的下一個建筑,包括扣除資源
  if ( $IsDone == true ) {
   SetNextQueueElementOnTop ( $CurrentPlanet, $CurrentUser );
  }
  } else {
  $RetValue = true;
  break;
  }
 }
 }
 return $RetValue;
}

我們繼續下去,跟蹤入CheckPlanetBuildingQueue函數,這個函數代碼挺多,其實簡單;我不寫注釋了,說下流程。先從字段b_building_id解析出來建筑的種類、建筑或拆除、結束建筑的時間等;然后更新該建筑的等級,升級或者降級;更新星球的最大空間和使用空間;更新當前建筑的時間為0和更新當前的剩余建筑隊列。不難吧,呵呵。

接下來處理隊列中的下一個建筑,跟蹤SetNextQueueElementOnTop函數,也不難。先從隊列中解析出建筑數據;然后判斷是否可以建造,如果可以就要計算建造資源等;如果不行就發送消息等;最后更新建筑完成的時間、剩余建筑隊列和資源等。和上面的流程一樣簡單,拿下。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 无码一区二区三区视频 | 欧美喷水 | 99看片| 精品一区久久 | 欧美亚洲国产一区二区三区 | 午夜爱爱毛片xxxx视频免费看 | www.久草.com| 在线电影一区 | 国产人妖在线 | 国产精品精品 | 国产精品视频 | 久久久精品电影 | 国产精品99久久免费观看 | 看亚洲a级一级毛片 | 精品人成 | 亚洲免费视频一区二区 | 日韩欧美一区二区三区久久婷婷 | 亚洲国产精品视频一区二区三区 | 超碰人人干人人 | 亚洲成人免费 | 欧美一级做a爰片久久高潮 免费在线毛片 | 欧美成人自拍 | 狠狠操综合网 | 中文字幕亚洲欧美 | 91av原创| 日韩视频精品在线 | 日韩色网 | 国产高清在线精品一区二区三区 | 人人澡人人透人人爽 | 日韩在线综合 | 五月天婷婷色综合 | 精品中文字幕在线 | 一区二区三区回区在观看免费视频 | 91色视频在线观看 | 日韩有码在线播放 | www.亚洲 | 一区二区三区成人 | 亚洲精品1 | 精品一区二区在线观看 | 欧美精品一二三 | 日韩一区二区在线播放 |