23

» WarCraft 3 / Hashtable - работаем с хеш-таблицей

nazarpunk, но раз ты прямо хочешь пример, то вот:
Скрин 1 - название и тип текста. Важные термины ведут на ссылки. Чередуется со скриншотами.
Скрин 2 - статья имеет разделы под катом. Внизу добавлен список смежных статей.
Как по мне, хороший, правильный пример. И годный шаблон.
Написать статью по этому шаблону, по варкрафту или редактору карт, думаю, труда не составит, не так ли? Или поправить имеющуюся
23

» WarCraft 3 / Hashtable - работаем с хеш-таблицей

nazarpunk, откуда по варкрафту статьи в педивикии? Я ж сказал - как образец, а не копипастить содержимое
Лучше брать оригинал вики сервиса, как пример. Хотя есть и викия фандом, по играм и вселенным.
Зайди в педивикию, выбери "хорошие статьи" и посмотри исполнение любой статьи, Либо зайди в викию, набери в поисковике местном какую нибудь игру и посмотри исполнение, если там тоже есть раздел "хорошие статьи", загляни туда. К чему мне кидать сюда ссылку на рандомную статью?
23

» WarCraft 3 / Hashtable - работаем с хеш-таблицей

nazarpunk, Зачем писать? Есть готовые примеры.
  1. Берётся любая более менее большая статья из педивикии как образец
  2. Важные термины и слова делаются как ссылки на смежные статьи
  3. Добавляются рисунки, скрины, схемы итд по месту.
Получится такая внутри -хгм "педивикия" по варкрафту, редактору карт, геймдеву итд итп. Единственное, что потребуется, это чтобы юзеры могли вносить правки, а модераторы - их принимать/откатывать. В целом всё, так сгодится.
23

» WarCraft 3 / Hashtable - работаем с хеш-таблицей

nazarpunk, прочитать идиот сможет, тут мозгов не надо, в спецшколах их кое-как читать учат. А вот понять итд...
rsfghd, ну если человек даже после разжеванной статьи не научится, тогда ему действительно надо другими делами заниматься. Но все же большинство осилит базу. А дальше зависит от устремлений. Но я к тому, что делать изначально статью для "избранных" - бестолковая затея, разве что ЧСВ ради
23

» WarCraft 3 / Hashtable - работаем с хеш-таблицей

nazarpunk, а я не про себя писал
А вообще, нормальная статья должна быть такой, чтобы даже круглый идиот её мог понять. Если статью поймут 1,5 человека, "с мозгом", как ты говоришь, ценность такой статьи как источника информации и тем более образовательного контента - равна нулю. Это всё равно что сделать игру, которая запускается только на твоём компе и у пары друзей, и нигде больше. И какой толк от такой игры? Кто играть то будет? Здесь также.
В идеале должны быть ещё перекрёстные ссылки на другие статьи, для полноты, но что имеем, то имеем
23

» WarCraft 3 / Hashtable - работаем с хеш-таблицей

nazarpunk, rsfghd, можете сами глянуть, какие вопросы обычно задают. 80% примерно одно и то же, по смежным темам, хотя на сайте 100500 статей.
Если же следовать логике - "не надо разжевывать" и "сами должны понять", то можно прямо сейчас снести все статьи с сайта, и пусть сами варик изучают, ибо нефиг. И тратят килотонны часов на изучение изученного и изобретение колёс, вместо того, чтобы потратить их на стоящий проект или новые открытия. Чисто армейский способ получится - подметание ломом и покраска листвы в зелёный цвет, зато в деле
23

» WarCraft 3 / Как изменить инконку у способности во время игры?

Unryze, понятно. Возможно, придётся повторять и в 11+ раз)) проще будет создать в проекте uajpi статью faq, где эти 4 пункта можно прописать)
23

» WarCraft 3 / Hashtable - работаем с хеш-таблицей

rsfghd, как показывает практика, нужно разжевывать. По таймеру он скопирует, а вот как без таймера перенести - может и не понять
23

» WarCraft 3 / Hashtable - работаем с хеш-таблицей

Добавьте, пожалуйста, в статью дополнение:
Что если в функции создаётся новый триггер (например, для группы юнитов через событие получения урона) и есть какие либо вводные данные, то можно сохранить данные в хэш по get handle Id этого триггера, а потом в trigger action'е выгружать данные из хэша через get handle id ( get Triggering Trigger() ).
Подобное можно также провернуть и в функции callback для for group или в функции фильтра boolexpr.
23

» WarCraft 3 / [MemHack] Загрузка .mix файла с модельками прямо в игре

IceFog, скорее всего автор преследует цель, чтобы карту можно было запускать из лобби и не качать заранее доп файл с контентом, а чтобы карта сама его нашла и загрузила к себе. Тогда твой вариант рабочий)
Просто нужно к нему добавить ещё файл наподобие прелоада, где будет список файлов и который можно будет править в блокноте, не залезая в дебри кода )
23

» WarCraft 3 / Как изменить инконку у способности во время игры?

использовать то можно, только с кем и где потом играть?
Вот потому остро и нужна mix версия ujapi, чтоб можно было скачать файлик вместе с картой и спокойно играть/править карту, но автор ujapi по непонятным причинам отказывается её делать.
23

» WarCraft 3 / Изменение начальных юнитов

human1, джасс файл blizzard.j, лежит в архиве патча игры, в папке scripts.
23

» WarCraft 3 / Заморозка юнитов

Это связано с механикой исполнения триггеров.
В финальном коде у тебя получается for group, в функции которого есть trigger sleep action, а подобная комбинация недопустима, она ломает поток или что то в этом роде.
Тебе нужно сделать 2 pick every - первый на заморозку, затем записать отряд в переменную и потом сделать второй, по отряду из переменной, на разморозку.
В идеале, конечно, без ожидания, а через запуск по таймеру, а то если поставить игру на паузу во время заморозки, то спустя время разморозка... все равно запустится (баг), а таймер так не глючит
23

» WarCraft 3 / Захват генератора с помощью точки/области

Немного кривая механика задумана. Обычно "захват флага" в играх делается так:
Юнит подходит к флагу
Запускается время N минут
Если спустя N юнит находится у флага, то флаг захвачен
Если за время N приходит юнит владелец флага, то захват останавливается
Если флаг нейтральный и к нему приходят 2+ разных юнита, то флаг достаётся тому, чьих юнитов больше у флага спустя N
Примерно так же, как в серии battlefield, в общем)
23

» WarCraft 3 / GetHeroLevel() и GetUnitLevel()

Первая выдаёт текущий уровень юнита - только героя
Вторая выдаёт уровень обычного юнита, прописанный в РО или slk
23

» WarCraft 3 / вирусная моделька?

Нет, модель джасс не меняет. Если модель с ошибкой - например пустая анимация поверхности без поверхности - при показе модели редактор просто вылетит. Сильно сомневаюсь, что в код модели можно всунуть какой нибудь код, который будет портить джасс. А вот как себя ведёт движок- это хз, что там.
Помню, был у меня случай, когда я открывал карту через jngp. В коде были подобные твоим ошибки, но компилятор каким то образом их не замечал. Чудеса, не иначе)
23

» WarCraft 3 / Редактор: Очередь юнитов на смерть

SharrKnen, тут без переменных не обойтись, мб даже массив понадобится. Объяснить это без скрина триггера я вряд ли смогу
23

» WarCraft 3 / Редактор: Очередь юнитов на смерть

Ну, самое простое, это сделать свою ауру в РО, на основе любой ауры восстановления здоровья и настроить её на тип цели Сам воин, радиус 50 и поставить ей отрицательный параметр регенерации, и триггерно выдавать нужному даммику.
23

» WarCraft 3 / Здания герои?

  1. Мемхак, ujapi позволяют это.
  1. Мемхак, ujapi,
либо можно костылем, создать специального игрока союзника с полным контролем над ним, и все подобные здания давать ему. Управление будет, цвет свой можно выставить, а иконок не будет. Правда там с триггерами будут косяки
23

» WarCraft 3 / ЦВЕТ - как из игры получить точные значения playercolor в RGB кодировке ?

host_pi, я просто этот кусок кода выдрал из своего bj файла, для удобства разделил кастомные глобалки на "общие" и "только для мода", "общие" подписал как bj_. Всё просто для собственной же удобочитаемости )
23

» WarCraft 3 / ЦВЕТ - как из игры получить точные значения playercolor в RGB кодировке ?

Вариант наработки покраски цветом игрока через массивы, без elseif-ов, для 1.26
globals
    constant playercolor  PLAYER_COLOR_BLACK =  ConvertPlayerColor(12)
    playercolor array  bj_PlayerColors
    string array  bj_PlayerColorPrefiks
endglobals

function InitPlayerColors takes nothing returns nothing
    // Запускать на старте игры
    set bj_PlayerColors[0]  = PLAYER_COLOR_RED
    set bj_PlayerColors[1]  = PLAYER_COLOR_BLUE
    set bj_PlayerColors[2]  = PLAYER_COLOR_CYAN
    set bj_PlayerColors[3]  = PLAYER_COLOR_PURPLE
    set bj_PlayerColors[4]  = PLAYER_COLOR_YELLOW
    set bj_PlayerColors[5]  = PLAYER_COLOR_ORANGE
    set bj_PlayerColors[6]  = PLAYER_COLOR_GREEN
    set bj_PlayerColors[7]  = PLAYER_COLOR_PINK
    set bj_PlayerColors[8]  = PLAYER_COLOR_LIGHT_GRAY
    set bj_PlayerColors[9]  = PLAYER_COLOR_LIGHT_BLUE
    set bj_PlayerColors[10] = PLAYER_COLOR_AQUA
    set bj_PlayerColors[11] = PLAYER_COLOR_BROWN
    set bj_PlayerColors[12] = PLAYER_COLOR_BLACK
    set bj_PlayerColorPrefiks[0] =  "|c00FF0302"
    set bj_PlayerColorPrefiks[1] =  "|c000142FF"
    set bj_PlayerColorPrefiks[2] =  "|c001CE5B9"
    set bj_PlayerColorPrefiks[3] =  "|c008D30C8"
    set bj_PlayerColorPrefiks[4] =  "|c00FFFC01"
    set bj_PlayerColorPrefiks[5] =  "|c00FE8B0E"
    set bj_PlayerColorPrefiks[6] =  "|c0020BF00"
    set bj_PlayerColorPrefiks[7] =  "|c00E55BB0"
    set bj_PlayerColorPrefiks[8] =  "|c00959698"
    set bj_PlayerColorPrefiks[9] =  "|c007DBFF1"
    set bj_PlayerColorPrefiks[10] = "|c0030906A"
    set bj_PlayerColorPrefiks[11] = "|c007E4F30"
    set bj_PlayerColorPrefiks[12] = "|c00606060"
endfunction

function ConvertIndexPlayerColor takes playercolor color returns integer
local integer index = 0
    loop
    exitwhen color == bj_PlayerColors[index] or index == 12
        set index = index + 1
    endloop
    return index
endfunction

function GetPlayerColorText takes player p, string str returns string 
local integer index = ConvertIndexPlayerColor( GetPlayerColor(p) )
    return bj_PlayerColorPrefiks[index] + str + "|r"
endfunction
23

» WarCraft 3 / Триггер - добавить событие к триггеру

Добавляется событие перманентно, и удалить его нельзя отдельно, можно только отключить и/или удалить сам триггер. Также удалить можно действие и условие триггера, чтоб событие не запускало скрипт действия и не делало проверку по условию (за исключением тех событий, к которым можно добавить условие сразу через встраиваемый boolexpr)