天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

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

六、 游戲主界面(frames.php

frames.php文件功能就是顯示游戲主界面,先看下面的代碼:

$InLogin = false;$XNova_Host  = $_SERVER['HTTP_HOST'];$XNova_Script = $_SERVER['SCRIPT_NAME'];$Uri_Array   = explode ('/', $XNova_Script);// On vire le scriptarray_pop($Uri_Array);$XNova_URI   = implode ('/', $Uri_Array);$XNovaRootURL = "http://". $XNova_Host ."/". $XNova_URI ."/"; 

上面的代碼主要是拼出服務器的URL,比較簡單;前面的變量$InLogin暫時不講,等我們專門講解common.php的時候,集中說明。

然后include了兩個我們前面講過的文件,最后輸出一大段 HTML 代碼。需要注意的是,HTML代碼里面構造了兩frame,分別是leftmenu.php 和 overview.php,我下面將要分析。

七、 左導航欄(leftmenu.php

這個文件其實很簡單,除去前面我們常見的代碼,就只聲明了ShowLeftMenu()函數,最后用 display() 輸出頁面。函數ShowLeftMenu()也不難,代碼無非是gettemplate模板文件、取得服務器設置的參數以及登錄的用戶等級,然后構造頁面。其中要注意的是用戶等級變量$Level,當$level的值大于0的時候,會顯示管理員鏈接。$level的值所代表的級別定義在system.mo文件中, 0 是普通玩家,1 是游戲操作員,2 是游戲管理員,3 是管理員。

八、 概況(overview.php

這個文件其實就是左導航欄中對應的鏈接'概況',主要功能是顯示當前星球的大概信息和用戶的信息,包括其他星球的當前狀態等。代碼量很大,其實條理很清晰,我們慢慢看來,前面的幾行代碼我們略過。

$lunarow = doquery("SELECT * FROM {{table}} WHERE 'id_owner' = '" . $plaNETrow['id_owner'] . "' AND 'galaxy' = '" . $plaNETrow['galaxy'] . "' AND 'system' = '" . $plaNETrow['system'] . "' AND 'lunapos' = '" . $plaNETrow['plaNET'] . "';", 'lunas', true);CheckPlaNETUsedFields ($lunarow); 

這段代碼功能是取得當前星球的月球,并檢查修正月球的使用空間。CheckPlaNETUsedFields函數不僅對月球起作用,同樣可以用來檢查星球,先不看其中代碼,我們繼續。

接下來是一段安全性的驗證,需要在參數中設置啟用這個功能才行,大家可以自行看看,這樣的代碼還有很多,以后我一般都不分析,對游戲流程關系不大。接下來是一個switch,兩個分支,一個重命名星球(放棄星球),暫時不看;另一個default分支,就是登錄后要進行的流程,如下

1. 檢查用戶的消息,如果有新消息則要顯示消息鏈接
2. 專家系統的流程,我自己去掉了這段邏輯,所以也不打算分析
3. 檢查用戶是否有艦隊活動,如果有則構造艦隊活動信息表,使用BuildFleetEventTable函數構造,以后介紹
4. 如果用戶有其他星球,則構造其他星球列表,并顯示每個星球的當前活動
5. 顯示自己發射和來自其他玩家的攻擊的星際導彈活動信息
6. 其他信息顯示,比如公告啊,google的廣告等等
7. 如果有月球,顯示月球信息
8. 下面是一些星球名、星球空間、用戶排名等信息,比較雜亂

上面這些流程的代碼,都有注釋,不難明白,下面這段代碼我們要介紹下。

if ($plaNETrow['b_building'] != 0) { UpdatePlaNETBatimentQueueList ($plaNETrow, $user); if ($plaNETrow['b_building'] != 0) { $BuildQueue = explode (";", $plaNETrow['b_building_id']); $CurrBuild = explode (",", $BuildQueue[0]); $RestTime = $plaNETrow['b_building'] - time(); $PlaNETID = $plaNETrow['id']; $Build = InsertBuildListScript ("overview"); $Build .= $lang['tech'][$CurrBuild[0]] . ' (' . ($CurrBuild[1]) . ')'; $Build .= "<div id="/"blc/"" class="/"z/"">" . pretty_time($RestTime) . "</div>"; $Build .= "/n<script type="text/Javascript"><!--mce:0--></script>/n";  $parse['building'] = $Build; } else { $parse['building'] = $lang['Free']; }} else { $parse['building'] = $lang['Free'];} 

$plaNETrow 存放當前星球信息,其中的b_building是建筑隊列。上面代碼先判斷是否有建筑隊列,然后根據現在的時間,更新建筑信息;如果還是有建筑未完成,則顯示出來建筑單位和建筑的剩余時間。關于建筑隊列功能,以后要詳細介紹,現在先略過。

我們簡單介紹下前面的一個分支,分支里面還有三個流程:

1. 重命名星球,代碼不難,也不多說了
2. 放棄殖民星球,并顯示用戶要輸入密碼的頁面
3. 用戶輸入密碼,如果密碼正確則更新本星球的信息和用戶的默認星球ID(月球未判斷)

至此,用戶登錄到游戲主界面的流程都清楚了,總算進入游戲了。

php技術PHP網頁游戲學習之Xnova(ogame)源碼解讀(五),轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 最新精品学生国产自在现拍 | 午夜精品久久久内射近拍高清 | 青青草A在在观免费线观看 青青草AV国产精品 青青草 久久久 | 色欲AV无码乱码精品国产 | 国产A级毛片久久久久久久 国产a级黄色毛片 | 综合久久久久久久综合网 | 欧美一区二区三区播放 | 欧美AAAAAA级午夜福利视频 | 多人乱肉高hnp| 亚洲一区在线视频观看 | 把内衣脱了把奶露出来 | jzz大全18| 樱桃视频高清免费观看在线播放 | 97人摸人人澡人人人超一碰 | 国精产品一区一区三区M | 第一会所欧美无码原创 | 亚洲色综合中文字幕在线 | 小s现场抛胸挤奶 | 99热精品一区 | 365电影成人亚洲网在线观看 | 久久66热在线视频精品 | 99久久99久久免费精品蜜桃 | 国内视频在线精品一区 | 日韩av无码在线直播 | 亚洲欧美韩国综合色 | 久久99r66热这里只有精品 | 99视频在线观看免费视频 | 亚洲免费在线视频 | 国产在线观看成人免费视频 | 挺进老师的紧窄小肉六电影完整版 | 校花的奶好大好浪 | 久久久久久久久女黄 | 98久久人妻少妇激情啪啪 | 久久99精品久久久久久园产越南 | 无码人妻精品一区二区蜜桃色 | 国产精品熟女人妻 | 俄罗斯孩交精品 | 欧美日韩北条麻妃一区二区 | 欧美精品一卡二卡 | 亚洲spank男男实践网站 | 一本道色综合手机久久 |