Добавлен , не публикуется
Правильно ли я понял, что если настроить ширину первой строки на 0.25, то ширину второй строки не сделать больше 0.25? Можно как-то пофиксить?
0
19
7 лет назад
0
Похожие вопросы:

ответ
Хз. Вставил твой скрипт- все работает. Может быть у тебя сбилась переменная bj_lastCreatedMultiboard или она ссылается на другой мультиборд? Или у тебя индексы криво иницализированы (0-11), а GetConvertedPlayerId(p) возвращает 1-12. Или может у тебя событие кривое или оно вообще отсутсвует? Короче скинь целиком скрипт.
ответ
варианта без джасс не существует ибо там нужен GetLocalPlayer
готовому коду\наработке
это вопросы/ответы а не стол заказов
по поводу совета могу дать лишь 1
учи jass а ещё лучше сразу vjass и cjass
всеравно без них ничего не сделаешь нормального
а говна и так столько что оно никому не нужно
вот статьи
там можно выучить jass/vjass/cjass
ответ
Sacar777, выведи после MultiboardGetItem(udg_JC_Board, i-1, 1)
на экран следующий текст
I2S(GetHandleId(q1))
I2S(GetHandleId(q2))
если q2 по каким то причинам не создаётся то это скажет об этом
стоп
а какой у тебя размер столбца стоит?
мб просто ячейка q1 перекрывает собой ячейку q2
и размер 10 это очень много
ведь в отличие от гуи тут размер в сотых указывается
то есть если в гуи размер 10 то тут должен быть 0.1
поставь в MultiboardSetItemWidth(q1, 10.00)
вместо 10.00 0.1 и проверь
если 0.1 не сработает то поставь 0.02
если и это не сработает то отпиши сюда
я тогда раскапаю свой старый мультибоард и сравню с твоим
ответ
Sergey105, ты статьи вообще смотрел?
для того чтобы избежать кучи неудобств связанных с обновлением мультибоарда(бегать по коду и искать где что изменяется) умные люди используют инкапсуляцию
ответ
Tapper, не ,не помогает.
Если ты конечно про
//! nocjass

//! endnocjass
В общем, такая проблема возникает только на JNGP Requiem.

0
29
7 лет назад
Отредактирован Волчачка
0
Правильно ли я понял, что если настроить ширину первой строки на 0.25, то ширину второй строки не сделать больше 0.25? Можно как-то пофиксить?
В GUI SetItemWidth делает ширину для каждой ячейки.
// MultiboardSetItemsWidth(multiboard,real) - устанавливает для всех ячеек одну ширину.
call MultiboardSetItemsWidth(udg_MyBoard,0.25)
// MultiboardSetItemWidth(multiboarditem, real)  - для 1 ячейки..
0
27
7 лет назад
Отредактирован MpW
0
вот
создать мультиборд
set bj_lastCreatedMultiboard = CreateMultiboard() //создаем мультиборд, меню паузы
native CreateMultiboard takes nothing returns multiboard
мультиборд можно представить в виде таблицы
call MultiboardSetRowCount(bj_lastCreatedMultiboard, rows) //ряд, строка
native MultiboardSetRowCount takes multiboard lb, integer count returns nothing
call MultiboardSetColumnCount(bj_lastCreatedMultiboard, cols) //столбец, колонка
native MultiboardSetColumnCount takes multiboard lb, integer count returns nothing
узнать кол-во строк или столбцов мультиборда
MultiboardGetRowCount(mb) //максимальное кол-во строк
native MultiboardGetRowCount takes multiboard lb returns integer
MultiboardGetColumnCount(mb) //максимальное кол-во столбцов
native MultiboardGetColumnCount takes multiboard lb returns integer
мультиборду можно придать имя, заглавие (торчит название сверху)
call MultiboardSetTitleText(bj_lastCreatedMultiboard, title)
native MultiboardSetTitleText takes multiboard lb, string label returns nothing
цвет заглавие мультиборда (названия мультиборда)
native MultiboardSetTitleTextColor takes multiboard lb, integer red, integer green, integer blue, integer alpha returns nothing
показать-скрыть мультиборд, мультиборд можно отобразить конкретному игроку вставив вместо true условие GetLocalPlayer() == Player(0). Если мультибордов несколько, то у игрока активным будет один
call MultiboardDisplay(bj_lastCreatedMultiboard, true)
native MultiboardDisplay takes multiboard lb, boolean show returns nothing
показать-скрыть все мультиборды. Инверсная функция
call MultiboardSuppressDisplay(not flag)
native MultiboardSuppressDisplay takes boolean flag returns nothing
проверка показан ли мультиборд.
native IsMultiboardDisplayed takes multiboard lb returns boolean
часто используют понятие как ячейка multiboarditem, как и таблица Excel может хранить текст (строку), числа (целые и реальные), картинки (сюда вписывают путь картинки)
local multiboarditem mbitem = MultiboardGetItem(mb, curRow - 1, curCol - 1)
Функция MultiboardGetItem поможет перебирать ячейки, например через цикл. После того, как поработали с ячейкой (там текст или картинку изменили, ширину задали и др.). Нужно обязательно в конце вставлять эту нативку MultiboardReleaseItem
native MultiboardGetItem takes multiboard lb, integer row, integer column returns multiboarditem
показать текст, числа или изображения для одной ячейки. Вы можете скрыть текст или изображение (короче два варианта).
native MultiboardSetItemStyle takes multiboarditem mbi, boolean showValue, boolean showIcon returns nothing
показать текст, числа или изображения для всех ячеек.
native MultiboardSetItemsStyle takes multiboard lb, boolean showValues, boolean showIcons returns nothing
установить значение одной ячейки. вообще-то текст, точнее строку. Конвертом из целого числа или из реального числа переводим в строку
native MultiboardSetItemValue takes multiboarditem mbi, string val returns nothing
установить значения для всех ячеек
native MultiboardSetItemsValue takes multiboard lb, string value returns nothing
установить ширину для одной ячейки. В гуи варианте разрешено от 0% до 100%. Думаю, что ширина 100% - весь экран. Если задать хотя бы в одной ячейке 100%, это сместит всю вашу таблицу, она станет шире из-за одной ячейки. Если у вас есть в одном ряду два соседа столбца, вы захотите их расположите на экране, то не забывайте, что, если у обоих в сумме больше 100%, текст или картинка может не отобразиться, вам поэтому нужно, чтобы в одном ряду сумма не превышала 100%, то есть 1.
call MultiboardSetItemWidth(mbitem, width/100.0) //значение делиит на 100%
native MultiboardSetItemWidth takes multiboarditem mbi, real width returns nothing
устанавливает для всех ячеек одну ширину.
MultiboardSetItemsWidth(multiboard,real)
native MultiboardSetItemsWidth takes multiboard lb, real width returns nothing
задает картинку. сюда прописываете путь. Помните, там где нужно писать один слэш "/" , вы пишете два ""
native MultiboardSetItemIcon takes multiboarditem mbi, string iconFileName returns nothing
задаете картинки для всех ячеек.
native MultiboardSetItemsIcon takes multiboard lb, string iconPath returns nothing
перезапуск. удаление утечек. Эта нативка помогает удалить утечку
call MultiboardReleaseItem(mbitem)
native MultiboardReleaseItem takes multiboarditem mbi returns nothing
Цвет одной ячейки
native MultiboardSetItemValueColor takes multiboarditem mbi, integer red, integer green, integer blue, integer alpha returns nothing
цвет всех ячеек
native MultiboardSetItemsValueColor takes multiboard lb, integer red, integer green, integer blue, integer alpha returns nothing
сворачивает и разворачивает мультиборд.
call MultiboardMinimize(mb, minimize)
native MultiboardMinimize takes multiboard lb, boolean minimize returns nothing
проверка свернут ли мультиборд
native IsMultiboardMinimized takes multiboard lb returns boolean
очистить мультиборд от строк и столбцов
MultiboardClear
native MultiboardClear takes multiboard lb returns nothing
уничтожить мультиборд
DestroyMultiboard
native DestroyMultiboard takes multiboard lb returns nothing
Что я помню, что обычно при инициализации не работает то ли создание то ли разворачивание (не помню), а позже.
В гуи BJ-функции там можно нолики приписывать, короче все строки или столбцы работает. Но все это можно сократить, дописав свои.
0
21
7 лет назад
0
Steal nerves, спасибо, конечно, за список функций. Но я спрашивал не это. Представь МБ, 2строки, 2 столбца.
Если задать ширину всех ячеек в строке 1 на 0.05, то если поставить ширину ячеек второй строки 0.5 и 0.2 - текст во второй строке не поместиться. МБ не увеличивается в ширине. Его ширина задаётся по перво й строке.
0
27
7 лет назад
Отредактирован MpW
0
ScopteRectuS, xgm.guru/forum/showthread.php?t=47331
ты знаешь, что там значение на сотку нужно делить? Пропорция.
раскрыть
Ты не сможешь изменить по ходу игры размер ширины, он только один раз. Нужно спрятать мультииборд через MultiboardDisplay, изменить размер, а потом отобразить.
спасибо, конечно, за список функций. Но я спрашивал не это. Представь МБ, 2строки, 2 столбца.
ну это точно нельзя сказать. Вот, я методом тыка и проб определял. Также тут зависит от длины текста и прочее. Я пробовал посмотреть с помощью карты. MultiboardDisplay действительна полезна, помогает увидеть как меняет положение.
Вводи в чат:
"D1 N" - где N размер ширины 1 ячейки
"D2 N" - где N размер ширины 2 ячейки
Сам только что сделал, мб ничего не значит карта. Надо посмотреть, а то по впечатлениям, ввожу первой 55 (это 0,55), смещается влево, и таким образом расширяет таблицу. Ввожу второй ячейке 54 (0.54), смещается влево, Но получилось очень не красиво, она сдвинула первую ячейку вперед и встала на нее место. Короче зазоры между ячейками большие получились
Загруженные файлы
0
21
7 лет назад
0
Steal nerves, Я имел ввиду снова не это. В твоём случае это происходит потому-что идёт выравнивание не по центру, а по правому краю.
Есть multiboard (2 строки, 2 столбца.):
  • ширина первого столбца первой строки 5%
  • ширина второго столбца первой строки 5%
  • ширина первого столбца второй строки 25%
  • ширина второго столбца второй строки 25%
Что мы должны иметь в итоге?
  • ширина первой строки в общем - 10%
  • ширина второй строки в общем - 50%
Казалось бы, теперь ширина всего multiboard должна быть равна 50%, (т. к. это ширина самой широкой строки). Но на деле мы имеем multiboard , ширина которого равна 10%. Потому что, ширина multiboard высчитывается по ширине первой строки.
Я попытался исправить это таким образом: увеличивал количество столбцов всего multiboard. Например, если брать вышеприведённый пример, то мне нужно добавить третий столбец и установить его ширину на 40% (потому что вторая строка именно на столько больше первой).
В этом вопросе я хотел узнать, как увеличить ширину всего multiboard, не добавляя новых столбцов.
0
29
7 лет назад
0
Казалось бы, теперь ширина всего multiboard должна быть равна 50%, (т. к. это ширина самой широкой строки). Но на деле мы имеем multiboard , ширина которого равна 10%. Потому что, ширина multiboard высчитывается по ширине первой строки.
А что мешает высчитать процентное соотношения для 1 символа, а почему бы не с делать и 1 строку 25% 25%. И просчитывать сколько символов нужно допустить для 5%, если ты конечно хочешь чтобы слова так же сокращались, так же как при пяти 5%. Ибо нет такой функции которая бы тупо меняла ширину именно всей доски.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.