Эх сурвалжийг харах

提交本周期修改: 玩家信息面板, 角标系统.

gwang 4 жил өмнө
parent
commit
a3d5c29cfa
45 өөрчлөгдсөн 415 нэмэгдсэн , 1228 устгасан
  1. 1 0
      Gameserver/Amfphp/AutoLoad.php
  2. 54 36
      Gameserver/Amfphp/base/CmdCode.php
  3. 10 5
      Gameserver/Amfphp/base/OpeCode.php
  4. 1 1
      Gameserver/Amfphp/model/Const/GameConfig.php
  5. 0 131
      Gameserver/Amfphp/model/Const/GoodsItemModel.php
  6. 3 3
      Gameserver/Amfphp/model/Const/globalsettings.php
  7. 0 48
      Gameserver/Amfphp/model/Const/sm_announcement.php
  8. 0 38
      Gameserver/Amfphp/model/Const/sm_audio.php
  9. 0 79
      Gameserver/Amfphp/model/Const/sm_buff.php
  10. 0 53
      Gameserver/Amfphp/model/Const/sm_buffeffect.php
  11. 0 58
      Gameserver/Amfphp/model/Const/sm_bullet.php
  12. 0 28
      Gameserver/Amfphp/model/Const/sm_dragonbone_paras.php
  13. 1 1
      Gameserver/Amfphp/model/Const/sm_gate.php
  14. 0 53
      Gameserver/Amfphp/model/Const/sm_gate_story.php
  15. 0 43
      Gameserver/Amfphp/model/Const/sm_hero_skin.php
  16. 0 33
      Gameserver/Amfphp/model/Const/sm_localtexts.php
  17. 0 38
      Gameserver/Amfphp/model/Const/sm_plot.php
  18. 0 48
      Gameserver/Amfphp/model/Const/sm_pvp_activityreward.php
  19. 0 53
      Gameserver/Amfphp/model/Const/sm_pvp_leaguereward.php
  20. 0 73
      Gameserver/Amfphp/model/Const/sm_pvp_leaguescore.php
  21. 0 110
      Gameserver/Amfphp/model/Const/sm_skill.php
  22. 0 108
      Gameserver/Amfphp/model/Const/sm_skill_proty.php
  23. 0 38
      Gameserver/Amfphp/model/Const/sm_skill_shengji.php
  24. 1 1
      Gameserver/Amfphp/model/Const/sm_sysmail.php
  25. 6 0
      Gameserver/Amfphp/model/User/PrivateStateModel.php
  26. 7 2
      Gameserver/Amfphp/model/User/UserBaseInfo.php
  27. 1 1
      Gameserver/Amfphp/model/User/UserGuildModel.php
  28. 5 10
      Gameserver/Amfphp/model/User/UserProfile.php
  29. 1 2
      Gameserver/Amfphp/process/ActiveProc.php
  30. 4 1
      Gameserver/Amfphp/process/EmailProc.php
  31. 32 17
      Gameserver/Amfphp/process/EventProc.php
  32. 152 0
      Gameserver/Amfphp/process/EventProc/CornerSignEventProc.php
  33. 4 4
      Gameserver/Amfphp/process/FightProc/PVPProc.php
  34. 1 1
      Gameserver/Amfphp/process/GuildProc.php
  35. 1 0
      Gameserver/Amfphp/process/HeroProc.php
  36. 11 13
      Gameserver/Amfphp/process/PayProc.php
  37. 6 5
      Gameserver/Amfphp/process/RankProc.php
  38. 23 0
      Gameserver/Amfphp/process/StoreProc.php
  39. 10 44
      Gameserver/Amfphp/process/SystemProc.php
  40. 2 0
      Gameserver/Amfphp/process/TaskProc.php
  41. 69 34
      Gameserver/Amfphp/process/UserProc.php
  42. 2 2
      Gameserver/Docs/DecodePetconf.php
  43. 2 2
      Gameserver/Docs/EncodePetconf.php
  44. 4 10
      Gameserver/nbproject/private/private.xml
  45. 1 1
      Gameserver/nbproject/project.properties

+ 1 - 0
Gameserver/Amfphp/AutoLoad.php

@@ -50,6 +50,7 @@ require_once ROOTDIR . '/base/Include.php';
 require_once ROOTDIR . '/process/PreProc.php';                                  # 预加载逻辑
 require_once ROOTDIR . '/process/PreProc.php';                                  # 预加载逻辑
 require_once ROOTDIR . '/process/UserProc.php';                                 # 玩家处理逻辑
 require_once ROOTDIR . '/process/UserProc.php';                                 # 玩家处理逻辑
 require_once ROOTDIR . '/process/FightProc/PVPProc.php';                        # (userproc中引用到了)
 require_once ROOTDIR . '/process/FightProc/PVPProc.php';                        # (userproc中引用到了)
+require_once ROOTDIR . '/process/EventProc/CornerSignEventProc.php';            # 角标更新各处插入
 require_once ROOTDIR . '/model/User/UserInfoMo.php';                            # 玩家全部数据模型
 require_once ROOTDIR . '/model/User/UserInfoMo.php';                            # 玩家全部数据模型
 require_once ROOTDIR . '/model/User/UserGameModel.php';                         # 游戏数据
 require_once ROOTDIR . '/model/User/UserGameModel.php';                         # 游戏数据
 require_once ROOTDIR . '/model/User/UserProfile.php';                           # 玩家画像
 require_once ROOTDIR . '/model/User/UserProfile.php';                           # 玩家画像

+ 54 - 36
Gameserver/Amfphp/base/CmdCode.php

@@ -76,31 +76,6 @@ class CmdCode {
 //
 //
 // </editor-fold>
 // </editor-fold>
 //
 //
-// </editor-fold>
-// 
-// <editor-fold defaultstate="collapsed" desc="商城 - 71xx ">
-// 
-
-    /**
-     * 限购礼包主界面
-     */
-    const shop_limit_maininfo = 7101;
-
-    /**
-     * 购买限购礼包
-     */
-    const shop_limit_buy = 7102;
-
-    /**
-     * 月卡信息
-     */
-    const shop_monthlyVIP_Info = 7103;
-
-    /**
-     * 购买月卡
-     */
-    const shop_monthlyVIP_Buy = 7104;
-// 
 // </editor-fold>
 // </editor-fold>
     //
     //
     // <editor-fold defaultstate="collapsed" desc="用户操作码 - 60xx">
     // <editor-fold defaultstate="collapsed" desc="用户操作码 - 60xx">
@@ -146,24 +121,34 @@ class CmdCode {
     const cmd_user_completeNewbieGuide = 6007;
     const cmd_user_completeNewbieGuide = 6007;
 
 
     /**
     /**
-     * [6008] 设置/修改玩家昵称
+     * [6008] 发放新手引导所需卡牌
      */
      */
-    const cmd_user_setNickname = 6008;
+    const cmd_user_setNewbieGuideCards = 6008;
+
+    /** [609]
+     * 新手引导——设置结束标志位
+     */
+    const cmd_user_setNewbieGuideOver = 6009;
 
 
     /**
     /**
-     * [6009] 发放新手引导所需卡牌
+     * [6010] 设置/修改玩家昵称
      */
      */
-    const cmd_user_setNewbieGuideCards = 6009;
+    const cmd_user_setNickname = 6010;
 
 
-    /** [6010]
+    /** [6011]
      * 修改头像框
      * 修改头像框
      */
      */
-    const cmd_user_SetUserImageBorder = 6010;
+    const cmd_user_SetUserHeadImageBorder = 6011;
 
 
-    /** [6011]
-     * 新手引导——设置结束标志位
+    /**
+     * 更换玩家形象
+     */
+    const cmd_user_setUserImage = 6012;
+
+    /**
+     * 更换玩家头像
      */
      */
-    const cmd_user_setNewbieGuideOver = 6011;
+    const cmd_user_changeUserHeadImg = 6013;
     // </editor-fold>
     // </editor-fold>
     //
     //
     // <editor-fold defaultstate="collapsed" desc="好友操作码 - 61xx">
     // <editor-fold defaultstate="collapsed" desc="好友操作码 - 61xx">
@@ -806,7 +791,6 @@ class CmdCode {
 
 
 // </editor-fold>
 // </editor-fold>
 //
 //
-//
 //
 //
     // <editor-fold defaultstate="collapsed" desc="公会操作码 - 70xx开始(ope)">
     // <editor-fold defaultstate="collapsed" desc="公会操作码 - 70xx开始(ope)">
 
 
@@ -964,9 +948,43 @@ class CmdCode {
      * 【公会战】 接受,战斗
      * 【公会战】 接受,战斗
      */
      */
     const cmd_guild_fight = 7030;
     const cmd_guild_fight = 7030;
-
     //    const
     //    const
 // </editor-fold>
 // </editor-fold>
+// 
+// <editor-fold defaultstate="collapsed" desc="商城 - 71xx ">
+// 
+
+    /**
+     * 限购礼包主界面
+     */
+    const shop_limit_maininfo = 7101;
+
+    /**
+     * 购买限购礼包
+     */
+    const shop_limit_buy = 7102;
+
+    /**
+     * 月卡信息
+     */
+    const shop_monthlyVIP_Info = 7103;
+
+    /**
+     * 购买月卡
+     */
+    const shop_monthlyVIP_Buy = 7104;
+// 
+// </editor-fold>
+// 
+// <editor-fold defaultstate="collapsed" desc="事件操作码 - 72xx">
+
+    /**
+     *  查询角标事件通知
+     */
+    const cmd_event_GetNotifications = 7201;
+
+// </editor-fold>
+// 
     // <editor-fold defaultstate="collapsed" desc="    反射方法    ">
     // <editor-fold defaultstate="collapsed" desc="    反射方法    ">
 
 
     /**
     /**

+ 10 - 5
Gameserver/Amfphp/base/OpeCode.php

@@ -43,11 +43,6 @@ class OpeCode {
      */
      */
     const Active = 605;
     const Active = 605;
 
 
-    /**
-     * 排行榜功能
-     */
-    const Rank = 611;
-
     /**
     /**
      * 战斗功能
      * 战斗功能
      */
      */
@@ -69,6 +64,16 @@ class OpeCode {
     /** 公会 */
     /** 公会 */
     const Guild = 610;
     const Guild = 610;
 
 
+    /**
+     * 排行榜功能
+     */
+    const Rank = 611;
+
+    /**
+     * 事件功能
+     */
+    const Event = 612;
+
 //
 //
 //
 //
     // <editor-fold defaultstate="collapsed" desc="反射方法">
     // <editor-fold defaultstate="collapsed" desc="反射方法">

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

@@ -4,7 +4,7 @@
  // 由CodeGenerator创建。
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
  // author: gwang 
- // 日期: 2020-08-21 08:55:03
+ // 日期: 2020-09-02 14:55:33
 ////////////////////
 ////////////////////
 
 
 /**
 /**

+ 0 - 131
Gameserver/Amfphp/model/Const/GoodsItemModel.php

@@ -1,131 +0,0 @@
-<?php
-
-/**
- * 商品数据模型 *
- * @author jgao
- */
-class GoodsItemModel
-{
-    //put your code here
-
-    /**
-     * 手动id
-     * @var type
-     */
-    public $id;
-
-    /**
-     * 名称
-     * @var string
-     */
-    public $name;
-
-    /**
-     * 封包类型 1=单一物品 2=多个物品
-     * @var int
-     */
-    public $packageType;
-
-    /**
-     * 商店第一级菜单 1=龙蛋 2=栖息地 3=建筑 4=装饰 5=兑换
-     * @var type
-     */
-    public $shopFist;
-
-    /**
-     * 商店2级菜单 数组 同时存在多个菜单中 [1, 2, 3]
-     * @var type
-     */
-    public $shopSecond;
-
-    /**
-     * 内容 一个对象 里面是物品的id:数量 金币id=1 宝石=2 食物=3 ...
-     * @var type
-     */
-    public $content;
-
-    /**
-     * 获取方式 1=商店出售 2=每日领取 3=目标奖励 4=活动奖励
-     * @var type
-     */
-    public $getType;
-
-    /**
-     * 商店出售价格 {"g":100} 金币和宝石
-     * @var type
-     */
-    public $prize;
-
-    /**
-     * 商店定价-钻石
-     * @var int 钻石定价
-     */
-    public $cashPrice;
-
-    /**
-     * 商店定价-金币
-     * @var int 金币定价
-     */
-    public $goldPrice;
-
-    /**
-     *  二级货币价格
-     * @var type
-     */
-    public $cost;
-
-    /**
-     * 商店折扣是否开启
-     * @var type
-     */
-    public $isDiscount;
-
-    /**
-     * 折扣开始时间戳
-     * @var int
-     */
-    public $discountStartTs;
-
-    /**
-     * 折扣结束时间戳
-     * @var int
-     */
-    public $discountEndTs;
-
-    /**
-     * 折扣数量(1~100,100为不打折)
-     * @var int
-     */
-    public $discountRate;
-
-    /**
-     * 是否上架 1=上架, 0=否,非卖品
-     * @var type
-     */
-    public $forSale;
-
-    /**
-     * 物品图片
-     * @var type
-     */
-    public $iamge;
-
-    /**
-     * 是否新品
-     * @var type
-     */
-    public $isNew;
-
-    /**
-     * 额外属性 {"isActive":true},活动物品
-     * @var type
-     */
-    public $properties;
-
-    /**
-     * 商品描述
-     * @var string
-     */
-    public $describe;
-
-}

+ 3 - 3
Gameserver/Amfphp/model/Const/globalsettings.php

@@ -4,7 +4,7 @@
  // 由CodeGenerator创建。
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
  // author: gwang 
- // 日期: 2020-05-09 15:07:31
+ // 日期: 2020-08-28 11:13:16
 ////////////////////
 ////////////////////
 
 
 
 
@@ -262,9 +262,9 @@ class globalsettings
     public $bigROpenBoxTimesDayliy_Condition;
     public $bigROpenBoxTimesDayliy_Condition;
 
 
     /**
     /**
-    * @var Object 修改昵称消耗的道具itemid,0代表不消耗  
+    * @var Object 修改昵称消耗的钻石,0代表不消耗  
     */
     */
-    public $User_SetNickname_CostItemid;
+    public $User_SetNickname_Cost;
 
 
     /**
     /**
     * @var Object 新手引导中发放所需碎片(cardid,numb;cardid,num...)  
     * @var Object 新手引导中发放所需碎片(cardid,numb;cardid,num...)  

+ 0 - 48
Gameserver/Amfphp/model/Const/sm_announcement.php

@@ -1,48 +0,0 @@
-<?php
-
-////////////////////
- // 由CodeGenerator创建。
- // Copyright (C) gwang (mail@wanggangzero.cn), Loyalsoft@sjz Inc
- // author: gwang 
- // 日期: 2017-10-27 14:27:45
-////////////////////
-
-
-/**
- * Static Model announcement 
- */
-class sm_announcement
-{
-
-/**
- * @var String 公告名称 
- */
-  public $name;
-
-/**
- * @var String 公告日期 
- */
-  public $time;
-
-/**
- * @var String 公告内容 
- */
-  public $content;
-
-/**
- * @var String 公告使用的图片 
- */
-  public $image;
-
-/**
- * @var String 公告链接地址 
- */
-  public $url;
-
-/**
- * @var Int32 是否开启 default(1)
- */
-  public $ison;
-
-}
-

+ 0 - 38
Gameserver/Amfphp/model/Const/sm_audio.php

@@ -1,38 +0,0 @@
-<?php
-
-////////////////////
- // 由CodeGenerator创建。
- // Copyright (C) gwang (mail@wanggangzero.cn), Loyalsoft@sjz Inc
- // author: gwang 
- // 日期: 2017-10-27 14:27:45
-////////////////////
-
-
-/**
- * Static Model audio 
- */
-class sm_audio
-{
-
-/**
- * @var String 动作音效 
- */
-  public $audioClip;
-
-/**
- * @var String 音效类型 
- */
-  public $audioType;
-
-/**
- * @var String 音效参数 
- */
-  public $audioPara;
-
-/**
- * @var Int32 是否循环播放[ 0 播一遍,1循环播放] default(0)
- */
-  public $isLoop;
-
-}
-

+ 0 - 79
Gameserver/Amfphp/model/Const/sm_buff.php

@@ -1,79 +0,0 @@
-<?php
-
-////////////////////
- // 由CodeGenerator创建。
- // Copyright (C) gwang (mail@wanggangzero.cn), Loyalsoft@sjz Inc
- // author: gwang 
- // 日期: 2017-11-06 18:59:02
-////////////////////
-
-
-/**
- * Static Model buff 
- */
-class sm_buff
-{
-
-/**
- * @var Int32  
- */
-  public $id;
-
-/**
- * @var String  
- */
-  public $name;
-
-/**
- * @var String 描述 
- */
-  public $desc;
-
-/**
- * @var Int32 目标类型 default(0)
- */
-  public $aim;
-
-/**
- * @var Int32 当前生命,直接改数值=11,
-最大生命= 12,
-攻击 = 21,
-防御 = 22,
-敏捷= 23,
-暴击几率= 24,
-法术强度= 25,
-魔法抗力 = 26,
-当前能量值 =27,
-晕眩{不能使用任何技能} = 30,
-沉默 {不能使用主动技能,可以普攻} = 31,
-护盾 = 40, default(0)
- */
-  public $effect;
-
-/**
- * @var String buff值 
- */
-  public $effectvalue;
-
-/**
- * @var Int32 执行次数 default(0)
- */
-  public $times;
-
-/**
- * @var String  
- */
-  public $duration;
-
-/**
- * @var String 资源/icon 
- */
-  public $icon;
-
-/**
- * @var String  
- */
-  public $res;
-
-}
-

+ 0 - 53
Gameserver/Amfphp/model/Const/sm_buffeffect.php

@@ -1,53 +0,0 @@
-<?php
-
-////////////////////
- // 由CodeGenerator创建。
- // Copyright (C) gwang (mail@wanggangzero.cn), Loyalsoft@sjz Inc
- // author: gwang 
- // 日期: 2017-10-27 14:27:45
-////////////////////
-
-
-/**
- * Static Model buffeffect 
- */
-class sm_buffeffect
-{
-
-/**
- * @var String  
- */
-  public $name;
-
-/**
- * @var String 关联特效名称 
- */
-  public $resname;
-
-/**
- * @var Int32 对应效果id 
- */
-  public $effecttype;
-
-/**
- * @var Double 效果基础值 
- */
-  public $val;
-
-/**
- * @var Double  效果成长系数 
- */
-  public $inc;
-
-/**
- * @var String 附加参数1 
- */
-  public $param;
-
-/**
- * @var Int32 buff附加点,对应EBulletHitPointType枚举 
- */
-  public $hitpt;
-
-}
-

+ 0 - 58
Gameserver/Amfphp/model/Const/sm_bullet.php

@@ -1,58 +0,0 @@
-<?php
-
-////////////////////
- // 由CodeGenerator创建。
- // Copyright (C) gwang (mail@wanggangzero.cn), Loyalsoft@sjz Inc
- // author: gwang 
- // 日期: 2017-11-06 10:39:25
-////////////////////
-
-
-/**
- * Static Model bullet 
- */
-class sm_bullet
-{
-
-/**
- * @var String  
- */
-  public $audioId;
-
-/**
- * @var Int32  
- */
-  public $tracktype;
-
-/**
- * @var Int32  default(0)
- */
-  public $shake;
-
-/**
- * @var Int32  default(0)
- */
-  public $drag;
-
-/**
- * @var String  
- */
-  public $shootSound;
-
-/**
- * @var String  
- */
-  public $sendingSound;
-
-/**
- * @var String  
- */
-  public $bomSound;
-
-/**
- * @var Int32 特效运行时间(以作为逻辑上检测是否已经释放完技能的标准时间) default(2000)
- */
-  public $runtime;
-
-}
-

+ 0 - 28
Gameserver/Amfphp/model/Const/sm_dragonbone_paras.php

@@ -1,28 +0,0 @@
-<?php
-
-////////////////////
- // 由CodeGenerator创建。
- // Copyright (C) gwang (mail@wanggangzero.cn), Loyalsoft@sjz Inc
- // author: gwang 
- // 日期: 2017-10-27 14:27:45
-////////////////////
-
-
-/**
- * Static Model dragonbone_paras 
- */
-class sm_dragonbone_paras
-{
-
-/**
- * @var String  
- */
-  public $dragonBoneOffset;
-
-/**
- * @var Int32 身高 default(1600)
- */
-  public $height;
-
-}
-

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

@@ -4,7 +4,7 @@
  // 由CodeGenerator创建。
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
  // author: gwang 
- // 日期: 2020-08-03 09:49:47
+ // 日期: 2020-09-01 10:12:39
 ////////////////////
 ////////////////////
 
 
 
 

+ 0 - 53
Gameserver/Amfphp/model/Const/sm_gate_story.php

@@ -1,53 +0,0 @@
-<?php
-
-////////////////////
- // 由CodeGenerator创建。
- // Copyright (C) gwang (mail@wanggangzero.cn), Loyalsoft@sjz Inc
- // author: gwang 
- // 日期: 2017-10-27 14:27:45
-////////////////////
-
-
-/**
- * Static Model gate_story 
- */
-class sm_gate_story
-{
-
-/**
- * @var String 剧情名称 
- */
-  public $storyName;
-
-/**
- * @var String 触发剧情的地图页码,所在页码(0开始算第一页) 
- */
-  public $mapPageId;
-
-/**
- * @var String 触发剧情的关卡地图编号 
- */
-  public $mapNodeId;
-
-/**
- * @var String 剧情结局走向分支流 
- */
-  public $storyChooseResult;
-
-/**
- * @var Int32 剧情对话内容ID default(0)
- */
-  public $storyDialogId;
-
-/**
- * @var String 剧情关的奖励内容 
- */
-  public $storyGateReward;
-
-/**
- * @var DateTime 上次修改 default(CURRENT_TIMESTAMP)
- */
-  public $lastupdate;
-
-}
-

+ 0 - 43
Gameserver/Amfphp/model/Const/sm_hero_skin.php

@@ -1,43 +0,0 @@
-<?php
-
-////////////////////
- // 由CodeGenerator创建。
- // Copyright (C) gwang (mail@wanggangzero.cn), Loyalsoft@sjz Inc
- // author: gwang 
- // 日期: 2017-10-27 14:27:45
-////////////////////
-
-
-/**
- * Static Model hero_skin 
- */
-class sm_hero_skin
-{
-
-/**
- * @var String 皮肤名称 
- */
-  public $skinName;
-
-/**
- * @var Int32 皮肤对应的英雄 
- */
-  public $heroId;
-
-/**
- * @var String 皮肤对应英雄的 龙骨模型ID 
- */
-  public $dragonModeId;
-
-/**
- * @var String 皮肤图标 
- */
-  public $skinIcon;
-
-/**
- * @var String 称号图标 
- */
-  public $chenghaoIcon;
-
-}
-

+ 0 - 33
Gameserver/Amfphp/model/Const/sm_localtexts.php

@@ -1,33 +0,0 @@
-<?php
-
-////////////////////
- // 由CodeGenerator创建。
- // Copyright (C) gwang (mail@wanggangzero.cn), Loyalsoft@sjz Inc
- // author: gwang 
- // 日期: 2017-10-27 14:27:45
-////////////////////
-
-
-/**
- * Static Model localtexts 
- */
-class sm_localtexts
-{
-
-/**
- * @var String 中文 
- */
-  public $zh;
-
-/**
- * @var String 英文 
- */
-  public $en;
-
-/**
- * @var String 日文 
- */
-  public $jp;
-
-}
-

+ 0 - 38
Gameserver/Amfphp/model/Const/sm_plot.php

@@ -1,38 +0,0 @@
-<?php
-
-////////////////////
- // 由CodeGenerator创建。
- // Copyright (C) gwang (mail@wanggangzero.cn), Loyalsoft@sjz Inc
- // author: gwang 
- // 日期: 2017-10-27 14:27:45
-////////////////////
-
-
-/**
- * Static Model plot 
- */
-class sm_plot
-{
-
-/**
- * @var String  
- */
-  public $position;
-
-/**
- * @var String  
- */
-  public $leftright;
-
-/**
- * @var String  
- */
-  public $icon;
-
-/**
- * @var String  
- */
-  public $dialogue;
-
-}
-

+ 0 - 48
Gameserver/Amfphp/model/Const/sm_pvp_activityreward.php

@@ -1,48 +0,0 @@
-<?php
-
-////////////////////
- // 由CodeGenerator创建。
- // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
- // author: gwang 
- // 日期: 2020-02-12 08:05:25
-////////////////////
-
-
-/**
- * Static Model pvp_activityreward 
- */
-class sm_pvp_activityreward
-{
-
-    /**
-    * @var Int32 用途未知!!请到数据库中添加字段注释。  
-    */
-    public $id;
-
-    /**
-    * @var String 名称  
-    */
-    public $activityName;
-
-    /**
-    * @var Int32 需要的活跃度值  
-    */
-    public $activityNum;
-
-    /**
-    * @var String 奖励内容(例: 399001,450)  
-    */
-    public $reward1;
-
-    /**
-    * @var String 奖励内容2(例: 399001,450)  
-    */
-    public $reward2;
-
-    /**
-    * @var String 奖励内容3(例: 399001,450)  
-    */
-    public $reward3;
-
-}
-

+ 0 - 53
Gameserver/Amfphp/model/Const/sm_pvp_leaguereward.php

@@ -1,53 +0,0 @@
-<?php
-
-////////////////////
- // 由CodeGenerator创建。
- // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
- // author: gwang 
- // 日期: 2020-02-12 08:05:25
-////////////////////
-
-
-/**
- * Static Model pvp_leaguereward 
- */
-class sm_pvp_leaguereward
-{
-
-    /**
-    * @var Int32 用途未知!!请到数据库中添加字段注释。  
-    */
-    public $id;
-
-    /**
-    * @var String 区段名称  
-    */
-    public $leagueName;
-
-    /**
-    * @var Int32 区间段的一级分类  
-    */
-    public $leagueType;
-
-    /**
-    * @var Int32 一级分类下的子集  
-    */
-    public $subType;
-
-    /**
-    * @var String 奖励内容1(例: 399001,450)  
-    */
-    public $reward1;
-
-    /**
-    * @var String 奖励内容2(例: 399001,450)  
-    */
-    public $reward2;
-
-    /**
-    * @var String 奖励内容3(例: 399001,450)  
-    */
-    public $reward3;
-
-}
-

+ 0 - 73
Gameserver/Amfphp/model/Const/sm_pvp_leaguescore.php

@@ -1,73 +0,0 @@
-<?php
-
-////////////////////
- // 由CodeGenerator创建。
- // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
- // author: gwang 
- // 日期: 2020-02-12 08:05:26
-////////////////////
-
-
-/**
- * Static Model pvp_leaguescore 
- */
-class sm_pvp_leaguescore
-{
-
-    /**
-    * @var Int32 用途未知!!请到数据库中添加字段注释。  
-    */
-    public $id;
-
-    /**
-    * @var String 区间段名称  
-    */
-    public $leagueName;
-
-    /**
-    * @var String 区间段使用图标  
-    */
-    public $leagueIcon;
-
-    /**
-    * @var Int32 区间段的一级分类  
-    */
-    public $leagueType;
-
-    /**
-    * @var Int32 区间段的 子分类(棣属于一级分类)  
-    */
-    public $subType;
-
-    /**
-    * @var Int32 区间段的最低分数值  
-    */
-    public $minScore;
-
-    /**
-    * @var Int32 区间段的最高分数值  
-    */
-    public $maxScore;
-
-    /**
-    * @var Int32 用途未知!!请到数据库中添加字段注释。  
-    */
-    public $faild;
-
-    /**
-    * @var Int32 要求场次  
-    */
-    public $changci;
-
-    /**
-    * @var Int32 要求胜率  
-    */
-    public $shenglv;
-
-    /**
-    * @var Int32 用途未知!!请到数据库中添加字段注释。  
-    */
-    public $xiajiang;
-
-}
-

+ 0 - 110
Gameserver/Amfphp/model/Const/sm_skill.php

@@ -1,110 +0,0 @@
-<?php
-
-////////////////////
- // 由CodeGenerator创建。
- // Copyright (C) gwang (mail@wanggangzero.cn), Loyalsoft@sjz Inc
- // author: gwang 
- // 日期: 2017-11-06 11:06:56
-////////////////////
-
-
-/**
- * Static Model skill 
- */
-class sm_skill
-{
-
-/**
- * @var String  
- */
-  public $name;
-
-/**
- * @var String icon 
- */
-  public $icon;
-
-/**
- * @var String 己方打敌方,显示在敌方身上(就是地图上的) 
- */
-  public $redres;
-
-/**
- * @var String blue,是敌方打我方,显示在UI上的。 
- */
-  public $blueres;
-
-/**
- * @var String  
- */
-  public $desc;
-
-/**
- * @var String 11自身
-12当前敌方
-21自身以及相邻单位
-22当前目标及相邻单位
-31我方全体
-32敌方全体
-41我方坦克职业角色
-42敌方坦克职业角色
-43血量最少的一个(敌方)
-44血量最少的一个(己方)
-44敌方血量最少的三个
-45敌我双方
-46生命最少的一个(己方)
-47生命最少的一个(敌方) default(12)
- */
-  public $aim;
-
-/**
- * @var Int32 技能效果修正
-0=根据aim列锁定目标生成特效
-1=生成一个特效放在地图中间
-2=生成一个特效在屏幕上 default(0)
- */
-  public $aimparm;
-
-/**
- * @var Int32 动作(0=无 1=攻击) default(1)
- */
-  public $action;
-
-/**
- * @var Int32 技能类型
-1、普通攻击/2、点击技能/3、必杀技能/4、个人被动/5、队长被动 default(1)
- */
-  public $type;
-
-/**
- * @var String 点值,"/"隔开 default(0)
- */
-  public $parmValue;
-
-/**
- * @var Int32 魔法伤害
-EBULLET_DAMAGE_MAG = 5,
-物理攻击
-EBULLET_DAMAGE_PHY = 6,
-治疗类型
-EBULLET_DAMAGE_CURE = 7, default(0)
- */
-  public $ProType;
-
-/**
- * @var String 影像的数值型比例,"/"隔开 default(0)
- */
-  public $ProValue;
-
-/**
- * @var String buffid,"/"隔开 
- */
-  public $BuffLst;
-
-/**
- * @var Int32 技能延迟时间(毫秒) default(0)
- */
-  public $delayTime;
-
-}
-

+ 0 - 108
Gameserver/Amfphp/model/Const/sm_skill_proty.php

@@ -1,108 +0,0 @@
-<?php
-
-////////////////////
- // 由CodeGenerator创建。
- // Copyright (C) gwang (mail@wanggangzero.cn), Loyalsoft@sjz Inc
- // author: gwang 
- // 日期: 2017-10-27 14:27:45
-////////////////////
-
-
-/**
- * Static Model skill_proty 
- */
-class sm_skill_proty
-{
-
-/**
- * @var String 成长公式 
- */
-  public $upgradeFormula;
-
-/**
- * @var Int32 生命值 default(0)
- */
-  public $hp;
-
-/**
- * @var Int32  default(0)
- */
-  public $hp1;
-
-/**
- * @var Int32 生命回复 default(0)
- */
-  public $hpRecover;
-
-/**
- * @var Int32  default(0)
- */
-  public $hpRecover1;
-
-/**
- * @var Int32 物理攻击 default(0)
- */
-  public $physicaAttack;
-
-/**
- * @var Int32  default(0)
- */
-  public $physicaAttack1;
-
-/**
- * @var Int32 法术强度 default(0)
- */
-  public $spellPower;
-
-/**
- * @var Int32  default(0)
- */
-  public $spellPower1;
-
-/**
- * @var Int32 护甲 default(0)
- */
-  public $armor;
-
-/**
- * @var Int32  default(0)
- */
-  public $armor1;
-
-/**
- * @var Int32 魔抗 default(0)
- */
-  public $magicResistance;
-
-/**
- * @var Int32  default(0)
- */
-  public $magicResistance1;
-
-/**
- * @var Int32 物理穿透 default(0)
- */
-  public $physicalPenetration;
-
-/**
- * @var Int32 魔法穿透 default(0)
- */
-  public $magicPenetration;
-
-/**
- * @var Int32 出现暴击的几率 default(0)
- */
-  public $critical;
-
-/**
- * @var Int32  生命偷取 default(0)
- */
-  public $suckBlood;
-
-/**
- * @var Int32 出手速度 基础值 default(0)
- */
-  public $attackSpeed;
-
-}
-

+ 0 - 38
Gameserver/Amfphp/model/Const/sm_skill_shengji.php

@@ -1,38 +0,0 @@
-<?php
-
-////////////////////
- // 由CodeGenerator创建。
- // Copyright (C) gwang (mail@wanggangzero.cn), Loyalsoft@sjz Inc
- // author: gwang 
- // 日期: 2018-01-16 11:55:49
-////////////////////
-
-
-/**
- * Static Model skill_shengji 
- */
-class sm_skill_shengji
-{
-
-/**
- * @var Int32  
- */
-  public $basic;
-
-/**
- * @var Int32  
- */
-  public $xishu;
-
-/**
- * @var String 升到目标等级,,需要额外值 
- */
-  public $extra;
-
-/**
- * @var Int32 最大等级 default(5)
- */
-  public $maxLevel;
-
-}
-

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

@@ -4,7 +4,7 @@
  // 由CodeGenerator创建。
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
  // author: gwang 
- // 日期: 2020-08-17 11:29:11
+ // 日期: 2020-09-01 13:42:21
 ////////////////////
 ////////////////////
 
 
 
 

+ 6 - 0
Gameserver/Amfphp/model/User/PrivateStateModel.php

@@ -90,6 +90,12 @@ class PrivateStateModel extends Object_ext {
      */
      */
     public $lastCheckDefLog_ts = 0;
     public $lastCheckDefLog_ts = 0;
 
 
+    /**
+     * 角标通知缓存
+     * @var array[int]
+     */
+    public $cornerSignNotifications = [];
+
 // <editor-fold defaultstate="collapsed" desc="    初始化    ">
 // <editor-fold defaultstate="collapsed" desc="    初始化    ">
 
 
     /**
     /**

+ 7 - 2
Gameserver/Amfphp/model/User/UserBaseInfo.php

@@ -47,13 +47,18 @@ class UserBaseInfo {
     /**
     /**
      * @var string 头像
      * @var string 头像
      */
      */
-    public $img;  // 头像
+    public $headImg;  // 头像
 
 
     /**
     /**
      * @var int 头像框Id
      * @var int 头像框Id
      */
      */
     public $imgBorderId = 0;
     public $imgBorderId = 0;
 
 
+    /**
+     * @var string 形象(龙骨)
+     */
+    public $img;
+
     /**
     /**
      * @var int 金币
      * @var int 金币
      */
      */
@@ -112,7 +117,7 @@ class UserBaseInfo {
         $this->level = 1;
         $this->level = 1;
         $this->name = '步惊云';
         $this->name = '步惊云';
         $this->spar = 0;
         $this->spar = 0;
-        $this->img = GameConfig::primordial_data()->User_img;
+        $this->headImg = GameConfig::primordial_data()->User_img;
     }
     }
 
 
 }
 }

+ 1 - 1
Gameserver/Amfphp/model/User/UserGuildModel.php

@@ -79,7 +79,7 @@ class UserGuildModel {
         $userGuildInfo->level = $baseInfo->level;
         $userGuildInfo->level = $baseInfo->level;
         //$userGuildInfo->fightPower = GuildProc::initFightTeamInfo($mem, $uid, $zoneid); #$game->heroTeamConfig;
         //$userGuildInfo->fightPower = GuildProc::initFightTeamInfo($mem, $uid, $zoneid); #$game->heroTeamConfig;
         $userGuildInfo->uid = $uid;
         $userGuildInfo->uid = $uid;
-        $userGuildInfo->img = $baseInfo->img;
+        $userGuildInfo->headImg = $baseInfo->headImg;
         $userGuildInfo->imgBorderId = $baseInfo->imgBorderId;
         $userGuildInfo->imgBorderId = $baseInfo->imgBorderId;
     }
     }
 
 

+ 5 - 10
Gameserver/Amfphp/model/User/UserProfile.php

@@ -5,8 +5,7 @@ namespace loyalsoft;
 /**
 /**
  * 玩家付费模式数据画像
  * 玩家付费模式数据画像
  */
  */
-class UserPaymentProfile extends Object_ext
-{
+class UserPaymentProfile extends Object_ext {
 
 
     /**
     /**
      * @var int 付费总额
      * @var int 付费总额
@@ -28,8 +27,7 @@ class UserPaymentProfile extends Object_ext
      * 0:none(免费),1:fish(小R),2: Dolphin(海豚), 3: while(鲸鱼)
      * 0:none(免费),1:fish(小R),2: Dolphin(海豚), 3: while(鲸鱼)
      * @return int
      * @return int
      */
      */
-    public function GetClass()
-    {
+    public function GetClass() {
         if ($this->payAmount <= 0) {              # 免费用户
         if ($this->payAmount <= 0) {              # 免费用户
             return 0;
             return 0;
         } else if ($this->payAmount < 100) {      # 100以下,小R
         } else if ($this->payAmount < 100) {      # 100以下,小R
@@ -50,8 +48,7 @@ class UserPaymentProfile extends Object_ext
  * @author gwang (mail@wanggangzero.cn)
  * @author gwang (mail@wanggangzero.cn)
  * @copyright ? 2017-9-23, SJZ LoyalSoft Corporation & gwang. All rights reserved.
  * @copyright ? 2017-9-23, SJZ LoyalSoft Corporation & gwang. All rights reserved.
  */
  */
-class UserProfile extends Object_ext
-{
+class UserProfile extends Object_ext {
 //put your code here
 //put your code here
 
 
     /**
     /**
@@ -60,8 +57,7 @@ class UserProfile extends Object_ext
      */
      */
     public $payment;
     public $payment;
 
 
-    public function OnPay($args = null)
-    {
+    public function OnPay($args = null) {
         // 提取参数 extract or 直接按照名字提取
         // 提取参数 extract or 直接按照名字提取
         // 更新付费总额, 次数, 最后一次付费
         // 更新付费总额, 次数, 最后一次付费
         if (null === $args || !is_array($args)) {
         if (null === $args || !is_array($args)) {
@@ -77,8 +73,7 @@ class UserProfile extends Object_ext
         return false;
         return false;
     }
     }
 
 
-    public function __construct($arg = null)
-    {
+    public function __construct($arg = null) {
         parent::__construct($arg);
         parent::__construct($arg);
         $this->payment = new UserPaymentProfile($this->payment);
         $this->payment = new UserPaymentProfile($this->payment);
     }
     }

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

@@ -141,8 +141,7 @@ class ActiveProc {
      * @param req $req
      * @param req $req
      */
      */
     static function getTotayOnlineInfos($req) {
     static function getTotayOnlineInfos($req) {
-        $req->userInfo->game->privateState->onlineGiftts = now() - $req->userInfo->game->baseInfo->lastLogin;
-        UserProc::updateUserInfo();
+
         return Resp::ok(array(
         return Resp::ok(array(
                     "onlineGiftIDs" => $req->userInfo->game->privateState->onlineGiftIDs,
                     "onlineGiftIDs" => $req->userInfo->game->privateState->onlineGiftIDs,
                     "onlineGiftts" => $req->userInfo->game->privateState->onlineGiftts
                     "onlineGiftts" => $req->userInfo->game->privateState->onlineGiftts

+ 4 - 1
Gameserver/Amfphp/process/EmailProc.php

@@ -44,7 +44,7 @@ class EmailProc {
     /**
     /**
      * 邮件最大过期时间7天
      * 邮件最大过期时间7天
      */
      */
-    const MaxMailExpireTs = 7 * 24 * 3600;
+    const MaxMailExpireTs = 604800;
 
 
     /**
     /**
      * 邮件日志表
      * 邮件日志表
@@ -80,6 +80,8 @@ class EmailProc {
         $uid = $req->uid;
         $uid = $req->uid;
         $zoneid = $req->zoneid;
         $zoneid = $req->zoneid;
         $n = 0;                                                                 # 计数器
         $n = 0;                                                                 # 计数器
+        self::refreshSysMail($zoneid, $uid);                                    # 更新下系统邮件
+        self::clearExpireMails($zoneid, $uid);                                  # 清理过期邮件, 以及超过容量的邮件
         $mails = self::getMailQueue($zoneid, $uid);
         $mails = self::getMailQueue($zoneid, $uid);
         foreach ($mails as $m) {
         foreach ($mails as $m) {
 //            isEditor() and $m = new EmailModel();
 //            isEditor() and $m = new EmailModel();
@@ -384,6 +386,7 @@ class EmailProc {
             }
             }
         }
         }
         self:: logMail($zoneid, $uid, $mail);                                   # 将邮件写入Mysql中
         self:: logMail($zoneid, $uid, $mail);                                   # 将邮件写入Mysql中
+        CornerSignEventProc::OnNewMails(req());
         return $mail->mailId;
         return $mail->mailId;
     }
     }
 
 

+ 32 - 17
Gameserver/Amfphp/process/EventProc.php

@@ -9,46 +9,61 @@ namespace loyalsoft;
  * @author gwang (mail@wanggangzero.cn)
  * @author gwang (mail@wanggangzero.cn)
  * @copyright ? 2017-8-28, SJZ LoyalSoft Corporation & gwang. All rights reserved.
  * @copyright ? 2017-8-28, SJZ LoyalSoft Corporation & gwang. All rights reserved.
  */
  */
-class EventProc
-{
+class EventProc {
+
+    public static function procMain($req) {
+        switch ($req->cmd) {
+            case CmdCode::cmd_event_GetNotifications:                           # 7201 拉取角标通知列表
+                return self::GetCornerSignNotifications($req);
+            default:
+                return Resp::err(ErrCode::cmd_err);
+        }
+    }
 
 
 //put your code here
 //put your code here
 
 
-    static function Init()
-    {
-        Event::register('onpay', UserProfile::OnPay);
+    /**
+     * [7201] 拉取角标通知
+     * @param req $req
+     */
+    static function GetCornerSignNotifications($req) {
+        // 这里直接返回, 将来开发对应的触发逻辑, 给数组中添加相应的值
+        $arr = array_values(array_unique($req->userInfo->game->privateState->cornerSignNotifications)); # 返回值去重
+        $req->userInfo->game->privateState->cornerSignNotifications = [];       # 清理记录
+        UserProc::updateUserInfo();
+        return Resp::ok(array("notifications" => $arr));                        # 返回
+    }
+
+    static function Init() {
+        Event::register('onpay', array(new UserProfile(req()->userInfo->game->profile), "OnPay"));
     }
     }
 
 
     /**
     /**
      * 收到请求
      * 收到请求
      */
      */
-    static function OnRequest()
-    {
-
+    static function OnRequest() {
+        
     }
     }
 
 
     /**
     /**
      * 处理完毕准备返回
      * 处理完毕准备返回
      */
      */
-    static function AfterResponse()
-    {
-
+    static function AfterResponse() {
+        
     }
     }
 
 
     /**
     /**
      * 当天第一次登录
      * 当天第一次登录
      */
      */
-    static function OnNewDay()
-    {
-
+    static function OnNewDay() {
+        
     }
     }
 
 
     /**
     /**
      * 当周第一次登录(周一)
      * 当周第一次登录(周一)
      */
      */
-    static function OnNewWeek()
-    {
-
+    static function OnNewWeek() {
+        
     }
     }
 
 
 }
 }

+ 152 - 0
Gameserver/Amfphp/process/EventProc/CornerSignEventProc.php

@@ -0,0 +1,152 @@
+<?php
+
+namespace loyalsoft;
+
+/**
+ * 枚举: 角标提示类型枚举
+ */
+class OperateEventType {
+
+    const _Empty = 0;                                                           // 空
+    const Task = 1;
+    const Task_plot = 2;                                                        // 任务 剧情任务
+    const Task_Daily = 3;                                                       // 任务 每日任务
+    const Call = 4;
+    const Call_Warrior = 5;                                                     // 召唤 战士
+    const Call_Magician = 6;                                                    // 召唤 法师
+    const Call_Archer = 7;                                                      // 召唤 射手
+    const Bag = 8;
+    const Bag_Weapon = 9;                                                       // 背包 武器
+    const Bag_Kotodama = 10;                                                     // 背包 言灵
+    const Bag_Fragment = 11;                                                     // 背包 碎片
+    const Bag_Material = 12;                                                     // 背包 材料
+    const Ranking = 13;
+    const Ranking_PowerReward = 14;                                             // 排行榜 战力榜奖励
+    const Ranking_ClearanceReward = 15;                                         // 排行榜 通关榜奖励
+    const Mail_New = 16;                                                        // 邮件 新邮件
+    const Notice_New = 17;                                                      // 公告 新公告
+    const Arena_FreeTimes = 18;                                                 // 竞技场 可进入
+
+}
+
+/**
+ * Description of CornerSignEventProc
+ *
+ * @author Administrator
+ */
+class CornerSignEventProc {
+
+    /**
+     * 剧情任务状态有更新(新增/完成)
+     * @param req $req
+     */
+    public static function OnTask_Plot_new($req) {
+        $req->userInfo->game->privateState->cornerSignNotifications[] = OperateEventType::Task_plot;
+    }
+
+    /**
+     * 每日任务状态有变动(完成)
+     * @param req $req
+     */
+    public static function OnTask_Daily_new($req) {
+        $req->userInfo->game->privateState->cornerSignNotifications[] = OperateEventType::Task_Daily;
+    }
+
+    /**
+     * 言灵召唤状态,解锁新的战士
+     * @param req $req
+     */
+    public static function OnCall_Warrior_new($req) {
+        $req->userInfo->game->privateState->cornerSignNotifications[] = OperateEventType::Call_Warrior;
+    }
+
+    /**
+     * 言灵召唤状态,解锁新的法师
+     * @param req $req
+     */
+    public static function OnCall_Magician_new($req) {
+        $req->userInfo->game->privateState->cornerSignNotifications[] = OperateEventType::Call_Magician;
+    }
+
+    /**
+     * 言灵召唤状态,解锁新的射手
+     * @param req $req
+     */
+    public static function OnCall_Archer_new($req) {
+        $req->userInfo->game->privateState->cornerSignNotifications[] = OperateEventType::Call_Archer;
+    }
+
+    /**
+     * 包裹--获得新的武器
+     * @param req $req
+     */
+    public static function OnBag_new_Weapon($req) {
+        $req->userInfo->game->privateState->cornerSignNotifications[] = OperateEventType::Bag_Weapon;
+    }
+
+    /**
+     * 包裹--获得新的言灵
+     * @param req $req
+     */
+    public static function OnBag_new_Yanling($req) {
+        $req->userInfo->game->privateState->cornerSignNotifications[] = OperateEventType::Bag_Kotodama;
+    }
+
+    /**
+     * 包裹--获得新的碎片
+     * @param req $req
+     */
+    public static function OnBag_new_Fragment($req) {
+        $req->userInfo->game->privateState->cornerSignNotifications[] = OperateEventType::Bag_Fragment;
+    }
+
+    /**
+     * 包裹--获得新的材料
+     * @param req $req
+     */
+    public static function OnBag_new_Material($req) {
+        $req->userInfo->game->privateState->cornerSignNotifications[] = OperateEventType::Bag_Material;
+    }
+
+    /**
+     * 排行榜--战力奖励状态有变化
+     * @param req $req
+     */
+    public static function OnRanking_PowerReward_new($req) {
+        $req->userInfo->game->privateState->cornerSignNotifications[] = OperateEventType::Ranking_PowerReward;
+    }
+
+    /**
+     * 排行榜--通关奖励状态有变化
+     * @param req $req
+     */
+    public static function OnRanking_GageReward_new($req) {
+        $req->userInfo->game->privateState->cornerSignNotifications[] = OperateEventType::Ranking_ClearanceReward;
+    }
+
+    /**
+     * 邮件系统--有新的邮件
+     * @param req $req
+     */
+    public static function OnNewMails($req) {
+        $req->userInfo->game->privateState->cornerSignNotifications[] = OperateEventType::Mail_New;
+        UserProc::updateUserInfo();
+    }
+
+    /**
+     * 公告有更新
+     * @param req $req
+     */
+    public static function OnNotice_new($req) {
+        $req->userInfo->game->privateState->cornerSignNotifications[] = OperateEventType::Notice_New;
+    }
+
+    /**
+     * AAA
+     * @param req $req
+     */
+    public static function OnAAA($req) {
+        $req->userInfo->game->privateState->cornerSignNotifications[] = OperateEventType::Arena_FreeTimes;
+    }
+
+}

+ 4 - 4
Gameserver/Amfphp/process/FightProc/PVPProc.php

@@ -72,7 +72,7 @@ class PVPProc {
             'uid' => $targetUID,
             'uid' => $targetUID,
             'name' => my_null_default($uinfo->game->baseInfo->name, ""),
             'name' => my_null_default($uinfo->game->baseInfo->name, ""),
             'level' => my_null_default($uinfo->game->baseInfo->level, 1),
             'level' => my_null_default($uinfo->game->baseInfo->level, 1),
-            'headImg' => my_null_default($uinfo->game->baseInfo->img, ""),
+            'headImg' => my_null_default($uinfo->game->baseInfo->headImg, ""),
 //            'skills' => null, #                                                  # skills暂时没有实例数据 
 //            'skills' => null, #                                                  # skills暂时没有实例数据 
             'equipment' => array("equipments" => my_null_default($uinfo->game->store->equipment, new \stdClass())), # 武器
             'equipment' => array("equipments" => my_null_default($uinfo->game->store->equipment, new \stdClass())), # 武器
             'yanling' => array("items" => my_null_default($uinfo->game->store->yanling, new \stdClass())), # 言灵
             'yanling' => array("items" => my_null_default($uinfo->game->store->yanling, new \stdClass())), # 言灵
@@ -109,7 +109,7 @@ class PVPProc {
             JsonUtil::encode(array(
             JsonUtil::encode(array(
                 'uid' => $req->uid,
                 'uid' => $req->uid,
                 'name' => $req->userInfo->game->baseInfo->name,
                 'name' => $req->userInfo->game->baseInfo->name,
-                'headImg' => $req->userInfo->game->baseInfo->img,
+                'headImg' => $req->userInfo->game->baseInfo->headImg,
                 'win' => !my_null_default($win, false),
                 'win' => !my_null_default($win, false),
                 'msg' => my_null_default($msg, ""),
                 'msg' => my_null_default($msg, ""),
                 'ts' => $ts
                 'ts' => $ts
@@ -341,7 +341,7 @@ class PVPProc {
         $key_mine = MemKey_User::PVP_OffensiveLog_zset($zoneid, $uid);          # 我的主动挑战记录
         $key_mine = MemKey_User::PVP_OffensiveLog_zset($zoneid, $uid);          # 我的主动挑战记录
         self::_Log_PVP_PK_Info($key_mine, $target_uid, $target_name, $target_HeadImg, $result, $R_A - $RA); # 自己的挑战记录
         self::_Log_PVP_PK_Info($key_mine, $target_uid, $target_name, $target_HeadImg, $result, $R_A - $RA); # 自己的挑战记录
         $key_target = MemKey_User::PVP_DefensiveLog_zset($zoneid, $target_uid); # 对手的被挑战记录
         $key_target = MemKey_User::PVP_DefensiveLog_zset($zoneid, $target_uid); # 对手的被挑战记录
-        self::_Log_PVP_PK_Info($key_target, $uid, $baseInfo->name, $baseInfo->img, !$result, $B_Change); # 对手的被挑战记录
+        self::_Log_PVP_PK_Info($key_target, $uid, $baseInfo->name, $baseInfo->headImg, !$result, $B_Change); # 对手的被挑战记录
 
 
         $ret = array(#                                                          # 组装返回值
         $ret = array(#                                                          # 组装返回值
             'freeFightTickets' => $pvp->freeFightTickets, #                     # 自己剩余免费票
             'freeFightTickets' => $pvp->freeFightTickets, #                     # 自己剩余免费票
@@ -665,7 +665,7 @@ class PVPProc {
                 'uid' => $uid,
                 'uid' => $uid,
                 'name' => my_null_default($userGameInfo->game->baseInfo->name, ""),
                 'name' => my_null_default($userGameInfo->game->baseInfo->name, ""),
                 'level' => my_null_default($userGameInfo->game->baseInfo->level, 1),
                 'level' => my_null_default($userGameInfo->game->baseInfo->level, 1),
-                'headImg' => my_null_default($userGameInfo->game->baseInfo->img, ""),
+                'headImg' => my_null_default($userGameInfo->game->baseInfo->headImg, ""),
 //            'skills' => null, #                                                 # skills暂时没有实例数据 
 //            'skills' => null, #                                                 # skills暂时没有实例数据 
                 'equipment' => array("equipments" => my_null_default($userGameInfo->game->store->equipment, new \stdClass())), # 武器
                 'equipment' => array("equipments" => my_null_default($userGameInfo->game->store->equipment, new \stdClass())), # 武器
                 'yanling' => array("items" => my_null_default($userGameInfo->game->store->yanling, new \stdClass())), # 言灵
                 'yanling' => array("items" => my_null_default($userGameInfo->game->store->yanling, new \stdClass())), # 言灵

+ 1 - 1
Gameserver/Amfphp/process/GuildProc.php

@@ -937,7 +937,7 @@ class GuildProc {
                 $memberInfo->level = $userInfo->game->baseInfo->level;
                 $memberInfo->level = $userInfo->game->baseInfo->level;
                 $memberInfo->fightPower = self::initFightTeamInfo($mem, $mboid, $zoneID);
                 $memberInfo->fightPower = self::initFightTeamInfo($mem, $mboid, $zoneID);
                 $memberInfo->uid = $mboid;
                 $memberInfo->uid = $mboid;
-                $memberInfo->img = $userInfo->game->baseInfo->img;
+                $memberInfo->img = $userInfo->game->baseInfo->headImg;
                 $memberInfo->imgBorderId = $userInfo->game->baseInfo->imgBorderId;
                 $memberInfo->imgBorderId = $userInfo->game->baseInfo->imgBorderId;
 //                $score = $mem->zscore($key_cur, $mboid);
 //                $score = $mem->zscore($key_cur, $mboid);
                 $memberInfo->cupScore = $score == null ? 0 : $score;
                 $memberInfo->cupScore = $score == null ? 0 : $score;

+ 1 - 0
Gameserver/Amfphp/process/HeroProc.php

@@ -1180,6 +1180,7 @@ class HeroProc {
         foreach (GameConfig::rankreward_fpower() as $condition => $reward) {    # 遍历突破奖励数据
         foreach (GameConfig::rankreward_fpower() as $condition => $reward) {    # 遍历突破奖励数据
             if ($fp >= $condition && !gMem()->hexists($key_log, $condition)) {  # 判断是否达成突破奖励标准
             if ($fp >= $condition && !gMem()->hexists($key_log, $condition)) {  # 判断是否达成突破奖励标准
                 gMem()->hset($key_log, $condition, $uid);                       # 添加突破记录
                 gMem()->hset($key_log, $condition, $uid);                       # 添加突破记录
+                CornerSignEventProc::OnRanking_PowerReward_new(req());
             }
             }
         }
         }
         TaskProc::OnUserFightPowerN($fp);
         TaskProc::OnUserFightPowerN($fp);

+ 11 - 13
Gameserver/Amfphp/process/PayProc.php

@@ -2,7 +2,7 @@
 
 
 namespace loyalsoft;
 namespace loyalsoft;
 
 
-require_once __DIR__ . '/PayProc/MLogType.php';                         // 日志类型定义
+require_once __DIR__ . '/PayProc/MLogType.php';                                 // 日志类型定义
 if (PLAT == 'web') {
 if (PLAT == 'web') {
     include_once __DIR__ . '/PayProc/WebPayProc.php';
     include_once __DIR__ . '/PayProc/WebPayProc.php';
 }
 }
@@ -126,23 +126,22 @@ class PayProc {
             CLog::pay(" 道具付费类型异常:" . $product_id);
             CLog::pay(" 道具付费类型异常:" . $product_id);
             return Resp::err(ErrCode::pay_m_type_err);
             return Resp::err(ErrCode::pay_m_type_err);
         }
         }
-        for ($i = 0; $i < $product_count; $i++) {                               # 默认为1,还没有设计为n的情况
-            StoreProc::AddMultiItemInStore($req, $item->goods, 5);              # 发货
+        for ($i = 0; $i < $product_count; $i++) {                                       # 默认为1,还没有设计为n的情况
+            StoreProc::AddMultiItemInStore($req, $item->goods, 5);                      # 发货
         }
         }
         $n = daoInst()->update(self::orderTab)
         $n = daoInst()->update(self::orderTab)
                 ->data(array('drawed_ts' => now()))
                 ->data(array('drawed_ts' => now()))
                 ->where('cpOrderId')->eq($cpOrderId)
                 ->where('cpOrderId')->eq($cpOrderId)
                 ->exec();
                 ->exec();
-        if (!$n) {
-            return Resp::err(ErrCode::err_db);                      # 数据库操作失败
-        }
-        $req->userInfo->game->baseInfo->charge_amt += $order->amount;                     # 历史充值记录(单位分)
-        UserProc::updateUserInfo();                                         # 更新玩家数据信息
-        Event::trigger('pay', array('amt' => $order->amount));                  # 触发充值事件
+        my_Assert($n > 0, ErrCode::err_db);                                             # 数据库操作失败
+
+        $req->userInfo->game->baseInfo->charge_amt += $order->amount;                   # 历史充值记录(单位分)
+        UserProc::updateUserInfo();                                                     # 更新玩家数据信息
+        Event::trigger('pay', array('amt' => $order->amount));                          # 触发充值事件
         CLog::pay("订单发货成功: $cpOrderId");
         CLog::pay("订单发货成功: $cpOrderId");
         return Resp::ok(# 返回
         return Resp::ok(# 返回
-                        array('cash' => $req->userInfo->game->baseInfo->cash, #           # 直接将游戏币的最新值返回给客户端
-                            'charge_amt' => $req->userInfo->game->baseInfo->charge_amt, #         # 充值总记录
+                        array('cash' => $req->userInfo->game->baseInfo->cash, #         # 直接将游戏币的最新值返回给客户端
+                            'charge_amt' => $req->userInfo->game->baseInfo->charge_amt, # 充值总记录
                             'store' => $req->userInfo->game->store, #                   # 背包
                             'store' => $req->userInfo->game->store, #                   # 背包
                             'goods' => $item->goods, #                                  # 发货内容
                             'goods' => $item->goods, #                                  # 发货内容
                             'count' => $product_count, #                                # 发货数量
                             'count' => $product_count, #                                # 发货数量
@@ -161,9 +160,8 @@ class PayProc {
                     ->where('uid')->eq(substr($uid, strpos($uid, "-") + 1))
                     ->where('uid')->eq(substr($uid, strpos($uid, "-") + 1))
                     ->andwhere('status')->eq(1)
                     ->andwhere('status')->eq(1)
                     ->fetchall();
                     ->fetchall();
-            if (count($orders) > 0) {                                          # 有充值记录
+            if (count($orders) > 0) {                                               # 有充值记录
                 foreach ($orders as $order) {
                 foreach ($orders as $order) {
-
                     // 准备补发
                     // 准备补发
                     $product_id = $order->product_id;
                     $product_id = $order->product_id;
                     $product_count = $order->product_count;
                     $product_count = $order->product_count;

+ 6 - 5
Gameserver/Amfphp/process/RankProc.php

@@ -57,7 +57,7 @@ class RankProc {
                 'name' => my_null_default($uinfo->game->baseInfo->name, ""),
                 'name' => my_null_default($uinfo->game->baseInfo->name, ""),
                 'level' => my_null_default($uinfo->game->baseInfo->level, 1),
                 'level' => my_null_default($uinfo->game->baseInfo->level, 1),
                 'score' => my_null_default($score, 0),
                 'score' => my_null_default($score, 0),
-                'headImg' => my_null_default($uinfo->game->baseInfo->img, "")
+                'headImg' => my_null_default($uinfo->game->baseInfo->headImg, "")
             );
             );
         }
         }
         return null;                                                            # 未找到
         return null;                                                            # 未找到
@@ -81,7 +81,7 @@ class RankProc {
                 'name' => my_null_default($uinfo->game->baseInfo->name, ""),
                 'name' => my_null_default($uinfo->game->baseInfo->name, ""),
                 'level' => my_null_default($uinfo->game->baseInfo->level, 1),
                 'level' => my_null_default($uinfo->game->baseInfo->level, 1),
                 'score' => my_null_default($score, 0),
                 'score' => my_null_default($score, 0),
-                'headImg' => my_null_default($uinfo->game->baseInfo->img, "")
+                'headImg' => my_null_default($uinfo->game->baseInfo->headImg, "")
             );
             );
         }
         }
         return Resp::ok($ret);
         return Resp::ok($ret);
@@ -111,7 +111,7 @@ class RankProc {
                 'name' => my_null_default($uinfo->game->baseInfo->name, ""),
                 'name' => my_null_default($uinfo->game->baseInfo->name, ""),
                 'level' => my_null_default($uinfo->game->baseInfo->level, 1),
                 'level' => my_null_default($uinfo->game->baseInfo->level, 1),
                 'score' => my_null_default($score, 0),
                 'score' => my_null_default($score, 0),
-                'headImg' => my_null_default($uinfo->game->baseInfo->img, "")
+                'headImg' => my_null_default($uinfo->game->baseInfo->headImg, "")
             );
             );
         }
         }
         $user_ranking = $req->mem->zrevrank($key, $req->uid);                   # 查询玩家排名
         $user_ranking = $req->mem->zrevrank($key, $req->uid);                   # 查询玩家排名
@@ -201,7 +201,7 @@ class RankProc {
                 'name' => my_null_default($uinfo->game->baseInfo->name, ""),
                 'name' => my_null_default($uinfo->game->baseInfo->name, ""),
                 'level' => my_null_default($uinfo->game->baseInfo->level, 1),
                 'level' => my_null_default($uinfo->game->baseInfo->level, 1),
                 'score' => my_null_default($score, 0),
                 'score' => my_null_default($score, 0),
-                'headImg' => my_null_default($uinfo->game->baseInfo->img, "")
+                'headImg' => my_null_default($uinfo->game->baseInfo->headImg, "")
             );
             );
         }
         }
         if (count($ret) < 1) {
         if (count($ret) < 1) {
@@ -264,7 +264,7 @@ class RankProc {
                 'name' => my_null_default($uinfo->game->baseInfo->name, ""),
                 'name' => my_null_default($uinfo->game->baseInfo->name, ""),
                 'level' => my_null_default($uinfo->game->baseInfo->level, 1),
                 'level' => my_null_default($uinfo->game->baseInfo->level, 1),
                 'score' => my_null_default($score, 0),
                 'score' => my_null_default($score, 0),
-                'headImg' => my_null_default($uinfo->game->baseInfo->img, "")
+                'headImg' => my_null_default($uinfo->game->baseInfo->headImg, "")
             );
             );
         }
         }
 
 
@@ -318,6 +318,7 @@ class RankProc {
         foreach (GameConfig::rankreward_passgate() as $condition => $reward) {    # 遍历突破奖励数据
         foreach (GameConfig::rankreward_passgate() as $condition => $reward) {    # 遍历突破奖励数据
             if ($gateId >= $condition && !gMem()->hexists($key_log, $condition)) {  # 判断是否达成突破奖励标准
             if ($gateId >= $condition && !gMem()->hexists($key_log, $condition)) {  # 判断是否达成突破奖励标准
                 gMem()->hset($key_log, $condition, $uid);                       # 添加突破记录
                 gMem()->hset($key_log, $condition, $uid);                       # 添加突破记录
+                CornerSignEventProc::OnRanking_GageReward_new(req());
             }
             }
         }
         }
     }
     }

+ 23 - 0
Gameserver/Amfphp/process/StoreProc.php

@@ -394,20 +394,43 @@ class StoreProc {
                     break;
                     break;
                 case 101:                                                       # 武器 
                 case 101:                                                       # 武器 
                     StoreProc::PutEquipInStore($itemId, $req);
                     StoreProc::PutEquipInStore($itemId, $req);
+                    CornerSignEventProc::OnBag_new_Weapon($req);
                     break;
                     break;
                 case 401:                                                       # 言灵
                 case 401:                                                       # 言灵
                     StoreProc::PutYanLingInStore($itemId, $req);
                     StoreProc::PutYanLingInStore($itemId, $req);
+                    CornerSignEventProc::OnBag_new_Yanling($req);
                     break;
                     break;
                 case 201:                                                       # 碎片
                 case 201:                                                       # 碎片
                     $segMo = GameConfig::item_segment_getItem($itemId);
                     $segMo = GameConfig::item_segment_getItem($itemId);
                     my_Assert($segMo != null, ErrCode::err_const_no);
                     my_Assert($segMo != null, ErrCode::err_const_no);
                     TaskProc::OnHeroSegmengNum($segMo->protoHeroID, $num);
                     TaskProc::OnHeroSegmengNum($segMo->protoHeroID, $num);
+                    CornerSignEventProc::OnBag_new_Fragment($req);
                 case 202:                                                       # 召唤书碎片
                 case 202:                                                       # 召唤书碎片
                 case 312:                                                       # 言灵召唤/进阶材料
                 case 312:                                                       # 言灵召唤/进阶材料
                 case 351:                                                       # 言灵召唤书
                 case 351:                                                       # 言灵召唤书
+                    StoreProc::PutOverlyingItemInStore($itemId, $num);          # 直接进包裹items
+                    $book = GameConfig::item_yanlingbook_getItem($itemId);
+                    $ylCfg = GameConfig::item_yanling_getItem($book->yanling_id);
+                    switch ($ylCfg->career) {
+                        case 1:
+                            CornerSignEventProc::OnCall_Warrior_new($req);      #
+                            break;
+                        case 2:
+                            CornerSignEventProc::OnCall_Magician_new($req);     # 
+                            break;
+                        case 3:
+                            CornerSignEventProc::OnCall_Archer_new($req);       #
+                            break;
+                        default :
+                            break;
+                    }
+                    break;
                 case 321:                                                       # 进阶材料
                 case 321:                                                       # 进阶材料
                 case 322:                                                       # 进阶材料
                 case 322:                                                       # 进阶材料
                 case 323:                                                       # 锻造材料
                 case 323:                                                       # 锻造材料
+                    StoreProc::PutOverlyingItemInStore($itemId, $num);          # 直接进包裹items
+                    CornerSignEventProc::OnBag_new_Material($req);
+                    break;
                 case 311:                                                       # 基因(经验丹)
                 case 311:                                                       # 基因(经验丹)
                     StoreProc::PutOverlyingItemInStore($itemId, $num);          # 直接进包裹items
                     StoreProc::PutOverlyingItemInStore($itemId, $num);          # 直接进包裹items
                     break;
                     break;

+ 10 - 44
Gameserver/Amfphp/process/SystemProc.php

@@ -86,29 +86,13 @@ class SystemProc {
                 return self::getSysMessage($req);
                 return self::getSysMessage($req);
             case CmdCode::cmd_system_logreport:                                 # 6902 客户端上报日志
             case CmdCode::cmd_system_logreport:                                 # 6902 客户端上报日志
                 return self::logReport($req);
                 return self::logReport($req);
-            case CmdCode::cmd_system_clienttick:                                # 6903 客户端心跳包
-//                return ResponseVo::ErrResponse($req, ErrCode::err_msg_methodobsoleted);
-                return self::mock($req);                                        # 模拟方法s
-//                return self::clientTick($req);
+            case CmdCode::cmd_system_clienttick:                                # 6903 客户端心跳包 
+                return self::clientTick($req);
             default :
             default :
                 return Resp::err(ErrCode::cmd_err);
                 return Resp::err(ErrCode::cmd_err);
         }
         }
     }
     }
 
 
-    /**
-     * 模拟
-     * @param Req $req
-     */
-    static function mock($req) {
-        if (GAME_ONLINE) {
-            return;
-        }
-        self::insertHero_Star($req->zoneid, $req->uid, $req->userInfo->game->baseInfo->name, "王小刚", 100);
-        self::insertHero_StageUp($req->zoneid, $req->uid, $req->userInfo->game->baseInfo->name, "王小刚", 100);
-        self::insertWeapon_promoteUp($req->zoneid, $req->uid, $req->userInfo->game->baseInfo->name, "小小刚", 100);
-        return Resp::ok(array('ret' => '你懂的!'));
-    }
-
 //
 //
 // <editor-fold defaultstate="collapsed" desc=" 暂时不管 ">
 // <editor-fold defaultstate="collapsed" desc=" 暂时不管 ">
 //
 //
@@ -118,28 +102,15 @@ class SystemProc {
      * @param Req $req
      * @param Req $req
      */
      */
     static function clientTick($req) {
     static function clientTick($req) {
-        Err(ErrCode::err_method_obsoleted);
-        $Tmem = $req->mem;
-        $user = $req->userInfo->game;
-
-        if (!CommUtil::isPropertyExists($user, "tick")) {
-            $user->tick = 0;
-        }
-        $user->tick += 1; // 玩家在线时长字段
-
-        $tickList = $Tmem->get("client-tick");
-        if ($tickList == null) {
-            $tickList = "";
-        } else {
-            $tickList .= ",";
+        $timespan = now() - $req->userInfo->game->baseInfo->lastSaveTs;
+        if ($timespan < 300) {                                                  # 间隔超过5分钟的不算
+            if ($timespan < 30) {                                               # 心跳包固定30秒1次
+                $timespan = 30;
+            }
+            $req->userInfo->game->privateState->onlineGiftts += $timespan;
+            UserProc::updateUserInfo();
         }
         }
-        $tickList .= "(\"" . $req->uid . "\",\"" . $user->baseInfo->name . "\",\"" . CommUtil::dtCurrent()->toString() . "\",\"" . "1" . "\")";
-        $Tmem->set("client-tick", $tickList);
-//        self::serialStatData($Tmem);
-
-        $resp = Resp::myRetResponse($req, "succeed!");
-        UserProc::updateUserInfo();
-        return $resp;
+        return Resp::ok();
     }
     }
 
 
     /**
     /**
@@ -225,11 +196,6 @@ class SystemProc {
             'sysMessage' => $sysMessage,
             'sysMessage' => $sysMessage,
             'nextFetchTime' => $count
             'nextFetchTime' => $count
         );
         );
-        $timespan = now() - $req->userInfo->game->baseInfo->lastSaveTs;
-        if ($timespan < 300) {                                                  # 间隔超过5分钟的不算
-            $req->userInfo->game->privateState->onlineGiftts += $timespan;
-            UserProc::updateUserInfo();
-        }
 
 
         return Resp::ok($ret);                                                  # 返回信息
         return Resp::ok($ret);                                                  # 返回信息
     }
     }

+ 2 - 0
Gameserver/Amfphp/process/TaskProc.php

@@ -200,6 +200,7 @@ class TaskProc {
         }
         }
         if ($bUpdate) {
         if ($bUpdate) {
             Resp::addTag("isTaskUpdated", true);                                # 附加tag信息, 任务有更新
             Resp::addTag("isTaskUpdated", true);                                # 附加tag信息, 任务有更新
+            CornerSignEventProc::OnTask_Plot_new($req);
         }
         }
     }
     }
 
 
@@ -236,6 +237,7 @@ class TaskProc {
 
 
         if ($bUpdate) {
         if ($bUpdate) {
             Resp::addTag("isTaskUpdated", true);                                # 附加tag信息, 任务有更新
             Resp::addTag("isTaskUpdated", true);                                # 附加tag信息, 任务有更新
+            CornerSignEventProc::OnTask_Daily_new($req);
         }
         }
     }
     }
 
 

+ 69 - 34
Gameserver/Amfphp/process/UserProc.php

@@ -42,21 +42,50 @@ class UserProc {
                 return UserProc::RegisterNewRole($req);
                 return UserProc::RegisterNewRole($req);
             case CmdCode::cmd_user_completeNewbieGuide:                         # 6007 提交新手引导步骤
             case CmdCode::cmd_user_completeNewbieGuide:                         # 6007 提交新手引导步骤
                 return UserProc::completeNewbieGuide($req);
                 return UserProc::completeNewbieGuide($req);
-            case CmdCode::cmd_user_setNickname:                                 # 6008 设置/修改玩家昵称
-                return self::SetUserNickname($req);
-//            case CmdCode::cmd_user_setNewbieGuideCards:                         # 6009 发放新手引导所需卡牌
-//                return self::SetNewbieGuideCards($req);
-//            case CmdCode::cmd_user_SetUserImageBorder:                          # 6010修改玩家头像框
-//                return self::SetUserImageBorder($req);
-            case CmdCode::cmd_user_setNewbieGuideOver:
+//            case CmdCode::cmd_user_setNewbieGuideCards:                         # 6008 发放新手引导所需卡牌
+//                return self::SetNewbieGuideCards($req);                
+            case CmdCode::cmd_user_setNewbieGuideOver:                          # 6009 跳过新手引导
                 return UserProc::setNewbieGuideOver($req);
                 return UserProc::setNewbieGuideOver($req);
+            case CmdCode::cmd_user_setNickname:                                 # 6010 设置/修改玩家昵称
+                return self::SetUserNickname($req);
+            case CmdCode::cmd_user_SetUserHeadImageBorder:                      # 6011 修改玩家头像框
+                return self::SetUserImageBorder($req);
+            case CmdCode::cmd_user_setUserImage:                                # 6012 更换玩家形象
+                return self::SetUserImage($req);
+            case CmdCode::cmd_user_changeUserHeadImg:                           # 6013 更换玩家头像
+                return self::SetUserHeadImage($req);
             default:
             default:
                 Err(ErrCode::cmd_err);
                 Err(ErrCode::cmd_err);
         }
         }
     }
     }
 
 
+//
+// <editor-fold defaultstate="collapsed" desc="玩家信息 修改">
+
+    /**
+     * [6013]修改玩家头像
+     * @param Req $req
+     */
+    static function SetUserHeadImage($req) {
+        list($headImage) = $req->paras;                                         # 参数, 新头像
+        $req->userInfo->game->baseInfo->headImg = $headImage;
+        UserProc::updateUserInfo();
+        return Resp::ok(array('ret' => 'ok'));
+    }
+
+    /**
+     * [6012]修改玩家形象
+     * @param Req $req
+     */
+    static function SetUserImage($req) {
+        list($image) = $req->paras;                                             # 参数, 新形象
+        $req->userInfo->game->baseInfo->img = $image;
+        UserProc::updateUserInfo();
+        return Resp::ok(array('ret' => 'ok'));
+    }
+
     /**
     /**
-     * [6010]修改玩家头像框
+     * [6011]修改玩家头像框
      * @param Req $req
      * @param Req $req
      */
      */
     static function SetUserImageBorder($req) {
     static function SetUserImageBorder($req) {
@@ -66,6 +95,31 @@ class UserProc {
         return Resp::ok(array('ret' => 'ok'));
         return Resp::ok(array('ret' => 'ok'));
     }
     }
 
 
+    /**
+     * [6010] 设置/修改玩家昵称
+     * @param Req $req
+     */
+    static function SetUserNickname($req) {
+        list($newname) = $req->paras;                                           # 参数: 新昵称, 头像
+        my_Assert(isset(glc()->User_SetNickname_Cost), "全局变量中未找到改名消耗钻石数量的配置字段");
+        $amt = glc()->User_SetNickname_Cost;                                    # 改名需要消耗钻石
+        $ok = UserGameModel::Consume_Cash($req->userInfo->game->baseInfo, $amt); # 扣除钻石
+        my_Assert($ok, ErrCode::notenough_cash_msg);
+        my_Assert(self::checkRoleNameNotExist($newname), ErrCode::user_nicknameexist); # 昵称已存在
+        $req->userInfo->game->baseInfo->name = $newname;
+        daoInst()->update(self::role_Table)
+                ->data(array('roleName' => $newname))
+                ->where('userID')->eq($req->uid)
+                ->andWhere('zoneid')->eq($req->zoneid)
+                ->exec();
+        UserProc::updateUserInfo();
+        return Resp::ok(array('ret' => 'ok'));
+    }
+
+// </editor-fold>
+//
+// <editor-fold defaultstate="collapsed" desc="新手引导">
+
     /**
     /**
      * [6009] 新手引导 发送n张碎片到玩家身上
      * [6009] 新手引导 发送n张碎片到玩家身上
      * @param Req $req
      * @param Req $req
@@ -97,29 +151,7 @@ class UserProc {
     }
     }
 
 
     /**
     /**
-     * [6008] 设置/修改玩家昵称
-     * @param Req $req
-     */
-    static function SetUserNickname($req) {
-        list($newname, $image) = $req->paras;                                   # 参数: 新昵称, 头像
-        my_Assert(isset(glc()->User_SetNickname_CostItemid), "全局变量中未找到改名消耗道具的配置字段");
-        $itemid = glc()->User_SetNickname_CostItemid;
-        $err = StoreProc::removeItemFromStore($req->userInfo->game->store, $itemid, 1);
-        my_Assert($err == ErrCode::ok, $err);
-
-        $req->userInfo->game->baseInfo->name = $newname;
-        $req->userInfo->game->baseInfo->img = $image;
-        daoInst()->update(self::role_Table)
-                ->data(array('roleName' => $newname))
-                ->where('userID')->eq($req->uid)
-                ->andWhere('zoneid')->eq($req->zoneid)
-                ->exec();
-        UserProc::updateUserInfo();
-        return Resp::ok(array('ret' => 'ok'));
-    }
-
-    /**
-     * 增加 设置引导结束的标志位
+     * [6011] 增加 设置引导结束的标志位
      * @param type $req
      * @param type $req
      */
      */
     public static function setNewbieGuideOver($req) {
     public static function setNewbieGuideOver($req) {
@@ -169,6 +201,9 @@ class UserProc {
         ));
         ));
     }
     }
 
 
+// </editor-fold>
+//
+
     /**
     /**
      * 6006 注册新角色
      * 6006 注册新角色
      * @param Req $req
      * @param Req $req
@@ -437,7 +472,7 @@ class UserProc {
         $userInfo->game->initialize();                                          # 初始化玩家数据
         $userInfo->game->initialize();                                          # 初始化玩家数据
         $userInfo->game->baseInfo->name = $rolename;
         $userInfo->game->baseInfo->name = $rolename;
         $userInfo->game->baseInfo->gender = $gender;
         $userInfo->game->baseInfo->gender = $gender;
-        $userInfo->game->baseInfo->img = $profile_img;
+        $userInfo->game->baseInfo->headImg = $profile_img;
         $userInfo->game->baseInfo->firstLogin = now();
         $userInfo->game->baseInfo->firstLogin = now();
 //        $userInfo->game->pvp->socre = PVPProc::_getScore_by_uid($req, $req->uid); # 初始化pvp积分
 //        $userInfo->game->pvp->socre = PVPProc::_getScore_by_uid($req, $req->uid); # 初始化pvp积分
 //        $userInfo->game->NewbieGuideOver = 1;
 //        $userInfo->game->NewbieGuideOver = 1;
@@ -469,7 +504,7 @@ class UserProc {
         $platUser->uid = $uid;                                                  #
         $platUser->uid = $uid;                                                  #
         $platUser->name = $user->name;                                          #
         $platUser->name = $user->name;                                          #
         $platUser->level = $level;
         $platUser->level = $level;
-        $platUser->img = $user->img;                                            # 头像字段
+        $platUser->img = $user->headImg;                                            # 头像字段
         $platUser->cash = $user->cash;
         $platUser->cash = $user->cash;
         $platUser->gold = $user->gold;
         $platUser->gold = $user->gold;
         $platUser->tili = $user->tili;
         $platUser->tili = $user->tili;
@@ -561,7 +596,7 @@ class UserProc {
         if (isset($req->userInfo)) {                                            # 防御确保玩家数据不为空
         if (isset($req->userInfo)) {                                            # 防御确保玩家数据不为空
             $level = $req->userInfo->game->baseInfo->level;
             $level = $req->userInfo->game->baseInfo->level;
             $playerName = $req->userInfo->game->baseInfo->name;
             $playerName = $req->userInfo->game->baseInfo->name;
-            $headImg = $req->userInfo->game->baseInfo->img;
+            $headImg = $req->userInfo->game->baseInfo->headImg;
         } else {
         } else {
             CLog::warn('玩家数据为空!' . __CLASS__ . '.' . __FUNCTION__);
             CLog::warn('玩家数据为空!' . __CLASS__ . '.' . __FUNCTION__);
         }
         }

+ 2 - 2
Gameserver/Docs/DecodePetconf.php

@@ -10,7 +10,7 @@ $handle = fopen($filename, "rb");
 $contents = fread($handle, filesize($filename));
 $contents = fread($handle, filesize($filename));
 fclose($handle);
 fclose($handle);
 
 
-$str = gzuncompress(base64_decode($contents));
+// $str = gzuncompress(base64_decode($contents));
 
 
-// $str = gzdeflate(base64_decode($contents));
+$str = gzinflate(base64_decode($contents));
 echo $str;
 echo $str;

+ 2 - 2
Gameserver/Docs/EncodePetconf.php

@@ -10,7 +10,7 @@ $handle = fopen($filename, "rb");
 $contents = fread($handle, filesize($filename));
 $contents = fread($handle, filesize($filename));
 fclose($handle);
 fclose($handle);
 // 将json串先压缩 再进行base64编码
 // 将json串先压缩 再进行base64编码
-// $str = gzuncompress(base64_decode($contents));
-$str = base64_encode(gzcompress($contents));
+$str = base64_decode(gzdeflate($contents));
+// $str = base64_encode(gzcompress($contents));
 
 
 echo $str;
 echo $str;

+ 4 - 10
Gameserver/nbproject/private/private.xml

@@ -12,18 +12,12 @@
     </editor-bookmarks>
     </editor-bookmarks>
     <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
     <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
         <group>
         <group>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/model/User/UserShopInfoModel.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/process/EmailProc.php</file>
             <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/EmailProc.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/model/User/PrivateStateModel.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/configs/GameConfig.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/PayProc.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/ShopProc.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/StoreProc.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/EventProc/CornerSignEventProc.php</file>
             <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/base/CmdCode.php</file>
             <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/base/CmdCode.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/util/TimeUtil.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/ActiveProc.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/configs/GameConstants.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/UserProc.php</file>
         </group>
         </group>
     </open-files>
     </open-files>
 </project-private>
 </project-private>

+ 1 - 1
Gameserver/nbproject/project.properties

@@ -1,6 +1,6 @@
 auxiliary.org-netbeans-modules-php-smarty.smarty-framework=true
 auxiliary.org-netbeans-modules-php-smarty.smarty-framework=true
 include.path=${php.global.include.path}
 include.path=${php.global.include.path}
-php.version=PHP_73
+php.version=PHP_54
 source.encoding=UTF-8
 source.encoding=UTF-8
 src.dir=.
 src.dir=.
 tags.asp=false
 tags.asp=false