hxp
5 天以前 388823edfe6308cba6f76ca6dc4f20022c5cb2be
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#!/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