[CLEO] Вопрос - Ответ - Страница 264 - Форум Cheat-Master.ru
Модератор форума: Alowir, Sanoxxx  
[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 рекламу уже кто либо подал то сервер напишет тебе "Кто-то уже давал рекламу, жди..." и при этом таймер все равно включается... sad Можно как-нибудь попросить скрипт чтоб он игнорил это сообщение?

Сообщение отредактировал k1sher - Воскресенье, 29.05.2016, 16:40
DokerGT Дата: Воскресенье, 29.05.2016, 21:31 | Сообщение # 3951
★Doker крутой перец!★
Сообщений: 329
Статус: Offline
k1sher, хукать сообщение чата и при нахождении нужного текста сбрасывать и выключать таймер. wacko
k1sher Дата: Воскресенье, 29.05.2016, 22:01 | Сообщение # 3952
Любитель
Сообщений: 32
Статус: Offline
DokerGT, А опкоды есть какие нибудь для этого? smile
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)
---------------------------------------------
Даа. Вот хук есть. Нужно чтот добавить чтоб таймер сбросился и отключился. Помоги smile

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" до сервера доходит, но меня выкидывает из игры. sad
DokerGT Дата: Понедельник, 30.05.2016, 20:16 | Сообщение # 3957
★Doker крутой перец!★
Сообщений: 329
Статус: Offline
k1sher, попробуй поудалять части скрипта, поищи проблемное место.
k1sher Дата: Понедельник, 30.05.2016, 20:47 | Сообщение # 3958
Любитель
Сообщений: 32
Статус: Offline
DokerGT, А на глаз ты проблемных мест не видишь? 81 строка, если я удалю что нибудь то походу ток хуже будет. sad
DokerGT Дата: Вторник, 31.05.2016, 18:44 | Сообщение # 3959
★Doker крутой перец!★
Сообщений: 329
Статус: Offline
k1sher, С хуком косяк где то, это точно. Лень разбиратся meeting

Добавлено (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@

Ой, пасибки. smile
Поиск:
Статистика Форума