WORLD OF WARCRAFT

Тема: Error code: server on fire  (Прочитано 31959 раз)

0 Пользователей и 1 Гость просматривают эту тему.

DesFolk

  • Старожил
  • ***
  • Сообщений: 1881
  • Казуальный валенок

  • Варкрафт: +
    • Имя: Тормуул
    • Класс: Шаман
    • Сервер: Ясеневый лес
Re: Error code: server on fire
« Ответ #30 : 26 Ноября, 2015, 13:10:18 »
  • Рейтинг:0 (+0 | 0)
Может я чего-то не понимаю, но они пишут
Цитировать
В нескольких первых элементах массива лежат вещи, которые одеты на персонаже, и после этого идут сумки
ну и далее по тексту, что в жестко заданной точке заканчивается инвентарь и начинается банк. А теперь внимание, вопрос - как тогда они в пандах удалили слот для оружия дальнего боя/манускрипта, если он по идее хранится в том же массиве перед банком? ИМХО, проблема того же уровня что и увеличение стандартной сумки, но ее решили.

Они могли не удалить её в коде, а тупо скрыть в UI и запретить передавать информацию по данному слоту в клиент. Также фишка с меткостью или ОД, они не удаляли меткость или ОД. Они просто задали статичные оптимальные значения и скрыли в UI, т.к. эти значения могут участвовать в разных формулах урона и т.д.

Mardekaitv

  • Завсегдатай
  • **
  • Сообщений: 468
Re: Error code: server on fire
« Ответ #31 : 26 Ноября, 2015, 13:14:34 »
  • Рейтинг:0 (+0 | 0)
Самый простой и костыльный вариант в такой ситуации:
1) Отрубаем отображение начальной сумки в UI и выпиливаем все способы её отображения в API принудительно.
2) Принудительно заполняем её специальным хламом
3) Даём дополнительный слот под кастом сумку (если можно)
4) Выдаём любую сумку игроку в самом начале.
Проблема увеличения количества слотов для сумок из той же оперы, что и количество ячеек базовой сумки.

isco

  • Завсегдатай
  • **
  • Сообщений: 116
Re: Error code: server on fire
« Ответ #32 : 26 Ноября, 2015, 13:15:11 »
  • Рейтинг:0 (+0 | 0)
Может я чего-то не понимаю, но они пишут
Цитировать
В нескольких первых элементах массива лежат вещи, которые одеты на персонаже, и после этого идут сумки
ну и далее по тексту, что в жестко заданной точке заканчивается инвентарь и начинается банк. А теперь внимание, вопрос - как тогда они в пандах удалили слот для оружия дальнего боя/манускрипта, если он по идее хранится в том же массиве перед банком? ИМХО, проблема того же уровня что и увеличение стандартной сумки, но ее решили.
То, что его не показывают тебе, не значит, что из кода игры этот слот полностью удалили.

Dimzar

  • Старожил
  • ***
  • Сообщений: 1997
Re: Error code: server on fire
« Ответ #33 : 26 Ноября, 2015, 13:28:09 »
  • Рейтинг:3 (+3 | 0)
а в чем сложность отключить рюкзак и работать с сумками, если все проблемы завязаны на нем? размер сумок же давно больше 15.

В первом сообщении:
-В чем проблема с рюкзаком?
-Легаси код

В комментариях:
-В чем проблема с рюкзаком-то?
Ну, в коментарии предложили создать новую сумку, заменяющую рюкзак, и на место текущего рюкзака ссылку на объект новой сумки поставить.

И в этом случае игроки первым же делом выкинут эту сумку, останутся с нулевым местом в инвентаре, что не позволит взять новую сумку. Это проблема идиотичности пользователей.
Есть и более суровая проблема: есть функция, распределяющая новую вещь по сумкам. Если эту функцию оставить, как есть, то при переполнении сумок она начнет заполнять "невидимый рюкзак" - в итоге вещи будут уходить в никуда. Переписывание же функции-распределителя - это уже легаси код, на который по-любому завязаны сотни мест: см почему нельзя добавить ячейки рюкзаку.

kukara4

  • Завсегдатай
  • **
  • Сообщений: 275
  • WoW FTW!
Re: Error code: server on fire
« Ответ #34 : 26 Ноября, 2015, 13:29:38 »
  • Рейтинг:0 (+0 | 0)
> вытаскивали блейд-сервера из стоек, добавляли в них память, меняли местами и перераспределяли для них нагрузку

Брехня. Или я очень плохого мнения о близзардах. Чтобы в 2014 году не использовать виртуализацию?
Виртуализация добавляет физической памяти?

Flayerr

  • Новичок
  • *
  • Сообщений: 3
Re: Error code: server on fire
« Ответ #35 : 26 Ноября, 2015, 13:31:07 »
  • Рейтинг:6 (+6 | 0)
Это самое интересное, что я читал на noob-club!

Dimzar

  • Старожил
  • ***
  • Сообщений: 1997
Re: Error code: server on fire
« Ответ #36 : 26 Ноября, 2015, 13:36:04 »
  • Рейтинг:4 (+4 | 0)
а в чем сложность отключить рюкзак и работать с сумками, если все проблемы завязаны на нем? размер сумок же давно больше 15.

Самый простой и костыльный вариант в такой ситуации:
1) Отрубаем отображение начальной сумки в UI и выпиливаем все способы её отображения в API принудительно.
2) Принудительно заполняем её специальным хламом
3) Даём дополнительный слот под кастом сумку (если можно)
4) Выдаём любую сумку игроку в самом начале.

Но это решение костыль подпираемый костылями.


И нет, это решение не работает. Потому что луа позволяет создать функцию "продать хлам" (если ее еще не включили в общий код) - видел ее в allinonebag еще 10 лет назад. В итоге весь твой хлам продадут в первый же день и ты останешься с багами, связанными с заполнением невидимой сумки.

Кроме того, луа имеет выходы на работу с сумками (см. allinonebag), а следовательно, оттуда же можно будет этот рюкзак вывести, что приведет к новым багам.

переписывать точку входа для Луа - это шансы нарастить себе геморрой на ближайшие 10 лет. отключить использование функций работы с сумками - это отключить несколько десятков аддонов, что вызовет тойны плача.

Очень легко генерить "простые" идеи. Но как показывает практика - все простое реализуется быстро и просто. Если это не было сделано, это не потому что все, кроме тебя, тупые, а потому что ты сам видимо не владеешь информацией, либо не можешь ее оценить в полной мере.

Ashigara

  • Старожил
  • ***
  • Сообщений: 3295

  • Варкрафт: +
    • Имя: Калант
    • Класс: Маг
    • Сервер: Дракономор
Re: Error code: server on fire
« Ответ #37 : 26 Ноября, 2015, 13:40:42 »
  • Рейтинг:0 (+0 | 0)
Цитировать
В Blizzard работают гениальные дизайнеры, которые вечно носятся с новыми идеями. У программистов не принято говорить им "нет". Если дизайнер приходит с идеей сделать нового героя Heroes of the Storm, которым управляют сразу два игрока, программисты сначала впадают в панику, потом обдумывают подходы и наконец находят способ реализовать.
Вот вы  и узнали отличие православного геймдева от западного.  ;D В православном - прежде, чем придумать фичу, узнай у программиста - а можно ли. :(

DesFolk

  • Старожил
  • ***
  • Сообщений: 1881
  • Казуальный валенок

  • Варкрафт: +
    • Имя: Тормуул
    • Класс: Шаман
    • Сервер: Ясеневый лес
Re: Error code: server on fire
« Ответ #38 : 26 Ноября, 2015, 13:47:28 »
  • Рейтинг:0 (+0 | 0)
а в чем сложность отключить рюкзак и работать с сумками, если все проблемы завязаны на нем? размер сумок же давно больше 15.

Самый простой и костыльный вариант в такой ситуации:
1) Отрубаем отображение начальной сумки в UI и выпиливаем все способы её отображения в API принудительно.
2) Принудительно заполняем её специальным хламом
3) Даём дополнительный слот под кастом сумку (если можно)
4) Выдаём любую сумку игроку в самом начале.

Но это решение костыль подпираемый костылями.


И нет, это решение не работает. Потому что луа позволяет создать функцию "продать хлам" (если ее еще не включили в общий код) - видел ее в allinonebag еще 10 лет назад. В итоге весь твой хлам продадут в первый же день и ты останешься с багами, связанными с заполнением невидимой сумки.

Кроме того, луа имеет выходы на работу с сумками (см. allinonebag), а следовательно, оттуда же можно будет этот рюкзак вывести, что приведет к новым багам.

переписывать точку входа для Луа - это шансы нарастить себе геморрой на ближайшие 10 лет. отключить использование функций работы с сумками - это отключить несколько десятков аддонов, что вызовет тойны плача.

Очень легко генерить "простые" идеи. Но как показывает практика - все простое реализуется быстро и просто. Если это не было сделано, это не потому что все, кроме тебя, тупые, а потому что ты сам видимо не владеешь информацией, либо не можешь ее оценить в полной мере.

Ты картинку смотрел? И когда близзард останавливали неработающие аддоны?
« Последнее редактирование: 26 Ноября, 2015, 14:00:58 by DesFolk »

Aracs

  • Завсегдатай
  • **
  • Сообщений: 845
Re: Error code: server on fire
« Ответ #39 : 26 Ноября, 2015, 14:37:17 »
  • Рейтинг:0 (+0 | 0)
Может я чего-то не понимаю, но они пишут
Цитировать
В нескольких первых элементах массива лежат вещи, которые одеты на персонаже, и после этого идут сумки
ну и далее по тексту, что в жестко заданной точке заканчивается инвентарь и начинается банк. А теперь внимание, вопрос - как тогда они в пандах удалили слот для оружия дальнего боя/манускрипта, если он по идее хранится в том же массиве перед банком? ИМХО, проблема того же уровня что и увеличение стандартной сумки, но ее решили.

Они просто отключили его отображение, физически он есть, а фактически нету, такимже макаром отключен слот для патронов который тоже раньше был. А вот добавить новый слот для какогото нового предмета экипировки боюсь вызовет ровно туже проблему которая есть с сумкой

KelDazan

  • Новичок
  • *
  • Сообщений: 7
Re: Error code: server on fire
« Ответ #40 : 26 Ноября, 2015, 15:11:58 »
  • Рейтинг:1 (+3 | -2)
Они не стали ничего перекомпилировать, а написали небольшой патчер, который брал готовый клиент, изменял в нем один байт (условный переход на безусловный) и сохранял его.

считаю гениально - просто и эффективно :-)

Это значение жестко задавалось (hardcoded) по всем исходным текстам программ, и что еще хуже, некоторая математическая логика полагалась на то, что этот сдвиг является константой.

Вот это я понимаю у ребят проблемы с рефакторингом. После этого собственные потуги становятся смешными и скучными! :-D

Поэтому если вы хотите увеличить количество друзей в Battle.net, вам нужно переделать и протестировать интерфейсы всех игр Blizzard.

Я бы "застрелился" на месте.

а в World of Warcraft до сих пор сидят на Subversion.

*утирает скупую слезу*
Приятно осознавать что не ты один.

Спасибо за статью, местами просто прекрасно.

KelDazan

  • Новичок
  • *
  • Сообщений: 7
Re: Error code: server on fire
« Ответ #41 : 26 Ноября, 2015, 15:22:10 »
  • Рейтинг:0 (+0 | 0)
Может я чего-то не понимаю, но они пишут
Цитировать
В нескольких первых элементах массива лежат вещи, которые одеты на персонаже, и после этого идут сумки
ну и далее по тексту, что в жестко заданной точке заканчивается инвентарь и начинается банк. А теперь внимание, вопрос - как тогда они в пандах удалили слот для оружия дальнего боя/манускрипта, если он по идее хранится в том же массиве перед банком? ИМХО, проблема того же уровня что и увеличение стандартной сумки, но ее решили.

Возможно (возможно) кол-во слотов для шмоток сделано с небольшим запасом и чётко зафиксировано. Обращение для каждого персонажа к шмоткам происходит через wrapper который определяет что и кому надо вернуть. Может в WoW нельзя физически больше 25 (цифры с потолка) айтемов навесить на перса :-)

MaS0n5

  • Завсегдатай
  • **
  • Сообщений: 786
Re: Error code: server on fire
« Ответ #42 : 26 Ноября, 2015, 15:42:07 »
  • Рейтинг:0 (+0 | 0)
Все якобы "удаленные" слоты на месте, просто обращения к ним нету. Вон в клиенте в филдах игроков до сих пор остались филды удаленных с беты дренора характеристик.
6.2.3.20726
Цитировать
    PLAYER_FIELD_READINESS = 0x235C, // Size: 0x1, Flags: 0x2
    PLAYER_FIELD_SPEED = 0x2360, // Size: 0x1, Flags: 0x2
    PLAYER_FIELD_LIFESTEAL =0x2364, // Size: 0x1, Flags: 0x2
    PLAYER_FIELD_AVOIDANCE = 0x2368, // Size: 0x1, Flags: 0x2
    PLAYER_FIELD_STURDINESS =0x236C, // Size: 0x1, Flags: 0x2
    PLAYER_FIELD_CLEAVE = 0x2370, // Size: 0x1, Flags: 0x2
Кто-то еще помнит о таких хар-ках?)

Проблема сумки еще и в том, что изменить слоты может быть и легко относительно, но очень много времени надо тестировать, иначе можно получить суровые эксплоиты и дюпы
« Последнее редактирование: 26 Ноября, 2015, 15:45:23 by MaS0n5 »

YaP

  • Ветеран
  • ****
  • Сообщений: 5522
  • танки, дц и немного дд.

  • Варкрафт: +
    • Имя: Пертуссин
    • Класс: Друид
    • Сервер: Гордунни
Re: Error code: server on fire
« Ответ #43 : 26 Ноября, 2015, 15:59:37 »
  • Рейтинг:3 (+7 | -4)
кстати, мне ваще пофиг сколько слотов у рюкзака, давно стоит elvui с "allinonebag", так что совершенно не жду расширения именно рюкзака 8)


DesFolk

  • Старожил
  • ***
  • Сообщений: 1881
  • Казуальный валенок

  • Варкрафт: +
    • Имя: Тормуул
    • Класс: Шаман
    • Сервер: Ясеневый лес
Re: Error code: server on fire
« Ответ #44 : 26 Ноября, 2015, 16:51:53 »
  • Рейтинг:0 (+0 | 0)
Вот кстати да, совсем не понятно, почему Близзард не сделает нормальный дефолтный UI с едиными сумками.

 

закрыть