Долгий, "можете написать скрипт" — это и была просьба) Вестимо, вы не заметили
Ваш вариант с проверками крайне нерационален с точки зрения времени выполнения. Это получается постоянно, всю игру, крутится цикл, внутри которого N раз за тик еще один. При этом нужно строго отслеживать число шахты и нумеровать каждую. Да, на новичку такой скрипт будет проще, чем таблицы (кстати, они до сих пор двумерные, в варианте Jewill), но тогда по итогу пользователь будет все решать таким методом в лоб и в более сложных ситуациях встанет в тупик.
Мало того — автоматический сброс владельца с шахты будет срабатывать...сразу после её захвата! Если только человек не успеет быстро прокликать шахту и закинуть нужный гарнизон (а поди еще таскай с собой)... Плюс комп потеряет возможность держать эти шахты под контролем в принципе.
Так что, при всем уважении к вашему опыту работы с мультиплеерами, кои по сей день действительно радуют глаз, предложенный вами вариант скрипта в текущем виде банально не является рабочим.
Jewill, не берусь однозначно утверждать, что они не могут привести к вылетам, но на личном опыте с таким не сталкивался тоже, как и Долгий.
З.ы. Раз уж зашло дело о советах, рекомендую посмотреть, как устроены толкбоксы в карте "Путь героя" (в скриптах talkbox.lia) или в MCCS
Если вы не сталкивались, то, пожалуй, не откажусь от такого соблазна - толкбоксы поиспользовать. Если я пропаду - значит они убивают сейвы и мне нужно переписывать 1000+ строк

Чего делать не хочется...
пы сы.
А пока продолжу увлекательную песню "1000 и 1 вопрос к Хоттабычу и Ко по поводу веселой пляски скриптов в героях":
Внимание вопрос(Так скажем - на подумать). Существует такая функция CanShowPlayer() , может там чуть иначе, она незадокументирована, но проверят возможность показать игроку
Окно с сообщением. Мои тесты показали, что функция работает странно, то есть не всегда даёт однозначно ожидаемый результат. Однако,вроде как, когда открыты стандартные модальные(и не очень) окна, по-типу гарнизона, левел-апа и т.п, она возвращает nil,а после скрытия окна not nil. Как думаете, в комбинации с триггерами на касание любого объекта и потоком, проверяющим для игрока возможность показа окна, можно сделать триггер закрытия окна? Т.Е на примере вышеобсуждаемого скрипта, ловить момент, когда игрок взаимодействует с объектом, зачем засекать x1 - момент когда показ стал невозможен(Ну а началом координат берём начало работы потока в сегментах), затем x2 - момент, когда показ стал снова возможен. И соответственно в этот момент x2 мы и считаем, что триггер активирован - даём событие. В случае же если это наше собственное окно, мы ещё и можем этому потоку кидать "сигнал" в виде имени, например, чтобы выполнять определенное действие.
Жуть какая-то вышла, но мне почему-то не дают покоя эти шахты...
пы сы сы.
Вся эта песня лишь потому, что насколько мне понятно было из документации, через стандартный параметр callback у окошек нельзя передавать аргументы(Я буду счастлив, если как обычно не прав). А так можно было бы свои передать, что упразднило бы использование преступных массивов-буферов данных.
Будь яростней пред ночью всех ночей,
Не дай погаснуть свету своему!
Хоть мудрый знает – не осилишь тьму
Во мгле словами не зажжёшь лучей –
Не уходи безропотно во тьму.
