Объясните в чём разница между двумя кодами

игрок сампа

Новичок
Автор темы
26
5
Версия MoonLoader
.027.0-preview
Почему этот код
Код:
local var_101_0 = allocateMemory(68)

sampStorePlayerOnfootData(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)), var_101_0)
setStructElement(var_101_0, 4, 2, 1024, true)
sampSendOnfootData(var_101_0)
freeMemory(var_101_0)

Отправляет ALT вообще моментально, а код ниже с небольшой задержкой
Код:
local data = samp_create_sync_data('player')
data.keysData = data.keysData + 1024
data.moveSpeed.x = 0.0
data.moveSpeed.y = 0.0
data.moveSpeed.z = 0.0               
data.send()
 
Решение
Почему этот код
Код:
local var_101_0 = allocateMemory(68)

sampStorePlayerOnfootData(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)), var_101_0)
setStructElement(var_101_0, 4, 2, 1024, true)
sampSendOnfootData(var_101_0)
freeMemory(var_101_0)

Отправляет ALT вообще моментально, а код ниже с небольшой задержкой
Код:
local data = samp_create_sync_data('player')
data.keysData = data.keysData + 1024
data.moveSpeed.x = 0.0
data.moveSpeed.y = 0.0
data.moveSpeed.z = 0.0             
data.send()

samp_create_sync_data подгружает себе 4 файлика (насколько я понимаю актуально для первого вызова) и выполняет больше действий, нежели, чем первый код

1706353361555.png

7 СМЕРТНЫХ ГРЕХОВ

Известный
515
159
Почему этот код
Код:
local var_101_0 = allocateMemory(68)

sampStorePlayerOnfootData(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)), var_101_0)
setStructElement(var_101_0, 4, 2, 1024, true)
sampSendOnfootData(var_101_0)
freeMemory(var_101_0)

Отправляет ALT вообще моментально, а код ниже с небольшой задержкой
Код:
local data = samp_create_sync_data('player')
data.keysData = data.keysData + 1024
data.moveSpeed.x = 0.0
data.moveSpeed.y = 0.0
data.moveSpeed.z = 0.0              
data.send()
Вроде так:

1 код:
Выделяется память под структуру данных размером 68 байт.
Затем используется функция sampStorePlayerOnfootData, чтобы сохранить данные о состоянии игрока на данный момент в выделенной памяти.
С функцией setStructElement устанавливается значение 1024 для элемента с индексом 2 в структуре данных.
Затем данные отправляются на сервер с использованием sampSendOnfootData.
После отправки данные освобождаются с помощью freeMemory.

2 код:
Создается объект синхронизации данных для игрока с использованием samp_create_sync_data.
К элементу keysData добавляется значение 1024.
Затем устанавливаются нулевые значения для компонентов moveSpeed (скорость движения по осям X, Y, Z).
Наконец, данные отправляются на сервер с использованием data.send().
 
  • Нравится
Реакции: игрок сампа

wojciech?

Известный
Проверенный
225
134
Почему этот код
Код:
local var_101_0 = allocateMemory(68)

sampStorePlayerOnfootData(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)), var_101_0)
setStructElement(var_101_0, 4, 2, 1024, true)
sampSendOnfootData(var_101_0)
freeMemory(var_101_0)

Отправляет ALT вообще моментально, а код ниже с небольшой задержкой
Код:
local data = samp_create_sync_data('player')
data.keysData = data.keysData + 1024
data.moveSpeed.x = 0.0
data.moveSpeed.y = 0.0
data.moveSpeed.z = 0.0             
data.send()

samp_create_sync_data подгружает себе 4 файлика (насколько я понимаю актуально для первого вызова) и выполняет больше действий, нежели, чем первый код

1706353361555.png