Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Модификации ядра > Моды

Важная информация

Моды Неофициальная модификация ядра MaNGOS, собственные наработки, расширение функционала

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.03.2010, 19:41   #1
Feel the Power
Пользователь
 
Аватар для Feel the Power
 
Регистрация: 07.03.2010
Адрес: Беларусь, Минск
Сообщений: 58
Сказал(а) спасибо: 92
Поблагодарили 40 раз(а) в 17 сообщениях
Feel the Power Скоро придёт к известности
Отправить сообщение для Feel the Power с помощью ICQ
По умолчанию [mod] Server info, duel reset

Server info patch:
Добавляет возможность включать или выключать в конфиге показ в игре командой .server info информации о версии ядра, базы и скриптов.
Код:
ServerInfo = 1
Duel reset patch:
При предложении дуэли другому игроку теперь восстанавливаются жизни и мана у обоих членов дуэли, а также сбрасываются кулдауны, как на арене (меньше 15 минут). Можно включать/выключать в конфиге.
Код:
DuelReset = 0
По поводу второго патча: есть идея на реализацию сохранения значений кулдаунов всех спелов при предложении дуэли в отдельную таблицу и возвращении после окончания дуэли этих значений. Искал функцию, которую можно использовать для получения значений кулдауна, но так и не нашёл. Подскажите пожалуйста как это можно реализовать, или всё же я плохо искал?
Вложения
Тип файла: patch duel-reset.patch (3.3 Кб, 192 просмотров)
Тип файла: patch server-info.patch (3.7 Кб, 108 просмотров)

Последний раз редактировалось Feel the Power; 07.03.2010 в 22:05. Причина: перезалил server-info патч, исправил опечатку
Feel the Power вне форума   Ответить с цитированием
8 пользователя(ей) сказали cпасибо:
Dragon (07.03.2010), Hantet (09.03.2010), KiriX (07.03.2010), sven (07.03.2010)
Старый 07.03.2010, 21:18   #2
Destros
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от Feel the Power Посмотреть сообщение
Искал функцию, которую можно использовать для получения значений кулдауна, но так и не нашёл.
Функция
Код:
GetSpellCooldownDelay(SpellId);
вам может помочь. Находится в /src/game/Player.h
  Ответить с цитированием
Старый 07.03.2010, 21:38   #3
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию

Со вторым всё ясно, а вот первый - почему не отключить команду просто в базе?
KiriX вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Feel the Power (07.03.2010)
Старый 07.03.2010, 21:54   #4
Feel the Power
Пользователь
 
Аватар для Feel the Power
 
Регистрация: 07.03.2010
Адрес: Беларусь, Минск
Сообщений: 58
Сказал(а) спасибо: 92
Поблагодарили 40 раз(а) в 17 сообщениях
Feel the Power Скоро придёт к известности
Отправить сообщение для Feel the Power с помощью ICQ
По умолчанию

Хм... Имеем

Код:
bool HasSpellCooldown(uint32 spell_id) const
        {
            SpellCooldowns::const_iterator itr = m_spellCooldowns.find(spell_id);
            return itr != m_spellCooldowns.end() && itr->second.end > time(NULL);
        }
        time_t GetSpellCooldownDelay(uint32 spell_id) const
        {
            SpellCooldowns::const_iterator itr = m_spellCooldowns.find(spell_id);
            time_t t = time(NULL);
            return itr != m_spellCooldowns.end() && itr->second.end > t ? itr->second.end - t : 0;
        }
но не совсем понятно, что она возвращает...

Может быть проще обычными запросом
Код:
select * from `character_spell_cooldown` where guid = '%u'
собирать все значения в отдельную таблицу и потом просто добавить в обработчик завершения дуэли возвращение этих значений обычным добавлением в character_spell_cooldown или, если этого будет недостаточно, воспользоваться функцией добавления кулдауна (вроде бы я её видел)?


Цитата:
Сообщение от KiriX Посмотреть сообщение
Со вторым всё ясно, а вот первый - почему не отключить команду просто в базе?
В моё варианте остаётся показ текущего аптайма и онлайна.

add: Блин, в спешке переделывал патч под текущую ревизию и не заметил, что не туда поставил скобку.
Перезалил.

Последний раз редактировалось Feel the Power; 07.03.2010 в 22:03.
Feel the Power вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
Hantet (09.03.2010), KiriX (07.03.2010)
Старый 07.03.2010, 22:03   #5
Destros
Гость
 
Сообщений: n/a
По умолчанию

Скажем так, частое обращение к базе не очень хорошо.
  Ответить с цитированием
Старый 07.03.2010, 22:08   #6
Feel the Power
Пользователь
 
Аватар для Feel the Power
 
Регистрация: 07.03.2010
Адрес: Беларусь, Минск
Сообщений: 58
Сказал(а) спасибо: 92
Поблагодарили 40 раз(а) в 17 сообщениях
Feel the Power Скоро придёт к известности
Отправить сообщение для Feel the Power с помощью ICQ
По умолчанию

Цитата:
Сообщение от Destros Посмотреть сообщение
Скажем так, частое обращение к базе не очень хорошо.
Предлагаете хранить всё в памяти? А если сервер упадёт?
Feel the Power вне форума   Ответить с цитированием
Старый 07.03.2010, 22:25   #7
Destros
Гость
 
Сообщений: n/a
По умолчанию

Сервер падает редко всё-таки. И если упал, то не думаю, что будет очень плохо игрокам из-за того, что кулдауны остались такими же, как в дуэли. Всё-таки бывает это не так часто.
  Ответить с цитированием
Старый 08.03.2010, 19:06   #8
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Что бы не использовались кулдауны в дуэли, можно добавить проверку в Player::HasSpellCooldown, но надо отправлять Player::SendClearCooldown.
LordJZ вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
Feel the Power (08.03.2010), Hantet (09.03.2010)
Старый 08.03.2010, 21:41   #9
Feel the Power
Пользователь
 
Аватар для Feel the Power
 
Регистрация: 07.03.2010
Адрес: Беларусь, Минск
Сообщений: 58
Сказал(а) спасибо: 92
Поблагодарили 40 раз(а) в 17 сообщениях
Feel the Power Скоро придёт к известности
Отправить сообщение для Feel the Power с помощью ICQ
По умолчанию

Не всё ещё понимаю, так что пойду почитаю учебники.
Feel the Power вне форума   Ответить с цитированием
Ответ

« Предыдущей темы нет | [mod] PvP Ranks & Titles »
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CMSG LFD PLAYER LOCK INFO REQEST Sayongi Опкоды 0 12.11.2010 07:24
[10549] At schedule second reset update real reset time. newsbot CMaNGOS Commits 0 26.09.2010 23:21
[10107] Pool/event info in .npc info and .gobject target commands newsbot CMaNGOS Commits 1 26.06.2010 19:12
[9924] Implement .server log filter and .server log level comamnds. newsbot CMaNGOS Commits 0 18.05.2010 11:10
[9706] Correctly update next daily quest reset timestamp in DB after reset. newsbot CMaNGOS Commits 0 09.04.2010 15:00


Текущее время: 09:18. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot