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

Zoxan_Twist

Новичок
126
29

woksonal

Известный
Проверенный
268
154
вообщем начал писать свой сайлент..
в аим пакете:
Код:
068E: get_camera_target_point_to 0@ 1@ 14@
068D: get_camera_position_to 2@ 3@ 14@
0063: 2@ -= 0@ // (float)
0063: 3@ -= 1@ // (float)
0604: get_Z_angle_for_point 2@ 3@ store_to 4@
0C02: math 4@ = angle_to_radian 4@ // (float)
4@ *= -1.0
0C03: math 2@ = sine 4@ // (float)
005B: 0@ += 2@
// 0@ x pos
2@ *= -1.0
 // 2@ x angle
0C05: math 3@ = cosine 4@ // (float)
005B: 1@ += 3@
// 1@ - y pos
3@ *= -1.0
// 3@  y angle
с трудом выковырял X и Y из этого исходника античита, как высчитать Z позицию и угол вектора?
 
  • Нравится
Реакции: MAROSANA

ShadowBroker

Известный
110
27
Есть отличный скрипт быстрой карты для Sa:mp 0.3.7 (by MelomanCool) только одно но, он как-то конфликтует со стандартной функцией выключения чата на кнопку F7: при единичном нажатии чат становится полупрозрачным, как и положено, но при еще одном нажатии полностью он не убирается. Вместо этого, немного погодя становится снова непрозрачным. Хотел бы поинтересоваться у знатоков в чём может скрываться причина и можно ли это исправить? Предоставляю полный код:

CLEO:
// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}

//-------------MAIN---------------
thread "map"
0000: NOP
wait 2000
if
0AAB:  file_exists "CLEO\map.ini"
else_jump @map_163
0AF4: 4@v = read_string_from_ini_file "cleo\map.ini" section "MAP" key "file"
0AF0: 28@ = get_int_from_ini_file "cleo\map.ini" section "MAP" key "key"
0AF0: 29@ = get_int_from_ini_file "cleo\map.ini" section "MAP" key "alpha"
0AF0: 27@ = get_int_from_ini_file "cleo\map.ini" section "MAP" key "toggle"
:map_163
0390: load_txd_dictionary "MAP"
038F: load_texture 4@v as 1 // Load dictionary with 0390 first
038F: load_texture "pla" as 2 // Load dictionary with 0390 first
038F: load_texture "MAR" as 3 // Load dictionary with 0390 first
:map_195
wait 0
call @map_1452 1 0
if and
  27@ == 1
key_down 28@
else_jump @map_279
call @map_1122 0 30@
if
  30@ == 0
else_jump @map_279
0B12: 31@ = 31@ XOR 1
wait 100
:map_279
if and
  31@ == 1
  27@ == 1
else_jump @map_329
call @map_1452 1 1
call @map_415 1 29@
:map_329
if and
  27@ == 0
key_down 28@
else_jump @map_408
call @map_1122 0 30@
if
  30@ == 0
else_jump @map_408
call @map_1452 1 1
call @map_415 1 29@
:map_408
jump @map_195
:map_415
03F0: enable_text_draw 1
03E3: set_texture_to_be_drawn_antialiased 1
038D: draw_texture 1 position 320.0 224.0 size 448.0 448.0 RGBA 255 255 255 0@
call @map_709 0 23@ 24@ 25@
if and
  not 23@ == 0.0
  not 24@ == 0.0
else_jump @map_516
gosub @map_931
:map_516
0A8D: 30@ = read_memory 13098730 size 1 virtual_protect 0
if
  30@ == 1
else_jump @map_605
call @map_1205 0 23@ 24@ 25@
if and
  not 23@ == 0.0
  not 24@ == 0.0
else_jump @map_605
gosub @map_931
:map_605
Actor.StorePos($PLAYER_ACTOR, 1@, 2@, 3@)
3@ = Actor.Angle($PLAYER_ACTOR)
3@ -= 180.0
3@ *= -1.0
0@ = 2
gosub @map_1036
if
0AB6: store_target_marker_coords_to 1@ 2@ 3@ // IF and SET
else_jump @map_704
0@ = 3
3@ = 0
gosub @map_1036
:map_704
ret 0
:map_709
12@ = 9999.0
0@ = 0
:map_726
0085: 1@ = 0@ // (int)
1@ *= 56
1@ += 13103448
1@ += 16
0A8D: 2@ = read_memory 1@ size 4 virtual_protect 0
1@ += 4
0A8D: 3@ = read_memory 1@ size 4 virtual_protect 0
1@ += 4
0A8D: 4@ = read_memory 1@ size 4 virtual_protect 0
Actor.StorePos($PLAYER_ACTOR, 5@, 6@, 7@)
050A: 8@ = distance_between_XYZ 2@ 3@ 4@ and_XYZ 5@ 6@ 7@
if
0025:  12@ > 8@ // (float)
else_jump @map_896
0087: 12@ = 8@ // (float)
0087: 9@ = 2@ // (float)
0087: 10@ = 3@ // (float)
0087: 11@ = 4@ // (float)
:map_896
0@ += 1
  0@ > 31
else_jump @map_726
ret 3 9@ 10@ 11@
:map_931
23@ /= 13.4
23@ += 320.0
24@ /= -13.4
24@ += 224.0
03F0: enable_text_draw 1
03E3: set_texture_to_be_drawn_antialiased 1
038E: draw_box_position 23@ 24@ size 6.0 6.0 RGBA 0 0 0 255
038E: draw_box_position 23@ 24@ size 5.0 5.0 RGBA 255 0 0 255
return
:map_1036
1@ /= 13.4
1@ += 320.0
2@ /= -13.4
2@ += 224.0
03F0: enable_text_draw 0
03E3: set_texture_to_be_drawn_antialiased 1
074B: draw_texture 0@ position 1@ 2@ scale 10.0 10.0 angle 3@ color_RGBA 255 255 255 255
return
:map_1122
0AA2: 1@ = load_library "samp.dll" // IF and SET
1@ += 2203880
0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0
1@ += 8
0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0
1@ += 4
0A8D: 1@ = read_memory 1@ size 1 virtual_protect 0
ret 1 1@
:map_1205
10@ = 13098328
6@ = 0
:map_1222
0085: 14@ = 6@ // (int)
14@ *= 160
0A8E: 13@ = 10@ + 14@ // int
0A8E: 11@ = 13@ + 48 // int
0A8D: 3@ = read_memory 11@ size 4 virtual_protect 0
0A8E: 11@ = 13@ + 52 // int
0A8D: 4@ = read_memory 11@ size 4 virtual_protect 0
0A8E: 11@ = 13@ + 56 // int
0A8D: 5@ = read_memory 11@ size 4 virtual_protect 0
if and
  not 3@ == 0.0
  not 4@ == 0.0
else_jump @map_1417
if or
  3@ == 1099.551
  4@ == 1601.497
  5@ == 11.44687
  3@ == 2695.624
  4@ == -1704.688
  5@ == 10.844
else_jump @map_1438
:map_1417
6@ += 1
  6@ > 32
else_jump @map_1222
:map_1438
ret 3 3@ 4@ 5@
:map_1452
0AA2: 1@ = load_library "samp.dll" // IF and SET
1@ += 2203876
0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0
1@ += 8
if
  0@ == 1
else_jump @map_1532
0A8C: write_memory 1@ size 4 value 0 virtual_protect 1
jump @map_1543
:map_1532
0A8C: write_memory 1@ size 4 value 2 virtual_protect 1
:map_1543
ret 0

Установлена последняя версия Sampfuncs 5.3.1
 

Mustang228

Известный
62
15
Есть клео, которое активируется/деактивируется на клавишу.
Что нужно добавить в код , чтобы оно при входе уже было активировано.
 

Zoxan_Twist

Новичок
126
29
Есть клео, которое активируется/деактивируется на клавишу.
Что нужно добавить в код , чтобы оно при входе уже было активировано.
Сменить условия работы самого скрипта или значение переменной в которую записано значение включен или выключен скрипт. В зависимости от конструкции.
 

Mikha Mikhin

Новичок
131
4
Запустил у себя и никакого краша не наблюдаю.
В чем только вижу ошибку так это в том что в теле обработчика команды (в твоем случае unlock) команда wait не работает. Просто игнорируется. Поэтому когда я в чате написал /unlock мне сразу же написало "Disabled" и скрипт на том остановился.
Возможно версия SAMPFUNCS не соответствует или твой скрипт конфликтует с каким-то другим
Почему wait не работает?
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,982
Потому что в командах нельзя задержки делать.
 

01EG

Известный
Проверенный
629
354
Есть клео, которое активируется/деактивируется на клавишу.
Что нужно добавить в код , чтобы оно при входе уже было активировано.
Без функции скрипта не разобраться. Если ты работаешь с памятью, то в начале установи значение, которое тебе требуется без условия
CLEO:
...

:1
опкод( с измененными параметрами)
jump @2

:2
wait 0
if
0ab0: 49 \\ нажать чтоб выключить
jf @2
Опкод(со стандартными параметрами
wait 1000
jump @3

:3
wait 0
if
0ab0: 49 \\ нажать, чтоб включить опять
jf @3
jump @1
Вообще нужно шевелить мозгами и продумывать, как ходит код, чтоб понимать, как нужно строить скрипт.