Небольшая ошибка редактора, которую нашёл Hodor и сообщил мне. Если написать нестандартный комментарий к коду (англ. Custom Script Code Comment, комментарий в корне дерева триггеров, где также располагается нестандартный код) и сохранить карту в формате .w3m, то комментарий не будет сохранён и пропадёт при следующем…
Тема
Если вдруг кто не знал, в vJass размер массива JASS захрадкоден, поэтому увеличение размера массива в 4 раза в версии 1.29 WarCraft 3 никак не повлияло на vJass. Сотрудник Blizzard попытался это исправить, однако найти походящую IDE для пересборки vJass оказалось не так-то просто, поэтому он не стал ничего менять,…
Тема
@PT153: PT153: И на самом деле можно указать размер в 8191, последний индекс будет работать, а указание размера не выльется в создание доп. массивов для структуры. Тут я немного ошибся, доп. массивы будут созданы и все присвоения/получения будут делаться через функцию, но сами массивы не будут использованы. код Скопировать в буферglobals constant integer A_size= 8191 //JASSHelper struct globals: constant integer si__A=1 integer si__A_F=0 integer si__A_I=0 integer array si__A_V integer array si__A_2V integer array s__A_2a integer array s__A_a endglobals function sg__A_get_a takes integer i returns integer return s__A_a[i] endfunction function sg__A_set_a takes integer i,integer v returns nothing set s__A_a[i]=v endfunction //Generated allocator of A function s__A__allocate takes nothing returns integer local integer this=si__A_F if (this!=0) then set si__A_F=si__A_V[this] else set si__A_I=si__A_I+1 set this=si__A_I endif if (this>8191) then call DisplayTimedTextToPlayer(GetLocalPlayer(),0,0,1000.,"Unable to allocate id for an object of type: A") return 0 endif set si__A_V[this]=-1 return this endfunction //Generated destructor of A function s__A_deallocate takes integer this returns nothing local integer used if this==null then call DisplayTimedTextToPlayer(GetLocalPlayer(),0,0,1000.,"Attempt to destroy a null struct of type: A") return else set used=si__A_V[this] if (used!=-1) then call DisplayTimedTextToPlayer(GetLocalPlayer(),0,0,1000.,"Double free of type: A") return endif endif set si__A_V[this]=si__A_F set si__A_F=this endfunction Отчего была зажата рабочая ячейка - неясно. Если указать размер 16382, то будут созданы 2 доп. массива, но использоваться будет только один. Если указать 16383, то будут использоваться все, хотя места хватает, ведь 16 108
Scroll Lock - быстрая модерация