Как заменить текстуру локального объекта?

Tema05

Известный
Автор темы
1,484
449
Версия MoonLoader
.026-beta
В pawn существует функция SetObjectMaterial. Она меняет текстуру самповскому объекту. Мне нужен её аналог на lua для локальных объектов созданных при помощи createObject. Думаю это как-то делается через ffi и getObjectPointer(Object object).
 
  • Эм
Реакции: arpix

Sanchez.

Известный
705
189
Lua:
local libraryname = "имя материала из библиотеки"
local texturename = "имя текстурки"

bs = raknetNewBitStream()
raknetBitStreamWriteInt16(bs, 228) -- вместо 228 - айди объекта
raknetBitStreamWriteInt8(bs, 111) -- вместо 111 - тип материала
raknetBitStreamWriteInt8(bs, 222) -- вместо 222 - айди материала
raknetBitStreamWriteInt16(bs, 123) -- вместо 123 - айди модели
raknetBitStreamWriteInt8(bs, #libraryname)
raknetBitStreamWriteString(bs, libraryname)
raknetBitStreamWriteInt8(bs, #texturename)
raknetBitStreamWriteString(bs, texturename)
raknetBitStreamWriteInt32(bs, 123) -- вместо 123 - вводишь цвет
raknetEmulRpcReceiveBitStream(84, bs)
raknetDeleteBitStream(bs)
 

chapo

tg/inst: @moujeek
Модератор
9,071
12,034
Lua:
local libraryname = "имя материала из библиотеки"
local texturename = "имя текстурки"

bs = raknetNewBitStream()
raknetBitStreamWriteInt16(bs, 228) -- вместо 228 - айди объекта
raknetBitStreamWriteInt8(bs, 111) -- вместо 111 - тип материала
raknetBitStreamWriteInt8(bs, 222) -- вместо 222 - айди материала
raknetBitStreamWriteInt16(bs, 123) -- вместо 123 - айди модели
raknetBitStreamWriteInt8(bs, #libraryname)
raknetBitStreamWriteString(bs, libraryname)
raknetBitStreamWriteInt8(bs, #texturename)
raknetBitStreamWriteString(bs, texturename)
raknetBitStreamWriteInt32(bs, 123) -- вместо 123 - вводишь цвет
raknetEmulRpcReceiveBitStream(84, bs)
raknetDeleteBitStream(bs)
круто, вот только у локальных объектов нет айди
 
  • Нравится
  • Bug
Реакции: Tema05 и Sanchez.

Tema05

Известный
Автор темы
1,484
449
Lua:
local libraryname = "имя материала из библиотеки"
local texturename = "имя текстурки"

bs = raknetNewBitStream()
raknetBitStreamWriteInt16(bs, 228) -- вместо 228 - айди объекта
raknetBitStreamWriteInt8(bs, 111) -- вместо 111 - тип материала
raknetBitStreamWriteInt8(bs, 222) -- вместо 222 - айди материала
raknetBitStreamWriteInt16(bs, 123) -- вместо 123 - айди модели
raknetBitStreamWriteInt8(bs, #libraryname)
raknetBitStreamWriteString(bs, libraryname)
raknetBitStreamWriteInt8(bs, #texturename)
raknetBitStreamWriteString(bs, texturename)
raknetBitStreamWriteInt32(bs, 123) -- вместо 123 - вводишь цвет
raknetEmulRpcReceiveBitStream(84, bs)
raknetDeleteBitStream(bs)
Я как раз таки поэтому и уточнил что объект создаётся локально. Он не имеет id (он ему не нужен так как сервер к нему не обращается) и соответственно эмуляция входящих RPC не поможет.
 
D

deleted-user-422095

Гость
Я как раз таки поэтому и уточнил что объект создаётся локально. Он не имеет id (он ему не нужен так как сервер к нему не обращается) и соответственно эмуляция входящих RPC не поможет.
Удали по хендлу, создай сампом? Такое не прокатит?
 

Tema05

Известный
Автор темы
1,484
449
Удали по хендлу, создай сампом? Такое не прокатит?
Смысл мне удалять по хендлу только что созданной мной объект?) Создавать по сампу плохой вариант из-за коллизии айдишников. Также я создаю достаточно много объектов. Около 400-500.
 
D

deleted-user-422095

Гость
Смысл мне удалять по хендлу только что созданной мной объект?) Создавать по сампу плохой вариант из-за коллизии айдишников. Также я создаю достаточно много объектов. Около 400-500.
тогда только через plugin sdk как это реализовано в pedfuncs или Helmet Mod
 

Lance_Sterling

Известный
992
354
круто, вот только у локальных объектов нет айди
Можно эмулировать создание объекта через bitstream
 
  • Bug
Реакции: Tema05