Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Zaawansowany serwer CUWO - konfiguracja


Vipper

Rekomendowane odpowiedzi

Opublikowano
# -*- coding: utf-8 -*-

# nazwa serwera
server_name = 'cuwo server'            

# maksymalna liczba graczy, najlepiej doliczyć +1, jako slot
# zarezerwowany na pamięć RAM serwera (taki zapas),
max_players = 4                        

# SEED mapy
seed = 26879                           

# szybkość zmiany czasu na serwerze np. 2.0 to 2 krotnie szybszy upływ czasu
time_modifier = 1.0                            

# skrypty z podfolderu "sripts", można je wyłączyć, po prostu usuwasz nazwę
# wpisujesz tylko nazwy skryptów jako plików bez rozszerzenia
scripts = ['commands', 'welcome', 'ban']         

# hasło używane do zarządzania ważniejszymi parametrami serwera w grze
# niektóre skrypty korzystają
passwords = {
    'PASSWORDREPLACEME': ['admin']                

# Używanie skryptu powitalnego (welcome), nazwę serwera nadpisujesz %(server_name)s
# np. ["Witaj na mega serwerze o nazwie: %(server_name)s!",]
welcome = ["Welcome to %(server_name)s!",
           "(server powered by cuwo)"]

# Używanie skryptu IRC
irc_nickname = 'cuwobot'
irc_server = 'irc.esper.net'
irc_port = 6667
irc_channel = '#cuwo.bots'
irc_password = None
irc_commandprefix = '.'
irc_chatprefix = '#'

# Pliki graczy, ich charaktery itp. Wpisujesz nazwę aby włączyć,
# wpisujesz None aby wyłączyć. Po włączeniu gracze mają unikalne postacie
# nie te z Singla
profile_file = None

# Aktualna wersja
git_rev = '2c154e3'

Teraz opis skryptu Ban (jako jedyny, który warto edytować, pozostałe pozostawiacie bez zmian):

# Copyright (c) Mathias Kaerlev 2013.
#
# This file is part of cuwo.
#
# cuwo is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cuwo is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cuwo.  If not, see <http://www.gnu.org/licenses/>.

"""
Ban management
"""

from cuwo.script import ServerScript, command, admin, get_player

# teksty po: zbanowaniu, reason to powód
# druga opcja to podstawienie nicku na chatcie zbanowanego + powód
# trzecia to coś w stylu: Nie napisano przyczyny.
SELF_BANNED = 'You are banned: {reason}'
PLAYER_BANNED = '{name} has been banned: {reason}'
DEFAULT_REASON = 'No reason specified'

# baza danych, zbanowanych
DATA_NAME = 'banlist'


class BanServer(ServerScript):
    def on_load(self):
        self.ban_entries = self.server.load_data(DATA_NAME, {})

    def save_bans(self):
        self.server.save_data(DATA_NAME, self.ban_entries)

    def ban(self, ip, reason):
        self.ban_entries[ip] = reason
        self.save_bans()
        for connection in self.server.connections.values().copy():
            if connection.address.host != ip:
                continue
            name = connection.name
            if name is not None:
                connection.send_chat(SELF_BANNED.format(reason=reason))
            connection.disconnect()
            message = PLAYER_BANNED.format(name=name, reason=reason)
            print message
            self.server.send_chat(message)

    def on_connection_attempt(self, addr):
        try:
            reason = self.ban_entries[addr.host]
        except KeyError:
            return
        return SELF_BANNED.format(reason=reason)


def get_class():
    return BanServer


@command
@admin
def ban(script, name, *args):
    player = get_player(script.server, name)
    reason = ' '.join(args) or DEFAULT_REASON
    script.parent.ban(player.address.host, reason)

Pozdrawiam, w razie pytań pisać ;)

  • 5 miesięcy temu...

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...