Всем привет. Я хочу сделать локальный эффект сетки строительства для каждого игрока, чтобы кто ввел команду -grid, только для него и отображалась сетка. Суть в том что мой код работает в сингл плеере, но вызывает дисинх в мультиплеере. Я относительно новичок в jass и возможно где-то неправильно понял статью…
Вопрос
11 92
26
ты полностью не понял статью по локал плееру, марш перечитывать
1
host_pi, еще не успел добраться до тестов, просто решил как можно быстрей ответить так как неверно вопрос задал. Буду как раз пытаться сейчас разбираться с этим, спасибо огромное за ответы
16
в идеале
в каком ещё идеале?
тебе уже 3 способа дали с конкретными решениями
почему ты их не протестил перед написанием поста? смысл писать ответы на твои вопросы тогда?
1
Дико извиняюсь, что не упомянул сразу, сейчас отредачу вопрос. Речь конечно же идет о нашей любимой версии 1.26, в идеале без мем хаков и ужопы(пока что).
16
вот пример сетки на юнитах: (привязка сетки к юниту, сетка и есть юнит)
делаешь mdx, куда льёшь 2D прозрачную сетку, ставишь юнит-сетку куда надо по координатам
если у тебя 5 игроков, то делаешь 5 юнитов. и для каждого игрока 4 из них скрываешь а 1 оставляешь таким кодом:
call SetUnitVertexColorBJ(BackGroundUnits[i],0,0,0,100)
if Player(i-1)==GetLocalPlayer()then
call SetUnitVertexColorBJ(BackGroundUnits[i],100,100,100,0)
endif
вот пример сетки на фильтре (привязка сетки идёт на весь экран игрока): но на масштаб этого фильтра вроде влияет локальный зум камеры у игрока, лучше потестить лишний раз для каждого конкретного случая
вкл:
if GetLocalPlayer()==Player(i-1) then
call CinematicFilterGenericBJ(0,BLEND_MODE_BLEND,"war3mapImported\\xxx.blp",0,0,0,100,100,100,100,50)
endif
выкл:
if GetLocalPlayer()==Player(i-1) then
call CinematicFilterGenericBJ(0,BLEND_MODE_BLEND,"ReplaceableTextures\\CameraMasks\\White_mask.blp",0,0,0,100,100,100,100,100)
endif
оба способа не десинхают
если ты хочешь привязать к мышке игрока или к координатам его камеры/обзора - то тебе придется мучиться с мемхаком и прочими функциями синхронизации данных между игроками, которые занимают по 2000 строк
либо юзать сторонние WE, но и для запуска твоей карты потребуется тоже сторонний ланчер варика
по рефорджу не знаю, может там подвезли нативку синхронизации данных
хотя судя по коду у тебя вообще координаты сетки захардкожены соответственно синхронизация данных не требуется
19
Принятый ответ
Ты создаешь локально хэндл (AddSpecialEffect), отсюда десинх.
Строку названия эффекта локально меняй, а эффект создавай для всех.
Заявление о разработке карты.
Новость
6 916
некоторые картоделы настолько убивают свои карты (судорожно боясь, что их поделие кто-то сворует и заработает миллиарды прибыли), что эти самые карты не заливаются на эпиквар (выдавая разные ошибки)
из-за чего это происходит?
  • картоделы бездумно юзают тонну ломающего…
Вопрос
5 95
16
ещё одна фишка:
раньше эпик по разным причинам отказывался принимать карту на аплоад
например DeathWing_ORPG_v.1.47
и эта карта у меня стояла в очереди на починку для аплоада когда дойдут руки
но только что при повторной попытке заливки, чтобы принести сюда скрин ошибки - оказалось, что после обновления дизайна на эпике - поменяли и обработчик ошибок. карта взяла и залилась без допиливания
поэтому если у вас лежали карты, которые не лились на эпик - стоит их все перепроверить на аплоад
и это всё равно не отменяет ошибки загрузки - сомневаюсь, что эпик стал принимать ВСЕ карты без проверки на ошибки.
в общем, нужен ре-тест по аплоаду для оценки % отказа