ищу baserape под сервер 1.5,win32 |
|
Здравствуйте, гость ( Вход | Регистрация )
ищу baserape под сервер 1.5,win32 |
4.1.2012, 9:29
Сообщение
#1
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
ищу скрипт baserape под сервер 1.5,win32
|
|
|
4.1.2012, 9:39
Сообщение
#2
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
# ------------------------------------------------------------------------ # Module: AntiBaseRape.py # Author: SHAnders # Port to bf2cc/mm: graag42 # # Version 1.11 # # Changes: # v1.1 -> 1.11 # Fixed the timer to only be started once # v1.0 -> 1.1 # Implemted a baseRapeWarning attribute on players to count safe base kills # Implemted allowed amount of safe base kills (3) # up to this amount player only loses kill points + 1 score pr baseRapeWarning # over this amount player is allso killed # Implemtes a timer for removing 1 baseRapeWarning every 2 minutes # # Description: # Server side only admin script # # This script will punish players who kill enemy within the area of a safe base # # Requirements: # None. # # Installation as Admin script: # 1: Save this script as 'AntiBaseRape.py' in your <bf2>/admin/standard_admin directory. # 2: Add the lines 'import AntiBaseRape' and 'AntiBaseRape.init()' to the file # '<bf2>/admin/standard_admin/__init__.py'. # # TODO: # Since not all maps are alike, the requirements for base rape protiction # should be able to be altered individualy for each control point. # # Thanks to: # Battlefield.no for inspiration from their pingkick.py script # # ------------------------------------------------------------------------ import host import bf2 import math import mm_utils from bf2.stats.constants import * from bf2 import g_debug # Set the version of your module here __version__ = 1.11 # Set the required module versions here __required_modules__ = { 'modmanager': 1.0 } # Does this module support reload ( are all its reference closed on shutdown? ) __supports_reload__ = True # Set the description of your module here __description__ = "AntiBaseRape v%s" % __version__ # ------------------------------------------------------------------------ # Constants # ------------------------------------------------------------------------ DEFAULT_SAFEBASE_RADIUS = 50 # Default safe area radius (normal commandpoint radius = 10) ALLOWED_SAFEBASEKILLS = 3 SAFEBASEKILL_TIMER_INTERVAL = 120 # Intervals between removing a point from players.baseRapeWarning # ------------------------------------------------------------------------ # Variables # ------------------------------------------------------------------------ WarnReduceTimer = None # Timer that reduces the warnings at intervals # ------------------------------------------------------------------------ # Init # ------------------------------------------------------------------------ class BaseRape( object ) : def __init__( self, modManager ): # ModManager reference self.mm = modManager # Internal shutdown state self.__state = 0 def init( self ): if g_debug: print "AntiBaseRape init" if 0 == self.__state: host.registerHandler('PlayerConnect', self.onPlayerConnect, 1) host.registerHandler('PlayerKilled', self.onPlayerKilled) # Update to the running state self.__state = 1 # Start the timer that reduces warnings on the SAFEBASEKILL_TIMER_INTERVAL WarnReduceTimer = bf2.Timer(self.onSafeBaseKillTimer, SAFEBASEKILL_TIMER_INTERVAL, 1) WarnReduceTimer.setRecurring(SAFEBASEKILL_TIMER_INTERVAL) # Connect already connected players if reinitializing for p in bf2.playerManager.getPlayers(): self.onPlayerConnect(p) # ------------------------------------------------------------------------ # ------------------------------------------------------------------------ # onPlayerConnect # ------------------------------------------------------------------------ def onPlayerConnect(self, player): self.resetPlayer(player) # ------------------------------------------------------------------------ # ------------------------------------------------------------------------ # onPlayerKilled # ------------------------------------------------------------------------ def onPlayerKilled(self, victim, attacker, weapon, assists, object): # killed by self if attacker == victim: pass # killed by enemy elif attacker != None and attacker.getTeam() != victim.getTeam(): self.checkForSafeBase(attacker, victim) # ------------------------------------------------------------------------ def shutdown( self ): """Shutdown and stop processing.""" # Unregister game handlers and do any other # other actions to ensure your module no longer affects # the game in anyway if WarnReduceTimer: WarnReduceTimer.destroy() WarnReduceTimer = None # Flag as shutdown as there is currently way to: # host.unregisterHandler self.__state = 2 # ------------------------------------------------------------------------ # Reset the number of warnings # ------------------------------------------------------------------------ def resetPlayer(self, player): player.baseRapeWarning = 0 # ------------------------------------------------------------------------ # ------------------------------------------------------------------------ # Check if victim was killed within safebase area # ------------------------------------------------------------------------ def checkForSafeBase(self, attacker, victim): victimVehicle = victim.getVehicle() controlPoints = bf2.objectManager.getObjectsOfType('dice.hfe.world.ObjectTemplate.ControlPoint') for cp in controlPoints: if cp.cp_getParam('unableToChangeTeam') != 0 and cp.cp_getParam('team') != attacker.getTeam(): distanceTo = self.getVectorDistance(victimVehicle.getPosition(), cp.getPosition()) if DEFAULT_SAFEBASE_RADIUS > float(distanceTo): self.justify(attacker, victim, cp, distanceTo) # ------------------------------------------------------------------------ # ------------------------------------------------------------------------ # Punish attacker, give victim life back and inform all # ------------------------------------------------------------------------ def justify(self, attacker, victim, controlPoint, distanceTo): victim.score.deaths += -1 attacker.score.kills += -1 attacker.score.score += -2 - attacker.baseRapeWarning attacker.baseRapeWarning += 1 self.sendWarning(attacker, controlPoint, distanceTo) if attacker.baseRapeWarning > ALLOWED_SAFEBASEKILLS: attacker.score.TKs += 1 if attacker.isAlive(): vehicle = attacker.getVehicle() rootVehicle = getRootParent(vehicle) if getVehicleType(rootVehicle.templateName) == VEHICLE_TYPE_SOLDIER: rootVehicle.setDamage(0) # This should kill them ! else: rootVehicle.setDamage(1) # a vehicle will likely explode within 1 sec killing entire crew, # not so sure about base defenses though # ------------------------------------------------------------------------ # ------------------------------------------------------------------------ # Send Warning # ------------------------------------------------------------------------ def sendWarning(self, player, controlPoint, distanceTo): mapName = bf2.gameLogic.getMapName() if player.baseRapeWarning > ALLOWED_SAFEBASEKILLS: mm_utils.msg_server(player.getName() + " is punished for repeated violating of the no kill rules within safe base area") else: mm_utils.msg_server(player.getName() + " has violated the no kill rules within safe base area " + str(player.baseRapeWarning) + " times now") # ------------------------------------------------------------------------ # ------------------------------------------------------------------------ # remove baseRapeWarnings over time # ------------------------------------------------------------------------ def onSafeBaseKillTimer(self, data): for p in bf2.playerManager.getPlayers(): if p.baseRapeWarning <= 0: p.baseRapeWarning = 0 else: p.baseRapeWarning += -1 # ------------------------------------------------------------------------ # ------------------------------------------------------------------------ # get distance between two positions # ------------------------------------------------------------------------ def getVectorDistance(self, pos1, pos2): diffVec = [0.0, 0.0, 0.0] diffVec[0] = math.fabs(pos1[0] - pos2[0]) diffVec[1] = math.fabs(pos1[1] - pos2[1]) diffVec[2] = math.fabs(pos1[2] - pos2[2]) return math.sqrt(diffVec[0] * diffVec[0] + diffVec[1] * diffVec[1] + diffVec[2] * diffVec[2]) # ------------------------------------------------------------------------ # ------------------------------------------------------------------------ # ModManager Init # ------------------------------------------------------------------------ def mm_load( modManager ): """Creates and returns your object.""" return BaseRape( modManager ) Сообщение отредактировал maiorBoltach - 4.1.2012, 9:40 |
|
|
6.1.2012, 8:14
Сообщение
#3
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
если install к этому скрипту?
|
|
|
6.1.2012, 9:48
Сообщение
#4
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Установка нового модуля
Создаётся, или распаковываешь, или проста скидываешь его в директорию в сервере "admin/modules", потом редактируется в "mods/bf2/settings/modmanager.con" добавляешь туда следующие: modmanager.loadModule "<тут собственно новый модуль>" Installing new modules пример, сохраняю этот скрипт как mm_AntiBaseRape.py и скидываю его сюда <dir bf2 server>admin/modules, а патом редактирую <dir bf2 server>mods/bf2/settings/modmanager.con modmanager.loadModule "mm_AntiBaseRape" и радуемся работе скрипта! |
|
|
6.1.2012, 16:53
Сообщение
#5
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Кто ко мне в аську писал насчёт этого скрипта и его "анти-спам" послал?
Пишите ещё раз - жду. Сервер, правда, у меня в оффлайне, жду окончания каникул, чтоб к нему пробраться, но по памяти чем могу помогу. Сообщение отредактировал Excavator - 6.1.2012, 16:54 |
|
|
8.1.2012, 8:59
Сообщение
#6
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
я писал!
дай свои скайп! |
|
|
12.1.2012, 13:36
Сообщение
#7
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
у меня почемуто не робят скрипты? в чём может быть проблема, всё по инструкции устанавливал
|
|
|
12.1.2012, 21:40
Сообщение
#8
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
что ставил и как?
|
|
|
13.1.2012, 10:21
Сообщение
#9
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
modmanager.con
Раскрывающийся текст # # Multiplay, ModManager # modmanager.autoSave 1 modmanager.banManagerModule "mm_banmanager" modmanager.debugEnable 0 modmanager.debugFile "modmanager_debug.log" modmanager.homeGuess "C:/Documents and Settings/Евгений/My Documents/Battlefield 2/" modmanager.logAppend 0 modmanager.logAutoFlush 1 modmanager.logDateFormat "[%Y-%m-%d %H:%M:%S] " modmanager.logLevel 2 modmanager.logModule "mm_logger" modmanager.moduleBase "modules" modmanager.rconModule "mm_rcon" # Modules modmanager.loadModule "mm_tk_punish" modmanager.loadModule "mm_kicker" modmanager.loadModule "mm_announcer" modmanager.loadModule "mm_bf2cc" modmanager.loadModule "mm_autobalance" modmanager.loadModule "mm_AntiBaseRape.py" #modmanager.loadModule "mm_reserver" # # ModManager Announcer # #mm_announcer.addTimedMessage "30:300:Server Rules: No team killing, no stats padding, keep the teams balanced and play fair!" # # ModManager Team autobalance # mm_autobalance.allowCommander 0 mm_autobalance.allowSquadLeader 0 mm_autobalance.allowSquadMember 0 mm_autobalance.roundSwitch 0 # # BF2CC for ModManager # mm_bf2cc.chatBufferSize 50 mm_bf2cc.serverChatFormat "[Administrator: %s] %s" # # ModManager Logger # mm_logger.logAppend 0 mm_logger.logAutoFlush 1 mm_logger.logFilename "modmanager.log" # # ModManager Player Kicker # mm_kicker.banLimit 1 mm_kicker.banPeriod "Round" mm_kicker.banWordReason "Using bad / racist language" mm_kicker.enableChatChecks 0 mm_kicker.idleIgnoreNotStarted 1 mm_kicker.idleLimit 0 mm_kicker.initDelay 60 mm_kicker.kickDelay 5 mm_kicker.kickLimit 3 mm_kicker.kickMessage "Sorry '%s' your are being kicked ( %s )" mm_kicker.kickType 1 mm_kicker.kickWordReason "Using bad / racist language" mm_kicker.maxPing 0 mm_kicker.minPing 0 mm_kicker.negScoreKick 0 mm_kicker.pingLimit 8 mm_kicker.positionDelay 120 mm_kicker.samplePeriod 120 mm_kicker.sampleRate 10 mm_kicker.warnWordMessage "WARNING: Please refrain from using bad / racist language on this server '%s'" # # ModManager Rcon # mm_rcon.allowBatching 1 mm_rcon.basicAuthLevel 50 mm_rcon.enableLinger 0 mm_rcon.lingerFor 1 mm_rcon.logCommands 0 mm_rcon.loginMessage "%s became a server administrator" mm_rcon.logoutMessage "%s gave up administrator rights" mm_rcon.rconBasicPassword mm_rcon.rconIp "188.226.126.160" mm_rcon.rconListenQueue 1 mm_rcon.rconPassword "p00787217" mm_rcon.rconPort 4716 mm_rcon.reuseAddress 1 mm_rcon.superAuthLevel 100 mm_rcon.defaultGametype "gpm_cq" mm_rcon.advancedMapSizeValidation 0 # # ModManager Reserver # mm_reserver.kickDelay 5 mm_reserver.kickReason "Reserved slots reached" mm_reserver.kickMode 2 mm_reserver.kickType 1 mm_reserver.privatePassword "" mm_reserver.reservedSlots 1 # # ModManager Team kill punisher # mm_tk_punish.announcePunishments 0 mm_tk_punish.banMessageDelay 5 mm_tk_punish.bannedBy "ModManager Team Kill Punisher" mm_tk_punish.banPeriod "Round" mm_tk_punish.banReason "Team killing" mm_tk_punish.forgiveMessage "TKPUNISH: %s forgives %s for a teamkill (%s has %d punishes and %d forgives)" mm_tk_punish.punishMessage "TKPUNISH: %s punishes %s for a teamkill (%s has %d punishes and %d forgives)" mm_tk_punish.punishTime 20 # # ModManager BanManager # mm_banmanager.banFilename "mm_bans.xml" mm_banmanager.banMessage "%s you are being banned (reason: %s)" mm_banmanager.defaultBanAddress "N/A" mm_banmanager.defaultBanCdKeyHash "N/A" mm_banmanager.defaultBanDelay 0 mm_banmanager.defaultBanMethod "Key" mm_banmanager.defaultBanNick "N/A" mm_banmanager.defaultBanPeriod "Perm" mm_banmanager.defaultBanReason "Unknown" mm_banmanager.defaultKickDelay 5 mm_banmanager.defaultKickReason "Unknown" mm_banmanager.defaultUnBanReason "Unknown" mm_banmanager.kickMessage "%s you are being kicked (reason: %s)" mm_banmanager.dateTimeFormat "%a %b %d %H:%M:%S %Y" mm_banmanager.oldDateTimeFormat "%a %b %d %H:%M:%S %Y" __init__.py Раскрывающийся текст import autobalance import tk_punish import playerconnect import AntiBaseRape import dc_automap import dc_teamtickets autobalance.init() tk_punish.init() playerconnect.init() AntiBaseRape.init() dc_automap.init() dc_teamtickets.init() не работает скрипт базрейпа, dc_automap.py, dc_teamtickets.py и MM MapAutoSizer, что неправильно зделал? |
|
|
13.1.2012, 11:53
Сообщение
#10
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
лог вот ещё modmanager
Раскрывающийся текст [2012-01-13 13:48:50] Info: Module 'mm_logger' initialised [2012-01-13 13:48:50] Info: Creating Multiplay, ModManager v2.0 for Battlefield 2 (www.multiplay.co.uk) [2012-01-13 13:48:50] Info: Starting ModManager Rcon v6.1 on 188.226.126.160:4716 [2012-01-13 13:48:50] Info: Rcon command handler 'login' registered [2012-01-13 13:48:50] Info: Rcon command handler 'logout' registered [2012-01-13 13:48:50] Info: Rcon command handler 'users' registered [2012-01-13 13:48:50] Info: Rcon command handler 'kick' registered [2012-01-13 13:48:50] Info: Rcon command handler 'ban' registered [2012-01-13 13:48:50] Info: Rcon command handler 'banby' registered [2012-01-13 13:48:50] Info: Rcon command handler 'banlist' registered [2012-01-13 13:48:50] Info: Rcon command handler 'unban' registered [2012-01-13 13:48:50] Info: Rcon command handler 'clearbans' registered [2012-01-13 13:48:50] Info: Rcon command handler 'list' registered [2012-01-13 13:48:50] Info: Rcon command handler 'profileid' registered [2012-01-13 13:48:50] Info: Rcon command handler 'profileids' registered [2012-01-13 13:48:50] Info: Rcon command handler 'listlocked' registered [2012-01-13 13:48:50] Info: Rcon command handler 'maplist' registered [2012-01-13 13:48:50] Info: Rcon command handler 'map' registered [2012-01-13 13:48:50] Info: Rcon command handler 'exec' registered [2012-01-13 13:48:50] Info: Rcon command handler 'help' registered [2012-01-13 13:48:50] Info: Rcon command handler '?' registered (alias) [2012-01-13 13:48:50] Info: ModManager Rcon started [2012-01-13 13:48:50] Info: Module 'mm_rcon' v6.1 loaded [2012-01-13 13:48:50] Info: Module 'mm_rcon' initialised [2012-01-13 13:48:50] Info: Module 'mm_banmanager' v3.6 loaded [2012-01-13 13:48:50] Info: Rcon command handler 'bm' registered [2012-01-13 13:48:50] Info: Module 'mm_banmanager' initialised [2012-01-13 13:48:50] Info: Module 'mm_tk_punish' v2.2 loaded [2012-01-13 13:48:50] Error: Failed to load module 'mm_mapautosizer' ( No module named mm_mapautosizer ) [2012-01-13 13:48:50] Error: Traceback (most recent call last): File "admin\modmanager.py", line 588, in __loadModule module = __import__( module_name ) ImportError: No module named mm_mapautosizer [2012-01-13 13:48:50] Info: Module 'mm_kicker' v2.5 loaded [2012-01-13 13:48:50] Error: Failed to load module 'mm_AntiBaseRape.py' ( No module named mm_AntiBaseRape.py ) [2012-01-13 13:48:50] Error: Traceback (most recent call last): File "admin\modmanager.py", line 588, in __loadModule module = __import__( module_name ) ImportError: No module named mm_AntiBaseRape.py [2012-01-13 13:48:51] Info: Module 'mm_announcer' v1.7 loaded [2012-01-13 13:48:51] Info: Module 'mm_bf2cc' v7.0 loaded [2012-01-13 13:48:51] Info: Module 'mm_autobalance' v2.3 loaded [2012-01-13 13:48:51] Info: Loaded 5 additional modules [2012-01-13 13:48:51] Info: Rcon command handler 'mm' registered [2012-01-13 13:48:51] Info: Module 'mm_tk_punish' initialised [2012-01-13 13:48:51] Info: Rcon command handler 'kicker' registered [2012-01-13 13:48:51] Info: Module 'mm_kicker' initialised [2012-01-13 13:48:51] Info: Rcon command handler 'announcer' registered [2012-01-13 13:48:51] Info: Module 'mm_announcer' initialised [2012-01-13 13:48:51] Info: Rcon command handler 'bf2cc' registered [2012-01-13 13:48:51] Info: Module 'mm_bf2cc' initialised [2012-01-13 13:48:51] Info: Module 'mm_autobalance' initialised [2012-01-13 13:48:51] Info: Initialised 5 modules [2012-01-13 13:49:12] Info: Validating maplist... [2012-01-13 13:49:12] Info: No maplist changes required [2012-01-13 13:49:13] Info: Authed 'tcp: 188.226.126.160:63843' by AdminServer.basicAuth at level 100 [2012-01-13 13:49:18] Info: Authed 'tcp: 188.226.126.160:63844' by AdminServer.basicAuth at level 100 [2012-01-13 13:49:46] Info: Authed 'tcp: 188.226.126.160:63850' by AdminServer.basicAuth at level 100 [2012-01-13 13:49:47] Info: cmdExec 'maplist.list' by tcp: 188.226.126.160:63850 [2012-01-13 13:49:47] Info: cmdExec 'admin.nextLevel' by tcp: 188.226.126.160:63850 [2012-01-13 13:49:48] Info: cmdExec 'admin.currentLevel' by tcp: 188.226.126.160:63850 [2012-01-13 13:49:49] Info: cmdExec 'maplist.list' by tcp: 188.226.126.160:63850 [2012-01-13 13:49:50] Info: cmdExec 'admin.nextLevel' by tcp: 188.226.126.160:63850 [2012-01-13 13:49:50] Info: cmdExec 'admin.currentLevel' by tcp: 188.226.126.160:63850 [2012-01-13 13:50:30] Info: cmdExec 'maplist.list' by tcp: 188.226.126.160:63850 [2012-01-13 13:50:31] Info: cmdExec 'maplist.list' by tcp: 188.226.126.160:63850 |
|
|
13.1.2012, 20:55
Сообщение
#11
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Цитата [2012-01-13 13:48:50] Error: Failed to load module 'mm_AntiBaseRape.py' ( No module named mm_AntiBaseRape.py ) Нету файла с самим скриптом. Он его не видит |
|
|
14.1.2012, 22:49
Сообщение
#12
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
а, ты сам скрипт куда кидал "mm_AntiBaseRape.py"?
Цитата [2012-01-13 13:48:50] Error: Failed to load module 'mm_AntiBaseRape.py' ( No module named mm_AntiBaseRape.py ) так как он этого скрипта в папке "modules" не видит! |
|
|
15.1.2012, 9:52
Сообщение
#13
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
туда кинул шяс скрины дам обоих папок
Папка Admin http://clip2net.com/s/1ueih Папка modules http://clip2net.com/s/1ueiC папка standard_admin http://clip2net.com/s/1ueiH |
|
|
16.1.2012, 16:48
Сообщение
#14
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
во спс а другие почему скрипты не идут у меня? например на рандомное переключение карт
Сообщение отредактировал -Military- - 16.1.2012, 16:49 |
|
|
16.1.2012, 17:14
Сообщение
#15
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
mm_baserape_v1.py
Описание При убийстве врага с использованием пехоты, техники на вражеской НТ в пределах некоторого радиуса убившему бойцу выносится предупреждение. После 1-го (на 2-ее) предупреждение - боец умрёт, техника взрывается. Каждые 5 минут предупреждение сгорает. Дополнительно DEFAULT_SAFEBASE_RADIUS = 50 - радиус действия скрипта по умолчанию на НТ (это радиус будит работать на тех картах, которые не указаны в скрипте!) ALLOWED_SAFEBASEKILLS = 2 - количество предупреждений примечание: если выставить 0, то боец умрёт сразу, техника будит сразу взрываться! SAFEBASEKILL_TIMER_INTERVAL = 300 - время сгорание предупреждения Параметры Экспериментальным путем были заданы следующие радиусы для карт (в метрах от флага на НТ) в которых будит действовать скрипт: Dalian Plant: PLA - 320, USMC - 100 Daqing Oilfields: PLA - 275, USMC - 180 Dragon Valley: USMC - 67 FuShe Pass: PLA - 120, USMC - 85 Gulf of Oman: MEC - 160, USMC - 100 Kubra Dam: USMC - 83 Operation Clean Sweep: USMC - 285 Road to Jalalabad: USMC - 50 Sharqi Peninsula: MEC - 60 Strike at Karkand: USMC - 160 Wake Island 2007: USMC - 135 Zatar Wetlands: MEC - 120, USMC - 100 Скрипт Код # ------------------------------------------------------------------------ # Module: AntiBaseRape.py # Author: SHAnders # Port to bf2cc/mm: graag42 # # Version 1.11 # # Changes: # v1.1 -> 1.11 # Fixed the timer to only be started once # v1.0 -> 1.1 # Implemted a baseRapeWarning attribute on players to count safe base kills # Implemted allowed amount of safe base kills (3) # up to this amount player only loses kill points + 1 score pr baseRapeWarning # over this amount player is allso killed # Implemtes a timer for removing 1 baseRapeWarning every 2 minutes # # Description: # Server side only admin script # # This script will punish players who kill enemy within the area of a safe base # # Requirements: # None. # # Installation as Admin script: # 1: Save this script as 'AntiBaseRape.py' in your <bf2>/admin/standard_admin directory. # 2: Add the lines 'import AntiBaseRape' and 'AntiBaseRape.init()' to the file # '<bf2>/admin/standard_admin/__init__.py'. # # TODO: # Since not all maps are alike, the requirements for base rape protiction # should be able to be altered individualy for each control point. # # Thanks to: # Battlefield.no for inspiration from their pingkick.py script # # ------------------------------------------------------------------------ import host import bf2 import math import mm_utils from bf2.stats.constants import * from bf2 import g_debug # Set the version of your module here __version__ = 1.11 # Set the required module versions here __required_modules__ = { 'modmanager': 1.0 } # Does this module support reload ( are all its reference closed on shutdown? ) __supports_reload__ = True # Set the description of your module here __description__ = "AntiBaseRape v%s" % __version__ # ------------------------------------------------------------------------ # Constants # ------------------------------------------------------------------------ DEFAULT_SAFEBASE_RADIUS = 50 # Default safe area radius (normal commandpoint radius = 10) ALLOWED_SAFEBASEKILLS = 2 SAFEBASEKILL_TIMER_INTERVAL = 300 # Intervals between removing a point from players.baseRapeWarning # ------------------------------------------------------------------------ # Variables # ------------------------------------------------------------------------ WarnReduceTimer = None # Timer that reduces the warnings at intervals # ------------------------------------------------------------------------ # Init # ------------------------------------------------------------------------ class BaseRape( object ) : def __init__( self, modManager ): # ModManager reference self.mm = modManager # Internal shutdown state self.__state = 0 def init( self ): if g_debug: print "AntiBaseRape init" if 0 == self.__state: host.registerHandler('PlayerConnect', self.onPlayerConnect, 1) host.registerHandler('PlayerKilled', self.onPlayerKilled) # Update to the running state self.__state = 1 # Start the timer that reduces warnings on the SAFEBASEKILL_TIMER_INTERVAL WarnReduceTimer = bf2.Timer(self.onSafeBaseKillTimer, SAFEBASEKILL_TIMER_INTERVAL, 1) WarnReduceTimer.setRecurring(SAFEBASEKILL_TIMER_INTERVAL) # Connect already connected players if reinitializing for p in bf2.playerManager.getPlayers(): self.onPlayerConnect(p) # ------------------------------------------------------------------------ # ------------------------------------------------------------------------ # onPlayerConnect # ------------------------------------------------------------------------ def onPlayerConnect(self, player): self.resetPlayer(player) # ------------------------------------------------------------------------ # ------------------------------------------------------------------------ # onPlayerKilled # ------------------------------------------------------------------------ def onPlayerKilled(self, victim, attacker, weapon, assists, object): # killed by self if attacker == victim: pass # killed by enemy elif attacker != None and attacker.getTeam() != victim.getTeam(): self.checkForSafeBase(attacker, victim) # ------------------------------------------------------------------------ def shutdown( self ): """Shutdown and stop processing.""" # Unregister game handlers and do any other # other actions to ensure your module no longer affects # the game in anyway if WarnReduceTimer: WarnReduceTimer.destroy() WarnReduceTimer = None # Flag as shutdown as there is currently way to: # host.unregisterHandler self.__state = 2 # ------------------------------------------------------------------------ # Reset the number of warnings # ------------------------------------------------------------------------ def resetPlayer(self, player): player.baseRapeWarning = 0 # ------------------------------------------------------------------------ # ------------------------------------------------------------------------ # Check if victim was killed within safebase area # ------------------------------------------------------------------------ def checkForSafeBase(self, attacker, victim): currentmap = bf2.gameLogic.getMapName() if currentmap == "dalian_plant" and victim.getTeam() == 1: DEFAULT_SAFEBASE_RADIUS = 320 if currentmap == "dalian_plant" and victim.getTeam() == 2: DEFAULT_SAFEBASE_RADIUS = 100 if currentmap == "daqing_oilfields" and victim.getTeam() == 1: DEFAULT_SAFEBASE_RADIUS = 275 if currentmap == "daqing_oilfields" and victim.getTeam() == 2: DEFAULT_SAFEBASE_RADIUS = 180 if currentmap == "dragon_valley": DEFAULT_SAFEBASE_RADIUS = 67 if currentmap == "fushe_pass" and victim.getTeam() == 1: DEFAULT_SAFEBASE_RADIUS = 120 if currentmap == "fushe_pass" and victim.getTeam() == 2: DEFAULT_SAFEBASE_RADIUS = 85 if currentmap == "gulf_of_oman" and victim.getTeam() == 1: DEFAULT_SAFEBASE_RADIUS = 160 if currentmap == "gulf_of_oman" and victim.getTeam() == 2: DEFAULT_SAFEBASE_RADIUS = 100 if currentmap == "kubra_dam": DEFAULT_SAFEBASE_RADIUS = 83 if currentmap == "operation_clean_sweep": DEFAULT_SAFEBASE_RADIUS = 285 if currentmap == "road_to_jalalabad": DEFAULT_SAFEBASE_RADIUS = 50 if currentmap == "sharqi_peninsula": DEFAULT_SAFEBASE_RADIUS = 60 if currentmap == "strike_at_karkand": DEFAULT_SAFEBASE_RADIUS = 160 if currentmap == "wake_island_2007": DEFAULT_SAFEBASE_RADIUS = 135 if currentmap == "zatar_wetlands" and victim.getTeam() == 1: DEFAULT_SAFEBASE_RADIUS = 120 if currentmap == "zatar_wetlands" and victim.getTeam() == 2: DEFAULT_SAFEBASE_RADIUS = 100 if currentmap == "strike_at_karkand_2": DEFAULT_SAFEBASE_RADIUS = 35 if currentmap == "battleaxe_2008" and victim.getTeam() == 1: DEFAULT_SAFEBASE_RADIUS = 52 if currentmap == "battleaxe_2008" and victim.getTeam() == 2: DEFAULT_SAFEBASE_RADIUS = 48 if currentmap == "uluwatu_city": DEFAULT_SAFEBASE_RADIUS = 33 if currentmap == "vulcan_island": DEFAULT_SAFEBASE_RADIUS = 55 victimVehicle = victim.getVehicle() controlPoints = bf2.objectManager.getObjectsOfType('dice.hfe.world.ObjectTemplate.ControlPoint') for cp in controlPoints: if cp.cp_getParam('unableToChangeTeam') != 0 and cp.cp_getParam('team') != attacker.getTeam(): distanceTo = self.getVectorDistance(victimVehicle.getPosition(), cp.getPosition()) if DEFAULT_SAFEBASE_RADIUS > float(distanceTo): self.justify(attacker, victim, cp, distanceTo) # ------------------------------------------------------------------------ # ------------------------------------------------------------------------ # Punish attacker, give victim life back and inform all # ------------------------------------------------------------------------ def justify(self, attacker, victim, controlPoint, distanceTo): victim.score.deaths += -1 attacker.score.kills += -1 attacker.score.score += -2 - attacker.baseRapeWarning attacker.baseRapeWarning += 1 self.sendWarning(attacker, controlPoint, distanceTo) if attacker.baseRapeWarning > ALLOWED_SAFEBASEKILLS: attacker.score.TKs += 1 if attacker.isAlive(): vehicle = attacker.getVehicle() rootVehicle = getRootParent(vehicle) if getVehicleType(rootVehicle.templateName) == VEHICLE_TYPE_SOLDIER: rootVehicle.setDamage(0) # This should kill them ! else: rootVehicle.setDamage(1) # a vehicle will likely explode within 1 sec killing entire crew, # not so sure about base defenses though # ------------------------------------------------------------------------ # ------------------------------------------------------------------------ # Send Warning # ------------------------------------------------------------------------ def sendWarning(self, player, controlPoint, distanceTo): mapName = bf2.gameLogic.getMapName() if player.baseRapeWarning > ALLOWED_SAFEBASEKILLS: mm_utils.msg_server("§3" + player.getName() + " is punished for kill in safe base area §C1001(ATAKA NT)§C1001") else: mm_utils.msg_server(player.getName() + " has violated the no kill rules within safe base area " + str(player.baseRapeWarning) + " times now") # ------------------------------------------------------------------------ # ------------------------------------------------------------------------ # remove baseRapeWarnings over time # ------------------------------------------------------------------------ def onSafeBaseKillTimer(self, data): for p in bf2.playerManager.getPlayers(): if p.baseRapeWarning <= 0: p.baseRapeWarning = 0 else: p.baseRapeWarning += -1 # ------------------------------------------------------------------------ # ------------------------------------------------------------------------ # get distance between two positions # ------------------------------------------------------------------------ def getVectorDistance(self, pos1, pos2): diffVec = [0.0, 0.0, 0.0] diffVec[0] = math.fabs(pos1[0] - pos2[0]) diffVec[1] = math.fabs(pos1[1] - pos2[1]) diffVec[2] = math.fabs(pos1[2] - pos2[2]) return math.sqrt(diffVec[0] * diffVec[0] + diffVec[1] * diffVec[1] + diffVec[2] * diffVec[2]) # ------------------------------------------------------------------------ # ------------------------------------------------------------------------ # ModManager Init # ------------------------------------------------------------------------ def mm_load( modManager ): """Creates and returns your object.""" return BaseRape( modManager ) mm_baserape_v2.py Описание При убийстве врага с использованием техники на вражеской НТ в пределах некоторого радиуса убившему бойцу выносится предупреждение. Исключение: если жертва сидит в/на ПВО или на TOW. После 1-го (на 2-ее) предупреждение - техника взрывается. Каждые 5 минут предупреждение сгорает. Пехотой и артиллерией атаковать НТ разрешено без ограничений. Дополнительно DEFAULT_SAFEBASE_RADIUS = 50 - радиус действия скрипта по умолчанию на НТ (это радиус будит работать на тех картах, которые не указаны в скрипте!) ALLOWED_SAFEBASEKILLS = 2 - количество предупреждений примечание: если выставить 0, то техника будит сразу взрываться! SAFEBASEKILL_TIMER_INTERVAL = 300 - время сгорание предупреждения Параметры Экспериментальным путем были заданы следующие радиусы для карт (в метрах от флага на НТ) в которых будит действовать скрипт: Dalian Plant: PLA - 320, USMC - 100 Daqing Oilfields: PLA - 275, USMC - 180 Dragon Valley: USMC - 67 FuShe Pass: PLA - 120, USMC - 85 Gulf of Oman: MEC - 160, USMC - 100 Kubra Dam: USMC - 83 Operation Clean Sweep: USMC - 285 Road to Jalalabad: USMC - 50 Sharqi Peninsula: MEC - 60 Strike at Karkand: USMC - 160 Wake Island 2007: USMC - 135 Zatar Wetlands: MEC - 120, USMC - 100 Скрипт Код # ------------------------------------------------------------------------ # Module: AntiBaseRape.py # Author: SHAnders # Port to bf2cc/mm: graag42 # # Version 1.2 # # Changes: # v1.11 -> 1.2 # Big improvements by REW (http://maxigame.by/bf2/) # v1.1 -> 1.11 # Fixed the timer to only be started once # v1.0 -> 1.1 # Implemted a baseRapeWarning attribute on players to count safe base kills # Implemted allowed amount of safe base kills (3) # up to this amount player only loses kill points + 1 score pr baseRapeWarning # over this amount player is allso killed # Implemtes a timer for removing 1 baseRapeWarning every 2 minutes # # Description: # Server side only admin script # # This script will punish players who kill enemy within the area of a safe base # # Requirements: # None. # # Installation as Admin script: # 1: Save this script as 'AntiBaseRape.py' in your <bf2>/admin/standard_admin directory. # 2: Add the lines 'import AntiBaseRape' and 'AntiBaseRape.init()' to the file # '<bf2>/admin/standard_admin/__init__.py'. # # TODO: # Since not all maps are alike, the requirements for base rape protiction # should be able to be altered individualy for each control point. # # Thanks to: # Battlefield.no for inspiration from their pingkick.py script # # ------------------------------------------------------------------------ import host import bf2 import math import mm_utils from bf2.stats.constants import * from bf2 import g_debug # Set the version of your module here __version__ = 1.11 # Set the required module versions here __required_modules__ = { 'modmanager': 1.0 } # Does this module support reload ( are all its reference closed on shutdown? ) __supports_reload__ = True # Set the description of your module here __description__ = "AntiBaseRape v%s" % __version__ # ------------------------------------------------------------------------ # Constants # ------------------------------------------------------------------------ DEFAULT_SAFEBASE_RADIUS = 50 # Default safe area radius (normal commandpoint radius = 10) ALLOWED_SAFEBASEKILLS = 2 SAFEBASEKILL_TIMER_INTERVAL = 300 # Intervals between removing a point from players.baseRapeWarning # ------------------------------------------------------------------------ # Variables # ------------------------------------------------------------------------ WarnReduceTimer = None # Timer that reduces the warnings at intervals # ------------------------------------------------------------------------ # Init # ------------------------------------------------------------------------ class BaseRape( object ) : def __init__( self, modManager ): # ModManager reference self.mm = modManager # Internal shutdown state self.__state = 0 def init( self ): if g_debug: print "AntiBaseRape init" if 0 == self.__state: host.registerHandler('PlayerConnect', self.onPlayerConnect, 1) host.registerHandler('PlayerKilled', self.onPlayerKilled) # Update to the running state self.__state = 1 # Start the timer that reduces warnings on the SAFEBASEKILL_TIMER_INTERVAL WarnReduceTimer = bf2.Timer(self.onSafeBaseKillTimer, SAFEBASEKILL_TIMER_INTERVAL, 1) WarnReduceTimer.setRecurring(SAFEBASEKILL_TIMER_INTERVAL) # Connect already connected players if reinitializing for p in bf2.playerManager.getPlayers(): self.onPlayerConnect(p) # ------------------------------------------------------------------------ # ------------------------------------------------------------------------ # onPlayerConnect # ------------------------------------------------------------------------ def onPlayerConnect(self, player): self.resetPlayer(player) # ------------------------------------------------------------------------ # ------------------------------------------------------------------------ # onPlayerKilled # ------------------------------------------------------------------------ def onPlayerKilled(self, victim, attacker, weapon, assists, object): # killed by self vehicle = attacker.getVehicle() vicvehicle = victim.getVehicle() rootVehicle = getRootParent(vehicle) vicrootVehicle = getRootParent(vicvehicle) #attackerVehicle = bf2.objectManager.getRootParent(weapon) if attacker == victim: pass # killed by enemy elif (attacker != None) and (attacker.getTeam() != victim.getTeam()) and (getVehicleType(rootVehicle.templateName) != VEHICLE_TYPE_SOLDIER) and (getVehicleType(vicrootVehicle.templateName) != VEHICLE_TYPE_AIRDEFENSE) and (getVehicleType(vicrootVehicle.templateName) != VEHICLE_TYPE_GRNDDEFENSE): attackerVehicle = bf2.objectManager.getRootParent(weapon) if attackerVehicle.isPlayerControlObject and attackerVehicle.getIsRemoteControlled(): pass else: self.checkForSafeBase(attacker, victim, weapon) # ------------------------------------------------------------------------ def shutdown( self ): """Shutdown and stop processing.""" # Unregister game handlers and do any other # other actions to ensure your module no longer affects # the game in anyway if WarnReduceTimer: WarnReduceTimer.destroy() WarnReduceTimer = None # Flag as shutdown as there is currently way to: # host.unregisterHandler self.__state = 2 # ------------------------------------------------------------------------ # Reset the number of warnings # ------------------------------------------------------------------------ def resetPlayer(self, player): player.baseRapeWarning = 0 # ------------------------------------------------------------------------ # ------------------------------------------------------------------------ # Check if victim was killed within safebase area # ------------------------------------------------------------------------ def checkForSafeBase(self, attacker, victim, weapon): currentmap = bf2.gameLogic.getMapName() if currentmap == "dalian_plant" and victim.getTeam() == 1: DEFAULT_SAFEBASE_RADIUS = 320 if currentmap == "dalian_plant" and victim.getTeam() == 2: DEFAULT_SAFEBASE_RADIUS = 100 if currentmap == "daqing_oilfields" and victim.getTeam() == 1: DEFAULT_SAFEBASE_RADIUS = 275 if currentmap == "daqing_oilfields" and victim.getTeam() == 2: DEFAULT_SAFEBASE_RADIUS = 180 if currentmap == "dragon_valley": DEFAULT_SAFEBASE_RADIUS = 67 if currentmap == "fushe_pass" and victim.getTeam() == 1: DEFAULT_SAFEBASE_RADIUS = 120 if currentmap == "fushe_pass" and victim.getTeam() == 2: DEFAULT_SAFEBASE_RADIUS = 85 if currentmap == "gulf_of_oman" and victim.getTeam() == 1: DEFAULT_SAFEBASE_RADIUS = 160 if currentmap == "gulf_of_oman" and victim.getTeam() == 2: DEFAULT_SAFEBASE_RADIUS = 100 if currentmap == "kubra_dam": DEFAULT_SAFEBASE_RADIUS = 83 if currentmap == "operation_clean_sweep": DEFAULT_SAFEBASE_RADIUS = 285 if currentmap == "road_to_jalalabad": DEFAULT_SAFEBASE_RADIUS = 50 if currentmap == "sharqi_peninsula": DEFAULT_SAFEBASE_RADIUS = 60 if currentmap == "strike_at_karkand": DEFAULT_SAFEBASE_RADIUS = 160 if currentmap == "wake_island_2007": DEFAULT_SAFEBASE_RADIUS = 135 if currentmap == "zatar_wetlands" and victim.getTeam() == 1: DEFAULT_SAFEBASE_RADIUS = 120 if currentmap == "zatar_wetlands" and victim.getTeam() == 2: DEFAULT_SAFEBASE_RADIUS = 100 if currentmap == "strike_at_karkand_2": DEFAULT_SAFEBASE_RADIUS = 35 if currentmap == "battleaxe_2008" and victim.getTeam() == 1: DEFAULT_SAFEBASE_RADIUS = 52 if currentmap == "battleaxe_2008" and victim.getTeam() == 2: DEFAULT_SAFEBASE_RADIUS = 48 if currentmap == "uluwatu_city": DEFAULT_SAFEBASE_RADIUS = 33 if currentmap == "vulcan_island": DEFAULT_SAFEBASE_RADIUS = 55 victimVehicle = victim.getVehicle() controlPoints = bf2.objectManager.getObjectsOfType('dice.hfe.world.ObjectTemplate.ControlPoint') for cp in controlPoints: if cp.cp_getParam('unableToChangeTeam') != 0 and cp.cp_getParam('team') != attacker.getTeam(): distanceTo = self.getVectorDistance(victimVehicle.getPosition(), cp.getPosition()) if DEFAULT_SAFEBASE_RADIUS > float(distanceTo): self.justify(attacker, victim, cp, distanceTo) # ------------------------------------------------------------------------ # ------------------------------------------------------------------------ # Punish attacker, give victim life back and inform all # ------------------------------------------------------------------------ def justify(self, attacker, victim, controlPoint, distanceTo): vehicle = attacker.getVehicle() rootVehicle = getRootParent(vehicle) if getVehicleType(rootVehicle.templateName) != VEHICLE_TYPE_SOLDIER: attacker.baseRapeWarning += 1 self.sendWarning(attacker, controlPoint, distanceTo) if attacker.baseRapeWarning > ALLOWED_SAFEBASEKILLS: attacker.score.TKs += 1 victim.score.deaths += -1 attacker.score.kills += -1 attacker.score.score += -2 - attacker.baseRapeWarning if attacker.isAlive(): if getVehicleType(rootVehicle.templateName) != VEHICLE_TYPE_SOLDIER: rootVehicle.setDamage(0.01) # a vehicle will likely explode within 1 sec killing entire crew, # not so sure about base defenses though # ------------------------------------------------------------------------ # ------------------------------------------------------------------------ # Send Warning # ------------------------------------------------------------------------ def sendWarning(self, player, controlPoint, distanceTo): mapName = bf2.gameLogic.getMapName() if player.baseRapeWarning > ALLOWED_SAFEBASEKILLS: mm_utils.msg_server("§3" + player.getName() + " - is punished for repeated violation of the no kill rules within safe base area") else: mm_utils.msg_server("§3" + player.getName() + "has violated the no kill rules within safe base area! Warnings: " + str(player.baseRapeWarning) + "/" + str(ALLOWED_SAFEBASEKILLS)) # ------------------------------------------------------------------------ # ------------------------------------------------------------------------ # remove baseRapeWarnings over time # ------------------------------------------------------------------------ def onSafeBaseKillTimer(self, data): for p in bf2.playerManager.getPlayers(): if p.baseRapeWarning <= 0: p.baseRapeWarning = 0 else: p.baseRapeWarning += -1 # ------------------------------------------------------------------------ # ------------------------------------------------------------------------ # get distance between two positions # ------------------------------------------------------------------------ def getVectorDistance(self, pos1, pos2): diffVec = [0.0, 0.0, 0.0] diffVec[0] = math.fabs(pos1[0] - pos2[0]) diffVec[1] = math.fabs(pos1[1] - pos2[1]) diffVec[2] = math.fabs(pos1[2] - pos2[2]) return math.sqrt(diffVec[0] * diffVec[0] + diffVec[1] * diffVec[1] + diffVec[2] * diffVec[2]) # ------------------------------------------------------------------------ # ------------------------------------------------------------------------ # ModManager Init # ------------------------------------------------------------------------ def mm_load( modManager ): """Creates and returns your object.""" return BaseRape( modManager ) |
|
|
16.1.2012, 17:50
Сообщение
#16
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
ну это я понял, но почему у меня не идёт скрипт MapAutoSizer или dc_automap.py
|
|
|
30.1.2012, 17:18
Сообщение
#17
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Раскрывающийся текст [2012-01-30 12:30:43] Info: Module 'mm_logger' initialised [2012-01-30 12:30:43] Info: Creating Multiplay, ModManager v2.0 for Battlefield 2 (www.multiplay.co.uk) [2012-01-30 12:30:43] Info: Starting ModManager Rcon v6.1 on 188.226.126.160:4716 [2012-01-30 12:30:43] Info: Rcon command handler 'login' registered [2012-01-30 12:30:43] Info: Rcon command handler 'logout' registered [2012-01-30 12:30:43] Info: Rcon command handler 'users' registered [2012-01-30 12:30:43] Info: Rcon command handler 'kick' registered [2012-01-30 12:30:43] Info: Rcon command handler 'ban' registered [2012-01-30 12:30:43] Info: Rcon command handler 'banby' registered [2012-01-30 12:30:43] Info: Rcon command handler 'banlist' registered [2012-01-30 12:30:43] Info: Rcon command handler 'unban' registered [2012-01-30 12:30:43] Info: Rcon command handler 'clearbans' registered [2012-01-30 12:30:43] Info: Rcon command handler 'list' registered [2012-01-30 12:30:43] Info: Rcon command handler 'profileid' registered [2012-01-30 12:30:43] Info: Rcon command handler 'profileids' registered [2012-01-30 12:30:43] Info: Rcon command handler 'listlocked' registered [2012-01-30 12:30:43] Info: Rcon command handler 'maplist' registered [2012-01-30 12:30:43] Info: Rcon command handler 'map' registered [2012-01-30 12:30:43] Info: Rcon command handler 'exec' registered [2012-01-30 12:30:43] Info: Rcon command handler 'help' registered [2012-01-30 12:30:43] Info: Rcon command handler '?' registered (alias) [2012-01-30 12:30:43] Info: ModManager Rcon started [2012-01-30 12:30:43] Info: Module 'mm_rcon' v6.1 loaded [2012-01-30 12:30:43] Info: Module 'mm_rcon' initialised [2012-01-30 12:30:43] Info: Module 'mm_banmanager' v3.6 loaded [2012-01-30 12:30:43] Info: Rcon command handler 'bm' registered [2012-01-30 12:30:43] Info: Module 'mm_banmanager' initialised [2012-01-30 12:30:43] Info: Module 'mm_tk_punish' v2.2 loaded [2012-01-30 12:30:43] Error: Failed to load module 'mm_mapautosizer' ( No module named mm_mapautosizer ) [2012-01-30 12:30:43] Error: Traceback (most recent call last): File "admin\modmanager.py", line 588, in __loadModule module = __import__( module_name ) ImportError: No module named mm_mapautosizer [2012-01-30 12:30:43] Info: Module 'mm_kicker' v2.5 loaded [2012-01-30 12:30:43] Info: Module 'mm_announcer' v1.7 loaded [2012-01-30 12:30:43] Error: Failed to load module 'mm_ingameadmin' ( invalid syntax (mm_ingameadmin.py, line 38) ) [2012-01-30 12:30:43] Error: Traceback (most recent call last): File "admin\modmanager.py", line 588, in __loadModule module = __import__( module_name ) File "admin/modules\mm_ingameadmin.py", line 38 superadmins = [,'4fd6bf0770d634a2a0af8fb184705258',''] ^ SyntaxError: invalid syntax [2012-01-30 12:30:43] Error: Failed to load module 'mm_baserape_v1' ( unindent does not match any outer indentation level (mm_baserape_v1.py, line 214) ) [2012-01-30 12:30:43] Error: Traceback (most recent call last): File "admin\modmanager.py", line 588, in __loadModule module = __import__( module_name ) IndentationError: unindent does not match any outer indentation level (mm_baserape_v1.py, line 214) [2012-01-30 12:30:43] Info: Module 'mm_bf2cc' v7.0 loaded [2012-01-30 12:30:43] Info: Module 'mm_autobalance' v2.3 loaded [2012-01-30 12:30:43] Info: Module 'mm_reserver' v0.7 loaded [2012-01-30 12:30:43] Info: Loaded 6 additional modules [2012-01-30 12:30:43] Info: Rcon command handler 'mm' registered [2012-01-30 12:30:43] Info: Module 'mm_tk_punish' initialised [2012-01-30 12:30:43] Info: Rcon command handler 'kicker' registered [2012-01-30 12:30:43] Info: Module 'mm_kicker' initialised [2012-01-30 12:30:43] Info: Rcon command handler 'announcer' registered [2012-01-30 12:30:43] Info: Module 'mm_announcer' initialised [2012-01-30 12:30:43] Info: Rcon command handler 'bf2cc' registered [2012-01-30 12:30:43] Info: Module 'mm_bf2cc' initialised [2012-01-30 12:30:43] Info: Module 'mm_autobalance' initialised [2012-01-30 12:30:43] Info: Rcon command handler 'reserver' registered [2012-01-30 12:30:43] Info: Module 'mm_reserver' initialised [2012-01-30 12:30:43] Info: Initialised 6 modules [2012-01-30 12:31:02] Info: Validating maplist... [2012-01-30 12:31:02] Info: No maplist changes required вот что лог теперь кажет Сообщение отредактировал -Military- - 30.1.2012, 17:19 |
|
|
2.2.2012, 10:55
Сообщение
#18
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Помогите разобраться с установкой скрипта Scripts:AutoMap с http://bf2tech.org/index.php/Scripts:AutoMap, после установки перестает работать скрип автобалланса. Делаю так:
1. Создал файл /bf2/admin/standart_admin/dc_automap.py 2. Прописал в нем скрипт. 3. Далее в инструкции сказано добавить срочки Код import dc_automap dc_automap.init() в файл _init_.py , у меня их два: /bf2/admin/standart_admin/_init_.py и /bf2/admin/_init_.py /bf2/admin/_init_.py пустой а, /bf2/admin/standart_admin/_init_.py судя по содержимому содержит скрипты: автобалланс, тимкиллпаниш и т.п Код import autobalance import tk_punish import playerconnect autobalance.init() tk_punish.init() playerconnect.init() после редактирования получаем Код import autobalance import tk_punish import playerconnect import dc_automap autobalance.init() tk_punish.init() playerconnect.init() dc_automap.init() перезагружаю сервер и не работает скрипт автобалланса игроков, лог питона пишет: Раскрывающийся текст Persistant stats module initialized. Snapshot module initialized Medal awarding module initialized Global key string: &info=rank,ktm-,dfcp,rpar,vtm-,bksk,scor,wdsk,wkl-,heal,dsab,cdsc,tsql,tsqm,wins,vkl-,twsc,time,kill,rsup,tcdr,vac- initializing default admin/rcon module Traceback (most recent call last): File "admin/default.py", line 380, in init import standard_admin File "admin/standard_admin/__init__.py", line 4, in ? import dc_automap File "admin/standard_admin/dc_automap.py", line 9 maps_run_tracking = 3 ^ SyntaxError: invalid syntax Reset orderiterator to 0 based on highest pid kept Reloading players ткните пожалуйста носом в чем ошибка и как исправить |
|
|
2.2.2012, 12:03
Сообщение
#19
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Проблему нашел, при копировании кода скрипта в начало каждой строки подставился символ пробела, после удаления все заработало
|
|
|
10.2.2012, 10:35
Сообщение
#20
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
у кого нибудь имеется данный скрипт для бф2142. от бф2 он не подходит - выдаёт:
Цитата [2012-02-10 10:32:24] Error: Failed to load module 'mm_AntiBaseRape' ( unindent does not match any outer indentation level (mm_AntiBaseRape.py, line 214) ) [2012-02-10 10:32:24] Error: Traceback (most recent call last): File "admin\modmanager.py", line 588, in __loadModule module = __import__( module_name ) IndentationError: unindent does not match any outer indentation level (mm_AntiBaseRape.py, line 214) |
|
|
Текстовая версия | Сейчас: 26.9.2024, 18:11 |