Roven

GTA Network API

Recommended Posts

Как понять, что делают эти функции? 

О какой синхронизации идёт речь? 

NAPI.Data.SetEntityData
NAPI.Entity.SetEntitySharedData
NAPI.Data.GetEntityData
NAPI.Data.GetEntitySharedData

 

Share this post


Link to post
Share on other sites

Синхронизация данных сервера с клиентом, например, уровень, опыт, почта и т.д.
Хранишь данные игрока в переменной pData:

PlayerData pData = new PlayerData();

Заполняешь pData и с помощью SetEntityData изменяешь значение сущности:

NAPI.Data.SetEntityData(player, "PlayerData", pData);

Эти данные доступны только на сервере и получить ты их можешь с помощью GetEntityData.

С помощью SetEntitySharedData изменяешь значение сущности и синхронизируешь его с клиентами:

NAPI.Data.SetEntitySharedData(player, "PlayerSyncData", pData);

На клиентской стороне можешь получить эти данные следующем образом:
 

let playerData = mp.players.local.getVariable('PlayerSyncData');

И уже работать с ними:

let str = playerData.Password + '\n' + playerData.Email;
/* Вывод синхронизированных данных тексдравом на экран */
mp.events.add('render', () => {
	
    mp.game.graphics.drawText(str, [0.5, 0.005], {
        font: 1,
        color: [255,255,0,230],
        scale: [1,1],
        outline: true
    });	
});

Класс PlayerData:

public class PlayerData
{
	public string Password { get; set; }
	public string Email { get; set; }
}

Можешь почитать вот эту статью

И ещё список синхронизируемых типов

Edited by WinHexs

Share this post


Link to post
Share on other sites

Такую статью я еще не находил..
Спасибо!
Но.. это типа базы данных, вместо массивов?

  1. Т.е, я сохраняю данные сперва, в базе данных, потом считываю с базы дынных информацию и храню ее на сервере с  помощью NAPI.Data.SetEntityData
  2. Далее, если игроку другому понадобится посмотреть уровень своего друга допустим, то для этого мне нужно синхронизировать нужные данные заранее, что я запомнил тогда в пункте 1 и сделать функцию на получения этих данных, после чего игрок тот будет видеть уровень своего друга.(Например нажал на кнопку в CEF и получить эти синхронизированные данные.
    Правильно я говорю?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.