Добавлен , опубликован
Если данная тема уже существует, или я её создал не в том месте - укажите мне на ошибку, пожалуйста.
Здесь я бы хотел поделиться найденными багами. Возможно Вы пожелаете дополнить этот список. Далее список можно будет перевести и отправить разработчикам.
call SetUnitDiceSides( GetTriggerUnit(), 1, 0 )
в GUI редакторе в качестве индекса атаки можно выбрать только значение 0. Хотя первая аткака начинается не с 0 а с 1
call UnitAddAbilityBJ( udg_lSpell, GetTriggerUnit() )
call UnitHideAbility( GetTriggerUnit(), udg_lSpell, true )
call UnitHideAbility( GetTriggerUnit(), udg_lSpell, false )
Если герою дать обилку, сначала его спрятать, а потом отобразить - то абилке скроется, но не отобразится вновь
call UnitDisableAbility( GetTriggerUnit(), udg_lSpell, true, true )
call UnitDisableAbility( GetTriggerUnit(), udg_lSpell, false, false )
если абилку сначала заблочить, потом отобразить - то абилка не отобразится
call SetItemName( GetLastCreatedItem(), "test name" )
call DisplayTextToForce( GetPlayersAll(), GetUnitName(GetTriggerUnit()) )
если юниту поменять имя, а потом попытаться это имя узнать - то вернётся дефолтное имя юнита, а не установленное триггером
call SetItemName( GetLastCreatedItem(), "item name" )
call SetItemTooltip( GetLastCreatedItem(), "tooltip" )
если попытаться присвоить предмету уникальное имя или описание - то имя и описание поменяется у ВСЕХ предметов данного типа (а не одного лишь
call SetAbilityResearchTooltip( udg_lSpell, "test value 1", 1 )
call SetAbilityResearchTooltip( udg_lSpell, "test value 2", 2 )
не работает изменение описания для указанного уровня в окне изучения героических способностей
Следующий баг не до конца изучен:
Когда пытаюсь вывести строку, в которой используется символ % - вместо этого символа и символов рядом стоящих - подставляются странные значения, похожие на адреса данных.
set udg_itemStatASpd[i] = 0.05 * (1 + 0.1 * I2R(level-1))
set udg_items_descr[i] = name + " |cffffcc33(L" + I2S(level) + ")|r\n"
set udg_items_descr[i] = udg_items_descr[i] + "+" + I2S(udg_itemStatHp[i]) + " HP\n"
set udg_items_descr[i] = udg_items_descr[i] + "+" + I2S(R2I(udg_itemStatASpd[i] * 100)) + "% attack speed\n"
Т е вместо "% a" подставилась какая-то херь
Комментарий пользователя Sergarr, :
Возможно, это связано с недокументированной добавленной функцией целого деления (a % b), и интерпретатор делает черт знает что, когда он видит этот процент в строке.
Попробуй поставить два процента подряд вместо одного: %%. Обычно в языках программирования это работает с подобного рода символами.
Хотя, конечно, это очень сильная хрень.

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
12
6 лет назад
Отредактирован Sergarr
0
Cancel:
DracoL1ch, какие данные именно синхронизируются? Меня тут убеждают (если я правильно понял) что данные не синхронизируются а генерируются на каждом клиенте отдельно. GameCache не использую. ДИалог собственно начался с того, что я стараюсь лишний раз не генерить юнита когда это не нужно - а на меня обвалились с критикой, что это не нагружает канал синхронизации.
Как написано здесь:
Doc:
Иначе никаких баталий 300 на 300 игра бы не потянула, тем более в 2003 году.
Deterministic lockstep is a method of networking a system from one computer to another by sending only the inputs that control that system, rather than the state of that system.
Т.е. синхронизируется не все данные, а лишь ввод данных игроками, в контексте варкрафта это, в основном, отдача приказов юнитам. Создание юнита - это не приказ игрока, потому что код создания юнита зашит в карте и исполняется параллельно на всех компьютерах, а приказы от игроков поступают динамически уже в процессе игры.
0
13
6 лет назад
0
Sergarr, в моей карте одновременно присутствует не так много юнитов, т. е. сомневаюсь что десятисекундные задержки происходят по этой причине. Зато большая загруженность по коду, где юниты созадются, для каждого их них формируются хеш таблицы с параметрами и т. д., поэтому мне важно разобраться что именно вызывает такие задержки. Посмотрите реплей сами - там не так много войск чтобы вызывать проблемы
0
12
6 лет назад
0
Cancel:
Sergarr, в моей карте одновременно присутствует не так много юнитов, т. е. сомневаюсь что десятисекундные задержки происходят по этой причине. Зато большая загруженность по коду, где юниты созадются, для каждого их них формируются хеш таблицы с параметрами и т. д., поэтому мне важно разобраться что именно вызывает такие задержки. Посмотрите реплей сами - там не так много войск чтобы вызывать проблемы
Если ты про видео, то там задержка секунды 2, а не 10. Тот клик, от которого там можно насчитать 10 секунд, сопровождается сообщением об недостатке золота. Задержка в 1-2 секунды может иногда наблюдаться на любой карте, если у кого-нибудь из играющих плохой интернет.
0
13
6 лет назад
0
Sergarr, речь не о видео, а о карте, и на этой карте довольно часто задержки по 10 секунд перед принятием приказа о строительстве
0
16
6 лет назад
0
Только приказы и синхронизируются + кэш. Проблема может быть в количестве приказов или медленном хосте
0
29
6 лет назад
Отредактирован Волчачка
0
Doc:
Какие пруфы нужны кроме GetLocalPlayer?
Так можно и на десинк нарваться, наверно. (Если только Метелицы снова не курили что-то...)
Ведь кд, меняет всем абилкам тоже.
Пс: Кд для б.е. меняет как на все абилки, а вот возращает с получения кд абилки от юнита в нуль, а вот глобальный показывает на сколько было изменено кд абилки, но вот только это глобально, а не на 1 юнита, когда я делал на 1 одинёшенького.
0
6
6 лет назад
0
Насчет описание предметов, то что при изменение у одного - менялось и другие, пока нашел единственный выход - использовать дамми предметы(пустышки). Лучше всего их добавить вручную через mpq, в описании и где нужен текст нужно добавить хотя-бы пробел, чтобы текст можно было редактировать. Тем самым можно создавать "динамичные" предметы, ограничение - число дамминок
2 комментария удалено
0
29
6 лет назад
Отредактирован Волчачка
0
На счёт % в строке, их сам компилятор WE преобразовывает в: %<символ> не ясно что он делает в строках, скорее что-то кривое)))))
cat
i,u,o 2
d 2664588
g 1.29494e-272
e 6.859665e-308
f 0.000000
x 137c83b
h,l,yw,z,j,t - ничего особенного
n - bug fatal error
p 003DACD4
c ; a 0x1.dacd400000002p-1020
b b
m m
q q
k k
v v
r r
s (Иероглифы, бессмысленный набор знаков по юникоду, а Notepad++ прочитал как системные символы(ASCII), скорее они и есть)
call BJDebugMsg(I2S(i%2)) // до
call BJDebugMsg(I2S(i)) // после это не мод
Хз, что, но это компилятор переводит сразу в текст из %<символ> во что-то наркоманское, но это очевидно, что-то метелицы недопилили явно, поспешили. Возможно тот % formatstring как я думал, скорее недопилиный или чтобы можно было наподобие этого: "<Aslo,DataB1,%>%" Ну или как Полях изменения интерфейса... Хотя ещё не полнятно точно..
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.