Добавлен
Код
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) 
}
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
19
6 лет назад
0
Похожие вопросы:

ответ
~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 чтоб твой код тестить, заюзай эту функцию

0
20
6 лет назад
0
Я юзаю #define <call > = {}
1
28
6 лет назад
1
а нафига ты явно call и set прописываешь?
MultiboardSetItemStyleBJ(mb, col, row, showValue, showIcon) = {
	mbitem = MultiboardGetItem(mb, row - 1, col - 1);
	MultiboardSetItemStyle(mbitem, showValue, showIcon);
	MultiboardReleaseItem(mbitem) 
}
так вот работает нормально
0
29
6 лет назад
0
call set mbitem=MultiboardGetItem(...
За такое надо расстреливать.
Как так можно вызывать и устанавливать одновременно?
Достаточно убрать call, и ошибки не будет.
1
28
6 лет назад
1
KingMaximax, он компилирует в call set mbitem=MultiboardGetItem(...
если ты не заметил то в коде этого небыло
0
29
6 лет назад
0
nvc123, извините, не заметил. А разве он не повторяет то, что есть в ALL.j?
0
28
6 лет назад
Отредактирован nvc123
0
KingMaximax, а ты видел в ALL.j работу с мультибоардами?
лично я там не нашёл дефайна для MultiboardSetItemStyleBJ
0
29
6 лет назад
0
nvc123:
KingMaximax, а ты видел в ALL.j работу с мультибоардами?
лично я там не нашёл дефайна для MultiboardSetItemStyleBJ
Странно. Я думал, что SirNikolas, который работал над ней, запилил всё, что нужно.
0
18
6 лет назад
0
nvc123:
так вот работает нормально
я уже делал так, в итоге будет это:
call mbitem=MultiboardGetItem(...
Diaboliko:
Я юзаю #define <call > = {}
это тоже не помогает, всё без изменений
1
28
6 лет назад
Отредактирован nvc123
1
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) 
}
Принятый ответ
0
18
6 лет назад
Отредактирован Hodor
0
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) }
}
0
28
6 лет назад
0
UrsaBoss, зачем ты везде пишешь set и call?
0
18
6 лет назад
0
nvc123:
UrsaBoss, зачем ты везде пишешь set и call?
привычка
0
28
6 лет назад
0
это может вызывать непредсказуемое поведение в cjass
и если что наиболее правильным вариантов является 2
0
18
6 лет назад
0
nvc123:
и если что наиболее правильным вариантов является 2
мне не жалко несколько килобайт в весе карты, тем более я буквально гоняюсь за оптимизацией одной кривой гуи карты
0
28
6 лет назад
0
и вообще писать set и call это плохая привычка и с точки зрения cjass и с точки зрения перехода на другие яп
UrsaBoss, 2 вариант более оптимален какбы
0
18
6 лет назад
0
nvc123:
UrsaBoss, 2 вариант более оптимален какбы
да, карта скомпилилась, смотрю с мультибордом фигня какая то. Я до этого ещё подготовил код как во 2 варианте
nvc123:
и вообще писать set и call это плохая привычка и с точки зрения cjass и с точки зрения перехода на другие яп
ну это же не мешает мне кодить на плюсах, привычка то только в jass)
Чтобы оставить комментарий, пожалуйста, войдите на сайт.