Добавлен
можно ли поменять иконку предмета во время игры или тип того. Просто в карте много крафтовых предметов, для каждого нужно сделать же: 1. Сам предмет со способностями, 2. Предмет в магазине с нужной иконкой, 3. Рецепт, который даётся при покупке, с иконкой какого-нибудь свитка. И того 3 предмета для 1, а таких ещё дофига. Можно как-нибудь попроще, чтобы уменьшить кол-во айтемов?

Нет нельзя, все делается ручками, ибо сама играть знать ничего не знает про крафт, так что делаем по 1 версии для каждого случая и подменяем их кодом.
`
ОЖИДАНИЕ РЕКЛАМЫ...
23
Похожие вопросы:

ответ
Делаешь способность пустышку на основе "Канал", далее делаешь триггер с событием "Юнит начал направлять способность" в условиях ставишь
свою способность, а в действиях условиями на наличие предметов делаешь крафт. Всё что я тут написал - это отсылка к темам которые можно самому найти.
ответ
компилирует war3map.j какой-то утилитой в составе JNGP
JassHelper эта утилита, её можно через PowerShell отдельно от JNGP запускать.
Так-то можно даже просто pjass.exe (тоже в составе JNGP) запустить (через PowerShell), ведь в war3map.j код уже в JASS.

БОльшая часть строк находится в war3map.wts, его и нужно переводить, там находятся все описания способностей, юнитов, предметов и так далее, иногда даже просто мусор, который редактор забыл убрать.
Дам совет, у способностей нужно переводить только описания, имена в самой игре всё равно не отображаются. А ещё на них может быть завязан код (как у меня в карте), так что лучше их вообще не трогать.
С юнитами и предметами возможна такая же ситуация, но вот тут сложнее, ведь их имена отображаются в игре.
Потому перед переводом, нужно проверить war3map.j на наличие функций GetObjectName, GetItemName, GetUnitName. Если они есть, то понять, для чего они используются, а потом уже переводить.
Часть строк может быть в war3map.j, многие и переводить не нужно (пути к эффектам, например), но вот выводимые на экран сообщения перевести стоит.
ответ
В чем проблема написать функцию подсчета итемов по их Id (циклом делается), а уже там делать условие. Не знаю уровень автора, поэтому напишу псевдокодом
Если КоличествоПредметов(u,'I000') >= 2 Тогда
	УдалитьИтем(u,'I000')
	УдалитьИтем(u,'I000')
	ДатьИтемЮниту(u,'I001')
КонецЕсли
u - юнит, с которым работаешь
ответ
В условии поставь "И" функцию где надо мясо и 20 дерева(объедение эти 2 условия , а то жарится за халявные 20 дерева). Ну для крафта используй систему зарядов на предметах или считай их количество через условие в инвентаре, на подобии триггер с " жаркой мяса".

Вот готовку на костре починил и сделал крафт в кузне из железа и кожи.

32
Нет нельзя, все делается ручками, ибо сама играть знать ничего не знает про крафт, так что делаем по 1 версии для каждого случая и подменяем их кодом.
Принятый ответ
1
Нет нельзя, все делается ручками, ибо сама играть знать ничего не знает про крафт, так что делаем по 1 версии для каждого случая и подменяем их кодом.
эхх, ну ладно. спасибо
Чтобы оставить комментарий, пожалуйста, войдите на сайт.