Proto Sortierer - by Max Chri

03/26/2016 14:45 MaxChri#1
Proto Sortierer




Kleines Release, das mal ein wenig Ordnung in die schlampigen Resultate
von Webzen bringt. Und zwar sortiert dieses Tool eure item_names,
item_proto, mob_names und mob_proto.


Um die gewünschten Dateien zu sortieren, müsst ihr sie in das
gleiche Verzeichnis verschieben, indem sich der Proto Sortierer
befindet.


Da teilweise über 15000 Berechnungen (je nach Größe eurer Protos)
kalkuliert werden, kann der Vorgang ein paar Sekunden in Anspruch nehmen.


Im Download befinden sich zwei Test-Protos, mit denen ihr
euch schnell vertraut machen könnt und die Prozedur des
Tools im Überblick habt.


Die Version 1.0 übernimmt keine Einträge, die z.B mit 110000~110099
beginnen, da es ganz einfach nicht als Zahl, sondern als String gelesen wird.
Solltet ihr es unbedingt wünschen, kann ich diese Funktion in einer weiteren
Version ergänzen.

[Only registered and activated users can see links. Click Here To Register...]
03/26/2016 15:45 iStark##2
Wow! It's very good. But i download and say "Virus".
03/26/2016 17:30 .Liron#3
Habe ihn getestet, mein Problem, das er einfach c.a 1200 Zeilen weglässt. Bitte fixen!
03/26/2016 17:34 #Metho#4
Das geht mit Navicat (bzw. SQL) etc. um einiges einfacher eine Tabelle zu sortieren. :)
03/28/2016 15:24 MaxChri#5
Quote:
Originally Posted by Lord Metho View Post
Das geht mit Navicat (bzw. SQL) etc. um einiges einfacher eine Tabelle zu sortieren. :)
Alles klar, auf einen Button zu klicken ist ja dann doch zu schwer... :handsdown:

Quote:
Originally Posted by .Liron View Post
Habe ihn getestet, mein Problem, das er einfach c.a 1200 Zeilen weglässt. Bitte fixen!
Kann nicht sein, check mal die Syntax ob alles stimmt. :D

Quote:
Originally Posted by iStark# View Post
Wow! It's very good. But i download and say "Virus".
Ignore the false positive detections. Maybe the calculation is to complex. :o
03/28/2016 15:49 redryan#6
How can it be complex?

Import the text into a vector, vector.sort and rewrite it.

Thats nothing complex and shouldnt case any false positive at all, unless you used a packer/obsfuscator for it.
03/28/2016 19:54 xCPx#7
Langeweile hat mich mal wieder motiviert:

das ganze als Py Script und unterstützung der ~ Teile sowie mit ner ausführzeit von unter 2 sekunden für alle scripte:

Code:
def SortFile(in_file, out_file):
	tmp_str = ""
	tmp_arr = {}
	try:
		t_f = open(in_file, "r")
		f = t_f.readlines()
		t_f.close()
		o = open(out_file, "w")
	except:
		print "CANNOT OPEN FILES"
		return
	for line in f:
		if(line[-1] != "\n"):
			line +="\n"
		if(line[0] == "\n"):
			line = line[1:]
		
		try:
			i = line.split("\t")
			x = int(i[0])
		except:
			if(line.find("~") != -1):
				tmp_arr[ int(i[0].split("~")[0])] = line
				continue
			print "NOT A int: " + i[0]
			tmp_str = tmp_str + line
			continue
		if(i[0].find("~") == -1):
			tmp_arr[int(i[0])] = line
		
	z = sorted(tmp_arr)
	for y in z:
		print y
		tmp_str = tmp_str + str(tmp_arr[y])		
	o.write(tmp_str[:len(tmp_str) -2])
	o.close()


files = [
	"item_proto.txt",
	"mob_proto.txt",
	"item_names.txt",
	"mob_names.txt"
]

for x in files:
	SortFile(x, x + "_new")
04/01/2016 08:31 Kampfzwerg!#8
wieso ein tool dafür schreiben wenn man das schon
in seinem convert script drin haben kann?
Code:
cur.execute("select * from item_proto order by vnum asc, locale_name asc;")
schöne grüße

Kampfzwerg