Esempio n. 1
0
    def process(self):
        self.__swf_params = {}

        args = self.getUrlArgs('/bossscenarioanim/')
        try:
            stageid = int(args.get(0))
            battlekey = urllib.unquote(args.get(1))[:32]
            self.setAreaID(stageid)
        except:
            raise CabaretError(u'引数が不正です', CabaretError.Code.ILLEGAL_ARGS)

        stagemaster = self.getAreaMaster()
        if not isinstance(
                stagemaster,
                EventScoutStageMaster) or stagemaster.bossscenario < 1:
            # イベントじゃないとダメです.
            self.appRedirect(UrlMaker.bossresult(stageid, battlekey))
            return

        eventmaster = self.callFunctionByFromPage('getEventMaster')
        if eventmaster is None or stagemaster.eventid != eventmaster.id:
            self.callFunctionByFromPage('redirectToScoutTop')
            return

        # 演出のパラメータ.
        url = UrlMaker.bossresult(stageid, battlekey)
        effectpath = UrlMaker.event_scenario()
        dataUrl = self.makeAppLinkUrlEffectParamGet(
            'eventscenario/{}/normal{}'.format(stagemaster.bossscenario, url))
        dataUrl = self.addFromPageToUrlQuery(dataUrl)
        self.appRedirectToEffect2(effectpath, dataUrl)
Esempio n. 2
0
    def process(self):

        model_mgr = self.getModelMgr()
        cur_eventmaster = self.getCurrentRaidEvent()
        v_player = self.getViewerPlayer()
        uid = v_player.id

        # OP閲覧フラグを立てる.
        config = BackendApi.get_current_raideventconfig(
            model_mgr, using=settings.DB_READONLY)
        flagrecord = self.getCurrentRaidFlagRecord()
        if flagrecord is None or not (config.starttime <= flagrecord.opvtime <
                                      config.endtime):
            flagrecord = BackendApi.update_raideventflagrecord(
                model_mgr, cur_eventmaster.id, uid, OSAUtil.get_now())
            model_mgr.set_got_models([flagrecord])

        if BackendApi.check_raidevent_lead_bigboss(model_mgr,
                                                   uid,
                                                   cur_eventmaster.id,
                                                   using=settings.DB_READONLY):
            url = UrlMaker.raidevent_bigboss()
        else:
            url = UrlMaker.raidevent_explain(cur_eventmaster.id)

        if cur_eventmaster.op:
            # 演出のパラメータ.
            effectpath = UrlMaker.event_scenario()
            dataUrl = self.makeAppLinkUrlEffectParamGet(
                'eventscenario/%d/normal%s' % (cur_eventmaster.op, url))
            self.appRedirectToEffect2(effectpath, dataUrl)
        else:
            # 演出なし.
            self.appRedirect(self.makeAppLinkUrlRedirect(url))
Esempio n. 3
0
    def process(self):

        model_mgr = self.getModelMgr()
        cur_eventmaster = self.getCurrentBattleEvent()
        v_player = self.getViewerPlayer()
        uid = v_player.id

        # OP閲覧フラグを立てる.
        if BackendApi.check_battleevent_lead_opening(
                model_mgr, uid, cur_eventmaster.id,
                using=settings.DB_READONLY):
            flagrecord = BackendApi.update_battleevent_flagrecord(
                cur_eventmaster.id, uid, OSAUtil.get_now())
            model_mgr.set_got_models([flagrecord])
            # ここで一度とっておく.
            BackendApi.get_battleeventpresent_pointdata(
                model_mgr, uid, cur_eventmaster.id)

        url = UrlMaker.battleevent_explain(cur_eventmaster.id)
        if cur_eventmaster.op:
            # 演出のパラメータ.
            effectpath = UrlMaker.event_scenario()
            dataUrl = self.makeAppLinkUrlEffectParamGet(
                'eventscenario/%d/normal%s' % (cur_eventmaster.op, url))
            self.appRedirectToEffect2(effectpath, dataUrl)
        else:
            # 演出なし.
            self.appRedirect(self.makeAppLinkUrlRedirect(url))
Esempio n. 4
0
 def process(self):
     
     now = OSAUtil.get_now()
     
     model_mgr = self.getModelMgr()
     config = BackendApi.get_current_raideventconfig(model_mgr, using=settings.DB_READONLY)
     cur_eventmaster = None
     if config.mid and config.endtime < now:
         cur_eventmaster = BackendApi.get_raideventmaster(model_mgr, config.mid, using=settings.DB_READONLY)
     
     if cur_eventmaster is None:
         self.appRedirect(self.makeAppLinkUrlRedirect(UrlMaker.mypage()))
         return
     
     v_player = self.getViewerPlayer()
     uid = v_player.id
     
     # EP閲覧フラグを立てる.
     if BackendApi.check_raidevent_lead_epilogue(model_mgr, uid, cur_eventmaster.id, using=settings.DB_READONLY):
         flagrecord = BackendApi.update_raideventflagrecord(model_mgr, cur_eventmaster.id, uid, epvtime=now)
         model_mgr.set_got_models([flagrecord])
     
     url = UrlMaker.raidevent_top(cur_eventmaster.id)
     if cur_eventmaster.ed:
         # 演出のパラメータ.
         effectpath = UrlMaker.event_scenario()
         dataUrl = self.makeAppLinkUrlEffectParamGet('eventscenario/%d/last%s' % (cur_eventmaster.ed, url))
         self.appRedirectToEffect2(effectpath, dataUrl)
     else:
         # 演出なし.
         self.appRedirect(self.makeAppLinkUrlRedirect(url))
Esempio n. 5
0
    def process(self):
        model_mgr = self.getModelMgr()
        config = BackendApi.get_current_produce_event_config(
            model_mgr, using=settings.DB_READONLY)

        if config.mid == 0 or not config.is_open_epilogue(OSAUtil.get_now()):
            self.appRedirect(self.makeAppLinkUrlRedirect(UrlMaker.mypage()))
            return

        produce_event_master = config.get_produce_event_master(model_mgr)
        if produce_event_master is None:
            self.appRedirect(self.makeAppLinkUrlRedirect(UrlMaker.mypage()))
            return

        uid = self.getViewerPlayer().id
        if BackendApi.check_produceevent_lead_epilogue(
                model_mgr, uid, produce_event_master.id):
            flagrecord = BackendApi.update_produceevenflagrecord(
                produce_event_master.id, uid, epvtime=OSAUtil.get_now())
            model_mgr.set_got_models([flagrecord])

        url = UrlMaker.produceevent_top(produce_event_master.id)
        if produce_event_master.ed:
            # 演出のパラメータ.
            effectpath = UrlMaker.event_scenario()
            dataUrl = self.makeAppLinkUrlEffectParamGet(
                'eventscenario/%d/last%s' % (produce_event_master.ed, url))
            self.appRedirectToEffect2(effectpath, dataUrl)
        else:
            # 演出なし.
            self.appRedirect(self.makeAppLinkUrlRedirect(url))
Esempio n. 6
0
 def process(self):
     
     model_mgr = self.getModelMgr()
     config = BackendApi.get_current_produce_event_config(model_mgr, using=settings.DB_READONLY)
     cur_eventmaster = config.get_produce_event_master(model_mgr, using=settings.DB_READONLY)
     uid = self.getViewerPlayer().id
     
     # OP閲覧フラグを立てる.
     flagrecord = self.getCurrentProduceFlagRecord()
     if BackendApi.check_produceevent_lead_opening(model_mgr, uid, cur_eventmaster.id):
         if flagrecord is None or not (config.starttime <= flagrecord.opvtime < config.endtime):
             flagrecord = BackendApi.update_produceevenflagrecord(config.mid, uid, opvtime=OSAUtil.get_now())
         model_mgr.set_got_models([flagrecord])
     
     url = UrlMaker.produceevent_explain(cur_eventmaster.id)
     if cur_eventmaster.op:
         # 演出のパラメータ.
         effectpath = UrlMaker.event_scenario()
         dataUrl = self.makeAppLinkUrlEffectParamGet('eventscenario/%d/normal%s' % (cur_eventmaster.op, url))
         self.appRedirectToEffect2(effectpath, dataUrl)
     else:
         # 演出なし.
         self.appRedirect(self.makeAppLinkUrlRedirect(url))