Bergi_Bear, имя файла разное для файла.
pld - preload data file, генерируется preload gen end
Ищешь в памяти адресс строк которые должны попасть в pld скрипт и меняешь их, если необходимо.
Ну а так строчку с сохранением в кешь пожалуйста.
В карте создаем и инициализируем кешь, как его назвать неважно.
В кеше N ячеек, по 1 для каждой игрока, записывешь в каждую глобально 0 (любую одинаковую информацию), потом вызываешь прелоад - глобально, но путь к файлу разный, у всех игроков, при этом содержимое примерно одинаковое, кроме данных, при этом запись в кешь ты производишь прямо в pld файле, достаточно инициализировать кешь с тем же именем что в игре, ну а после синхронизация данных между игроками.
в прелоаде можно делать примерно так:
код
function PreloadFiles takes nothing returns nothing
local gamecache gc = InitGameCache( "MMD.Dat" )
local string st = "Runner"
//===========================================================================
// preload runner id data
//===========================================================================
call StoreInteger(gc,st,"0",'E000') //1 - A
call StoreInteger(gc,st,"1",'E001') //2 - B
call StoreInteger(gc,st,"2",'E002') //3 - C
call StoreInteger(gc,st,"3",'E003') //4 - D
call StoreInteger(gc,st,"4",'E004') //5 - E
call StoreInteger(gc,st,"5",'E005') //6 - F
call StoreInteger(gc,st,"6",'E006') //7 - G
call StoreInteger(gc,st,"7",'E007') //8 - H
call StoreInteger(gc,st,"8",'E008') //9 - I
call StoreInteger(gc,st,"9",'E009') //10 - K
call StoreInteger(gc,st,"10",'E00A') //11 - J
call StoreInteger(gc,st,"11",'E00B') //12 - K
call StoreInteger(gc,st,"12",'E00C') //13 - L
call StoreInteger(gc,st,"13",'E00D') //14 - M
call StoreInteger(gc,st,"14",'E00E') //15 - N
call StoreInteger(gc,st,"15",'E00F') //16 - O
call StoreInteger(gc,st,"16",'E00G') //17 - P
call StoreInteger(gc,st,"17",'E00H') //18 - R
call StoreInteger(gc,st,"18",'E00I') //19 - S
call StoreInteger(gc,st,"19",'E00J') //20 - T
call StoreInteger(gc,st,"20",'E00K') //21 - U
call StoreInteger(gc,st,"21",'E00L') //22 - V
call StoreInteger(gc,st,"22",'E00M') //23 - W
call StoreInteger(gc,st,"Max",22) //Максимум эльфиек
set st = null
set gc = null
endfunction
Кстати у тебя же есть мемхак, ты можешь модифицировать все что пишется в pld файл по своему хотению.
function Is2cc takes real r, real cx, real cy, real px1, real py1, real px2, real py2 returns boolean
local real dx = 0.00
local real dy = 0.00
local real a = 0.00
local real b = 0.00
local real c = 0.00
set px1 = px1 - cx
set py1 = py1 - cy
set px2 = px2 - cx
set py2 = py2 - cy
set dx = px2 - px1
set dy = py2 - py1
set a = dx * dx + dy * dy
set b = 2.00 * ( px1 * dx + py1 * dy )
set c = px1 * px1 + py1 * py1 - r * r
if ( -b < 0.00 ) then
return ( c < 0.00 )
elseif ( -b < ( 2.00 * a ) ) then
return ( ( 4.0 * a * c - b * b ) < 0 )
endif
return ( a + b + c < 0 )
endfunction
Проверка на то что пересекает ли вектор окружность,
HAMHAM, все зависит от игры и что ты грузишь.
Если у тебя скажем дота, то имеет смысл грузить данные после выбора героя а не всех сразу, тк в карте 112 героев из которых одновременно могут присутствовать только 10, поэтому при инициализации загружать всех бессмыслено. Делаем продажу дамиков с иконкой и описанием как у героя, после покупки даммика просим игрока подождать (пока пикнут союзники к примеру) и запускаем прелоад скрипт для конкретно этого героя, а затем создаем его.
Ну для начала есть целый набор функций, которые позволяют узнать что грузит игра скажем когда появляется герой, а так же функция которая сама сгенерирует скрипт со всеми preload которые нужны и все такое.
prog, в доте есть работники 1 в 1 как в архивах игры, и еще 100500 юнитов. Так что не имеет смысла морочится, проще всего работаь с нестандартными обьектами и произвести слк оптимизации.
PT153, все одинаково, все объекты которые вы изменили в редакторе объектов хранятся в карте, про скорость и прочее бред.
Запомните - все параметры стандартных объектов хранятся в архивах игры и только там, вы со своей картой никак на них не влияете.
Ни какой разницы нет какие вы взяли ИД для своих самоделок, стоит вам изменить что у угодно у стандартной абилки - она мгновенно перемещается к вам в карту, в файл объектных данных, которые да не такие быстрые как слк таблицы.
Да по большому счету их и не защищают, а делают сложно-добываемыми из карты. Как и собственна вся защита, она рассчитана чтобы ты срубил побольше доната пока её сломают и все, дальше новая версия с новой защитой.
DracoL1ch, ну многие долбят о протекте - типа в карту вложены бабки, мы не хотим чтобы это досталось нашим конкурентам (владельцы хост ботов соревнуются кто больше высосет денег из комьюнити).
Наверное китайцы страдают этим из за того же, не хотят делится источником дохода.
HAMHAM, ну разумеется чаннелинги не работают а это дело, поэтому в триггер нужно добавить 2 события, с помощью одного ты получишь координаты каста, а с помощью второго узнаешь когда твой маг закончил кастовать спелл.
Ред. quq_CCCP
» WarCraft 3 / Система подсчета сыгранных игр
pld - preload data file, генерируется preload gen end
Ищешь в памяти адресс строк которые должны попасть в pld скрипт и меняешь их, если необходимо.
Ну а так строчку с сохранением в кешь пожалуйста.
Ред. quq_CCCP
» WarCraft 3 / Система подсчета сыгранных игр
В кеше N ячеек, по 1 для каждой игрока, записывешь в каждую глобально 0 (любую одинаковую информацию), потом вызываешь прелоад - глобально, но путь к файлу разный, у всех игроков, при этом содержимое примерно одинаковое, кроме данных, при этом запись в кешь ты производишь прямо в pld файле, достаточно инициализировать кешь с тем же именем что в игре, ну а после синхронизация данных между игроками.
в прелоаде можно делать примерно так:
» WarCraft 3 / Система подсчета сыгранных игр
Ну нужен геймкешь и прелоад.
» WarCraft 3 / Система подсчета сыгранных игр
» WarCraft 3 / Polar
» WarCraft 3 / Атака всех видимых врагов заклинанием
» WarCraft 3 / Атака всех видимых врагов заклинанием
» WarCraft 3 / Существует ли событие наведения курсора на способность?
» WarCraft 3 / RenderEdge(memhak)
» WarCraft 3 / Существует ли событие наведения курсора на способность?
» WarCraft 3 / RenderEdge(memhak)
» WarCraft 3 / Как работает функция ?!
Если у тебя скажем дота, то имеет смысл грузить данные после выбора героя а не всех сразу, тк в карте 112 героев из которых одновременно могут присутствовать только 10, поэтому при инициализации загружать всех бессмыслено. Делаем продажу дамиков с иконкой и описанием как у героя, после покупки даммика просим игрока подождать (пока пикнут союзники к примеру) и запускаем прелоад скрипт для конкретно этого героя, а затем создаем его.
» WarCraft 3 / Как работает функция ?!
» WarCraft 3 / Заставить ИИ кастовать заклинания из спеллбука
» WarCraft 3 / Заставить ИИ кастовать заклинания из спеллбука
» WarCraft 3 / Полноценный Антимапхак.
» WarCraft 3 / Заставить ИИ кастовать заклинания из спеллбука
» WarCraft 3 / Slark Wars
» WarCraft 3 / Что лучше стандартный или нестандартный обьекты?
» WarCraft 3 / Что лучше стандартный или нестандартный обьекты?
Запомните - все параметры стандартных объектов хранятся в архивах игры и только там, вы со своей картой никак на них не влияете.
Ни какой разницы нет какие вы взяли ИД для своих самоделок, стоит вам изменить что у угодно у стандартной абилки - она мгновенно перемещается к вам в карту, в файл объектных данных, которые да не такие быстрые как слк таблицы.
» WarCraft 3 / Дисинх на Iccup при хостинге через бота на несколько серверов.
» WarCraft 3 / Защита карты в 2019
» WarCraft 3 / Защита карты в 2019
Наверное китайцы страдают этим из за того же, не хотят делится источником дохода.
» WarCraft 3 / Защита карты в 2019
» WarCraft 3 / Получение точки применения способности ?