|
[CLEO] Вопрос - Ответ
|
|
| [CM]Рафаэль |
Дата: Суббота, 05.09.2015, 20:19 | Сообщение # 1
|
Cheat-Master
Сообщений: 3080
Статус: Offline
|
В этой теме задаются вопросы по CLEO, конкретным опкодам (например, назначение того или иного опкода) и т.д.
Форма вопроса: Код [color=#1E90FF][b]Вопрос:[/b][/color] text
Форма ответа: Код [color=#1E90FF][b]Ответ:[/b][/color] text
Мой Shop Официальный гарант
Контактные данные: VK: vk.com/ali_benua Skype: lvinyipen Telegram: @AliBenua ICQ: 552-090-283
|
|
|
|
|
| k1sher |
Дата: Суббота, 28.05.2016, 08:07 | Сообщение # 3946
|
Любитель
Сообщений: 32
Статус: Offline
|
DokerGT, хотелось бы с новой меткой сделать...
Код {$CLEO .cs} 0000: repeat wait 400 until 0AFA: is_samp_structures_available
chatmsg "{ff0000}[Îòêàò OOC] {ebebeb}Ñïåöèàëüíî äëÿ." 0xffffff 0B34: samp register_client_command "o" @msg 0B34: samp register_client_command "ad" @adrek 0C74: 0@ = create_timer_interval 300000 on_label @timer 0C78: set_timer 0@ active false
while true wait 0 end
:msg 0B35: samp 2@ = get_last_command_params if 8C14: not strcmp string1 2@ string2 "" then if 0C79: is_timer 0@ active then 0C7C: 1@ = get_timer 0@ time_left 1@ /= 1000 chatmsg "Àíòè-ôëóä (%d ñåê.)." 0xbfbfbf 1@ else say "/o %s" 2@ 0C76: reset_timer 0@ 0C78: set_timer 0@ active true end cmdret
:adrek 0B35: samp 2@ = get_last_command_params if 8C14: not strcmp string1 2@ string2 "" then if 0C79: is_timer 0@ active then 0C7C: 1@ = get_timer 0@ time_left 1@ /= 1000 chatmsg "Òû ñìîæåøü ïîäàòü ðåêëàìó ÷åðåç (%d ñåê.)." 0xbfbfbf 1@ else say "/ad %s" 2@ 0C76: reset_timer 0@ 0C78: set_timer 0@ active true end cmdret
:timer chatmsg "{ff0000}[Îòêàò OOC] {ebebeb}Ìîæåøü ñíîâà ïèñàòü â /o ÷àò." color -1 0C78: set_timer 0@ active false else say "/o" end cmdret не знаю но как то так это работать не хочет( Просто еще суть то какая. Это разные чаты, но откат у них один и тот же.
Сообщение отредактировал k1sher - Суббота, 28.05.2016, 12:15 |
|
|
|
|
| DokerGT |
Дата: Суббота, 28.05.2016, 21:19 | Сообщение # 3947
|
★Doker крутой перец!★
Сообщений: 329
Статус: Offline
|
k1sher, так ты и метку на таймере поменяй. Скопируй готовый, поменяй o на ad и все. А то обе команды на одном таймере работают. И еще переменные во втором таймере другие используй.
|
|
|
|
|
| k1sher |
Дата: Воскресенье, 29.05.2016, 01:12 | Сообщение # 3948
|
Любитель
Сообщений: 32
Статус: Offline
|
DokerGT,
Код {$CLEO .cs} 0000: repeat wait 400 until 0AFA: is_samp_structures_available
chatmsg "{ff0000}[Îòêàò OOC] {ebebeb}Ñïåöèàëüíî äëÿ." 0xffffff 0B34: samp register_client_command "o" @msg 0B34: samp register_client_command "ad" @adrek 0C74: 0@ = create_timer_interval 300000 on_label @timer 0C74: 0@ = create_timer_interval 300000 on_label @timerad 0C78: set_timer 0@ active false
while true wait 0 end
:msg 0B35: samp 2@ = get_last_command_params if 8C14: not strcmp string1 2@ string2 "" then if 0C79: is_timer 0@ active then 0C7C: 1@ = get_timer 0@ time_left 1@ /= 1000 chatmsg "Àíòè-ôëóä (%d ñåê.)." 0xbfbfbf 1@ else say "/o %s" 2@ 0C76: reset_timer 0@ 0C78: set_timer 0@ active true end cmdret
:timer chatmsg "{ff0000}[Îòêàò OOC] {ebebeb}Ìîæåøü ñíîâà ïèñàòü â /o ÷àò." color -1 0C78: set_timer 0@ active false else say "/o" end cmdret
:adrek 0B35: samp 3@ = get_last_command_params if 8C14: not strcmp string1 3@ string2 "" then if 0C79: is_timer 0@ active then 0C7C: 4@ = get_timer 0@ time_left 4@ /= 1000 chatmsg "Ñìîæåøü ñíîâà ïîäàòü ðåêëàìó ÷åðåç (%d ñåê.)." 0xbfbfbf 4@ else say "/ad %s" 3@ 0C76: reset_timer 0@ 0C78: set_timer 0@ active true end cmdret
:timerad chatmsg "{ff0000}[Îòêàò OOC] {ebebeb}Ìîæåøü ñíîâà ïèñàòü â /o ÷àò." color -1 0C78: set_timer 0@ active false else say "/ad" end cmdret Вот так вродь, должно работать?
|
|
|
|
|
| DokerGT |
Дата: Воскресенье, 29.05.2016, 09:52 | Сообщение # 3949
|
★Doker крутой перец!★
Сообщений: 329
Статус: Offline
|
k1sher, переменную 0@ второго таймера тоже менять надо. И в теле команды и в самом таймере. Еще выключи его после регистрации команд. (0C78: set_timer 0@ active false)
|
|
|
|
|
| k1sher |
Дата: Воскресенье, 29.05.2016, 18:02 | Сообщение # 3950
|
Любитель
Сообщений: 32
Статус: Offline
|
DokerGT,
Код {$CLEO .cs} 0000: repeat wait 400 until 0AFA: is_samp_structures_available
chatmsg "{ff0000}[Îòêàò OOC] {ebebeb}Ñïåöèàëüíî äëÿ." 0xffffff 0B34: samp register_client_command "o" @msg 0B34: samp register_client_command "ad" @adrek 0C74: 0@ = create_timer_interval 300000 on_label @timer 0C74: 5@ = create_timer_interval 300000 on_label @timerad 0C78: set_timer 0@ active false 0C78: set_timer 5@ active false
while true wait 0 end
:msg 0B35: samp 2@ = get_last_command_params if 8C14: not strcmp string1 2@ string2 "" then if 0C79: is_timer 0@ active then 0C7C: 1@ = get_timer 0@ time_left 1@ /= 1000 chatmsg "Àíòè-ôëóä (%d ñåê.)." 0xbfbfbf 1@ else say "/o %s" 2@ 0C76: reset_timer 0@ 0C78: set_timer 0@ active true end cmdret
:timer chatmsg "{ff0000}[Îòêàò OOC] {ebebeb}Ìîæåøü ñíîâà ïèñàòü â /o ÷àò." color -1 0C78: set_timer 0@ active false else say "/o" end cmdret
:adrek 0B35: samp 3@ = get_last_command_params if 8C14: not strcmp string1 3@ string2 "" then if 0C79: is_timer 5@ active then 0C7C: 4@ = get_timer 5@ time_left 4@ /= 1000 chatmsg "Ñìîæåøü ñíîâà ïîäàòü ðåêëàìó ÷åðåç (%d ñåê.)." 0xbfbfbf 4@ else say "/ad %s" 3@ 0C76: reset_timer 5@ 0C78: set_timer 5@ active true end cmdret
:timerad 0C78: set_timer 5@ active false else say "/ad" end cmdret Так?
Добавлено (29.05.2016, 12:35) --------------------------------------------- Как ж все это сложно. Нужно чтоб от одного таймера было. У этих двух команд на сервере один откат.Добавлено (29.05.2016, 18:02) --------------------------------------------- А еще бы лучше помог б ты мне вот с такой ситуацией. Например я все сделал как хотел. Подаю рекламу в /ad ивсе таймер сработал, отсчет 300 сек. пошел, но иногда когда в /ad рекламу уже кто либо подал то сервер напишет тебе "Кто-то уже давал рекламу, жди..." и при этом таймер все равно включается... Можно как-нибудь попросить скрипт чтоб он игнорил это сообщение?
Сообщение отредактировал k1sher - Воскресенье, 29.05.2016, 16:40 |
|
|
|
|
| DokerGT |
Дата: Воскресенье, 29.05.2016, 21:31 | Сообщение # 3951
|
★Doker крутой перец!★
Сообщений: 329
Статус: Offline
|
k1sher, хукать сообщение чата и при нахождении нужного текста сбрасывать и выключать таймер.
|
|
|
|
|
| k1sher |
Дата: Воскресенье, 29.05.2016, 22:01 | Сообщение # 3952
|
Любитель
Сообщений: 32
Статус: Offline
|
DokerGT, А опкоды есть какие нибудь для этого?
|
|
|
|
|
| DokerGT |
Дата: Понедельник, 30.05.2016, 13:05 | Сообщение # 3953
|
★Doker крутой перец!★
Сообщений: 329
Статус: Offline
|
k1sher, ищи гайды по ракнету и хукам в клео
|
|
|
|
|
| k1sher |
Дата: Понедельник, 30.05.2016, 17:03 | Сообщение # 3954
|
Любитель
Сообщений: 32
Статус: Offline
|
DokerGT, Получилось как-то так.
Код alloc 4@ 256 0C11: memset destination 4@ value 0 size 256
0BE3: raknet setup_incoming_rpc_hook @cmsg
while true wait 0 end
:cmsg 0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM 0BE5: raknet 1@ = get_hook_param PARAM_PACKETID if 1@ == RPC_ScrClientMessage // DWORD color, DWORD strLen, char[] msg then 0BE7: raknet 2@ = bit_stream_read 0@ type BS_TYPE_INT // color 0BE7: raknet 3@ = bit_stream_read 0@ type BS_TYPE_INT // strLen 0C11: memset destination 4@ value 0 size 256 0BE8: raknet bit_stream 0@ read_array 4@ size 3@ // Text 0C0F: array 4@ element 3@ = 0x00 if 0C18: 7@ = strstr string1 4@ string2 "Кто-то уже давал рекламу, жди..." then Какую команду сюда вставить? end end 0BE0: raknet hook_ret true Вот это я вставлю в то клео которое мы делали. Текст он будет хукать с сервера, это ладно. А как сделать чтоб таймер остановился? Или как ты там говорил?Добавлено (30.05.2016, 17:03) --------------------------------------------- Даа. Вот хук есть. Нужно чтот добавить чтоб таймер сбросился и отключился. Помоги 
|
|
|
|
|
| DokerGT |
Дата: Понедельник, 30.05.2016, 19:01 | Сообщение # 3955
|
★Doker крутой перец!★
Сообщений: 329
Статус: Offline
|
k1sher, 0C76: reset_timer 0@ сбрасывает "нулевой" таймер 0C78: set_timer 0@ active false - отключает его же.
|
|
|
|
|
| k1sher |
Дата: Понедельник, 30.05.2016, 19:38 | Сообщение # 3956
|
Любитель
Сообщений: 32
Статус: Offline
|
DokerGT, А если хук этот добавить, для него sf нужен будет? Добавлено (30.05.2016, 19:38) ---------------------------------------------
Код {$CLEO .cs} {$INCLUDE SF} 0000: repeat wait 400 until 0AFA: is_samp_structures_available
alloc 5@ 256 0C11: memset destination 5@ value 0 size 256
chatmsg "{ff0000}[Откат OOC] {ebebeb}тудум." 0xffffff 0B34: samp register_client_command "o" @msg 0B34: samp register_client_command "ad" @adrek 0C74: 0@ = create_timer_interval 300000 on_label @timer 0C78: set_timer 0@ active false 0BE3: raknet setup_incoming_rpc_hook @cmsg
while true wait 0 end
:msg 0B35: samp 2@ = get_last_command_params if 8C14: not strcmp string1 2@ string2 "" then if 0C79: is_timer 0@ active then 0C7C: 1@ = get_timer 0@ time_left 1@ /= 1000 chatmsg "Анти-флуд (%d сек.)." 0xbfbfbf 1@ else say "/o %s" 2@ 0C76: reset_timer 0@ 0C78: set_timer 0@ active true end cmdret
:timer chatmsg "{ff0000}[Откат OOC] {ebebeb}ыыы." color -1 0C78: set_timer 0@ active false else say "/o" end cmdret
:adrek 0B35: samp 3@ = get_last_command_params if 0C79: is_timer 0@ active then 0C7C: 4@ = get_timer 0@ time_left 4@ /= 1000 chatmsg "ыфыв (%d сек.)." 0xbfbfbf 4@ else say "/ad %s" 3@ 0C76: reset_timer 0@ 0C78: set_timer 0@ active true end cmdret
:cmsg 0BE5: raknet 6@ = get_hook_param PARAM_BITSTREAM 0BE5: raknet 7@ = get_hook_param PARAM_PACKETID if 7@ == RPC_ScrClientMessage // DWORD color, DWORD strLen, char[] msg then 0BE7: raknet 9@ = bit_stream_read 6@ type BS_TYPE_INT // color 0BE7: raknet 10@ = bit_stream_read 6@ type BS_TYPE_INT // strLen 0C11: memset destination 5@ value 0 size 256 0BE8: raknet bit_stream 6@ read_array 5@ size 10@ // Text 0C0F: array 5@ element 3@ = 0x00 if 0C18: 8@ = strstr string1 5@ string2 "Кто-то уже давал рекламу, жди..." then 0C76: reset_timer 0@ 0C78: set_timer 0@ active false end end 0BE0: raknet hook_ret true Вылетает при вводе команды /ad "text". Если писать просто /ad например то все нормально. /ad "text" до сервера доходит, но меня выкидывает из игры.
|
|
|
|
|
| DokerGT |
Дата: Понедельник, 30.05.2016, 20:16 | Сообщение # 3957
|
★Doker крутой перец!★
Сообщений: 329
Статус: Offline
|
k1sher, попробуй поудалять части скрипта, поищи проблемное место.
|
|
|
|
|
| k1sher |
Дата: Понедельник, 30.05.2016, 20:47 | Сообщение # 3958
|
Любитель
Сообщений: 32
Статус: Offline
|
DokerGT, А на глаз ты проблемных мест не видишь? 81 строка, если я удалю что нибудь то походу ток хуже будет.
|
|
|
|
|
| DokerGT |
Дата: Вторник, 31.05.2016, 18:44 | Сообщение # 3959
|
★Doker крутой перец!★
Сообщений: 329
Статус: Offline
|
k1sher, С хуком косяк где то, это точно. Лень разбиратся  Добавлено (31.05.2016, 18:44) --------------------------------------------- Только что случайно заметил - ты в хуке нулем заполняешь элемент, которого нет. Тебе нужно заполнить нулем строку в байте, равному длине строки. Вообщем в строке 0C0F: array 5@ element 3@ = 0x00 замени 3@ на 10@
|
|
|
|
|
| k1sher |
Дата: Вторник, 31.05.2016, 22:43 | Сообщение # 3960
|
Любитель
Сообщений: 32
Статус: Offline
|
Цитата DokerGT (  ) Только что случайно заметил - ты в хуке нулем заполняешь элемент, которого нет. Тебе нужно заполнить нулем строку в байте, равному длине строки. Вообщем в строке 0C0F: array 5@ element 3@ = 0x00 замени 3@ на 10@ Ой, пасибки.
|
|
|
|
|