local sampev = require 'lib.samp.events'
function sampev.onCreate3DText(idObject, color, position, distance, testLOS, attachedPlayerId, attachedVehicleId, text)
testLOS = false
distance=10000000
sampAddChatMessage(text,color)
return {idObject, color, position, distance, testLOS, attachedPlayerId, attachedVehicleId, text}
end
а что там паереписывать ? Новый скрипт нужен, пиши в другой разделКу, гайз✋✋✋ Вопрос таков. Нужно переписать прикрепленный ВХ с прорисовки ников на прорисовку всех 3д текстов в зоне прорисовки. Имею некоторый опыт программирования на разных языках, но со скриптингом для сампа сталкиваюсь впервые, поэтому за подсказки буду всей душой благодарен.
Кватернион это есть поворот объектаВсем привет, мне надо получить углы поворота объекта. Среди опкодов нашёл такое 0176: 13@ = object 0@ Z_angle. Но для углов X, Y нету такого. Среди адресов памяти тоже не нашёл. Два часа искал на форуме решений, наткнулся на такое https://www.blast.hk/threads/897/post-17439 . Кватернион это что то связанное с углами, но пользоваться ими я не могу. Если кто сталкивался с такой проблемой, либо знает решение, пожалуйста помогите.
Можете объяснить как этим пользоваться. Как получить из этого, X Y Z наклона объекта.Кватернион это есть поворот объекта
Там же написано. Функция возвращает x y z W. Тебе нужны 3@ 4@ 5@Можете объяснить как этим пользоваться. Как получить из этого, X Y Z наклона объекта.
0A98: 1@ = object 0@ struct
0C0C: 2@ = struct 1@ offset 20 size 4 //matrix pointer
0AB1: call_scm_func @Quaternion_get 1 matrix_pointer 2@ Quat_x 3@ Quat_y 4@ Quat_z 5@ Quat_w 6@
:Quaternion_get
Большое спасибо за объяснение, я применил и получилось что это функция получает тоже самое что этот опкод:Там же написано. Функция возвращает x y z W. Тебе нужны 3@ 4@ 5@
Или ты не умеешь пользоваться scm func ?
CLEO:0A98: 1@ = object 0@ struct 0C0C: 2@ = struct 1@ offset 20 size 4 //matrix pointer 0AB1: call_scm_func @Quaternion_get 1 matrix_pointer 2@ Quat_x 3@ Quat_y 4@ Quat_z 5@ Quat_w 6@ :Quaternion_get
кажись всё это есть в функции, как раз углы поворота, получаемые из структуры объекта переводятся в кватернион. Видимо где то раньше нужно возвращать значения переменных, а не в конце, т.е сократить функцию. Но я нини вообще в этом. Жди когад шарящие ответят)Большое спасибо за объяснение, я применил и получилось что это функция получает тоже самое что этот опкод:
07C3: get_object 281@ axis_angle_relation_to 332@ 333@ 334@ 335@
Мне нужно получить обычные углы разворота объекта в X Y Z (-333.1 224.4 844.4), а не Кватернион (0.555 1.234 -1.444 -1.0).
Можно ли как то кватернион перевести в обычные углы? Или мне звонить учителю по алгебре? :D
{$CLEO}
if not 0@ = SAMP.Base()
then 0A93: end_custom_thread
end
while not SAMP.Available()
wait 100
end
0B34: samp register_client_command "ad" to_label @cmd
while true
wait 0
if 10@ == 1 // Если мы активировали скрипт
then
0AF9: samp say_msg "/ad %s" 20@ //Флудим в /ad наш текст
wait 400 //С интервалом в 1 секунду.
end
end
:cmd
0B35: samp 20@ = get_last_command_params // Записываем в 20@ текст флуда.
0B12: 10@ = 10@ XOR 1 // Этот опкод будет записывать в 10@, если там 0, то будет 1, если 1, то будет 0.
//То есть, если мы введем команду, то флуд активируется. Если введем опять, то он выключится.
Samp.CmdRet()
{$CLEO}
{$NOSOURCE}
0000:
:1
wait 0
if
0AFA: is_samp_available
jump @1
0B34: samp register_client_command "fhome" to_label @fhome
0BDE: pause_thread 0
:fhome
samp.IsCommandTyped(0@)
if
0AD4: 1@ = scan_string 0@ format "%d" 2@
jf @error
say "/findhouse %d" 2@
0B43: samp cmd_ret
:error
0B43: samp cmd_ret
Как вывести в чат переменную при помощи команду say?
CLEO:{$CLEO} {$NOSOURCE} 0000: :1 wait 0 if 0AFA: is_samp_available jump @1 0B34: samp register_client_command "fhome" to_label @fhome 0BDE: pause_thread 0 :fhome samp.IsCommandTyped(0@) if 0AD4: 1@ = scan_string 0@ format "%d" 2@ jf @error say "/findhouse %d" 2@ 0B43: samp cmd_ret :error 0B43: samp cmd_ret
0B34: samp register_client_command "fhome" to_label @fhome
:fhome
0B35: samp 0@ = get_last_command_params
0AD4: 1@ = scan_string 0@ format "%i" 2@
say "/findhouse %i" 2@ // на аризоне findihouse
SAMP.CmdRet()
Спасибо за ответ, но не работает :(Код:0B34: samp register_client_command "fhome" to_label @fhome :fhome 0B35: samp 0@ = get_last_command_params 0AD4: 1@ = scan_string 0@ format "%i" 2@ say "/findhouse %i" 2@ // на аризоне findihouse SAMP.CmdRet()