diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/item_show.py | 29 | ||||
-rw-r--r-- | tools/monster-killing-values.py | 61 | ||||
-rw-r--r-- | tools/showmagicspells.py | 64 | ||||
-rwxr-xr-x | tools/showvars.py | 81 |
4 files changed, 235 insertions, 0 deletions
diff --git a/tools/item_show.py b/tools/item_show.py new file mode 100644 index 00000000..1e14e773 --- /dev/null +++ b/tools/item_show.py @@ -0,0 +1,29 @@ +#!/usr/bin/python +#has to be executed in place, this folder + + +def make_items(): + items_file=open("../db/item_db.txt","r") + lines=items_file.readlines() + items_file.close(); + + items=[] + for line in lines: + array=line.split(",") + if len(array)>6 and not line.startswith("#") and not line.startswith("//"): + id=array[0] + name=array[1] + mbonus=array[10] + try: + int(mbonus) + items+=[(int(mbonus),name)] + except: + print line + return items; + +global_items=[] +global_items=make_items(); + +global_items.sort() +for item in global_items: + print item diff --git a/tools/monster-killing-values.py b/tools/monster-killing-values.py new file mode 100644 index 00000000..9578804e --- /dev/null +++ b/tools/monster-killing-values.py @@ -0,0 +1,61 @@ +#!/usr/bin/python +#has to be executed in place, this folder + + +def make_items(): + items_file=open("../db/item_db.txt","r") + lines=items_file.readlines() + items_file.close(); + + items=[] + for line in lines: + array=line.split(",") + if len(array)>6 and not line.startswith("#") and not line.startswith("//"): + id=array[0] + sellprize=array[5] + try: + int(sellprize) + items+=[(int(id),int(sellprize))] + except: + print line + return items; + +def getvalueof(id): + for x in global_items: + if x[0]==id: + return int(x[1]) + return 0 + +def make_mobs(): + mobfile=open("../db/mob_db.txt","r") + lines=mobfile.readlines() + mobfile.close(); + + mobs=[] + for line in lines: + array=line.split(",") + if len(array)>6 and not line.startswith("#"): + id=array[0] + name=array[1] + print name + print array[29:44] + sellprize = 0 + #hardcoded -.- fix it ! + sellprize += getvalueof(int(array[29]))*int(array[30]) + sellprize += getvalueof(int(array[31]))*int(array[32]) + sellprize += getvalueof(int(array[33]))*int(array[34]) + sellprize += getvalueof(int(array[35]))*int(array[36]) + sellprize += getvalueof(int(array[37]))*int(array[38]) + sellprize += getvalueof(int(array[39]))*int(array[40]) + sellprize += getvalueof(int(array[41]))*int(array[32]) + sellprize += getvalueof(int(array[43]))*int(array[44]) + mobs+=[(name,sellprize/1000.0)] + return mobs + +global_items=[] +global_items=make_items(); + +mobs=make_mobs(); + +for mob in mobs: + print mob[1],mob[0] diff --git a/tools/showmagicspells.py b/tools/showmagicspells.py new file mode 100644 index 00000000..6909a724 --- /dev/null +++ b/tools/showmagicspells.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python +# +# showmagicspells.py +# +# Copyright 2010 Stefan Beller +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1301, USA. + +def handle_lines(lines): + def getInfo(line, info): + sp = line.split(" ") + if info in sp: + pos = sp.index(info) + return sp[pos+2].strip() + return "" + + firstline = lines[0].split(" ") + pos=firstline.index("SPELL") + name= firstline[pos+1] + level = getInfo(lines[1],"level") + school = getInfo(lines[2],"school") + + #print name,level,school + if not school in spells: + spells[school]=[] + spells[school]+=[(name,level,school)] + +def main(): + fname = "../conf/magic.conf.template" + f=open(fname, "r"); + lines=f.readlines(); + f.close(); + + while lines : + line=lines[0] + if line.startswith("SPELL"): + handle_lines(lines); + if line.startswith("# LOCAL SPELL"): + handle_lines(lines); + if line.startswith("# SPELL"): + handle_lines(lines); + del lines[0] + return 0 + +spells={} +main() +for x in spells: + print x + for y in spells[x]: + print "\t",y[1],y[0]; + diff --git a/tools/showvars.py b/tools/showvars.py new file mode 100755 index 00000000..4b3d0cb4 --- /dev/null +++ b/tools/showvars.py @@ -0,0 +1,81 @@ +#!/usr/bin/python + + +# must be started in the npc dir + +import os +import re +from optparse import OptionParser +parser = OptionParser() +parser.add_option("-v", "--verbose", dest="verbose", action="store_true", default=False, + help="show the occurrences of that var", metavar="FILE") + +(options, args) = parser.parse_args() + +def handleFile(fname): + f = open(fname) + lines = f.readlines(); + f.close() + for l in lines: + #remove comments + line = l.split(r"//")[0] + + sp = line.split() + + # no set command? + if not "set" in sp: + continue + + # ignore those lines printing messages + if 'mes "' in line: + continue + + #ignore anything before the "set" command: + sp = sp[sp.index("set")+1:] + line = "".join(sp) + endpos = line.find(",") + + #check for comma + if endpos>0: + #ok its a oneliner, the comma is in the same line: + varname = line[0:endpos].strip() + if varname.startswith("@"): + continue + if varname.startswith("$"): + continue + if varname in allvars: + if not fname in allvars[varname]: + allvars[varname] += [fname] + else: + allvars[varname] = [fname] + else: + # ok error, you need to check manually: + print "\tline:\t",line + +allvars = {} + +print "please check manully for vars in here:" +os.chdir(".."+os.sep+"npc") +for tpl in os.walk("."): + for fname in tpl[2]: + handleFile(tpl[0]+os.sep+fname) + +# now check if the variable is not in npc/functions/clear_vars.txt, if so remove it +checkstring = "." + os.sep + "functions" + os.sep + "clear_vars.txt" +rm = [] +for var in allvars: + if checkstring in allvars[var]: + rm += [var] + +#now really remove these vars +for var in rm: + del allvars[var] + +print "These variables are valid variables of the scripts:" +for var in allvars: + print "\t",var + if options.verbose: + for fname in allvars[var]: + print "\t","\t", fname + +print "number of vars:", len(allvars) |