www.mudconnector.su

Национальный мадконнектор.
Текущее время: Пт мар 29, 2024 1:53 am

Часовой пояс: UTC + 3 часа [ Летнее время ]


Правила форума


В связи с тем, что данные форумы являются неофициальным местом общения игроков друг с другом и с ГМами, ненормативная лексика не допустима. Пожалуйста воздержитесь от ее использования, в комьюнити не мало женщин и детей...



Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Re: Несколько мад-движков
СообщениеДобавлено: Ср окт 01, 2014 4:14 pm 
Не в сети

Зарегистрирован: Пн июн 22, 2009 4:08 pm
Сообщений: 311
KadVar писал(а):
Чего хорошего от питона, кроме тормозов вы получите ?
Или там очень качественный и продуманный API ?

1) Тормоза ?:) При текущем соотношении цена/характеристики сервера для мада тормозов не должно быть.
2) Скорость разработки, простота языка. Для мада это очень критично, так как обычно лишь несколько людей что-то делают и вышеперечисленные параметры существенно ускоряют разработку/допиливание мада.
3) Гибкость. Примеры:
Вот примерно такой формат имеет файл .mob (кусок из него)
Код:
  me.aux("stats").names = ['Сила', 'Ловкость', 'Ум', 'Тело', 'Жизни']
  me.aux("stats").values = [1, 2, 1, 1, 3]

К примеру, можно сделать рандомную силу:
Код:
me.aux("stats").values = [random(0,5), 2, 1, 1, 3]

Или добавить новых характеристик:
Код:
me.aux("stats").names = ['Сила', 'Ловкость', 'Ум', 'Тело', 'Жизни', 'Мудрость']

Сам формат зон похож на формат зон CircleMUD

Пример игровой команды afk
Код:

def remove_afk(ch):
    ''Для удаления префикса AFK'''
    if ch.prfs == 'АFK':
        ch.prfs = 'none'
    else:
        prfs = ch.prfs.split(', ')
        prfs.remove('AFK')
        ch.prfs = ', '.join(prfs)
    # очень удобно, у каждого чара есть такой ассоциативный     динамический массив, который вроде даже умеет сохранятся после ребута
    ch.delvar('afkmessage')
    ch.send('Вы вернулись к нам.')

def set_afk(ch):
    '''Установка статуса afk чару.'''
    if ch.prfs == 'none':
        ch.prfs = 'AFK'
    else:
        ch.prfs += ', AFK'
    ch.send('Вы отошли от клавиатуры')

def afk_event(owner, void, info):
    '''Событие, которое устанавливает AFK для неактивных игроков'''
    # доступ к сокетам можно получить из python'a
    # насколько я понял, через питон можно вообще реализовать ВСЕ
    for sock in mudsock.socket_list():
        if sock.idle_time >= 300:
            if sock.account != None:
                if sock.ch != None:
                    set_afk(sock.ch)
    event.start_event(None, 300, afk_event, None, '')

def afk_command_hook(info):
    '''Удаляем AFK у игрока'''
    ch, cmd, arg = hooks.parse_info(info)

    #no point in continue
    if not ch.hasPrefs('AFK') or ch.is_npc or cmd == 'AFK':
        return

    remove_afk(ch)

def afk_from_game(info):
    ''Удаляем флаг у игрока, если он вышел'''
    ch, = hooks.parse_info(info)

    #no point in continue
    if not ch.hasPrefs('AFK') or ch.is_npc:
        return

    remove_afk(ch)

def setafk_hook(info):
    '''Добавляем евент в список евентов'''
    event.start_event(None, 300, afk_event, None, '')

def cmd_afk(ch, cmd, arg):
    '''Использование: afk [сообщение]

    Устанавливает режим afk''
    if ch.hasPrefs('AFK'):
        remove_afk(ch)
    else:
        set_afk(ch)
    if len(arg) > 0:
        ch.setvar('afkmessage', arg)
        ch.send('Во время AFK вы будете отвечать:: ' + arg)

# добавляем команду в список команд
mudsys.add_cmd('afk', None, cmd_afk, 'player', False)

# создаем поле у чара
mudsys.create_bit('char_prfs', 'afk')

# вешаем события
hooks.add('char_from_game', afk_from_game)
hooks.add('command', afk_command_hook)
hooks.add('start', setafk_hook)

# кстати, очень удобно для того, чтобы не ребутать мад, если изменили код
def __unload__():
    '''removes the hooks for afk mode.'''
    hooks.remove('char_from_game', afk_from_game)
    hooks.remove('command', afk_command_hook)
    hooks.remove('start', setafk_hook)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Несколько мад-движков
СообщениеДобавлено: Ср окт 01, 2014 4:24 pm 
Не в сети
Site Admin

Зарегистрирован: Пт май 16, 2008 4:14 pm
Сообщений: 1416
Не знаю, если вам проще писать на питоне, то мне на С# (к примеру).
Уж не знаю чем питон существенно лучше для описанной вами задачи.
Есть какие-то причины, по которым он лучше ? Какие ?
Как там с сериализацие ? С дебагом всего этого ?
Что происходит при ошибках в скриптах ?

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


Единственное место где скрипт-языки имеют большой смысл - специфичное
поведение в зонах, возможно еще описание базового АИ.
И то за счет своей упрощенности.

ЗЫ. Вы зря пытаетесь найти "золотую пулю". Всё равно придется вкалывать, и немало.
Без этого "не взлетит".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Несколько мад-движков
СообщениеДобавлено: Ср окт 01, 2014 4:26 pm 
Не в сети
Site Admin

Зарегистрирован: Пт май 16, 2008 4:14 pm
Сообщений: 1416
Код:
if ch.prfs == 'АFK':
        ch.prfs = 'none'
    else:
        prfs = ch.prfs.split(', ')
        prfs.remove('AFK')
        ch.prfs = ', '.join(prfs)


Это... ммм... что такое и что оно делает и зачем ?
Что такое ch.prfs ?

ЗЫ. И да, надежды на то, что "как ни пиши - производительности хватит" - беспочвенны.
Всего пяток строк написанных идиотом сожрут ЛЮБОЙ сервак. Вижу такое регулярно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Несколько мад-движков
СообщениеДобавлено: Ср окт 01, 2014 6:51 pm 
Не в сети

Зарегистрирован: Пн июн 22, 2009 4:08 pm
Сообщений: 311
KadVar писал(а):
Какие ?

Он проще :) Для Вас может быть и нет.
С дебагом в питоне все нормально.
KadVar писал(а):
Что такое ch.prfs ?

Титул персонажа.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Несколько мад-движков
СообщениеДобавлено: Ср окт 01, 2014 7:37 pm 
Не в сети

Зарегистрирован: Пн май 27, 2013 4:34 pm
Сообщений: 105
KadVar писал(а):
Это... ммм... что такое и что оно делает и зачем ?

Судя по коду - добавление статуса AFK в строку.
Если в статусе только AFK, то делаем статус none. (Пустой ???, почему строкой none ?)
Иначе рззбиваем на подстроки по делителю запятая, удаляем подстроку с AFK, и опять клеим их в одну строку, через запятую.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Несколько мад-движков
СообщениеДобавлено: Чт окт 02, 2014 12:08 pm 
Не в сети
Site Admin

Зарегистрирован: Пт май 16, 2008 4:14 pm
Сообщений: 1416
Бодрич писал(а):
Титул персонажа.

Да вы охренели :) ?
Почему это не character.title -то ?
Это - пример удобного api ?
Нафига вообще трогать title ?
Тут конечно вопрос связности, но яб уж лучше в части вывода титула сделал эти изменения.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Несколько мад-движков
СообщениеДобавлено: Чт окт 02, 2014 12:09 pm 
Не в сети
Site Admin

Зарегистрирован: Пт май 16, 2008 4:14 pm
Сообщений: 1416
ArtistSpb писал(а):
KadVar писал(а):
Это... ммм... что такое и что оно делает и зачем ?

Судя по коду - добавление статуса AFK в строку.
Если в статусе только AFK, то делаем статус none. (Пустой ???, почему строкой none ?)
Иначе рззбиваем на подстроки по делителю запятая, удаляем подстроку с AFK, и опять клеим их в одну строку, через запятую.


Только мне кажется, что это... немного... черезчур.... ?
Что можно завести некий флаг типа bool показывающий afk человек или нет и проверять его ?
Что для определения истинности или ложности чего-либо делать массивные операции со строками... как-то
ну... не очень верно что-ли ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Несколько мад-движков
СообщениеДобавлено: Чт окт 02, 2014 2:50 pm 
Не в сети

Зарегистрирован: Пн июн 22, 2009 4:08 pm
Сообщений: 311
KadVar писал(а):
ну... не очень верно что-ли ?

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Несколько мад-движков
СообщениеДобавлено: Чт окт 02, 2014 3:05 pm 
Не в сети
Site Admin

Зарегистрирован: Пт май 16, 2008 4:14 pm
Сообщений: 1416
Бодрич писал(а):
KadVar писал(а):
ну... не очень верно что-ли ?

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


Цитата:
И вообще, разве нас может интересовать мнение человека лысого, с таким носом? Пусть сначала исправит нос, отрастит волосы, а потом и выскажется.
(с) Жванецкий

Что я еще могу вам сказать... вижу вы заинтересованы в самолюбовании, а не в улучшении своих способностей
писать нормальный код. Я в эту игру не играю. Извините. Пишите что хотите, хоть на питоне, хоть на braifucking-е.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Несколько мад-движков
СообщениеДобавлено: Пт окт 03, 2014 8:47 pm 
Не в сети

Зарегистрирован: Пн июн 22, 2009 4:08 pm
Сообщений: 311
KadVar писал(а):
Что я еще могу вам сказать... вижу вы заинтересованы в самолюбовании, а не в улучшении своих способностей
писать нормальный код. Я в эту игру не играю. Извините. Пишите что хотите, хоть на питоне, хоть на braifucking-е.


Эм, что ?
Кстати, Вы так ничего нормального из своего кода не показали.
Логично, что я пошел смотреть на Ваш единственный доступный проект - мад (Ведь тут форум про мады, верно ?) И что же я вижу - мад прямиком из нулевых (версия былин 2000 года находится примерно на том же развитии, что и Ваш мад). На сайте дела не лучше (редактор зон работает вообще только под !дос!).


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу Пред.  1, 2, 3  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron