瀏覽代碼

添加任务卡容器

gwang 4 年之前
父節點
當前提交
bb9a3208af

+ 2 - 6
Gameserver/Amfphp/index.php

@@ -47,9 +47,9 @@ class Index {
 
     static function Init() {
         ob_start();                                                             # 开启一重output_buffer截获意外输出.
-        self::$isPost = $_SERVER['REQUEST_METHOD'] == 'POST';                   # 判断是否为Post方式
+        self::$isPost = (isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] == 'POST' : FALSE); # 判断是否为Post方式
         self::$debugMsg = "";                                                   # 记录调试信息
-        self::$ua = $_SERVER['HTTP_USER_AGENT'];                                # 客户端标志
+        self::$ua = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : "";                # 客户端标志
         self::$isDebugging = isset(self::$ua) && \strncmp(self::$ua, "WebRequest", 10) == 0; # 是否将ob_buff的输出信息附加到返回值
         self::$bigRespInKbs = self::$isDebugging ? 1 : 50;                      # 记录超大返回值,测试模式1k,正式50k.
         include_once __DIR__ . '/Services/AppServer.php';                       # 引入主程序
@@ -92,7 +92,6 @@ class Index {
 
     static function OverPass($resp) {
         $ret = JsonUtil::encode($resp);                                         # 返回值, 数据层协议:JSON
-
         $errinfo = ob_get_clean();                                              # 检查并截获异常输出
         if (self::$isDebugging) {                                               # 附加调试信息和异常输出
             $ret .= '<br/><hr/><font color=\'#6666FF\'>' . self::$debugMsg;     # 附加调试信息,
@@ -106,14 +105,11 @@ class Index {
 # 返回数据, 传输层编码(一律deflate压缩)
         $ret = gzdeflate($ret);                                                 # 不管请求时使用的是什么方法, 返回时一律使用deflate压缩
         $retLen = strlen($ret);                                                 # 计算下返回值长度.
-
         if ($retLen > (1024 * self::$bigRespInKbs)) {                           # 长度大于50k时记录超大返回值日志.
             CLog::warn("Big Response(" . req()->cmd . "):\n"                    # 带有\n转义符的时候, 必须用双引号 
                     . "\t" . substr(JsonUtil::encode($resp), 0, 30)             # 返回串(截断为30bytes)
                     . "..., about " . CommUtil::floatToInt($retLen / 1024) . "kbs.", "Index"); # 返回串长度
         }
-        header('Cache-Control: no-store');                                      # 防御缓存设施
-        header('Host:' . PHP_OS . "-" . $_SERVER['SERVER_ADDR']);               # 这里提取服务器地址返给客户端,方便留意负载均衡/弹性扩容的效果
         return $ret;
     }
 

+ 6 - 1
Gameserver/Amfphp/main.php

@@ -2,10 +2,13 @@
 
 namespace loyalsoft;
 
+header('Cache-Control: no-store');                                              # 防御缓存设施
+header('Host:' . PHP_OS . "-" . (isset($_SERVER['SERVER_ADDR']) ? $_SERVER['SERVER_ADDR'] : ""));   # 这里提取服务器地址返给客户端,方便留意负载均衡/弹性扩容的效果
 /**
  * 是否处于编辑器中,辅助智能感知代码的 gwang(⊙ω⊙)
  * @return bool 是否处于编辑器中
  */
+
 function isEditor() {
     return false;                                                               # 永久性的false就好
 }
@@ -137,7 +140,7 @@ function InitZoneId() {
  * @param type $msg
  */
 function Err($err, $msg = "") {
-    if (ErrCode::ok == $err) {
+    if (ErrCode::ok === $err) {
         CLog::err("Err()方法的参数err==ok, 那你还调个蛋的Err()!!!");
     }
     if (Index::$isDebugging) {                                                  # 组织调试信息       
@@ -149,6 +152,7 @@ function Err($err, $msg = "") {
     CLog::err("发生错误直接中断逻辑执行.");
     if (is_string($err)) {                                                      # 防御Err中直接输入字符串的货
         $msg = $err . $msg;
+        CLog::err($msg);
         $err = ErrCode::err_innerfault;
     }
     exit(Index::OverPass(Resp::err($err, $msg)));                               # 直接返回错误信息  
@@ -213,3 +217,4 @@ if (GAME_ONLINE) {
 } else {
     set_time_limit(5);                                                          # 内网不超过5秒
 }
+    

+ 1 - 1
Gameserver/Amfphp/model/Const/GameConfig.php

@@ -4,7 +4,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2020-11-10 17:44:44
+ // 日期: 2020-11-11 09:32:59
 ////////////////////
 
 /**

+ 3 - 10
Gameserver/Amfphp/model/User/StoreModel.php

@@ -16,10 +16,10 @@ class StoreModel extends Object_ext {
     public $items;
 
     /**
-     * 已获得英雄卡牌道具,不叠加
+     * 任务卡道具(存在叠加) 
      * @var array
      */
-    public $cards;
+    public $taskcards;
 
     /**
      * 装备, 能强化升级, 独立于其它道具
@@ -45,13 +45,6 @@ class StoreModel extends Object_ext {
      */
     public $segement;
 
-//    /**
-//     * 七宗罪元素(炼金元素)
-//     * @var object
-//     * @deprecated since version 0
-//     */
-//    public $element;
-
     /**
      * 石头,叠加
      * @var object
@@ -65,7 +58,7 @@ class StoreModel extends Object_ext {
     public function initialize() {
         $this->boxes = GameConfig::primordial_data()->User_Store_boxes;
         //array('701001' => 0, '702002' => 0, '703003' => 0, '704004' => 0);
-        $this->cards = ArrayInit();
+        $this->taskcards = ObjectInit();
         $this->items = JsonUtil::decode(GameConfig::primordial_data()->User_Store_items);         # 初始含有一张黄金通知书
         $this->equipment = JsonUtil::decode(GameConfig::primordial_data()->User_Store_equipment); # 装备初始化数据
         $this->yanling = JsonUtil::decode(GameConfig::primordial_data()->User_Store_yanling);     # 言灵初始化数据

+ 63 - 0
Gameserver/Amfphp/model/User/TaskCardVo.php

@@ -0,0 +1,63 @@
+<?php
+
+namespace loyalsoft;
+
+/**
+ * 任务分支
+ */
+class TaskBranchVo {
+
+    /**
+     * @var float 任务进度(浮点值好了>=1代表完成)
+     */
+    public $progress = 0;
+
+    /**
+     * 用于将进度更新的数据待会给客户端,比如当前PVP积分之类的,在客户端是无法即时拿到数据的
+     * @var object
+     */
+    public $tag1;
+    public $tag2;
+
+    /**
+     * @var int 计数器
+     */
+    public $counter = 0;
+
+}
+
+/**
+ * 任务步骤
+ */
+class TaskStepVo {
+    
+}
+
+/**
+ * Description of TaskCardVo
+ * 任务卡
+ * @author gwang
+ */
+class TaskCardVo {
+
+    /**
+     * @var type 这个物品在玩家身上唯一的id
+     */
+    public $uid;
+
+    /**
+     * @var type 当前数量
+     */
+    public $count;
+
+    /**
+     * @var type 查询用的id
+     */
+    public $typeId;
+
+    /**
+     * @var int 任务状态未完成/已完成:0/1
+     */
+    public $state = 0;
+
+}

+ 2 - 3
Gameserver/Amfphp/test.php

@@ -2,14 +2,13 @@
 
 namespace loyalsoft;
 
-echo ("phpver: " . PHP_VERSION . PHP_EOL);
 include __DIR__ . '/main.php';
+echo ("phpver: " . PHP_VERSION . PHP_EOL);
 //set_time_limit(15);                                                           # 设置执行超时时间
 //
 //require_once ROOTDIR . '/Util/OpenSSLVerify.php';                             # Ps. 这个文件和类名没有对应关系.
 //header('X-Accel-Buffering: no');                                              # nginx 控制头, 关闭buffer
 
 
-var_dump("Hello world!");
 
-var_dump(GameConfig::item_weapon());
+Err("我错了");

+ 34 - 43
Gameserver/Amfphp/util/HttpUtil.php

@@ -7,11 +7,9 @@ namespace loyalsoft;
  * @author gwang (email: mail@wanggangzero.cn)
  * @copyright 2016-3-12 ©SJZ LoyalSoft Corporation & gwang. All rights reserved.
  */
-class HttpUtil
-{
+class HttpUtil {
 
-    public static function parseQueryParas($queryStr)
-    {
+    public static function parseQueryParas($queryStr) {
         $arr = explode('&', $queryStr);
         $queryParas = array();
         foreach ($arr as $value) {
@@ -33,8 +31,7 @@ class HttpUtil
      * @return array 结果数组 {"result":bool,"msg":返回值/curlErrMsg,"errno":curl错误码,"ifno":curlInfo}
      */
     public static function makeRequest($url, $params, $cookie = array(), #
-            $header = array(), $method = 'post', $protocol = 'http')
-    {
+            $header = array(), $method = 'post', $protocol = 'http') {
         $query_string = self::makeQueryString($params);
         $cookie_string = self::makeCookieString($cookie);
 
@@ -102,8 +99,7 @@ class HttpUtil
      * @param type $params  如果是字符串直接返回,(关联)数组或者object(仅取public字段)
      * @return string 编码规范-RFC3986
      */
-    public static function makeQueryString($params)
-    {
+    public static function makeQueryString($params) {
         if (is_string($params)) {
             return $params;
         }
@@ -115,8 +111,7 @@ class HttpUtil
      * @param type $params 如果是字符串直接返回,(关联)数组或者object(仅取public字段)
      * @return string 编码规范-RFC3986
      */
-    public static function makeCookieString($params)
-    {
+    public static function makeCookieString($params) {
         if (is_string($params)) {
             return $params;
         }
@@ -127,18 +122,19 @@ class HttpUtil
      * 取Request过来的Data转为关联数组
      * @return array
      */
-    public static function getQueryParas()
-    {
+    public static function getQueryParas() {
         $param = $_REQUEST;
-        switch ($_SERVER['REQUEST_METHOD']) {
-            case 'GET':
-                $param = $_REQUEST;
-                break;
-            case 'POST':
-                $str = file_get_contents('php://input');
-                $param = array_merge($param, ( strlen($str) > 0 ? self::parseQueryParas($str) : array()));
-                break;
-            default:
+        if (isset($_SERVER['REQUEST_METHOD'])) {
+            switch ($_SERVER['REQUEST_METHOD']) {
+                case 'GET':
+                    $param = $_REQUEST;
+                    break;
+                case 'POST':
+                    $str = file_get_contents('php://input');
+                    $param = array_merge($param, ( strlen($str) > 0 ? self::parseQueryParas($str) : array()));
+                    break;
+                default:
+            }
         }
         return $param;
     }
@@ -147,17 +143,18 @@ class HttpUtil
      * 取Request过来的数据流转为字符串
      * @return string
      */
-    public static function getQueryString()
-    {
+    public static function getQueryString() {
         $queryStr = null;
-        switch ($_SERVER['REQUEST_METHOD']) {
-            case 'GET':
-                $queryStr = $_SERVER['QUERY_STRING'];
-                break;
-            case 'POST':
-                $queryStr = file_get_contents('php://input');
-                break;
-            default:
+        if (isset($_SERVER['REQUEST_METHOD'])) {
+            switch ($_SERVER['REQUEST_METHOD']) {
+                case 'GET':
+                    $queryStr = $_SERVER['QUERY_STRING'];
+                    break;
+                case 'POST':
+                    $queryStr = file_get_contents('php://input');
+                    break;
+                default:
+            }
         }
         return $queryStr;
     }
@@ -165,8 +162,7 @@ class HttpUtil
     /**
      * 用于确保服务器只响应POST方法.
      */
-    public static function PostOnly()
-    {
+    public static function PostOnly() {
         if ($_SERVER['REQUEST_METHOD'] != 'POST') {
             header('Allow: POST ', false, 405);
             exit();
@@ -177,8 +173,7 @@ class HttpUtil
      * 获取客户端ip地址及端口
      * @return ip:port
      */
-    public static function getClientEP()
-    {
+    public static function getClientEP() {
         return $_SERVER['REMOTE_ADDR'] . ":" . $_SERVER['REMOTE_PORT'];
     }
 
@@ -186,8 +181,7 @@ class HttpUtil
      * 获取客户端IP地址(摘自discuz)
      * @return string
      */
-    public static function clientIP()
-    {
+    public static function clientIP() {
         $ip = '未知IP';
         if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
             return self::is_ip($_SERVER['HTTP_CLIENT_IP']) ? $_SERVER['HTTP_CLIENT_IP'] : $ip;
@@ -200,8 +194,7 @@ class HttpUtil
         }
     }
 
-    private static function is_ip($str)
-    {
+    private static function is_ip($str) {
         $ip = explode('.', $str);
         for ($i = 0; $i < count($ip); $i++) {
             if ($ip[$i] > 255) {
@@ -217,8 +210,7 @@ class HttpUtil
  * 取Request过来的Data转为关联数组
  * @return array
  */
-function query_paras()
-{
+function query_paras() {
     return HttpUtil::getQueryParas();
 }
 
@@ -226,7 +218,6 @@ function query_paras()
  * 取Request过来的数据流转为字符串
  * @return string
  */
-function query_string()
-{
+function query_string() {
     return HttpUtil::getQueryString();
 }

+ 1 - 20
Gameserver/nbproject/private/private.xml

@@ -11,25 +11,6 @@
         </file>
     </editor-bookmarks>
     <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
-        <group>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/util/CLog.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/index.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/base/ErrCode.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/FightProc/PVPProc.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/util/ErrHandler.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/util/CDbUtil.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/base/Req.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/util/StlUtil.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/util/UtilInclude.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/model/User/UserGameModel.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/UserProc.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/main.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/util/CommUtil.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/test.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/base/Object_ext.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/model/User/UserPVPModel.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/SystemProc.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/util/dao.php</file>
-        </group>
+        <group/>
     </open-files>
 </project-private>