Sfoglia il codice sorgente

Merge branch 'dev' of http://ylsjtt.game7000.com:3000/YLSJ/jzhj2024server into dev

wanggangzero 9 mesi fa
parent
commit
0d63ee4c33
56 ha cambiato i file con 1309 aggiunte e 894 eliminazioni
  1. 8 0
      Gameserver/App/base/CmdCode.php
  2. 15 0
      Gameserver/App/base/ErrCode.php
  3. 490 460
      Gameserver/App/configs/GameConfig.php
  4. 33 1
      Gameserver/App/model/Const/GameConfig.php
  5. 32 0
      Gameserver/App/model/Const/sm_accumulaterecharge.php
  6. 1 1
      Gameserver/App/model/Const/sm_achieve_new.php
  7. 16 15
      Gameserver/App/model/Const/sm_activeTask.php
  8. 16 15
      Gameserver/App/model/Const/sm_activeTask_type.php
  9. 1 1
      Gameserver/App/model/Const/sm_active_day7_accumulate.php
  10. 1 1
      Gameserver/App/model/Const/sm_activepointreward.php
  11. 1 1
      Gameserver/App/model/Const/sm_activity.php
  12. 1 1
      Gameserver/App/model/Const/sm_activity_day7.php
  13. 1 1
      Gameserver/App/model/Const/sm_announcement.php
  14. 1 1
      Gameserver/App/model/Const/sm_clientVersionHistory.php
  15. 1 1
      Gameserver/App/model/Const/sm_equip.php
  16. 1 1
      Gameserver/App/model/Const/sm_equip_levelupgrade.php
  17. 1 1
      Gameserver/App/model/Const/sm_errmsg.php
  18. 1 1
      Gameserver/App/model/Const/sm_evolve.php
  19. 32 0
      Gameserver/App/model/Const/sm_firstrecharge_reward.php
  20. 1 1
      Gameserver/App/model/Const/sm_fun_unlock.php
  21. 1 1
      Gameserver/App/model/Const/sm_gate.php
  22. 1 1
      Gameserver/App/model/Const/sm_gate_sbox.php
  23. 1 1
      Gameserver/App/model/Const/sm_gate_unlock.php
  24. 1 1
      Gameserver/App/model/Const/sm_gem.php
  25. 19 4
      Gameserver/App/model/Const/sm_globalsettings.php
  26. 1 1
      Gameserver/App/model/Const/sm_hero.php
  27. 1 1
      Gameserver/App/model/Const/sm_heroType_typeId.php
  28. 1 1
      Gameserver/App/model/Const/sm_heroattr.php
  29. 1 1
      Gameserver/App/model/Const/sm_item.php
  30. 1 1
      Gameserver/App/model/Const/sm_item_2023_box.php
  31. 1 1
      Gameserver/App/model/Const/sm_player_level.php
  32. 1 1
      Gameserver/App/model/Const/sm_plots.php
  33. 1 1
      Gameserver/App/model/Const/sm_predicate.php
  34. 1 1
      Gameserver/App/model/Const/sm_rank_fightpowerreward.php
  35. 1 1
      Gameserver/App/model/Const/sm_rank_passgatereward.php
  36. 1 1
      Gameserver/App/model/Const/sm_service_schedule.php
  37. 1 1
      Gameserver/App/model/Const/sm_shop_box.php
  38. 1 1
      Gameserver/App/model/Const/sm_shop_cash.php
  39. 1 1
      Gameserver/App/model/Const/sm_shop_daily.php
  40. 1 1
      Gameserver/App/model/Const/sm_shop_gategift.php
  41. 1 1
      Gameserver/App/model/Const/sm_shop_gold.php
  42. 1 1
      Gameserver/App/model/Const/sm_shop_junbei.php
  43. 1 1
      Gameserver/App/model/Const/sm_shop_monthcard.php
  44. 1 1
      Gameserver/App/model/Const/sm_shop_supply.php
  45. 1 1
      Gameserver/App/model/Const/sm_skills.php
  46. 1 1
      Gameserver/App/model/Const/sm_sysmail.php
  47. 1 1
      Gameserver/App/model/Const/sm_token_PublicGift.php
  48. 1 1
      Gameserver/App/model/Const/sm_token_gift.php
  49. 1 1
      Gameserver/App/model/Const/sm_waveItem.php
  50. 1 1
      Gameserver/App/model/Const/sm_waves.php
  51. 25 0
      Gameserver/App/model/User/Info_PrivateState.php
  52. 6 0
      Gameserver/App/model/User/Info_UserBase.php
  53. 46 3
      Gameserver/App/process/FightProc.php
  54. 115 17
      Gameserver/App/process/PayProc.php
  55. 404 338
      Gameserver/App/process/ShopProc.php
  56. 11 0
      Gameserver/App/process/UserProc.php

+ 8 - 0
Gameserver/App/base/CmdCode.php

@@ -15,6 +15,10 @@ class CmdCode {
      * 领取首付礼包
      */
     const cmd_pay_getfirstpaygift = 8802;
+    
+    const cmd_pay_resetFirstRechargeUI_OpenTip = 8803;
+    
+    const cmd_pay_accumulateRechargeRewardReceived = 8804;
 
 // <editor-fold defaultstate="collapsed" desc="移动支付">
 //---------- 移动端 支付API 操作码 ----
@@ -423,6 +427,10 @@ class CmdCode {
      */
     const fight_buyLockSkillCount = 6823;
 
+    /**
+     * 排行榜一键升级
+     */
+    const fight_rank_ReceiveRankReward = 6824;
 // </editor-fold>
 // <editor-fold defaultstate="collapsed" desc="系统操作码 - 69xx">
 

+ 15 - 0
Gameserver/App/base/ErrCode.php

@@ -239,6 +239,21 @@ class ErrCode {
      */
     const pay_repeatbuy = 8819;
 
+    /**
+     * 充值奖励重复领取
+     */
+    const pay_repeatReceive = 8820;
+    
+    /**
+     * 没有到充值奖励领取时间
+     */
+    const pay_rewardReceive_ts_limit = 8821;
+    
+    /**
+     * 累计元宝数量不足无法领取奖励
+     */
+    const pay_accumulateYuanBaoNotEnough = 8822;
+    
 // </editor-fold>
 //
 // <editor-fold defaultstate="collapsed" desc="    not enough 系列    ">

+ 490 - 460
Gameserver/App/configs/GameConfig.php

@@ -3,38 +3,36 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-05 17:51:50
+ // 日期: 2024-09-06 10:15:03
 ////////////////////
 
 namespace loyalsoft;
 
 /**
- * 常量配置数据
+ * 常量配置数据 
  */
 class GameConfig {
-// <editor-fold defaultstate="collapsed" desc="  基础代码 ">
-
+// <editor-fold defaultstate="collapsed" desc="  基础代码 ">    
     /**
-     * 是否启用codegen
+     * 是否启用codegen 
      */
-    private static function isCG() {
-        return defined('CodeGen_Enabled') && CodeGen_Enabled;
+    private static function isCG()  {
+        return defined('CodeGen_Enabled') && CodeGen_Enabled; 
     }
-
     /**
      * @var bool 分区是否使用独立的常量配置数据
      */
     private static $useZoneId = false;
-
     /**
      * 追加分区列表字符串
      * @return string
      */
-    private static function zoneid() {
+    private static function zoneid()
+    {
         global $zoneid;
         return self::$useZoneId ? "-zone$zoneid" : "";
     }
-
+	
     /**
      * @return ClientVersion
      */
@@ -86,721 +84,753 @@ class GameConfig {
         }
         return null;
     }
-
 // </editor-fold>
-
     /**
-     * 全局参数
-     * @return \globalsettings
-     */
-    public static function globalsettings() {
-        static $a = null;
+    * 全局参数
+    * @return \globalsettings
+    */
+    public static function globalsettings()
+    { 
+        static $a = null; 
         return self::initValue($a, 'globalsettings');
     }
-
     /**
-     * 停服计划
-     * @return \service_schedule
-     */
-    public static function service_schedule() {
-        static $a = null;
+    * 停服计划
+    * @return \service_schedule
+    */
+    public static function service_schedule()
+    { 
+        static $a = null; 
         return self::initValue($a, 'service_schedule');
     }
-
     /**
-     * @return \sm_service_schedule service_schedule item数据
-     */
-    public static function service_schedule_getItem($itemid) {
+    * @return \sm_service_schedule service_schedule item数据 
+    */
+    public static function service_schedule_getItem($itemid)
+    { 
         return self::get_hash_item('service_schedule', $itemid);
     }
-
     /**
-     * 道具表
-     * @return \item
-     */
-    public static function item() {
-        static $a = null;
+    * 道具表
+    * @return \item
+    */
+    public static function item()
+    { 
+        static $a = null; 
         return self::initValue($a, 'item');
     }
-
     /**
-     * @return \sm_item item item数据
-     */
-    public static function item_getItem($itemid) {
+    * @return \sm_item item item数据 
+    */
+    public static function item_getItem($itemid)
+    { 
         return self::get_hash_item('item', $itemid);
     }
-
     /**
-     * 系统邮件
-     * @return \sysmail
-     */
-    public static function sysmail() {
-        static $a = null;
+    * 系统邮件
+    * @return \sysmail
+    */
+    public static function sysmail()
+    { 
+        static $a = null; 
         return self::initValue($a, 'sysmail');
     }
-
     /**
-     * @return \sm_sysmail sysmail item数据
-     */
-    public static function sysmail_getItem($itemid) {
+    * @return \sm_sysmail sysmail item数据 
+    */
+    public static function sysmail_getItem($itemid)
+    { 
         return self::get_hash_item('sysmail', $itemid);
     }
-
     /**
-     * 客户端版本信息
-     * @return \clientVersionHistory
-     */
-    public static function clientVersionHistory() {
-        static $a = null;
+    * 客户端版本信息
+    * @return \clientVersionHistory
+    */
+    public static function clientVersionHistory()
+    { 
+        static $a = null; 
         return self::initValue($a, 'clientVersionHistory');
     }
-
     /**
-     * @return \sm_clientVersionHistory clientVersionHistory item数据
-     */
-    public static function clientVersionHistory_getItem($itemid) {
+    * @return \sm_clientVersionHistory clientVersionHistory item数据 
+    */
+    public static function clientVersionHistory_getItem($itemid)
+    { 
         return self::get_hash_item('clientVersionHistory', $itemid);
     }
-
     /**
-     * 错误信息表
-     * @return \errmsg
-     */
-    public static function errmsg() {
-        static $a = null;
+    * 错误信息表
+    * @return \errmsg
+    */
+    public static function errmsg()
+    { 
+        static $a = null; 
         return self::initValue($a, 'errmsg');
     }
-
     /**
-     * @return \sm_errmsg errmsg item数据
-     */
-    public static function errmsg_getItem($itemid) {
+    * @return \sm_errmsg errmsg item数据 
+    */
+    public static function errmsg_getItem($itemid)
+    { 
         return self::get_hash_item('errmsg', $itemid);
     }
-
     /**
-     * 技能表
-     * @return \skills
-     */
-    public static function skills() {
-        static $a = null;
+    * 技能表
+    * @return \skills
+    */
+    public static function skills()
+    { 
+        static $a = null; 
         return self::initValue($a, 'skills');
     }
-
     /**
-     * @return \sm_skills skills item数据
-     */
-    public static function skills_getItem($itemid) {
+    * @return \sm_skills skills item数据 
+    */
+    public static function skills_getItem($itemid)
+    { 
         return self::get_hash_item('skills', $itemid);
     }
-
     /**
-     * 战斗: 波次表
-     * @return \waves
-     */
-    public static function waves() {
-        static $a = null;
+    * 战斗: 波次表
+    * @return \waves
+    */
+    public static function waves()
+    { 
+        static $a = null; 
         return self::initValue($a, 'waves');
     }
-
     /**
-     * @return \sm_waves waves itemArray
-     */
-    public static function waves_getItemArray($key) {
+    * @return \sm_waves waves itemArray 
+    */
+    public static function waves_getItemArray($key)
+    { 
         return self::get_hash_item('waves', $key);
     }
-
     /**
-     * 活动: 七日签到
-     * @return \activity_day7
-     */
-    public static function activity_day7() {
-        static $a = null;
+    * 活动: 七日签到
+    * @return \activity_day7
+    */
+    public static function activity_day7()
+    { 
+        static $a = null; 
         return self::initValue($a, 'activity_day7');
     }
-
     /**
-     * @return \sm_activity_day7 activity_day7 item数据
-     */
-    public static function activity_day7_getItem($itemid) {
+    * @return \sm_activity_day7 activity_day7 item数据 
+    */
+    public static function activity_day7_getItem($itemid)
+    { 
         return self::get_hash_item('activity_day7', $itemid);
     }
-
     /**
-     * 章节表
-     * @return \gate
-     */
-    public static function gate() {
-        static $a = null;
+    * 章节表
+    * @return \gate
+    */
+    public static function gate()
+    { 
+        static $a = null; 
         return self::initValue($a, 'gate');
     }
-
     /**
-     * @return \sm_gate gate item数据
-     */
-    public static function gate_getItem($itemid) {
+    * @return \sm_gate gate item数据 
+    */
+    public static function gate_getItem($itemid)
+    { 
         return self::get_hash_item('gate', $itemid);
     }
-
     /**
-     * 角色
-     * @return \hero
-     */
-    public static function hero() {
-        static $a = null;
+    * 角色
+    * @return \hero
+    */
+    public static function hero()
+    { 
+        static $a = null; 
         return self::initValue($a, 'hero');
     }
-
     /**
-     * @return \sm_hero hero item数据
-     */
-    public static function hero_getItem($itemid) {
+    * @return \sm_hero hero item数据 
+    */
+    public static function hero_getItem($itemid)
+    { 
         return self::get_hash_item('hero', $itemid);
     }
-
     /**
-     * 装备表
-     * @return \equip
-     */
-    public static function equip() {
-        static $a = null;
+    * 装备表
+    * @return \equip
+    */
+    public static function equip()
+    { 
+        static $a = null; 
         return self::initValue($a, 'equip');
     }
-
     /**
-     * @return \sm_equip equip item数据
-     */
-    public static function equip_getItem($itemid) {
+    * @return \sm_equip equip item数据 
+    */
+    public static function equip_getItem($itemid)
+    { 
         return self::get_hash_item('equip', $itemid);
     }
-
     /**
-     * 装备升级表
-     * @return \equip_levelupgrade
-     */
-    public static function equip_levelupgrade() {
-        static $a = null;
+    * 装备升级表
+    * @return \equip_levelupgrade
+    */
+    public static function equip_levelupgrade()
+    { 
+        static $a = null; 
         return self::initValue($a, 'equip_levelupgrade');
     }
-
     /**
-     * @return \sm_equip_levelupgrade equip_levelupgrade item数据
-     */
-    public static function equip_levelupgrade_getItem($itemid) {
+    * @return \sm_equip_levelupgrade equip_levelupgrade item数据 
+    */
+    public static function equip_levelupgrade_getItem($itemid)
+    { 
         return self::get_hash_item('equip_levelupgrade', $itemid);
     }
-
     /**
-     * 章节礼包表
-     * @return \shop_gategift
-     */
-    public static function shop_gategift() {
-        static $a = null;
+    * 章节礼包表
+    * @return \shop_gategift
+    */
+    public static function shop_gategift()
+    { 
+        static $a = null; 
         return self::initValue($a, 'shop_gategift');
     }
-
     /**
-     * @return \sm_shop_gategift shop_gategift item数据
-     */
-    public static function shop_gategift_getItem($itemid) {
+    * @return \sm_shop_gategift shop_gategift item数据 
+    */
+    public static function shop_gategift_getItem($itemid)
+    { 
         return self::get_hash_item('shop_gategift', $itemid);
     }
-
     /**
-     * 每日商店
-     * @return \shop_daily
-     */
-    public static function shop_daily() {
-        static $a = null;
+    * 每日商店
+    * @return \shop_daily
+    */
+    public static function shop_daily()
+    { 
+        static $a = null; 
         return self::initValue($a, 'shop_daily');
     }
-
     /**
-     * @return \sm_shop_daily shop_daily item数据
-     */
-    public static function shop_daily_getItem($itemid) {
+    * @return \sm_shop_daily shop_daily item数据 
+    */
+    public static function shop_daily_getItem($itemid)
+    { 
         return self::get_hash_item('shop_daily', $itemid);
     }
-
     /**
-     * 钻石商店
-     * @return \shop_cash
-     */
-    public static function shop_cash() {
-        static $a = null;
+    * 钻石商店
+    * @return \shop_cash
+    */
+    public static function shop_cash()
+    { 
+        static $a = null; 
         return self::initValue($a, 'shop_cash');
     }
-
     /**
-     * @return \sm_shop_cash shop_cash item数据
-     */
-    public static function shop_cash_getItem($itemid) {
+    * @return \sm_shop_cash shop_cash item数据 
+    */
+    public static function shop_cash_getItem($itemid)
+    { 
         return self::get_hash_item('shop_cash', $itemid);
     }
-
     /**
-     * 金币商店
-     * @return \shop_gold
-     */
-    public static function shop_gold() {
-        static $a = null;
+    * 金币商店
+    * @return \shop_gold
+    */
+    public static function shop_gold()
+    { 
+        static $a = null; 
         return self::initValue($a, 'shop_gold');
     }
-
     /**
-     * @return \sm_shop_gold shop_gold item数据
-     */
-    public static function shop_gold_getItem($itemid) {
+    * @return \sm_shop_gold shop_gold item数据 
+    */
+    public static function shop_gold_getItem($itemid)
+    { 
         return self::get_hash_item('shop_gold', $itemid);
     }
-
     /**
-     * 商城供给表-应该是废弃了
-     * @return \shop_supply
-     */
-    public static function shop_supply() {
-        static $a = null;
+    * 商城供给表-应该是废弃了
+    * @return \shop_supply
+    */
+    public static function shop_supply()
+    { 
+        static $a = null; 
         return self::initValue($a, 'shop_supply');
     }
-
     /**
-     * @return \sm_shop_supply shop_supply item数据
-     */
-    public static function shop_supply_getItem($itemid) {
+    * @return \sm_shop_supply shop_supply item数据 
+    */
+    public static function shop_supply_getItem($itemid)
+    { 
         return self::get_hash_item('shop_supply', $itemid);
     }
-
     /**
-     * 词条配置表
-     * @return \predicate
-     */
-    public static function predicate() {
-        static $a = null;
+    * 词条配置表
+    * @return \predicate
+    */
+    public static function predicate()
+    { 
+        static $a = null; 
         return self::initValue($a, 'predicate');
     }
-
     /**
-     * @return \sm_predicate predicate item数据
-     */
-    public static function predicate_getItem($itemid) {
+    * @return \sm_predicate predicate item数据 
+    */
+    public static function predicate_getItem($itemid)
+    { 
         return self::get_hash_item('predicate', $itemid);
     }
-
     /**
-     * 商城军备
-     * @return \shop_junbei
-     */
-    public static function shop_junbei() {
-        static $a = null;
+    * 商城军备
+    * @return \shop_junbei
+    */
+    public static function shop_junbei()
+    { 
+        static $a = null; 
         return self::initValue($a, 'shop_junbei');
     }
-
     /**
-     * @return \sm_shop_junbei shop_junbei item数据
-     */
-    public static function shop_junbei_getItem($itemid) {
+    * @return \sm_shop_junbei shop_junbei item数据 
+    */
+    public static function shop_junbei_getItem($itemid)
+    { 
         return self::get_hash_item('shop_junbei', $itemid);
     }
-
     /**
-     * 进化表
-     * @return \evolve
-     */
-    public static function evolve() {
-        static $a = null;
+    * 进化表
+    * @return \evolve
+    */
+    public static function evolve()
+    { 
+        static $a = null; 
         return self::initValue($a, 'evolve');
     }
-
     /**
-     * @return \sm_evolve evolve item数据
-     */
-    public static function evolve_getItem($itemid) {
+    * @return \sm_evolve evolve item数据 
+    */
+    public static function evolve_getItem($itemid)
+    { 
         return self::get_hash_item('evolve', $itemid);
     }
-
     /**
-     * 7日签到累计
-     * @return \active_day7_accumulate
-     */
-    public static function active_day7_accumulate() {
-        static $a = null;
+    * 7日签到累计
+    * @return \active_day7_accumulate
+    */
+    public static function active_day7_accumulate()
+    { 
+        static $a = null; 
         return self::initValue($a, 'active_day7_accumulate');
     }
-
     /**
-     * @return \sm_active_day7_accumulate active_day7_accumulate item数据
-     */
-    public static function active_day7_accumulate_getItem($itemid) {
+    * @return \sm_active_day7_accumulate active_day7_accumulate item数据 
+    */
+    public static function active_day7_accumulate_getItem($itemid)
+    { 
         return self::get_hash_item('active_day7_accumulate', $itemid);
     }
-
     /**
-     * 宝石表
-     * @return \gem
-     */
-    public static function gem() {
-        static $a = null;
+    * 宝石表
+    * @return \gem
+    */
+    public static function gem()
+    { 
+        static $a = null; 
         return self::initValue($a, 'gem');
     }
-
     /**
-     * @return \sm_gem gem item数据
-     */
-    public static function gem_getItem($itemid) {
+    * @return \sm_gem gem item数据 
+    */
+    public static function gem_getItem($itemid)
+    { 
         return self::get_hash_item('gem', $itemid);
     }
-
     /**
-     * 秘宝表
-     * @return \gate_sbox
-     */
-    public static function gate_sbox() {
-        static $a = null;
+    * 秘宝表
+    * @return \gate_sbox
+    */
+    public static function gate_sbox()
+    { 
+        static $a = null; 
         return self::initValue($a, 'gate_sbox');
     }
-
     /**
-     * @return \sm_gate_sbox gate_sbox itemArray
-     */
-    public static function gate_sbox_getItemArray($key) {
+    * @return \sm_gate_sbox gate_sbox itemArray 
+    */
+    public static function gate_sbox_getItemArray($key)
+    { 
         return self::get_hash_item('gate_sbox', $key);
     }
-
     /**
-     * 最新的成就
-     * @return \achieve_new
-     */
-    public static function achieve_new() {
-        static $a = null;
+    * 最新的成就
+    * @return \achieve_new
+    */
+    public static function achieve_new()
+    { 
+        static $a = null; 
         return self::initValue($a, 'achieve_new');
     }
-
     /**
-     * @return \sm_achieve_new achieve_new item数据
-     */
-    public static function achieve_new_getItem($itemid) {
+    * @return \sm_achieve_new achieve_new item数据 
+    */
+    public static function achieve_new_getItem($itemid)
+    { 
         return self::get_hash_item('achieve_new', $itemid);
     }
-
     /**
-     * 人物属性
-     * @return \heroattr
-     */
-    public static function heroattr() {
-        static $a = null;
+    * 人物属性
+    * @return \heroattr
+    */
+    public static function heroattr()
+    { 
+        static $a = null; 
         return self::initValue($a, 'heroattr');
     }
-
     /**
-     * @return \sm_heroattr heroattr item数据
-     */
-    public static function heroattr_getItem($itemid) {
+    * @return \sm_heroattr heroattr item数据 
+    */
+    public static function heroattr_getItem($itemid)
+    { 
         return self::get_hash_item('heroattr', $itemid);
     }
-
     /**
-     * 剧情对话
-     * @return \plots
-     */
-    public static function plots() {
-        static $a = null;
+    * 剧情对话
+    * @return \plots
+    */
+    public static function plots()
+    { 
+        static $a = null; 
         return self::initValue($a, 'plots');
     }
-
     /**
-     * @return \sm_plots plots item数据
-     */
-    public static function plots_getItem($itemid) {
+    * @return \sm_plots plots item数据 
+    */
+    public static function plots_getItem($itemid)
+    { 
         return self::get_hash_item('plots', $itemid);
     }
-
     /**
-     * 商城宝箱表
-     * @return \shop_box
-     */
-    public static function shop_box() {
-        static $a = null;
+    * 商城宝箱表
+    * @return \shop_box
+    */
+    public static function shop_box()
+    { 
+        static $a = null; 
         return self::initValue($a, 'shop_box');
     }
-
     /**
-     * @return \sm_shop_box shop_box item数据
-     */
-    public static function shop_box_getItem($itemid) {
+    * @return \sm_shop_box shop_box item数据 
+    */
+    public static function shop_box_getItem($itemid)
+    { 
         return self::get_hash_item('shop_box', $itemid);
     }
-
     /**
-     * 商城月卡
-     * @return \shop_monthcard
-     */
-    public static function shop_monthcard() {
-        static $a = null;
+    * 商城月卡
+    * @return \shop_monthcard
+    */
+    public static function shop_monthcard()
+    { 
+        static $a = null; 
         return self::initValue($a, 'shop_monthcard');
     }
-
     /**
-     * @return \sm_shop_monthcard shop_monthcard item数据
-     */
-    public static function shop_monthcard_getItem($itemid) {
+    * @return \sm_shop_monthcard shop_monthcard item数据 
+    */
+    public static function shop_monthcard_getItem($itemid)
+    { 
         return self::get_hash_item('shop_monthcard', $itemid);
     }
-
     /**
-     * 7日狂欢活跃点奖励
-     * @return \activepointreward
-     */
-    public static function activepointreward() {
-        static $a = null;
+    * 7日狂欢活跃点奖励
+    * @return \activepointreward
+    */
+    public static function activepointreward()
+    { 
+        static $a = null; 
         return self::initValue($a, 'activepointreward');
     }
-
     /**
-     * @return \sm_activepointreward activepointreward item数据
-     */
-    public static function activepointreward_getItem($type, $pointId) {
+    * @return \sm_activepointreward activepointreward item数据 
+    */
+    public static function activepointreward_getItem($type, $pointId)
+    { 
         return self::get_hash_item('activepointreward', "$type-$pointId");
     }
-
     /**
-     * 活动任务
-     * @return \activeTask
-     */
-    public static function activeTask() {
-        static $a = null;
+    * 活动任务
+    * @return \activeTask
+    */
+    public static function activeTask()
+    { 
+        static $a = null; 
         return self::initValue($a, 'activeTask');
     }
-
     /**
-     * @return \sm_activeTask activeTask item数据
-     */
-    public static function activeTask_getItem($itemid) {
+    * @return \sm_activeTask activeTask item数据 
+    */
+    public static function activeTask_getItem($itemid)
+    { 
         return self::get_hash_item('activeTask', $itemid);
     }
-
     /**
-     * 活动任务根据类型的不同分开
-     * @return \activeTask_type
-     */
-    public static function activeTask_type() {
-        static $a = null;
+    * 活动任务根据类型的不同分开
+    * @return \activeTask_type
+    */
+    public static function activeTask_type()
+    { 
+        static $a = null; 
         return self::initValue($a, 'activeTask_type');
     }
-
     /**
-     * @return \sm_activeTask_type activeTask_type itemArray
-     */
-    public static function activeTask_type_getItemArray($key) {
+    * @return \sm_activeTask_type activeTask_type itemArray 
+    */
+    public static function activeTask_type_getItemArray($key)
+    { 
         return self::get_hash_item('activeTask_type', $key);
     }
-
     /**
-     * 活动
-     * @return \activity
-     */
-    public static function activity() {
-        static $a = null;
+    * 活动
+    * @return \activity
+    */
+    public static function activity()
+    { 
+        static $a = null; 
         return self::initValue($a, 'activity');
     }
-
     /**
-     * @return \sm_activity activity item数据
-     */
-    public static function activity_getItem($itemid) {
+    * @return \sm_activity activity item数据 
+    */
+    public static function activity_getItem($itemid)
+    { 
         return self::get_hash_item('activity', $itemid);
     }
-
     /**
-     * 公告
-     * @return \announcement
-     */
-    public static function announcement() {
-        static $a = null;
+    * 公告
+    * @return \announcement
+    */
+    public static function announcement()
+    { 
+        static $a = null; 
         return self::initValue($a, 'announcement');
     }
-
     /**
-     * @return \sm_announcement announcement item数据
-     */
-    public static function announcement_getItem($itemid) {
+    * @return \sm_announcement announcement item数据 
+    */
+    public static function announcement_getItem($itemid)
+    { 
         return self::get_hash_item('announcement', $itemid);
     }
-
     /**
-     * 战力荣誉榜信息
-     * @return \rank_fightpowerreward
-     */
-    public static function rank_fightpowerreward() {
-        static $a = null;
+    * 战力荣誉榜信息
+    * @return \rank_fightpowerreward
+    */
+    public static function rank_fightpowerreward()
+    { 
+        static $a = null; 
         return self::initValue($a, 'rank_fightpowerreward');
     }
-
     /**
-     * @return \sm_rank_fightpowerreward rank_fightpowerreward item数据
-     */
-    public static function rank_fightpowerreward_getItem($itemid) {
+    * @return \sm_rank_fightpowerreward rank_fightpowerreward item数据 
+    */
+    public static function rank_fightpowerreward_getItem($itemid)
+    { 
         return self::get_hash_item('rank_fightpowerreward', $itemid);
     }
-
     /**
-     * 主线荣誉榜信息
-     * @return \rank_passgatereward
-     */
-    public static function rank_passgatereward() {
-        static $a = null;
+    * 主线荣誉榜信息
+    * @return \rank_passgatereward
+    */
+    public static function rank_passgatereward()
+    { 
+        static $a = null; 
         return self::initValue($a, 'rank_passgatereward');
     }
-
     /**
-     * @return \sm_rank_passgatereward rank_passgatereward item数据
-     */
-    public static function rank_passgatereward_getItem($itemid) {
+    * @return \sm_rank_passgatereward rank_passgatereward item数据 
+    */
+    public static function rank_passgatereward_getItem($itemid)
+    { 
         return self::get_hash_item('rank_passgatereward', $itemid);
     }
-
     /**
-     * 玩家等级表
-     * @return \player_level
-     */
-    public static function player_level() {
-        static $a = null;
+    * 玩家等级表
+    * @return \player_level
+    */
+    public static function player_level()
+    { 
+        static $a = null; 
         return self::initValue($a, 'player_level');
     }
-
     /**
-     * @return \sm_player_level player_level item数据
-     */
-    public static function player_level_getItem($itemid) {
+    * @return \sm_player_level player_level item数据 
+    */
+    public static function player_level_getItem($itemid)
+    { 
         return self::get_hash_item('player_level', $itemid);
     }
-
     /**
-     *  辅助:主线剧情解锁
-     * @return \gate_unlock
-     */
-    public static function gate_unlock() {
-        static $a = null;
+    *  辅助:主线剧情解锁
+    * @return \gate_unlock
+    */
+    public static function gate_unlock()
+    { 
+        static $a = null; 
         return self::initValue($a, 'gate_unlock');
     }
-
     /**
-     * @return \sm_gate_unlock gate_unlock itemArray
-     */
-    public static function gate_unlock_getItemArray($key) {
+    * @return \sm_gate_unlock gate_unlock itemArray 
+    */
+    public static function gate_unlock_getItemArray($key)
+    { 
         return self::get_hash_item('gate_unlock', $key);
     }
-
     /**
-     * 辅助: 波次直查
-     * @return \waveItem
-     */
-    public static function waveItem() {
-        static $a = null;
+    * 辅助: 波次直查
+    * @return \waveItem
+    */
+    public static function waveItem()
+    { 
+        static $a = null; 
         return self::initValue($a, 'waveItem');
     }
-
     /**
-     * @return \sm_waveItem waveItem item数据
-     */
-    public static function waveItem_getItem($gateId, $waveId) {
+    * @return \sm_waveItem waveItem item数据 
+    */
+    public static function waveItem_getItem($gateId, $waveId)
+    { 
         return self::get_hash_item('waveItem', "$gateId-$waveId");
     }
-
     /**
-     * 道具宝箱表
-     * @return \item_2023_box
-     */
-    public static function item_2023_box() {
-        static $a = null;
+    * 道具宝箱表
+    * @return \item_2023_box
+    */
+    public static function item_2023_box()
+    { 
+        static $a = null; 
         return self::initValue($a, 'item_2023_box');
     }
-
     /**
-     * @return \sm_item_2023_box item_2023_box item数据
-     */
-    public static function item_2023_box_getItem($itemid) {
+    * @return \sm_item_2023_box item_2023_box item数据 
+    */
+    public static function item_2023_box_getItem($itemid)
+    { 
         return self::get_hash_item('item_2023_box', $itemid);
     }
-
     /**
-     * 人物分类
-     * @return \heroType_typeId
-     */
-    public static function heroType_typeId() {
-        static $a = null;
+    * 人物分类
+    * @return \heroType_typeId
+    */
+    public static function heroType_typeId()
+    { 
+        static $a = null; 
         return self::initValue($a, 'heroType_typeId');
     }
-
     /**
-     * @return \sm_heroType_typeId heroType_typeId itemArray
-     */
-    public static function heroType_typeId_getItemArray($key) {
+    * @return \sm_heroType_typeId heroType_typeId itemArray 
+    */
+    public static function heroType_typeId_getItemArray($key)
+    { 
         return self::get_hash_item('heroType_typeId', $key);
     }
-
     /**
-     * 激活码表
-     * @return \token_gift
-     */
-    public static function token_gift() {
-        static $a = null;
+    * 激活码表
+    * @return \token_gift
+    */
+    public static function token_gift()
+    { 
+        static $a = null; 
         return self::initValue($a, 'token_gift');
     }
-
     /**
-     * @return \sm_token_gift token_gift item数据
-     */
-    public static function token_gift_getItem($itemid) {
+    * @return \sm_token_gift token_gift item数据 
+    */
+    public static function token_gift_getItem($itemid)
+    { 
         return self::get_hash_item('token_gift', $itemid);
     }
-
     /**
-     * 公共兑换码
-     * @return \token_publicgift
-     */
-    public static function token_publicgift() {
-        static $a = null;
+    * 公共兑换码
+    * @return \token_publicgift
+    */
+    public static function token_publicgift()
+    { 
+        static $a = null; 
         return self::initValue($a, 'token_publicgift');
     }
-
     /**
-     * @return \sm_token_publicgift token_publicgift item数据
-     */
-    public static function token_publicgift_getItem($itemid) {
+    * @return \sm_token_publicgift token_publicgift item数据 
+    */
+    public static function token_publicgift_getItem($itemid)
+    { 
         return self::get_hash_item('token_publicgift', $itemid);
     }
-
     /**
-     * 游戏功能解锁信息
-     * @return \fun_unlock
-     */
-    public static function fun_unlock() {
-        static $a = null;
+    * 游戏功能解锁信息
+    * @return \fun_unlock
+    */
+    public static function fun_unlock()
+    { 
+        static $a = null; 
         return self::initValue($a, 'fun_unlock');
     }
-
     /**
-     * @return \sm_fun_unlock fun_unlock item数据
-     */
-    public static function fun_unlock_getItem($itemid) {
+    * @return \sm_fun_unlock fun_unlock item数据 
+    */
+    public static function fun_unlock_getItem($itemid)
+    { 
         return self::get_hash_item('fun_unlock', $itemid);
     }
-
     /**
-     * 当前版本(时间戳)
-     * @return \ver
-     */
-    public static function ver() {
-        static $a = null;
+    * 首充表
+    * @return \firstrecharge_reward
+    */
+    public static function firstrecharge_reward()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'firstrecharge_reward');
+    }
+    /**
+    * @return \sm_firstrecharge_reward firstrecharge_reward item数据 
+    */
+    public static function firstrecharge_reward_getItem($itemid)
+    { 
+        return self::get_hash_item('firstrecharge_reward', $itemid);
+    }
+    /**
+    * 累计充值
+    * @return \accumulaterecharge
+    */
+    public static function accumulaterecharge()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'accumulaterecharge');
+    }
+    /**
+    * @return \sm_accumulaterecharge accumulaterecharge item数据 
+    */
+    public static function accumulaterecharge_getItem($itemid)
+    { 
+        return self::get_hash_item('accumulaterecharge', $itemid);
+    }
+    /**
+    * 当前版本(时间戳)
+    * @return \ver
+    */
+    public static function ver()
+    { 
+        static $a = null; 
         return self::initValue($a, 'ver', false);
     }
-
     /**
-     * 客户端配置数据
-     * @return \client
-     */
-    public static function client() {
-        static $a = null;
+    * 客户端配置数据
+    * @return \client
+    */
+    public static function client()
+    { 
+        static $a = null; 
         return self::initValue($a, 'client', false);
     }
 }
+

+ 33 - 1
Gameserver/App/model/Const/GameConfig.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 16:08:19
+ // 日期: 2024-09-06 10:15:03
 ////////////////////
 
 /**
@@ -781,6 +781,38 @@ class GameConfig {
         return self::get_hash_item('fun_unlock', $itemid);
     }
     /**
+    * 首充表
+    * @return \firstrecharge_reward
+    */
+    public static function firstrecharge_reward()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'firstrecharge_reward');
+    }
+    /**
+    * @return \sm_firstrecharge_reward firstrecharge_reward item数据 
+    */
+    public static function firstrecharge_reward_getItem($itemid)
+    { 
+        return self::get_hash_item('firstrecharge_reward', $itemid);
+    }
+    /**
+    * 累计充值
+    * @return \accumulaterecharge
+    */
+    public static function accumulaterecharge()
+    { 
+        static $a = null; 
+        return self::initValue($a, 'accumulaterecharge');
+    }
+    /**
+    * @return \sm_accumulaterecharge accumulaterecharge item数据 
+    */
+    public static function accumulaterecharge_getItem($itemid)
+    { 
+        return self::get_hash_item('accumulaterecharge', $itemid);
+    }
+    /**
     * 当前版本(时间戳)
     * @return \ver
     */

+ 32 - 0
Gameserver/App/model/Const/sm_accumulaterecharge.php

@@ -0,0 +1,32 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2024-09-05 17:01:24
+////////////////////
+
+
+/**
+ * Static Model accumulaterecharge 累计充值
+ */
+class sm_accumulaterecharge
+{
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。 default(0) 
+    */
+    public $id;
+
+    /**
+    * @var Int32 元宝数量 default(0) 
+    */
+    public $yuanbao;
+
+    /**
+    * @var String 奖励  
+    */
+    public $reward;
+
+}
+

+ 1 - 1
Gameserver/App/model/Const/sm_achieve_new.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:07:58
+ // 日期: 2024-06-07 18:24:29
 ////////////////////
 
 

+ 16 - 15
Gameserver/App/model/Const/sm_activeTask.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:07:58
+ // 日期: 2024-09-04 11:34:36
 ////////////////////
 
 
@@ -37,6 +37,7 @@ class sm_activeTask
     * @var Int32 事件件码指令(详见文档)
     *  101: 每日登录游戏;参数1:无;参数2:登录次数
     *  102: 登录第X天;参数1:无,参数2:天数(数值)
+    *  103:领取一次活动奖励;参数1:无;参数2:次数
     *  201: 通关第X关;参数1:关卡ID;参数2:通关次数;
     *  202: 参与主线关卡X次;参数1:无;参数2:参与次数(数值)
     *  203: 参与挑战副本X次;参数1:无;参数2:参与次数(数值)
@@ -47,25 +48,24 @@ class sm_activeTask
     *  208: 领取排行榜元宝奖励X次;参数1:无;参数2:次数(数值)
     *  209: 玩家等级到达X级;参数1:无;参数2:等级(数值)
     *  210:通关第X关;参数1:关卡ID;参数2:通关次数(记录已通关状态)
+    *  211:扫荡关卡X次;参数1:无;参数2:次数
+    *  212:领取X次战力榜奖励;参数1:无;参数2:次数
+    *  213:封印X次技能;参数1:无;参数2:次数
     *  301: 完成X次启灵;参数1:无;参数2:次数(数值)
     *  302: 完成X次关键启灵;参数1:无;参数2:次数(数值)
     *  401: 镶嵌X个X品质以上宝石;参数1:宝石品质(数值);参数2:宝石数量
     *  402: 合成X次宝石;参数1:无;参数2:合成次数(数值)
     *  501: 任意1个法术等级达到2;参数1:法术等级;参数2:法术数量
-    *  601: 任意1件装备等级达到X级;参数:等级(数值);参数2:装备数量
-    *  602: 全身装备等级达到X级以上;参数:等级(数值);参数2:装备数量
+    *  601: 任意1件装备等级达到X级;参数1:等级(数值);参数2:装备数量
+    *  602: 全身装备等级达到X级以上;参数1:等级(数值);参数2:装备数量
     *  603: 装备等级升级X次;参数1:无;参数2:升级次数
-    *  701: 击败怪物总数达到X;参数一:无;参数2:数量
-    *  702: 击败首领50个;参数一:无;参数2:数量
-    *  801: 累计获取X金币;参数一:无;参数2:数量
-    *  802: 累计消耗X体力;参数一:无;参数2:数量
-    *  803: 累计消耗X钻石;参数一:无;参数2:数量
-    *  901: 开启X次璀璨宝石箱;参数一:宝箱类型(1:普通,2:璀璨);参数2:次数
-    *  902: 每日商店购买物品X次;参数一:无;参数2:次数
-    *  903: 开任意宝箱X次;参数一:无;参数2:次数
-    *  904: 购买或观看广告获得体力X次;参数一:无;参数2:次数
-    *  905: 任意充值X次;参数一:无;参数2:次数
-    *   default(0) 
+    *  701: 击败怪物总数达到X;参数1:无;参数2:数量
+    *  702: 击败首领50个;参数1:无;参数2:数量
+    *  801: 累计获取X金币;参数1:无;参数2:数量
+    *  802: 累计消耗X体力;参数1:无;参数2:数量
+    *  803: 累计消耗X钻石;参数1:无;参数2:数量
+    *  901: 开启X次璀璨宝石箱;参数1:宝箱类型(1:普通,2:璀璨);参数2:次数
+    *  902: 每日商店购买物品X次;参数1:无;参数2:次数 default(0) 
     */
     public $cmd;
 
@@ -113,7 +113,8 @@ class sm_activeTask
     *  4:前往挑战模式界面
     *  5:前往购买体力界面
     *  6.前往启灵界面
-    *  7.前往排行榜界面 default(0) 
+    *  7.前往排行榜界面
+    *  8: 封印界面 default(0) 
     */
     public $gotoType;
 

+ 16 - 15
Gameserver/App/model/Const/sm_activeTask_type.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:07:58
+ // 日期: 2024-09-04 11:34:36
 ////////////////////
 
 
@@ -37,6 +37,7 @@ class sm_activeTask_type
     * @var Int32 事件件码指令(详见文档)
     *  101: 每日登录游戏;参数1:无;参数2:登录次数
     *  102: 登录第X天;参数1:无,参数2:天数(数值)
+    *  103:领取一次活动奖励;参数1:无;参数2:次数
     *  201: 通关第X关;参数1:关卡ID;参数2:通关次数;
     *  202: 参与主线关卡X次;参数1:无;参数2:参与次数(数值)
     *  203: 参与挑战副本X次;参数1:无;参数2:参与次数(数值)
@@ -47,25 +48,24 @@ class sm_activeTask_type
     *  208: 领取排行榜元宝奖励X次;参数1:无;参数2:次数(数值)
     *  209: 玩家等级到达X级;参数1:无;参数2:等级(数值)
     *  210:通关第X关;参数1:关卡ID;参数2:通关次数(记录已通关状态)
+    *  211:扫荡关卡X次;参数1:无;参数2:次数
+    *  212:领取X次战力榜奖励;参数1:无;参数2:次数
+    *  213:封印X次技能;参数1:无;参数2:次数
     *  301: 完成X次启灵;参数1:无;参数2:次数(数值)
     *  302: 完成X次关键启灵;参数1:无;参数2:次数(数值)
     *  401: 镶嵌X个X品质以上宝石;参数1:宝石品质(数值);参数2:宝石数量
     *  402: 合成X次宝石;参数1:无;参数2:合成次数(数值)
     *  501: 任意1个法术等级达到2;参数1:法术等级;参数2:法术数量
-    *  601: 任意1件装备等级达到X级;参数:等级(数值);参数2:装备数量
-    *  602: 全身装备等级达到X级以上;参数:等级(数值);参数2:装备数量
+    *  601: 任意1件装备等级达到X级;参数1:等级(数值);参数2:装备数量
+    *  602: 全身装备等级达到X级以上;参数1:等级(数值);参数2:装备数量
     *  603: 装备等级升级X次;参数1:无;参数2:升级次数
-    *  701: 击败怪物总数达到X;参数一:无;参数2:数量
-    *  702: 击败首领50个;参数一:无;参数2:数量
-    *  801: 累计获取X金币;参数一:无;参数2:数量
-    *  802: 累计消耗X体力;参数一:无;参数2:数量
-    *  803: 累计消耗X钻石;参数一:无;参数2:数量
-    *  901: 开启X次璀璨宝石箱;参数一:宝箱类型(1:普通,2:璀璨);参数2:次数
-    *  902: 每日商店购买物品X次;参数一:无;参数2:次数
-    *  903: 开任意宝箱X次;参数一:无;参数2:次数
-    *  904: 购买或观看广告获得体力X次;参数一:无;参数2:次数
-    *  905: 任意充值X次;参数一:无;参数2:次数
-    *   default(0) 
+    *  701: 击败怪物总数达到X;参数1:无;参数2:数量
+    *  702: 击败首领50个;参数1:无;参数2:数量
+    *  801: 累计获取X金币;参数1:无;参数2:数量
+    *  802: 累计消耗X体力;参数1:无;参数2:数量
+    *  803: 累计消耗X钻石;参数1:无;参数2:数量
+    *  901: 开启X次璀璨宝石箱;参数1:宝箱类型(1:普通,2:璀璨);参数2:次数
+    *  902: 每日商店购买物品X次;参数1:无;参数2:次数 default(0) 
     */
     public $cmd;
 
@@ -113,7 +113,8 @@ class sm_activeTask_type
     *  4:前往挑战模式界面
     *  5:前往购买体力界面
     *  6.前往启灵界面
-    *  7.前往排行榜界面 default(0) 
+    *  7.前往排行榜界面
+    *  8: 封印界面 default(0) 
     */
     public $gotoType;
 

+ 1 - 1
Gameserver/App/model/Const/sm_active_day7_accumulate.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:07:58
+ // 日期: 2024-06-07 18:24:29
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_activepointreward.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-01 09:15:18
+ // 日期: 2024-04-29 11:24:54
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_activity.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:07:59
+ // 日期: 2024-06-07 18:24:30
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_activity_day7.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:07:59
+ // 日期: 2024-06-07 18:24:30
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_announcement.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:08:00
+ // 日期: 2024-09-02 17:05:50
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_clientVersionHistory.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:08:00
+ // 日期: 2024-06-07 18:24:30
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_equip.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:08:00
+ // 日期: 2024-07-25 16:35:48
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_equip_levelupgrade.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:08:01
+ // 日期: 2024-06-21 18:13:18
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_errmsg.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:08:01
+ // 日期: 2024-09-06 10:05:38
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_evolve.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:08:01
+ // 日期: 2024-08-29 17:05:49
 ////////////////////
 
 

+ 32 - 0
Gameserver/App/model/Const/sm_firstrecharge_reward.php

@@ -0,0 +1,32 @@
+<?php
+////////////////////
+ // 由CodeGenerator创建。
+ // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
+ // author: gwang 
+ // 日期: 2024-09-04 16:07:40
+////////////////////
+
+
+/**
+ * Static Model firstrecharge_reward 首充表
+ */
+class sm_firstrecharge_reward
+{
+
+    /**
+    * @var Int32 用途未知!!请到数据库中添加字段注释。  
+    */
+    public $id;
+
+    /**
+    * @var Int32 天 default(0) 
+    */
+    public $day;
+
+    /**
+    * @var String 奖励  
+    */
+    public $reward;
+
+}
+

+ 1 - 1
Gameserver/App/model/Const/sm_fun_unlock.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:08:01
+ // 日期: 2024-09-04 11:35:50
 ////////////////////
 
 

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

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:08:01
+ // 日期: 2024-08-30 18:20:43
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_gate_sbox.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:08:01
+ // 日期: 2024-07-24 15:35:47
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_gate_unlock.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:08:01
+ // 日期: 2024-08-30 18:20:43
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_gem.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:08:01
+ // 日期: 2024-07-31 16:05:48
 ////////////////////
 
 

+ 19 - 4
Gameserver/App/model/Const/sm_globalsettings.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:08:01
+ // 日期: 2024-09-05 16:05:50
 ////////////////////
 
 
@@ -24,12 +24,12 @@ class sm_globalsettings
     public $equipLeveUpTuzhi;
 
     /**
-    * @var string   
+    * @var string [废弃]  
     */
     public $equipQualUnlockSkillId;
 
     /**
-    * @var string 装备品阶+1+2的记录  
+    * @var string [废弃]装备品阶+1+2的记录  
     */
     public $equipQualAdd;
 
@@ -254,7 +254,7 @@ class sm_globalsettings
     public $FirstMainTaskId;
 
     /**
-    * @var int 技能封印按钮可用条件(已解锁技能总数达到X)  
+    * @var int 法术书技能封印按钮可用条件(已解锁技能总数达到X)  
     */
     public $Skill_LockBtn_EnableCount;
 
@@ -268,5 +268,20 @@ class sm_globalsettings
     */
     public $Skill_LockBtn_InitCount;
 
+    /**
+    * @var string 首充的描述信息  
+    */
+    public $FirstRechargeDesc;
+
+    /**
+    * @var string 改名->花费  
+    */
+    public $Rename_Cost;
+
+    /**
+    * @var int 改名->冷却时间  
+    */
+    public $Rename_Cooldown;
+
 }
 

+ 1 - 1
Gameserver/App/model/Const/sm_hero.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:08:01
+ // 日期: 2024-09-05 17:35:50
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_heroType_typeId.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:08:01
+ // 日期: 2024-09-05 17:35:50
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_heroattr.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:08:01
+ // 日期: 2024-06-07 18:24:31
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_item.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:28:53
+ // 日期: 2024-08-30 14:04:10
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_item_2023_box.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-01 09:15:20
+ // 日期: 2024-06-07 14:15:10
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_player_level.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:08:22
+ // 日期: 2024-08-15 16:43:50
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_plots.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:28:52
+ // 日期: 2024-09-02 17:52:32
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_predicate.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:28:52
+ // 日期: 2024-08-29 16:08:16
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_rank_fightpowerreward.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-01 09:15:20
+ // 日期: 2024-05-27 17:24:24
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_rank_passgatereward.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-01 09:15:20
+ // 日期: 2024-05-27 17:21:59
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_service_schedule.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:08:16
+ // 日期: 2024-06-07 18:24:33
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_shop_box.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-01 09:15:21
+ // 日期: 2024-04-17 10:49:26
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_shop_cash.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:08:16
+ // 日期: 2024-06-07 18:24:33
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_shop_daily.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-01 09:15:21
+ // 日期: 2024-03-20 15:21:17
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_shop_gategift.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-01 09:15:21
+ // 日期: 2024-03-20 15:21:17
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_shop_gold.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-01 09:15:21
+ // 日期: 2024-03-20 15:21:18
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_shop_junbei.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-01 09:15:21
+ // 日期: 2024-03-20 15:21:18
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_shop_monthcard.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-01 09:15:21
+ // 日期: 2024-04-24 14:44:52
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_shop_supply.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-01 09:15:22
+ // 日期: 2024-03-20 15:21:18
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_skills.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:28:52
+ // 日期: 2024-09-05 10:23:34
 ////////////////////
 
 

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

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:08:20
+ // 日期: 2024-09-02 17:34:32
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_token_PublicGift.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-01 09:15:23
+ // 日期: 2024-06-20 17:00:35
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_token_gift.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 14:08:02
+ // 日期: 2024-06-20 17:35:46
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_waveItem.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 16:08:51
+ // 日期: 2024-09-04 17:05:50
 ////////////////////
 
 

+ 1 - 1
Gameserver/App/model/Const/sm_waves.php

@@ -3,7 +3,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2024-08-29 16:08:51
+ // 日期: 2024-09-04 17:05:50
 ////////////////////
 
 

+ 25 - 0
Gameserver/App/model/User/Info_PrivateState.php

@@ -259,6 +259,31 @@ class Info_PrivateState extends Object_ext {
      * @var type
      */
     public $challange_RedMask = 0;
+       
+    /**
+     * 首充奖励领取记录
+     */
+    #[ArrayType]
+    public $firstRechargeRewardRecord = array();
+    
+    /**
+     * 
+     * @var type
+     */
+    public $firstRecharge_receiveTag = 0;
+    
+    /**
+     * 首充弹出提示
+     * @var type
+     */
+    public $firstRechargeUI_OpenTip = 1;
+    
+    /**
+     * 累计奖励领取记录
+     * @var type
+     */
+    #[ArrayType]
+    public $accumulateRechargeRewardRecord = array();
 
     /**
      * @var array 曾用名列表

+ 6 - 0
Gameserver/App/model/User/Info_UserBase.php

@@ -88,6 +88,12 @@ class Info_UserBase extends Object_ext {
      * @var int 历史充值总金额(单位:分)
      */
     public $charge_amt = 0;
+    
+    /**
+     * 累计元宝
+     * @var type
+     */
+    public $accumulateYuanBao = 0;
 
     /**
      * 新解锁的头像框

+ 46 - 3
Gameserver/App/process/FightProc.php

@@ -63,6 +63,8 @@ class FightProc {
                 return self::LockSkill();
             case CmdCode::fight_buyLockSkillCount:                              # 6823 购买更多封印数量
                 return self::BuySkillLockCount();
+            case CmdCode::fight_rank_ReceiveRankReward:                         # 6824 排行奖励一键领取
+                return self::ReceiveRankReward();
             default:
                 Err(ErrCode::cmd_err);
         }
@@ -711,7 +713,7 @@ class FightProc {
         TaskProc::OnKillCommonNumMonster($killMonsterNum);
         TaskProc::OnKillleaderNumMonster($killBossNum);
         TaskProc::OnFightGate_X($gateId);
-
+                     
         UserProc::updateUserInfo();
         $ret = array(
             'gates' => ctx()->gates,
@@ -1214,7 +1216,7 @@ class FightProc {
 
         $tag = self::isExistNoDrawed_MainGate();
         UserProc::updateUserInfo();
-        $ret = array('redTip' => $tag, 'task' => ctx()->task,);
+        $ret = array('redTip' => $tag, 'task' => ctx()->task,'store'=> ctx()->store,'cash'=> ctx()->baseInfo->cash,'reward'=> StoreProc::$reward);
         return Resp::ok($ret);
     }
 
@@ -1240,7 +1242,48 @@ class FightProc {
         $tag = self::isExistNoDrawed_FightPower();
 
         UserProc::updateUserInfo();
-        $ret = array('redTip' => $tag, 'task' => ctx()->task,);
+        $ret = array('redTip' => $tag, 'task' => ctx()->task,'store'=> ctx()->store,'cash'=> ctx()->baseInfo->cash,'reward'=> StoreProc::$reward);
+        return Resp::ok($ret);
+    }
+
+    /**
+     * 6824 排行奖励一键领取
+     */
+    static function ReceiveRankReward() {
+        list($type) = req()->paras;                                                # 解锁数量
+        if ($type == 1) {
+            $memKey = MemKey_GameRun::RankReward_MainGateIndex_Zone_hash(req()->zoneid);
+            $dic = gMem()->hgetall($memKey);
+            foreach ($dic as $gateId => $ins_rank) {
+                if (!in_array($gateId, ctx()->privateState->rankReward_drawed_MainGate)) {
+                    $mo = GameConfig::rank_passgatereward_getItem($gateId);
+                    StoreProc::AddMultiItemInStore($mo->reward);
+                    ctx()->privateState->rankReward_drawed_MainGate[] = $gateId;
+                    TaskProc::OnRankPrize_Num();
+                }
+            }
+        } else {
+            $memKey2 = MemKey_GameRun::RankReward_FightPower_Zone_hash(req()->zoneid);
+            $dic2 = gMem()->hgetall($memKey2);
+            foreach ($dic2 as $fightPower => $ins_rank) {
+                if (!in_array($fightPower, ctx()->privateState->rankReward_drawed_fightPower)) {
+                    $mo = GameConfig::rank_fightpowerreward_getItem($fightPower);
+                    StoreProc::AddMultiItemInStore($mo->reward);
+                    ctx()->privateState->rankReward_drawed_fightPower[] = $fightPower;
+                    TaskProc::OnFightRankPrize_Num();
+                }
+            }
+        }
+
+        UserProc::updateUserInfo();
+        $ret = array('redTip' => 0,
+                    'task' => ctx()->task,
+                    'store'=> ctx()->store,
+                    'cash'=> ctx()->baseInfo->cash,
+                    'reward'=> StoreProc::$reward,
+                    'rankReward_drawed_fightPower'=>ctx()->privateState->rankReward_drawed_fightPower,
+                    'rankReward_drawed_MainGate'=>ctx()->privateState->rankReward_drawed_MainGate,
+            );
         return Resp::ok($ret);
     }
 

+ 115 - 17
Gameserver/App/process/PayProc.php

@@ -31,6 +31,10 @@ class PayProc {
             // 支付相关的活动
             case CmdCode::cmd_pay_getfirstpaygift:                              # 8802 领取首充礼包
                 return PayProc::m_GetFirstPayGift();
+            case CmdCode::cmd_pay_resetFirstRechargeUI_OpenTip:                 # 8803 重置弹框 
+                return PayProc::resetFirstRechargeUI_OpenTip();
+            case CmdCode::cmd_pay_accumulateRechargeRewardReceived:             # 8804 累计充值领取奖励
+                return PayProc::accumulateRechargeRewardReceived();
 // 游戏内二级货币消费
             case CmdCode::cmd_mpay_pay:                                         # 8807 消费..
                 return self::m_pay();                                           # ::==> 购买普通商城物品
@@ -57,6 +61,60 @@ class PayProc {
                 return Resp::err(ErrCode::cmd_err);
         }
     }
+    
+    /**
+     * 8804 累计充值
+     */
+    static function accumulateRechargeRewardReceived(){
+        list($id) = req()->paras;
+        $mo = GameConfig::accumulaterecharge_getItem($id);        
+        my_Assert($mo != null, ErrCode::err_const_no);
+        
+        my_Assert(ctx()->baseInfo->accumulateYuanBao >= $id , ErrCode::pay_accumulateYuanBaoNotEnough);
+        my_Assert(in_array($id, ctx()->privateState->accumulateRechargeRewardRecord) , ErrCode::pay_repeatReceive);
+        
+        ctx()->privateState->accumulateRechargeRewardRecord[] = $id;
+        StoreProc::AddMultiItemInStore($mo->reward);
+        
+        $reset = true;
+        $dic = GameConfig::accumulaterecharge();
+        $max_yuanbao = 0;
+        foreach ($dic as $aMo) {
+            if(!in_array($aMo->yuanbao, ctx()->privateState->accumulateRechargeRewardRecord)){
+                $reset = false;
+            }          
+            
+            if($aMo->yuanbao > $max_yuanbao){
+                $max_yuanbao = $aMo->yuanbao;
+            }
+        }
+        
+        if($reset){
+            ctx()->privateState->accumulateRechargeRewardRecord = array();
+            ctx()->baseInfo->accumulateYuanBao -= $max_yuanbao;
+            if(ctx()->baseInfo->accumulateYuanBao <= 0){
+                ctx()->baseInfo->accumulateYuanBao = 0;
+            }
+        }
+        
+        UserProc::updateUserInfo();
+        return Resp::ok(array('gold' => ctx()->baseInfo->gold,
+                    'cash' => ctx()->baseInfo->cash,
+                    'store' => ctx()->store,
+                    'privateState' => ctx()->privateState,
+                    'reward'=> StoreProc::$reward,
+                    'reward_Gem'=> StoreProc::$reward_Gem,
+            ));   
+    }
+    
+    /**
+     * 8803 重置弹框 
+     */
+    static function resetFirstRechargeUI_OpenTip(){
+        ctx()->privateState->firstRechargeUI_OpenTip = 0;
+        UserProc::updateUserInfo();
+        return Resp::ok();
+    }
 
     static $retArr;
 
@@ -872,27 +930,67 @@ class PayProc {
      * [8802] 领取首付礼包
      */
     public static function m_GetFirstPayGift() {
-        $itemId = glc()->FirstPay_ItemId;
-        $privateState = ctx()->privateState;
+        //list($day) = req()->paras;
+        
+//        $itemId = glc()->FirstPay_ItemId;
+//        $privateState = ctx()->privateState;
+//
+//        if (CommUtil::isPropertyExists($privateState, "firstPayGift") #
+//                && $privateState->firstPayGift) {                               # 如果已经领取首付礼包
+//            return Resp::err(ErrCode::pay_firstpaygetted);
+//        }
+//        my_Assert(ctx()->baseInfo->charge_amt > 0, ErrCode::pay_firstpayno_err);                            # 如果尚未完成首付
+//
+//        $itemModel = GameConfig::shop_getItem($itemId);                         # 取商品常量
+//        if ($itemModel == null) {                                               # 检测首付礼包是否存在
+//            return Resp::err(ErrCode::err_const_no);
+//        }
+//        ctx()->privateState->firstPayGift = true;               # 设置首付标志
+        
+        my_Assert(ctx()->baseInfo->charge_amt != 0, ErrCode::pay_firstpayno_err);    
+        //my_Assert(!in_array($day, ctx()->privateState->firstRechargeRewardRecord), ErrCode::pay_repeatReceive);   
+        
+//        $ts = TimeUtil::totalDays(ctx()->privateState->firstRechargeTs);
+//        $sTs = $ts + $day -1;
+//        my_Assert(TimeUtil::totalDays() >= $sTs, ErrCode::pay_rewardReceive_ts_limit);    
+       
+        for ($i = 1; $i <= ctx()->privateState->firstRecharge_receiveTag; $i++) {
+            if(!in_array($i,ctx()->privateState->firstRechargeRewardRecord)){
+                ctx()->privateState->firstRechargeRewardRecord[] = $i;               
+                $mo = GameConfig::firstrecharge_reward_getItem($i);
+                my_Assert($mo != null, ErrCode::err_const_no);                          
+                StoreProc::AddMultiItemInStore($mo->reward);                            # 发放首付礼包到玩家仓库
+            }
+        }              
+        
+        ctx()->privateState->firstRechargeUI_OpenTip = 0;
+        
+        UserProc::updateUserInfo();                                             # 更新玩家数据
+     
+        return Resp::ok(array('gold' => ctx()->baseInfo->gold,
+                    'cash' => ctx()->baseInfo->cash,
+                    'store' => ctx()->store,
+                    'privateState' => ctx()->privateState,
+                    'reward'=> StoreProc::$reward,
+                    'reward_Gem'=> StoreProc::$reward_Gem,
+            ));                 
+    }
 
-        if (CommUtil::isPropertyExists($privateState, "firstPayGift") #
-                && $privateState->firstPayGift) {                               # 如果已经领取首付礼包
-            return Resp::err(ErrCode::pay_firstpaygetted);
+    public static function setFirstRechargeLoginTag() {
+        if(ctx()->baseInfo->charge_amt == 0){
+            return;
+        }  
+        
+        if(ctx()->privateState->firstRecharge_receiveTag == 3){
+            return;
         }
-        my_Assert(ctx()->baseInfo->charge_amt > 0, ErrCode::pay_firstpayno_err);                            # 如果尚未完成首付
-
-        $itemModel = GameConfig::shop_getItem($itemId);                         # 取商品常量
-        if ($itemModel == null) {                                               # 检测首付礼包是否存在
-            return Resp::err(ErrCode::err_const_no);
+        
+        if(ctx()->privateState->firstRecharge_receiveTag <1){
+            return;
         }
-        ctx()->privateState->firstPayGift = true;               # 设置首付标志
-        StoreProc::AddMultiItemInStore($itemModel->goods);                      # 发放首付礼包到玩家仓库
-        UserProc::updateUserInfo();                                             # 更新玩家数据
-        return Resp::ok(array('itemid' => $itemId,
-                    'rewardstr' => $itemModel->goods,
-                    'store' => ctx()->store));                   # 回送成功信息
+        ctx()->privateState->firstRecharge_receiveTag += 1;
     }
-
+    
 // </editor-fold>
 //
 //

+ 404 - 338
Gameserver/App/process/ShopProc.php

@@ -62,7 +62,7 @@ class ShopProc {
         return Resp::ok(array(
                     "privateState" => ctx()->privateState,
                     "baseInfo" => ctx()->baseInfo,
-                    "tili" => $addTili,           
+                    "tili" => $addTili,
                     "task" => ctx()->task,
         ));
     }
@@ -75,397 +75,463 @@ class ShopProc {
         list($type, $typeId, $buyNum) = req()->paras;
         $user = ctx();
 
-        $resultArr = array();
-        $dailyArr = array();
-        $equip = array();
-        $gateGift = array();
+        //$resultArr = array();       
         switch ($type) {
             case EnumShopGift::GateGift_Shop://章节礼包
-                my_Assert(!in_array($typeId, ctx()->privateState->gateGiftReceived), ErrCode::user_shop_NotRepeatBuy);
-
-                $mo = GameConfig::shop_gategift_getItem($typeId);
-                my_Assert($mo != null, ErrCode::err_const_no);
-
-                $price = explode(';', $mo->reward);
-                foreach ($price as $value) {
-                    $item = explode(',', $value);
-                    if (GameConfig::item_getItem($item[0])->itemType == EnumItemType::tuzhiBox) {
-                        $dic = GameConfig::item();
-                        $list = array();
-                        foreach ($dic as $id => $val) {
-                            if ($val->itemType == EnumItemType::tuzhi) {
-                                $list[] = $val->typeId;
-                            }
-                        }
-
-                        $randNum = rand(0, count($list) - 1);
-                        $tuzhiId = $list[$randNum];
-                        $gateGift[] = $tuzhiId . ',1';
-                    } else {
-                        $gateGift[] = $value;
-                    }
-                }
+                $gateGift = self::BuyShop_GateGift($type, $typeId, $buyNum);
+                break;
+            case EnumShopGift::Daily_Shop://每日商店                             
+                self::BuyShop_Daily($type, $typeId, $buyNum);
+                break;
 
-                foreach ($gateGift as $str) {
-                    StoreProc::AddMultiItemInStore($str);
-                }
+            case EnumShopGift::GemBox_Shop ://宝石宝箱---->2024.8.14 改为可能抽出宝石或是道具
+                self::BuyShop_GemBox($type, $typeId, $buyNum);
 
-                ctx()->privateState->gateGiftReceived[] = $typeId;
+                break;
+            case EnumShopGift::BujiBox_Shop://补给箱
+                $equip = self::BuyShop_BujiBox($type, $typeId, $buyNum);
+                break;
+            case EnumShopGift::Cash_Shop://商城-钻石
+                self::BuyShop_Cash($type, $typeId, $buyNum);
+                break;
+            case EnumShopGift::Gold_Shop://商城-金币--可以多次购买
+                self::BuyShop_Gold($type, $typeId, $buyNum);
+                break;
 
-                ctx()->baseInfo->charge_amt += $mo->curPrice;
+            case EnumShopGift::MonthCard_Shop:
+                self::BuyShop_MonthCard($type, $typeId, $buyNum);    
                 break;
-            case EnumShopGift::Daily_Shop://每日商店                             
-                $mo = GameConfig::shop_daily_getItem($typeId);
-                my_Assert($mo != null, ErrCode::err_const_no);
-
-                my_Assert(in_array($typeId, $user->privateState->dailyShopRandItems), ErrCode::err_const_no);
-                if ($mo->type == 1) {
-                    $getNum = 0;
-                    foreach ($user->privateState->dailyShopReceived as $id) {
-                        if ($id == $typeId) {
-                            $getNum += 1;
-                        }
-                    }
+            default:
+                break;
+        }
 
-                    if ($getNum >= $mo->freeNum) {
-                        my_Assert($user->privateState->dailyShop_GuangGaoNum < $mo->num, ErrCode::user_shop_GuanggaoFreeNumLimit);
-                        if ($user->privateState->dailyShop_GuangGaoNum >= 1) {
-                            my_Assert(now() - $user->privateState->dailyShop_GuangGaoTs >= $mo->downTs, ErrCode::user_shop_DownTsLimit);
-                        }
-                        $user->privateState->dailyShop_GuangGaoNum += 1;
-                        $user->privateState->dailyShop_GuangGaoTs = now();
-                    }                 
-                } else {
-                    my_Assert(!in_array($typeId, $user->privateState->dailyShopReceived), ErrCode::user_shop_NotRepeatBuy);
-
-                    switch ($mo->costType) {
-                        case EnumShopCost::Gold:
-                            my_Assert($user->baseInfo->gold >= $mo->costNum, ErrCode::notenough_gold_msg);
-                            ctx()->baseInfo->Consume_Gold($mo->costNum);
-                            break;
-                        case EnumShopCost::Cash:
-                            my_Assert($user->baseInfo->cash >= $mo->costNum, ErrCode::notenough_cash_msg);
-                            ctx()->baseInfo->Consume_Cash($mo->costNum);
-                            break;
-                        default:
-                            break;
-                    }
+//        if (ctx()->baseInfo->charge_amt > 0 && ctx()->baseInfo->fRechargePriceReceived == 0) {
+//            StoreProc::AddMultiItemInStore(GameConfig::globalsettings()->FirstRechargePrice);
+//            ctx()->baseInfo->fRechargePriceReceived = 1;
+//        }
 
-                    TaskProc::OnBuyNumDailyShop();                                       
-                }
 
-//                $str = explode(',', $mo->reward);
-//                if ($str[0] == 501) {//暂时还没有
-//                }
-                //$dailyArr
+        ctx($user);
+        UserProc::updateUserInfo();
+        return Resp::ok(array(
+                    //'gemBox' => $resultArr,
+                    //'gateGift' => $gateGift,
+                    'cash' => $user->baseInfo->cash,
+                    'gold' => $user->baseInfo->gold,
+                    'privateState' => $user->privateState,
+                    'store' => $user->store,
+                    'task' => ctx()->task,
+                    'heros' => ctx()->heros,
+                    'reward' => StoreProc::$reward,
+                    'reward_Gem' => StoreProc::$reward_Gem,
+        ));
+    }
+       
+    /*
+     * 商城章节礼包购买
+     */
 
-                StoreProc::AddMultiItemInStore($mo->reward);
-                ctx()->privateState->dailyShopReceived[] = $typeId;
-                TaskProc::OnBuyNumDailyShop_state();
-                break;
+    public static function BuyShop_GateGift($type, $typeId, $buyNum) {
+        $gateGift = array();
+        my_Assert(!in_array($typeId, ctx()->privateState->gateGiftReceived), ErrCode::user_shop_NotRepeatBuy);
 
-            case EnumShopGift::GemBox_Shop ://宝石宝箱---->2024.8.14 改为可能抽出宝石或是道具
-                $mo = GameConfig::shop_box_getItem($typeId);
-                my_Assert($mo != null, ErrCode::err_const_no);
-                
-                if ($buyNum == 1) {
-                   
-                    $yaoshiArr = explode(',', $mo->cost_one_yaoshi);
-                    $itemId = $yaoshiArr[0];
-                    if (StlUtil::dictHasProperty(ctx()->store->items, $itemId) && ctx()->store->items->$itemId >= $yaoshiArr[1]) {
-                        ctx()->store->removeItem($itemId, $yaoshiArr[1]);
-                    } else {
-                        $cost = $mo->cost_one;
-                        my_Assert($user->baseInfo->cash >= $cost, ErrCode::notenough_cash_msg);
-                        $user->baseInfo->Consume_Cash($cost);
-                    }
-                } elseif ($buyNum == 10) {                                      
-                    $yaoshiArr = explode(',', $mo->cost_ten_yaoshi);
-                    $itemId = $yaoshiArr[0];
-                    if (StlUtil::dictHasProperty(ctx()->store->items, $itemId) && ctx()->store->items->$itemId >= $yaoshiArr[1]) {
-                        ctx()->store->removeItem($itemId, $yaoshiArr[1]);
-                    } else {
-                        $cost = $mo->cost_ten;
-                        my_Assert($user->baseInfo->cash >= $cost, ErrCode::notenough_cash_msg);
-                        $user->baseInfo->Consume_Cash($cost);
-                    }                  
-                }
-                
-                if ($mo->type == 1) {
-                    if ($buyNum == 0) {
-                        $buyNum = 1;
-                        my_Assert(now() - $user->privateState->lastFreeGetTs_ShopBoxCommon >= $mo->freeDownTs * 24 * 60 * 60, ErrCode::user_shop_FreeNumLimit);
-                        $user->privateState->lastFreeGetTs_ShopBoxCommon = now();
-                    }
-                } else if ($mo->type == 2) {
-                    if ($buyNum == 0) {
-                        $buyNum = 1;
-                        my_Assert(now() - $user->privateState->lastFreeGetTs_ShopBoxBright >= $mo->freeDownTs * 24 * 60 * 60, ErrCode::user_shop_FreeNumLimit);
-                        $user->privateState->lastFreeGetTs_ShopBoxBright = now();
+        $mo = GameConfig::shop_gategift_getItem($typeId);
+        my_Assert($mo != null, ErrCode::err_const_no);
+
+        $price = explode(';', $mo->reward);
+        foreach ($price as $value) {
+            $item = explode(',', $value);
+            if (GameConfig::item_getItem($item[0])->itemType == EnumItemType::tuzhiBox) {
+                $dic = GameConfig::item();
+                $list = array();
+                foreach ($dic as $id => $val) {
+                    if ($val->itemType == EnumItemType::tuzhi) {
+                        $list[] = $val->typeId;
                     }
                 }
-                                
-                $arr = array();
-                $arr[] = 1;
-                $arr[] = 10;
-                if (!in_array($buyNum, $arr)) {
-                    $buyNum = 1;
+
+                $randNum = rand(0, count($list) - 1);
+                $tuzhiId = $list[$randNum];
+                $gateGift[] = $tuzhiId . ',1';
+            } else {
+                $gateGift[] = $value;
+            }
+        }
+
+        foreach ($gateGift as $str) {
+            StoreProc::AddMultiItemInStore($str);
+        }
+        ctx()->privateState->gateGiftReceived[] = $typeId;
+        ctx()->baseInfo->charge_amt += $mo->curPrice;
+        
+        return $gateGift;
+    }
+
+    /**
+     * 每日商店
+     * @param type $type
+     * @param type $typeId
+     * @param type $buyNum
+     */
+    public static function BuyShop_Daily($type, $typeId, $buyNum) {
+        $mo = GameConfig::shop_daily_getItem($typeId);
+        my_Assert($mo != null, ErrCode::err_const_no);
+
+        my_Assert(in_array($typeId, ctx()->privateState->dailyShopRandItems), ErrCode::err_const_no);
+        if ($mo->type == 1) {
+            $getNum = 0;
+            foreach (ctx()->privateState->dailyShopReceived as $id) {
+                if ($id == $typeId) {
+                    $getNum += 1;
                 }
-                TaskProc::OnOpenNumBrightBox($typeId, $buyNum);
-                TaskProc::OnOpenNumAnyBox($buyNum);
+            }
 
-                $perList = explode(';', $mo->percent);
-                $allNum = 0;
-                foreach ($perList as $key => $value) {
-                    $str = explode(',', $value);
-                    $allNum += $str[1];
+            if ($getNum >= $mo->freeNum) {
+                my_Assert(ctx()->privateState->dailyShop_GuangGaoNum < $mo->num, ErrCode::user_shop_GuanggaoFreeNumLimit);
+                if (ctx()->privateState->dailyShop_GuangGaoNum >= 1) {
+                    my_Assert(now() - ctx()->privateState->dailyShop_GuangGaoTs >= $mo->downTs, ErrCode::user_shop_DownTsLimit);
                 }
+                ctx()->privateState->dailyShop_GuangGaoNum += 1;
+                ctx()->privateState->dailyShop_GuangGaoTs = now();
+            }
+        } else {
+            my_Assert(!in_array($typeId, ctx()->privateState->dailyShopReceived), ErrCode::user_shop_NotRepeatBuy);
+
+            switch ($mo->costType) {
+                case EnumShopCost::Gold:
+                    my_Assert(ctx()->baseInfo->gold >= $mo->costNum, ErrCode::notenough_gold_msg);
+                    ctx()->baseInfo->Consume_Gold($mo->costNum);
+                    break;
+                case EnumShopCost::Cash:
+                    my_Assert(ctx()->baseInfo->cash >= $mo->costNum, ErrCode::notenough_cash_msg);
+                    ctx()->baseInfo->Consume_Cash($mo->costNum);
+                    break;
+                default:
+                    break;
+            }
 
-                $allNum *= 10;
-                for ($i = 0; $i < $buyNum; $i++) {
-                    mt_srand((double) microtime() * 1000000);
-                    $buyCount = 0;
-                    if ($mo->type == 1) {
-                        $user->privateState->buyNum_ShopBoxCommon += 1;
-                        $buyCount = $user->privateState->buyNum_ShopBoxCommon;
-                    } else {
-                        $user->privateState->buyNum_ShopBoxBright += 1;
-                        $buyCount = $user->privateState->buyNum_ShopBoxBright;
-                    }
+            TaskProc::OnBuyNumDailyShop();
+        }
 
-                    $bichu1 = explode(',', $mo->bichu1);
-                    $qual = 0;//改成道具盒子了 但是这个变量不动了
-                    if ($buyCount % $bichu1[0] == 0) {
-                        $qual = $bichu1[1];
-                    }
-                    if ($mo->bichu2 != null) {
-                        $bichu2 = explode(',', $mo->bichu2);
-                        if ($buyCount % $bichu2[0] == 0) {
-                            $qual = $bichu2[1];
-                        }
-                    }
+        StoreProc::AddMultiItemInStore($mo->reward);
+        ctx()->privateState->dailyShopReceived[] = $typeId;
+        TaskProc::OnBuyNumDailyShop_state();
+    }
 
-                    if ($qual == 0) {
-                        $start = 0;
-                        $end = 0;
-                        $randNum = mt_rand(1, $allNum);
-                        foreach ($perList as $k => $val) {
-                            $str = explode(',', $val);
-                            $end += $str[1] * 10;
-                            if ($randNum > $start && $randNum <= $end) {
-                                $qual = $str[0];
-                                break;
-                            }
-                            $start = $end;
-                        }
-                    }
+    /**
+     * 宝石宝箱---->2024.8.14 改为可能抽出宝石或是道具
+     */
+    public static function BuyShop_GemBox($type, $typeId, $buyNum) {
+        $mo = GameConfig::shop_box_getItem($typeId);
+        my_Assert($mo != null, ErrCode::err_const_no);
 
-                    if ($qual > 0) {                                              
-                        StoreProc::AddMultiItemInStore($qual.",1", Enum_StoreSourceType::ShopBox);
-                    }
-                }
-                TaskProc::OnOpenNumBrightBox_state($typeId, $buyNum);
+        if ($buyNum == 1) {
 
-                break;
-            case EnumShopGift::BujiBox_Shop://补给箱
-                $mo = GameConfig::shop_supply_getItem($typeId);
-                my_Assert($mo != null, ErrCode::err_const_no);
+            $yaoshiArr = explode(',', $mo->cost_one_yaoshi);
+            $itemId = $yaoshiArr[0];
+            if (StlUtil::dictHasProperty(ctx()->store->items, $itemId) && ctx()->store->items->$itemId >= $yaoshiArr[1]) {
+                ctx()->store->removeItem($itemId, $yaoshiArr[1]);
+            } else {
+                $cost = $mo->cost_one;
+                my_Assert(ctx()->baseInfo->cash >= $cost, ErrCode::notenough_cash_msg);
+                ctx()->baseInfo->Consume_Cash($cost);
+            }
+        } elseif ($buyNum == 10) {
+            $yaoshiArr = explode(',', $mo->cost_ten_yaoshi);
+            $itemId = $yaoshiArr[0];
+            if (StlUtil::dictHasProperty(ctx()->store->items, $itemId) && ctx()->store->items->$itemId >= $yaoshiArr[1]) {
+                ctx()->store->removeItem($itemId, $yaoshiArr[1]);
+            } else {
+                $cost = $mo->cost_ten;
+                my_Assert(ctx()->baseInfo->cash >= $cost, ErrCode::notenough_cash_msg);
+                ctx()->baseInfo->Consume_Cash($cost);
+            }
+        }
 
-                $list = explode(',', $mo->cost);
-                my_Assert(StlUtil::dictHasProperty($user->store->items, $list[0]), ErrCode::notenough_item);
+        if ($mo->type == 1) {
+            if ($buyNum == 0) {
+                $buyNum = 1;
+                my_Assert(now() - ctx()->privateState->lastFreeGetTs_ShopBoxCommon >= $mo->freeDownTs * 24 * 60 * 60, ErrCode::user_shop_FreeNumLimit);
+                ctx()->privateState->lastFreeGetTs_ShopBoxCommon = now();
+            }
+        } else if ($mo->type == 2) {
+            if ($buyNum == 0) {
+                $buyNum = 1;
+                my_Assert(now() - ctx()->privateState->lastFreeGetTs_ShopBoxBright >= $mo->freeDownTs * 24 * 60 * 60, ErrCode::user_shop_FreeNumLimit);
+                ctx()->privateState->lastFreeGetTs_ShopBoxBright = now();
+            }
+        }
 
-                $user->store->removeItem($list[0], $list[1]);
-                $user->baseInfo->Add_Gold($mo->gold);
-                if (!StlUtil::dictHasProperty($user->privateState->junbeiShopNumRecord, $typeId)) {
-                    $user->privateState->junbeiShopNumRecord->$typeId = 0;
-                }
-                $num = $user->privateState->junbeiShopNumRecord->$typeId += 1;
+        $arr = array();
+        $arr[] = 1;
+        $arr[] = 10;
+        if (!in_array($buyNum, $arr)) {
+            $buyNum = 1;
+        }
+        TaskProc::OnOpenNumBrightBox($typeId, $buyNum);
+        TaskProc::OnOpenNumAnyBox($buyNum);
+
+        $perList = explode(';', $mo->percent);
+        $allNum = 0;
+        foreach ($perList as $key => $value) {
+            $str = explode(',', $value);
+            $allNum += $str[1];
+        }
+
+        $allNum *= 10;
+        for ($i = 0; $i < $buyNum; $i++) {
+            mt_srand((double) microtime() * 1000000);
+            $buyCount = 0;
+            if ($mo->type == 1) {
+                ctx()->privateState->buyNum_ShopBoxCommon += 1;
+                $buyCount = ctx()->privateState->buyNum_ShopBoxCommon;
+            } else {
+                ctx()->privateState->buyNum_ShopBoxBright += 1;
+                $buyCount = ctx()->privateState->buyNum_ShopBoxBright;
+            }
 
-                if (!StlUtil::dictHasProperty($user->privateState->supplyBichuDic, $typeId)) {
-                    $user->privateState->supplyBichuDic->$typeId = 0;
+            $bichu1 = explode(',', $mo->bichu1);
+            $qual = 0; //改成道具盒子了 但是这个变量不动了
+            if ($buyCount % $bichu1[0] == 0) {
+                $qual = $bichu1[1];
+            }
+            if ($mo->bichu2 != null) {
+                $bichu2 = explode(',', $mo->bichu2);
+                if ($buyCount % $bichu2[0] == 0) {
+                    $qual = $bichu2[1];
                 }
-                $user->privateState->supplyBichuDic->$typeId += 1;
+            }
 
-                my_Assert($num <= $mo->limitNum, ErrCode::user_shop_LimitNum);
-                $list = explode(';', $mo->percent);
-                $randNum = rand(0, 10000);
+            if ($qual == 0) {
                 $start = 0;
                 $end = 0;
-                $qual = null;
-                foreach ($list as $item) {
-                    $arr = explode(',', $item);
-
-                    $per = $arr[2] * 100;
-                    $end += $per;
-                    if ($randNum >= $start && $randNum < $end) {
-                        $qual = $arr[0] . ',' . $arr[1]; //品阶,稀有度
+                $randNum = mt_rand(1, $allNum);
+                foreach ($perList as $k => $val) {
+                    $str = explode(',', $val);
+                    $end += $str[1] * 10;
+                    if ($randNum > $start && $randNum <= $end) {
+                        $qual = $str[0];
                         break;
                     }
                     $start = $end;
                 }
-                //必出
-                $bichu = explode(',', $mo->bichu);
-                $qArr = explode(',', $qual);
-                if ($qArr[0] == $bichu[1] && $qArr[1] == $bichu[2]) {//得到必出,重置数量记录
-                    $user->privateState->supplyBichuDic->$typeId = 0;
-                    $qual = $bichu[1] . ',' . $bichu[2];
-                } else {
-                    if ($user->privateState->supplyBichuDic->$typeId == $bichu[0]) {
-                        $qual = $bichu[1] . ',' . $bichu[2];
-                        $user->privateState->supplyBichuDic->$typeId = 0;
-                    }
-                }
+            }
 
-                if ($qual != null) {
-                    $str = explode(',', $qual);
+            if ($qual > 0) {
+                StoreProc::AddMultiItemInStore($qual . ",1", Enum_StoreSourceType::ShopBox);
+            }
+        }
+        TaskProc::OnOpenNumBrightBox_state($typeId, $buyNum);
+    }
 
-                    $equipList = array();
-                    $dic = GameConfig::equip();
-                    foreach ($dic as $tid => $item) {
-                        if ($item->qual == $str[0] && $item->rarity == $str[1]) {
-                            $equipList[] = $item->typeId;
-                        }
-                    }
+    /**
+     * 补给箱
+     * @param type $type
+     * @param type $typeId
+     * @param type $buyNum
+     */
+    public static function BuyShop_BujiBox($type, $typeId, $buyNum) {
+        $equip = array();
 
-                    $rNum = rand(0, count($equipList) - 1);
-                    $equipId = $equipList[$rNum];
-                    StoreProc::PutEquipInStore($equipId, 1);
-                    $equip[] = $equipId;
-                }
+        $mo = GameConfig::shop_supply_getItem($typeId);
+        my_Assert($mo != null, ErrCode::err_const_no);
+
+        $list = explode(',', $mo->cost);
+        my_Assert(StlUtil::dictHasProperty(ctx()->store->items, $list[0]), ErrCode::notenough_item);
 
+        ctx()->store->removeItem($list[0], $list[1]);
+        ctx()->baseInfo->Add_Gold($mo->gold);
+        if (!StlUtil::dictHasProperty(ctx()->privateState->junbeiShopNumRecord, $typeId)) {
+            ctx()->privateState->junbeiShopNumRecord->$typeId = 0;
+        }
+        $num = ctx()->privateState->junbeiShopNumRecord->$typeId += 1;
+
+        if (!StlUtil::dictHasProperty(ctx()->privateState->supplyBichuDic, $typeId)) {
+            ctx()->privateState->supplyBichuDic->$typeId = 0;
+        }
+        ctx()->privateState->supplyBichuDic->$typeId += 1;
+
+        my_Assert($num <= $mo->limitNum, ErrCode::user_shop_LimitNum);
+        $plist = explode(';', $mo->percent);
+        $randNum = rand(0, 10000);
+        $start = 0;
+        $end = 0;
+        $qual = null;
+        foreach ($plist as $item) {
+            $arr = explode(',', $item);
+
+            $per = $arr[2] * 100;
+            $end += $per;
+            if ($randNum >= $start && $randNum < $end) {
+                $qual = $arr[0] . ',' . $arr[1]; //品阶,稀有度
                 break;
-            case EnumShopGift::Cash_Shop://商城-钻石
-                $mo = GameConfig::shop_cash_getItem($typeId);
-                my_Assert($mo != null, ErrCode::err_const_no);
+            }
+            $start = $end;
+        }
+        //必出
+        $bichu = explode(',', $mo->bichu);
+        $qArr = explode(',', $qual);
+        if ($qArr[0] == $bichu[1] && $qArr[1] == $bichu[2]) {//得到必出,重置数量记录
+            ctx()->privateState->supplyBichuDic->$typeId = 0;
+            $qual = $bichu[1] . ',' . $bichu[2];
+        } else {
+            if (ctx()->privateState->supplyBichuDic->$typeId == $bichu[0]) {
+                $qual = $bichu[1] . ',' . $bichu[2];
+                ctx()->privateState->supplyBichuDic->$typeId = 0;
+            }
+        }
 
-                $tag = false;
-                if (in_array($typeId, $user->privateState->cashShopReceived)) {
-                    $tag = true;
-                }
+        if ($qual != null) {
+            $str = explode(',', $qual);
 
-                $reward = $mo->reward;
-                if (!$tag) {
-                    $reward = $mo->reward . ';' . $mo->reward;
+            $equipList = array();
+            $dic = GameConfig::equip();
+            foreach ($dic as $tid => $item) {
+                if ($item->qual == $str[0] && $item->rarity == $str[1]) {
+                    $equipList[] = $item->typeId;
                 }
+            }
 
-                StoreProc::AddMultiItemInStore($reward);
-                $user->baseInfo->charge_amt += $mo->price;
-                $user->privateState->cashShopReceived[] = $typeId;
-                TaskProc::OnRecharge();
-                break;
-            case EnumShopGift::Gold_Shop://商城-金币--可以多次购买
-                $mo = GameConfig::shop_gold_getItem($typeId);
-                my_Assert($mo != null, ErrCode::err_const_no);
+            $rNum = rand(0, count($equipList) - 1);
+            $equipId = $equipList[$rNum];
+            StoreProc::PutEquipInStore($equipId, 1);
+            $equip[] = $equipId;
+        }
 
-                $tempNum = 0;
-                foreach ($user->privateState->goldShopReceived as $key) {
-                    if ($key == $typeId) {
-                        $tempNum += 1;
-                    }
-                }
+        return $equip;
+    }
 
-                if ($tempNum >= $mo->freeNum) {
-                    $ts = 0;
-                    switch ($typeId) {
-                        case 1:
-                            $ts = $user->privateState->goldShop_CoolDownTs_1;
-                            break;
-                        case 2:
-                            $ts = $user->privateState->goldShop_CoolDownTs_2;
-                            break;
-                        case 3:
-                            $ts = $user->privateState->goldShop_CoolDownTs_3;
-                            break;
-                    }
+    /**
+     * 钻石商城
+     * @param type $type
+     * @param type $typeId
+     * @param type $buyNum
+     */
+    public static function BuyShop_Cash($type, $typeId, $buyNum) {
+        $mo = GameConfig::shop_cash_getItem($typeId);
+        my_Assert($mo != null, ErrCode::err_const_no);
 
-                    //收费买
-                    if ($typeId == 1 && $user->privateState->goldShop_GuangGaoNum < $mo->guanggaoNum) {
-                        $user->privateState->goldShop_GuangGaoNum += 1;
-                    } else {
-                        my_Assert($user->baseInfo->cash >= $mo->price, ErrCode::notenough_cash_msg);
-                        ctx()->baseInfo->Consume_Cash($mo->price);
-                    }
+        $tag = false;
+        if (in_array($typeId, ctx()->privateState->cashShopReceived)) {
+            $tag = true;
+        }
 
-                    if ($ts == 0) {
-                        switch ($typeId) {
-                            case 1:
-                                $user->privateState->goldShop_CoolDownTs_1 = now();
-                                break;
-                            case 2:
-                                $user->privateState->goldShop_CoolDownTs_2 = now();
-                                break;
-                            case 3:
-                                $user->privateState->goldShop_CoolDownTs_3 = now();
-                                break;
-                        }
-
-                        //$user->privateState->goldShopReceived[] = $typeId;
-                    } else {
-                        my_Assert(now() - $ts >= $mo->downTs, ErrCode::user_shop_DownTsLimit);
-                        switch ($typeId) {
-                            case 1:
-                                $user->privateState->goldShop_CoolDownTs_1 = now();
-                                break;
-                            case 2:
-                                $user->privateState->goldShop_CoolDownTs_2 = now();
-                                break;
-                            case 3:
-                                $user->privateState->goldShop_CoolDownTs_3 = now();
-                                break;
-                        }
-                    }
+        $reward = $mo->reward;
+        $pList = explode(',', $reward);
+        $addYuanbao = $pList[1];
+        if (!$tag) {
+            $reward = $mo->reward . ';' . $mo->reward;
+            $addYuanbao *= 2;
+        }
 
-                    if ($typeId == 1 && $user->privateState->goldShop_GuangGaoNum == $mo->guanggaoNum) {
-                        $user->privateState->goldShop_GuangGaoNum += 1;
-                        $user->privateState->goldShop_CoolDownTs_1 = 0;
-                    }
-                }
+        StoreProc::AddMultiItemInStore($reward);
+        ctx()->baseInfo->accumulateYuanBao += $addYuanbao;        
+        ctx()->baseInfo->charge_amt += $mo->price;        
+        ctx()->privateState->cashShopReceived[] = $typeId;
+        
+        if(ctx()->privateState->firstRecharge_receiveTag == 0){
+            ctx()->privateState->firstRechargeUI_OpenTip = 1;
+        }
+        
+        if(ctx()->privateState->firstRecharge_receiveTag < 1){
+            ctx()->privateState->firstRecharge_receiveTag = 1;
+        }              
+        TaskProc::OnRecharge();
+    }
 
-                TaskProc::OnBuyGold();
-                $user->privateState->goldShopReceived[] = $typeId;
-                StoreProc::AddMultiItemInStore($mo->reward);
+    /**
+     * 金币商城
+     * @param type $type
+     * @param type $typeId
+     * @param type $buyNum
+     */
+    public static function BuyShop_Gold($type, $typeId, $buyNum) {
+        $mo = GameConfig::shop_gold_getItem($typeId);
+        my_Assert($mo != null, ErrCode::err_const_no);
+
+        $tempNum = 0;
+        foreach (ctx()->privateState->goldShopReceived as $key) {
+            if ($key == $typeId) {
+                $tempNum += 1;
+            }
+        }
 
-                break;
+        if ($tempNum >= $mo->freeNum) {
+            $ts = 0;
+            switch ($typeId) {
+                case 1:
+                    $ts = ctx()->privateState->goldShop_CoolDownTs_1;
+                    break;
+                case 2:
+                    $ts = ctx()->privateState->goldShop_CoolDownTs_2;
+                    break;
+                case 3:
+                    $ts = ctx()->privateState->goldShop_CoolDownTs_3;
+                    break;
+            }
 
-            case EnumShopGift::MonthCard_Shop:
-                $mo = GameConfig::shop_monthcard_getItem($typeId);
-                my_Assert($mo != null, ErrCode::err_const_no);
-
-                //$user->privateState->monthCardShop_Received[] = $typeId;                             
-                if ($typeId == 1) {
-                    my_Assert($user->privateState->monthCardShop_ts == 0, ErrCode::err_const_no);
-                    $user->privateState->monthCardShop_ts = now();
-                    StoreProc::AddMultiItemInStore($mo->buy_reward);
-                    EmailProc::SendMonthCardRewardMail(req()->zoneid, req()->uid, $mo->daily_reward);
-                } else {
-                    my_Assert($user->privateState->honourCardShop_ts == 0, ErrCode::err_const_no);
-                    $user->privateState->honourCardShop_ts = now();
+            //收费买
+            if ($typeId == 1 && ctx()->privateState->goldShop_GuangGaoNum < $mo->guanggaoNum) {
+                ctx()->privateState->goldShop_GuangGaoNum += 1;
+            } else {
+                my_Assert(ctx()->baseInfo->cash >= $mo->price, ErrCode::notenough_cash_msg);
+                ctx()->baseInfo->Consume_Cash($mo->price);
+            }
+
+            if ($ts == 0) {
+                switch ($typeId) {
+                    case 1:
+                        ctx()->privateState->goldShop_CoolDownTs_1 = now();
+                        break;
+                    case 2:
+                        ctx()->privateState->goldShop_CoolDownTs_2 = now();
+                        break;
+                    case 3:
+                        ctx()->privateState->goldShop_CoolDownTs_3 = now();
+                        break;
                 }
-                break;
-            default:
-                break;
+
+                //$user->privateState->goldShopReceived[] = $typeId;
+            } else {
+                my_Assert(now() - $ts >= $mo->downTs, ErrCode::user_shop_DownTsLimit);
+                switch ($typeId) {
+                    case 1:
+                        ctx()->privateState->goldShop_CoolDownTs_1 = now();
+                        break;
+                    case 2:
+                        ctx()->privateState->goldShop_CoolDownTs_2 = now();
+                        break;
+                    case 3:
+                        ctx()->privateState->goldShop_CoolDownTs_3 = now();
+                        break;
+                }
+            }
+
+            if ($typeId == 1 && ctx()->privateState->goldShop_GuangGaoNum == $mo->guanggaoNum) {
+                ctx()->privateState->goldShop_GuangGaoNum += 1;
+                ctx()->privateState->goldShop_CoolDownTs_1 = 0;
+            }
         }
 
-//        if (ctx()->baseInfo->charge_amt > 0 && ctx()->baseInfo->fRechargePriceReceived == 0) {
-//            StoreProc::AddMultiItemInStore(GameConfig::globalsettings()->FirstRechargePrice);
-//            ctx()->baseInfo->fRechargePriceReceived = 1;
-//        }
+        TaskProc::OnBuyGold();
+        ctx()->privateState->goldShopReceived[] = $typeId;
+        StoreProc::AddMultiItemInStore($mo->reward);
+    }
 
+    public static function BuyShop_MonthCard($type, $typeId, $buyNum) {
+        $mo = GameConfig::shop_monthcard_getItem($typeId);
+        my_Assert($mo != null, ErrCode::err_const_no);
 
-        ctx($user);
-        UserProc::updateUserInfo();
-        return Resp::ok(array(
-                    'gemBox' => $resultArr,
-                    'gateGift' => $gateGift,
-                    'cash' => $user->baseInfo->cash,
-                    'gold' => $user->baseInfo->gold,
-                    'privateState' => $user->privateState,
-                    'store' => $user->store,
-                    'task' => ctx()->task,
-                    'heros'=> ctx()->heros,
-                    'reward' => StoreProc::$reward,
-                    'reward_Gem' => StoreProc::$reward_Gem,
-        ));
+        //$user->privateState->monthCardShop_Received[] = $typeId;                             
+        if ($typeId == 1) {
+            my_Assert(ctx()->privateState->monthCardShop_ts == 0, ErrCode::err_const_no);
+            ctx()->privateState->monthCardShop_ts = now();
+            StoreProc::AddMultiItemInStore($mo->buy_reward);
+            EmailProc::SendMonthCardRewardMail(req()->zoneid, req()->uid, $mo->daily_reward);
+        } else {
+            my_Assert(ctx()->privateState->honourCardShop_ts == 0, ErrCode::err_const_no);
+            ctx()->privateState->honourCardShop_ts = now();
+        }
     }
 
     /**

+ 11 - 0
Gameserver/App/process/UserProc.php

@@ -363,6 +363,16 @@ class UserProc {
 
             self::OnLogin_DateDeal();
 
+            //ctx()->privateState->firstRechargeUI_OpenTip = 1;
+            if (ctx()->baseInfo->charge_amt == 0) {
+                ctx()->privateState->firstRechargeUI_OpenTip = 1;
+            } else {
+                $num = ctx()->privateState->firstRecharge_receiveTag;
+                if (!in_array($num, ctx()->privateState->firstRechargeRewardRecord)) {
+                    ctx()->privateState->firstRechargeUI_OpenTip = 1;
+                }
+            }
+
             $resp = Resp::ok($game);                                            # 设置返回值
             self::updtateUserZoneInfo();                                        # 1. 更新玩家分区记录
         }
@@ -455,6 +465,7 @@ class UserProc {
         FightProc::FightDailyClear();
         //TaskProc::initAchieveData();
         TaskProc::ResetTask();
+        PayProc::setFirstRechargeLoginTag();
     }
 
     static function OnLogin_DateDeal() {