Modmanager, Помогите найти скрипты! |
|
Здравствуйте, гость ( Вход | Регистрация )
Modmanager, Помогите найти скрипты! |
21.4.2011, 22:44
Сообщение
#21
|
|
Группа: Сообщений: 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 ) Установил как положенно не врубается модуль что не так подскажите ге править надо (Bf2 Naw_mod) сервер в локалке :no: |
|
|
22.4.2011, 7:47
Сообщение
#22
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
вот http://depositfiles.com/files/s92he2cj5 то, что у меня установлено и работает. распаковать в папку с сервером. если что-то не работает, поправишь. лишнее выкинешь, некогда всё проверять и сортировать.
|
|
|
19.5.2011, 23:16
Сообщение
#23
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Привет Всем! Парни выручайте, полетел винт , нашел все скрипты кроме waib 1.4 only medik.Если у кого есть выложите пожайлуста, буду примного блогадарен.
Сообщение отредактировал Neon_nm - 19.5.2011, 23:17 |
|
|
1.8.2011, 8:20
Сообщение
#24
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Здравствуйте!
Помогите пожалуйста,а проблема такая не работает скрипт 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 ) Сообщение отредактировал GIGABIT - 1.8.2011, 8:48 |
|
|
1.8.2011, 13:01
Сообщение
#25
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
mm_comdis.py - куда кинул?
|
|
|
2.8.2011, 8:04
Сообщение
#26
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
sh@rk
Ребята,Спасибо большое что обратили внимание! Проблема решена,забыла переименовать файл из"mm_comdis.txt" в "mm_comdis.py"=) Сообщение отредактировал GIGABIT - 2.8.2011, 8:05 |
|
|
23.9.2011, 9:32
Сообщение
#27
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
нет у кого скрипта автобаланса под мод манагер чтоб не разрушал взводы при смене карты и при смене сторон ?
или подскажите как сделать чтоб взводы оставались. http://bf2tech.org/index.php/Scripts я так понимаю больше не существует. |
|
|
23.9.2011, 15:57
Сообщение
#28
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Код # - так настраивай!# 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] смена сторон при окончание раунда... или тебе что-то другое нужно? |
|
|
23.9.2011, 16:05
Сообщение
#29
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
у меня так и настроено, 2 раунда на карте. после каждого раунда приходится в сквад (взвод) снова вступать.
|
|
|
23.9.2011, 18:05
Сообщение
#30
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
так это нормально! так и должно быть
|
|
|
23.9.2011, 18:10
Сообщение
#31
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
ненормально)) кто подскажет, как сделать чтобы хотя бы когда идет смена команд со сквадов не выбрасывало.
|
|
|
14.10.2011, 23:01
Сообщение
#32
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
не кому такая штука случаем не попадалась?! |
|
|
16.11.2011, 22:12
Сообщение
#33
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Тоже ищу... у кого есть поделитесь плиз
|
|
|
18.11.2011, 2:00
Сообщение
#34
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
я взял скрипт автобаланса из AD manager он правда для ПР разрабатывался, но все работает отлично, поставил рядом с модменеджером убрал из модменеджера скрипт автобаланса, в АД он лучше и гибче
ну там полно вкусностей, опять же и чат пишется, что я искал выше... Сообщение отредактировал Rafaraf - 18.11.2011, 2:02 |
|
|
18.11.2011, 6:28
Сообщение
#35
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
а поделися скриптом? Интересно глянуть что ты там вкусненькой на смотрел...
Сообщение отредактировал sh@rk - 18.11.2011, 6:29 |
|
|
19.11.2011, 1:11
Сообщение
#36
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
поддерживаю! охота посмотреть скриптик
|
|
|
26.11.2011, 23:05
Сообщение
#37
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
http://forum.povet.ru/files/file/40-ad-manager/
комплект с мануалом |
|
|
26.11.2011, 23:37
Сообщение
#38
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
спасибо :+:
|
|
|
1.2.2012, 9:23
Сообщение
#39
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
дайте другую сылку на этот скрипт
|
|
|
1.2.2012, 11:09
Сообщение
#40
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
зерколо - если вдруг ещё кому нужен этот скрипт... Сообщение #34
|
|
|
Текстовая версия | Сейчас: 27.9.2024, 0:18 |