|
Баг-репорты Описываем проблемы и ошибки работы ядра |
|
Опции темы | Поиск в этой теме | Опции просмотра |
31.03.2011, 00:27 | #1 |
Пользователь
Регистрация: 23.03.2010
Сообщений: 51
Сказал(а) спасибо: 14
Поблагодарили 32 раз(а) в 15 сообщениях
|
Локальные guid
На карту а со командой ставится Creature/Vehicle/Gameobject. На карту б командой ставится тот же тип. Если счетчик guidLow для этого типа совпадает у карты а и карты б - выходит большая задница, от перезаписи GameObject/Creature data до (если на какой-то из карт объект с таким гуид удаляют) оставшегося вообще без нее объекта на другой карте.
Странно, что никто не заметил до сих пор. О_о |
Пользователь сказал cпасибо: | Vladimir (03.04.2011) |
31.03.2011, 00:50 | #2 |
MaNGOS Dev
Регистрация: 22.06.2010
Сообщений: 78
Сказал(а) спасибо: 24
Поблагодарили 71 раз(а) в 25 сообщениях
|
Вы в этом уверены? Вроде как гуиды локальны для каждой карты и в глобальных контейнерах мы подобные объекты не держим. Поэтому удаление объекта 1 с карты А ни коим образом не влияет на объект В с таким же гуидом на карте 2. Так по крайней мере задумывалась сея феерическая система
|
31.03.2011, 02:27 | #3 | |
Пользователь
Регистрация: 23.03.2010
Сообщений: 51
Сказал(а) спасибо: 14
Поблагодарили 32 раз(а) в 15 сообщениях
|
Цитата:
Или, например, сюда: Последний раз редактировалось Vinolentus; 31.03.2011 в 02:41. |
|
31.03.2011, 04:25 | #4 |
Ученый
Регистрация: 13.03.2010
Сообщений: 110
Сказал(а) спасибо: 55
Поблагодарили 23 раз(а) в 14 сообщениях
|
Я вроде такое замечал - ставил моба на карту 0, затем такого же моба на карту 1. При этом моб с карты 0 таинственно исчезал из базы 0о
|
31.03.2011, 05:28 | #5 |
YTDB Dev
Регистрация: 01.02.2010
Сообщений: 288
Сказал(а) спасибо: 125
Поблагодарили 97 раз(а) в 53 сообщениях
|
А если потом резетнуть серв то они "таинственно" оба появятся.
|
31.03.2011, 05:40 | #6 | |
Пользователь
Регистрация: 23.03.2010
Сообщений: 51
Сказал(а) спасибо: 14
Поблагодарили 32 раз(а) в 15 сообщениях
|
Цитата:
|
|
31.03.2011, 08:20 | #7 |
MaNGOS Dev
Регистрация: 22.06.2010
Сообщений: 78
Сказал(а) спасибо: 24
Поблагодарили 71 раз(а) в 25 сообщениях
|
Мде, однако... Я бы подождал комментариев от Владимира по сему щепетильному вопросу перед тем как начать бегать и кричать "все пропало!". Т.к. как говорится, поспешные выводы - кратчайший путь к разочарованию (с).
Предварительно выглядит так, что переделали почти все, кроме запросов к БД и некоторых кусков кода, которые до сих пор расчитывают на уникальные GUIDы для объектов Душераздирающее зрелище (с) Последний раз редактировалось Ambal; 31.03.2011 в 08:29. |
31.03.2011, 08:55 | #8 |
Ученый
Регистрация: 02.04.2010
Сообщений: 237
Сказал(а) спасибо: 41
Поблагодарили 99 раз(а) в 44 сообщениях
|
Получается должно быть PRIMARY KEY (`guid`,`map`) ?
__________________
SpellWork Qt4 |
31.03.2011, 10:11 | #9 |
MaNGOS Dev
Регистрация: 22.06.2010
Сообщений: 78
Сказал(а) спасибо: 24
Поблагодарили 71 раз(а) в 25 сообщениях
|
|
31.03.2011, 14:22 | #10 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
|
01.04.2011, 12:14 | #12 |
Ученый
Регистрация: 02.04.2010
Сообщений: 237
Сказал(а) спасибо: 41
Поблагодарили 99 раз(а) в 44 сообщениях
|
Лорд имел ввиду что нужно будет для этих таблиц добавлять поле `map` так как гуиды будут одинаковые для разных карт, а в этих таблицах они как уникальные.
__________________
SpellWork Qt4 |
01.04.2011, 12:39 | #14 |
Администратор
|
Фуллгуид присваивается сервером?
Какую имеет длину поля? |
03.04.2011, 17:28 | #15 |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
Статические GUIDы (загружаемые из базы) глобальны - соответственно новый статический спавн _должен_ резервироваться для всех существующих карт (копий карт).
И должен нигде не быть занят в данный момент. Вообще-то спавн мобов из игры при локальности временых гуидов (которые используются на конкретной копии карты) и использовании следующего свободного гуида был всегда маразмом. Так как для нормальной базы гуиды статического заселения не должны идти с дырами в нумерации. И так 1) все в структуре базы и коде работы с загружаемым статически заселение правильно 2) не работают нормально GM команды спавна 3) как возможное решение резервировать при загрузке специальный интервал свободных гуидов сразу же после статического заселения для спавна из игры. Гуиды призываемых мобов и т.д. выделяются в таком случае после резервированого интревала. И при его окончании выдавать ошибку. В таком случае можно требовать презагрузки сервера для перевыделения интервала - можно в конфиге сделать указания размера резерва. Для рабочего сервера он не нужен (минимален), для тестового - может быть необходим более большой. [added]Я работаю над патчем. [added2]Реализовано в [11310]
__________________
Так как устал объяснять знайте ICQ не пользуюсь Последний раз редактировалось Vladimir; 03.04.2011 в 20:22. |
Пользователь сказал cпасибо: |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[11178] Catch use uint64 guid as low guid in ObjectGuid. | newsbot | CMaNGOS Commits | 0 | 17.02.2011 10:47 |
DataBase GUID sorter | Sid | Tools | 16 | 20.12.2010 10:06 |
[10812] Use ObjectGuid for corpse owner guid. | newsbot | CMaNGOS Commits | 0 | 02.12.2010 07:19 |
[10100] Fixed some cases assign low guid to full guid update field. | newsbot | CMaNGOS Commits | 0 | 23.06.2010 10:20 |
Локальные ресурсы YTDB (в т.ч. Документация Мангос от DeusModus и Руководство GIT) | tempura | Tools | 24 | 12.05.2010 14:50 |