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