- 2,865
- 1,649
Хотел бы уточнить как вы в темах создаете таблицыПосмотреть вложение 9622
Код:
[code=cleo]твой код[/сode]
Хотел бы уточнить как вы в темах создаете таблицыПосмотреть вложение 9622
[code=cleo]твой код[/сode]
0B3D: raknet 1@ = new_bit_stream
0B40: raknet bit_stream 1@ write 100 type BS_TYPE_SHORT size 2 //DialogID
0B40: raknet bit_stream 1@ write 1 type BS_TYPE_BYTE size 1 // button (левый 1, правый 0)
0B40: raknet bit_stream 1@ write 65535 type BS_TYPE_SHORT size 1//listitem, если это диалог без list, то 65535
0B40: raknet bit_stream 1@ write 3@ type BS_TYPE_BYTE size 1 //размер текста
0B40: raknet bit_stream 1@ write 0@ type BS_TYPE_STRING size 3@ //текст, если это list_dialog, то название пункта
0B8A: raknet send_rpc RPC_DIALOGRESPONSE bit_stream 1@
0B3E: raknet delete_bit_stream 1@
Гайд - RakNet Hook'и в плагине SAMPFuncs(https://blast.hk/threads/14356/) посмотри урокиХотел бы узнать откуда брать или как понять что за что отвечает вот как тут
Код:0B3D: raknet 1@ = new_bit_stream 0B40: raknet bit_stream 1@ write 100 type BS_TYPE_SHORT size 2 //DialogID 0B40: raknet bit_stream 1@ write 1 type BS_TYPE_BYTE size 1 // button (левый 1, правый 0) 0B40: raknet bit_stream 1@ write 65535 type BS_TYPE_SHORT size 1//listitem, если это диалог без list, то 65535 0B40: raknet bit_stream 1@ write 3@ type BS_TYPE_BYTE size 1 //размер текста 0B40: raknet bit_stream 1@ write 0@ type BS_TYPE_STRING size 3@ //текст, если это list_dialog, то название пункта 0B8A: raknet send_rpc RPC_DIALOGRESPONSE bit_stream 1@ 0B3E: raknet delete_bit_stream 1@
и в случае с диалогами, лучше вместо форматирования использовать hex конструкцииCLEO:WHILE TRUE wait 0 IF 0B3C: samp is_dialog_responded id 1 button 1@ list_item 3@ input_text 0 // Ëîããèðóåì íàæàòèå êíîïêè äèàëîãà è âûáðàííîãî ýëåìåíòà èç ñïèñêà äèàëîãà 47 THEN if 1@ == 1 // Áûëà íàæàòà ïåðâàÿ êíîïêà then log "Áûëà íàæàòà ïåðâàÿ êíîïêà: {ffff00}Óðÿ" -1 log "Áûë âûáðàí ýëåìåíò íîìåð: {ffff00}%d" -1 3@ if 3@ == 0 then alloc 6@ 128 alloc 4@ 128 0AF1: write_int 1 to_ini_file "cleo\at.ini" section "Ans" key "Test" 0AF0: 5@ = get_int_from_ini_file "cleo\at.ini" section "Ans" key "AnsPoint" 0AF4: 6@ = read_string_from_ini_file "cleo\at.ini" section "Ans" key "AnsStr" 0AD4: 2@ = scan_string 6@ format "%d %s" 3@ 4@ 0ac8: alloc 0@ size 128 // Âûäåëÿåì ïàìÿòü ïîä ñïèñîê ýëåìåíòîâ(êîë-âî òåêñòà äîëæíî áûòü íå áîëüøå 64 ñèìâîëîâ(ïðîáåëû è ïåðåõîäû íà íîâóþ ñòðîêó òîæå ðàâíû 1 ñèìâîëó) 0ad3: format_stirng 0@ = "Êîë-âî îòâåòîâ:%d %c Ïîñëåäíèé îòâåò:%s %c Êàêîìó ID áûë îòâåò:%d" 5@ 0xA 4@ 0xA 3@ 0B3B: samp show_dialog id 314 caption "{FBBC3C}AT by Azller v1.0a | Ans Stats" text 0@ button_1 "Âûáðàòü" button_2 "Çàêðûòü" style DIALOG_STYLE_LIST end if 3@ == 1 then 0af8: chat "Áûë âûáðàí ýëåìåíò: {ffff00}Âòîðîé ïóíêò" -1 end if 3@ == 2 then 0af8: chat "Áûë âûáðàí ýëåìåíò: {ffff00}Òðåòèé ïóíêò" -1 end else // Èíà÷å âòîðîé êíîïêîé èëè æå ïðîñòî çàêðûò(esc'îì, íàïðèìåð) / 1@ == 0 0af8: chat "Áûëà íàæàòà âòîðàÿ êíîïêà: {ffff00}Çàêðûòü" -1 end END END :dialog 0ac8: alloc 0@ size 64 // Âûäåëÿåì ïàìÿòü ïîä ñïèñîê ýëåìåíòîâ(êîë-âî òåêñòà äîëæíî áûòü íå áîëüøå 64 ñèìâîëîâ(ïðîáåëû è ïåðåõîäû íà íîâóþ ñòðîêó òîæå ðàâíû 1 ñèìâîëó) 0ad3: format_stirng 0@ = "Èíôîðìàöèÿ îá îòâåòàõ%cÈíôîðìàöèÿ îá ìóòàõ%cÈíôîðìàöèÿ îá êèêàõ%cÈíôîðìàöèÿ îá jail%cÈíôîðìàöèÿ îá âàðíàõ%cÈíôîðìàöèÿ îá áàíàõ" 0xA 0xA 0xA 0xA 0xA 0B3B: samp show_dialog id 1 caption "{FBBC3C}Admin Tools by Azller v1.0a" text 0@ button_1 "Âûáðàòü" button_2 "Çàêðûòü" style DIALOG_STYLE_LIST SAMP.CmdRet()
у log убери -1 и выделение памяти для переменной 0 в цикле убериПопробовал так, все равно второй диалог не появляется. И ничего не логируется в консоль..
Пробовал даже не форматировать строку, все равно не появляется и в логе пусто.
Все равно не получается.у log убери -1 и выделение памяти для переменной 0 в цикле убери
Все равно не получается.
{$CLEO}
{$INCLUDE SF}
0000:
repeat
wait 0
until 0AFA:
cmd "dlg" @dialog
0AF1: write_int 55 to_ini_file "cleo\at.ini" section "Ans" key "AnsPoint"
0AF5: write_string "45 ïðèâåò" to_ini_file "cleo\at.ini" section "Ans" key "AnsStr"
WHILE TRUE
wait 0
IF 0B3C: samp is_dialog_responded id 5 button 1@ list_item 3@ input_text 0
THEN
if 1@ == 1
then
msg "îòêðûëñÿ" -1
msg "%d" -1 3@
if 3@ == 0
then
alloc 6@ 128
alloc 4@ 128
0AF1: write_int 1 to_ini_file "cleo\at.ini" section "Ans" key "Test"
0AF0: 5@ = get_int_from_ini_file "cleo\at.ini" section "Ans" key "AnsPoint"
0AF4: 6@ = read_string_from_ini_file "cleo\at.ini" section "Ans" key "AnsStr"
0AA5: call 0x8220AD num_params 4 pop 4 params 4@ 3@v "%d %s" 6@
0ad3: format_stirng 0@ = "Êîë-âî îòâåòîâ:%d %cÏîñëåäíèé îòâåò:%s %cÊàêîìó ID áûë îòâåò:%d%c" 5@ 0xA 4@ 0xA 3@ 0x0
0B3B: samp show_dialog id 314 caption "{FBBC3C}AT by Azller v1.0a | Ans Stats" text 0@ button_1 "Âûáðàòü" button_2 "Çàêðûòü" style DIALOG_STYLE_LIST
end
if 3@ == 1
then
0af8: chat "Áûë âûáðàí ýëåìåíò: {ffff00}Âòîðîé ïóíêò" -1
end
if 3@ == 2
then
0af8: chat "Áûë âûáðàí ýëåìåíò: {ffff00}Òðåòèé ïóíêò" -1
end
else
0af8: chat "Áûëà íàæàòà âòîðàÿ êíîïêà: {ffff00}Çàêðûòü" -1
end
END
END
:dialog
0ac8: alloc 0@ size 128
0AC6: 30@ = label @hex offset
0B3B: samp show_dialog id 5 caption "{FBBC3C}Admin Tools by Azller v1.0a" text 30@ button_1 "Âûáðàòü" button_2 "Çàêðûòü" style DIALOG_STYLE_LIST
SAMP.CmdRet()
:hex
hex
"Èíôîðìàöèÿ îá îòâåòàõ\n"
"Èíôîðìàöèÿ îá ìóòàõ\n"
"Èíôîðìàöèÿ îá êèêàõ\n"
"Èíôîðìàöèÿ îá jail\n"
"Èíôîðìàöèÿ îá âàðíàõ\n"
"Èíôîðìàöèÿ îá áàíàõ\0"
end
Ты меня не правильно понял) Первый диалог с "Информация..." показывается но когда я выбираю 1 пункт (на него есть диалог) то ничего не происходит. Старый диалог закрывается, а нового нет..CLEO:{$CLEO} {$INCLUDE SF} 0000: repeat wait 0 until 0AFA: cmd "dlg" @dialog 0AF1: write_int 55 to_ini_file "cleo\at.ini" section "Ans" key "AnsPoint" 0AF5: write_string "45 ïðèâåò" to_ini_file "cleo\at.ini" section "Ans" key "AnsStr" WHILE TRUE wait 0 IF 0B3C: samp is_dialog_responded id 5 button 1@ list_item 3@ input_text 0 THEN if 1@ == 1 then msg "îòêðûëñÿ" -1 msg "%d" -1 3@ if 3@ == 0 then alloc 6@ 128 alloc 4@ 128 0AF1: write_int 1 to_ini_file "cleo\at.ini" section "Ans" key "Test" 0AF0: 5@ = get_int_from_ini_file "cleo\at.ini" section "Ans" key "AnsPoint" 0AF4: 6@ = read_string_from_ini_file "cleo\at.ini" section "Ans" key "AnsStr" 0AA5: call 0x8220AD num_params 4 pop 4 params 4@ 3@v "%d %s" 6@ 0ad3: format_stirng 0@ = "Êîë-âî îòâåòîâ:%d %cÏîñëåäíèé îòâåò:%s %cÊàêîìó ID áûë îòâåò:%d%c" 5@ 0xA 4@ 0xA 3@ 0x0 0B3B: samp show_dialog id 314 caption "{FBBC3C}AT by Azller v1.0a | Ans Stats" text 0@ button_1 "Âûáðàòü" button_2 "Çàêðûòü" style DIALOG_STYLE_LIST end if 3@ == 1 then 0af8: chat "Áûë âûáðàí ýëåìåíò: {ffff00}Âòîðîé ïóíêò" -1 end if 3@ == 2 then 0af8: chat "Áûë âûáðàí ýëåìåíò: {ffff00}Òðåòèé ïóíêò" -1 end else 0af8: chat "Áûëà íàæàòà âòîðàÿ êíîïêà: {ffff00}Çàêðûòü" -1 end END END :dialog 0ac8: alloc 0@ size 128 0AC6: 30@ = label @hex offset 0B3B: samp show_dialog id 5 caption "{FBBC3C}Admin Tools by Azller v1.0a" text 30@ button_1 "Âûáðàòü" button_2 "Çàêðûòü" style DIALOG_STYLE_LIST SAMP.CmdRet() :hex hex "Èíôîðìàöèÿ îá îòâåòàõ\n" "Èíôîðìàöèÿ îá ìóòàõ\n" "Èíôîðìàöèÿ îá êèêàõ\n" "Èíôîðìàöèÿ îá jail\n" "Èíôîðìàöèÿ îá âàðíàõ\n" "Èíôîðìàöèÿ îá áàíàõ\0" end
в этом скрипте все нормально показываетсяТы меня не правильно понял) Первый диалог с "Информация..." показывается но когда я выбираю 1 пункт (на него есть диалог) то ничего не происходит. Старый диалог закрывается, а нового нет..
Попробую тогда замутить многопоточность и просто вставлю твой скрипт) Спасиб)в этом скрипте все нормально показывается
Решил не париться и сделать это в отдельном клео, т.к все равно значения берутся из ини, вставил код, мигает черный экран + время игры заторможено, + второй диалог все равно не появляется..в этом скрипте все нормально показывается
Нет, никто. Давай кодРпц хук крашит со временем, это может быть как в первые 10 минут после захода так и в последующие.. Код правильный, сравнил с многими примерами на форуме. Кто-нибудь сталкивался?
{$CLEO}
{$INCLUDE SF}
0000:
repeat
wait 0
until 0AFA:
WHILE TRUE
wait 0
IF 0B3C: samp is_dialog_responded id 5 button 1@ list_item 3@ input_text 0
THEN
if 1@ == 1
then
log "открылся" -1
log "%d" -1 3@
if 3@ == 0
then
alloc 6@ 128
alloc 4@ 128
0AF1: write_int 1 to_ini_file "cleo\at.ini" section "Ans" key "Test"
0AF0: 5@ = get_int_from_ini_file "cleo\at.ini" section "Ans" key "AnsPoint"
0AF4: 6@ = read_string_from_ini_file "cleo\at.ini" section "Ans" key "AnsStr"
0AA5: call 0x8220AD num_params 4 pop 4 params 4@ 3@v "%d %s" 6@
0ad3: format_stirng 0@ = "Кол-во ответов:%d %cПоследний ответ:%s %cКакому ID был ответ:%d%c" 5@ 0xA 4@ 0xA 3@ 0x0
0B3B: samp show_dialog id 314 caption "{FBBC3C}AT by Azller v1.0a | Ans Stats" text 0@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_LIST
end
if 3@ == 1
then
0af8: chat "Был выбран элемент: {ffff00}Второй пункт" -1
end
if 3@ == 2
then
0af8: chat "Был выбран элемент: {ffff00}Третий пункт" -1
end
else
0af8: chat "Была нажата вторая кнопка: {ffff00}Закрыть" -1
end
END
END