| #!/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 IPY_GameWorld  | 
| import ChConfig  | 
| import PlayerControl  | 
| import GameWorld  | 
| import SkillShell  | 
| import SkillCommon  | 
| import BuffSkill  | 
| import ItemCommon  | 
| import DataRecordPack  | 
| import ShareDefine  | 
| import EventShell  | 
| #---------------------------------------------------------------------  | 
| #È«¾Ö±äÁ¿  | 
| #---------------------------------------------------------------------  | 
|   | 
| #---------------------------------------------------------------------  | 
| ## Ê¹Óü¼ÄÜÊé  | 
| #  @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})  | 
|       | 
|     EventShell.EventRespons_LearnSkill(curPlayer, skillTypeID)  | 
|     #ÊDZ»¶¯¼¼ÄÜÒªÖØË¢ÊôÐÔ  | 
|     #if SkillCommon.isPassiveBuffSkill(bookSkill):  | 
|     #    BuffSkill.DoAddBuff(curPlayer, SkillCommon.GetBuffType(bookSkill), bookSkill, tick, [], curPlayer)  | 
|       | 
|     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  |