{$CLEO}
{$INCLUDE SF}
0000:
wait 3000
0B34: samp register_client_command "rec" to_label @rec
alloc 3@ 128
while true
wait 0
end
:rec
0B35: samp 0@ = get_last_command_params
if 0AD4: 1@ = scan_string 0@ format "%d" 2@
then
0AD3: 3@ = format "Reconnect on ~g~%d ~w~seconds. Author: ~g~Cerberus" 2@
0ACC: show_text_lowpriority 3@ time 3000
ACTOR.Health($PLAYER_ACTOR) = 100
0B28: samp disconnect_with_reason 1
2@ *= 1000
wait 2@
0B27: samp set_gamestate 1
else
0B28: samp disconnect_with_reason 1
print "Reconnect on ~g~15 ~w~seconds. Author: ~g~Cerberus" 3000
wait 15000
0B27: samp set_gamestate 1
end
SAMP.CmdRet()
которая wait 3000 или какая?Почему в этом коде не работает задержка?
CLEO:{$CLEO} {$INCLUDE SF} 0000: wait 3000 0B34: samp register_client_command "rec" to_label @rec alloc 3@ 128 while true wait 0 end :rec 0B35: samp 0@ = get_last_command_params if 0AD4: 1@ = scan_string 0@ format "%d" 2@ then 0AD3: 3@ = format "Reconnect on ~g~%d ~w~seconds. Author: ~g~Cerberus" 2@ 0ACC: show_text_lowpriority 3@ time 3000 ACTOR.Health($PLAYER_ACTOR) = 100 0B28: samp disconnect_with_reason 1 2@ *= 1000 wait 2@ 0B27: samp set_gamestate 1 else 0B28: samp disconnect_with_reason 1 print "Reconnect on ~g~15 ~w~seconds. Author: ~g~Cerberus" 3000 wait 15000 0B27: samp set_gamestate 1 end SAMP.CmdRet()
Где wait 15000 (там вроде вообще никакая wait не работает)которая wait 3000 или какая?
Внутри тела команды нельзя wait использоватьПочему в этом коде не работает задержка?
CLEO:{$CLEO} {$INCLUDE SF} 0000: wait 3000 0B34: samp register_client_command "rec" to_label @rec alloc 3@ 128 while true wait 0 end :rec 0B35: samp 0@ = get_last_command_params if 0AD4: 1@ = scan_string 0@ format "%d" 2@ then 0AD3: 3@ = format "Reconnect on ~g~%d ~w~seconds. Author: ~g~Cerberus" 2@ 0ACC: show_text_lowpriority 3@ time 3000 ACTOR.Health($PLAYER_ACTOR) = 100 0B28: samp disconnect_with_reason 1 2@ *= 1000 wait 2@ 0B27: samp set_gamestate 1 else 0B28: samp disconnect_with_reason 1 print "Reconnect on ~g~15 ~w~seconds. Author: ~g~Cerberus" 3000 wait 15000 0B27: samp set_gamestate 1 end SAMP.CmdRet()
Да ну на? А я то думал... У меня вообще вопрос звучал так: "Как сделать, чтобы wait работало?"...Внутри тела команды нельзя wait использовать
За флуд сервер может кикнуть.Подскажите, опкод 0BC9, если его зациклить, он будет постоянно отсылать серверу нажатие кнопки, даже если окно еще не открыто?
Т.е. к примеру мне нужно максимально быстро подтвердить диалог с объявлением, циклом я отсылаю ответ "Да" на ид этого окна, пока свободных объяв еще нет, может быть такое что сервер при появлении свободной объявы уже сразу примет мой ответ, даже если окно у меня еще не успело открыться? Или опкод срабатывает только при уже открытом окне?
Спасибо
Код:0BC9: samp send_dialog_response dialog 228 button 1 listitem 0 input ""
Используй его в потоке.Как сделать, чтобы wait работало?
Да, я так и сделал, проверка если диалог открыт, за тем dialog response и close dialog или просто нажать Ентер. Но я еще добавил что бы раз в 350мс (если чаще - могут быть кики) скрипт отправлял за ранее ответ "Да" что ты сервер быстрее принял мою объяву.За флуд сервер может кикнуть.
Не самый практичный вариант. Лучше добавить проверку на то, что диалог открыт или поставить хук на появление диалога.
Если для редактирования объявления нужно делать ещё какие-то действия(ввод команды в чат...), то такой способ не сработает. Нужно сначала сделать так, чтобы это действие выполнилось и только потом отправлять dialog response.
Прости, а можешь сделать это? До меня что-то не допрет, как это сделать :DИспользуй его в потоке.
Как получать рандомное число?
В блоке команды пишешь что то типа:Прости, а можешь сделать это? До меня что-то не допрет, как это сделать :D
:Command
if 1@ == false
then
1@ = true
else
1@ = false
end
SAMP.CmdRet()
if 1@ == true // или while/repeat
then
//тело скрипта, тут wait работают
end
или как делал батя - @callВ блоке команды пишешь что то типа:
Эта переменная будет обозначать включен скрипт или нет (тру/фолз)Код::Command if 1@ == false then 1@ = true else 1@ = false end SAMP.CmdRet()
В основном цикле(потоке):
Код:if 1@ == true // или while/repeat then //тело скрипта, тут wait работают end
{$CLEO}
0000:
wait 2000
0AC8: 10@ = allocate_memory_size 256
0AC8: 11@ = allocate_memory_size 128
0AC8: 12@ = allocate_memory_size 128
while true
wait 0
0B75: get_chat_string 99 text_to 10@ prefix_to 0 color_to 0 prefix_color_to 0
if 0C18: 0 = strstr string1 10@ string2 "[O]"
then
0AA5: call 0x8220AD num_params 4 pop 4 params 12@ 11@ "%s: %s" 10@
for 1@ = 0 to 999
if 0B23: samp is_player_connected 1@
then
0B36: samp 2@ = get_player_nickname 1@
0C16: 16@ = strtok string1 11@ string2 "["
if 0C21: stricmp string1 16@ string2 2@
then
0AF8: "%d" -1 1@
end
end
end
end
wait 0
end