YTDB

Вернуться   YTDB > Корзина / Trash > Архив MaNGOS (пока не было ru-mangos) > Патчи

Патчи Если кто-то хочет выложить не свой готовый патч - не забудьте указать автора и источник.

Если кто-то хочет задать вопрос по патчу - лучше не на этом форуме вообще.

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.01.2010, 20:58   #1
Nordway
Guest
 
Сообщений: n/a
По умолчанию [mod] История арены

Вообщем даж язык не поворачивается назвать это патчем, но тем неменее - игрокам приятно, админам полезно. Просто хотелось сделать так же как в Оруженой на Оф сервере.

Цель: в базу записывается каждая игра на арене, кто с кем, когда, на какой карте, кто победил, новый рейтинг.

Т.к. в C++ ноль, и в коде мангоса пока мало разбираюсь, сделал по простому "чтоб работало". Если кто подскажет куда лучше запихнуть добавленный мной код (или может его как-то изменить) буду признателен.

Патч:
Код:
diff --git a/src/game/BattleGround.cpp b/src/game/BattleGround.cpp
index c909a6e..a0ef7bd 100644
--- a/src/game/BattleGround.cpp
+++ b/src/game/BattleGround.cpp
@@ -826,6 +826,9 @@ void BattleGround::EndBattleGround(uint32 winner)
         // this way all arena team members will get notified, not only the ones who participated in this match
         winner_arena_team->NotifyStatsChanged();
         loser_arena_team->NotifyStatsChanged();
+		CharacterDatabase.BeginTransaction();
+		CharacterDatabase.PExecute("INSERT INTO arena_team_history (winner_team, winner_rating, loser_team, loser_rating, type, map) VALUES ('%u', '%u', '%u', '%u', '%u', '%u')", winner_arena_team->GetId(), winner_arena_team->GetRating(), loser_arena_team->GetId(), loser_arena_team->GetRating(), winner_arena_team->GetType(), GetMapId());
+		CharacterDatabase.CommitTransaction();
     }
 
     if (winmsg_id)
SQL (в базу чаров):
Код:
DROP TABLE IF EXISTS `arena_team_history`;
CREATE TABLE `arena_team_history` (
  `id` int(11) NOT NULL auto_increment COMMENT 'Identifier',
  `winner_team` int(10) unsigned NOT NULL default '0',
  `winner_rating` int(10) unsigned NOT NULL default '0',
  `loser_team` int(10) unsigned NOT NULL default '0',
  `loser_rating` int(10) unsigned NOT NULL default '0',
  `type` int(2) unsigned NOT NULL default '0',
  `map` int(10) unsigned NOT NULL default '0',
  `play_time` timestamp NOT NULL default CURRENT_TIMESTAMP,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
winner_team - записывается ID победившей команды
winner_rating - новый рейтинг победившей команды
loser_team - записывается ID проигравшей команды
loser_rating - новый рейтинг проигравшей команды
type - тип арены
map - ID карты (572 - лордерон, 559 - награнд, 562 - острогорье)
play_time - дата игры

Этих данных вполне хватит для небольшой статистики.


Для того чтобы можно было просматривать статистику самих матчей нужно будет сделать ещё одну таблицу, куда залить данные:
1. guid-ы игравших игроков
2. нанесённый ими урон\хил
3. количество смертельных ударов

Но пока что-то не получается найти те переменные, которые хранят эти данные для записи их в БД. Если кто поможет буду оч рад)


P.S. надеюсь из этой идеи получится хороший и полезный мод для серверов))
  Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
sven (07.01.2010)
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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



Текущее время: 13:59. Часовой пояс GMT +4.


YTDB - MaNGOS DataBase

Русский форум Мангос - официальный форум RMDC

Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума YTDB будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot
Punk's On-Air - Punk, Folk, Blues, Ska Bascinet - реконструкция denw IL-2 Training Книготорговая Компания «А-5» - художественная, учебная литература, скидки, опт и мелкий опт, доставка, дешево, низкие цены издательства