|
|
- --[[
- @description:传闻
- ]]
-
- require("game.chuanWen.ChuanWenManager")
-
- ChuanWenController = ChuanWenController or BaseClass(BaseController)
-
- function ChuanWenController:__init()
- ChuanWenController.Instance = self
- self.manager = ChuanWenManager:getInstance()
- self:RegisterAllProtocals()
- self:AddAllEvents()
- end
-
- function ChuanWenController:__delete()
-
- end
-
- function ChuanWenController:RegisterAllProtocals()
- self:RegisterProtocal(11015,"on11015") --传闻(新版通用格式)
- self:RegisterProtocal(11018,"on11018") --带头像的传闻..
- end
-
- function ChuanWenController:AddAllEvents()
- local receive_new_fun = function (scmd,type)
- -- scmd = {module_id = 646, id = 3, content = "1234,主玩家,110103,22"} --测试用
- self:RevNewChuanwen(scmd,type)
- end
- GlobalEventSystem:Bind(EventName.RECEIVE_NEW_CHUANWEN, receive_new_fun)
-
- local link_fun = function (param_list, x, y)
- self:LinkFun(param_list, x, y)
- end
- GlobalEventSystem:Bind(EventName.UNDER_LINE_CLICK_EVENT, link_fun)
- end
-
- --传闻
- function ChuanWenController:on11015()
- local scmd = SCMD11015.New(true)
- --[[用对应的model保存特定的传闻,自己去触发--]]
- --寻宝
- -- if scmd.module_id == 416 then
- -- if scmd.id == 1 or scmd.id == 2 or scmd.id == 3 or scmd.id == 4 then
- -- local array = Split(scmd.content,",")
- -- if array[1] == RoleManager.Instance.mainRoleInfo.name then
- -- TreasureHuntModel:getInstance():AddSelfChuanWen(scmd, 11015)
- -- return
- -- end
- -- end
- -- end
- --print("=============>>> YiRan:ChuanWenController [start:52] 11015scmd ------------------------------------------")
- --PrintTable(scmd)
- --print("=============>>> YiRan:ChuanWenController [end] ------------------------------------------")
-
- GlobalEventSystem:Fire(EventName.RECEIVE_NEW_CHUANWEN, scmd, 11015)--传闻
- end
-
- --传闻
- function ChuanWenController:on11018()
- local scmd = SCMD11018.New(true)
-
- --print("=============>>> YiRan:ChuanWenController [start:52] 11018scmd ------------------------------------------")
- --PrintTable(scmd)
- --print("=============>>> YiRan:ChuanWenController [end] ------------------------------------------")
- GlobalEventSystem:Fire(EventName.RECEIVE_NEW_CHUANWEN, scmd, 11018)--传闻
- end
-
- --如果传闻出现配置了 但是又没有显示在游戏内 策划又让你找问题 就去语言配置那里看看 是不是发送频道配错了 怼他!!!
- function ChuanWenController:RevNewChuanwen(scmd,type)
- if scmd == nil or scmd.module_id == nil or scmd.id == nil then
- return
- end
- if scmd.module_id == 331 and scmd.id == 2 and HopeGiftModel:getInstance():GetHopeGiftIsAction() then--臻享礼包动画过程中不播放传闻
- HopeGiftModel:getInstance():SetChuanwenInfo(scmd,type)
- return
- end
- local desc, chuanwen_cfg = self.manager:GetChuanWen(scmd)
- --self:CanEnterScene(desc)--判断先去掉
- if desc ~= "" then
- -- local chat_data = {}
- -- chat_data.content = desc
- local scene_id = SceneManager.Instance:GetSceneId()
- if not Config.ConfigChat.NoChuanwenSceneId[scene_id] then
- scmd.type = type
- scmd.chuanwen_type = chuanwen_cfg.type --传闻类型
- if chuanwen_cfg.type == ChuanWenManager.Type.Rolling then--传闻跑马灯飘(屏幕中部)(1)
- SysInfoCtrl.Instance:AppendMsg(SysInfoCtrl.SysInfoType.NOTICE, desc)
- GlobalEventSystem:Fire(EventName.SHOW_CHUANWEN, desc, chuanwen_cfg, scmd)
- elseif chuanwen_cfg.type == ChuanWenManager.Type.SystemNomal then--频道普通消息
- GlobalEventSystem:Fire(EventName.SHOW_CHUANWEN, desc, chuanwen_cfg, scmd)
- elseif chuanwen_cfg.type == ChuanWenManager.Type.RollingSystemNomal then--跑马灯加频道(3)
- --先解析标签,再删除特殊标签
- Message.show(self.manager:DeleteSpecialSign(PackageSpecialTab(desc)))
- if chuanwen_cfg.subtype ~= 0 then
- GlobalEventSystem:Fire(EventName.SHOW_CHUANWEN, desc, chuanwen_cfg, scmd)
- end
- elseif chuanwen_cfg.type == ChuanWenManager.Type.CSEvent then -- 跨服玩法传闻(屏幕中部,参考睾♂级藏宝图)
- GlobalEventSystem:Fire(EventName.SHOW_CHUANWEN, desc, chuanwen_cfg, scmd)
- MainUIModel:getInstance():AppendCSEventChuanwen(desc)
- -- elseif chuanwen_cfg.type == 5 then
- -- GlobalEventSystem:Fire(EventName.SHOW_CHUANWEN, desc, chuanwen_cfg, scmd)
- -- Message.show(self.manager:DeleteSpecialSign(PackageSpecialTab(desc)))
- end
- end
- end
- end
-
- function ChuanWenController:LinkFun(param_list, x, y)
- print("点击链接的事件===:", param_list)
- PrintTable(param_list)
- if param_list then
- if param_list[1] == "goods" or param_list[1] == "goods5" then --通过类型id查看tips
- local goods_basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(param_list[2])
- if goods_basic then
- if goods_basic.type == GoodsModel.TYPE.WarSoul then--战魂
- UIToolTipMgr:getInstance():AppendWarSoulTips(goods_basic.type_id, x, y)
- else
- UIToolTipMgr:getInstance():AppendGoodsTips(param_list[2])
- end
- end
- elseif param_list[1] == "goods2" then --通过唯一id查看物品 then
- --获取playerid 和 goods_id 发送15001协议 显示tips
- GoodsModel:getInstance():Fire(GoodsModel.REQUEST_GOODS_DYNAMIC, tonumber(param_list[2]), tonumber(param_list[3]), tonumber(param_list[4]))
- elseif param_list[1] == "scene" then --进入场景
- local cur_id, target_id = SceneManager:getInstance():GetSceneId(), tonumber(param_list[2])
- if SceneManager:getInstance():IsClickFindScene(cur_id, target_id) then
- GlobalEventSystem:Fire(SceneEventType.REQUEST_CHANGE_SCENE, cur_id)
- end
- elseif param_list[1] == "scene2" then --进入场景
- local cur_id, target_id = SceneManager:getInstance():GetSceneId(), tonumber(param_list[2])
- if SceneManager:getInstance():IsClickFindScene(cur_id, target_id) then
- local findVo = FindVo.New()
- findVo.type = FindVo.POINT
- findVo.sceneId = tonumber(param_list[2])
- findVo.x = tonumber(param_list[3])
- findVo.y = tonumber(param_list[4])
- GlobalEventSystem:Fire(EventName.FIND,findVo)
- end
- elseif param_list[1] == "player" then --查看玩家信息
- local name = param_list[2]
- local role_id = tonumber(param_list[3])
- if role_id~=0 then
- SocialityModel:getInstance():Fire(SocialityModel.REQUEST_OTHER_INFO, role_id, x, y)
- end
- elseif param_list[1] == "player2" then --查看玩家信息
- local name = param_list[2]
- local role_id = tonumber(param_list[3])
- local server_id = tonumber(param_list[4])
- if role_id~=0 then
- if server_id~=RoleManager.Instance.mainRoleInfo.server_id then
- Message.show("外域玩家无法查看信息")
- else
- SocialityModel:getInstance():Fire(SocialityModel.REQUEST_OTHER_INFO, role_id, x, y)
- end
- end
- elseif param_list[1] == "scene3" then --点击前往
- local cur_id, target_id = SceneManager:getInstance():GetSceneId(), tonumber(param_list[2])
- if cur_id~=target_id then
- self:goBoss(param_list)
- else
- --正在场景中
- if SceneManager:getInstance():IsWorldBeastScene() then --在幻兽之域中
- self:onBeast(param_list)
- else
- local findVo = FindVo.New()
- findVo.type = FindVo.POINT
- findVo.sceneId = tonumber(param_list[2])
- findVo.x = tonumber(param_list[3])/SceneObj.LogicRealRatio.x
- findVo.y = tonumber(param_list[4])/SceneObj.LogicRealRatio.y
- GlobalEventSystem:Fire(EventName.FIND,findVo)
- end
- end
- elseif param_list[1] == "open_fun" then --打开功能
- local winId = tonumber(param_list[2])
- local subId = tonumber(param_list[3])
- local parm = {}
- for i,v in ipairs(param_list) do
- if i == 3 and param_list[4] then
- --传闻跳转如果要传值,那么第三个参数就应该是充当openfun的第二个传参作用
- if tonumber(param_list[2]) == 461 then
- --可是有的功能模块id和跳转实际使用的传参不对应的话,就要单独处理
- table.insert( parm, 9 )--废都幻魔
- elseif tonumber(param_list[2]) == 462 then
- table.insert( parm, Config.ConfigBoss.ModuleId.BossHome )--boss之家
- else
- table.insert( parm, tonumber(v) )
- end
- elseif i > 3 then
- table.insert( parm, tonumber(v) )
- end
- end
- OpenFun.Open(winId, subId, unpack(parm))
- elseif param_list[1] == "skill" then --用<a解析,但是不是超链接
- GlobalEventSystem:Fire(EventName.OPEN_CHAT_VIEW)
- elseif param_list[1] == "pos" then --点击坐标
- local function ok( ... )
- local scene_id = tonumber(param_list[2])
- local line = tonumber(param_list[3]) or 1
- local x = tonumber(param_list[4]) or 0
- local y = tonumber(param_list[5]) or 0
- local cur_line = MapModel:getInstance():GetServerLine()
- local scene_info = SceneManager:getInstance():GetSceneInfo(scene_id)
- local level = RoleManager.Instance.mainRoleInfo.level
- if scene_info then
- --如果在当前场景当前线路,就直接寻路
- if scene_id == SceneManager.Instance:GetSceneId() and line==cur_line
- and scene_info.type~=2 and scene_info.type~=5 and scene_info.type~=6 and scene_info.type~=7
- and scene_info.type~=4 and scene_info.type~=8 then
- local findVo = FindVo.New()
- findVo.type = FindVo.POINT
- findVo.sceneId = scene_id
- findVo.x = x/SceneObj.LogicRealRatio.x
- findVo.y = y/SceneObj.LogicRealRatio.y
- GlobalEventSystem:Fire(EventName.FIND,findVo)
- return
- end
- if scene_info.type==3 then --打开界面
- if SceneManager:getInstance():IsWorldBeastScene(scene_id) then
- if level < Config.ConfigOpenLv.RightTop.beast then
- Message.show(string.format("%d级开启世界服", Config.ConfigOpenLv.RightTop.beast))
- return
- end
- GlobalEventSystem:Fire(EventName.OPEN_WORLD_VIEW, true)
- end
- else --请求协议
- if scene_id and line and x and y then
- local cur_id, target_id = SceneManager:getInstance():GetSceneId(), scene_id
- --if SceneManager:getInstance():IsClickFindScene(cur_id, target_id) then
- line = 0 --暂时改成都能跳
- GlobalEventSystem:Fire(SceneEventType.REQUEST_POS_LINK, scene_id, line, x, y)
- --else
- -- Message.show("目标场景不能进入")
- --end
- end
- end
- end
- end
- local scene_info = SceneManager.Instance:GetSceneInfo(tonumber(param_list[2]))
- local name = ""
- if scene_info then
- name = Trim(scene_info.name)
- local ask_str = string.format("即将寻路至 <color=%s>[%s(%d,%d)]</color> 是否确认?", ColorUtil.PURPLE_DARK,name, tonumber(param_list[4]) / 100, tonumber(param_list[5]) / 100)
- Alert.show(ask_str, Alert.Type.Two, ok ,nil,"确定","取消")
- end
- elseif param_list[1] == "pos_festival_boss" then --点击坐标
- local function ok( ... )
- local scene_id = tonumber(param_list[2])
- local scene_info = SceneManager:getInstance():GetSceneInfo(scene_id)
- local line = tonumber(param_list[3]) or 1
- local cur_line = MapModel:getInstance():GetServerLine()
- local x = tonumber(param_list[4]) or 0
- local y = tonumber(param_list[5]) or 0
- if scene_info then
- if scene_id == SceneManager.Instance:GetSceneId() and line==cur_line then
- --如果在当前场景当前线路,就直接寻路
- local findVo = FindVo.New()
- findVo.type = FindVo.POINT
- findVo.sceneId = scene_id
- findVo.x = x/SceneObj.LogicRealRatio.x
- findVo.y = y/SceneObj.LogicRealRatio.y
- GlobalEventSystem:Fire(EventName.FIND,findVo)
- else
- BossModel:GetInstance():Fire(BossConst.REQ_DESERTED_BOSS_SCMD,46028,tonumber(param_list[2]))
- BossModel:GetInstance().festival_boss_find_way_data = DeepCopy(param_list)--保存跳转场景后的寻路参数
- end
- end
- end
- local scene_info = SceneManager.Instance:GetSceneInfo(tonumber(param_list[2]))
- local name = ""
- if scene_info then
- name = Trim(scene_info.name)
- local ask_str = string.format("即将寻路至 <color=%s>[%s(%d,%d)]</color> 是否确认?", ColorUtil.PURPLE_DARK,name, tonumber(param_list[4]) / 100, tonumber(param_list[5]) / 100)
- Alert.show(ask_str, Alert.Type.Two, ok ,nil,"确定","取消")
- end
- elseif param_list[1] == "mail" then --邮件
- GlobalEventSystem:Fire(EventName.OPEN_SOCIALITY_VIEW, 3)
- elseif param_list[1] == "url" then --跳转网页
- local str = param_list[2]
- elseif param_list[1] == "mate_show" then
- MateModel:GetInstance():Fire(MateConst.REQ_LOOK_OTHER_MATE,param_list[2],param_list[3])
- elseif param_list[1] == "showbaby" then--晒娃
- --if RoleManager.Instance.mainRoleInfo.level < Config.Moduleopenlv["163@1"].lv then
- -- Message.show("75级之后才可以逗逗TA的宝宝哦~")
- --else
- --Message.show("逗宝宝")
- local data = {
- child_name = param_list[2],
- name = param_list[3],
- role_id = param_list[4],
- sex = param_list[5],
- child_clothe_res_id = param_list[6],
- career = param_list[7],
- level = param_list[8],
- turn = param_list[9],
- profile_photo_id = param_list[10],
- vip_flag = param_list[11],
- sup_vip_type = param_list[12],
- fashion_id = param_list[13],
- child_level = param_list[14],
- child_sex = param_list[15],
- }
- -- GlobalEventSystem:Fire(EventName.CLOSE_CHAT_VIEW)
- ChildModel:GetInstance():Fire(ChildConst.OPEN_CHILD_CHAT_NICE_VIEW,true,data)
- --end
- elseif param_list[1] == "guild" then--加入社团
- GuildModel:getInstance():Fire(GuildModel.ApplyJoinGuildEvt, param_list[2]) --申请加入社团
- elseif param_list[1] == "guildScene" then --进入社团驻地
- local guild_id = RoleManager.Instance.mainRoleInfo.guild_id
- if not guild_id or guild_id == 0 then
- Message.show("请先加入社团")
- return
- end
- GuildModel:getInstance():Fire(GuildModel.ENTER_GUILD_BASE)
- elseif param_list[1] == "redenvelopes" or param_list[1] == "actredenvelopes" then --抢社团红包
- RedPacketModel:GetInstance():Fire(RedPacketModel.OPEN_GUILD_REDPACKET_VIEW, true) -- 只打开界面
- elseif param_list[1] == "Pet" then --展示宠物
- if not GetModuleIsOpen(163) then
- Message.show("该功能暂未开启")
- return
- end
- PetModel:getInstance():Fire(PetConst.REQUEST_CCMD_EVENT,16311,tonumber(param_list[2]),tonumber(param_list[3]))
- elseif param_list[1] == "showPetSupport" then --跳到宠物声援界面
- if not GetModuleIsOpen(163) then
- Message.show("该功能暂未开启")
- return
- end
- GlobalEventSystem:Fire(EventName.OPEN_PET_VIEW,2)
- elseif param_list[1] == "showPetVote" then --跳到宠物投票界面
- if not GetModuleIsOpen(163) then
- Message.show("该功能暂未开启")
- return
- end
- PetModel:getInstance():Fire(PetConst.OPEN_PET_VOTE_VIEW)
- elseif param_list[1] == "showPetRank" then --跳到宠物榜单界面
- if not GetModuleIsOpen(163) then
- Message.show("该功能暂未开启")
- return
- end
- PetModel:getInstance():Fire(PetConst.OPEN_PET_SUPPORT_RANK_VIEW)
- elseif param_list[1] == BeachConst.GiftTagStr then
- local role_id = tonumber(param_list[2])
- if role_id == RoleManager.Instance.mainRoleInfo.role_id then
- Message.show("不能给自己投票哦")
- return
- end
-
- local num = 0
- local data = BeachModel:GetInstance():GetMyInfo( )
- if data then
- num = data.vote_times or 0
- end
- if num > 0 then
- local name_str = GetCSLongName( param_list[3], param_list[4] )
- BeachModel:GetInstance():VoteToOher(name_str,role_id)
- else
- BeachModel:GetInstance():Fire(BeachConst.OPEN_BUY_VOTE)
- end
-
- elseif param_list[1] == "dunManyTeam" then --加入队伍
- local is_aotu_ready = DunManyModel:getInstance():GetAotoReadyState()
- DunManyModel:getInstance():Fire(DunManyModel.REQUEST_CCMD_EVENT,21503,param_list[2],param_list[3],0,is_aotu_ready and 1 or 0)
- elseif param_list[1] == "dunManyGuardianTeam" then --加入绝地守卫队伍
- if tonumber(param_list[4]) == 1 then
- local data = {
- dun_type = BaseDungeonModel.DUN_TYPE.GuardianThree,
- team_id = param_list[2],
- dun_id = param_list[3],
- }
- DunManyModel.Instance:Fire(DunManyModel.OPEN_PASSWORD_VIEW, data)
- else
- local is_aotu_ready = DunManyModel:getInstance():GetAotoReadyState()
- DunManyModel:getInstance():Fire(DunManyModel.REQUEST_CCMD_EVENT,21503,param_list[2],param_list[3],0,is_aotu_ready and 1 or 0)
- end
- elseif param_list[1] == "guild_rec" then --公会招募
- local main_role = RoleManager.Instance.mainRoleInfo
- if main_role.guild_id ~= 0 then
- Message.show("您已经有社团了!")
- else
- GuildModel:getInstance():Fire(GuildModel.ApplyJoinGuildEvt, param_list[2])
- end
- elseif param_list[1] == "firstrecharge" then --首充
- local server_info = RechargeActivityModel:getInstance():GetFirstRechargeInfo()
- if server_info and server_info.open == 0 then
- OpenFun.Open(450,1)
- else
- local is_get_over = false--是否已经领完
- for i,v in ipairs(server_info.product_list) do
- if v.state ~= 2 then
- is_get_over = false
- break
- else
- is_get_over = v.state == 2
- end
- end
- if is_get_over then
- OpenFun.Open(450,1)
- else
- RechargeActivityModel:getInstance():Fire(RechargeActivityModel.OPEN_FIRST_RECHARGE_VIEW)
- end
- end
- elseif param_list[1] == "fortuneCat" then -- 招财猫
- local event_data = CustomActivityModel:getInstance():getActList(CustomActivityModel.CustomActBaseType.FORTUNE_CAT)
- if event_data then
- local sub_type = event_data.sub_type
- FortuneCatModel:getInstance():Fire(FortuneCatModel.OPEN_FORTUNE_CAT_VIEW, true, sub_type)
- end
- elseif param_list[1] == "racerank" then --竞榜
- -- GlobalEventSystem:Fire(CompetingListModel.OPEN_COMPETING_LIST_VIEW, tonumber(param_list[3]))
- GlobalEventSystem:Fire(KfActivityModel.OPEN_ACTIVITY_BASE_VIEW,tonumber(param_list[3]),KfActivityModel.TabID.Competing)
- elseif param_list[1] == "kfGroupBuying" then --开服团购活动
- GlobalEventSystem:Fire(KfActivityModel.OPEN_ACTIVITY_BASE_VIEW,nil,KfActivityModel.TabID.GroupBuying)
- elseif param_list[1] == "mobilizationGroupBuying" then
- GlobalEventSystem:Fire(MobilizationModel.OPEN_MOBILIZATION_VIEW,tonumber(param_list[2]),tonumber(param_list[3]))
- elseif param_list[1] == "marble" then
- local need_lv = GetModuleOpenLevel(331,6)
- local cur_lv = RoleManager.Instance.mainRoleInfo.level
- if cur_lv >= need_lv then
- RechargeActivityModel:getInstance():Fire(RechargeActivityModel.OPEN_DAILY_RECHARGE_VIEW,nil,DailyRechargeBaseView.ShowType.Pellet)
- else
- Message.show(string.format( "该功能%d级开启", need_lv ))
- end
- elseif param_list[1] == "mono" then --大富翁
- GlobalEventSystem:Fire(KfActivityModel.OPEN_ACTIVITY_BASE_VIEW,nil,KfActivityModel.TabID.Monopoly)
- elseif param_list[1] == "contract" then --我也要解锁
- local sub_type = tonumber(param_list[2])
- local act_info = CustomActivityModel:getInstance():getOneActRewardList(CustomActivityModel.CustomActBaseType.CONTRACT, sub_type)
- if act_info and RoleManager.Instance.mainRoleInfo.level >= Config.Modulesub["331@74"].open_lv then
- local pay_state = ContractModel:getInstance():GetPayState( sub_type )
- if pay_state == ContractConst.PayState.Lock then
- ContractModel:getInstance():Fire(ContractConst.OPEN_UNLOCK_VIEW,sub_type)
- else
- local id = 33100000 + CustomActivityModel.CustomActBaseType.CONTRACT * 1000 + sub_type
- GlobalEventSystem:Fire(FuliConst.OPEN_FULI_MAIN_VIEW, id)
- end
- else
- Message.show("活动已经结束了哦~")
- end
- elseif param_list[1] == "contractLv" then --我也要升级
- local sub_type = tonumber(param_list[2])
- local act_info = CustomActivityModel:getInstance():getOneActRewardList(CustomActivityModel.CustomActBaseType.CONTRACT, sub_type)
- if act_info and RoleManager.Instance.mainRoleInfo.level >= Config.Modulesub["331@74"].open_lv then
- local id = 33100000 + CustomActivityModel.CustomActBaseType.CONTRACT * 1000 + sub_type
- GlobalEventSystem:Fire(FuliConst.OPEN_FULI_MAIN_VIEW, id)
- else
- Message.show("活动已经结束了哦~")
- end
- elseif param_list[1] == "escortHelp" then --护送协助
- local role_id = RoleManager.Instance.mainRoleInfo.role_id
- if role_id == tonumber(param_list[4]) then
- Message.show("不能协助自己哦~")
- else
- local data = {
- support_cfg_id = 4,
- name = param_list[3],
- support_sid = param_list[2],
- }
- GuildModel:getInstance():Fire(GuildModel.OPEN_GUILD_SUPPORT_GO_VIEW,data)
- end
- elseif param_list[1] == "guild_csgr_enter" then -- 本国团战
- GlobalEventSystem:Fire(EventName.OPEN_ACITVITY_TIP, 410, 1, nil)
- elseif param_list[1] == "bosspass" or param_list[1] == "bosspassLv" then
- --幻魔宝典
- local need_lv = GetModuleOpenLevel(331,104)
- local cur_lv = RoleManager.Instance.mainRoleInfo.level
- if cur_lv >= need_lv then
- OpenFun.Open(331,104)
- else
- Message.show(string.format( "该功能%d级开启", need_lv ))
- end
- elseif param_list[1] == "hopegift" then--臻享礼包
- local sub_type = tonumber(param_list[2])
- local is_open = HopeGiftModel:getInstance():CheckActIsOpen(sub_type)
- if is_open then
- if RoleManager.Instance.mainRoleInfo.vip_flag >= 4 then
- GlobalEventSystem:Fire(EventName.OPEN_VIP_VIEW,3316500 + sub_type)
- else
- Message.show("您的VIP等级不足,请先提升VIP等级!","fault")
- end
- else
- Message.show("您的VIP等级不足,请先提升VIP等级!","fault")
- end
- elseif param_list[1] == "compose" then--合成机回答问题
- if tonumber(param_list[2]) and tonumber(param_list[3]) and tonumber(param_list[4]) then
- OperateActivityModel:getInstance():Fire(OperateActivityModel.REQUEST_INFO, 33292, tonumber(param_list[2]), 1, tonumber(param_list[3]), tonumber(param_list[4]))
- end
- elseif param_list[1] == "recruitFriends" then--招募好友
- local herf_copntent = string.format("<a@addFriend@%s><color=#2CF86F>[添加好友]</color></a>",RoleManager.Instance.mainRoleInfo.role_id)
- local des_cfg = Config.AssistantChat.AddFriendDes
- local random_num = math.random(1, TableSize(des_cfg))
- local add_freiend_des = Config.AssistantChat.AddFriendDes[random_num]
- local content = string.format("%s%s", add_freiend_des, herf_copntent)
- ChatModel:getInstance():Fire(ChatModel.SEND_MSG,ChatModel.CHANNEL_WORLD,content)
- GlobalEventSystem:Fire(EventName.CLOSE_SOCIALITY_VIEW)
- GlobalEventSystem:Fire(EventName.OPEN_CHAT_VIEW,ChatModel.CHANNEL_WORLD)
- elseif param_list[1] == "assistDoMainTask" then--小助手聊天前往做主线
- GlobalEventSystem:Fire(EventName.CLOSE_SOCIALITY_VIEW)
- GlobalEventSystem:Fire(EventName.FORCE_TO_DO_TASK, true, true)
- elseif param_list[1] == "assistDoDailyTask" then--小助手聊天前往做经验跑环
- GlobalEventSystem:Fire(EventName.CLOSE_SOCIALITY_VIEW)
- TaskModel:getInstance():DoBountyTask()
- elseif param_list[1] == "assistDoGuildTask" then--小助手聊天前往做社团跑环
- GlobalEventSystem:Fire(EventName.CLOSE_SOCIALITY_VIEW)
- TaskModel:getInstance():DoGuildTask()
- elseif param_list[1] == "addFriend" then--添加好友
- local role_id = tonumber(param_list[2])
- if role_id == RoleManager.Instance.mainRoleInfo.role_id then
- Message.show("不能添加自己为好友")
- elseif SocialityModel:getInstance():IsRelaviveType(role_id, Config.ConfigSocial.RelativeType.friend) then
- Message.show("对方已经是好友了")
- else
- SocialityModel:getInstance():Fire(SocialityModel.REQUEST_CCMD_EVENT, 14003, role_id)
- Message.show("已添加对方为好友")
- end
- elseif param_list[1] == "jumpCapsuleEgg" then -- 龙神宝库
- OpenFun.Open(170,1)
- elseif param_list[1] == "card" then -- 尊享卡
- if VipModel.getInstance():GetVipLevel() < 1 or not GetModuleIsOpen(450, 6) then
- Message.show("功能未开启")
- return
- end
- OpenFun.Open(450,6)
- elseif param_list[1] == "mobilize" then--全民动员
- local subtype = CustomActivityModel:getInstance():getActMinSubType(CustomActivityModel.CustomActBaseType.MOBILIZATION)
- GlobalEventSystem:Fire(MobilizationModel.OPEN_MOBILIZATION_VIEW,subtype)
- elseif param_list[1] == "treasure" then -- 藏宝图
- local event_type = tonumber(param_list[2])
- if event_type == 1 then -- 打开宝图介绍界面
- -- TreasureMapModel:getInstance():Fire(TreasureMapConst.OPEN_DESC_VIEW, true)
- OpenFun.Open(424, 1)
- elseif event_type == 2 then -- 跳转到藏宝图boss位置
- local pos_cfg = Config.Treasuremappos[tonumber(param_list[3])]
- if not pos_cfg then return end
- local pos_data = stringtotable(pos_cfg.pos)
- local scene_id = tonumber(pos_data[1])
- local x = tonumber(pos_data[2]) or 0
- local y = tonumber(pos_data[3]) or 0
- local findVo = FindVo.New()
- findVo.type = FindVo.POINT
- findVo.x = x / SceneObj.LogicRealRatio.x
- findVo.y = y / SceneObj.LogicRealRatio.y
- findVo.sceneId = scene_id
- findVo.call_back = function()
- GlobalEventSystem:Fire(EventName.STARTAUTOFIGHT,false,true)
- end
- local function ok( ... )
- local use_shoe = VipModel:getInstance():CanFreeUseShoe()
- local function find_way_func()
- if SceneManager:getInstance():GetSceneId() ~= findVo.sceneId then -- 场景不同,先切场景
- GlobalEventSystem:Fire(SceneEventType.REQUEST_CHANGE_SCENE, findVo.sceneId, nil, SceneTransType.World)
- else
- GlobalEventSystem:Fire(EventName.FIND, findVo)
- end
- end
- if self.tm_fly_delay_id then
- TimerQuest.CancelQuest(GlobalTimerQuest, self.tm_fly_delay_id)
- self.tm_fly_delay_id = false
- end
- if use_shoe then
- local end_pos = GameMath.GetPosByCeterPoint(findVo.x * SceneObj.LogicRealRatio.x,findVo.y * SceneObj.LogicRealRatio.y, 100)
- local function callback()
- if findVo.sceneId == SceneManager:getInstance():GetSceneId() then
- find_way_func()
- else
- self.tm_fly_delay_id = setTimeout(find_way_func, 0.5)
- end
- end
- GlobalEventSystem:Fire(EventName.USE_FLY_SHOE, findVo.sceneId, end_pos.x, end_pos.y, callback)
- else
- find_way_func()
- end
- end
- local scene_info = SceneManager.Instance:GetSceneInfo(scene_id)
- local name = ""
- if scene_info then
- name = Trim(scene_info.name)
- local ask_str = string.format("即将寻路至 <color=%s>[%s(%d,%d)]</color> 是否确认?",
- ColorUtil.PURPLE_DARK, name, findVo.x, findVo.y)
- Alert.show(ask_str, Alert.Type.Two, ok, nil, "确定", "取消")
- end
- end
- end
- end
- end
-
- function ChuanWenController:goBoss( param_list )
- do return end
- --需要前往boss场景
- local boss_type = tonumber(param_list[5])
- local scene_id = tonumber(param_list[2])
- local boss_id = tonumber(param_list[6])
- local layers
- for k,v in pairs(Config.Bosscfg) do
- if v.scene==scene_id then
- layers = v.layers
- end
- end
-
- if SceneManager.Instance:IsBossPersonScene(scene_id) then
- GlobalEventSystem:Fire(EventName.OPEN_BOSS_VIEW, Config.ConfigBoss.ModuleId.Person ,boss_id)
- return
- end
-
- if boss_id then
- -- BossModel:GetInstance().need_find_pos = Vector2(tonumber(param_list[3])/SceneObj.LogicRealRatio.x
- -- , tonumber(param_list[4])/SceneObj.LogicRealRatio.y)
- end
- end
-
- function ChuanWenController:goBeast(param_list)
- --需要前往幻兽之域
- local boss_id = tonumber(param_list[5])
- local cfg = boss_id and Config.Eudemonsbosscfg[boss_id]
- if cfg then --是boss
- WorldModel:getInstance():Fire(WorldModel.REQUEST_CCMD_EVENT, 47003, WorldModel.BossType.BEAST, boss_id)
- else --其他
- --随便拿一个bossid进入场景,前往坐标点
- for i, v in pairs(Config.Eudemonsbosscfg) do
- if v.scene == tonumber(param_list[2]) then
- boss_id = i
- break
- end
- end
- WorldModel:getInstance():Fire(WorldModel.REQUEST_CCMD_EVENT, 47003, WorldModel.BossType.BEAST, boss_id)
- WorldModel:getInstance().need_find_pos = Vector2(tonumber(param_list[3])/SceneObj.LogicRealRatio.x
- , tonumber(param_list[4])/SceneObj.LogicRealRatio.y)
- end
- end
-
- function ChuanWenController:onBeast(param_list)
- local boss_id = tonumber(param_list[5])
- local cfg = boss_id and Config.Eudemonsbosscfg[boss_id]
- if not cfg then
- WorldModel:getInstance().need_find_pos = Vector2(tonumber(param_list[3])/SceneObj.LogicRealRatio.x,
- tonumber(param_list[4])/SceneObj.LogicRealRatio.y)
- end
- WorldModel:getInstance():Fire(WorldModel.ON_FIND_MONSTER, boss_id)
- end
-
- --是否能够前往该场景
- function ChuanWenController:CanEnterScene(desc)
- local list = Split(desc, "@")
- for i, v in ipairs(list) do
- if v == "scene3" then
- local scene_id = tonumber(list[i+1])
- if SceneManager.Instance:IsWorldBeastScene(scene_id) then --前往幻兽之域
- --不满足进入该场景条件
- local layer = SceneManager.Instance:IsWorldBeastScene(scene_id)
- local lv, vip = WorldModel:getInstance():GetBeastCondition(layer)
- if RoleManager.Instance.mainRoleInfo.level < lv or RoleManager.Instance.mainRoleInfo.vip_flag < vip then
- return false
- end
- end
- end
- end
- return true
- end
|