#!/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 )  
 | 
          
 | 
      
 | 
     
 |