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
  • Like 1

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.