Русское сообщество по скриптингу

Блок хука во время бунта | jbe_core

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Блок хука во время бунта | jbe_core

Сообщение Graviti » 08 мар 2018, 14:41

Всем привет. У меня есть код

Код: Выделить всё
if(IsSetBit(g_iBitUserWanted, id))
{
    set_dhudmessage(255, 70, 10, 0.30, 0.55, 1, 3.0, 1.7, 0.1, 1.0);
    show_dhudmessage(id, "Запрещено использовать хук, когда ты в розыске!", g_iBitUserWanted);
    return PLUGIN_HANDLED;

Он блокирует хук только 1-ому игроку. Как чтобы всем?

Тема перемещена из раздела "Вопросы по AMXX и его плагинам" // Subb98
Аватара пользователя
Graviti
 
Сообщения: 35
Зарегистрирован: 29 янв 2018, 16:11
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Pawn
Php
HTML
CSS
Java

Re: Блок хука во время бунта | jbe_core

Сообщение MrJunior » 08 мар 2018, 15:52

Блокирует только тому игроку, кто в розыске.
Что-бы всем - использовать можно цикл, который проверяет наличие игрока в розыске, если такой есть - блокируем хук.
Аватара пользователя
MrJunior
Скриптер
 
Сообщения: 146
Зарегистрирован: 21 сен 2016, 19:46
Откуда: localhost
Благодарил (а): 3 раз.
Поблагодарили: 31 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn | Web | Lua

Re: Блок хука во время бунта | jbe_core

Сообщение limbooc » 17 мар 2018, 01:18

Код: Выделить всё
if(jbe_all_users_wanted())
{
    UTIL_SayText(id, "!g[JBE] !yСреди заключенных есть бунтарь, паутинка запрещен!");
    return PLUGIN_HANDLED;
Аватара пользователя
limbooc
 
Сообщения: 71
Зарегистрирован: 15 мар 2017, 07:45
Благодарил (а): 13 раз.
Поблагодарили: 1 раз.
Опыт программирования: Около года
Языки программирования: Pawn

Re: Блок хука во время бунта | jbe_core

Сообщение Graviti » 18 мар 2018, 19:44

Попробовал через if(g_szWantedNames[0])
Не работает вообще хук
Аватара пользователя
Graviti
 
Сообщения: 35
Зарегистрирован: 29 янв 2018, 16:11
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Pawn
Php
HTML
CSS
Java

Re: Блок хука во время бунта | jbe_core

Сообщение артист666 » 18 мар 2018, 22:05

Создаёшь глобальную переменную.
Находишь свой розыск, ставишь там true, когда игрок убит или ушел - false.
И проверяй по ней, есть ли кто-то из игроков розыске.
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn

Re: Блок хука во время бунта | jbe_core

Сообщение Vaas » 18 мар 2018, 22:26

Код: Выделить всё
public GetNum()
{
new i = 0
for(new id = 1;id <= get_maxplayers(); id++)  
{
if(
jbe_get_user_team(id) == 1 && is_user_alive(id) & IsSetBit(g_iBitUserWanted, id)) i++
}
return i
}
 


Ну а при использовании хука ставишь проверку

Код: Выделить всё
if(GetNum() > 0)
{
    set_dhudmessage(255, 70, 10, 0.30, 0.55, 1, 3.0, 1.7, 0.1, 1.0);
    show_dhudmessage(id, "Сейчас нельзя использовать паутинку!");
    return PLUGIN_HANDLED;
}
 
Аватара пользователя
Vaas
 
Сообщения: 47
Зарегистрирован: 25 май 2016, 16:02
Благодарил (а): 12 раз.
Поблагодарили: 8 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pascal
Pawn
Pawno
c++
php
js

Re: Блок хука во время бунта | jbe_core

Сообщение Graviti » 19 мар 2018, 16:33

Код: Выделить всё
public GetNum()
{
new i = 0;
for(
new id = 1;id <= get_maxplayers(); id++)
{
if(
jbe_get_user_team(id) == 1 && is_user_alive(id) & IsSetBit(g_iBitUserWanted, id)) i++;
}
return i;
}

public ClCmd_HookOn(id)
{
    if(g_iDayMode == 3 || IsNotSetBit(g_iBitUserHook, id) || IsNotSetBit(g_iBitUserAlive, id) || IsSetBit(g_iBitUserSoccer, id) || IsSetBit(g_iBitUserBoxing, id) || IsSetBit(g_iBitUserDuel, id) || task_exists(id+TASK_HOOK_THINK)) return PLUGIN_HANDLED;
    new iOrigin[3];
    get_user_origin(id, iOrigin, 3);
    Color1[id] = random_num(0, 255);
    Color2[id] = random_num(0, 255);
    Color3[id] = random_num(0, 255);
    g_vecHookOrigin[id][0] = float(iOrigin[0]);
    g_vecHookOrigin[id][1] = float(iOrigin[1]);
    g_vecHookOrigin[id][2] = float(iOrigin[2]);
    CREATE_SPRITE(g_vecHookOrigin[id], g_pSpriteRicho2, 10, 255);
    emit_sound(id, CHAN_STATIC, "jb_engine/hook_ball.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
    jbe_hook_think(id+TASK_HOOK_THINK);
    set_task(0.1, "jbe_hook_think", id+TASK_HOOK_THINK, _, _, "b");
    if(GetNum() > 0)
        {
        UTIL_SayText(id, "!g[COJ] !yИдет бунт, хук запрещен!");
        return PLUGIN_HANDLED;
        } 

Так должно получиться?
Аватара пользователя
Graviti
 
Сообщения: 35
Зарегистрирован: 29 янв 2018, 16:11
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Pawn
Php
HTML
CSS
Java

Re: Блок хука во время бунта | jbe_core

Сообщение Vaas » 20 мар 2018, 15:43

Graviti писал(а):
Код: Выделить всё
public GetNum()
{
new i = 0;
for(
new id = 1;id <= get_maxplayers(); id++)
{
if(
jbe_get_user_team(id) == 1 && is_user_alive(id) & IsSetBit(g_iBitUserWanted, id)) i++;
}
return i;
}

public ClCmd_HookOn(id)
{
    if(g_iDayMode == 3 || IsNotSetBit(g_iBitUserHook, id) || IsNotSetBit(g_iBitUserAlive, id) || IsSetBit(g_iBitUserSoccer, id) || IsSetBit(g_iBitUserBoxing, id) || IsSetBit(g_iBitUserDuel, id) || task_exists(id+TASK_HOOK_THINK)) return PLUGIN_HANDLED;
    new iOrigin[3];
    get_user_origin(id, iOrigin, 3);
    Color1[id] = random_num(0, 255);
    Color2[id] = random_num(0, 255);
    Color3[id] = random_num(0, 255);
    g_vecHookOrigin[id][0] = float(iOrigin[0]);
    g_vecHookOrigin[id][1] = float(iOrigin[1]);
    g_vecHookOrigin[id][2] = float(iOrigin[2]);
    CREATE_SPRITE(g_vecHookOrigin[id], g_pSpriteRicho2, 10, 255);
    emit_sound(id, CHAN_STATIC, "jb_engine/hook_ball.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
    jbe_hook_think(id+TASK_HOOK_THINK);
    set_task(0.1, "jbe_hook_think", id+TASK_HOOK_THINK, _, _, "b");
    if(GetNum() > 0)
        {
        UTIL_SayText(id, "!g[COJ] !yИдет бунт, хук запрещен!");
        return PLUGIN_HANDLED;
        } 

Так должно получиться?


Нет.

Код: Выделить всё
public GetNum()
{
new 
0;
for(new 
id 1;id <= get_maxplayers(); id++)
{
if(
jbe_get_user_team(id) == && is_user_alive(id) & IsSetBit(g_iBitUserWantedid)) i++;
}
return 
i;
}

public 
ClCmd_HookOn(id)
{
if(
g_iDayMode == || IsNotSetBit(g_iBitUserHookid) || IsNotSetBit(g_iBitUserAliveid) || IsSetBit(g_iBitUserSoccerid) || IsSetBit(g_iBitUserBoxingid) || IsSetBit(g_iBitUserDuelid) || task_exists(id+TASK_HOOK_THINK)) return PLUGIN_HANDLED;
if(
GetNum() > 0)
{
UTIL_SayText(id"!g[COJ] !yИдет бунт, хук запрещен!");
return 
PLUGIN_HANDLED;

new 
iOrigin[3];
get_user_origin(idiOrigin3);
Color1[id] = random_num(0255);
Color2[id] = random_num(0255);
Color3[id] = random_num(0255);
g_vecHookOrigin[id][0] = float(iOrigin[0]);
g_vecHookOrigin[id][1] = float(iOrigin[1]);
g_vecHookOrigin[id][2] = float(iOrigin[2]);
CREATE_SPRITE(g_vecHookOrigin[id], g_pSpriteRicho210255);
emit_sound(idCHAN_STATIC"jb_engine/hook_ball.wav"VOL_NORMATTN_NORM0PITCH_NORM);
jbe_hook_think(id+TASK_HOOK_THINK);
set_task(0.1"jbe_hook_think"id+TASK_HOOK_THINK__"b");
return 
PLUGIN_HANDLED;
}
 
Аватара пользователя
Vaas
 
Сообщения: 47
Зарегистрирован: 25 май 2016, 16:02
Благодарил (а): 12 раз.
Поблагодарили: 8 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pascal
Pawn
Pawno
c++
php
js

Re: Блок хука во время бунта | jbe_core

Сообщение Graviti » 20 мар 2018, 16:24

Не работает
Аватара пользователя
Graviti
 
Сообщения: 35
Зарегистрирован: 29 янв 2018, 16:11
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Pawn
Php
HTML
CSS
Java


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12