#!/usr/bin/python # -*- coding: GBK -*- # ---------------------------------------------------------------------------------------------------- # # ---------------------------------------------------------------------------------------------------- ##@package Item_SkillBook # @todo: ʹÓü¼ÄÜÊéѧϰ¼¼ÄÜ # # @author zb # @date 2010-05-26 # @version 1.4 # # ÐÞ¸Äʱ¼ä ÐÞ¸ÄÈË ÐÞ¸ÄÄÚÈÝ # @change: "2013-03-26 15:00" wdb ѧϰ¼¼ÄÜÐÞ¸Ä # @change: "2013-04-17 20:35" Alee ±»¶¯¼¼ÄÜÖ±½ÓÌí¼ÓBUFF # @change: "2013-10-14 13:30" hxp ÐÞ¸ÄʹÓü¼ÄÜÊémark # @change: "2016-03-24 17:00" hxp ¼¼ÄÜËãÕ½¶·Á¦ #------------------------------------------------------------------------------ """Version = 2016-03-24 17:00""" #--------------------------------------------------------------------- import PlayerControl import GameWorld import SkillShell import ItemCommon import DataRecordPack #--------------------------------------------------------------------- #È«¾Ö±äÁ¿ #--------------------------------------------------------------------- #--------------------------------------------------------------------- ## ʹÓü¼ÄÜÊé # @param curPlayer µ±Ç°Íæ¼Ò # @param curRoleItem µ±Ç°Ö÷½ÇʹÓõÄÎïÆ· # @param tick µ±Ç°Ê±¼ä # @return True or None ·µ»ØÖµÎªÊÇ·ñʹÓóɹ¦(Íâ²ãÍ¨ÖªÌØÐ§) # @remarks ¼¼ÄÜÊéЧ¹û1µÄAֵΪ¼¼ÄÜtypeID£¬Ð§¹û2µÄAֵΪ»õ±ÒÀàÐÍ£¬BֵΪ»õ±ÒÊýÁ¿ def UseItem(curPlayer, curRoleItem, tick): return PlayerUseSkillBook(curPlayer, curRoleItem, tick) #--------------------------------------------------------------------- ## Íæ¼ÒʹÓü¼ÄÜÊé # @param curPlayer µ±Ç°Íæ¼Ò # @param curItem µ±Ç°ÎïÆ· # @param tick µ±Ç°Ê±¼ä # @return None or True # @remarks def PlayerUseSkillBook( curPlayer, curItem, tick ): skillManager = curPlayer.GetSkillManager() #Ч¹û1µÄAֵΪ¼¼ÄÜtypeID curEffect = curItem.GetEffectByIndex(0) skillTypeID = curEffect.GetEffectValue(0) #ѧϰµÄ¼¼ÄÜ bookSkill = GameWorld.GetGameData().FindSkillByType(skillTypeID,1) if bookSkill == None: GameWorld.Log("ѧϰ¼¼ÄÜÊéʧ°Ü,Î޴˼¼ÄÜ = %s"%(skillTypeID) , curPlayer.GetPlayerID()) return #¼¼ÄÜÊé¼ì²é if not __CheckSkillBook(curPlayer, curItem , bookSkill, skillTypeID): return GameWorld.DebugLog("¼¼ÄÜÊéѧϰ¼¼ÄÜ: skillTypeID=%s,name=%s" % (skillTypeID, bookSkill.GetSkillName())) #ѧϰм¼ÄÜ skillManager.LVUpSkillBySkillTypeID(skillTypeID) PlayerControl.NotifyCode(curPlayer, "Skill_andyshao_31379", [skillTypeID]) DataRecordPack.DR_LearnORUPSkill(curPlayer, skillTypeID, 0) ItemCommon.DelItem(curPlayer, curItem, 1, True, "SkillBook", {"SkillID":skillTypeID}) PlayerControl.PlayerControl(curPlayer).RefreshSkillFightPowerEx(skillTypeID, 0) return True #--------------------------------------------------------------------- ## ¼ì²éʹÓü¼ÄÜÊéÌõ¼þ(²ÎÊý -> µ±Ç°Íæ¼Ò,µ±Ç°ÎïÆ·,¼¼ÄÜÊé¼¼ÄÜ) # @param curPlayer µ±Ç°Íæ¼Ò # @param curItem µ±Ç°ÎïÆ· # @param skill ¼¼ÄÜÊé¼¼ÄÜ # @param skillTypeID ¼¼ÄÜID # @return False or True # @remarks def __CheckSkillBook(curPlayer, curItem, skillData, skillTypeID): #ÒѾ­¼¤»îÁ˵ļ¼ÄÜÎÞ·¨ÔÙ´ÎʹÓü¼ÄÜÊé if curPlayer.GetSkillManager().FindSkillBySkillTypeID(skillTypeID): #Skill_andyshao_0Ìæ»»ÎªGeRen_chenxin_739689 PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_739689") return False #ѧϰÌõ¼þ¼ì²é if not SkillShell.CheckLearnSkillCondition(curPlayer, skillData): return False #ѧϰ¼¼ÄÜËùÐè»õ±ÒÀàÐÍ¡¢»õ±ÒÊýÁ¿ curEffect = curItem.GetEffectByIndex(1) skillLVNeedMoneyType = curEffect.GetEffectValue(0) skillLVNeedMoneyCount = curEffect.GetEffectValue(1) if skillLVNeedMoneyCount > 0: #¸¶Ç® if not PlayerControl.PayMoney(curPlayer, skillLVNeedMoneyType, skillLVNeedMoneyCount): return False return True #--------------------------------------------------------------------- ## ¸øÓè¿Í»§¶ËDEBUGÌáʾ # @param curPlayer µ±Ç°Íæ¼Ò # @param curItem µ±Ç°ÎïÆ· # @param skill ¼¼ÄÜÊé¼¼ÄÜ # @return False or True # @remarks ÌáʾÔÚ¿Í»§¶ËµÄdebugƵµÀÉÏÏÔʾ def Log( curPlayer, msg ): GameWorld.DebugAnswer(curPlayer, msg ) return