player.data Позволяет легко производить синхранизацию. Допустим, сделали переменную animation.
JavaScript:
//Server
player.data.animation = ["cellphone@", "cellphone_text_read_base"];
//Client
mp.events.addDataHandler("animation", (entity, value) => {
entity.taskPlayAnim(value[0], value[1], 1.0, 1.0, -1, 2, 0, false, false, false);
})
В чем смысл, в том что эта переменная отображается у каждого клиента.
Допустим, рядом друг с другом находятся 10 игроков. Одному из них на сервере мы задаем данные выше.
Если бы мы просто отправили ему евент то анимация выполнилась бы только у него на клиенте. У остальных игроков что рядом ничего не произошло бы.
А в этом случае(использование player.data), у каждого игрока что рядом выполнится анимация персонажа которому была присвоена анимация.
PS entity.data можно использовать не только для персонажей, но и для машин, и других entity созданных на стороне сервера