Vorgeschichte:
Joa da ich neulich mal meine Scripts wieder angeschaut hatte hab ich mitbekommen, dass ich die Skill Icons einfach nur nooblike dargestellt habe.
Daraufhin hab ich mir ein kleines Script gemacht, welches mir die Icons ausgibt.
Verwenden tut ihr das Script folgendermaßen:
Ihr haut die .pyc Datei einfach in den Lib Ordner und addet dort wo ihr es nutzen wollt das hier:
PHP Code:
import skilladition
SkillAditionByMeLol = skilladition.SkillAditionDialog()
Nun könnt ihr diese Befehle ausführen, welche euch eure gesuchten Werte returnen:
SkillIcon via Index
PHP Code:
SkillAditionByMeLol.GetSkillIcon(index, "Index", grade)
index ist ein integrer, der Skillindex, z.b. Aura ist Skill Index 4, Starker Körper 19 und die ganzen Values eben.
Grade ist der gesuchte Grade.
Ist ein Integrer zwischen 1 und 3(1 wäre z.b. das Icon wenn der Skill noch nicht Meister ist, 2 ist Meister, 3 ist Großmeister/P)
Charakterspezifisches SkillIcon
PHP Code:
SkillAditionByMeLol.GetSkillIcon(count, "Count", grade)
count ist ein Integrer von 0-6 und sind sozusagen eure Skill Slots.
Hierbei spielt es keine Rolle mehr von welcher Rasse/Klasse euer Charakter ist, es ist einfach die Aufzählung der Skills.
Mit grade verhält es sich gleich wie oben.
SkillLevel:
PHP Code:
SkillAditionByMeLol.GetSkillLevel(count)
Hierbei wird der aktuelle Skilllevel im gewohnten Format wie auch bei den Commands returned.
Beispiel für diese Commands:
Code:
import skilladition
import chat
SkillAditionByMeLol = skilladition.SkillAditionDialog()
chat.AppendChat(chat.CHAT_TYPE_INFO, str(SkillAditionByMeLol.GetSkillIcon(3, "Count", 2)))
chat.AppendChat(chat.CHAT_TYPE_INFO, str(SkillAditionByMeLol.GetSkillIcon(31, "Index", 2)))
chat.AppendChat(chat.CHAT_TYPE_INFO, str(SkillAditionByMeLol.GetSkillLevel(3)))
returned:
War nurn Mini Script, also have fun mit, fangen halt nur Clientmodder was mit an

Hatten mich heute auch 2 danach gefragt, sonst würde ich sonen Mini Teil nichtmal releasen^^
Edit:
Source:
PHP Code:
import ui
import player
import skill
import net
import pack
import app
import dbg
import chat
class SkillAditionDialog(ui.Window):
def __init__(self):
ui.Window.__init__(self)
self.AddSkillIcons()
def __del__(self):
ui.Window.__del__(self)
def AddSkillIcons(self):
self.SkillList = []
try:
handle = app.OpenTextFile('locale/de/skilldesc.txt')
count = app.GetTextFileLineCount(handle)
except IOError:
dbg.LogBox('Load Skilldesc Error')
app.Abort()
SkillCount = 0
for i in xrange(count):
line = app.GetTextFileLine(handle, i)
if (str(line).count('\t') >= 21):
SkillData = str(line).split('\t')
SkillName = str(SkillData[2])
SkillIconName = str(SkillData[12])
SkillIndex = str(SkillData[0])
SkillData = {'NAME': SkillName,
'ICON': SkillIconName,
'INDEX': SkillIndex,
'COUNT': SkillCount}
self.SkillList.append(SkillData)
SkillCount += 1
RaceGroupInfo = self.GetClass()
Class = str(RaceGroupInfo).split('/')[0]
group = str(RaceGroupInfo).split('/')[1]
if (Class == 'Warrior'):
SkillIndex = 1
if (int(group) == 2):
SkillIndex = 16
elif (Class == 'Assassin'):
SkillIndex = 31
if (int(group) == 2):
SkillIndex = 46
elif (Class == 'Sura'):
SkillIndex = 61
if (int(group) == 2):
SkillIndex = 76
elif (Class == 'Shaman'):
SkillIndex = 91
if (int(group) == 2):
SkillIndex = 106
self.SkillIconIndex = []
Count = 0
for SkillValue in xrange(self.NewSkillsEnable()):
Skillname = skill.GetSkillName(int(SkillIndex))
SkillIndex += 1
for Skills in self.SkillList:
SkillNameList = Skills['NAME']
if (str(Skillname) == str(SkillNameList)):
Count += 1
SkillName = Skills['NAME']
SkillIcon = Skills['ICON']
SkillIndexAppend = (SkillIndex - 1)
PrivateSkillData = {'NAME': SkillName,
'ICON': SkillIcon,
'INDEX': SkillIndexAppend,
'COUNT': Count}
self.SkillIconIndex.append(PrivateSkillData)
def GetSkillIcon(self, index, mode, grade):
if (mode == 'Index'):
for Skills in self.SkillList:
if (index == int(Skills['INDEX'])):
SkillClass = self.GetSkillClass(int(Skills['INDEX']))
return ((('d:/ymir work/ui/skill/' + str(SkillClass).lower()) + '/') + str((((Skills['ICON'] + '_0') + str(grade)) + '.sub')))
elif (mode == 'Count'):
if net.IsConnect():
RaceGroupInfo = self.GetClass()
Class = str(RaceGroupInfo).split('/')[0]
for Skills in self.SkillIconIndex:
if (index == int(Skills['COUNT'])):
return ((('d:/ymir work/ui/skill/' + str(Class).lower()) + '/') + str((((Skills['ICON'] + '_0') + str(grade)) + '.sub')))
else:
return
def GetSkillLevel(self, SearchSkillIndex):
SkillIconLevel = []
for Skill in self.SkillIconIndex:
Skillgrade = player.GetSkillGrade(Skill['COUNT'])
Skilllevel = player.GetSkillLevel(Skill['COUNT'])
SkillIndex = Skill['COUNT']
SkillLevelData = {'GRADE': Skillgrade,
'LEVEL': Skilllevel,
'INDEX': SkillIndex}
SkillIconLevel.append(SkillLevelData)
for SkillData in SkillIconLevel:
SkillLevel = (int(SkillData['LEVEL']) + (int(SkillData['GRADE']) * 10))
SkillIndex = str(SkillData['INDEX'])
if (str(SkillIndex) == str(SearchSkillIndex)):
return int(SkillLevel)
def GetSkillClass(self, index):
try:
handle = app.OpenTextFile('locale/de/skilldesc.txt')
count = app.GetTextFileLineCount(handle)
except IOError:
dbg.LogBox('Load Skilldesc Error')
app.Abort()
for i in xrange(count):
line = app.GetTextFileLine(handle, i)
if (str(line).count('\t') >= 21):
SkillData = str(line).split('\t')
SkillIndex = str(SkillData[0])
SkillClass = str(SkillData[1])
if (int(SkillIndex) == index):
return str(SkillClass).lower()
def GetClass(self):
race = net.GetMainActorRace()
group = net.GetMainActorSkillGroup()
if ((race == 0) or (race == 4)):
return (('Warrior' + '/') + str(group))
elif ((race == 1) or (race == 5)):
return (('Assassin' + '/') + str(group))
elif ((race == 2) or (race == 6)):
return (('Sura' + '/') + str(group))
elif ((race == 3) or (race == 7)):
return (('Shaman' + '/') + str(group))
def NewSkillsEnable(self):
playersettingmodule = pack.Get('playersettingmodule.py')
RaceGroupInfo = self.GetClass()
Class = str(RaceGroupInfo).split('/')[0]
if ((str(playersettingmodule).find('NEW_678TH_SKILL_ENABLE = TRUE') != -1) or ((str(playersettingmodule).count('1, 2, 3, 4, 5, 6,') >= 2) or ((str(Class) == 'Shaman') or (str(Class) == 'Sura')))):
return 6
else:
return 5
MfG DaRealFreak