예제 #1
0
    def spellTarget(self, skillID, targetID):
        """
		defined.
		对一个目标entity施放一个技能
		"""
        DEBUG_MSG("Spell::spellTarget(%i):skillID=%i, targetID=%i" %
                  (self.id, skillID, targetID))

        skill = skills.getSkill(skillID)
        if skill is None:
            ERROR_MSG("Spell::spellTarget(%i):skillID=%i not found" %
                      (self.id, skillID))
            return

        target = KBEngine.entities.get(targetID)
        if target is None:
            ERROR_MSG("Spell::spellTarget(%i):targetID=%i not found" %
                      (self.id, targetID))
            return

        scobject = SCObject.createSCEntity(target)
        ret = skill.canUse(self, scobject)
        if ret != GlobalConst.GC_OK:
            ERROR_MSG(
                "Spell::spellTarget(%i): cannot spell skillID=%i, targetID=%i, code=%i"
                % (self.id, skillID, targetID, ret))
            return

        skill.use(self, scobject)
예제 #2
0
	def spellSkillRequest(self, caster, targetID):
		"""
		virtual method.
		技能释放请求
		"""
		target = KBEngine.entities.get(targetID)
		skillID = self.skillitem[0]
		if target is None:
			ERROR_MSG("Spell::spellTarget(%i):targetID=%i not found" % (caster.id, targetID))
			caster.client.onSpellSkillResponse(GlobalConst.GC_SKILL_ENTITY_NOT_EXIST, skillID)
			return
		
		scobject = SCObject.createSCEntity(target)
		self.scobject = scobject
		ret = self.canUse(caster, scobject)
		if ret != GlobalConst.GC_OK:
			ERROR_MSG("Spell::spellTarget(%i): cannot spell skillID=%i, targetID=%i, code=%i" % (caster.id, self.skillitem[0], targetID, ret))
			caster.client.onSpellSkillResponse(ret, skillID)
			return
		self.setCD()
		caster.skillCDDic[skillID] = self.skillitem[5]
		caster.allClients.onSpellSkillResponse(GlobalConst.GC_OK, skillID)
		#施法前摇定时
		spellTime = self.getspelltime()
		if(spellTime<0.05):
			self.use(caster, scobject)
			return
		caster.skillSpellDic.clear()
		caster.skillSpellDic[skillID] = spellTime
예제 #3
0
    def spellTarget(self, skillID, targetID):
        """
		defined.
		对一个目标entity施放一个技能
		"""
        DEBUG_MSG("Spell::spellTarget(%i):skillID=%i, targetID=%i" % (self.id, skillID, targetID))

        skill = skills.getSkill(skillID)
        if skill is None:
            ERROR_MSG("Spell::spellTarget(%i):skillID=%i not found" % (self.id, skillID))
            return

        target = KBEngine.entities.get(targetID)
        if target is None:
            ERROR_MSG("Spell::spellTarget(%i):targetID=%i not found" % (self.id, targetID))
            return

        scobject = SCObject.createSCEntity(target)
        ret = skill.canUse(self, scobject)
        if ret != GlobalConst.GC_OK:
            ERROR_MSG(
                "Spell::spellTarget(%i): cannot spell skillID=%i, targetID=%i, code=%i"
                % (self.id, skillID, targetID, ret)
            )
            return

        skill.use(self, scobject)
예제 #4
0
파일: Spell.py 프로젝트: mengtest/sFrame
    def spellTarget(self, skillID, targetID):
        """
		defined.
		对一个目标entity施放一个技能
		"""
        DEBUG_MSG("Spell::spellTarget(%i):skillID=%i, targetID=%i" %
                  (self.id, skillID, targetID))

        #skill = skills.getSkill(skillID)
        #if skill is None:
        #	ERROR_MSG("Spell::spellTarget(%i):skillID=%i not found" % (self.id, skillID))
        #	return

        target = KBEngine.entities.get(targetID)
        if target is None:
            ERROR_MSG("Spell::spellTarget(%i):targetID=%i not found" %
                      (self.id, targetID))
            return

        scobject = SCObject.createSCEntity(target)
        ret = self.canUse(skillID, self, scobject)
        if ret != GlobalConst.GC_OK:
            ERROR_MSG(
                "Spell::spellTarget(%i): cannot spell skillID=%i, targetID=%i, code=%i"
                % (self.id, skillID, targetID, ret))
            return
        #自身激发技能效果
        self.use(skillID, self, scobject)
        #将施法行为告知AOI范围内其他玩家
        self.otherClients.onSpellTarget(skillID, targetID)