Есть переменная InitialTop, изначально равна 9.
Есть массив Initial, где в ячейках с 0 по 9 находятся значения 1 - 10 без повторений.
Теперь о самом выборе случайного значения.
Присваиваем переменной idx случайное значение с 0 по InitialTop.
Переменной Result присваиваем значение из Initial[idx].
Присваиваем Initial[idx] значение Initial[InitialTop].
Присваиваем InitialTop значение (InitialTop - 1).
Если InitialTop равно -1, то тогда сбрасываем массив Initial и InitialTop в начальное состояние.
NanO, эта функция была актуальна в RoC, в котором не было блочных циклов и условий. Нужно было заполнить и then, и else. Вот для этого эта функция нужна была. С выходом TFT она стала абсолютно бесполезна.
antontama, изменение поста делает его неопубликованным, где нет комментариев. После публикации комментарии сливаются с комментариями под уже опубликованным ресурсом.
Каждые 0.3 сек с помощью ф-ии PanCameraToTimedLocForPlayer() перемещаю камеру к персонажу, в этом случае единица за которой следует камера постоянно дребезжит а окружающий мир нет
Зачем, когда можно просто залочить камеру над персонажем?
Давно известно, что лидерборды и мультиборды нужно создавать после старта игры. Причём пишут, что нельзя даже после 0 секунд, должен быть хоть какой-нибудь промежуток, я использую 1 / 128.
Напоминаю, что индексы игроков начинаются с 0.
Проще всего сделать 1 мультиборд и менять текст локально.
KaneThaumaturge, а почему не экспортировать скрипт и не посмотреть, как инициализируются глобалки?
Размер массива на самом деле никакой не размер, а номер последней ячейки, которой будет установлено начальное значение.
set i = 0
loop
set your_array[i] = StartingValueFromGUI
set i = i + 1
exitwhen i == SizeFromGUI
endloop
Значение ячеек у массивов по умолчанию null, у чисел это 0, у логических это false. У массива групп (таймеров) начальное значение новая группа (таймер), потому с 0 по <размер массива> создаётся новая группа (таймер), а далее просто null. Это справедливо для всех объектов, у который начальное значение не из списка [0, null, false].
Потому при установке размера в 1, работать будут только ячейки 0 и 1, остальные не содержат никаких групп.
library ColorLibrary uses CommonLibrary
function GetPlayerColorIndex takes playercolor pc returns integer
return GetHandleId(pc)
endfunction
struct Color extends array
private static integer counter = -1
static thistype White
static thistype Gold
static thistype Experience
static thistype Food
static thistype Income
static thistype Lives
static thistype Kills
static thistype Numbers
static thistype Important
static thistype Hints
static thistype Warnings
static thistype Errors
static thistype Leaved
integer red
integer green
integer blue
string hex
string icon
private static method GetIndex takes nothing returns thistype
set counter = counter + 1
return counter
endmethod
private static method InitPlayerColors takes nothing returns nothing
local thistype i = GetIndex()
set i.red = 255
set i.green = 3
set i.blue = 3
set i.hex = "|cffff0303"
set i.icon = "Icons\\Player colors\\00. Red.blp"
set i = GetIndex()
set i.red = 0
set i.green = 66
set i.blue = 255
set i.hex = "|cff0042ff"
set i.icon = "Icons\\Player colors\\01. Blue.blp"
set i = GetIndex()
set i.red = 28
set i.green = 230
set i.blue = 185
set i.hex = "|cff1ce6b9"
set i.icon = "Icons\\Player colors\\02. Teal.blp"
set i = GetIndex()
set i.red = 84
set i.green = 0
set i.blue = 129
set i.hex = "|cff540081"
set i.icon = "Icons\\Player colors\\03. Purple.blp"
set i = GetIndex()
set i.red = 255
set i.green = 252
set i.blue = 0
set i.hex = "|cfffffc00"
set i.icon = "Icons\\Player colors\\04. Yellow.blp"
set i = GetIndex()
set i.red = 254
set i.green = 138
set i.blue = 14
set i.hex = "|cfffe8a0e"
set i.icon = "Icons\\Player colors\\05. Orange.blp"
set i = GetIndex()
set i.red = 32
set i.green = 192
set i.blue = 0
set i.hex = "|cff20c000"
set i.icon = "Icons\\Player colors\\06. Green.blp"
set i = GetIndex()
set i.red = 229
set i.green = 91
set i.blue = 176
set i.hex = "|cffe55bb0"
set i.icon = "Icons\\Player colors\\07. Pink.blp"
set i = GetIndex()
set i.red = 149
set i.green = 150
set i.blue = 151
set i.hex = "|cff959697"
set i.icon = "Icons\\Player colors\\08. Gray.blp"
set i = GetIndex()
set i.red = 126
set i.green = 191
set i.blue = 241
set i.hex = "|cff7ebff1"
set i.icon = "Icons\\Player colors\\09. Light Blue.blp"
set i = GetIndex()
set i.red = 16
set i.green = 98
set i.blue = 70
set i.hex = "|cff106246"
set i.icon = "Icons\\Player colors\\10. Dark Green.blp"
set i = GetIndex()
set i.red = 78
set i.green = 42
set i.blue = 4
set i.hex = "|cff4e2a04"
set i.icon = "Icons\\Player colors\\11. Brown.blp"
set i = GetIndex()
set i.red = 155
set i.green = 0
set i.blue = 0
set i.hex = "|cff9b0000"
set i.icon = "Icons\\Player colors\\12. Maroon.blp"
set i = GetIndex()
set i.red = 0
set i.green = 0
set i.blue = 195
set i.hex = "|cff0000c3"
set i.icon = "Icons\\Player colors\\13. Navy.blp"
set i = GetIndex()
set i.red = 0
set i.green = 234
set i.blue = 255
set i.hex = "|cff00eaff"
set i.icon = "Icons\\Player colors\\14. Turquoise.blp"
set i = GetIndex()
set i.red = 190
set i.green = 0
set i.blue = 254
set i.hex = "|cffbe00fe"
set i.icon = "Icons\\Player colors\\15. Violet.blp"
set i = GetIndex()
set i.red = 235
set i.green = 205
set i.blue = 135
set i.hex = "|cffebcd87"
set i.icon = "Icons\\Player colors\\16. Wheat.blp"
set i = GetIndex()
set i.red = 248
set i.green = 164
set i.blue = 139
set i.hex = "|cfff8a48b"
set i.icon = "Icons\\Player colors\\17. Peach.blp"
set i = GetIndex()
set i.red = 191
set i.green = 255
set i.blue = 128
set i.hex = "|cffbfff80"
set i.icon = "Icons\\Player colors\\18. Mint.blp"
set i = GetIndex()
set i.red = 220
set i.green = 185
set i.blue = 235
set i.hex = "|cffdcb9eb"
set i.icon = "Icons\\Player colors\\19. Lavender.blp"
set i = GetIndex()
set i.red = 40
set i.green = 40
set i.blue = 40
set i.hex = "|cff282828"
set i.icon = "Icons\\Player colors\\20. Coal.blp"
set i = GetIndex()
set i.red = 235
set i.green = 240
set i.blue = 255
set i.hex = "|cffebf0ff"
set i.icon = "Icons\\Player colors\\21. Snow.blp"
set i = GetIndex()
set i.red = 0
set i.green = 120
set i.blue = 30
set i.hex = "|cff00781e"
set i.icon = "Icons\\Player colors\\22. Emerald.blp"
set i = GetIndex()
set i.red = 164
set i.green = 111
set i.blue = 51
set i.hex = "|cffa46f33"
set i.icon = "Icons\\Player colors\\23. Peanut.blp"
endmethod
private static method onInit takes nothing returns nothing
call InitPlayerColors()
set White = GetIndex()
set White.red = 255
set White.green = 255
set White.blue = 255
set White.hex = "|cffffff"
set Gold = GetIndex()
set Gold.red = 226
set Gold.green = 176
set Gold.blue = 7
set Gold.hex = "|cffe2b007"
set Experience = GetIndex()
set Experience.red = 127
set Experience.green = 204
set Experience.blue = 255
set Experience.hex = "|cff7fccff"
set Food = GetIndex()
set Food.red = 209
set Food.green = 91
set Food.blue = 143
set Food.hex = "|cffd15b8f"
set Income = GetIndex()
set Income.red = 118
set Income.green = 165
set Income.blue = 175
set Income.hex = "|cff76a5af"
set Lives = GetIndex()
set Lives.red = 0
set Lives.green = 187
set Lives.blue = 46
set Lives.hex = "|cff00bb2e"
set Kills = GetIndex()
set Kills.red = 204
set Kills.green = 33
set Kills.blue = 33
set Kills.hex = "|cffcc3333"
set Numbers = GetIndex()
set Numbers.red = 0
set Numbers.green = 204
set Numbers.blue = 255
set Numbers.hex = "|cff00ccff"
set Important = GetIndex()
set Important.red = 255
set Important.green = 204
set Important.blue = 128
set Important.hex = "|cffffcc80"
set Hints = GetIndex()
set Hints.red = 51
set Hints.green = 204
set Hints.blue = 51
set Hints.hex = "|cff33cc33"
set Leaved = GetIndex()
set Leaved.red = 15
set Leaved.green = 15
set Leaved.blue = 15
set Leaved.hex = "|cff0f0f0f"
set Warnings = Kills
set Errors = Kills
endmethod
endstruct
function ShadowMultiboardItem takes multiboarditem mbitem returns nothing
call MultiboardSetItemValueColor(mbitem, Color.Leaved.red, Color.Leaved.green, Color.Leaved.blue, CellAlpha)
endfunction
function HideMultiboardItem takes multiboarditem mbitem returns nothing
call MultiboardSetItemStyle(mbitem, false, false)
endfunction
endlibrary
soviet, что такое обыкновенный обман? Можно чуть конкретнее? Я принимал участие в том конкурсе и никакого обмана не заметил. Также принимал участие в конкурсе 2019 года, тоже обмана не было.
» Администрация XGM / Как пропатчить пиратку.
» WarCraft 3 / Сортировка значений переменной
» WarCraft 3 / Сортировка значений переменной
» WarCraft 3 / Сортировка значений переменной
Есть массив Initial, где в ячейках с 0 по 9 находятся значения 1 - 10 без повторений.
Теперь о самом выборе случайного значения.
» WarCraft 3 / Действие - ничего не делать
Ред. PT153
» WarCraft 3 / Действие - ничего не делать
» WarCraft 3 / Проверка завершенной постройки
» WarCraft 3 / Как изменить физический размер юнита?
» WarCraft 3 / Проверка завершенной постройки
» WarCraft 3 / Приказ отмены постройки орков
» WarCraft 3 / Проверка завершенной постройки
Так-то событие на конец строительства самое верное решение без всяких костылей и приколов.
» WarCraft 3 / Warcraft 2: Reforged
» WarCraft 3 / Есть ли в 2020 перспективы у карт-гриндилок?
» WarCraft 3 / Дребезг при движении юнита
Ред. PT153
» WarCraft 3 / Локальный мультиборд
Напоминаю, что индексы игроков начинаются с 0.
Проще всего сделать 1 мультиборд и менять текст локально.
» WarCraft 3 / Звук юнитов
» WarCraft 3 / Текущий приказ юнита
» WarCraft 3 / Текущий приказ юнита
» WarCraft 3 / Триггер на вход в область
Анимацию - Поставить анимацию юниту spell.
Ред. PT153
» WarCraft 3 / Проблемы с переменной force 2
Размер массива на самом деле никакой не размер, а номер последней ячейки, которой будет установлено начальное значение.
» WarCraft 3 / Warcraft 3 Reforged: Патч 1.32.9
Маразм крепчал, люди уже жалуются на хотфиксы.
» XGM Конкурсы / Mini-Game Contest: Reforged
Ред. PT153
» WarCraft 3 / Конвертировать playercolor в строку типа |cffffffff
» WarCraft 3 / Центрирование текста
Ред. PT153
» XGM Конкурсы / Mini-Game Contest: Reforged