Ver código fonte

任务卡相关代码提交

gwang 4 anos atrás
pai
commit
c8b65443a6

+ 5 - 0
Gameserver/Amfphp/base/CmdCode.php

@@ -269,6 +269,11 @@ class CmdCode {
      * [6204]日常任务 - 领取活跃度奖励
      */
     const cmd_Task_getActiveReward = 8204;
+
+    // <editor-fold defaultstate="collapsed" desc="任务卡相关通讯">
+    // 
+    // 
+// </editor-fold>
     // </editor-fold>
     //
     // <editor-fold defaultstate="collapsed" desc="英雄操作码 - 63xx">

+ 7 - 274
Gameserver/Amfphp/base/ErrCode.php

@@ -518,6 +518,11 @@ class ErrCode {
      * 言灵已经进阶至最高
      */
     const store_yanlingGrade_max = 3414;
+
+    /**
+     * 言灵包裹已满
+     */
+    const store_yanling_bagfull = 3415;
 // </editor-fold>
     //  
     // <editor-fold defaultstate="collapsed" desc="   任务错误码 35xx系列   ">
@@ -986,7 +991,7 @@ class ErrCode {
     /**
      * 剧情关卡 - 星数奖励领取条件不够
      */
-    const err_arenas_starrwd_star = 4026;
+    const err_arenas_starrwd_star = 4031;
 // </editor-fold>
     // 
     // <editor-fold defaultstate="collapsed" desc="    排行榜错误码  41xx    ">
@@ -1077,295 +1082,23 @@ class ErrCode {
     //
     // <editor-fold defaultstate="collapsed" desc="    公会错误码 - 48xx开始">
 
-    /**
-     * 玩家等级不足
-     */
-    const err_guild_userlevel = 4800;
-
-    /**
-     * 您已经属于一个公会成员了.
-     */
-    const err_guild_userhasbeenaguildmember = 4801;
-
-    /**
-     * 解散公会后的24小时冷却时间尚未过去.
-     */
-    const err_guild_dissmisscodingtime = 4802;
-
-    /**
-     * 同名公会已存在
-     */
-    const err_guild_nameexists = 4803;
-
-    /**
-     *  创建公会时所传公会名称参数为空.
-     */
-    const err_guild_nameEmputy = 4804;
-
     /**
      * 金币不足
      */
     const err_msg_goldnotenough = 4805;
 
-    /**
-     * 找不到公会数据
-     */
-    const err_guild_guildinfono = 4806;
-
-    /**
-     * 成员已满
-     */
-    const err_guild_memberfull = 4807;
-
-    /**
-     *  申请队列已满
-     */
-    const err_guild_applyListFull = 4808;
-
-    /**
-     * 公会未开启一键加入功能
-     */
-    const err_guild_quickinclosed = 4809;
-
-    /**
-     * 玩家不属于此公会
-     */
-    const err_guild_usernotguildmember = 4810;
-
-    /**
-     * 找不到玩家的公会信息
-     */
-    const err_guild_userguildinfono = 4811;
-
-    /**
-     * 玩家不是该公会的会长或是干部
-     */
-    const err_guild_usernotchairman = 4812;
-
-    /**
-     * 解散工会的时候, 公会不为空
-     */
-    const err_guild_notEmputy = 4813;
-
-    /**
-     * 会长不能开除自己.
-     */
-    const err_guild_cannotfireyourself = 4814;
-
-    /**
-     * 申请信息未找到
-     */
-    const err_guild_appmsgnotfount = 4815;
-
-    /**
-     * 申请信息已经处理过了
-     */
-    const err_guild_applymsgdealed = 4816;
-
     /**
      * 玩家不存在
      */
     const err_user_no = 4817;
 
-    /**
-     * 无权限
-     */
-    const err_guild_nopermission = 4818;
-
-    /**
-     * 副会长名额已满
-     */
-    const err_guild_viceChairmanFull = 4819;
-
     /**
      * 操作码非法
      */
     const err_msg_cmd = 4820;
 
-    /**
-     * 徽章不能为null
-     */
-    const err_guild_imgEmputy = 4821;
-
-    /**
-     * 不能删除会长
-     */
-    const err_guild_cannotfireychairman = 4822;
-
-    /**
-     * 下一任会长必须是本公会的会员
-     */
-    // const err_guild_lastchairmanidnoexist = 4823;
-
-    /**
-     * 玩家已经是该职位
-     */
-    const err_guild_positionconflict = 4824;
-
-    /**
-     * 干部名额已满
-     */
-    const err_guild_OfficermanFull = 4825;
-
-    /**
-     * 没有限权设置此职位
-     */
-    const err_guild_cannotsetpositioncon = 4826;
-
-    /**
-     * 申请信息已经存在请稍候在申请
-     */
-    const err_guild_applymsgalwaysexist = 4827;
-
-    /**
-     * 申请信息被拒接
-     */
-    const err_guild_applymsgrejected = 4828;
-
-    /**
-     * 会长登陆时间信息发生改变无法弹劾,请刷新数据
-     */
-    const err_guild_notsatisfiedaccusecondition = 4829;
-
-    /**
-     * 不在弹劾有效时间内
-     */
-    const err_guild_noaccusevalidtimeperiod = 4830;
-
-    /**
-     * 弹劾 冷却中请稍候在弹劾
-     */
-    const err_guild_accusecooling = 4831;
-
-    /**
-     * 不允许申请加入该公会
-     */
-    const err_guild_noallowaddguild = 4832;
-
-    /**
-     * 会长没有被弹劾
-     */
-    const err_guild_chairmannoaccused = 4833;
-
-    /**
-     * 不允许反复弹劾
-     */
-    const err_guild_noallowagainaccuse = 4834;
-
-    /**
-     * 请求捐献数据不能为null
-     */
-    const err_guild_requestdonatecannotnull = 4835;
-
-    /**
-     * 请求捐献 时间不到
-     */
-    const err_guild_lessthannextrequestdonate = 4836;
-
-    /**
-     * 没有卡牌常量数据
-     */
-    const err_guild_nosegmentconst = 4837; //这个暂时用着,卡牌那应该有这个错误码
 
-    /**
-     * 不能请求该类型的卡牌
-     */
-    const err_guild_thiscardcannotrequestordonate = 4838; //这个暂时用着,卡牌那应该有这个错误码
-
-    /**
-     * 请求卡牌数量过多
-     */
-    const err_guild_requestcardnumtomuch = 4839; //这个暂时用着,卡牌那应该有这个错误码
-
-    /**
-     * 玩家没有足够的卡牌可以捐献
-     */
-    const err_guild_noenoughcardinfo = 4840; //这个暂时用着,卡牌那应该有这个错误码
-
-    /**
-     * 卡牌类型不一致
-     */
-    const err_guild_cardtypeinconformity = 4841;
-
-    /**
-     * 今天捐献卡牌数量已经达到最大值
-     */
-    const err_guild_donatecardnumreachlimit = 4842;
-
-    /**
-     * 已经超过捐献时间无法捐献
-     */
-    const err_guild_overdonatetime = 4843;
 
-    /**
-     * 玩家背包中没有该类型的碎片
-     */
-    const err_guild_usersegementnothechip = 4844;
-
-    /**
-     * 英雄合成碎片与参数id不一致
-     */
-    const err_guild_herochiptypeinconformity = 4846;
-
-    /**
-     * 不存在该英雄
-     */
-    const err_guild_nohero = 4847;
-
-    /**
-     * 该贡献度礼包没有开放
-     */
-    const err_guild_contributionGiftnoopen = 4848;
-
-    /**
-     * 该公会钻石礼包没有开放
-     */
-    const err_guild_cashGiftnoopen = 4849;
-
-    /**
-     * 贡献度不够
-     */
-    const err_guild_contributionnosatisfy = 4850;
-
-    /**
-     * 缺少礼包常量数据
-     */
-    const err_guild_noguildgiftconst = 4851;
-
-    /**
-     * 公会消息没有该卡牌的信息
-     */
-    const err_guild_guildjournalnothechipinfo = 4852;
-
-    /**
-     * 公会邮件内容不能为null
-     */
-    const err_guild_mailcontentcannotbenull = 4853;
-
-    /**
-     * 公会公告编辑冷却时间中
-     */
-    const err_guild_AnnouncementEditCooling = 4854;
-
-    /**
-     * 公会战 已经存在邀请数据,不能再次邀请
-     */
-    const err_guild_fightInvitealreadyexisted = 4855;
-
-    /**
-     * 公会战 邀请信息不存在
-     */
-    const err_guild_fightInvitenoexisted = 4856;
-
-    /**
-     * 公会战 在战斗中
-     */
-    const err_guild_fighting = 4857;
-
-    /**
-     * 公会战 在战斗中
-     */
-    const err_guild_applyconditionnoenough = 4858;
 // </editor-fold>
     // 
     // <editor-fold defaultstate="collapsed" desc="   商城错误码 49xx">
@@ -1393,7 +1126,7 @@ class ErrCode {
      */
     static function L() {
         $class = new \ReflectionClass(__CLASS__);                               # 建立这个类的反射对象
-        $properties = $class->getProperties(ReflectionProperty::IS_STATIC);     # 拉取所有静态属性
+        $properties = $class->getProperties(\ReflectionProperty::IS_STATIC);     # 拉取所有静态属性
         $fileName = __DIR__ . "/ErrCode.txt";                                   # 输出文件名
         $fd = fopen($fileName, "w");
         if (false === $fd) {                                                    # 打开文件失败

+ 209 - 0
Gameserver/Amfphp/base/ErrCode.txt

@@ -0,0 +1,209 @@
+ok;0;0;交互成功
+err_unknownn;1001;1;未知原因错误
+err_innerfault;1002;1;内部错误
+err_db;1003;1;数据库操作失败
+err_mem;1004;1;内存操作失败
+err_assert;1005;1;断言失败
+err_illegal;1011;1;消息内容非法(不满足tk校验的条件)
+err_signo;1012;1;消息内容缺少校验值
+err_outtime;1021;1;消息超时
+clientversionlow_err;1031;1;客户端版本过低-整包更
+clientnewversion_msg;1032;0;客户端版本过低-增量更
+clientPrintMsg_Halt;1033;0;客户端打印信息并且退出
+ope_err;1210;1;功能码非法
+cmd_err;1211;1;操作码非法
+paras_err;1212;1;参数非法
+parasnotenough_msg;1213;0;参数不足
+sensword_msg;1234;0;内容包含敏感词
+err_server_maintaining;1301;1;服务器正在维护中
+err_server_updating;1302;1;服务器正在升级,请过会儿再来。
+err_anotherlogin;1303;1;已经在其他地方登录
+function_notopen_msg;1801;0;功能暂未开放
+err_method_notimplement;1802;1;方法尚未实现
+err_method_obsoleted;1803;1;方法已过时,废弃的.
+err_const_no;1825;1;游戏常量数据错误
+pay_firstpayno_err;8801;1;尚未首付
+pay_firstpaygetted;8802;0;已经领取首付
+pay_systembusy_err;8803;1;系统繁忙
+pay_vipnewerno;8804;0;不是黄钻或已经领取黄钻礼包
+pay_m_amtzero_err;8805;1;amt数值小于等于0
+pay_price_err;8806;1;价格异常
+pay_m_type_err;8807;1;支付类型异常
+pay_shopItem_cosnt_goods_err;8808;1;商品常量数据错误-货物内容
+pay_refresh_times;8809;0;商城已达刷新次数上限
+pay_secretshop_buytimes;8810;0;神秘商城-购买次数已达上限
+pay_secretshop_noitem_err;8811;1;神秘商城-物品数据错误
+pay_order_no;8812;0;充值-订单不存在
+pay_order_paystatus;8813;0;充值-付款状态不正确正在重新查询...
+pay_order_drawed;8814;0;充值-此订单已经发货,无需重复请求
+pay_order_uid;8815;0;充值-订单uid不符
+pay_secretshopt_freeRefresh_Time;8816;0;神秘商城-免费刷新时间未到
+notenough_gold_msg;3014;0;金币不足
+notenough_cash_msg;3015;0;宝石不足
+notenough_friendshippoint;3016;0;友情点不足
+notenough_honour;3032;0;玩家荣誉值不足[荣誉值兑换]
+notenought_yuanbao;3040;0;元宝不足
+notenough_tili;3046;0;玩家体力值不足
+notenough_spar;3100;0;晶石不足
+user_login_err;3101;1;玩家未登录
+user_no_err;3102;1;玩家不存在
+user_data_broken_err;3103;1;玩家数据损坏
+user_contigiftno_msg;3104;0;连续登录天数不够
+user_contigiftfalse_msg;3105;0;已经领取连续登录礼包
+user_settutorialscompletedfail_err;3106;1;设置新手引导进度失败
+user_levelnotenough_msg;3107;0;玩家等级不足
+user_interact_no_err;3108;1;找不到玩家的交互体数据
+user_zoneinfo_no_err;3109;1;找不到玩家的分区记录
+user_nicknameexist;3110;0;玩家昵称已经存在,请换一个再试
+user_reward_typeno;3031;0;没有这种奖励类型
+hero_no;3301;0;玩家没有这个英雄
+hero_level_const_no_err;3302;1;找不到英雄升级消耗数据
+hero_segment_not_enough;3303;0;英雄碎片不足
+hero_const_no_err;3304;1;缺少英雄的常量数据
+hero_strength_maxstrengthlevel;3305;0;英雄强化--已经达到最大等阶
+hero_upgrade_maxupgradelevel;3306;0;英雄升级--已经达到当前最大等级
+hero_upgrade_cost;3307;0;英雄升级--消耗的数据错误(道具或者卡牌不存在)
+hero_star_maxstarlevel;3308;0;英雄升星--已经达到最大星级
+hero_star_costhero;3309;0;英雄升星--消耗英雄参数错误
+hero_star_notengoughitem;3310;0;英雄升星--消耗道具数量不充足
+hero_star_level_const_no_err;3311;1;英雄升星--升星消耗的常量数据不存在
+hero_star_noglobal_costitem;3312;0;英雄升星--全局变量缺失该英雄属性对应的升星消耗道具信息
+hero_star_conststr_itemnotmathnum;3313;0;英雄升星--消耗道具与消耗道具数量的常量配置不匹配
+hero_favor_cost_const_no;3314;0;英雄好感度---缺少对应好感度的消耗设置的常量数据
+hero_favor_targetfavor_para;3315;0;英雄好感度---解锁目标好感度参数错误
+hero_separate_cost_hero;3316;0;英雄分解---传递消耗英雄参数错误
+hero_strength_cost_const_no;3317;0;英雄升阶---缺少对应等阶的消耗设置的常量数据
+hero_upgradeSkill_maxLevel;3318;0;英雄技能__当前技能等级已经达到上限
+hero_upgradeSkill_cost_const_no;3319;0;英雄技能__该技能升级的消耗常量配置不存在
+hero_scoreit_hasscored;3320;0;英雄打分--已经给次英雄打过分了
+hero_upgrade_cost_const_no;3321;0;英雄升级——消耗的常量配置不存在
+hero_existSameHero_err;3322;1;玩家已经存在一个此类的英雄
+hero_godblood_level_const_no;3323;0;玩家神血的消耗常量数据不存在
+hero_godblood_maxlevel;3324;0;玩家神血的血脉达到定级
+hero_godblood_notengoughitem;3325;0;玩家神血强化,消耗道具不足
+hero_lockState;3326;0;玩家已经解锁
+hero_yanling_full;3327;0;言灵已达到可装备的最大数量
+hero_yanling_notfound;3328;0;英雄身上找不到这个言灵
+store_putinto;3401;0;该目标不能放入仓库
+store_itemno_err;3402;1;仓库没有这个道具
+store_itemcantuse;3404;0;道具不可使用
+store_itemnotenough;3405;0;道具数量不足
+store_removefail;3407;0;移除道具失败!
+store_itemcantdecompose;3408;0;道具不能分解
+store_equipWeared_err;3409;1;装备已经在别的英雄身上装备
+store_noequip_err;3410;1;装备没有在此英雄身上装备
+store_equip_type;3411;0;未知装备类型
+store_book_info;3412;0;言灵召唤书常量数据有误
+store_yanlingGrade_cfg;3413;0;言灵进阶数据有问题
+store_yanlingGrade_max;3414;0;言灵已经进阶至最高
+store_yanling_bagfull;3415;0;言灵包裹已满
+task_no;3501;0;找不到任务数据
+task_progress_not_complete;3502;0;任务进度尚未完成
+task_reward_geted;3503;0;任务奖励已经领取
+task_activePoint_notenough;3504;0;日常任务活跃点数不足
+friend_no_err;3701;1;不存在该好友
+friend_noplat_err;3702;1;不存在好友的平台信息
+friend_gift;3703;0;已经领取该好友礼物
+friend_maxgift;3704;0;已到达当天领取好友礼物上限
+friend_giftrent_const_no_err;3705;1;获取不到好友礼物几率常量数据
+goal_const_no_err;3801;1;不存在该任务
+goal_nogoaldata_err;3802;1;未找到该任务信息
+goal_notcomplete;3803;0;任务尚未完成
+goal_rewarded;3804;0;任务奖励已领取
+active_const_no_err;3901;1;不存在该活动礼包
+active_illegal;3902;0;活动领取非法
+active_hasgetted;3903;0;礼包已领取
+onlinegift_constno_err;3904;1;在线礼包常量数据不存在
+onlinegift_timenotenough;3905;0;在线礼包时间未到
+onlinegift_wrongid;3906;0;在线礼包id错误
+lottery_typenotexist;3907;0;免费抽奖类型不存在
+lottery_freenotenough;3908;0;剩余免费抽奖次数不够了
+checkin_const_no;3909;0;连续签到常量数据不存在
+checkin_outofday;3910;0;连续签到活动已过期
+checkin_giftgetted;3911;0;连续签到奖励已领取
+checkin_giftidno;3912;0;连续签到奖励礼包id不存在
+chekin_daysnotenough;3913;0;连续签到天数不够.
+Guide_completeGiftNo;3914;0;完成新手引导的大礼包找不到常量数据。
+lottery_notexistLotterCount;3915;0;不存在的抽奖次数
+lottery_notexistLotterCostType;3916;0;不存在的抽奖消耗财富类型
+lottery_noselecteditem;3917;0;未能生成中奖物品
+active_returncode_leaved;3921;0;已经留下回归密码了
+active_returncode_illegal;3922;0;密码格式不合法
+active_new7_wrongindex;3923;0;新手七天礼包,想要领取的礼包索引有误
+active_activecode_plat;3924;0;活动-激活码渠道错误.
+active_activecode_format;3925;0;活动-激活码无效
+active_rechargereward_const_no;3926;0;没有充值返利常量数据
+active_rechargereward_notopen;3927;0;充值返利活动未开启
+active_rechargereward_notenough;3928;0;充值返利,领取奖励,充值金额不足
+active_rechargereward_keynotsuit;3929;0;充值返利,领取奖励,当前开启的活动key与mem中存储的key不一致
+active_rechargereward_hasgetted;3930;0;充值返利,您已经领取过此奖励
+active_rechargereward_userinfoerr;3931;1;玩家充值返利数据错误
+active_returnreward_drawed;3932;0;回归奖励已经领取
+active_returnreward_VerifyFailed;3933;0;回归奖励验证失败
+active_returnreward_VerifyConnectionFailed;3934;0;回归奖励验证的时候通讯失败,请稍后再试
+active_returnreward_codeused;3935;0;回归奖励,这组回归密码已经被使用过啦.
+active_reserve_reward_outtime;3936;0;预约礼包活动已经结束
+active_activecode_outtime;3937;0;激活码礼包已经过期
+active_day7_taskstate_err;3938;1;开服七日活动-任务状态异常
+active_day7_const_no_err;3939;1;开服七日活动-找不到常量数据
+active_day7_totaldays;3940;0;开服七日活动-总天数不足
+active_day7_taskno_err;3941;1;开服七日活动-找不到任务
+lottery_baodi_times_lt;3942;0;抽奖-保底奖励,次数不满足
+err_lottery_slot_locked;3943;1;抽奖-卡槽尚未解锁
+err_lottery_slot_not_emputy;3944;1;抽奖-卡槽使用中
+err_lottery_slot_time;3945;1;抽奖-搜索尚未结束
+err_lottery_slot_emputy;3946;1;抽奖-卡槽数据异常
+err_lottery_slot_unlocked;3947;1;抽奖-卡槽已经解锁
+err_lottery_daily_limit;3948;1;抽奖-达到每次次数限制
+box_not_enough;3950;0;宝箱-数量不足
+active_time;3951;0;活动-此活动尚未开放
+active_activecode_used;3952;0;活动-兑换码已经使用过了
+err_arenas_rewardIllegal;4003;1;关卡挑战-掉落奖励与后台不匹配
+err_arenas_difficulty;4004;1;关卡挑战-难度参数错误
+err_arenas_logillegal;4005;1;关卡挑战记录非法
+err_arenasgate_indexillegal;4006;1;错误的关卡索引
+err_arenasgate_nocount;4007;1;关卡挑战体力值不足,无法战斗
+err_arenas_unlockstarnotenough;4008;1;战场解锁星数不足,无法扫荡该关卡
+err_arenas_normalgate_numno;4009;1;关卡的挑战次数已达上限
+err_arenasgate_errSweepCount;4010;1;错误的扫荡次数
+err_arenas_starreward_const_no;4011;1;关卡星星奖励的常量数据不存在!
+err_arenas_hasgetstarreward;4012;1;关卡星星奖励--奖励已经领取
+err_arenas_starreward_starNotEnough;4013;1;关卡星星奖励--星星数量不足无法领取奖励
+err_gateForever_const_no;4014;1;无尽关卡模式——常量数据丢失
+err_gateForever_countIsFull;4015;1;无尽关卡模式—挑战次数已达上限
+err_gateForever_countillegal;4016;1;无尽关卡模式—挑战次数非法
+carbon_opened;4017;0;副本开启中
+carbon_closed;4018;0;副本未开启
+carbon_gateIndex;4019;0;副本挑战的关卡索引错误
+carbon_wrongdifficult;4020;0;副本-难度等级错误
+pvp_wrongMather;4021;0;竞技场-指定的pvp对手不存在
+pvp_refresh_time;4022;0;竞技场-刷新过于频繁
+pvp_tili_chargenum;4023;0;竞技场-错误的体力充值数量
+pvp_no_tickets;4024;0;竞技场-挑战票不足.
+pvp_refresh_cost_ilegal;4030;0;竞技场-刷新对手花费数据对不上.
+pvp_refresh_max;4029;0;竞技场-刷新对手已达次数上限
+pvp_ticket_cost_ilegal;4028;0;竞技场-挑战票购买,跟预期的值对不上
+pvp_item_soldout;4027;0;竞技场-道具已售罄
+pvp_coinnotenough;4026;0;竞技场-活跃值不够
+story_repeatfight;4025;0;剧情关卡-剧情关卡不能重复挑战,只能挑战一次
+err_arenas_starrwd_star;4026;1;剧情关卡-星数奖励领取条件不够
+rank_fpower_unlocked;4101;0;排行榜-战斗力解锁条件尚未达成
+rank_reward_hasgetted;4102;0;排行榜-奖励已经领取了
+rank_passsgate_unlocked;4103;0;排行榜-通关帮奖励解锁条件尚未达成
+email_wrongid;4201;0;邮件-错误的邮件id
+email_not_found;4202;0;邮件-未找到指定邮件
+email_no_appendix;4203;0;邮件-不存在附件
+email_appendix_drawed;4204;0;邮件-附件已领取
+auction_const_no;4701;0;拍卖物品的常量数据不存在
+auction_curdaynotexist;4702;0;当天拍卖物品的数据不存在
+auction_timeout;4703;0;竞价的时候超过时间限制
+auction_noexistautionItem;4704;0;拍卖一件不在拍品列表中的物品
+auction_pricelowthancurprice;4705;0;拍卖一件不在拍品列表中的物品
+auction_beforstart;4706;0;拍品尚未开始拍卖
+auction_end;4707;0;拍品已经结束拍卖
+auction_failprice;4708;0;出价低于当前价
+err_msg_goldnotenough;4805;1;金币不足
+err_user_no;4817;1;玩家不存在
+err_msg_cmd;4820;1;操作码非法
+shop_limit_max;4901;0;限购礼包-购买数量已达上限
+shop_monthlyvip_buyed;4902;0;月卡已购买,失效前不可再次购买

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

@@ -4,7 +4,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2020-11-13 11:48:05
+ // 日期: 2020-11-17 14:51:03
 ////////////////////
 
 /**

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

@@ -4,7 +4,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2020-11-06 12:13:46
+ // 日期: 2020-11-17 11:00:23
 ////////////////////
 
 

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

@@ -4,7 +4,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2020-11-06 12:04:16
+ // 日期: 2020-11-17 14:43:51
 ////////////////////
 
 

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

@@ -4,7 +4,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2020-11-04 17:26:21
+ // 日期: 2020-11-17 10:14:55
 ////////////////////
 
 

+ 3 - 0
Gameserver/Amfphp/model/User/EnumTaskType.php

@@ -25,5 +25,8 @@ class EnumTaskType extends Enum {
     const DailyPVP = 104;
     const DailyRankChalenge = 105;
     const DailyShopping = 106;
+    // ---------  任务卡  --------
+
+    const GainItem = 201;
 
 }

+ 48 - 34
Gameserver/Amfphp/model/User/TaskCardVo.php

@@ -2,43 +2,12 @@
 
 namespace loyalsoft;
 
-/**
- * 任务分支
- */
-class TaskBranchVo {
-
-    /**
-     * @var float 任务进度(浮点值好了>=1代表完成)
-     */
-    public $progress = 0;
-
-    /**
-     * 用于将进度更新的数据待会给客户端,比如当前PVP积分之类的,在客户端是无法即时拿到数据的
-     * @var object
-     */
-    public $tag1;
-    public $tag2;
-
-    /**
-     * @var int 计数器
-     */
-    public $counter = 0;
-
-}
-
-/**
- * 任务步骤
- */
-class TaskStepVo {
-    
-}
-
 /**
  * Description of TaskCardVo
  * 任务卡
  * @author gwang
  */
-class TaskCardVo {
+class TaskCardVo extends Object_ext {
 
     /**
      * @var type 这个物品在玩家身上唯一的id
@@ -46,9 +15,9 @@ class TaskCardVo {
     public $uid = 0;
 
     /**
-     * @var type 当前数量
+     * @var type 当前已完成步骤数量
      */
-    public $count = 1;
+    public $count = 0;
 
     /**
      * @var type 查询用的id
@@ -60,4 +29,49 @@ class TaskCardVo {
      */
     public $state = 0;
 
+    /**
+     * @var array[]当前任务步骤数据 
+     */
+    public $curSteps;
+
+    /**
+     * @var type 当前任务步骤索引
+     */
+    public $curStepIndex = 0;
+
+    /**
+     * 
+     * @return type
+     */
+    public function mo() {
+        $mo = GameConfig::item_taskcard_getItem($this->typeId);
+        my_Assert(null != $mo, ErrCode::err_const_no);
+        return $mo;
+    }
+
+    public function __construct($args = 0) {
+        if (self::isInt($args)) {
+            $this->typeId = $args;
+            $arr = array();
+            $cfg = GameConfig::item_taskcard_getItem($this->typeId);
+            my_Assert(null != $cfg, ErrCode::err_const_no);
+            foreach (explode(',', $cfg->tasksteps) as $taskStepTypeId) {
+                $arr [] = new TaskStepVo($taskStepTypeId);
+            }
+            $this->curSteps = $arr;
+        } else {
+
+            parent::__construct($args);
+        }
+    }
+
+    static function isInt($var) {
+        $int = intval($var);
+        if ((string) $int === (string) $var) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+
 }

+ 99 - 0
Gameserver/Amfphp/model/User/TaskStepVo.php

@@ -0,0 +1,99 @@
+<?php
+
+namespace loyalsoft;
+
+/**
+ * 任务步骤
+ */
+class TaskStepVo extends Object_ext {
+
+    /**
+     * @var type 查询用的id
+     */
+    public $typeId = 0;
+
+    /**
+     * @var float 任务进度(浮点值好了>=1代表完成)
+     */
+    public $progress = 0;
+
+    /**
+     * 用于将进度更新的数据待会给客户端,比如当前PVP积分之类的,在客户端是无法即时拿到数据的
+     * @var object
+     */
+    public $tag1;
+    public $tag2;
+
+    /**
+     * @var int 计数器
+     */
+    public $counter = 0;
+
+    /**
+     * @return \sm_task_step mo
+     */
+    public function mo() {
+        $mo = GameConfig::task_step_getItem($this->typeId);
+        my_Assert(null != $mo, ErrCode::err_const_no);
+        return $mo;
+    }
+
+    static function isInt($var) {
+        $int = intval($var);
+        if ((string) $int === (string) $var) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+
+    public function __construct($args) {
+        if (self::isInt($args)) {
+            $this->typeId = $args;
+        } else {
+            parent::__construct($args);
+        }
+    }
+
+    /**
+     * @param TaskParams $taskParam
+     * @return bool
+     */
+    public function check($taskParam) {
+        if ($this->progress >= 1) {
+            return true;
+        }
+
+        if ($taskParam->taskType == $this->mo()->tasktype) {
+            if (isNull($this->mo()->canshu1)) {
+                $this->progress = 1;
+                return true;
+            }
+            if ($this->mo()->canshu1 == $taskParam->canshu1) {
+                $this->tag1 = $taskParam->canshu1;
+                if (null == $this->mo()->canshu2 || 0 == $this->mo()->canshu2) {
+                    $this->progress = 1;
+                    $this->tag2 = $taskParam->canshu2;
+                    return true;
+                } else {
+                    if (is_numeric($this->mo()->canshu2)) {
+                        $this->tag2 = max($this->tag2, $taskParam->canshu2);
+                        if ($this->mo()->canshu2 <= $taskParam->canshu2) {
+                            $this->progress = 1;
+                            return true;
+                        }
+                    } else {
+                        $this->tag2 = $taskParam->canshu2;
+                        if ($this->mo()->canshu2 == $taskParam->canshu2) {
+                            $this->progress = 1;
+                            return true;
+                        }
+                    }
+                }
+            }
+        }
+
+        return false;
+    }
+
+}

+ 9 - 7
Gameserver/Amfphp/process/StoreProc.php

@@ -371,6 +371,7 @@ class StoreProc {
                 default :
                     Err(ErrCode::err_innerfault, "落入包裹时,出现了非法物品($itemId)");
             }
+            TaskProc::OnGainItem($itemId, $num);                                // 检查获得道具的任务进度
         }
         return ErrCode::ok;                                                     // 返回
     }
@@ -412,8 +413,9 @@ class StoreProc {
      * @param Req $req
      */
     static function PutYanLingInStore($itemId, &$req) {
+        my_Assert(count((array) $req->userInfo->game->store->yanling) < 100, ErrCode::store_yanling_bagfull);
         $privateState = $req->userInfo->game->privateState;
-        if (!CommUtil::isPropertyExists($privateState, "currentId")) {          // 如果仓库中已经有这种元素,则其数目+1
+        if (!CommUtil::isPropertyExists($privateState, "currentId")) {          # 如果仓库中已经有这种元素,则其数目+1
             $req->userInfo->game->privateState->currentId = 1;
         }
         $cid = $req->userInfo->game->privateState->currentId++;
@@ -439,21 +441,21 @@ class StoreProc {
         my_Assert(null != $itembaseMo, ErrCode::err_const_no);
         if ($itembaseMo->pileNum > 0) {                                         // 可叠加
             $taskCard = null;
-            foreach ($req->userInfo->game->store->taskcards as $uuid => $val) {
-                isEditor() && $val = new TaskCardVo();
+            foreach ($req->userInfo->game->store->taskcards as $uuid => &$val) {
+                $val = new TaskCardVo($val);
                 if ($val->typeId == $itemId) {
                     $taskCard = $val;
                     break;
                 }
             }
             if (null == $taskCard) {                                            # 原来么有
-                $taskCard = new TaskCardVo();
-                $taskCard->typeId = $itemId;
+                $taskCard = new TaskCardVo($itemId);
+                $taskCard->uid = $cid;
+                $req->userInfo->game->store->taskcards->$cid = $taskCard;
             }
             $taskCard->count += 1;
         } else {
-            $taskCard = new TaskCardVo();
-            $taskCard->typeId = $itemId;
+            $taskCard = new TaskCardVo($itemId);
             $taskCard->uid = $cid;
             $req->userInfo->game->store->taskcards->$cid = $taskCard;
         }

+ 60 - 12
Gameserver/Amfphp/process/TaskProc.php

@@ -21,11 +21,16 @@ class TaskProc {
                 return TaskProc::setAttentionTask($req);
             case CmdCode::cmd_Task_getActiveReward:                             # 6204 领取日常任务活跃度阶段奖励
                 return TaskProc::getActiveReward($req);
+//---------------- 任务卡相关通讯 -----------------------------------------------
+
+
             default:
                 return Err(ErrCode::cmd_err);
         }
     }
 
+    // <editor-fold defaultstate="collapsed" desc="  任务接口 ">
+
     /**
      * [6204] 领取日常任务活跃度阶段奖励
      * @param req $req
@@ -67,16 +72,6 @@ class TaskProc {
         return Resp::ok(array("task" => $req->userInfo->game->task));
     }
 
-    /**
-     * [6201]更新任务状态
-     * @param req $req
-     */
-    static function GetTaskInfo($req) {
-        // 刷新
-        // 返回
-        return Resp::ok(array("task" => $req->userInfo->game->task));
-    }
-
     /**
      * [6202]领取任务奖励 问:每日任务奖励和剧情任务奖励领取接口是否为一个?
      * @param req $req
@@ -131,8 +126,15 @@ class TaskProc {
         ));
     }
 
-// 每日任务, 自动刷新
-// 
+    /**
+     * [6201]更新任务状态
+     * @param req $req
+     */
+    static function GetTaskInfo($req) {
+        return Resp::ok(array("task" => $req->userInfo->game->task));
+    }
+
+// </editor-fold>
 
     /**
      * 重置每日任务
@@ -402,4 +404,50 @@ class TaskProc {
 
     // 
 // </editor-fold>
+    // 
+    // <editor-fold defaultstate="collapsed" desc="处理任务卡条件检查">
+    // 
+
+    /**
+     * 检查任务卡条件是否达成
+     * @param TaskParams $taskParam Description
+     */
+    static function CheckTaskCardConditions($taskParam) {
+        $bUpdate = false;
+        $tasks = req()->userInfo->game->store->taskcards;
+
+        foreach ($tasks as $tid => &$task) {
+            $task = new TaskCardVo($task);
+            $taskCfg = $task->mo();                                             # 获取任务卡配置数据
+            // 根据steptype类型区分下, 然后取任务步骤数据, 比对任务步骤的进度
+            if ($taskCfg->stepType == 1) {                                      # 1串,2并
+                $taskSteps = $task->curSteps;                                   # 任务步骤
+                $n = $task->curStepIndex;
+                $taskStep = new TaskStepVo($taskSteps[$n]);
+                $bUpdate = $taskStep->check($taskParam);
+            } else {                                                            # 并
+                foreach ($task->curSteps as $stp) {
+                    $tsp = new TaskStepVo($stp);
+                    $bUpdate = $tsp->check($taskParam);
+                }
+            }
+        }
+
+        if ($bUpdate) {
+            Resp::addTag("isTaskUpdated", true);                                # 附加tag信息, 任务有更新
+            CornerSignEventProc::OnTask_Daily_new(req());
+        }
+    }
+
+    /**
+     * 获得道具
+     */
+    static function OnGainItem($itemId, $num) {
+        $taskParam = new TaskParams(EnumTaskType::GainItem, $itemId, $num);
+        self::CheckTaskCardConditions($taskParam);
+    }
+
+    // 
+    // </editor-fold>
+//
 }

+ 19 - 0
Gameserver/Amfphp/test.php

@@ -4,8 +4,27 @@ namespace loyalsoft;
 
 include __DIR__ . '/main.php';
 echo ("phpver: " . PHP_VERSION . PHP_EOL);
+
 //set_time_limit(15);                                                           # 设置执行超时时间
 //
 //require_once ROOTDIR . '/Util/OpenSSLVerify.php';                             # Ps. 这个文件和类名没有对应关系.
 //header('X-Accel-Buffering: no');                                              # nginx 控制头, 关闭buffer
 
+
+
+function isInt($var) {
+    $int = intval($var);
+    if ((string) $int === (string) $var) {
+        return true;
+    } else {
+        return false;
+    }
+}
+
+var_dump(is_int("35"));
+var_dump(is_int(35));
+$var = "35 ";
+var_dump(isInt($var));
+var_dump(isInt(ErrCode::ok));
+var_dump(is_int(ErrCode::err_assert));
+

+ 6 - 0
Gameserver/nbproject/private/private.xml

@@ -12,7 +12,13 @@
     </editor-bookmarks>
     <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
         <group>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/model/User/TaskStepVo.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/model/User/TaskCardVo.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/model/User/EnumTaskType.php</file>
             <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/StoreProc.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/TaskProc.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/base/CmdCode.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/model/User/TaskInfo.php</file>
         </group>
     </open-files>
 </project-private>

+ 1 - 1
Gameserver/nbproject/project.properties

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