hzr
2025-04-21 2d9d117228fd281aeeb0f3c173f538744f8dffd7
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
#!/usr/bin/python
# -*- coding: GBK -*-
 
##@package SetSkillLV
# ÉèÖü¼Äܵȼ¶
#
# @author Mark
# @date 2010-4-23
# @version 1.0
#
# ÐÞ¸Äʱ¼ä ÐÞ¸ÄÈË ÐÞ¸ÄÄÚÈÝ
# VER = "2010-05-12 18:30" zhengyang Ìí¼Ó×¢ÊÍ
#
# Ä£¿éÏêϸ˵Ã÷
#ÉèÖü¼Äܵȼ¶
#---------------------------------------------------------------------
#µ¼Èë
import Lang
import GameWorld
#---------------------------------------------------------------------
#È«¾Ö±äÁ¿
#---------------------------------------------------------------------
 
#---------------------------------------------------------------------
#Âß¼­ÊµÏÖ
## ÉèÖü¼Äܵȼ¶
#  @param curPlayer µ±Ç°Íæ¼Ò
#  @param playerList ²ÎÊýÁбí [skillID skillLV]
#  @return None
#  @remarks º¯ÊýÏêϸ˵Ã÷.
def OnExec(curPlayer,playerList):
    if len(playerList) != 2:
        GameWorld.DebugAnswer(curPlayer, Lang.GBText("ÃüÁî²ÎÊý²»ÕýÈ· ²ÎÊý:¼¼ÄÜÀàÐÍID,¼¼Äܵȼ¶"))
        return
    
    skillID = playerList[0]
    skillLV = playerList[1]
    
    curSkillData = GameWorld.GetGameData().FindSkillByType( skillID , skillLV )
    
    if not curSkillData:
        GameWorld.DebugAnswer(curPlayer,  "ÎÞЧ¼¼ÄÜÀàÐÍID = %s"%( skillID ) )
        return
    
    skillManger = curPlayer.GetSkillManager()
    
    skillDataTypeID = curSkillData.GetSkillTypeID()
    skillDataID = curSkillData.GetSkillID()
    
    learnSkill = skillManger.FindSkillBySkillTypeID( skillDataTypeID )
    
    #ûѧ¹ýÖ±½Óѧ
    if not learnSkill:
        skillManger.LVUPSkillByID( skillDataID )
        return
    
    skillDataLV = curSkillData.GetSkillLV()
    learnSkillLV = learnSkill.GetSkillLV()
    
    #Éý¼¶
    if learnSkillLV < skillDataLV:
        for i in range( skillDataLV - learnSkillLV ):
            skillManger.LVUpSkillBySkillTypeID( skillDataTypeID )
        
        return
    
    learnSkillList = [] 
    #½µ¼¶
    for i in range( skillManger.GetSkillCount() ):
        hasSkill = skillManger.GetSkillByIndex(i)
        hasSkillID = hasSkill.GetSkillID()
        
        #Õâ¸öÊÇҪѧµÄ£¬Ìæ»»
        if hasSkill.GetSkillTypeID() == skillDataTypeID:
            hasSkillID = skillID
            
        if hasSkillID in learnSkillList:
            continue
        
        learnSkillList.append( hasSkillID )
    
    #ÖØÖü¼ÄÜ
    skillManger.ResetSkill()
    
    #Éý¼¶
    for skillID in learnSkillList:
        skillManger.LVUPSkillByID( skillID )