Не по этому не работаетОхуеть, теперь понятно почему не работает. Ыыы
Не по этому не работаетОхуеть, теперь понятно почему не работает. Ыыы
Не волнуйся, некоторые и так его заставят ехать :monkey:Ты хочешь, чтоб велосипед ехал, но не имеешь колес и цепки.
У меня получилась такая байда что когда ввожу /com и выбираю пункт, то он срабатывает только при повторном вводе /comВнимательно прочитать тутор и включить мозги.
1) Нужно вызвать диалог по команде, а именно: чтоб опкод 0b3b: задействовался после ввода команды.
2) логично, что убрать опкод 0af8: , после выбора кнопки.
А вообще, не еби себе мозги и нам, если бы ты хотя бы немного практиковался со скриптами по проще, то у тебя бы не возникало таких дебильных вопросов.
Ты хочешь, чтоб велосипед ехал, но не имеешь колес и цепки.
{$CLEO}
const
DIALOG_STYLE_LIST = 2
end
0000:
repeat
wait 0
until SAMP.Available() // Îæèäàåì èíèöèàëèçàöèè ñòðóêòóð SAMP'à
0B34: samp register_client_command "com" to_label @com
repeat
wait 0
until false
:com
0AC8: 0@ = allocate_memory_size 64 // Âûäåëÿåì ïàìÿòü ïîä ñïèñîê ýëåìåíòîâ(êîë-âî òåêñòà äîëæíî áûòü íå áîëüøå 64 ñèìâîëîâ(ïðîáåëû è ïåðåõîäû íà íîâóþ ñòðîêó òîæå ðàâíû 1 ñèìâîëó))
0ad3: format_stirng 0@ = "Первый пункт%cВторой пункт%cТретий пункт" 0xA 0xA // Ñîçäàåì ñïèñîê, 0xA - îçíà÷àåò ïåðåõîä íà íîâóþ ñòðîêó, à %c óêàçûâàåòñÿ â ñàìîé ñòðîêå
0B3B: samp show_dialog id 17 caption "Локальный диалог" text 0@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_LIST
0AC9: free_allocated_memory 0@ // Îñâîáîæäàåì ïàìÿòü, áîëüøå íå íóæíà.
while true
wait 0
if
0B3C: samp is_dialog_responded id 17 button 1@ list_item 3@ input_text 0
then
if 3@ == 0
then
0AF9: samp say_msg "/команда"
end
if 3@ == 1 // Áûë âûáðàí âòîðîé ïóíêò
then 0AF9: samp say_msg "/команда"
end
if 3@ == 2 // Áûë âûáðàí òðåòèé ïóíêò
then 0AF9: samp say_msg "/команда"
end
end
SAMP.CmdRet()
end
Так у тебя cmdret срабатывает, убери его и вставь после каждого 0af9.У меня получилась такая байда что когда ввожу /com и выбираю пункт, то он срабатывает только при повторном вводе /comCLEO:{$CLEO} const DIALOG_STYLE_LIST = 2 end 0000: repeat wait 0 until SAMP.Available() // Îæèäàåì èíèöèàëèçàöèè ñòðóêòóð SAMP'à 0B34: samp register_client_command "com" to_label @com repeat wait 0 until false :com 0AC8: 0@ = allocate_memory_size 64 // Âûäåëÿåì ïàìÿòü ïîä ñïèñîê ýëåìåíòîâ(êîë-âî òåêñòà äîëæíî áûòü íå áîëüøå 64 ñèìâîëîâ(ïðîáåëû è ïåðåõîäû íà íîâóþ ñòðîêó òîæå ðàâíû 1 ñèìâîëó)) 0ad3: format_stirng 0@ = "Первый пункт%cВторой пункт%cТретий пункт" 0xA 0xA // Ñîçäàåì ñïèñîê, 0xA - îçíà÷àåò ïåðåõîä íà íîâóþ ñòðîêó, à %c óêàçûâàåòñÿ â ñàìîé ñòðîêå 0B3B: samp show_dialog id 17 caption "Локальный диалог" text 0@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_LIST 0AC9: free_allocated_memory 0@ // Îñâîáîæäàåì ïàìÿòü, áîëüøå íå íóæíà. while true wait 0 if 0B3C: samp is_dialog_responded id 17 button 1@ list_item 3@ input_text 0 then if 3@ == 0 then 0AF9: samp say_msg "/команда" end if 3@ == 1 // Áûë âûáðàí âòîðîé ïóíêò then 0AF9: samp say_msg "/команда" end if 3@ == 2 // Áûë âûáðàí òðåòèé ïóíêò then 0AF9: samp say_msg "/команда" end end SAMP.CmdRet() end
Теперь gta виснет при вводе команды /comТак у тебя cmdret срабатывает, убери его и вставь после каждого 0af9.
Пиздец. Ничего, что у него вообще цикл в теле команды начинается.Так у тебя cmdret срабатывает, убери его и вставь после каждого 0af9.
Проверку на ответ диалога поставь выше метки команды и убери repeat..until. И добавь в условие проверку на ввод команды.Теперь gta виснет при вводе команды /com
Ну у тебя так и есть, если сканит на ту строчкуМожно ли сделать так, чтобы если писал не Victor_Krutoy, а например Victor_Petux, то скрипт бы не срабатывал?
Возможно не так понял.Ну у тебя так и есть, если сканит на ту строчку
0B75: get_chat_string 99 text_to 2@ prefix_to 0 color_to 0 prefix_color_to 0
if 0C18: 0 = strstr string1 2@ string2 "Привет"
then
0AA5: call 0x8220AD num_params 4 pop 4 params 11@ 12@ "Привет, %s (%s)" 2@
0AD3: 2@ = format "%s приветствует %s" 11@ 12@
Хук лучше, но сейчас не суть. Ну сделай проверку 12@ на несовпадение с петухом (if not)То есть оно любого игрока впишет, но надо чтобы игрока которого мне надо игнорировало (пример: Victor_Petux )
А не 11@ ли?Ну сделай проверку 12@
8C18: 2@ = not strstr string1 11@ string2 "Витя_Петух"Как это сделать?
Так оно ж sscanf(2@,"Привет, %s (%s)", 12@, 11@). В 11@ же, нет?В 12@ хранится ник отправителя
А куда вставлять это? После какой строки?8C18: 2@ = not strstr string1 11@ string2 "Витя_Петух"
Поставь условие после 0аа5 и его туда засунь. Ну и выводи строку в чат, если условие верно.А куда вставлять это? После какой строки?