[Mini Release]Skill Module Adition

01/17/2012 22:06 DaRealFreak#1
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:
[Only registered and activated users can see links. Click Here To Register...]


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(handlei)
            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(selfindexmodegrade):
        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(selfSearchSkillIndex):
        
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(selfindex):
        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(handlei)
            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 

MfG DaRealFreak
01/17/2012 22:11 .Awesoome#2
Hast du toll gemacht Steffi.
Nice Teil.


Wie gehts deiner Hand ?:D
01/17/2012 22:21 [SA]sathack#3
Mh ein Counter, wo der Client zum Server schickt, wie oft man eine Fähigkeit benutzt hat. Währ richtig geil ^-^
01/17/2012 22:27 Zadox`#4
Gute arbeit, danke dir.
01/17/2012 22:29 FailOfLord#5
Verstehe den Funktion nicht pls aufklären .
01/18/2012 15:59 Fear *_*#6
sieht nice aus danke :D