Modmanager, Помогите найти скрипты! |
|
Здравствуйте, гость ( Вход | Регистрация )
Modmanager, Помогите найти скрипты! |
26.12.2010, 16:42
Сообщение
#1
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Увидел в нете описание скрипта для Модмэнеджера mm_squadlesskick . И теперь я хочу его найти!
Также необходим скрипт для запрета атаки незахватываемых баз (НБ)! Плизз помогите если у кого такое есть! |
|
|
29.12.2010, 13:28
Сообщение
#2
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Скрипты для сервера BF2 - Вот тут есть скрипты и на запрет бэйз рейпа, и mm_squadlesskick, а также многие другие. Используй!)
|
|
|
4.1.2011, 8:22
Сообщение
#3
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Спасибо за ссылку!
|
|
|
6.1.2011, 0:24
Сообщение
#4
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Не могу запустить скрипт AntiBaseRape. Пишет что он незагружен когда набираю команду listModules.
Я просто добавил этот файл "AntiBaseRape.py" в папку с модулями ММ и добавил его в список загружаемых модулей "modmanager.loadModule "AntiBaseRape". |
|
|
6.1.2011, 1:03
Сообщение
#5
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
По ссылке выше скрипты не под "MM", а под "default". Так-то оно роли не играет, подправил и работает.
mm_antirape.py Раскрывающийся текст Код # ------------------------------------------------------------------------ # 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 __supported_games__ = { 'bf2': True, 'bf2142': True, 'bfheroes': False } # Set the description of your module here __description__ = "AntiBaseRape v%s" % __version__ # ------------------------------------------------------------------------ # Constants # ------------------------------------------------------------------------ DEFAULT_SAFEBASE_RADIUS = 30 # 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 = 100 # 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 += -10 attacker.score.score += -20 - 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() + "§c1001 is punished for repeated violating of the no kill rules within safe base area") else: mm_utils.msg_server(player.getName() + "§c1001 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 ) |
|
|
7.1.2011, 21:49
Сообщение
#6
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Спасибо большое!
|
|
|
15.1.2011, 19:08
Сообщение
#7
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
при заходе на 1 забугорный сервер видел надпись вверху типа
антоха мультикилл..помогите найти |
|
|
15.1.2011, 19:16
Сообщение
#8
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
по моему скрипт хедшот подобную хрень пишет.
|
|
|
15.1.2011, 21:11
Сообщение
#9
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Daimon_ он пишет хед шот а мультикилл вроде другое чота ...да кстати недавно тоже заходил на забугшорный сервак а по середине правила идут по пунктам типа как анимация строчки сверху по середине вниз..
|
|
|
29.3.2011, 1:44
Сообщение
#10
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
помогите со скриптом который отслеживает PID=0
а то заходят редиректом из локальной версии - статы конечно нет у них, но с целью похулиганить... и еще, где то попадался мне скрипт, который меняет очки при смене команды на негатив (на минус), это чтобы не перебегали при проигрыше за выигрывавшую команду... под модманагер... Сообщение отредактировал Rafaraf - 29.3.2011, 1:45 |
|
|
29.3.2011, 9:29
Сообщение
#11
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Цитата помогите со скриптом который отслеживает PID=0 это тебе не поможет. можно и с ПИДом хулиганить и каждый раз его менять.а то заходят редиректом из локальной версии - статы конечно нет у них, но с целью похулиганить... Цитата и еще, где то попадался мне скрипт, который меняет очки при смене команды на негатив (на минус), это чтобы не перебегали при проигрыше за выигрывавшую команду... а если автобаланс пару раз перекинет? сразу -250 очков?
Сообщение отредактировал Daimon_ - 29.3.2011, 9:30 |
|
|
29.3.2011, 16:09
Сообщение
#12
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
просто при переходе умножается на -1 перешел минус, вернулся плюс...
автобаланс перекидывает только тех кто не в скваде... а тут сквадовые игроки перебегают как куры.. есть ли скрипт чтобы админам перебросить игрока из одной команды в другую принудительно ? правда автобаланс не спит... хм... еще интересует скрипт, чтобы сбрасывал в текстовый файл чат... http://bf2tech.org/index.php/Scripts:EventsPy только как писать в лог, а не в консоль ? Сообщение отредактировал Rafaraf - 29.3.2011, 16:29 |
|
|
29.3.2011, 16:59
Сообщение
#13
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
просто при переходе умножается на -1 перешел минус, вернулся плюс... автобаланс перекидывает только тех кто не в скваде... а тут сквадовые игроки перебегают как куры.. есть ли скрипт чтобы админам перебросить игрока из одной команды в другую принудительно ? правда автобаланс не спит... хм... еще интересует скрипт, чтобы сбрасывал в текстовый файл чат... http://bf2tech.org/index.php/Scripts:EventsPy только как писать в лог, а не в консоль ? Отдельно скриптами не знаю, но перекидывание игроков и логи чата есть в bf2ccd, там еще есть и антимат. |
|
|
29.3.2011, 20:37
Сообщение
#14
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
в принципе есть готовый ивент, надо только написать процедуру для события onChangeTеam (это я примерно привел, на глазок)
подскажите где посмотреть список событий баттлы ? |
|
|
30.3.2011, 0:34
Сообщение
#15
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
чат то я вижу в bf2cc вопрос как его оттуда сбрасывать в файл ?
|
|
|
30.3.2011, 7:07
Сообщение
#16
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
|
|
|
30.3.2011, 17:31
Сообщение
#17
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
как в демоне запустить не bf2, а мод brw ?
не нашел указания запуска мода... |
|
|
30.3.2011, 17:58
Сообщение
#18
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
|
|
|
31.3.2011, 8:48
Сообщение
#19
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
ну да чата я использую mm_iga
команда переброса такая !s <playerid> |
|
|
1.4.2011, 0:12
Сообщение
#20
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
да что то попытка запустить bf2ccd кончилась восстановлением конфигов... у нас три сервера на одной машине крутятся...
насчет ингейм администратор, скрипт надо потестить поближе... как еще автобаланс на это отреагирует не понял есть ли в нем возможность скидывать чат ? |
|
|
Текстовая версия | Сейчас: 27.9.2024, 7:48 |