Всякие генераторы баз данных, же были, ну взял и записал.
Ну а теории все впросто, если 'I000' первый, 'I001' второй и так далее, то можно перебрать все предметы но только нестандартные, весь дефолт не подчиняется этому правилу.
Никто не вспомнил про автокасты работающие на трупов? Ну вы блин даетее, скилл оживить скелета, для основы триггер с событием вызывает скелета, ну а там уже хилите хп гулю, удаляете скелетов и проигрываете анимацию...
nvc123, Пришлось, сделать так часть абилок - ибо задолбали фаталы на ровном месте.
Ну конечно можно обойтись одним триггером на всех, просто плодя действия триггеров но это точно не для гуи.
Такое нужно реализовать не на GUI.
Для начала делается ключ строка для каждого баффа, с помощью функции StringHash а потом по этому ключу записывается триггер, который следит за событиями:
Время истекло
Юнит умер.
На цель применили одну из рассеивающих способностей (если планируется сделать бафф рассеиваемым)
При каждом касте на юнита проверять а есть ли по заданному ключу триггер, если нет то создать и сделать все необходимые эффекты, а если уже есть то сбросить счетчик (таймер) и проверить уровни (если у баффа много уровней) обновляя эффекты.
Реализация не из простых, но самая безопасная и удобная.
можно только модель героя, которая будет прикреплена в качестве спецэффекта к дамми юниту с особыми анимациями.
Удалить и добавить снова, или юзнуть книгу забвения (учитывая что это руна это совсем изи) а затем приказать герою выучить все скиллы кроме нужного тебе, ну или как то иначе.
Есть, ретун баг - но увы, пока не релизнуты примеры говорить об этом можно еще долго.
Есть вариант рисования левого кд на предмете, реализовано у меня в карте.
Так что пока техника.
Включите мозги! Я вас спросил в надежде что вы одумаетесь, но нет...
Кароче вы создали юнита, а удалять его кто будет? Ау, юнит точно такой же хендл, который висит в памяти, переменную то вы обнулили а юнита удалить забыли..
Не создает ваш код никаких утечек!
Лимит операций примерно 4 к. А у тебя тут поболее 16к.
Обойти лимит операций можно только разнеся действия в разные потоки. К примеру для через таймер.
quq_CCCP, мб ты имеешь ввиду не хеш а адрес в таблице
ибо хеш это результат действия хеш функции и для 1 и той же строки он не должен меняться(один из пунктов определения)
Ну функция везде именуется StringHash но она возвращает именно адрес как ты и написал, а не инт от балды. Это нам и нужно, "" - первая строка в карте, а последнюю нужно найти, глядя что по адресу последней строки в карте можно сделать вывод модифицировали ли код или нет?
quq_CCCP, а можно поподробнее? И это защитит карту от инжекта?
Подробно - это сделай за меня?
Суть:
call BJDebugMsg( I2Sx( 100500 ) )
Выдаст разные значения в депротектнутой и нормальной картах, пока это теория но возьмите и проверьте. I2Sx - фольклорная функция ретурн бага, суть преобразует хеш от строки в строку. именно хеш а не инт. т.е адрес в таблице строк на строку. вот RetunrBug ( www.hiveworkshop.com/threads/accessing-memory-from-the-script-it... ) функция в либе Typecast - I2SH
Ну кароче проверил:
function Trig_J_Test_Actions takes nothing returns nothing
local integer i = 486
local string str = null
set str = S2S( I2SH( i ) )
call BJDebugMsg( str )
set str = null
endfunction
//===========================================================================
function InitTrig_J_Test takes nothing returns nothing
set gg_trg_J_Test = CreateTrigger( )
call TriggerRegisterPlayerEventEndCinematic( gg_trg_J_Test, Player(0) )
call TriggerAddAction( gg_trg_J_Test, function Trig_J_Test_Actions )
endfunction
При добавлении, удалении 3 функций сменяется строка по этому адресу, самое главное найти последнюю строку (ну или как я от балды ввел число) хотя я не уверен что прокатит с числом от балды, нужно найти последнюю строку на момент загрузки карты и смотреть её адрес, а после смотреть что будет записано по этому адресу в таблице строк.
» WarCraft 3 / Отказ от катологизации предметов.
» WarCraft 3 / Отказ от катологизации предметов.
» WarCraft 3 / Отказ от катологизации предметов.
Ну а теории все впросто, если 'I000' первый, 'I001' второй и так далее, то можно перебрать все предметы но только нестандартные, весь дефолт не подчиняется этому правилу.
» WarCraft 3 / Автокаст Канибализма
Так же юзать канал никто не мешает.
» WarCraft 3 / Автокаст Канибализма
» WarCraft 3 / Бафф Slowed
» WarCraft 3 / Как добавить в локальную переменную способность?
» WarCraft 3 / Как добавить в локальную переменную способность?
Ну конечно можно обойтись одним триггером на всех, просто плодя действия триггеров но это точно не для гуи.
Ред. quq_CCCP
» WarCraft 3 / Как добавить в локальную переменную способность?
Для начала делается ключ строка для каждого баффа, с помощью функции StringHash а потом по этому ключу записывается триггер, который следит за событиями:
Реализация не из простых, но самая безопасная и удобная.
Ред. quq_CCCP
» WarCraft 3 / Пара вопросов
» WarCraft 3 / Помогите пожалуйста.
» WarCraft 3 / Abilities Cooldown
Есть вариант рисования левого кд на предмете, реализовано у меня в карте.
Так что пока техника.
Ред. quq_CCCP
» WarCraft 3 / Утечка при создании юнита
Кароче вы создали юнита, а удалять его кто будет? Ау, юнит точно такой же хендл, который висит в памяти, переменную то вы обнулили а юнита удалить забыли..
Не создает ваш код никаких утечек!
» WarCraft 3 / Утечка при создании юнита
» WarCraft 3 / Не работает цикл в jass
Обойти лимит операций можно только разнеся действия в разные потоки. К примеру для через таймер.
» WarCraft 3 / Ну как? Повернуть этого чертого Тралла!!!
» WarCraft 3 / Как удалить !!область!!
» WarCraft 3 / Как удалить !!область!!
» WarCraft 3 / Как удалить !!область!!
Чувак ты думай что делаешь, ахинею же написал...
» WarCraft 3 / Отданный приказ
» WarCraft 3 / Защита карты
» WarCraft 3 / Как лучше учится созданию карт?
» WarCraft 3 / Защита карты
» WarCraft 3 / Защита карты
Ред. quq_CCCP
» WarCraft 3 / Защита карты
Суть:
I2Sx - фольклорная функция ретурн бага, суть преобразует хеш от строки в строку. именно хеш а не инт. т.е адрес в таблице строк на строку.
вот RetunrBug ( www.hiveworkshop.com/threads/accessing-memory-from-the-script-it... )
функция в либе Typecast - I2SH
Ну кароче проверил: