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

ma_za_xa_ka

Известный
42
0
Код:
:1
wait 0
0B75: samp get_chat_string 99 text_to 2@ prefix_to 3@ color_to 4@ prefix_color_to 5@
wait 0
if 0C18: 0@ strstr string1 2@ string2 "текст"
then
wait 300
0AF9: samp say_msg "текст2"
end

Почему 0AF9: samp say_msg используется два раза?
 

PoccoJI

Новичок
135
10
Код:
:1
wait 0
0B75: samp get_chat_string 99 text_to 2@ prefix_to 3@ color_to 4@ prefix_color_to 5@
wait 0
if 0C18: 0@ strstr string1 2@ string2 "текст"
then
wait 300
0AF9: samp say_msg "текст2"
end

Почему 0AF9: samp say_msg используется два раза?

А нафиг бессмысленный wait 0 между 0B75: и 0C18: ставь после 0af9: задержку.
 

Dark_Knight

Me, me and me.
Друг
4,070
2,086
Код:
:1
wait 0
0B75: samp get_chat_string 99 text_to 2@ prefix_to 3@ color_to 4@ prefix_color_to 5@
wait 0
if 0C18: 0@ strstr string1 2@ string2 "текст"
then
wait 300
0AF9: samp say_msg "текст2"
end

Почему 0AF9: samp say_msg используется два раза?

Потому что в последней строке есть "текст".
 

SeJIya

Новичок
45
2
Как получить угол поворота объекта по осям X, Y ?
По оси Z нашёл опкод, он работает корректно:
Код:
 0176: 7@ = object 2@ Z_angle
 

PoccoJI

Новичок
135
10
Код:
Model.Load(#SOMOBU)
if
Model.Available(#SOMOBU)
then
09C7: change_player $PLAYER_ACTOR model_to #SOMOBU
end
Крашит
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,463
Код:
Model.Load(#SOMOBU)
if
Model.Available(#SOMOBU)
then
09C7: change_player $PLAYER_ACTOR model_to #SOMOBU
end
Крашит

Если правильно использовать, то не будет крашить:
Код:
#SOMOBU.Load // or Model.Load(#SOMOBU)
 
while not #SOMOBU.Available // or Model.Available(#SOMOBU)
    wait 0
end
 
09C7: change_player 0 model_to #SOMOBU
 
#SOMOBU.Destroy // or Mode.Destroy(#SOMOBU)
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,463
Ну допустим я получу адресс блока памяти объекта 0@:
Код:
0A98: 1@ = object 0@ struct
Оффсетов кроме вот этих не нашёл. Как быть ?

0x0014 | RwMatrix *matrix // Указатель на матрицу позиции и вращения
http://gtamodding.ru/wiki/

Код:
 struct RwV3D {
  float x;
  float y;
  float z;
};
 
struct RwMatrix {
  RwV3D right;
  DWORD flags; // это поле содержит флаги для оптимизации вычислений. При реальых операциях над матрицей, в него заносится 0
  RwV3D top;
  DWORD pad1; // зарезервировано. Должно быть равно 0
  RwV3D at;
  DWORD pad2; // зарезервировано. Должно быть равно 0
  RwV3D pos;
  DWORD pad3; // зарезервировано, должно быть равно 1.0f
http://sannybuilder.com/forums/viewtopic.php?pid=6390#p6390

Код:
0A98: 1@ = object 0@ struct
1@ += 0x0014
0A8D: 2@ = read_memory 1@ size 4 virtual_protect 0 // RwMatrix
Дальше сам.
 

PoccoJI

Новичок
135
10
Если правильно использовать, то не будет крашить:
Код:
#SOMOBU.Load // or Model.Load(#SOMOBU)
 
while not #SOMOBU.Available // or Model.Available(#SOMOBU)
    wait 0
end
 
09C7: change_player 0 model_to #SOMOBU
 
#SOMOBU.Destroy // or Mode.Destroy(#SOMOBU)

Возможно ли визуально сменить скин другому игроку по ид?
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,463
Возможно ли визуально сменить скин другому игроку по ид?
По идеи, да.
Код:
0@ = samp.GetActorHandleByPlayerID(10)
if 0@ > 0
then
    #SOMOBU.Load // or Model.Load(#SOMOBU)
 
    while not #SOMOBU.Available // or Model.Available(#SOMOBU)
    wait 0
    end
    09C7: change_player 0@ model_to #SOMOBU
end

Таким методом - нет.