Вопросы по CLEO-скриптингу

mr.ebalo

Новичок
1
0
как сделать так, чтобы пед преследовал игрока? сделал случайное появление педа на карте рандомно, атакует игрока, но не бежит за ним, а стоит на месте, то есть от него легко можно сбежать.
 

DarkColdBlood

Новичок
2
0
Ку, гайз✋✋✋ Вопрос таков. Нужно переписать прикрепленный ВХ с прорисовки ников на прорисовку всех 3д текстов в зоне прорисовки. Имею некоторый опыт программирования на разных языках, но со скриптингом для сампа сталкиваюсь впервые, поэтому за подсказки буду всей душой благодарен.

upd.
Ознакомился с такой темой как LUA скрипты. Написал то что нужно за 15 минут, но теперь новая проблема. При использовонии onCreate3Dtext появилась следующая проблема. Некоторые надписи отрисовываются издалека, а некоторые только в близи, при этом скрипт их тоже обрабатывает, но только когда они появляются на близком расстоянии. Можно ли как то это исправить, либо просканировать все 3д текста присутствующие на серве через цикл по id не приближаясь к ним?
Lua:
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
 
Последнее редактирование:

D3.Pheonix

🎹
Модератор
2,817
1,599
Ку, гайз✋✋✋ Вопрос таков. Нужно переписать прикрепленный ВХ с прорисовки ников на прорисовку всех 3д текстов в зоне прорисовки. Имею некоторый опыт программирования на разных языках, но со скриптингом для сампа сталкиваюсь впервые, поэтому за подсказки буду всей душой благодарен.
а что там паереписывать ? Новый скрипт нужен, пиши в другой раздел
 
  • Нравится
Реакции: DarkColdBlood

Skill707

Известный
7
2
Всем привет, мне надо получить углы поворота объекта. Среди опкодов нашёл такое 0176: 13@ = object 0@ Z_angle. Но для углов X, Y нету такого. Среди адресов памяти тоже не нашёл. Два часа искал на форуме решений, наткнулся на такое https://www.blast.hk/threads/897/post-17439 . Кватернион это что то связанное с углами, но пользоваться ими я не могу. Если кто сталкивался с такой проблемой, либо знает решение, пожалуйста помогите.
 

kin4stat

mq-team
Всефорумный модератор
2,730
4,712
Всем привет, мне надо получить углы поворота объекта. Среди опкодов нашёл такое 0176: 13@ = object 0@ Z_angle. Но для углов X, Y нету такого. Среди адресов памяти тоже не нашёл. Два часа искал на форуме решений, наткнулся на такое https://www.blast.hk/threads/897/post-17439 . Кватернион это что то связанное с углами, но пользоваться ими я не могу. Если кто сталкивался с такой проблемой, либо знает решение, пожалуйста помогите.
Кватернион это есть поворот объекта
 
  • Нравится
Реакции: Skill707

ollydbg

Известный
163
113
someone has the memory address of these lights
у кого-то есть адрес памяти этих огней
RGB
sa-mp-134.png
 

D3.Pheonix

🎹
Модератор
2,817
1,599
Можете объяснить как этим пользоваться. Как получить из этого, X Y Z наклона объекта.
Там же написано. Функция возвращает 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
 
  • Нравится
Реакции: Skill707

Skill707

Известный
7
2
Там же написано. Функция возвращает 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
 

D3.Pheonix

🎹
Модератор
2,817
1,599
Большое спасибо за объяснение, я применил и получилось что это функция получает тоже самое что этот опкод:
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
кажись всё это есть в функции, как раз углы поворота, получаемые из структуры объекта переводятся в кватернион. Видимо где то раньше нужно возвращать значения переменных, а не в конце, т.е сократить функцию. Но я нини вообще в этом. Жди когад шарящие ответят)
 
  • Нравится
Реакции: Skill707

Kaktyc007

Известный
166
11
Есть код флудера, как остановить флуд, если в чате появиться текст: Вы отправили объявление???

Код:
{$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()
 

ItzSmiLeOff

Известный
28
2
Как вывести в чат переменную при помощи команду 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
 

Skill707

Известный
7
2
Как вывести в чат переменную при помощи команду 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()
 
  • Нравится
Реакции: ItzSmiLeOff