十八、舰队活动(FlyingFleetHandler.php)
在前文中我们曾经初步研究过舰队活动的源码,提到过舰队活动的触发。现在我进一步分析Xnova中舰队活动,这些在本质上是由玩家触发的,并不是由定时器在进行定时计算。舰队活动的触发是在common.php中进行的,所以入口就在这文件中,代码如下:
//检查是否有到达目的地的舰队 $_fleets = doquery("SELECT * FROM {{table}} WHERE 'fleet_start_time' <= '".time()."';", 'fleets'); // OR fleet_end_time <= ".time() //循环处理每个舰队 while ($row = mysql_fetch_array($_fleets)) { $array = array(); $array['galaxy'] = $row['fleet_start_galaxy']; $array['system'] = $row['fleet_start_system']; $array['planet'] = $row['fleet_start_planet']; $array['planet_type'] = $row['fleet_start_type']; //舰队处理函数 $temp = FlyingFleetHandler ($array); } //检查是否有返回出发地的舰队 $_fleets = doquery("SELECT * FROM {{table}} WHERE 'fleet_end_time' <= '".time()."';", 'fleets'); // OR fleet_end_time <= ".time() //循环处理每个舰队 while ($row = mysql_fetch_array($_fleets)) { $array = array(); $array['galaxy'] = $row['fleet_end_galaxy']; $array['system'] = $row['fleet_end_system']; $array['planet'] = $row['fleet_end_planet']; $array['planet_type'] = $row['fleet_end_type']; //舰队处理函数 $temp = FlyingFleetHandler ($array); }
大家看到了,前面这段代码其实写的不好,因为这里每次都会被调用,效率太低了。因此我们在这里可以进行优化,使每次循环只需要一个舰队的ID传递给函数即可;相应的函数也要做修改,有兴趣的自己修改下。
接下来看看函数FlyingFleetHandler(),这是集中调用舰队活动的函数。
//锁表,防止出现数据不同步等问题 doquery("LOCK TABLE {{table}}lunas WRITE, {{table}}rw WRITE, {{table}}errors WRITE, {{table}}messages WRITE, {{table}}fleets WRITE, {{table}}planets WRITE, {{table}}galaxy WRITE ,{{table}}users WRITE", ""); //这里一大段就是取得舰队数组,参数完全可以使用舰队ID,优化之 $QryFleet = "SELECT * FROM {{table}} "; $QryFleet .= "WHERE ("; $QryFleet .= "( "; $QryFleet .= "`fleet_start_galaxy` = ". $planet['galaxy'] ." AND "; $QryFleet .= "`fleet_start_system` = ". $planet['system'] ." AND "; $QryFleet .= "`fleet_start_planet` = ". $planet['planet'] ." AND "; $QryFleet .= "`fleet_start_type` = ". $planet['planet_type'] ." "; $QryFleet .= ") OR ( "; $QryFleet .= "`fleet_end_galaxy` = ". $planet['galaxy'] ." AND "; $QryFleet .= "`fleet_end_system` = ". $planet['system'] ." AND "; $QryFleet .= "`fleet_end_planet` = ". $planet['planet'] ." ) AND "; $QryFleet .= "`fleet_end_type`= ". $planet['planet_type'] ." ) AND "; $QryFleet .= "( `fleet_start_time` < '". time() ."' OR `fleet_end_time` < '". time() ."' );"; $fleetquery = doquery( $QryFleet, 'fleets' ); //根据舰队活动的目标不同,分别进入不同的函数处理 while ($CurrentFleet = mysql_fetch_array($fleetquery)) { switch ($CurrentFleet["fleet_mission"]) { case 1: // 普通攻击 MissionCaseAttack ( $CurrentFleet ); break; case 2: // 这里应该是ACS攻击或者是其他攻击,但是现在没有用 doquery ("DELETE FROM {{table}} WHERE `fleet_id` = '". $CurrentFleet['fleet_id'] ."';", 'fleets'); break; case 3: // 运输 MissionCaseTransport ( $CurrentFleet ); break; case 4: // 派遣 MissionCaseStay ( $CurrentFleet ); break; case 5: // 联合派遣,即ACS防御 MissionCaseStayAlly ( $CurrentFleet ); break; case 6: // 侦查 MissionCaseSpy ( $CurrentFleet ); break; case 7: // 殖民 MissionCaseColonisation ( $CurrentFleet ); break; case 8: // 回收 MissionCaseRecycling ( $CurrentFleet ); break; case 9: // 毁月,厉害了 MissionCaseDestruction ( $CurrentFleet ); break; case 10: // 保留 !! break; case 15: // 远征、探险 MissionCaseExpedition ( $CurrentFleet ); break; //其他情况删除舰队,这个是好习惯 default: { doquery("DELETE FROM {{table}} WHERE `fleet_id` = '". $CurrentFleet['fleet_id'] ."';", 'fleets'); } } } //解锁表 doquery("UNLOCK TABLES", "");
上面的函数结构清晰,代码明了,注释也讲的很清楚了。
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2024年11月26日
2024年11月26日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]