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

Sergey_Gray

Новичок
78
3
if 8C18: 2@ = strstr string1 1@ string2 "Ivan_Pupkin" это вставь в моем и заработает.
"Если сделать в одном скрипте проверку на ник, а в нём если удачная проверка - подключаем второй скрипт, и второй скрипт работал только после удачной проверки, возможно так?" Вот.
Ну не сказал же ты тогда мне, ладно, спасибо
 

KoMar[Sweeaty]

Известный
3
0
Неизвестная команда samp.Available.
Помогайте!
КОД:
Код:
{$CLEO .cs}
//-------------MAIN---------------
0000: NOP
thread 'FAKE'
:FAKE_13
wait 0
if
samp.Available
else_jump @FAKE_13
12@ = SAMP.Base()
0B34: samp register_client_command "krisa" to_label @FAKE_446 
0AC8: 3@ = allocate_memory_size 70
0AC8: 4@ = allocate_memory_size 70
0AC8: 5@ = allocate_memory_size 70
0AF4: 3@ = read_string_from_ini_file "CLEO\fkick.ini" section "fkick" key "admin"
0AF4: 4@ = read_string_from_ini_file "CLEO\fkick.ini" section "fkick" key "igrok"
0AF4: 5@ = read_string_from_ini_file "CLEO\fkick.ini" section "fkick" key "prichina"

:FAKE_435
wait 0
jump @FAKE_435

:FAKE_446
wait 0
0AF4: 3@ = read_string_from_ini_file "CLEO\fkick.ini" section "fkick" key "admin"
0AF4: 4@ = read_string_from_ini_file "CLEO\fkick.ini" section "fkick" key "igrok" 
0AF4: 5@ = read_string_from_ini_file "CLEO\fkick.ini" section "fkick" key "prichina"
0AF8: samp add_message_to_chat "{FF6600} 228" -1
SAMP.CmdRet
jump @FAKE_446
 

#Frozen'ka

Известный
8
0
Неизвестная команда samp.Available.
Помогайте!
КОД:
Код:
{$CLEO .cs}
//-------------MAIN---------------
0000: NOP
thread 'FAKE'
:FAKE_13
wait 0
if
samp.Available
else_jump @FAKE_13
12@ = SAMP.Base()
0B34: samp register_client_command "krisa" to_label @FAKE_446
0AC8: 3@ = allocate_memory_size 70
0AC8: 4@ = allocate_memory_size 70
0AC8: 5@ = allocate_memory_size 70
0AF4: 3@ = read_string_from_ini_file "CLEO\fkick.ini" section "fkick" key "admin"
0AF4: 4@ = read_string_from_ini_file "CLEO\fkick.ini" section "fkick" key "igrok"
0AF4: 5@ = read_string_from_ini_file "CLEO\fkick.ini" section "fkick" key "prichina"

:FAKE_435
wait 0
jump @FAKE_435

:FAKE_446
wait 0
0AF4: 3@ = read_string_from_ini_file "CLEO\fkick.ini" section "fkick" key "admin"
0AF4: 4@ = read_string_from_ini_file "CLEO\fkick.ini" section "fkick" key "igrok"
0AF4: 5@ = read_string_from_ini_file "CLEO\fkick.ini" section "fkick" key "prichina"
0AF8: samp add_message_to_chat "{FF6600} 228" -1
SAMP.CmdRet
jump @FAKE_446

Код:
{$CLEO .cs}

0000: NOP
thread 'FAKE'

:FAKE_13
wait 0
if
samp.Available
else_jump @FAKE_13
12@ = SAMP.Base()
0B34: samp register_client_command "krisa" to_label @FAKE_446 
0AC8: 3@ = allocate_memory_size 70
0AC8: 4@ = allocate_memory_size 70
0AC8: 5@ = allocate_memory_size 70
0AF4: 3@ = read_string_from_ini_file "CLEO\fkick.ini" section "fkick" key "admin"
0AF4: 4@ = read_string_from_ini_file "CLEO\fkick.ini" section "fkick" key "igrok"
0AF4: 5@ = read_string_from_ini_file "CLEO\fkick.ini" section "fkick" key "prichina"

:FAKE_435
wait 0
jump @FAKE_435

:FAKE_446
wait 0
0AF4: 3@ = read_string_from_ini_file "CLEO\fkick.ini" section "fkick" key "admin"
0AF4: 4@ = read_string_from_ini_file "CLEO\fkick.ini" section "fkick" key "igrok" 
0AF4: 5@ = read_string_from_ini_file "CLEO\fkick.ini" section "fkick" key "prichina"
0AF8: samp add_message_to_chat "{FF6600} 228" -1

SAMP.CmdRet
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,962
Опкод: 0B22: samp set_sendrate 1@ to 2@ нужно использовать в цикле или нет?
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,962
Устанавливает задержку отправки клиентом, выбранного типа, пакетов. Что не понятного? Этот тип пакета будет отправляться с задержкой достаточно 1 раз указать. Можешь в цикле. Проще тестируй.
Мне вообще-то всё понятно. Просто было интересно работать правильно будет в цикле или нет.

Спасибо.
 

Dimoz

Новичок
98
16
Ребят, как найти позицию маркера? (по типу того, на котором берешь работу в мэрии на самп-рп)
Нашел старый туториал от могайки, но он там перебирает все 32 возможных гта-шных маркера, а в сампе доступен только один (как ни пытался адаптировать, не получалось: вылетала игра)
 

fiendshadow

3LFhocV726q7pKWWky2vv3W38Dm9sGJV86
Проверенный
455
121
Ребят, как найти позицию маркера? (по типу того, на котором берешь работу в мэрии на самп-рп)
Нашел старый туториал от могайки, но он там перебирает все 32 возможных гта-шных маркера, а в сампе доступен только один (как ни пытался адаптировать, не получалось: вылетала игра)
Юзай SCM от gc0d'a
PHP:
0AB1: call @StoreClosestMarkerPos 0 X 30@ Y 29@ Z 28@
0AB1: call @StoreClosestRaceMarkerPos 0 X 30@ Y 29@ Z 28@
:storeclosestmarkerpos
12@ = 9999.0
for 0@ = 0 to 31
    0085: 1@ = 0@
    1@ *= 160
    1@ += 0xC7DD58
    1@ += 48
    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
    00A0: store_actor $PLAYER_ACTOR position_to 5@ 6@ 7@
    050A: 8@ = distance_between_XYZ 2@ 3@ 4@ and_XYZ 5@ 6@ 7@
    if
        0025: 12@ > 8@
    then
        0087: 12@ = 8@
        0087: 9@ = 2@
        0087: 10@ = 3@
        0087: 11@ = 4@
    end
end
0AB2: ret 3 9@ 10@ 11@
:storeclosestracemarkerpos
12@ = 9999.0
for 0@ = 0 to 31
    0085: 1@ = 0@
    1@ *= 56
    1@ += 0xC7F158
    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
    00A0: store_actor $PLAYER_ACTOR position_to 5@ 6@ 7@
    050A: 8@ = distance_between_XYZ 2@ 3@ 4@ and_XYZ 5@ 6@ 7@
    if
        0025: 12@ > 8@
    then
        0087: 12@ = 8@
        0087: 9@ = 2@
        0087: 10@ = 3@
        0087: 11@ = 4@
    end
end
0AB2: ret 3 9@ 10@ 11@
 

Dimoz

Новичок
98
16
Юзай SCM от gc0d'a
PHP:
0AB1: call @StoreClosestMarkerPos 0 X 30@ Y 29@ Z 28@
0AB1: call @StoreClosestRaceMarkerPos 0 X 30@ Y 29@ Z 28@
:storeclosestmarkerpos
12@ = 9999.0
for 0@ = 0 to 31
    0085: 1@ = 0@
    1@ *= 160
    1@ += 0xC7DD58
    1@ += 48
    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
    00A0: store_actor $PLAYER_ACTOR position_to 5@ 6@ 7@
    050A: 8@ = distance_between_XYZ 2@ 3@ 4@ and_XYZ 5@ 6@ 7@
    if
        0025: 12@ > 8@
    then
        0087: 12@ = 8@
        0087: 9@ = 2@
        0087: 10@ = 3@
        0087: 11@ = 4@
    end
end
0AB2: ret 3 9@ 10@ 11@
:storeclosestracemarkerpos
12@ = 9999.0
for 0@ = 0 to 31
    0085: 1@ = 0@
    1@ *= 56
    1@ += 0xC7F158
    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
    00A0: store_actor $PLAYER_ACTOR position_to 5@ 6@ 7@
    050A: 8@ = distance_between_XYZ 2@ 3@ 4@ and_XYZ 5@ 6@ 7@
    if
        0025: 12@ > 8@
    then
        0087: 12@ = 8@
        0087: 9@ = 2@
        0087: 10@ = 3@
        0087: 11@ = 4@
    end
end
0AB2: ret 3 9@ 10@ 11@


Тут тоже пересчет.
Вообщем я понял.
Не знаю, правильно ли это, но практика показала, что цикл тут не нужен.
На дебаг-сервере позиция спокойно находилась и так:
PHP:
0@ = 2
0@ *= 160
0@ += 0xC7DD58
0C0C: 1@ = struct 0@ offset 48 size 4
0C0C: 2@ = struct 0@ offset 52 size 4
0C0C: 3@ = struct 0@ offset 56 size 4
Эти маркеры состоят из 4-ех колец и на каждое можно найти позицию.
Если взять 0@ = 2, то мы найдем координаты первого кольца
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,962
Ребят, как найти позицию маркера? (по типу того, на котором берешь работу в мэрии на самп-рп)
Нашел старый туториал от могайки, но он там перебирает все 32 возможных гта-шных маркера, а в сампе доступен только один (как ни пытался адаптировать, не получалось: вылетала игра)
0A8D: 0@ = read_memory 13099016 size 4 virtual_protect 1 // X
0A8D: 1@ = read_memory 13099020 size 4 virtual_protect 1 // Y
0A8D: 2@ = read_memory 13099024 size 4 virtual_protect 1 // Z
 

RYTIK

Новичок
8
0
Нужно чтобы в клео скрипте при вводе команды открывалось диалоговое окно
 

DataIN

Новичок
9
0
Ребята , помогите декриптовать скрипт дбчика , это бот погрузчика для адванс рп , можно открыть самым простым декриптером просто у меня он перестал открываться вот ссыль на скрипт http://adf.ly/smXwn
 

Lightkiller

Известный
Всефорумный модератор
557
397
Ребята , помогите декриптовать скрипт дбчика , это бот погрузчика для адванс рп , можно открыть самым простым декриптером просто у меня он перестал открываться вот ссыль на скрипт http://adf.ly/smXwn
Код:
// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}

hex
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
end


//-------------MAIN---------------
0000: NOP 

:Noname_2
wait 400 
   SAMP.Available
else_jump @Noname_2 
0B34: samp register_client_command "cg" to_label @Noname_56 

:Noname_27
wait 0 
if 
  29@ == 1 
else_jump @Noname_27 
jump @Noname_65 

:Noname_56
29@ = 1 
SAMP.CmdRet

:Noname_65
wait 0 
if 
   Actor.Driving($PLAYER_ACTOR)
else_jump @Noname_269 
0AE3: 10@ = random_object_near_point 2250.03 -2238.97 11.31 in_radius 10.0 find_next 0 //IF and SET 
else_jump @Noname_126 
jump @Noname_185 

:Noname_126
0AE3: 10@ = random_object_near_point 2250.03 -2238.97 11.31 in_radius 10.0 find_next 1 //IF and SET 
0ACD: show_text_highpriority "~y~S~w~earch" time 1 
else_jump @Noname_65 
jump @Noname_185 

:Noname_185
11@ = Object.Model(10@)
if 
  11@ == 1558 
else_jump @Noname_65 
Object.StorePos(10@, 21@, 22@, 2@)
call @Noname_297 3 21@ 22@ 2@ 
say "/take" 
29@ = 0 
jump @Noname_27 

:Noname_269
0ACD: show_text_highpriority "Bot off" time 2500 
29@ = 0 
jump @Noname_27 

:Noname_297
3@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR)
3@ = SAMP.GetPlayerStruct(3@)
3@ += 201 
alloc 4@ 63 
0C10: memcpy destination 4@ source 3@ size 63 
0C0D: struct 4@ offset 24 size 4 = 0@ 
0C0D: struct 4@ offset 28 size 4 = 1@ 
0C0D: struct 4@ offset 32 size 4 = 2@ 
5@ = RakNet.NewBitStream()
RakNet.Write(5@, 219, BS_TYPE_BYTE, 1)
RakNet.Write(5@, 4@, BS_TYPE_ARRAY, 63)
RakNet.Send(5@, 1, 7, 0)
RakNet.DeleteBitStream(5@)
free 4@ 
ret 0
 

BUSHIDO32

Новичок
9
0
В CALL SCM FUNCS была функция от Opcode.eXe(автор не он, взято с GTAFORUMS, он что-т чутка добавил):


Чуть переделал(хз, в лучшую или худшую сторону, будет тебе понятно или нет - не в моих интересах):
Код:
:GET_BONE_POS
// call @GET_BONE_POS 5 actor 0@ bone 1@ offsetYZX 2@ 3@ 4@ save_to 5@ 6@ 7@
0A96: 8@ = actor 0@ struct

// 0x5E01C0 - RwV3d *__thiscall CPed__getBonePositionWithOffset(RwV3d *vOffset, int iBoneID, bool bIncludeAnim)
// 2@v = 2@ & 3@ & 4@ pointers
0AA6: call_method 0x5E01C0 struct 8@ num_params 3 pop 0 bIncludeAnim true iBoneID 1@ *vOffset 2@v
0AB2: ret 3 2@ 3@ 4@
0@ -> игрок / $PLAYER_ACTOR
1@ -> ид кости / 6
2@ -> оффсет по оси Y / 0.0
3@ -> оффсет по оси Z / 0.0
4@ -> оффсет по оси X / 0.5
5@, 6@, 7@ -> игровая позиция(XYZ) кости
пробывал эту функу... она к кости делается... и двигается вместе с костью.... чутка не то что хотел.