Выполняется через Preloader call SetPlayerName(Player(15),"asdfghjkdsadfgh")
call ExecuteFunc("SyncData")(пытался делать по принципу Дата менеджера но там вообще в глобальную переменную локальную запихивали(до синхронизации))
Вот функция SyncData:
function SyncData takes nothing returns nothing
set cell = cell + 1
set pid = GetPlayerId(p)
call TriggerSyncStart()
if GetLocalPlayer() == p then
call StoreString( SyncCache, I2S(cell), I2S(pid), GetPlayerName(Player(15)))
call SyncStoredString( SyncCache, I2S(cell), I2S(pid))
endif
call TriggerSleepAction( 3.)
call TriggerSyncReady()
set readystring[cell] = GetStoredString( SyncCache, I2S(cell), I2S(pid))
endfunction
Пытался и локально(через GetLocalPlayer()) без всего использовать GetPlayerName тоже десинкало. Мб я где-то туплю? Заранее благодарю за ответ.

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

ProximityCat, pld файл - это файл, что ты прелоадишь. В нём должен быть вызов только функции ExecuteFunc, которая вызывает другую функцию из карты.
`
ОЖИДАНИЕ РЕКЛАМЫ...
1
32
5 лет назад
1
Без кода твоей карты сказать сложно, где ты сел в лужу.
Алгоритм должен быть примерно такой, в архиве карты есть pld файл в котором нет установки имени игрока, но есть вызов ExecuteFunc.
Через GetLocalPlayer вы устанавливаете путь до файла для загрузки, у 1 игрока путь до файла на его компе, у всех остальных путь до файла в архиве карты. У всех игроков происходить Preloader одновременно, иначе будет дисинх. Далее, только синхронизируем строку между игроками и проверяем её на значение.
0
5
5 лет назад
0
Что примерно должно получиться в файлике от Preload'ов? Насколько я понел не стоило использовать Preloader с GetLocalPlayer, и правильно ли я сделал синхронизацию?
0
28
5 лет назад
0
архиве карты есть pld файл в котором есть вызов ExecuteFunc.
0
5
5 лет назад
0
О pld файле который есть в карте впервые слышу, так что для меня это имеет 0 значения...
Прикрепил код, если нужен.
Загруженные файлы
1
28
5 лет назад
1
ProximityCat, pld файл - это файл, что ты прелоадишь. В нём должен быть вызов только функции ExecuteFunc, которая вызывает другую функцию из карты.
Принятый ответ
0
5
5 лет назад
0
Теперь ясно, правда в Дата мэнэджере используется еще и SetMaxPlayerTechAllowed(или что-то такое) и даже работает. Но всё равно спасибо, буду теперь кучу ExecuteFunc использовать раз других способов нету.
0
32
5 лет назад
0
SetMaxPlayerTechAllowed для передачи интежеров
Чтобы оставить комментарий, пожалуйста, войдите на сайт.