<?php

namespace loyalsoft;

/**
 * 操作码常量定义:
 * @version 2023.8.31 修改约定: cmdcode前两位为opecode. 参数传递过程中不单独传输opecode了.
 * @author jgao,gwang,cyzhao
 */
class CmdCode {
//
// <editor-fold defaultstate="collapsed" desc="支付操作码 - 88xx">

    /**
     * 领取首付礼包
     */
    const cmd_pay_getfirstpaygift = 8802;
    const cmd_pay_resetFirstRechargeUI_OpenTip = 8803;
    const cmd_pay_accumulateRechargeRewardReceived = 8804;

// <editor-fold defaultstate="collapsed" desc="移动支付">
//---------- 移动端 支付API 操作码 ----

    /**
     * 【移动端】购买物品
     */
    const cmd_mpay_pay = 8807;

    /**
     * 【移动端】查询游戏币余额
     */
    const cmd_mpay_get_balance = 8808;

    /**
     * 【移动端】购买神秘商城物品
     */
    const cmd_mpay_buyDynamic = 8809;

    /**
     * 【移动端】刷新神秘商城物品
     */
    const cmd_mpay_getDynamic = 8810;

    /**
     *  【移动端】自助检查异常订单
     */
    const cmd_mpay_selfCheckOrders = 8811;

    /**
     *  【移动端】查询付费记录
     */
    const cmd_mpay_getPayRecords = 8812;

    /**
     * 临时--正式的要根据具体功能实现
     */
    const cmd_mpay_PayDeliverGoods = 8813;

    /**
     * 充值领取奖励
     */
    const cmd_mpay_UserRechargeDrawPrize = 8814;

    /**
     * 新的首冲功能
     */
    const cmd_mpay_NewFirstRecharge = 8815;

//
//
// </editor-fold>
//
// </editor-fold>
//
// <editor-fold defaultstate="collapsed" desc="用户操作码 - 60xx">

    /**
     * 获取分区列表
     */
    const cmd_user_getzonelist = 6000;

    /**
     * 玩家登录指令/新玩家直接注册并登录
     */
    const cmd_user_loginuserinfo = 6001;

    /**
     * 常量信息指令
     */
    const cmd_user_gameconstinfo = 6002;

    /**
     *  走完片头后给值 1
     */
    const cmd_user_setAnimation = 6004;

    /**
     * 替换头像
     */
    const cmd_user_replaceHeadImg = 6005;

    /**
     * 删除账号
     */
    const cmd_user_delUserUid = 6006;

    /**
     * 移除新头像标志
     */
    const cmd_user_removeNewHeadImgTip = 6007;

    /**
     * 读公告
     */
    const cmd_user_readAnnouncement = 6008;

    /**
     * 重置功能解锁记录信息
     */
    const cmd_user_clearFunUnlockInfo = 6009;

    /**
     * 改名
     */
    const user_rename = 6010;
    
    /**
     * 提交新手引导步骤
     */
    const cmd_user_completeNewbieGuide = 6011;
    
    /**
     * 重置启灵 坊市的引导记录
     */
    //const cmd_user_clearGuideInfo = 6012;

// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="活动操作码 - 61xx">

    /**
     * 7日奖励领取
     */
    const cmd_active_day7_drawreward = 6101;

    /**
     *
     */
    const cmd_active_drawPackageByCode = 6102;

    /**
     * 转盘抽奖
     */
    const cmd_active_lottery_Tree = 6103;

    /**
     * 元宝兑换抽奖券
     */
    const cmd_active_lottery_Tree_cashExchange = 6104;

    /**
     * 抽奖宝箱奖励领取
     */
    const cmd_active_lotteryNumBox_RewardReceived = 6105;

    /**
     * 兑换
     */
    const cmd_active_LotteryExchangeItem = 6106;

    /**
     * 7日签到 累计天数宝箱奖励领取
     */
    const cmd_active_day7_accumulateDrawreward = 6107;

    /**
     * 限时贩售
     */
    const cmd_active_limitTsBuy = 6108;

    /**
     * 6109 战令奖励领取
     */
    const cmd_active_battlePassDrawReward = 6109;
    
    /**
     * 6110 新手7日签到
     */
    const cmd_active_day7_drawreward_newPlayer = 6110;
    
    /**
     * 
     */
    const cmd_active_getTodayOnlineInfos = 6111;


    /**
     * 6111 领取在线(时长)礼包
     */
    const cmd_active_draw_onlinegift = 6112;
    
    /**
     * 元宝商城购买
     */
    const cmd_active_YanBaoBuyItemActive_drawReward = 6113;
    
    /**
     * 领取卡牌奖励
     */
    const active_FlipCardLottery_DrawCardReward = 6114;

    /**
     * 金蛇献瑞购买抽奖券
     */
    const active_FlipCardLottery_BuyTickets = 6115;
    
    /**
     *  领取大奖信息
     */
    const active_FlipCardLottery_DrawGrandReward = 6116;

    /**
     * 领取卡牌累计次数奖励
     */
    const active_FlipCardLottery_DrawAccumulateReward = 6117;

    /**
     * 金蛇兌換
     */
    const active_FlipCardLottery_Exchange = 6118;
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="任务操作码 - 62xx">

    /**
     * [6201] 任务 - 拉取最新任务信息
     */
    const cmd_task_getInfo = 6201;

    /**
     * [6202] 任务 - 领取任务奖励
     */
    const cmd_task_getReward = 6202;

    /**
     * 领取成就奖励
     */
    const cmd_task_getAchieveReward = 6203;

    /**
     * 领取活动任务奖励
     */
    const cmd_task_receiveActiveTaskReward = 6204;

    /**
     * 领取活跃点宝箱奖励
     */
    const cmd_task_receiveActivePointBoxReward = 6205;

    /**
     * 一键领取
     */
    const cmd_task_prizesAllreceived = 6206;
    
    /**
     * 观看广告 通知后端
     */
    const cmd_task_lookGuangGao = 6207;
// </editor-fold>
//
// <editor-fold defaultstate="collapsed" desc="背包操作码 - 64xx">

    const cmd_store_put = 6401;

    /**
     * 装备
     */
    const cmd_store_gemSet = 6402;
//const cmd_store_equip = 6402;

    /**
     * 卸下装备
     */
    const cmd_store_gemRemove = 6403;
//const cmd_store_RemoveEquip = 6403;

    /**
     * 装备升级
     */
    const cmd_store_equipUpgrade = 6404;

    /**
     * 一键升级
     */
    const cmd_store_equipUpgrade_MaxLv = 6405;

    /**
     * 合成
     */
    const store_gemCompose = 6406;

    /**
     * 消耗体力
     */
    const store_comsumeTili = 6407;

    /**
     * 切换装备分页
     */
    const store_switchEquipPag = 6408;

    /**
     * 宝石开锁解锁
     */
    const store_gemLockState = 6409;

    /**
     * 移除装备可以升级的提示 -------废弃
     */
    const store_equip_removeEquipUpgradeTip = 6410;

    /**
     * 移除新宝石提示 -------废弃
     */
    const store_equip_removeNewGemTip = 6411;

    /**
     * 所有装备的一键升级 -------废弃
     */
    const store_allEquipUpgrade = 6412;

    /**
     * 洗练
     */
    const store_gemXiLian = 6413;

    /**
     * 安装装备
     */
    const store_equiped = 6414;

    /**
     * 卸下装备
     */
    const store_remove_equip = 6415;

    /**
     * 购买装备的宝石槽
     */
    const store_equip_gemSlotBuy = 6416;
    
    /**
     * 装备合成
     */
    const store_equip_compose = 6417;

    /**
     * 装备一键合成
     */
    const store_equip_OnekeyCompose = 6418;
    
    /**
     * 降级
     */
    const store_equip_downGradingLevel = 6419;

    /**
     * 降品
     */
    const store_equip_downGradingQual = 6420;
    
    /**
     * 移除宠物上的新的标志
     */
    const store_pet_removeNewTip = 6421;

    /**
     * 出战/替换/上阵  6422 
     */
    const store_pet_changeFightPosition = 6422;
    
    /**
     * 展示空闲灵宠  6423
     */
    const store_pet_selectShowPet = 6423;

    /**
     * 灵宠等级提升  6424
     */
    const store_pet_levelUpgrade = 6424;
    
    /**
     * 宠物合成
     */
    const store_pet_compose = 6425;

    /**
     * 宠物一键合成
     */
    const store_pet_onekeyCompose = 6426;
    
    /**
     * 宠物降级
     */
    const store_pet_downGradingLevel = 6427;

    /**
     *  宠物降品
     */
    const store_pet_downGradingQual = 6428;
    
    /**
     * 孵化宠物
     */
    const store_pet_breedEgg = 6429; 
    
    /**
     * 加速孵化宠物
     */
    const store_pet_fastBreedEgg = 6430;
    
    /**
     * 正常孵化完成点击领取
     */
    const store_pet_receiveBreedPet = 6431;
    
    /**
     * 解锁孵化位置
     */
    const store_pet_unlockBreedLocation = 6432;
    
    /**
     * 6433 区域等级升级
     */
    const store_pet_areaLevelUpgrade = 6433;   
    
    /**
     * 6434 更换派遣宠物
     */
    const store_pet_replaceDispatchPet = 6434;
    
    /**
     * 6435 删除全部派遣宠物
     */
    const store_pet_removeDispatchPet = 6435;
    
    /**
     * 6436 领取探索奖励
     */
    const store_pet_receiveReward = 6436;
    
    /**
     * 6437 点击派遣按钮
     */
    const store_pet_dispatchPet = 6437;
    
    /**
     * 6438 某区域的派遣宠物信息
     */
    const store_pet_resetDispatchPet = 6438;
    
    /**
     * 6439 宠物休息
     */
    const store_pet_removeFightPosition = 6439;
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="商城操作码 - 65xx">

    /**
     * 商城购买东西
     */
    const cmd_shop_BuyGift = 6501;

    /**
     * 购买体力
     */
    const cmd_shop_BuyTili = 6502;

    /**
     * 章节礼包 选中记录
     */
    const cmd_shop_GateGift_ShowGateId = 6503;
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="英雄模块操作码 - 66xx">
//

    /**
     * 切换英雄
     */
    const hero_swith = 6601;

    /**
     * 解锁英雄
     */
    const hero_unlock = 6602;

    /**
     * 角色升星
     */
    const hero_strengthenStar = 6603;

    /**
     * 解锁英雄记录重置
     */
    const hero_resetUnlockHero = 6604;
//
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="邮件操作码 - 67xx">

    const cmd_email_questEmailList = 6701;

    /**
     * [6702]读取/打开一封邮件
     */
    const cmd_email_readAEmail = 6702;

    /**
     * [6703] 邮件 - 领取附件
     */
    const cmd_email_DrawReward = 6703;

    /**
     * [6704] 邮件 - 领取全部附件奖励
     */
    const cmd_email_DrawAllRewards = 6704;

    /**
     * [6705] 删除邮件——所有已读(不包含已读未领取状态的邮件)
     */
    const cmd_mail_delMailReaded = 6705;

    /**
     * [6706] 请求邮件未处理的数量(未打开邮件时检查邮件图标应该提示啥)
     */
    const cmd_mail_notReadMailNum = 6706;

    /**
     * [6707] 发送测试用道具
     */
    const cmd_mail_sendTestItems = 6707;
// </editor-fold>
//
// <editor-fold defaultstate="collapsed" desc="战斗操作码 - 68xx">

    /**
     * 主线剧情关卡: 奖励结算
     */
    const fight_settle = 6801;

    /**
     * 章节宝箱的领取
     */
    const fight_passGateTsPrizeReceive = 6802;

    /**
     * 主线关卡: 选择
     */
    const fight_selectGate = 6803;

    /**
     * 挑战关卡: 领取奖励
     */
    const fight_gateChallengeRewards = 6804;

    /**
     * 挑战关卡: 复活花费
     */
    const fihgt_reliveCost = 6805;

    /**
     * 主线剧情关卡: 回存(剧情已播放)记录
     */
    const fight_plotSav = 6806;

    /**
     * 扫荡
     */
    const fight_sweep = 6807;

    /**
     * 主线关卡: 开始挑战
     */
    const fight_startFight = 6808;

    /**
     * 挑战关卡: 刷新初始技能
     */
    const fight_tower_RefreshSkills = 6809;

    /**
     * 挑战关卡: 更新锁定技能列表
     */
    const fight_tower_updatelocklist = 6810;

    /*
     * 获取主线关卡排行榜
     */
    const fight_rankInfo = 6811;

    /**
     * 获取玩家的装备信息
     */
    const fight_rank_uidEquipInfo = 6812;

    /**
     * 荣誉榜信息
     */
    const fight_rank_GetMainGateRankRewardInfo = 6813;

    /*
     * 战力榜荣誉信息
     */
    const fight_rank_GetFightPowerRankRewardInfo = 6814;

    /**
     * 领取通关荣誉榜奖励
     */
    const fight_rank_ReceiveRankReward_MainGate = 6815;

    /*
     *
     */
    const fight_rank_ReceiveRankReward_FightPower = 6816;

    /**
     * 是否存在未领取的荣誉榜奖励
     */
    const fight_rank_IsExistRankReward = 6817;

    /**
     * 启灵进化解锁新的能力点
     */
    const fight_evolveUnlock = 6818;

    /**
     * 主线挑战--通关
     */
    const fight_MainTZPass = 6819;

    /**
     * 主线挑战--领取奖励
     */
    const fight_MainTZGetReward = 6820;

    /**
     * 每天重置挑战红点
     */
    const fight_ResetChallange_RedMask = 6821;

    /**
     * 封印/解锁技能
     */
    const fight_lockSkill = 6822;

    /**
     * 解锁更多技能封印数量
     */
    const fight_buyLockSkillCount = 6823;

    /**
     * 排行榜一键升级
     */
    const fight_rank_ReceiveRankReward = 6824;

    /**
     * pvp-匹配一个对手数据
     */
    const fight_PVP_match = 6825;
    
    
    /**
     * 6826 世界boss的排名信息
     */
    const fight_WorldBoss_rankInfo = 6826;


    /**
     * 6827 当前轮次下 自己的最高伤害值
     */
    const fight_WorldBoss_getRankDamageVal = 6827;

    /**
     * 6828 获取自己的排名
     */
    const fight_WorldBoss_getSelfRank = 6828;
    
    /**
     * 6829 领取奖励
     */
    const fight_WorldBoss_claimRewards = 6829;
    
    /*
     * 世界boss 结算
     */
    const fight_WorldBoss_settle = 6830;
    
    /**
     * 章节宝箱的领取
     */
    const fight_allGateBoxReceive = 6831;
    
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="系统操作码 - 69xx">

    /**
     * 6901 心跳
     */
    const cmd_system_clienttick = 6901;

    /**
     * 拉取系统广播消息
     */
    const cmd_system_getsysmessage = 6902;

// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="    反射方法    ">

    /**
     * 辅助方法, 将所有错误码信息转换到CSV文本中.
     * 用法: 先在本文件中用ctrl + H 全部替换掉 'c onst ' -> 's tatic $'
     *       然后再调用本方法,即可在同目录下生成ErrCode.txt, 里面包含了所需信息.
     * @throws \Exception
     * @author gwang
     */
    static function L() {
        $class = new \ReflectionClass(__CLASS__);                               # 建立这个类的反射对象
        $properties = $class->getProperties(\ReflectionProperty::IS_STATIC);    # 拉取所有静态属性
        $fileName = __DIR__ . "/" . str_replace('\\', '.', __CLASS__) . ".txt"; # 输出文件名
        $fd = fopen($fileName, "w");
        if (false === $fd) {                                                    # 打开文件失败
            throw new \Exception("打开$fileName 失败");
        }
        foreach ($properties as &$p) {
            $d = preg_replace('/[\*|\/|\s+]/', '', $p->getDocComment());        # 处理下注释
            $type = (strpos($p->getName(), 'err') === false ? 0 : 1);           # errorType: 0 继续, 1 重启
            $n = fputs($fd, $p->getName() . ";" . $p->getValue() . ";$type;$d" . PHP_EOL);  # 写入文件
            if (false === $n) {                                                 # 写入时失败
                throw new Exception("写入$fileName 时失败");
            }
        }
        fclose($fd);
    }

// </editor-fold>
}
