コード例 #1
0
ファイル: EntityToVo.cs プロジェクト: Lantnr/MyTest
 /// <summary> tg_train_home 实体转换 NpcMonsterVo </summary>
 /// <param name="model">武将宅怪物Vo</param>
 /// <returns>前端NpcMonsterVo</returns>
 public static NpcMonsterVo ToNpcMonsterVo(tg_train_home model)
 {
     return(new NpcMonsterVo()
     {
         id = model.id,
         baseId = model.npc_id,
         state = model.npc_state,
         spirit = model.npc_spirit,
         isSteal = model.is_steal,
     });
 }
コード例 #2
0
        /// <summary>处理喝茶获得魂信息</summary>
        private ASObject AcquireSpirit(Int64 userid, tg_train_home npc, tg_role_life_skill lifeskill)
        {
            var spirit = (new Share.RoleTrain()).GetSpirit(lifeskill.sub_tea, lifeskill.sub_tea_level);   //喝茶获得的魂数
            var sp     = npc.npc_spirit;

            sp = sp - spirit;
            if (sp < 0)
            {
                spirit         = npc.npc_spirit;
                npc.npc_spirit = 0;
            }
            else
            {
                npc.npc_spirit = sp;
            }

            return(!tg_train_home.UpdateNpc(npc) ? Error((int)ResultType.DATABASE_ERROR) : TeaInfo(userid, npc.npc_spirit, spirit));
        }
コード例 #3
0
ファイル: TRAIN_TEA_INSIGHT.cs プロジェクト: Lantnr/MyTest
        /// <summary>处理喝茶获得魂信息</summary>
        private ASObject AcquireSpirit(tg_user user, tg_train_home npc, int teaid, int level)
        {
            var spirit = (new Share.RoleTrain()).GetSpirit(teaid, level);   //顿悟茶道获得的魂数
            var sp     = npc.npc_spirit;

            sp = sp - spirit;
            if (sp < 0)
            {
                spirit         = npc.npc_spirit;
                npc.npc_spirit = 0;
            }
            else
            {
                npc.npc_spirit = sp;
            }

            return(!tg_train_home.UpdateNpc(npc) ? Error((int)ResultType.DATABASE_ERROR) : TeaInfo(npc.npc_spirit, user, spirit));
        }
コード例 #4
0
        /// <summary>对战结果处理</summary>
        private ASObject ChallengeResult(TGGSession session, BaseNpcMonster npcinfo, tg_train_home npc, FightVo fight)
        {
            var isprop      = false;
            var exp         = npcinfo.experience;
            var equips      = npcinfo.equip;
            var probability = npcinfo.probability;
            var reward      = new List <RewardVo>();
            var propreward  = new List <RewardVo>();

            if (fight.isWin)
            {
                PowerUpdate(fight.isWin, session.Player.Role.Kind); //体力更新
                reward = BuildReward(exp);
                RewardExp(session, exp);                            //推送经验奖励
                UpdateExt(session.Player.User.id);

                npc.npc_state = (int)FightResultType.WIN;                                                     //更新npc状态为已战胜
                npc.Update();
                var newequip = Common.GetInstance().RandomEquip(session.Player.User.id, equips, probability); //是否获得装备
                isprop = newequip != null;
                if (newequip != null)
                {
                    Variable.TempProp.AddOrUpdate(session.Player.User.id, new List <tg_bag>()
                    {
                        newequip
                    }, (m, n) => n);
                    var listaso = new List <ASObject> {
                        AMFConvert.ToASObject(EntityToVo.ToEquipVo(newequip))
                    };
                    propreward.Add(new RewardVo
                    {
                        goodsType = (int)GoodsType.TYPE_EQUIP,
                        increases = listaso,
                    });
                }
            }
            FightSend(fight, isprop, reward, session.Player.User.id, propreward); //发送战斗协议

            (new Share.DaMing()).CheckDaMing(session.Player.User.id, (int)DaMingType.武将宅挑战);
            return(new ASObject(Common.GetInstance().NpcChallengeData((int)ResultType.SUCCESS, fight.isWin ? (int)FightResultType.WIN : (int)FightResultType.LOSE)));
        }
コード例 #5
0
        /// <summary>偷窃逻辑处理</summary>
        private ASObject StealNpc(TGGSession session, tg_user_extend extend, BaseNpcMonster basenpc, tg_train_home npc)
        {
            var userid = session.Player.User.id;
            var nprob  = GetProbability(session.Player.Role.LifeSkill.sub_ninjitsu, session.Player.Role.LifeSkill.sub_ninjitsu_level); //忍术加成概率
            var bprob  = GetBrainProb(session.Player.Role);                                                                            //智谋加成概率
            var equip  = Common.GetInstance().RandomEquip(userid, basenpc, nprob, bprob);

            if (equip != null)   //偷窃成功
            {
                npc.is_steal = (int)TrainHomeStealType.STEAL_YES;
                if (!tg_train_home.UpdateNpc(npc))
                {
                    return(Error((int)ResultType.DATABASE_ERROR));
                }
                AcquireEquip(session, equip);                                                                        //获得装备信息处理

                var logdata = string.Format("{0}_{1}", "EquipSteal", equip.base_id);                                 //记录偷窃获得装备信息
                (new Share.Log()).WriteLog(userid, (int)LogType.Get, (int)ModuleNumber.ROLETRAIN, (int)RoleTrainCommand.TRAIN_HOME_NPC_STEAL, logdata);
                log.BagInsertLog(equip, (int)ModuleNumber.ROLETRAIN, (int)RoleTrainCommand.TRAIN_HOME_NPC_STEAL, 0); //记录日志
            }
            else
            {
                extend.steal_fail_count++;
                extend.Update();
                session.Player.UserExtend = extend;
                if (IsEnterPrison(extend.steal_fail_count))
                {
                    new Share.Prison().PutInPrison(userid);
                }                                                                                        //推送进入监狱
            }
            (new Share.DaMing()).CheckDaMing(userid, (int)DaMingType.武将宅偷窃);
            return(new ASObject(Common.GetInstance().NpcStealData((int)ResultType.SUCCESS, npc.is_steal)));
        }