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

Lineage

Новичок
4
0
Пачаны, не могу соеденить 2 скрипта. Вообщем, вот, Когда я встаю на этот маркер:
Код:
{$VERSION 3.1.0027}       
{$CLEO .cs}       
 
//-------------MAIN---------------       
0000: NOP       
thread 'LINEAGE'
03BC: 1@ = create_sphere_at 2625.52 -2242.16 13.55 radius 2.0
:LINEAGE_1       
wait 0       
if       
00EC: actor $PLAYER_ACTOR 0 near_point 2625.52 -2242.16 13.55 radius 2.0 1.0
else_jump @LINEAGE_2

Чтобы меня начало тпшить как в коорд мастере допустим на эти координаты:
Код:
278.21, 1948.042, 1500.999

Исходник коордмастера:
Код:
{$CLEO}
thread "coord"
0662: NOP "coord"
 
:86
wait 0 
if or
0AB0: key_pressed 74
7@ == 1
jf @414
if and
3@ = 1024.85
4@ = 1733.32
5@ = 8.85
not actor.Dead($PLAYER_ACTOR)
jf @414
7@ = 1
 
:688
wait 0     
Actor.StorePos($PLAYER_ACTOR, 0@, 1@, 2@) 
0509: 11@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
if 
      not 11@ >= 120.0 
jf @192
Actor.PutAt($PLAYER_ACTOR, 3@, 4@, 12@)
jump @342 
 
:192
0063: 3@ -= 0@ // (float) 
0063: 4@ -= 1@ // (float) 
0604: get_Z_angle_for_point 3@ 4@ store_to 6@
Actor.Angle($PLAYER_ACTOR) = 6@   
Actor.LockInCurrentPosition($PLAYER_ACTOR) = True
if
      Actor.Driving($PLAYER_ACTOR)
jf @273
03C0: 30@ = actor $PLAYER_ACTOR car 
Car.Angle(30@) = 6@
Car.LockInCurrentPosition(30@) = True
 
:273
04C4: store_coords_to 8@ 9@ 10@ from_actor $PLAYER_ACTOR with_offset 0.0 70.1 0.0
Actor.PutAt($PLAYER_ACTOR, 8@, 9@, -80.1) 
wait 1000 
 
:329
if
0ADC: not test_cheat "NO"
jf @414 
 
:342
wait 0 
7@ = 0
Actor.StorePos($PLAYER_ACTOR, 0@, 1@, 2@)
02CE: 13@ = ground_z_at 0@ 1@ 999.0
Actor.PutAt($PLAYER_ACTOR, 0@, 1@, 13@)
Actor.LockInCurrentPosition($PLAYER_ACTOR) = False
if 
056E:  car 30@ defined
jf @414       
Car.LockInCurrentPosition(30@) = False
jump @414
 
 
 
:414
jump @86
 

Dark_Knight

Me, me and me.
Друг
4,068
2,083
Код:
 {$CLEO}

if
not 29@ = samp.Base()
then
end_thread
else
while not samp.Available()
wait 100
end
end
0b34: "relset" @Reload_Setting
0ac8: 7@ = 32
:start
call @Load_Setting 0 PosX 0@ PosY 1@ AlignX 2@ AlignY 3@ Color 4@ Shadow 5@


while true
wait 0
if 0adc: "draw"
then
0ac8: 30@ = 128
0ad3: 30@ "health.cs"
0A92: create_custom_thread 30@
0ac9: 30
end_thread
end
6@ = actor.Health($player_actor)
0ad3: 7@ = "Health: %d" 6@
0D94: draw_text 7@ pos_xy 0@ 1@ align_xy 2@ 3@ color 4@ shadow 5@
end

:Reload_Setting
goto @start
samp.CmdRet()

:Load_Setting
0ac8: 4@ = 64
0AF0: 0@ = get_int_from_ini_file "cleo\PI\setting.ini" section "Health" key "PosX"
0AF0: 1@ = get_int_from_ini_file "cleo\PI\setting.ini" section "Health" key "PosY"
0AF2: 2@ = get_float_from_ini_file "cleo\PI\setting.ini" section "Health" key "AlignX"
0AF2: 3@ = get_float_from_ini_file "cleo\PI\setting.ini" section "Health" key "AlignY"
0AF4: 4@ = read_string_from_ini_file "cleo\PI\setting.ini" section "Health" key "Color"
0AF0: 5@ = get_int_from_ini_file "cleo\PI\setting.ini" section "Health" key "Shadow"
ret 6 0@ 1@ 2@ 3@ 4@ 5@
Правильно я загружаю цвет?
 

Opcode.eXe

Известный
84
112
How to check if string 1@ is containing inside of string 2@ ?

{$CLEO .cs}
THREAD "TEST"
0662: NOP ""

while true
wait 0
0B2B: samp 1@ = get_player_id_by_actor_handle $PLAYER_ACTOR
0B36: samp 2@ = get_player_nickname 1@
0AC8: 3@ = allocate_memory_size 260
0AB1: call @getChatEntryText 1 id 99 to 3@
if
2@ is containing in 3@ // Howto check if string 2@ is inside of 4@?
then
0AF9: samp say_msg "STRING 2@ FOUND IN 3@."
end
0AC9: free_allocated_memory 3@
end

:getChatEntryText
1@ = samp.Base()
1@ += 0x212A24 // SAMP_CHAT_INFO_OFFSET 03x
0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0
1@ += 0x136
0@ *= 252 // size of stChatEntry
005A: 1@ += 0@ // (int)
1@ += 28
0AB2: ret 1 1@
 

hnnssy

Известный
Друг
2,684
2,753
How to check if string 1@ is containing inside of string 2@ ?

{$CLEO .cs}
THREAD "TEST"
0662: NOP ""

while true
wait 0
0B2B: samp 1@ = get_player_id_by_actor_handle $PLAYER_ACTOR
0B36: samp 2@ = get_player_nickname 1@
0AC8: 3@ = allocate_memory_size 260
0AB1: call @getChatEntryText 1 id 99 to 3@
if
2@ is containing in 3@ // Howto check if string 2@ is inside of 4@?
then
0AF9: samp say_msg "STRING 2@ FOUND IN 3@."
end
0AC9: free_allocated_memory 3@
end

:getChatEntryText
1@ = samp.Base()
1@ += 0x212A24 // SAMP_CHAT_INFO_OFFSET 03x
0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0
1@ += 0x136
0@ *= 252 // size of stChatEntry
005A: 1@ += 0@ // (int)
1@ += 28
0AB2: ret 1 1@

if
0C18: 1@ = strstr string1 3@ string2 2@
then
 
  • Нравится
Реакции: Opcode.eXe

MogAika

Известный
Автор темы
Друг
237
441
  • Нравится
Реакции: Opcode.eXe

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,463
Цвет ведь может состоять из букв, к примеру, FFEEAA.

Это только в {}(в чате, к примеру)

Код:
0D94: draw_text "text" pos_xy 0 0 align_xy 0.0 0.0 color 1@ shadow 1
В данном опкоде, 1@ = int
Dark, как раз таки, спрашивал про данный опкод.


Why 2@ ? What will be 2@ ?

0C18: 2@ = strstr string1 "Hello" string2 "Heuheueh Hello asodaskd"

2@ = "Hello" ?
0C18: 2@ = strstr string1 "Hello" string2 "Heuheueh Hello asodaskd"
2@ = "Hello asodaskd"
 

spiceman

GOWNIK <3
104
35
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

Dark_Knight

Me, me and me.
Друг
4,068
2,083
Остальные параметры загружаются?

Да. Перевел через онлайн конвектор с 16 в 10 и загрузил как инт то все заработало, но мне это не катит. Если в файле цвет в 16 и загружаю как инт его, то ничего не загружает.
 

JoneR

Новичок
1
0
В общем ищу клео чтоб телепортировало на чекпоинт(обычный красный цилиндр), в теме нашел это, но он не работает почему то. Помогите его переделать

Код:
{$CLEO}
 
0000: NOP
Thread "Buldozer"
 
var
0@ : integer
1@ : integer
30@ : integer
31@ : integer
32@ : integer
end
 
:start
wait 0
if and
  0AB0: key_precced 105 // np 9
  0AB0: key_precced 104 // np 8
else_jump @start
wait 300
jump @Buldozer1
 
:Buldozer1
wait 0
Actor.StorePos($PLAYER_ACTOR, 10@, 11@, 12@) // Находит позицию игрока и записывает в 0, 1, 2
 
30@ = 5000.0 // Далность нахождения маркера
31@ = -1 // Номер блока ближайшего маркера
 
for 0@ = 0 to 32
    1@ = 0@
    1@ *= 56
    1@ += 0xC7F158
    0A8E: 2@ = 1@ + 16 // Нахождение X координаты
    0A8D: 20@ = read_memory 2@ size 4 virtual_protect 0
    0A8E: 2@ = 1@ + 20 // Нахождение Y координаты
    0A8D: 21@ = read_memory 2@ size 4 virtual_protect 0
    0A8E: 2@ = 1@ + 24 // Нахождение Z координаты
    0A8D: 22@ = read_memory 2@ size 4 virtual_protect 0
    0509: 32@ = distance_between_XY 10@ 11@ and_XY 20@ 21@
    0A8E: 2@ = 1@ + 4
    0A8D: 8@ = read_memory 2@ size 4 virtual_protect 0
 
    if and
        32@ < 30@
        8@ <> 0
    then
        30@ = 32@
        31@ = 0@
    end
 
    if
        gosub @check_cp
    then
        Actor.PutAt($PLAYER_ACTOR, 20@, 21@, 22@)
    end
 
    if
        gosub @check_keys_off
    then
        wait 300
        jump @start
    end
end
jump @Buldozer1
 
:check_cp
if
    31@ <> -1
then
    1@ = 31@
    1@ *= 56
    1@ += 0xC7F158
    0A8E: 2@ = 1@ + 16 // Нахождение X координаты
    0A8D: 20@ = read_memory 2@ size 4 virtual_protect 0
    0A8E: 2@ = 1@ + 20 // Нахождение Y координаты
    0A8D: 21@ = read_memory 2@ size 4 virtual_protect 0
    0A8E: 2@ = 1@ + 24 // Нахождение Z координаты
    0A8D: 22@ = read_memory 2@ size 4 virtual_protect 0
    22@ -= 2.0
    0485: return_true
else
    059A: return_false
end
return
 
:check_keys_off
if and
    0AB0: key_precced 105 // np 9
    0AB0: key_precced 104 // np 8
then
    0485: return_true
else
    059A: return_false
end
return