Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Баг-репорты

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

Баг-репорты Описываем проблемы и ошибки работы ядра

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 31.03.2011, 00:27   #1
Vinolentus
Пользователь
 
Регистрация: 23.03.2010
Сообщений: 51
Сказал(а) спасибо: 14
Поблагодарили 32 раз(а) в 15 сообщениях
Vinolentus На верном пути
По умолчанию Локальные guid

На карту а со командой ставится Creature/Vehicle/Gameobject. На карту б командой ставится тот же тип. Если счетчик guidLow для этого типа совпадает у карты а и карты б - выходит большая задница, от перезаписи GameObject/Creature data до (если на какой-то из карт объект с таким гуид удаляют) оставшегося вообще без нее объекта на другой карте.
Странно, что никто не заметил до сих пор. О_о
Vinolentus вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Vladimir (03.04.2011)
Старый 31.03.2011, 00:50   #2
Ambal
MaNGOS Dev
 
Аватар для Ambal
 
Регистрация: 22.06.2010
Сообщений: 78
Сказал(а) спасибо: 24
Поблагодарили 71 раз(а) в 25 сообщениях
Ambal Скоро придёт к известности
По умолчанию

Вы в этом уверены? Вроде как гуиды локальны для каждой карты и в глобальных контейнерах мы подобные объекты не держим. Поэтому удаление объекта 1 с карты А ни коим образом не влияет на объект В с таким же гуидом на карте 2. Так по крайней мере задумывалась сея феерическая система
Ambal вне форума   Ответить с цитированием
Старый 31.03.2011, 02:27   #3
Vinolentus
Пользователь
 
Регистрация: 23.03.2010
Сообщений: 51
Сказал(а) спасибо: 14
Поблагодарили 32 раз(а) в 15 сообщениях
Vinolentus На верном пути
По умолчанию

Цитата:
удаление объекта 1 с карты А ни коим образом не влияет на объект В с таким же гуидом на карте 2.
Если они временные. Посмотрите на mGameObjectDataMap и mCreatureDataMap. Они глобальны в той степени, в которой могут быть глобальны переменные одиночки-ObjectMgr'a. Ключ - guid %)
Или, например, сюда:

Последний раз редактировалось Vinolentus; 31.03.2011 в 02:41.
Vinolentus вне форума   Ответить с цитированием
Старый 31.03.2011, 04:25   #4
SeT
Ученый
 
Аватар для SeT
 
Регистрация: 13.03.2010
Сообщений: 110
Сказал(а) спасибо: 55
Поблагодарили 23 раз(а) в 14 сообщениях
SeT На верном пути
По умолчанию

Я вроде такое замечал - ставил моба на карту 0, затем такого же моба на карту 1. При этом моб с карты 0 таинственно исчезал из базы 0о
SeT вне форума   Ответить с цитированием
Старый 31.03.2011, 05:28   #5
YuruY
YTDB Dev
 
Аватар для YuruY
 
Регистрация: 01.02.2010
Сообщений: 288
Сказал(а) спасибо: 125
Поблагодарили 97 раз(а) в 53 сообщениях
YuruY Скоро придёт к известностиYuruY Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от SeT Посмотреть сообщение
Я вроде такое замечал - ставил моба на карту 0, затем такого же моба на карту 1. При этом моб с карты 0 таинственно исчезал из базы 0о
А если потом резетнуть серв то они "таинственно" оба появятся.
__________________
http://ytdb.ru/
http://svn2.assembla.com/svn/ytdbase/
YuruY вне форума   Ответить с цитированием
Старый 31.03.2011, 05:40   #6
Vinolentus
Пользователь
 
Регистрация: 23.03.2010
Сообщений: 51
Сказал(а) спасибо: 14
Поблагодарили 32 раз(а) в 15 сообщениях
Vinolentus На верном пути
По умолчанию

Цитата:
А если потом резетнуть серв то они "таинственно" оба появятся.
Вы не читали третий пост?
Vinolentus вне форума   Ответить с цитированием
Старый 31.03.2011, 08:20   #7
Ambal
MaNGOS Dev
 
Аватар для Ambal
 
Регистрация: 22.06.2010
Сообщений: 78
Сказал(а) спасибо: 24
Поблагодарили 71 раз(а) в 25 сообщениях
Ambal Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от Vinolentus Посмотреть сообщение
Вы не читали третий пост?
Мде, однако... Я бы подождал комментариев от Владимира по сему щепетильному вопросу перед тем как начать бегать и кричать "все пропало!". Т.к. как говорится, поспешные выводы - кратчайший путь к разочарованию (с).

Предварительно выглядит так, что переделали почти все, кроме запросов к БД и некоторых кусков кода, которые до сих пор расчитывают на уникальные GUIDы для объектов Душераздирающее зрелище (с)

Последний раз редактировалось Ambal; 31.03.2011 в 08:29.
Ambal вне форума   Ответить с цитированием
Старый 31.03.2011, 08:55   #8
Sid
Ученый
 
Аватар для Sid
 
Регистрация: 02.04.2010
Сообщений: 237
Сказал(а) спасибо: 41
Поблагодарили 99 раз(а) в 44 сообщениях
Sid Скоро придёт к известностиSid Скоро придёт к известности
По умолчанию

Получается должно быть PRIMARY KEY (`guid`,`map`) ?
__________________
SpellWork Qt4
Sid вне форума   Ответить с цитированием
Старый 31.03.2011, 10:11   #9
Ambal
MaNGOS Dev
 
Аватар для Ambal
 
Регистрация: 22.06.2010
Сообщений: 78
Сказал(а) спасибо: 24
Поблагодарили 71 раз(а) в 25 сообщениях
Ambal Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от Sid Посмотреть сообщение
Получается должно быть PRIMARY KEY (`guid`,`map`) ?
Нужно учитывать тогда и instanceID. Если это, конечно, еще не учтено...
Ambal вне форума   Ответить с цитированием
Старый 31.03.2011, 14:22   #10
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от Sid Посмотреть сообщение
Получается должно быть PRIMARY KEY (`guid`,`map`) ?
Ага, и переделывать все *_script, npc_gossip и др. для поддержки.
LordJZ вне форума   Ответить с цитированием
Старый 01.04.2011, 07:38   #11
rsa
Почетный флудер
Старожил
 
Аватар для rsa
 
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
rsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от LordJZ Посмотреть сообщение
Ага, и переделывать все *_script, npc_gossip и др. для поддержки.
зачем? эта вся возня периферию кода никак затронуть не должна.
rsa вне форума   Ответить с цитированием
Старый 01.04.2011, 12:14   #12
Sid
Ученый
 
Аватар для Sid
 
Регистрация: 02.04.2010
Сообщений: 237
Сказал(а) спасибо: 41
Поблагодарили 99 раз(а) в 44 сообщениях
Sid Скоро придёт к известностиSid Скоро придёт к известности
По умолчанию

Лорд имел ввиду что нужно будет для этих таблиц добавлять поле `map` так как гуиды будут одинаковые для разных карт, а в этих таблицах они как уникальные.
__________________
SpellWork Qt4
Sid вне форума   Ответить с цитированием
Старый 01.04.2011, 12:31   #13
rsa
Почетный флудер
Старожил
 
Аватар для rsa
 
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
rsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранита
По умолчанию

в гуиде полно места. можно пару байт на карту потратить, а в таблицах хранить не каунтер а фуллгуид.
rsa вне форума   Ответить с цитированием
Старый 01.04.2011, 12:39   #14
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

Фуллгуид присваивается сервером?
Какую имеет длину поля?
virusav вне форума   Ответить с цитированием
Старый 03.04.2011, 17:28   #15
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

Статические GUIDы (загружаемые из базы) глобальны - соответственно новый статический спавн _должен_ резервироваться для всех существующих карт (копий карт).
И должен нигде не быть занят в данный момент. Вообще-то спавн мобов из игры при локальности временых гуидов (которые используются на конкретной копии карты) и использовании следующего свободного гуида был всегда маразмом. Так как для нормальной базы гуиды статического заселения не должны идти с дырами в нумерации.

И так
1) все в структуре базы и коде работы с загружаемым статически заселение правильно
2) не работают нормально GM команды спавна
3) как возможное решение резервировать при загрузке специальный интервал свободных гуидов сразу же после статического заселения для спавна из игры. Гуиды призываемых мобов и т.д. выделяются в таком случае после резервированого интревала. И при его окончании выдавать ошибку. В таком случае можно требовать презагрузки сервера для перевыделения интервала - можно в конфиге сделать указания размера резерва. Для рабочего сервера он не нужен (минимален), для тестового - может быть необходим более большой.

[added]Я работаю над патчем.

[added2]Реализовано в [11310]
__________________
Так как устал объяснять знайте ICQ не пользуюсь

Последний раз редактировалось Vladimir; 03.04.2011 в 20:22.
Vladimir вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Ответ

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

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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[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


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


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