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

MISTER_GONWIK

Всефорумный гонщик
Всефорумный модератор
1,260
1,742
Нет, ну тут уже мля действительно проблема: прочитал статью от legend'a про создание локальных диалогов, чуть чуть переделал скрипт, но как только доходит до "ответа" у меня вообще не работает никакой опкод, выделил красным строку, на которой ничто не работает, даже 0AD1: show_formatted_text_highpriority, вот код:

{$CLEO}

0000: NOP

const
DIALOG_STYLE_MSGBOX = 0 // С текстом
DIALOG_STYLE_INPUT = 1 // С полем для ввода текста
DIALOG_STYLE_LIST = 2 // Со списком
DIALOG_STYLE_PASSWORD = 3 // С полем для ввода текста, только скрывает точками
end

// SAMPFUNCS
if 8AF7: get_samp_base_to 33@
then 0A93: end_custom_thread
end
repeat
wait 400
until 0AFA: is_samp_structures_available
// ---------------------

while true
wait 0 // Чтобы не крашилась игра
if 0ADC: test_cheat "BH" // Если мы "написали" BH не в чат(ну или нажали эти клавиши, как угодно :)
then
0B3B: samp show_dialog id 2 caption "Введите ид игрока" text "Введите ид!" button_1 "Ок!" button_2 "Выход" style DIALOG_STYLE_INPUT // Если всё же мы "написали" BH, то открываем диалог с полем для ввода
0AC8: 4@ = allocate_memory_size 128 // Выделение памяти для введенного текста
0B25: samp 31@ = get_player_health 4@
0B25: samp 32@ = get_player_armor 4@
0B36: samp 33@ = get_player_nickname 4@

repeat
wait 0
until 0B3C: samp dialog_respond 0@ button 1@ list_item 2@ input_text 4@ // Проверяем, были ли создан хоть один диалог этим скриптом

// 0@ - ID диалога, 1@ - нажатая кнопка, 2@ - выбранный пункт(только для DIALOG_STYLE_LIST), 4@ - введенный текст(только для DIALOG_STYLE_INPUT и DIALOG_STYLE_PASSWORD)
if 0@ == 2 // Если наш диалог был закрыт(с ID 2)
then
if 1@ == 1 // Если была нажата кнопка "Здеся", т.е. 1
then
0B3B: samp show_dialog id 3 caption "Успешно!" text "Ник игрока: %d %cЗдоровье игрока: %d %cБроня игрока: %d " 33@ 10 31@ 10 32@ button_1 "Ок!" button_2 "" style DIALOG_STYLE_MSGBOX
else
0B3B: samp show_dialog id 2 caption "Ошибка!" text "Игрок не найден, либо диалог был закрыт" button_1 "Ок!" button_2 "" style DIALOG_STYLE_MSGBOX

end
end

0AC9: free_allocated_memory 4@ // Очищаем
end
end
run "CLEO\read.cs"

Красные строки не работают :C

Код:
0AC8: 4@ = allocate_memory_size 128 // Выделение памяти для введенного текста
0B25: samp 31@ = get_player_health 4@
0B25: samp 32@ = get_player_armor 4@
0B36: samp 33@ = get_player_nickname 4@

ты ебл что ли? далее не смотрел, пока что это исправляй
 

Wa3riX

Новичок
53
0
Код:
0AC8: 4@ = allocate_memory_size 128 // Выделение памяти для введенного текста
0B25: samp 31@ = get_player_health 4@
0B25: samp 32@ = get_player_armor 4@
0B36: samp 33@ = get_player_nickname 4@

ты ебл что ли? далее не смотрел, пока что это исправляй

Дело в том, что у меня не работал исходный код: http://blasthack.net/threads/Создание-локальных-диалогов.506/ Он попросту не выводил сообщения в чат
 

SeJIya

Новичок
45
2
Дело в том, что у меня не работал исходный код: http://blasthack.net/threads/Создание-локальных-диалогов.506/ Он попросту не выводил сообщения в чат
http://www.blasthack.net/sfdoc/changelog.html
Код:
Опкод 0B3C теперь принимает только конкретный ид диалога (скрипты, использующие его, должны быть обновлены)
 
  • Нравится
Реакции: san0

Wa3riX

Новичок
53
0
То есть, как я понял, нужно другим способом проверять, открыт ли диалог, но каким?
 

iAmerican

Известный
Друг
614
257
Нужно что бы после каждой смерти , но уже после спавне писало сообщение в чат , и что бы это не флудило . Помогите как сделать )
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,462
Нужно что бы после каждой смерти , но уже после спавна писало сообщение в чат , и что бы это не флудило . Помогите как сделать )


Код:
if Actor.Dead($PLAYER_ACTOR)
then
    0af8: "dead" -1
    while Actor.Dead($PLAYER_ACTOR)
        wait 0
    end
end
 

Wa3riX

Новичок
53
0
Код:
if Actor.Dead($PLAYER_ACTOR)
then
    0af8: "dead" -1
    while Actor.Dead($PLAYER_ACTOR)
        wait 0
    end
end

Ку, твоя тема про создание локальных диалогов, так вот,
Спс, а как исправить? Прости за неебически тупой вопрос.
??? 0B3C по другому щас "принимает"
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,462
Код:
{$CLEO}
 
if
not 29@ = samp.Base()
then
end_thread
else
    while not samp.Available()
    wait 100
    end
end
 
if Actor.Dead($PLAYER_ACTOR)
then
    0af9: "/cvet 1"
    while Actor.Dead($PLAYER_ACTOR)
        wait 0
    end
end

:D

Где цикл то?
Код:
{$CLEO}
 
wait 0
 
while true
    wait 0
    if Actor.Dead($PLAYER_ACTOR)
    then
        0af8: "dead" -1
        while Actor.Dead($PLAYER_ACTOR)
            wait 0
        end
    end
end