Имеется код
gamecache gameCache = InitGameCache("MMD.Dat")
string keyExp = "Experience"
player p = GetLocalPlayer()
integer exp = 0
exp = ... (локальные вычисления)
StoreInteger(gameCache, keyExp, "P" + I2S(GetPlayerId(p)), exp)
TriggerSyncStart()
SyncStoredInteger(gameCache, keyExp, "P" + I2S(GetPlayerId(p)))
TriggerSleepAction( 2.00 )
TriggerSyncReady()
for (integer i = 0; i < PLAYERS_MAX; i++)
{
experience[i] = GetStoredInteger(gameCache, keyExp, "P" + I2S(i))
}
Тестирую с другим человеком этот код на Ирине, по какой-то причине я не получаю его данные, при этом он получает мои. От того в каких мы сидим слотах ничего не зависит. Результаты синка:
Игрок 1:
Игрок 1:
Игрок 4:
Тестил у себя в локалке, данные сохраняются корректно.
В чём может быть причина такого поведения?
Принятый ответ
как бы так сказать:
TriggerSyncStart()
SyncStoredInteger(gameCache, keyExp, "P" + I2S(GetPlayerId(p)))
TriggerSleepAction( 2.00 )
TriggerSyncReady()
Не факт что успеваеть синкнуть, не знаю с чем конкретно это связано, но порой синх кеша занимает очень и очень много времени, вовсе ммд наработка нужна для хостбота, синхать с игроками нет надобности, ибо боту главное увидеть факт сиха инфы - а сихнулась она или нет уже дело десятое, бот получил что нужно...
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован quq_CCCP
Я правильно понимаю, что нужно от каждого игрока отдельно передавать всем?
Но факт остается фактом, нужен триггер в котором с помощью вейта и надо синхать, имеено в trigger action и нигде больше, иначе это работать не бдует, да и 2 секунды может быть мало, поэтому на старте секунд 10 все синхаем, и все потом ниче не трогаем, синхать динамически всякие курсоры и камеры - провальная идея.