瀏覽代碼

1. 注释掉dao模块中的过时函数. 2. 替换掉CipheredBase32中过时的花括号取索引方法. 3. 战力榜信息修改返回json结构.

gwang 5 年之前
父節點
當前提交
d200fa0ddd

+ 9 - 0
Gameserver/Amfphp/main.php

@@ -162,6 +162,15 @@ function my_Assert($condition, $err) {
     DebugHelper::assert($condition, $err);
 }
 
+/**
+ * 如果变量为null则取默认值
+ * @param type $obj
+ * @param type $defaultValue
+ */
+function my_null_default($obj, $defaultValue) {
+    return ($obj === null) ? $defaultValue : $obj;                              # 注意这里必须用===判断
+}
+
 /**
  * 确保指定变量不为空(若为空则用stdclass初始化)
  * @param \stdClass $obj

+ 1 - 1
Gameserver/Amfphp/process/ActiveProc/CipheredBase32.php

@@ -56,7 +56,7 @@ class CipheredBase32 {
             $bytesof5bits = array();                                            # 将字符串转为索引数组:=[0..32]{10}
             $cipher = self::charMap();
             for ($i = 0; $i < $codeLength; $i++) {
-                $c = $codeString{$i};                                           # 取字符(方括号和花括号可以互相替代使用)
+                $c = $codeString[$i];                                           # 取字符
                 $b = strpos($cipher, $c);                                       # 按照密码本还原真实字符的索引
                 if ($b < 32 && $b > -1) {                                       # 索引范围校验
                     $bytesof5bits[] = $b;

+ 14 - 7
Gameserver/Amfphp/process/RankProc.php

@@ -24,7 +24,8 @@ class RankProc {
                 return self::DrawFpowerBreakThrougReward($req);
             case CmdCode::rank_fpower_getRanking:                               # 6603 查询玩家战斗力排名
                 return self::GetRankingOfUserFightPower($req);
-
+            case CmdCode::rank_fpower_getTop1Power:                             # 6604 查询top1战斗力
+                return self::RankFpowerGetTop1Power($req);
             default:
                 return Resp::err(ErrCode::cmd_err);
         }
@@ -35,29 +36,35 @@ class RankProc {
      * @param req $req
      */
     static function GetFpowerRank($req) {
+        echoLine("www");
         $RowsPerPage = 10;                                                      # 常量:每页数据条数10条
         $MaxRankId = 100;                                                       # 常量:最大上榜人数.
         $pageId = $req->paras[0];                                               # 参数:页码, 从零开始.
 
         $key = MemKey_GameRun::Game_FightPowerRank_zset($req->zoneid);          # redis key
-        $startid = 0 + $RowsPerPage * $pageId;                                  # 起始id
+        $startid = 0 + $RowsPerPage * ($pageId - 1);                            # 起始id
         $endId = $startid + $RowsPerPage - 1;                                   # 结束id
         if ($endId > $MaxRankId) {                                              # 榜单长度 
             $endId = $MaxRankId;
         }
+        var_dump($key);
+        var_dump($startid);
+        var_dump($endId);
         $uids = $req->mem->zrevrange($key, $startid, $endId, true);             # 取上榜玩家
+        var_dump($uids);
         $userInfos = array();                                                   # 玩家信息
         foreach ($uids as $uid => $fpower) {
             $uinfo = UserProc::getUserInfo($req->mem, $req->zoneid, $uid);      # 读取玩家信息
             $userInfos[] = array(#                                              # 拼装玩家信息
                 'uid' => $uid,
-                'name' => $uinfo->game->name,
-                'level' => $uinfo->game->level,
-                'power' => $fpower,
-                'headImg' => $uinfo->game->img
+                'name' => my_null_default($uinfo->game->name, ""),
+                'level' => my_null_default($uinfo->game->level, 1),
+                'power' => my_null_default($fpower, 0),
+                'headImg' => my_null_default($uinfo->game->img, "")
             );
         }
-        Resp::ok($userInfos);                                                   # 返回值
+        echoLine("www");
+        return Resp::ok(array('rankInfo' => $userInfos));                       # 返回值
     }
 
     /**

+ 11 - 11
Gameserver/Amfphp/test.php

@@ -9,16 +9,16 @@ include __DIR__ . '/main.php';
 echoLine("phpver:" . PHP_VERSION);
 
 
-$key = MemKey_GameRun::Game_FightPowerRank_zset(1);                             # redis key
-var_dump($key);
-//var_dump(gMem());
-var_dump(gMem()->get("test"));
-$no1 = gMem()->zrevrange($key, 0, 0, true);                                     # 取第一名信息
-$_power = 0;
+$a;
+$b = "wg";
 
-foreach ($no1 as $uid => $power) {
-    $_power = $power;
-    break;
-}
+var_dump(my_null_default($a, $b));
+
+var_dump(my_null_default(0, $b));
+$a = 0;
+var_dump(my_null_default($a, $b));
+$a = "";
+var_dump(my_null_default($a, $b));
+$a = [];
+var_dump(my_null_default($a, $b));
 
-var_dump($power);

+ 1 - 1
Gameserver/Amfphp/util/dao.php

@@ -1203,7 +1203,7 @@ class sql {
     private function __construct($table = '') {
         global $dbh;
         $this->dbh = $dbh;
-        $this->magicQuote = get_magic_quotes_gpc();
+        $this->magicQuote = false;  // get_magic_quotes_gpc();
     }
 
     /**