#!/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:  
 | 
        #¸¶Ç®  
 | 
        skillLVNeedMoneyType = PlayerControl.ChangeMoneyType(curPlayer, skillLVNeedMoneyType)  
 | 
        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  
 |