|
Принятые Патчи, принятые разработчиками ScripDev2 |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
05.08.2010, 23:53 | #1 |
Администратор
|
[QUEST=11865]Им рано умирать
По сниффам в данном квесте используем итем, который активирует го, после чего спавнится го (шкура), спавнится нпц, который говорит рандомно 1 из 4 фраз, идет к го (ловушка), использует ее и умирает от ее спелла, игрок получает +1.
Патч во вложении. Запросы: 1. Для базы игрового мира: Код:
DELETE FROM `spell_script_target` WHERE `entry`=46085; INSERT INTO `spell_script_target` SET `entry`=46085, `type`=0, `targetentry`=187983; DELETE FROM `gameobject` WHERE `id`=187983; INSERT INTO `gameobject` (`id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) SELECT 187983, `gameobject`.`map`, `gameobject`.`spawnMask`, `gameobject`.`phaseMask`, `gameobject`.`position_x`, `gameobject`.`position_y`, `gameobject`.`position_z`, `gameobject`.`orientation`, `gameobject`.`rotation0`, `gameobject`.`rotation1`, `gameobject`.`rotation2`, `gameobject`.`rotation3`, -`gameobject`.`spawntimesecs`, `gameobject`.`animprogress`, `gameobject`.`state` FROM `gameobject`, `gameobject_template` WHERE `gameobject`.`id`=`gameobject_template`.`entry` AND `gameobject_template`.`name`='Caribou Trap'; UPDATE `gameobject_template` SET `scriptname`='go_high_quality_fur' WHERE `entry`=187983; UPDATE `gameobject_template` SET `flags`=4 WHERE `name`='Caribou Trap'; DELETE FROM `creature` WHERE `id`=25835; UPDATE `creature_template` SET `unit_flags`=33024, `scriptname`='npc_nesingwary_trapper' WHERE `entry`=25835; Код:
DELETE FROM `script_texts` WHERE `entry` IN (-1000006,-1000007,-1000008, -1000009); INSERT INTO `script_texts` (`entry`, `content_default`, `type`, `emote`, `comment`) VALUES (-1000006,'It\'s a miracle! The beast skinned itself!', 0, 5, 'for quest 11865'), (-1000007,'Jackpot!', 0, 5, 'for quest 11865'), (-1000008,'This is the last one i need for that set of Nesingwary steak knives!', 0, 5, 'for quest 11865'), (-1000009,'Silly beasts!', 0, 5, 'for quest 11865'); Код:
UPDATE `script_texts` SET `content_loc8`='Это чудо! Зверь сбросил кожу!' WHERE `entry`=-1000006; UPDATE `script_texts` SET `content_loc8`='Джекпот!' WHERE `entry`=-1000007; UPDATE `script_texts` SET `content_loc8`='Это последний нож, необходимый мне для полной коллекции ножей для стейков Эрнестуэя!' WHERE `entry`=-1000008; UPDATE `script_texts` SET `content_loc8`='Глупое зверье!' WHERE `entry`=-1000009; |
06.08.2010, 07:34 | #2 | |
YTDB Dev
Регистрация: 01.02.2010
Сообщений: 115
Сказал(а) спасибо: 0
Поблагодарили 36 раз(а) в 25 сообщениях
|
Не правильно
Цитата:
Код:
UPDATE `gameobject_template` SET `flags` = 4 WHERE `name`='Caribou Trap'; UPDATE `creature_template` SET `unit_flags` = 33024 WHERE `entry` = 25835; Последний раз редактировалось timmit; 06.08.2010 в 07:37. |
|
Пользователь сказал cпасибо: | tempura (26.08.2010) |
06.08.2010, 14:54 | #5 |
Администратор
|
Вчера, значит, зажал данные по сниффу, когда я спрашивал.
Постараюсь вечером проверить с твоими запросами. Хотелось бы услышать комментарии по самому скрипту, правильно ли написан, можно ли оптимизировать. чтобы поправить и выложить на форум СД2. |
Пользователь сказал cпасибо: | tempura (26.08.2010) |
06.08.2010, 22:24 | #7 |
Администратор
|
Поправил скрипт: теперь остается только один момент: го спавнится но не отображается до момента, когда игрок сделает какое-либо движение.
Если стоять неподвижно, то го не будет видно. Это лечится в скрипте или вопрос к ядру? |
Пользователь сказал cпасибо: | tempura (26.08.2010) |
06.08.2010, 23:15 | #8 |
Ученый
Регистрация: 07.03.2010
Сообщений: 138
Сказал(а) спасибо: 200
Поблагодарили 143 раз(а) в 49 сообщениях
|
Go->UpdateObjectVisibility();
|
07.08.2010, 11:18 | #9 |
Ученый
Регистрация: 07.03.2010
Сообщений: 138
Сказал(а) спасибо: 200
Поблагодарили 143 раз(а) в 49 сообщениях
|
Еще замечание. Не храните указатели, храните гуиды. С хранимыми указателями в свн не примут, да и краши это иногда вызывает...
|
07.08.2010, 13:32 | #10 |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Еще неизвестно что лучше - все время дергать указатель по гуиду (постоянно рискуя нарваться на краш при этом) или хранить указатель и просто проверять его перед использованием, а при брейке просто скипать операции с ним. По мне так второй вариант куда быстрее и эффективнее.
|
07.08.2010, 14:12 | #11 |
MaNGOS Dev
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
|
Трудно определить, когда указатель станет не валидным. При работе с гуидами таких проблем нет.
|
07.08.2010, 14:25 | #12 |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Абсолютно те же проблемы. Есть у меня в коллекции один краш в котором указатель стал невалидным в момент его возвращения по гуиду. А краши в instance->GetCreature я даже считать перестал, они там просто на ровном месте происходят...
|
07.08.2010, 14:58 | #13 |
MaNGOS Dev
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
|
|