- Joined
- Apr 6, 2012
- Messages
- 545
- Reaction score
- 217
go to /data/s1001/bin/log
and watch gameserver log
and watch gameserver log
Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!
Join Today!You must be registered to see links
complete multilangue on work all is there for just need find how to
i think need modify client and idk how for now :'(
Idk if someone prefere windows server butYou must be registered to see links
and it seems its 1.5 too
You must be registered to see linkssorry
thank you!You must be registered to see links
no sorry lol
if you give me link i can download but spend 7 day for get the files no thx
You must be registered to see links
good for you ?
this not work ?
You must be registered to see links
import os
import sys
import time
import hashlib
import xml.dom.minidom
def DoCmd(cmd):
print(cmd)
ret = os.system(cmd)
assert ret == 0
def getLangStrs():
areaPath = 'gsconf/serveronly/area_lang.xml'
dom = xml.dom.minidom.parse(areaPath)
root = dom.documentElement
langList = root.getElementsByTagName('include_lang')
langstr = langList[0].getAttribute("terms")
langNames = langstr.split('|')
return langNames
def getLangMd5():
langNames = getLangStrs()
lang_dict = {}
for lang in langNames:
path = 'gsconf/table/Lang/%s/Table'%lang
files = os.listdir(path)
for file in files:
if os.path.isdir("%s/%s"%(path, file)):
continue
if file[-4:] != ".txt":
continue
with open("%s/%s"%(path,file), 'rb') as f:
md5obj = hashlib.md5()
md5obj.update(f.read())
hash = md5obj.hexdigest()
name = file[:-4]
if name not in lang_dict:
lang_dict[name] = hash
else:
lang_dict[name] += hash
return lang_dict
def genMd5():
DoCmd("> conf_md5.txt")
fp = open("conf_md5.txt","a+")
reloadConfPath = ['gsconf/table', 'gsconf/serveronly', 'newlogconf/']
lang_dict = getLangMd5()
for name, value in lang_dict.items():
fp.write("%s %s\n"%(name, value))
for confPath in reloadConfPath:
if not os.path.exists(confPath) :
continue;
files = os.listdir(confPath)
for file in files:
if os.path.isdir("%s/%s"%(confPath,file) ):
continue
if file[-4:] != ".txt":
continue
with open("%s/%s"%(confPath,file),'rb') as f:
md5obj = hashlib.md5()
md5obj.update(f.read())
hash = md5obj.hexdigest()
#tlist = file.split('.')
#name = tlist[0]
# delete suffix '.txt'
name = file[:-4]
fp.write("%s %s\n"%(name,hash))
if __name__ == '__main__':
genMd5()
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
import time
import operator
def ColorPrint(str):
print("\033[31m%s\033[0m" % str);
def get_pstack(pid, count):
pfilename = "log/pstack-%d-%s.cache" % (pid, time.strftime("%Y-%m-%d_%H-%M-%S", time.localtime()))
for i in range(count):
os.system("pstack %d|awk 'BEGIN{b=0}{if (b==1) print $0;if (match($0, \"Thread 1\")) b=1}END{}' >> '%s'" % (pid, pfilename))
def check_pstack(pfilename, lowerlimit, countlimit):
pfile = open(pfilename, "r")
cnt = 0
dict = {};
while 1:
line = pfile.readline()
if not line:
break
if line[0:2] == "#0":
cnt = cnt + 1;
key = line[26:][:-1]
if dict.has_key(key):
dict[key] = dict[key] + 1
else :
dict[key] = 1
pfile.close()
sorted_x = sorted(dict.items(),key=lambda item:item[1], reverse=1)
for i in sorted_x:
if i[1] >= lowerlimit and sorted_x.index(i) <= countlimit:
print("%d %d%% %s" % (i[1], i[1] * 100 / cnt, i[0]))
def Help():
ColorPrint("usage:")
ColorPrint("public prefix: python pstack.py")
ColorPrint("get [pid] [count]")
ColorPrint("check [pfilename] [lower limit(default 2)] [count limit(default 100)]")
if __name__ == '__main__':
if len(sys.argv) >= 4 and sys.argv[1] == "get":
pid = int(sys.argv[2])
count = int(sys.argv[3])
get_pstack(pid, count)
elif len(sys.argv) >= 3 and sys.argv[1] == "check":
pfilename = sys.argv[2]
lowerlimit = 2
if len(sys.argv) >= 4:
lowerlimit = int(sys.argv[3])
countlimit = 100
if len(sys.argv) >= 5:
countlimit = int(sys.argv[4])
check_pstack(pfilename, lowerlimit, countlimit)
else:
Help()