Добро пожаловать на форумы Боевого Народа (бывший форум Live.CNews.ru)!

ВАЖНЫЕ ТЕМЫ: FAQ по переезду и восстановлению учеток | Ошибки и глюки форума.
О проблемах с учетными записями писать СЮДА.
ищу baserape под сервер 1.5,win32 - Форумы Боевого Народа
IPB

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
ищу 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)


Перейти в начало страницы
Вставить ник
+Цитировать сообщение

2 страниц V   1 2 >
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28.4.2024, 19:25
Консультации адвоката по уголовным делам. Бесплатно. По всей России