Подтверждение диалогового окна

Статус
В этой теме нельзя размещать новые ответы.

Alex112233

Новичок
Автор темы
10
1
Добрый день. Нужен скрипт который может подтвердить (нажатие Enter) диалоговое окно с нужным ID. Пытался написать сам, нигде не нашел. Заранее благодарен за помощь.
 

Alex112233

Новичок
Автор темы
10
1
Не нашёл готового кода/желающего сделать таковой, чтоб ты скомпилировал и радовался? :D
По делу говоря, тебе нужен опкод 0bc9
Все верно, для вас это возможно звучит очень просто, но мой уровень знаний клео на уровне изменить ид кнопки и ид диалога, ну и скомпилировать. Попытался написать так:

{$CLEO .cs}
IF 0B4C: samp is_dialog_active 424 //dialogID, -1 for any dialog
THEN
0B47: samp close_current_dialog_with_button 0 //0 left, 1 right
END

Но крашит... Могли бы подсказать, что не так? Ид нужного диалога 424
 
Последнее редактирование:

ishi

Известный
493
110
твой скрипт проходит одну итерацию (выполняет описанное лишь один раз) (запомни это слово как я твой ник, больше не буду повторять)
стало быть, если сразу после запуска скрипта (ещё до подключения к серверу) твой диалоговый номер не будет равен 424, то он просто закончит работу. Поставь его в бесконечный цикл while true, чтобы он проверял всегда. Не забудь в начало цикла поставить задержку (хотя бы wait 0), и уже после неё пиши шо там надо делать, в конец не забудь влепить ещё один end, т.к. каждому условию и циклу требуется свой end

а, ещё. После {$CLEO .cs} желательно поставить
0000:
while not samp.available
wait 100
end
- во избежание крашей, зависаний, и прочей неприятной фигни, которая иногда происходит, если не дождаться загрузки сампа. А как ты скомпилировал без нопа, я вообще не врубаюсь - у меня санник ругается.
 

Alex112233

Новичок
Автор темы
10
1
твой скрипт проходит одну итерацию (выполняет описанное лишь один раз) (запомни это слово как я твой ник, больше не буду повторять)
стало быть, если сразу после запуска скрипта (ещё до подключения к серверу) твой диалоговый номер не будет равен 424, то он просто закончит работу. Поставь его в бесконечный цикл while true, чтобы он проверял всегда. Не забудь в начало цикла поставить задержку (хотя бы wait 0), и уже после неё пиши шо там надо делать, в конец не забудь влепить ещё один end, т.к. каждому условию и циклу требуется свой end.

Получилось как то так:

{$CLEO .cs}
0000:
while not samp.available
wait 100
end


while true
wait 0
IF 0B4C: samp is_dialog_active 424 //dialogID, -1 for any dialog
THEN
0B47: samp close_current_dialog_with_button 0 //0 left, 1 right
END
END

Теперь в самп стало заходить и крашей нет, но нет никакой реакции на диалоговое окно.
Спасибо за ваши объяснения, надеюсь получится сделать.
 

ishi

Известный
493
110
Получилось как то так:

{$CLEO .cs}
0000:
while not samp.available
wait 100
end


while true
wait 0
IF 0B4C: samp is_dialog_active 424 //dialogID, -1 for any dialog
THEN
0B47: samp close_current_dialog_with_button 0 //0 left, 1 right
END
END

Теперь в самп стало заходить и крашей нет, но нет никакой реакции на диалоговое окно.
Спасибо за ваши объяснения, надеюсь получится сделать.
либо номер не тот, либо кнопка другая - у меня других догадок нет.
 
  • Нравится
Реакции: Alex112233

Alex112233

Новичок
Автор темы
10
1
либо номер не тот, либо кнопка другая - у меня других догадок нет.
Ид спутал, все заработало, спасибо за помощь.

либо номер не тот, либо кнопка другая - у меня других догадок нет.
А нет, не все так хорошо как казалось, на диалог реагирует, только вот почему-то он его закрывает вместо нажатия кнопки. Пробовал менять B47: samp close_current_dialog_with_button 0 //0 left, 1 right , с 0 на 1, но результат тот же, диалог просто закрывается. (Этот диалог обычное подтверждение отправки /ad на drp)
 
Последнее редактирование модератором:
  • Нравится
Реакции: ishi
Статус
В этой теме нельзя размещать новые ответы.