27

» WarCraft 3 / Вернуть оставшееся время таймера по его Айди

Принятый ответ
TimerGetRemaining(timer)
надо прописывать таймер, а ты целое число Integer. поэтому прога и ругает, что вместо таймера ты число пизаешь
LoadInteger(Hash,GetHandleId(target),1)
LoadTimerHandle(Hash,GetHandleId(target),1) не забудь сохранить таймер
27

» WarCraft 3 / работа с прелоадом: обязательно ли чистить периодически буфер?

Принятый ответ
да че то эта штука глючная. таймером обновления выводишь - в зависимости от объема текста (мало текста - норм или микро-лаги, много текста - микро-лаги или зависания ).
Ладно отключаем таймер обновления. Решил просто напрямую добавить. Запускаешь операцию с кучей инфы за раз, зависание игры. А в конец русские символы неизвестно во что превратились. это хорошо что я поделил на части отладку. И вывожу нужную.только для индивидуальных тестов в каком месте оборвалось мб и сгодится. А если всю карту, то не пойдет.

либо сократить кол-ва текста за раз. Выводишь кучу текста, и лаг уже.
и загрузить сложнее с ФАЙЛА txt
27

» WarCraft 3 / работа с прелоадом: обязательно ли чистить периодически буфер?

quq_CCCP, мб стоило тогда сравнивать в буфере величину строки StringLength? Это можно сделать? если буфер меняется, значит чистка и перезапись. зачем каждый раз чистить и запись делать
попозже опробую идею
27

» Naruto - Nindogatari / DebugSystem

зачем каждый раз обновлять буфер таймером? Объясните смысл? смотрите, заводим массив строк. Каждый интервал 0.03 сек чистим буфер, потом записываем массив. И?
27

» WarCraft 3 / Как определить, что отрезок прямой?

ScorpioT1000:
PT153, тем не менее явное сравнение с эпсилономту автора не работает даже с 0.01
Прости. Обманул. Работает. Просто запутался, мне надо было ставить "не равно", а с этим эпсилоном поставил "равно". надо not (a-b < 0.001). я сделал (a-b < 0.001) и выключил дебаг на ложь.
Bergi_Bear, но мне это не нужно. достаточно просто координаты сравнить.
27

» WarCraft 3 / Как определить, что отрезок прямой?

вариант 1 (рабочий)
if not((Ax == Vx2[F1]) or (Ay == Vy2[F1])) then
endif
вариант 2 (рабочий)
if not((Angle == 0) or (Angle == 360.) or (Angle == -360.) or (Angle == 180.) or (Angle == -180.) or (Angle == 90.) or (Angle == -90.)) then 
endif
карта <= функция Trig_triigger_DU_2 в шапке. работает хорошо и норм щас
Загруженные файлы
27

» WarCraft 3 / Как определить, что отрезок прямой?

смотрите, использую.
не работает (вариант скорпа)
не срабатывает ни ложь, ни истина. глухота. мб из-за RAbsBJ, там типа тоже сравнение идет?
if (RAbsBJ(Ax - Vx2[F1]) < 0.00001) or (RAbsBJ(Ay - Vy2[F1]) < 0.00001) then
	call DisplayDebugTextToPlayer2("проверяем дальше")
else
	call DisplayDebugTextToPlayer2("2-точка не подходит")
endif
вариант PT153 работает (изменил условие)
27

» WarCraft 3 / Как определить, что отрезок прямой?

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

» WarCraft 3 / Как определить, что отрезок прямой?

эх.. варик. наверное действительно проще координаты сравнить, чем угол подсчитать и сравнить. чего я туплю
27

» WarCraft 3 / Есть ли у вакрафта проблема со строками и вывода текста?

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

Блин, забыл сказать, чё ты как нубяра на гуи пишешь, переходи на zinc/lua и будь нормальным мужиком!
потом перейду. когда напишу на jass хоть какую то карту.

думаю на zinc еще можно попробовать

кстати, я вот пробовал одновременно несколько проверок-условии зафигарить.
На подобии
if точка принадлежит then
Принадлежит
else
Не принадлежит
endif
И они должны были вывести на экран. Но на экран, все время выводилось одно и то же, то есть ложь. Решил отделить, и оно заработало. Условия походу че-то одновременно не работали. Не знаю, подводные камни вара.
27

» WarCraft 3 / Есть ли у вакрафта проблема со строками и вывода текста?

ладно прочитал. немного смутно че то понял. ну или совсем не понял. понял что там какая то таблица, которая не дает генерировать похожие строки и имеет лимит на число символов. И беспокоить об этом нет смысла, тк наверное очищает или заново перезаписывает. неизвестно. Но не понятно, точно из-за кривого английского. Но это все на уровне слухов, тк не понимаю как подтвердить информацию.
вопросы все равно остались. Что надо делать чтобы такого не было? вопрос, а нужно ли записывать все тексты в глобальный массив.
s[0] = "Привет"
s[1]= "Я крут"
понимаю это система была бы полезна для диалогов или системы подсказок. но нужно ли делать так как в гуи?
.....
Как это делает в гуи. Если записать текст в гуи, и создать. Потом эта строка заносится в массив
если конвентировать в код, то вместо текста там "TRIGSTR_122"
его можно найти в файлике. инфа тут
стоит ли так делать? вот здесь это решить. пример можно посмотреть. к сожалении копии не осталось. но думаю можно попробовать искусственно вызвать тормоза

NazarPunk, спасибо за отклик на глупые вопросы
Загруженные файлы
27

» WarCraft 3 / У меня не сохраняется/либо не грузится информация хэш-таблицы

Принятый ответ
ладно. заработало.
не рабочий вариант
call SaveInteger(Hash,GetHandleId(GetTriggerUnit()),5555, CurrentNumberOfSettlement) в одном триггере сохраняем
set CurrentNumberOfSettlement = LoadInteger(Hash,GetHandleId(GetTriggerUnit()),5555) в другом триггере для проверки выгружаем
рабочий вариант
local integer id = GetHandleId(GetTriggerUnit())
call SaveInteger(Hash,id,5555, CurrentNumberOfSettlement) в одном триггере сохраняем
set CurrentNumberOfSettlement = LoadInteger(Hash,id,5555) в другом триггере для проверки выгружаем
Короче вернул обратно локалки, и все заработало. И почему первый вариант не работал. Ладно будут искать подводные камни. Наверное после чистой оптимизации что-то перестало работать. эх... придеться посравнивать. похоже старый код где то мб лучше. только времени потратил на методы тыка.
27

» WarCraft 3 / Показать инвентарь другого юнита Мемхак

David David, так переключи выбор магаза на героя через приказ. у магазина есть кнопка выбора, дана специально на случай если к магазину подойдут два героя, и можно перекидывать выбор. измени настройки выбора юнитов магазином
27

» WarCraft 3 / Вылеты при мультиплеерной игре

так тут ответом то сложно назвать. Просто переустанови винду и смени видео-карту - это не ответ же. лучше вопросов не задавать таких. А реальная причина ??? рефорджевский варик гуляет и грешит этим. Если камеру прикрутить в эт часть карты, то там вместо деревьев анима срубленных деревьев
27

» WarCraft 3 / Можно как-то поменять время и цену ремонта триггерно? Reforged

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

» WarCraft 3 / Непонятная проблема

Radioactive, надо
if Hero[p]!=null then
    loop
        exitwhen i>5
        set t[i]=UnitItemInSlot(Hero[p],i)
        set i=i+1
    endloop
endif
У тебя потом все равно обрыв потока, тк после иначе ты ищешь у не существующего юнита. Из-за этого вы достаете не существующие ячейки... вернее пустые ячейки.. и все остальное

попробовал сделать так но проблема осталась надо ли создавать мультиборд после выбора героя?
Radioactive, так и надо делать. можно сначала отобразить не полноценный мульт. А после отобразить со всеми слотами
27

» WarCraft 3 / Баг на карте warcraft 3 классика

в своей карте я вот также растения сажал. Но с одним условием, он должен был просто посадить, а дальше оно само строилось. Через триггеры, тк нужно на скорость роста влиять (ночью медленно/днем быстро). У рабов хуманов строительство идет через абилку ремонта, у которой в целях указана техника. И убрать растениям в ро в классификации технику, то раб просто ставит недостроенное, и все. Поскольку достраивать такой ремонт-абилкой не может. Это была просто маленькая хитрость.
27

» WarCraft 3 / Баг на карте warcraft 3 классика

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

» Лаборатория Маньяка / Ворота

не проще было бы открывать двери выделением? короче кликом мыши. Клик, дверь открылась. Клик - открытая дверь закрылась. или попробовать еще на уровне приказов отслеживать, чтобы выделение не снималось со своих воинов.
У варика самый отстой отследить клик
27

» WarCraft 3 / Что не так с отрядом

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