mirror of
https://github.com/mangosfour/server.git
synced 2025-12-12 10:37:03 +00:00
[11903] Add MoveMapGen tool to generate MMaps
Authorship also includes qsa, and thanks to others!
This commit is contained in:
parent
136c0ba618
commit
deb97590a1
23 changed files with 3955 additions and 1 deletions
60
contrib/mmap/mmap_extract.py
Normal file
60
contrib/mmap/mmap_extract.py
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
#!/usr/bin/python
|
||||
|
||||
"""
|
||||
Copyright (C) 2005-2012 MaNGOS <http://getmangos.com/>
|
||||
|
||||
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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
"""
|
||||
|
||||
import os, sys, threading, time, subprocess
|
||||
from multiprocessing import cpu_count
|
||||
from collections import deque
|
||||
|
||||
mapList = deque([0,1,530,571,13,25,30,33,34,35,36,37,42,43,44,47,48,70,90,109,129,169,189,209,229,230,249,269,289,309,329,349,369,
|
||||
389,409,429,449,450,451,469,489,509,529,531,532,533,534,540,542,543,544,545,546,547,548,550,552,553,554,555,556,557,558,559,
|
||||
560,562,564,565,566,568,572,573,574,575,576,578,580,582,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,
|
||||
601,602,603,604,605,606,607,608,609,610,612,613,614,615,616,617,618,619,620,621,622,623,624,628,631,632,641,642,647,649,650,
|
||||
658,668,672,673,712,713,718,723,724])
|
||||
|
||||
class workerThread(threading.Thread):
|
||||
def __init__(self, mapID):
|
||||
threading.Thread.__init__(self)
|
||||
self.mapID = mapID
|
||||
|
||||
def run(self):
|
||||
name = "Worker for map %u" % (self.mapID)
|
||||
print "++ %s" % (name)
|
||||
if sys.platform == 'win32':
|
||||
stInfo = subprocess.STARTUPINFO()
|
||||
stInfo.dwFlags |= 0x00000001
|
||||
stInfo.wShowWindow = 7
|
||||
cFlags = subprocess.CREATE_NEW_CONSOLE
|
||||
binName = "MoveMapGen.exe"
|
||||
else:
|
||||
stInfo = None
|
||||
cFlags = 0
|
||||
binName = "./MoveMapGen"
|
||||
retcode = subprocess.call([binName, "%u" % (self.mapID),"--silent"], startupinfo=stInfo, creationflags=cFlags)
|
||||
print "-- %s" % (name)
|
||||
|
||||
if __name__ == "__main__":
|
||||
cpu = cpu_count() - 0 # You can reduce the load by putting 1 instead of 0 if you need to free 1 core/cpu
|
||||
if cpu < 1:
|
||||
cpu = 1
|
||||
print "I will always maintain %u MoveMapGen tasks running in //\n" % (cpu)
|
||||
while (len(mapList) > 0):
|
||||
if (threading.active_count() <= cpu):
|
||||
workerThread(mapList.popleft()).start()
|
||||
time.sleep(0.1)
|
||||
Loading…
Add table
Add a link
Reference in a new issue