Без кода твоей карты сказать сложно, где ты сел в лужу.
Алгоритм должен быть примерно такой, в архиве карты есть pld файл в котором нет установки имени игрока, но есть вызов ExecuteFunc.
Через GetLocalPlayer вы устанавливаете путь до файла для загрузки, у 1 игрока путь до файла на его компе, у всех остальных путь до файла в архиве карты. У всех игроков происходить Preloader одновременно, иначе будет дисинх. Далее, только синхронизируем строку между игроками и проверяем её на значение.
Naadir, там все просто, Bergi_Bear, или в теме с детектом урона второй мемхак, там вылечены фаталы и прочие проблемы, о которых было известно. В теме с мемхаком задавай вопрос о том как пользоваться функциями, постараюсь помочь.
BladeInDoom, проверить весь импорт на наличе битых моделей, так же нет ли в карте создание 100500 эффектов, или когда юнитов слишком много (жар приесподней жарит сразу 50+ юнитов или что то такое)
Esea, нехрен использовать вейты в группах, они там не работают. Вовсе нельзя использовать вейты, они для этого не предназначены - не можешь без вейтов - сразу же ниче не длаешь и точка и не слушай дурачков у которых в спеллах вейты работают и все норм, ниче не норм и работать нормально никогда не будет. Либо изучаешь все как надо, либо не делаешь ничего.
Bergi_Bear, ну там много чего сбивало инвиз, а учитывая кол-во багов, этот не самый страшный. Химик во время ульта уходит в инвиз от лотара, у него кончается ульт и он выходит из инвиза, т.к морф кастуется пассивным кастом, чтобы химик мог превратится обратно. В бложике лича читаем.
Эксгумацию я проверял лично - сбивает инвиз при каждом кд. По этому спеллнигейшин не надежный и баганый вариант.
ProximityCat, насколько помню никто и не пытался особо, в основном сохраняли строки, тупо пасскоды, а из пасскодов уже извлекали данные и проверяли контрольные суммы и прочее.
ProximityCat, Синхронизация не мгновенная, еще раз. Помни про это, Потом датаменеджер не очень надежен когда нужно передавать большие обьемы данных, там как правило вейты по 1 секунде, что порой мало, синхронизация может занимать больше времени.
Попробуй с синхом простых данных, по 1 строке, к примеру пасс когда как в рпг, а не по 100500 юнитов и их параметров.
function dwFolter takes nothing returns boolean
local unit u = GetTriggerUnit()
local integer id = GetUnitUserData(u)
local boolean b = (id==2) and not( IsUnitDead(u))... ну и так далее
set u = null
return b
endfunction
Обнуляя переменные до return, базовые типы обнулять ненужно.
Только непойму почему ты не можешь юзать глобалки? В них просто заносишь нужные данные перед условием как в локалки и все, но их обнулять ненужно.
Но можно было сделать сразу проверку на типы, без IsUnitType ибо проверка на typeid быстрее и в "узких местах" лучше начинать с неё. KaneThaumaturge, Почему не выйдет? Что собрался делать напиши, какое условие?
Потом странная идиотия, создавать переменная к которой нужно обратится всего 1 раз...
function Trig_Kill_Conditions takes nothing returns boolean
local unit u = GetTriggerUnit()
local integer i = GetUnitTypeId(u)
return IsUnitType(u, UNIT_TYPE_TOWNHALL) == false or \
i != 'hfoo' or \
i != 'n006'
set u = null
endfunction
Можно было сделать так:
function Trig_Kill_Conditions takes nothing returns boolean
set bj_forLoopAIndex = GetUnitTypeId(GetTriggerUnit())
return not ( IsUnitType( GetTriggerUnit, UNIT_TYPE_TOWNHALL) or bj_forLoopAIndex == 'hfoo' or bj_forLoopAIndex == 'n006' )
endfunction
Эмм как насчет глобальных переменных, т.к в фильтрах ты не создаешь условия а только делаешь проверки, без разрыва потока вейтами, то глобалки доступное и изящное решение.
Для справки лимита в кеше нет, хоть всю память выделенную под процесс вара, пока игра не завершится с фаталом.
Вопрос в другом, как ты все это будешь синхронизировать? Для синхронизации куска ландшавта между игроками у тебя уйдет пару минут =) Все это время игроки будут вынуждены смотреть на черный экран. Для всех остальных, наш юнный мапмейкер задумал сделать карту типа рпгшки с сохранением и героея и куска ландшавта, исковерканного данным героем. Сам это он несмог написать на форуме, зато я с большим трудом выудил это из него в лс. Помогите человеку идеями =).
PT153, только это вшито в код абилки и на твои дейстия это дело никак не реагирует, проверка рассы и ветвление не зависит от допустимых целей, ибо реализовано на с++ в методе основы благодати \ лика смерти.
Эмм вроде же были способы попроще, кроме нативки - фиксировать торговлю ресурсами, есть же событие на торговлю ресурсами, достаточно узнать кто кому передает дерево и конфисковать его =) Смотрите карту Монолит, там запрещен обмен деревом между игроками.
Эмм, кстати никто не проверял на взаимодействие с инивзами? То я что то забыл упомянуть, но точно помню что эксгумация срабатывая сбивает все инвизы с владельца, что не комильфо, амулет защитый работает аналогичным образом, юнит получает приказ его каста.
Насчет 1.26+ и луа, а там еще не завезли StartAbilityCooldown?
Кстати, у дохлых сразу по прошествии времени смерти (в ро задаётся, от 1 до 3 сек. как правило), у дохлых юнитов все координаты будут 0.00, прочее тоже будет некорректно, кроме типа, владельца и способностей.
Дохлых лучше не тревожить без толку, вручение им абилок как правило заканчивается фаталом, так же в некоторых случаев фаталят владельцы аур, случается это так - аура при появлении не проверяет жив ли владелец, а просто пытается вручить ему свой бафф сразу, остальным же юнитам бафф вручится через некоторое время, пока сработает глобальный таймер для аур (2 сек, переодический, со старта игры). Но вот стоит вызвать перерасчет бонусов или способностей, как аура вручит свой бонус дохлому юниту - фатал. При смерти на юнита накладывается разновидность сайленса, которая блокирует большинство способностей, но ауры не подвержены никаким сайленсам, поэтому вокруг мертвых юнитов действует аура пока они не разложатся и их координаты не станут некорректными. Будьте бдительны и осторожны!
Ну не обязательно строительство делать, достаточно дать морф с временем жизни как у яйца феникса, так будет проще.
Событие - юнит применил способность, условие - примененная способность = твоя способность, действие вручить морф яйца феникса и установить время жизни на 15 сек. Смотри как устроен феникс чародея крови.
Можно сделать полностью триггерно, вариантов уйма, можно вместо строительсва, сделать сразу после слияния промежуточного юнита, а ему настроить апгрейд в архонта и при применении слияния, автоматически начинать апгрейд в архонта.
ProximityCat, Ты напиши че собрался делать? Нахрена создавать юнита в прелоадере еще и локально? Ну совсем крыша поехала? Разумеется дисинхнет. Синхронизировать можно только значения переменных а не обьекты целиком, для этого нужен геймкеш, синхронизация не мгновенная и не быстрая.
Unryze, спеллбук скорее всего не имеет галочки, фиксированные заклинания (или как то так) ибо там есть фишка чтобы спеллбук заполнялся случайными способностями из списка в случайном порядке.
Я бы реализаовал это на структурах вжасса, реализация была бы удобной, просто описываем структуру в которой есть само здание, группа, можно даже триггер если вам нужно следить за абилкой и юнитами.
Extremator, там вроде граффика маг или граффика цель пашут, в доте у тайдхантера пока он был с пассивкой, былл эффект на задетых врагов. Старую опен доту в помощь.
» WarCraft 3 / Синхронизация строк в 1.26
Алгоритм должен быть примерно такой, в архиве карты есть pld файл в котором нет установки имени игрока, но есть вызов ExecuteFunc.
Через GetLocalPlayer вы устанавливаете путь до файла для загрузки, у 1 игрока путь до файла на его компе, у всех остальных путь до файла в архиве карты. У всех игроков происходить Preloader одновременно, иначе будет дисинх. Далее, только синхронизируем строку между игроками и проверяем её на значение.
» WarCraft 3 / StartAbilityCD(integer, real)
» WarCraft 3 / Fatal Eror
» WarCraft 3 / Действия после wait'a не работают.
» WarCraft 3 / Перезарядка пассивных предметов
Эксгумацию я проверял лично - сбивает инвиз при каждом кд. По этому спеллнигейшин не надежный и баганый вариант.
» WarCraft 3 / DataManager
» WarCraft 3 / DataManager
Попробуй с синхом простых данных, по 1 строке, к примеру пасс когда как в рпг, а не по 100500 юнитов и их параметров.
Ред. quq_CCCP
» WarCraft 3 / Обнуление переменной в фильтрах
Только непойму почему ты не можешь юзать глобалки? В них просто заносишь нужные данные перед условием как в локалки и все, но их обнулять ненужно.
» WarCraft 3 / Обнуление переменной в фильтрах
» WarCraft 3 / Обнуление переменной в фильтрах
KaneThaumaturge, Почему не выйдет? Что собрался делать напиши, какое условие?
» WarCraft 3 / Обнуление переменной в фильтрах
» WarCraft 3 / Обнуление переменной в фильтрах
» WarCraft 3 / DataManager, GameCache
Вопрос в другом, как ты все это будешь синхронизировать? Для синхронизации куска ландшавта между игроками у тебя уйдет пару минут =) Все это время игроки будут вынуждены смотреть на черный экран.
Для всех остальных, наш юнный мапмейкер задумал сделать карту типа рпгшки с сохранением и героея и куска ландшавта, исковерканного данным героем. Сам это он несмог написать на форуме, зато я с большим трудом выудил это из него в лс. Помогите человеку идеями =).
» WarCraft 3 / Типы целей в Warcraft 3
» WarCraft 3 / Как запретить продажу дерева?
Ред. quq_CCCP
» WarCraft 3 / Возможные способности для героя
» WarCraft 3 / Перезарядка пассивных предметов
Насчет 1.26+ и луа, а там еще не завезли StartAbilityCooldown?
» WarCraft 3 / Джас код на удаление точек
Я все жду что все перейдут на рефордж и он рили будет бомбой, но поживем - увидим.
» WarCraft 3 / Хеш-таблица и юнит
Дохлых лучше не тревожить без толку, вручение им абилок как правило заканчивается фаталом, так же в некоторых случаев фаталят владельцы аур, случается это так - аура при появлении не проверяет жив ли владелец, а просто пытается вручить ему свой бафф сразу, остальным же юнитам бафф вручится через некоторое время, пока сработает глобальный таймер для аур (2 сек, переодический, со старта игры). Но вот стоит вызвать перерасчет бонусов или способностей, как аура вручит свой бонус дохлому юниту - фатал. При смерти на юнита накладывается разновидность сайленса, которая блокирует большинство способностей, но ауры не подвержены никаким сайленсам, поэтому вокруг мертвых юнитов действует аура пока они не разложатся и их координаты не станут некорректными. Будьте бдительны и осторожны!
» WarCraft 3 / Даммик-строитель для архонта
Событие - юнит применил способность, условие - примененная способность = твоя способность, действие вручить морф яйца феникса и установить время жизни на 15 сек. Смотри как устроен феникс чародея крови.
Можно сделать полностью триггерно, вариантов уйма, можно вместо строительсва, сделать сразу после слияния промежуточного юнита, а ему настроить апгрейд в архонта и при применении слияния, автоматически начинать апгрейд в архонта.
» WarCraft 3 / Десинк с Preloader'ом
» WarCraft 3 / Способности прыгают со своего места
» WarCraft 3 / Хеш-таблица
» WarCraft 3 / Эффект на способность "Сокрушение"
» WarCraft 3 / PreloadFiles не работает или я чего-то не понимаю?