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