Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форумы Боевого Народа _ Форум администраторов _ Modmanager

Автор: bobby86 26.12.2010, 16:42

Увидел в нете описание скрипта для Модмэнеджера mm_squadlesskick . И теперь я хочу его найти!

Также необходим скрипт для запрета атаки незахватываемых баз (НБ)!

Плизз помогите если у кого такое есть!

Автор: Chitinec 29.12.2010, 13:28

http://bf2tech.org/index.php/Scripts - Вот тут есть скрипты и на запрет бэйз рейпа, и mm_squadlesskick, а также многие другие. yes.gif Используй!)

Автор: bobby86 4.1.2011, 8:22

Спасибо за ссылку!

Автор: bobby86 6.1.2011, 0:24

Не могу запустить скрипт AntiBaseRape. Пишет что он незагружен когда набираю команду listModules.

Я просто добавил этот файл "AntiBaseRape.py" в папку с модулями ММ и добавил его в список загружаемых модулей "modmanager.loadModule "AntiBaseRape".

Автор: Excavator 6.1.2011, 1:03

По ссылке выше скрипты не под "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 )

Автор: bobby86 7.1.2011, 21:49

Спасибо большое!

Автор: serg005 15.1.2011, 19:08

при заходе на 1 забугорный сервер видел надпись вверху типа
антоха мультикилл..помогите найти

Автор: Daimon_ 15.1.2011, 19:16

по моему скрипт хедшот подобную хрень пишет.

Автор: serg005 15.1.2011, 21:11

Daimon_ он пишет хед шот а мультикилл вроде другое чота ...да кстати недавно тоже заходил на забугшорный сервак а по середине правила идут по пунктам типа как анимация строчки сверху по середине вниз..

Автор: Rafaraf 29.3.2011, 1:44

помогите со скриптом который отслеживает PID=0
а то заходят редиректом из локальной версии - статы конечно нет у них, но с целью похулиганить...

и еще, где то попадался мне скрипт, который меняет очки при смене команды на негатив (на минус), это чтобы не перебегали при проигрыше за выигрывавшую команду...
под модманагер...

Автор: Daimon_ 29.3.2011, 9:29

Цитата
помогите со скриптом который отслеживает PID=0
а то заходят редиректом из локальной версии - статы конечно нет у них, но с целью похулиганить...
это тебе не поможет. можно и с ПИДом хулиганить и каждый раз его менять.
Цитата
и еще, где то попадался мне скрипт, который меняет очки при смене команды на негатив (на минус), это чтобы не перебегали при проигрыше за выигрывавшую команду...
а если автобаланс пару раз перекинет? сразу -250 очков?

Автор: Rafaraf 29.3.2011, 16:09

просто при переходе умножается на -1 перешел минус, вернулся плюс...
автобаланс перекидывает только тех кто не в скваде... а тут сквадовые игроки перебегают как куры..

есть ли скрипт чтобы админам перебросить игрока из одной команды в другую принудительно ?
правда автобаланс не спит... хм...

еще интересует скрипт, чтобы сбрасывал в текстовый файл чат...

http://bf2tech.org/index.php/Scripts:EventsPy

только как писать в лог, а не в консоль ?

Автор: dofamin 29.3.2011, 16:59

Цитата(Rafaraf @ Вторник, 29 Марта 2011, 15:09:10) *
просто при переходе умножается на -1 перешел минус, вернулся плюс...
автобаланс перекидывает только тех кто не в скваде... а тут сквадовые игроки перебегают как куры..

есть ли скрипт чтобы админам перебросить игрока из одной команды в другую принудительно ?
правда автобаланс не спит... хм...

еще интересует скрипт, чтобы сбрасывал в текстовый файл чат...

http://bf2tech.org/index.php/Scripts:EventsPy

только как писать в лог, а не в консоль ?

Отдельно скриптами не знаю, но перекидывание игроков и логи чата есть в bf2ccd, там еще есть и антимат.

Автор: Rafaraf 29.3.2011, 20:37

в принципе есть готовый ивент, надо только написать процедуру для события onChangeTеam (это я примерно привел, на глазок)
подскажите где посмотреть список событий баттлы ?

Автор: Rafaraf 30.3.2011, 0:34

чат то я вижу в bf2cc вопрос как его оттуда сбрасывать в файл ?

Автор: Daimon_ 30.3.2011, 7:07

Цитата(Rafaraf @ Среда, 30 Марта 2011, 00:34:52) *
чат то я вижу в bf2cc вопрос как его оттуда сбрасывать в файл ?

BF2CCD пишет логи чата. посмотри BF2CCD\bf2dchat_2011_03_09.log

Автор: Rafaraf 30.3.2011, 17:31

как в демоне запустить не bf2, а мод brw ?
не нашел указания запуска мода...

Автор: dofamin 30.3.2011, 17:58

Цитата(Rafaraf @ Среда, 30 Марта 2011, 16:31:10) *
как в демоне запустить не bf2, а мод brw ?
не нашел указания запуска мода...

В файле config.xml строчки
Код
    <GameExecArgs>+modPath mods/brw</GameExecArgs>
    <ModName>brw</ModName>

Автор: sh@rk 31.3.2011, 8:48

ну да чата я использую mm_iga
команда переброса такая !s <playerid>

Автор: Rafaraf 1.4.2011, 0:12

да что то попытка запустить bf2ccd кончилась восстановлением конфигов... у нас три сервера на одной машине крутятся...

насчет ингейм администратор, скрипт надо потестить поближе... как еще автобаланс на это отреагирует
не понял есть ли в нем возможность скидывать чат ?

Автор: DrroneZZ 21.4.2011, 22:44

Цитата(Excavator @ Четверг, 6 Января 2011, 01:03:42) *
По ссылке выше скрипты не под "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 )

Установил как положенно не врубается модуль что не так подскажите ге править надо (Bf2 Naw_mod) сервер в локалке :no:

Автор: Daimon_ 22.4.2011, 7:47

вот http://depositfiles.com/files/s92he2cj5 то, что у меня установлено и работает. распаковать в папку с сервером. если что-то не работает, поправишь. лишнее выкинешь, некогда всё проверять и сортировать.

Автор: Neon_nm 19.5.2011, 23:16

Привет Всем! Парни выручайте, полетел винт , нашел все скрипты кроме waib 1.4 only medik.Если у кого есть выложите пожайлуста, буду примного блогадарен.

Автор: GIGABIT 1.8.2011, 8:20

Здравствуйте!
Помогите пожалуйста,а проблема такая
не работает скрипт
mm_comdis.py

Вот его содержимое,может что не так? или я его не туда ставлю..
вот инструкция
Для админов: Копируем файл "mm_comdis.txt" в папку с модулями, переименовываем на "mm_comdis.py", прописываем скрипт в модменеджере на загрузку (modmanager.loadModule "mm_comdis")

Раскрывающийся текст
# Commander Kill System

# Module: comdis.py
# Author: REW
# Version: 1.0


import bf2
import host
import mm_utils
from bf2.stats.constants import *
from bf2 import g_debug

#debug flag
sks_debug = False # for verbose server console messages

#variable settings; intervals are in seconds
minP = 10 # max players for 'no commanders' mode
killInterval = 5 # time before a commander is killed
msgInterval = 90 # time between warning messages

#timers
msgTimer = None

#queue lists
killList = []

__version__ = 1.0

__required_modules__ = {
'modmanager': 1.2
}

__supports_reload__ = True

__description__ = "ModManager Commander Killer v%s" % __version__

class ComDis( object ):

def __init__( self, modManager ):
# ModManager reference
self.mm = modManager
self.__state = 0

# Initialize the kill system i.e. register game hooks.
def init( self ):
if 0 == self.__state:
host.registerHandler('PlayerSpawn', self.onPlayerSpawn, 1)
#host.registerHandler('EnterVehicle', self.onEnterVehicle, 1)
host.registerHandler('ChangedCommander', self.onChangedCommander, 1)
host.registerGameStatusHandler(self.onGameStatusChanged)
self.__state = 1

def onChangedCommander(self, team, oldCmd, newCmd):
self.CheckForCommander()

# On spawn, checks if the player is a commander.
# Player is added to kill list if player is a commander.
def onPlayerSpawn(self, p, vehicle):
self.CheckForCommander()

# On enter vehicle, checks if the any player is a commander.
# Player is added to kill list if player is a commander.
def onEnterVehicle( self, p, vehicle, freeSoldier):
self.CheckForCommander()

def CheckForCommander( self ):
global sks_debug
global killList, killInterval, minP
players = bf2.playerManager.getPlayers()
numP = bf2.playerManager.getNumberOfPlayers()
for pl in players:
if pl.isCommander() and numP <= minP:
# Add the player if not in kill list
if killList.count(pl.index) == 0:
killList.append(pl.index)

# Set timer for kill
bf2.Timer(self.onKillTimer, killInterval, 1)

# Issue kill warning
mm_utils.msg_server( "§3= SCRIPT: §C1001%s§C1001, §C1001NO COMMANDERS§C1001! You will §C1001DIE§C1001 in §C1001%s§C1001 sec! =" % ( pl.getName(), killInterval ))


# Sends out warning messages
def onMsgTimer(self, data):
global sks_debug
global minP
numP = bf2.playerManager.getNumberOfPlayers()
commander1 = bf2.playerManager.getCommander(1)
commander2 = bf2.playerManager.getCommander(2)
#if ((commander1 != None) or (commander2 != None)) and (numP <= minP):
if (numP <= minP):
mm_utils.msg_server( "= SCRIPT: §C1001NO COMMANDERS§C1001 or you will §C1001DIE§C1001! Players: §C1001%s§C1001<§C1001%s§C1001 =" % ( numP, minP+1 ) )

# Processes the kill list queue. The next player in queue
# is checked again and killed if a commander.
def onKillTimer(self, data):
global sks_debug
global killList
global minP

# Process the next player in queue.
p = bf2.playerManager.getPlayerByIndex(killList.pop(0))
numP = bf2.playerManager.getNumberOfPlayers()
# Player is still a commander, kill him.
if p.isCommander() and p.isValid() and p.isAlive() and (numP <= minP):
#host.rcon_invoke("admin.kickPlayer " + str(p.index))
vehicle = p.getVehicle()
rootVehicle = getRootParent(vehicle)
if getVehicleType(rootVehicle.templateName) == VEHICLE_TYPE_SOLDIER:
rootVehicle.setDamage(0)
# This should kill them !
else:
rootVehicle.setDamage(0.01)
# a vehicle will likely explode within 0.3 sec killing entire crew,
# not so sure about base defenses though
p.score.score = p.score.score - 5
mm_utils.msg_server( "= SCRIPT: commander §C1001%s§C1001 was punished by \'Commander Killer\' script =" % ( p.getName() ) )

# Handles clean up and initialization between rounds.
def onGameStatusChanged(self, status):
global killList
global msgInterval, msgTimer

if status == bf2.GameStatus.Playing:

# Set the warning timer.
msgTimer = bf2.Timer(self.onMsgTimer, msgInterval, 1)
msgTimer.setRecurring(msgInterval)

elif status == bf2.GameStatus.PreGame:

# Destroy any timers
msgTimer.destroy()
msgTimer = None

# Blank the list.
killList = []

elif status == bf2.GameStatus.EndGame:
pass


def shutdown( self ):
"""Shutdown and stop processing."""

# Unregister our handlers
host.unregisterGameStatusHandler( self.onGameStatusChanged )

# Unregister our game handlers
# Flag as shutdown as there is currently way to do this
self.__state = 2

def mm_load( modManager ):
"""Creates your object."""
return ComDis( modManager )

Автор: sh@rk 1.8.2011, 13:01

mm_comdis.py - куда кинул?

Автор: GIGABIT 2.8.2011, 8:04

sh@rk
Ребята,Спасибо большое что обратили внимание!
Проблема решена,забыла переименовать файл из"mm_comdis.txt"
в "mm_comdis.py"=)

Автор: uks_serg 23.9.2011, 9:32

нет у кого скрипта автобаланса под мод манагер чтоб не разрушал взводы при смене карты и при смене сторон ?
или подскажите как сделать чтоб взводы оставались.
http://bf2tech.org/index.php/Scripts я так понимаю больше не существует.

Автор: sh@rk 23.9.2011, 15:57

Код
#
# ModManager Team autobalance
#
mm_autobalance.allowCommander 0
mm_autobalance.allowSquadLeader 0
mm_autobalance.allowSquadMember 0
mm_autobalance.roundSwitch 1
- так настраивай!
mm_autobalance.allowCommander - [0/1] переброска командира
mm_autobalance.allowSquadLeader - [0/1] переброска лидера сквада
mm_autobalance.allowSquadMember - [0/1] переброска игроков из сквада
mm_autobalance.roundSwitch - [0/1] смена сторон при окончание раунда...
или тебе что-то другое нужно?

Автор: uks_serg 23.9.2011, 16:05

у меня так и настроено, 2 раунда на карте. после каждого раунда приходится в сквад (взвод) снова вступать.

Автор: sh@rk 23.9.2011, 18:05

так это нормально! так и должно быть

Автор: uks_serg 23.9.2011, 18:10

ненормально)) кто подскажет, как сделать чтобы хотя бы когда идет смена команд со сквадов не выбрасывало.

Автор: sh@rk 14.10.2011, 23:01


не кому такая штука случаем не попадалась?!

Автор: DeniM_FAGoT 16.11.2011, 22:12

Тоже ищу... у кого есть поделитесь плиз

Автор: Rafaraf 18.11.2011, 2:00

я взял скрипт автобаланса из AD manager он правда для ПР разрабатывался, но все работает отлично, поставил рядом с модменеджером убрал из модменеджера скрипт автобаланса, в АД он лучше и гибче
ну там полно вкусностей, опять же и чат пишется, что я искал выше...

Автор: sh@rk 18.11.2011, 6:28

а поделися скриптом? Интересно глянуть что ты там вкусненькой на смотрел...

Автор: DeniM_FAGoT 19.11.2011, 1:11

поддерживаю! охота посмотреть скриптик

Автор: Rafaraf 26.11.2011, 23:05

http://forum.povet.ru/files/file/40-ad-manager/
комплект с мануалом

Автор: DeniM_FAGoT 26.11.2011, 23:37

спасибо :+:

Автор: $korpi()n 1.2.2012, 9:23

дайте другую сылку на этот скрипт

Автор: sh@rk 1.2.2012, 11:09

http://bf2.novgames.ru/files/ad_framework_v1_3.zip - если вдруг ещё кому нужен этот скрипт... http://xn----8sbbemc3a7aecex.xn--p1ai/forum/index.php?s=&showtopic=68266&view=findpost&p=1580902

Автор: Vostok3Bit 19.5.2012, 14:54

Обе ссылки не работают. Может быть обновите , мужики?

Автор: sh@rk 20.5.2012, 7:10

если уточнишь что нужно)

Автор: oleg-sn 13.4.2013, 22:52

Народ дайте ктонить ссыль на скрипт который добавляет ботов на сервак ,дабы висели тушки мёртвые для массы на серваке.

Форум Invision Power Board (http://nulled.cc)
© Invision Power Services (http://nulled.cc)