summaryrefslogtreecommitdiff
path: root/hercules/code/server/itemdb.py
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-12-29 12:02:21 +0300
committerAndrei Karas <akaras@inbox.ru>2014-12-29 12:02:21 +0300
commit7ee8060460c63f0f4aaae338c99686f38edff2a0 (patch)
tree06b8a5319e986e4015e9cfc38e0091ae97585ca3 /hercules/code/server/itemdb.py
parentfd60b7426c0191d7275272aec604d272fbc3c420 (diff)
downloadtools-7ee8060460c63f0f4aaae338c99686f38edff2a0.tar.gz
tools-7ee8060460c63f0f4aaae338c99686f38edff2a0.tar.bz2
tools-7ee8060460c63f0f4aaae338c99686f38edff2a0.tar.xz
tools-7ee8060460c63f0f4aaae338c99686f38edff2a0.zip
hercules: start adding support for conversion from tmwa data.
Diffstat (limited to 'hercules/code/server/itemdb.py')
-rw-r--r--hercules/code/server/itemdb.py105
1 files changed, 0 insertions, 105 deletions
diff --git a/hercules/code/server/itemdb.py b/hercules/code/server/itemdb.py
deleted file mode 100644
index b86b848..0000000
--- a/hercules/code/server/itemdb.py
+++ /dev/null
@@ -1,105 +0,0 @@
-# -*- coding: utf8 -*-
-#
-# Copyright (C) 2014 Evol Online
-# Author: Andrei Karas (4144)
-
-import re
-
-from code.configutils import *
-from code.fileutils import *
-from code.stringutils import *
-
-def convertItemDb():
- srcFile = "oldserverdata/db/item_db.txt"
- dstFile = "newserverdata/db/re/item_db.conf"
- constsFile = "newserverdata/db/const.txt"
- fieldsSplit = re.compile(",")
- scriptsSplit = re.compile("{")
- items = dict()
- with open(srcFile, "r") as r:
- with open(dstFile, "w") as w:
- with open(constsFile, "a") as c:
- c.write("// items\n");
- tpl = readFile("templates/item_db.tpl")
- w.write(tpl)
- for line in r:
- if len(line) < 2 or line[0] == "#" or line[0:2] == "//":
- continue
- rows = fieldsSplit.split(line)
- if len(rows) < 5 or rows[0] == "0":
- continue
-
- sz = len(rows)
- if sz > 19:
- sz = 19
- for f in xrange(0, sz):
- rows[f] = rows[f].strip()
- if rows[4] == "2":
- rows[4] = "0"
- rows[3] = str(int(rows[3]) | 4)
-
- items[rows[1]] = rows[0]
- w.write("{\n")
- c.write("{0}\t{1}\n".format(rows[1], rows[0]))
- writeIntField(w, "Id", rows[0])
- writeStrField(w, "AegisName", rows[1])
- writeStrField(w, "Name", rows[2])
- writeIntField(w, "Type", rows[4])
- writeIntField(w, "Buy", rows[5])
- writeIntField(w, "Sell", rows[6])
- writeIntField(w, "Weight", rows[7])
- writeIntField(w, "Atk", rows[8])
- writeIntField(w, "Matk", "0")
- writeIntField(w, "Def", rows[9])
- writeIntField(w, "Range", rows[10])
- writeIntField(w, "Slots", "0")
- writeIntField(w, "Job", "0xFFFFFFFF")
- writeIntField(w, "Upper", "0x3F")
- writeIntField(w, "Gender", rows[13])
- writeIntField(w, "Loc", rows[14])
- writeIntField(w, "WeaponLv", rows[15])
- writeIntField(w, "EquipLv", rows[16])
- writeIntField(w, "Refine", "false")
- if rows[14] == "2":
- writeIntField(w, "View", "1")
- else:
- writeIntField(w, "View", rows[0])
- writeIntField(w, "BindOnEquip", "false")
- writeIntField(w, "BuyingStore", "false")
- writeIntField(w, "Delay", "0")
- trade = int(rows[3])
- if trade != 0:
- writeStartBlock(w, "Trade")
- if trade & 1 == 1:
- writeSubField(w, "nodrop", "true")
- if trade & 2 == 2:
- writeSubField(w, "notrade", "true")
- if trade & 4 == 4:
- writeSubField(w, "nodelonuse", "true")
- if trade & 8 == 8:
- writeSubField(w, "nostorage", "true")
- if trade & 256 == 256:
- writeSubField(w, "nogstorage", "true")
- if trade & 512 == 512:
- writeSubField(w, "noselltonpc", "true")
- if trade != 0:
- writeEndBlock(w)
- writeIntField(w, "Sprite", "0")
-
- scripts = ""
- for f in xrange(sz, len(rows)):
- scripts = scripts + ", " + rows[f]
- rows = scriptsSplit.split(scripts)
- cnt = len(rows)
- if cnt > 1:
- text = rows[1].strip()
- if len(text) > 1:
- text = text[:-2]
- if text != "":
- writeStartScript(w, "Script")
- w.write(" {0}\n".format(text))
- writeEndScript(w)
-
- w.write("},\n")
- w.write(")\n")
- return items