Добавлен
Код
define{
    MultiboardSetItemStyleBJ(mb, col, row, showValue, showIcon) = { set mbitem = MultiboardGetItem(mb, row - 1, col - 1); call MultiboardSetItemStyle(mbitem, showValue, showIcon); call MultiboardReleaseItem(mbitem) }
    MultiboardSetItemValueBJ(mb, col, row, val) = { set mbitem = MultiboardGetItem(mb, row - 1, col - 1); call MultiboardSetItemValue(mbitem, val); call MultiboardReleaseItem(mbitem) }
    MultiboardSetItemColorBJ(mb, col, row, red, green, blue, transparency) = { set mbitem = MultiboardGetItem(mb, row - 1, col - 1); call MultiboardSetItemValueColor(mbitem, PercentTo255(red), PercentTo255(green), PercentTo255(blue), PercentTo255(100.0-transparency)); call MultiboardReleaseItem(mbitem) }
    MultiboardSetItemWidthBJ(mb, col, row, width) = { set mbitem = MultiboardGetItem(mb, row - 1, col - 1); call MultiboardSetItemWidth(mbitem, width/100.0); call MultiboardReleaseItem(mbitem) }
    MultiboardSetItemIconBJ(mb, col, row, iconFileName) = { set mbitem = MultiboardGetItem(mb, row - 1, col - 1); call MultiboardSetItemIcon(mbitem, iconFileName); call MultiboardReleaseItem(mbitem) }
}
JassHelper ругается на это
call set mbitem=MultiboardGetItem(...
Это не помогает
define <call set> = set
Версия AdicHelper 1.4.2.40

UrsaBoss, я проверял и всё работает
возможно ты смешиваешь cjass и jass синтаксис (чего делать нельзя) и прописываешь call MultiboardSetItemStyleBJ
в таком случае есть лишь 3 варианта
первый это не делать того чего делать нельзя и писать на чистом cjass
второй это создать функцию (как сделано в ALL.j) :
void MultiboardSetItemStyleBJFix(multiboard mb, int col, int row, bool showValue, bool showIcon){
	multiboarditem mbitem = MultiboardGetItem(mb, row - 1, col - 1);
	MultiboardSetItemStyle(mbitem, showValue, showIcon);
	MultiboardReleaseItem(mbitem)
}
MultiboardSetItemStyleBJ(mb, col, row, showValue, showIcon) = MultiboardSetItemStyleBJFix(mb, col, row, showValue, showIcon)
третий это дефайн с call (не уверен что сработает):
call MultiboardSetItemStyleBJ(mb, col, row, showValue, showIcon) = {
	mbitem = MultiboardGetItem(mb, row - 1, col - 1);
	MultiboardSetItemStyle(mbitem, showValue, showIcon);
	MultiboardReleaseItem(mbitem) 
}
`
ОЖИДАНИЕ РЕКЛАМЫ...
23
Похожие вопросы:

ответ
~16GB:
function AddLocalEffect takes string eff, unit u,player p,string a returns effect
if not IsPlayerAlly(GetLocalPlayer(),p) and GetPlayerState(GetLocalPlayer(),PLAYER_STATE_OBSERVER) == 0 then
set eff = " "
endif
return AddSpecialEffectTarget(eff,u,a)
endfunction
неохота качать JNGP чтоб твой код тестить, заюзай эту функцию

28
а нафига ты явно call и set прописываешь?
MultiboardSetItemStyleBJ(mb, col, row, showValue, showIcon) = {
	mbitem = MultiboardGetItem(mb, row - 1, col - 1);
	MultiboardSetItemStyle(mbitem, showValue, showIcon);
	MultiboardReleaseItem(mbitem) 
}
так вот работает нормально
29
call set mbitem=MultiboardGetItem(...
За такое надо расстреливать.
Как так можно вызывать и устанавливать одновременно?
Достаточно убрать call, и ошибки не будет.
28
KingMaximax, он компилирует в call set mbitem=MultiboardGetItem(...
если ты не заметил то в коде этого небыло
29
nvc123, извините, не заметил. А разве он не повторяет то, что есть в ALL.j?
28
KingMaximax, а ты видел в ALL.j работу с мультибоардами?
лично я там не нашёл дефайна для MultiboardSetItemStyleBJ
29
nvc123:
KingMaximax, а ты видел в ALL.j работу с мультибоардами?
лично я там не нашёл дефайна для MultiboardSetItemStyleBJ
Странно. Я думал, что SirNikolas, который работал над ней, запилил всё, что нужно.
18
nvc123:
так вот работает нормально
я уже делал так, в итоге будет это:
call mbitem=MultiboardGetItem(...
Diaboliko:
Я юзаю #define <call > = {}
это тоже не помогает, всё без изменений
28
UrsaBoss, я проверял и всё работает
возможно ты смешиваешь cjass и jass синтаксис (чего делать нельзя) и прописываешь call MultiboardSetItemStyleBJ
в таком случае есть лишь 3 варианта
первый это не делать того чего делать нельзя и писать на чистом cjass
второй это создать функцию (как сделано в ALL.j) :
void MultiboardSetItemStyleBJFix(multiboard mb, int col, int row, bool showValue, bool showIcon){
	multiboarditem mbitem = MultiboardGetItem(mb, row - 1, col - 1);
	MultiboardSetItemStyle(mbitem, showValue, showIcon);
	MultiboardReleaseItem(mbitem)
}
MultiboardSetItemStyleBJ(mb, col, row, showValue, showIcon) = MultiboardSetItemStyleBJFix(mb, col, row, showValue, showIcon)
третий это дефайн с call (не уверен что сработает):
call MultiboardSetItemStyleBJ(mb, col, row, showValue, showIcon) = {
	mbitem = MultiboardGetItem(mb, row - 1, col - 1);
	MultiboardSetItemStyle(mbitem, showValue, showIcon);
	MultiboardReleaseItem(mbitem) 
}
Принятый ответ
18
nvc123:
третий это дефайн с call
точно, благодарю
переделал так и всё получилось:
define{
    <call MultiboardSetItemStyleBJ>(mb, col, row, showValue, showIcon) = { set mbitem = MultiboardGetItem(mb, row - 1, col - 1); call MultiboardSetItemStyle(mbitem, showValue, showIcon); call MultiboardReleaseItem(mbitem) }
    <call MultiboardSetItemValueBJ>(mb, col, row, val) = { set mbitem = MultiboardGetItem(mb, row - 1, col - 1); call MultiboardSetItemValue(mbitem, val); call MultiboardReleaseItem(mbitem) }
    <call MultiboardSetItemColorBJ>(mb, col, row, red, green, blue, transparency) = { set mbitem = MultiboardGetItem(mb, row - 1, col - 1); call MultiboardSetItemValueColor(mbitem, PercentTo255(red), PercentTo255(green), PercentTo255(blue), PercentTo255(100.0-transparency)); call MultiboardReleaseItem(mbitem) }
    <call MultiboardSetItemWidthBJ>(mb, col, row, width) = { set mbitem = MultiboardGetItem(mb, row - 1, col - 1); call MultiboardSetItemWidth(mbitem, width/100.0); call MultiboardReleaseItem(mbitem) }
    <call MultiboardSetItemIconBJ>(mb, col, row, iconFileName) = { set mbitem = MultiboardGetItem(mb, row - 1, col - 1); call MultiboardSetItemIcon(mbitem, iconFileName); call MultiboardReleaseItem(mbitem) }
}
28
это может вызывать непредсказуемое поведение в cjass
и если что наиболее правильным вариантов является 2
18
nvc123:
и если что наиболее правильным вариантов является 2
мне не жалко несколько килобайт в весе карты, тем более я буквально гоняюсь за оптимизацией одной кривой гуи карты
28
и вообще писать set и call это плохая привычка и с точки зрения cjass и с точки зрения перехода на другие яп
UrsaBoss, 2 вариант более оптимален какбы
18
nvc123:
UrsaBoss, 2 вариант более оптимален какбы
да, карта скомпилилась, смотрю с мультибордом фигня какая то. Я до этого ещё подготовил код как во 2 варианте
nvc123:
и вообще писать set и call это плохая привычка и с точки зрения cjass и с точки зрения перехода на другие яп
ну это же не мешает мне кодить на плюсах, привычка то только в jass)
Чтобы оставить комментарий, пожалуйста, войдите на сайт.