Я решил сделать систему выбора персонажа таким образом: Из домика выбирается герой стандартным варкрафтовским способом. Есть две таверны, своя и вражеская. Из вражеской пикать нельзя пока не напишется мод -ap.
Реализовал я это так: У таверн нет способности "Выбрать героя". Для таверны команды 1 добавляется локально способность "Выбрать героя" только для игроков этой команды, для врагов аналогично. При моде -ap эта способность добавляется и для врагов для каждой таверны. При выборе персонажа способность "Выбрать героя" сразу удаляется для пикнувнего игрока из всех таверн, чтобы лишний раз не пикал.
Но вот беда, при выборе персонажа мгновенный кик из игры из-за десинхронизации.
Почему так? И как тогда организовать выбор героя? По-моему её не должно быть, так как выбор героя обрабатывают все одинаково, просто возможности должны быть ограничены для каждого отдельно.

Принятый ответ

Нельзя удалить способность у юнита для конкретного игрока и не вызвать при этом десинк.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
24
6 лет назад
Отредактирован prog
0
Нельзя удалить способность у юнита для конкретного игрока и не вызвать при этом десинк.
Принятый ответ
0
16
6 лет назад
0
prog:
Нельзя удалить способность у юнита для конкретного игрока и не вызвать при этом десинк.
Каким образом в той же доте тогда сделан выбор героя?
Одни таверны доступны, другие нет, после выбора все недоступны. Это как вообще?
0
32
6 лет назад
0
Drulia_san, уж точно без локал плеера, ну вопервых можно для каждого игрока сделать лимит найма любых юнитов, во вторых - чтобы нанять в таверне героя, нужно чтобы рядом был юнит игрока - понимаете? Создается даммик, ему приказывают отдать приказ smart на таверту, а таверне на даммика, после ему вручаются москиты, дамик расположен так что не может выбрать из чужих таверн. Просто? Проще простого...
0
24
6 лет назад
0
А еще можно попробовать по играться с параметрами союза и общими магазинами работающими только на союзников - возможно параметр союза "заклинания действуют на союзников" и способность выбирающая только союзных юнитов для управления таверной умеют работать вместе. Тогда меняем параметры союзов на время выбора героя по мере необходимости и перед началом боя приводим их в исходное состояние. Ну и после выбора убираем принадлежащего игроку даммика получающего доступ к таверне.
0
16
6 лет назад
0
в доте это сделано чреез
function TechHeroForAll takes integer id returns nothing
	if NoHeroLimitOff then
		call SetPlayerTechMaxAllowed(Sentinels[1],id,0)
		call SetPlayerTechMaxAllowed(Sentinels[2],id,0)
		call SetPlayerTechMaxAllowed(Sentinels[3],id,0)
		call SetPlayerTechMaxAllowed(Sentinels[4],id,0)
		call SetPlayerTechMaxAllowed(Sentinels[5],id,0)
		call SetPlayerTechMaxAllowed(Scourges[1],id,0)
		call SetPlayerTechMaxAllowed(Scourges[2],id,0)
		call SetPlayerTechMaxAllowed(Scourges[3],id,0)
		call SetPlayerTechMaxAllowed(Scourges[4],id,0)
		call SetPlayerTechMaxAllowed(Scourges[5],id,0)
	endif
endfunction
0
16
6 лет назад
0
DracoL1ch:
в доте это сделано чреез
function TechHeroForAll takes integer id returns nothing
	if NoHeroLimitOff then
		call SetPlayerTechMaxAllowed(Sentinels[1],id,0)
		call SetPlayerTechMaxAllowed(Sentinels[2],id,0)
		call SetPlayerTechMaxAllowed(Sentinels[3],id,0)
		call SetPlayerTechMaxAllowed(Sentinels[4],id,0)
		call SetPlayerTechMaxAllowed(Sentinels[5],id,0)
		call SetPlayerTechMaxAllowed(Scourges[1],id,0)
		call SetPlayerTechMaxAllowed(Scourges[2],id,0)
		call SetPlayerTechMaxAllowed(Scourges[3],id,0)
		call SetPlayerTechMaxAllowed(Scourges[4],id,0)
		call SetPlayerTechMaxAllowed(Scourges[5],id,0)
	endif
endfunction
Что тут id под собой подразумевает? Только не говорите что это для каждого героя отдельно вызывается
0
16
6 лет назад
0
естественно, для каждого
2
8
6 лет назад
Отредактирован pAxsIs
2
Сделай, чтобы вначале были вражеский таверны и свои (тогда пикает каждый свое). А если мод -ap, меняй владельца на всех тавернах на нейтральных, чтобы закупаться мог любой.
4
17
6 лет назад
4
Создайте 2 группы таверн подальше друг от друга (или поколдуйте с ренжой покупки юнитов)
Нельзя будет пикнуть героя другой стороны, из-за того что рядом нет юнита.
Каждому игроку дайте юнита, который будет выбирать героя.
При -ар создавайте 2го юнита для каждого игрока у противоположных таверн.
При выборе чара удаляете всех юнитов определённого игрока в зоне таверн.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.