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

Trashmas

Новичок
40
0
CLEO:
{$CLEO}

0000: NOP
wait 2000
0B2B: samp 0@ = get_player_id_by_actor_handle $PLAYER_ACTOR
0B36: samp 1@ = get_player_nickname 0@
if 0C21: stricmp string1 1@ string2 "Nick_Name"
then
    // CODE
end
Спасибо! Работает.


Очередная непонятка:

Код:
0B34: samp register_client_command "goad" to_label @GOAD

// тут основной цикл

:GOAD
0C6A: 19@ = create_custom_thread_at_label @GOAD_THREAD
SAMP.CmdRet()

:GOAD_THREAD
03A4: name_thread 'GOAD'
SAMP.IsCommandTyped(1@)

repeat
wait 0

if or
00E1:   player 0 pressed_key 14
00E1:   player 0 pressed_key 16
then
0C6E: destroy_custom_thread 19@
0A93: end_custom_thread
else
say "%s" 1@
wait 1000
    if 0B4C:  samp is_dialog_active 353
    then
    0C72: set_virtual_key 13 down true
    wait 10
    0C72: set_virtual_key 13 down false
    end
end
until false

Скрипт лишь приостанавливается если зажать Шифт или Пробел (хотя по идее должен полностью остановиться если просто нажать)
 
Последнее редактирование:

RedBoxWhite

Известный
337
27
Как просканировать такой диалог? Надо сделать так, чтобы в чат писало только ники.
IrIFfmeIHaM.jpg

В консоль записывает так:
Код:
Имя игрокаКолличество баллов

1.Sergei_Holly2401
2.Maxim_Konor1803
3.Sophie_Side1447
4.Brian_Ross1365
5.Monte_Brown1220
6.Roman_Hvesenya541
7.Dmitry_Aksentev304
8.Alexey_Shevtsov251
9.Arthur_Cross248
10.Vittorio_Bellucci159
11.Ricardo_Campbell141
12.Sergey_Mayorov135
13.Antonio_Maskulaski134
14.Alexander_Gaevskiy111
15.Kimihito_Auditore110

А когда копируешь с консоли, то выдаёт так:

Имя игрока        Колличество баллов

    1.    Sergei_Holly            2401
    2.    Maxim_Konor            1803
    3.    Sophie_Side            1447
    4.    Brian_Ross            1365
    5.    Monte_Brown            1220
    6.    Roman_Hvesenya        541
    7.    Dmitry_Aksentev        304
    8.    Alexey_Shevtsov        251
    9.    Arthur_Cross            248
    10.    Vittorio_Bellucci        159
    11.    Ricardo_Campbell        141
    12.    Sergey_Mayorov        135
    13.    Antonio_Maskulaski        134
    14.    Alexander_Gaevskiy        111
    15.    Kimihito_Auditore        110
Сам код такой (мб нужен будет):
CLEO:
{$CLEO}
0000:
wait 2000

alloc 0@ 568

while true
wait 0
if 0B4C:  samp is_dialog_active -1
then
0BD7: samp get_dialog_text 0@
    if and
    0C18: 2@ = strstr string1 0@ string2 "Имя игрока"
    0C18: 3@ = strstr string1 0@ string2 "Колличество баллов"
    then
    log 0@
    wait 1000
    end
end
end
Неужели нельзя такой сделать?:sad_frog:
 

azdsfbzxv

Новичок
73
6
Неужели нельзя такой сделать?:sad_frog:
Ты с начало спрашивал как с него вытащить инфу. Теперь оказывается ты хочешь такой запилить. Тебе надо создать такое окно, что бы в нём было как в табе?
 
Последнее редактирование:

RedBoxWhite

Известный
337
27
Ты с начало спрашивал как с него вытащить инфу. Теперь оказывается ты хочешь такой запилить. Тебе надо создать такое окно, что бы в нём было как в табе?
Нет, я же написал, надо сделать так, чтобы в чат писало только ники.
 

Trashmas

Новичок
40
0
Ты только можешь локально менять. Клиент не отправляет данные о погоде.
Я имею ввиду не поменять погоду у всего сервера, а узнать какая сейчас погода на сервере и установить ее себе.
Допустим серверная погода стоит 1, я опкодом 01B6 установил локальную погоду на 6, через некоторое время хочу поменять у себя опять на ту, которая стоит на сервере, но за то время что я бегал с погодой 6, сервер сменил свою погоду (админ поменял)

Вот тут то мне и нужно считать серверную погоду что бы установить ее у себя на экране. И считаю я это возможным т.к. в клиенте всегда отображается ид погоды.

Ясно всё с тобой.
С тобой тоже.
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,989
считаю я это возможным
Что ты там считаешь ты нуб

Ты можешь хук ставить и записывать все изменения отсылаемые сервером тебе в переменную, потом востанавливать из неё last parsed так сказать
 

Trashmas

Новичок
40
0
Что ты там считаешь ты нуб

Ты можешь хук ставить и записывать все изменения отсылаемые сервером тебе в переменную, потом востанавливать из неё last parsed так сказать
Ну вот я тебе это, недогоняющему, и пытаюсь донести. Тут и профи в скриптинге не надо быть что бы додуматься, что определенные сервером данные можно отлавливать и потом применять. Я и говорю все что ты там выше написал всунуть в один или несколько опкодов, что бы легче юзать.

То, по какому принципу работают опкоды я не знаю, не спорю.
 

iTz_WEEZY

Известный
298
88
Почему это фуфло крашит? крашит до захода на серв
CLEO:
0000:
thread 'Weezy'

if 8AF7: get_samp_base_to 33@
then 0A93: end_custom_thread
end
repeat
     wait 400
until SAMP.Available()
wait 1000
////////////////////////////////////////////////////////////////////////////////////////////////////////
0AF5: write_string "teeeest" to_ini_file "CLEO\autorep.ini" section "TEST" key "KEY"
0AF5: write_string "teeeest" to_ini_file "CLEO\autorep.ini" section "TEST2" key "KEY2"
0AF5: write_string "teeeest" to_ini_file "CLEO\autorep.ini" section "TEST3" key "KEY3"
////-:COMMANDS:ACTIVACION:-////////////////////////////////////////////////////////////////////////////////////////////////////
0B34: samp register_client_command "auto_doc" to_label @DOKLAD
0B34: samp register_client_command "doc_help" to_label @HELP
/////////////////////////////////////////////////////////////////////////////////////////////////////////                                                        
:DOKLAD
0AC8: 10@ = allocate_memory_size 100
0AC8: 11@ = allocate_memory_size 100
0AC8: 12@ = allocate_memory_size 100
/////////////////////////////////////////////////////////////////////////////////////////////////////////
0AF4: 10@ = read_string_from_ini_file "CLEO\autorep.ini" section "TEST" key "KEY"
0AF4: 11@ = read_string_from_ini_file "CLEO\autorep.ini" section "TEST2" key "KEY2"
0AF4: 12@ = read_string_from_ini_file "CLEO\autorep.ini" section "TEST3" key "KEY3"
wait 100
0AF9: samp say_msg "Ëàëàëà: %s | Ëàëà: %s | Ëàëàëà: %s" 10@ 11@ 12@
wait 100
0AC9: free_allocated_memory 10@
0AC9: free_allocated_memory 11@
0AC9: free_allocated_memory 12@
SAMP.CmdRet()
////////////////////////////////////////////////////////////////////////////////////////////////////////
:HELP
0AF8: samp add_message_to_chat "{0066FF}[Cleo Test 228]"
0AF8: samp add_message_to_chat "{0066FF}[Cleo Test 1337]"
SAMP.CmdRet()
////////////////////////////////////////////////////////////////////////////////////////////////////////
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,989
Вызываешь функцию команды без ввода самой команды. В командах нельзя задержки использовать. Код в начале вообще не нужен. Можешь убрать нахуй и начинать с опкода записи в INI .
 

Gabriel__

Известный
Проверенный
411
183
В GTA есть переменная которая хранит ID текущей погоды. В сингле её можно изменить на свой ID и погода поменяется а вот в сампе если поменяем то мы увидим её на 1 мс потому что самп в в бесконечном цикле восстанавливает погоду из своей переменной. Эта переменная находится в структуре stServerPresents (byteWeather) вот её нужно изменять.

а разве локальная погода не меняется при смене погоды сервером если виртуал протект выключить?
VirtualProtect ставится на код
 

Trashmas

Новичок
40
0
Подскажите, опкод 0BC9, если его зациклить, он будет постоянно отсылать серверу нажатие кнопки, даже если окно еще не открыто?
Т.е. к примеру мне нужно максимально быстро подтвердить диалог с объявлением, циклом я отсылаю ответ "Да" на ид этого окна, пока свободных объяв еще нет, может быть такое что сервер при появлении свободной объявы уже сразу примет мой ответ, даже если окно у меня еще не успело открыться? Или опкод срабатывает только при уже открытом окне?

Спасибо

Код:
0BC9: samp send_dialog_response dialog 228 button 1 listitem 0 input ""
 

Cerberus

Режим чтения
13
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Можно ли как-то сделать задержку в бесконечном цикле? (wait не работает)