Оказывается такой вопрос уже задавали ранее и не раз. Поиск по форуму выдал следущий результат.
function GetHost takes nothing returns player
local player p
local gamecache g = InitGameCache("Map.w3v")
call StoreInteger ( g, "Map", "Host", GetPlayerId(GetLocalPlayer ())+1)
call TriggerSyncStart ()
call SyncStoredInteger ( g, "Map", "Host" )
call TriggerSyncReady ()
set p = Player( GetStoredInteger ( g, "Map", "Host" )-1)
call FlushGameCache( g )
set g = null
return p
endfunction
Создаём Behavior типа Buff, в поле Duration пишем время жизни, в поле Expire Effect добавляем стандартный эффект Timed Life Fate.
Добавляем юниту данный behavior. Готово.
16GB, единственная проблема в том, что стандартный редактор меняет название глобальных переменных, добавля udg_ к имени. Проблем с синтаксисом не будет, даже без экспериментальных костылей.
16GB, единственная проблема в том, что стандартный редактор меняет название глобальных переменных, добавля udg_ к имени. Проблем с синтаксисом не будет, даже без экспериментальных костылей.
Решил разобраться в теме и сделать возможность записи, а не только чтения. Если я правильно понял суть бага, то нам нужна функция из blizzard.j в которой присваивается значение элементу массива. Но такая единственная функция это MeleeTournamentFinishNowRuleA. Я попробовал использовать bj-массивы, но смысла в это оказалось не более, чем присваивать значение напрямую (bj_meleeTwinkedHeroes в функции MeleeGrantItemsToHero). Я так понимаю, для этого нужен принципально другой подход?
Вот, к примеру, код (несколько функций из темы про I2C)
function setInt takes integer i returns nothing
set udg_Int = i
return //Prevents JassHelper from inlining this function
endfunction
function setStr takes string s returns nothing
set udg_Str = s
return //Prevents JassHelper from inlining this function
endfunction
function Typecast2 takes nothing returns nothing
local integer udg_Str
local string udg_Int
endfunction
//# +nosemanticerror
function SH2I takes string s returns integer
call setStr(s)
return udg_Str
endfunction
//# +nosemanticerror
function I2SH takes integer i returns string
call setInt(i)
return udg_Int
endfunction
Обычный WorldEditor не выдаст ошибок при сохранении(нужно ещё создать 2 глобальных переменных Int и Str), не смотря на явное не соотвествие типов.
» WarCraft 3 / Как убрать тень?
» WarCraft 3 / Урон, зависящий от атаки
» WarCraft 3 / Полная защита карты
Ред. BaHeK
» WarCraft 3 / Как определить хоста?
» WarCraft 3 / Сжатие текстур
» StarCraft 2 / Как установить время жизни единицы через данные?
Добавляем юниту данный behavior. Готово.
» WarCraft 3 / Удалить предмет и дать игроку его цену в золоте
» WarCraft 3 / Удалить предмет и дать игроку его цену в золоте
» Fantasmagoria(TLOS) / SaveCodeGen (SCG)
» WarCraft 3 / Полноценный Антимапхак.
» WarCraft 3 / Полноценный Антимапхак.
Ред. BaHeK
» WarCraft 3 / Русский шрифт в нестандартном коде
» WarCraft 3 / Старые карты с ретурн багом (I2C)
» WarCraft 3 / Старые карты с ретурн багом (I2C)
» WarCraft 3 / Старые карты с ретурн багом (I2C)
» WarCraft 3 / Старые карты с ретурн багом (I2C)
» WarCraft 3 / Увеличение размера карты
» WarCraft 3 / Локальная игра
» WarCraft 3 / Как обновить PJass
» WarCraft 3 / Как обновить PJass
» WarCraft 3 / Старые карты с ретурн багом (I2C)
» WarCraft 3 / Невозможно открыть файл основной карты.
» StarCraft 2 / Помогите исправить показ хп юнита
» StarCraft 2 / Помогите исправить показ хп юнита
» StarCraft 2 / Где разжиться моделями зданий протоссов для Starcraft 2?