Ужасно смотрится текст, когда ширина столбца небольшая, в частности в моб телефоне наблюдается такое. Когда телефон пытается отобразить всю таблицу, это будет ужасно. Особенно, видно, как слово переносит. Он переносит буковки на след строчку. А можно было бы сделать листинг. Скроллбаром крутить.
Узнаю свою работу. Когда то сам возился с симплфреймами. Была проблема с ними, что их трудно редактировать во время игры. То, что было прописано в fdf, и создан шаблон по образцу, являлось после статичной, и нельзя было никак изменить. Были хитрости, можно потомкам редактировать. На этом задрачивал много времени, дай вспомнить.
Скажу, что симплфреймы не очень хорошее решение в рефе юзать. Я сделал по-другому для моей задачи. Так, что для вашего вопроса скинь fdf. Мне кажется, что вам нужно редактировать через BlzFrameSetTexture не саму кнопку, а потомственную текстуру, что указана в fdf кнопки тк в симплфреймах все немного не так
Вспомнил. Проблема вот в чем. У всех шаблонов-фреймов в fdf-файлах есть свои нативки, команды. Так вот, у этой симплбутон (кнопки) есть свои команды fdf файлике вроде NormalTexture, DisableTexture и др. Достаточно, указать эти текстуры шаблону кнопки в fdf файлике, и все, вам будет никак не изменить триггерно, тк то, что указали в fdf вы нехрена не измените триггером. Вот, Тайсон предложил другой вариант: не используйте эти команды. Создайте внутри кнопки потомка, и динамично меняйте по ходу игры
Я бы рекомендовал отказаться от симплфреймов на рефе. Мне пришлось изобрести велосипед, чтобы избавиться от залипания кнопки. Вместо кнопок использовал невидимую scrollbar или text в качестве кнопки, они не вызывают залипания, однако, есть свои трудности, срабатывают даже при нажатиии и лкм и пкм, пришлось целый велосипед городить. Есть ивенты захода/выхода мыши в/из фрейм. ЕСть события нажатия лкм/пкм, дальше не составило труда сделать свой рабочий велик. Так как кнопки это пустышки, создавал копию backdrop (изображения), ловил заход мыши и накладывал hightlight (полупрозрачное изображение). С tooltip проблем не было. Правда, ивент захода/выхода близзард сломали в 1.33, мотоцикл мой перестал работать. и больше не открывал карту с того дня. Не знаю, может сейчас что то изменилось.
Собрались делать здания, которые приносят инком?
Не помню, было ли тут
Ну тут как в математике:
текущая прибыль со всех здании - 100%
доход после выплат ндф - 80%
*Просто эти кол-во должно к чему то привязано. У меня они выражают доход
Но ладно, шутки шутками, а ведь может найтись умник , который попытается систему обойти.
Мне кажется, надо просто таймер завести либо на отслеживание нажатия клавиши клавиатуры, либо на отслеживание нажатия мыши. В рефордже это все есть. Мне кажется, что игрок не может ничего не делать долгое время, даже в течении одной минутф. Правда, достатояно кликов мыши отслеживать, тк щелчками игрок постоянно выбирает юнита, выделяет, отдает команды. А вот с клавиатурой есть проблемы, но в целом ивент работает, если не использовать фреймы, либо правильно.
Плюс, варкрафта это стратегия, подразумевающая, что игрок будет следит за всей картой, и камера не будет все время смещена. Если же игроков специально не выставилм в такие условия
Смотрится ваше содержание текстовое ничего так.. наверное будет интересная кампания. Надеюсь, что это не очередной клон варика? Я имею в виду: графика, мы уже давно должны перерасти юзать чистые скилы вара из ро, и ствндвртные модели, ландшафт, какая нибудь универсальная система прокачка скилов, баланс, и небоысные предметы. Вам бы книгу писать, но кампания в духе гарри поттера сойдет.. каких нибудь магов неудачников в гениев превращаются
вот какое качества выйдет?
Логически можно додуматься. пишешь триггер с проверкой:
С: Юнит - завершает исследование
У: завершаемое исследование - "технология 1" or (или) завершенное исследование - "технология 2"
Д: (нужно будет проверить, что исследование достигла максимума)
Возможно, тут нужна будет делать задержку, я точно не знаю, как работает триггер
If тек уровень "тех 1" == макс уровень "тех 1" and (И) тек уровень "тех 2" == макс уровень "тех 2" then
Действие - запретить исследование "технология 3"
end
У меня нет возможности потыкать вар, и надо вам самим посмотреть в триггервх в действиях в разделе игрок или технология. Мб там с уровнем поинрать. Попробуй обнулить, или -1 поставить. Должно быть какое то действие
Не совсем понял ваш вопрос, что выхотите сделать. Внимательно раз 4-5 вчитал.
Вот небольшой кусок кода с кнопкой и функцией клика по кнопке с покупкой предмета, как?
код я посмотрел, он убер простой. Ничего сверхсложного логически, и уникального нн увидел. Однако, я не увидел никакой связи с магазином и итемами. У вас udg_Item хранят только от одного итема? Фреймы отображаются при выделении магазина? Сколько у вас магазинов? Один?
можно сделать массив примерно на 15 предметов чтоб не создавать функцию клика для каждой кнопки c выдачей заранее подготовленного предмета.
Видимо, у вас возникла проблема как структурировать всю эту базу данных информации. Так чего же вы не создали 15 итемов, и не показали.
Ладно. Примерно понял. Функцию клика можно не плодить, достаточно на всех 1 функции, просто будут разные триггеры запускаться.
Вот вы циклом создаете 15 кнопок fr[1-15], 15 триггеров tr[1-15]. Потом в функции click нужно перебрать какая кнопка нажата (индекс вытащить), а это можно сравнивать в действии, т.е. в функции click
либо вызванный фрейм BlzGetTriggerFrame() перебираем с 15 фреймами fr
либо запущенный триггер GetTriggeringTrigger() перебираем с 15 триггерами tr
Еще у вас проблема может с фреймовыми событиями, на один триггер можно записать 1 событие фрейма. Иначе, я замечал, что событие не работало. Возможна, я ошибаюсь. Но мне кащалось, что ивент просто перезаписывался на последний фрейм, и работало только у него. Вы сейчас пытались накинуть на 1 триггер 15 ивентов для разных фреймов, или что? Поэтому я вот для каждого фрейма создаю свой триггер. Это главное правило - создавать для каждого фрейма свой триггер
Видимо, это сшито в движок. А часть настроек отображено в константах. Пример, можно редактировать скорость (смотреть) , а вот как время, тут наверное, ничего не поделаешь.
EugeAl, вы намеренно даете ложный ответ? "событие - юнит атакован" реагирует в начале замаха, и тут можно сломать эту систему.
Как это работает. Юнит таргется на цель, и начинает производить атаку, т.е. начинает производить анимацию атаки, и только после нее начнется дамаг. У юнитов с дистанционной ренж атаки еще нужно прождать, когда снаряд долетит, если, конечно, долетит. И после должен выйти дамаг.
До вснх этих моментов есть еще уклонение, промахи и др вещи, когда до цели дамаг не дойдет.
Событие "юнит атакован" предвищает, что юнит начинает атаку, вернее начнет атаку через 0.00 сек здесь криво перевели мысль. Тут игрок может отдать приказ на цель, и ткт же отменить, отдав другой
TimerGetRemaining(timer). Оставшееся время таймера, сколько осталось времени до завершения. Счетчик времени уменьшается. По истечении будет == 0.0.
TimerGetElapsed(timer). Истекшееся время таймера. Сколько прошло времени, счетчик увеличивает хажанное время.
TimerGetTimeout(timer) - заданное время таймера. на сколько запущен таймер (заданное значение не меняется, короче)
Это все функции есть в триггерах, можете в любое время узнать сколько времени, и эти три реальных числа, надо преобразовать из выбранных в нужную строку. При этом важно, чтобы таймер был запущен.
Есть проблема, в том, что счетчик отображает не как время, а как счетчик секунд (вообще можно и микросекунды, но не об этом речь). Если допустим прошло 120 сек, он тебе не отобразит, что прошло 2 мин. Нужно будет самому делать систему времени. Типа часы/минуты/секунды, тут все выражено секундами в таймере. Пример, можно запустить одноразовый таймер от начала игры с 99999999 сек, и от него узнавать текущее время/пройденное и оставшее выраженные в секундах. Это как одна из задач.
Обычно, в таких системах ежесекудно обновляют время, и обновляют строку в таблице. Заводим, периодический таймер, который будет каждую 1 сек тикать. И счетчики часов hour, минут min, секунд sec
//Каждую 1 секунду
set sec=sec+1
if sec >= 60 then
set sec=0
set min=min+1
if min >= 60 then
set min = 0
set hour = hour + 1
if hour >= 24 then
set hour = 0
endif
endif
endif
dummy-unit не только бывает невидимый, бывало и визуально из него делали снаряды, эффекты, и двигали по координатам. Поскольку в патче 1.26 варкрафт был очень ограниченным, нам дали спецэффекты, но не было функции по перемещению. Вместо этого приходилось задавать модельку эффекта юниту, и перемещали, проигрывали анимации и пр.
» Администрация XGM / Таблицы
» Администрация XGM / Таблицы
Ред. MpW
» Администрация XGM / Блоки исходного кода
» Администрация XGM / Таблицы
» Stormgate / Stormgate, анонс обновления 0.1.0
Ред. MpW
» WarCraft 3 / Смертельный удар для катапульты
Ред. MpW
» WarCraft 3 / Выдать нестандартный автокаст
» WarCraft 3 / Область-ограничитель
Ред. MpW
» WarCraft 3 / Текстура фрэйма.
» WarCraft 3 / Сетка строительства (тайлы) как в Editor
» WarCraft 3 / Как выразить число в процентах?
Не помню, было ли тут
текущая прибыль со всех здании - 100%
доход после выплат ндф - 80%
*Просто эти кол-во должно к чему то привязано. У меня они выражают доход
» WarCraft 3 / Симулятор Гомеля
» WarCraft 3 / Допустимое время АФК (игрок отошёл)
» nDRch / Приключения Паши и Фекалика
Ред. MpW
» nDRch / Приключения Паши и Фекалика
вот какое качества выйдет?
Ред. MpW
» WarCraft 3 / Как сделать лимит улучшений?
С: Юнит - завершает исследование
У: завершаемое исследование - "технология 1" or (или) завершенное исследование - "технология 2"
Д: (нужно будет проверить, что исследование достигла максимума)
Действие - запретить исследование "технология 3"
end
» WarCraft 3 / Как отследить чей игрок убил юнита
DyingUnit - умирающий
TriggerUnit - юнит, запустивший триггер. Т.е. в событии "юнит умирает" ссылается на умирающего.
Владелец убийцы не равно влвделец умирающего
Ред. MpW
» WarCraft 3 / Массив в магазине.
Ред. MpW
» WarCraft 3 / Массив в магазине.
Ред. MpW
» WarCraft 3 / Не могу придумать, как сделать ракетный залп - залпом
» WarCraft 3 / Ледяное дыхание
Ред. MpW
» WarCraft 3 / пассивная способность "кража маны" при атаке
До вснх этих моментов есть еще уклонение, промахи и др вещи, когда до цели дамаг не дойдет.
Ред. MpW
» WarCraft 3 / Как вывести таймер в таблицу
Ред. MpW
» WarCraft 3 / способность "защитная аура"
» Администрация XGM / XGM предлагает проиграть однокадровые гифки