Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.
Модераторы: Subb98, liFe iS GoOD
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.
В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.
Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.
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
MrJunior » 08 мар 2018, 15:52
Блокирует только тому игроку, кто в розыске.
Что-бы всем - использовать можно цикл, который проверяет наличие игрока в розыске, если такой есть - блокируем хук.
-
MrJunior
-
- Сообщения: 146
- Зарегистрирован: 21 сен 2016, 19:46
- Откуда: localhost
- Благодарил (а): 3 раз.
- Поблагодарили: 31 раз.
- Опыт программирования: Больше трех лет
- Языки программирования: Pawn | Web | Lua
-
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
Graviti » 18 мар 2018, 19:44
Попробовал через if(g_szWantedNames[0])
Не работает вообще хук
-
Graviti
-
- Сообщения: 35
- Зарегистрирован: 29 янв 2018, 16:11
- Благодарил (а): 0 раз.
- Поблагодарили: 0 раз.
- Опыт программирования: Около 6 месяцев
- Языки программирования: Pawn
Php
HTML
CSS
Java
артист666 » 18 мар 2018, 22:05
Создаёшь глобальную переменную.
Находишь свой розыск, ставишь там true, когда игрок убит или ушел - false.
И проверяй по ней, есть ли кто-то из игроков розыске.
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
-
артист666
-
- Сообщения: 2706
- Зарегистрирован: 09 апр 2013, 17:46
- Благодарил (а): 284 раз.
- Поблагодарили: 639 раз.
- Опыт программирования: Больше трех лет
- Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn
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
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
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 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;
if(GetNum() > 0)
{
UTIL_SayText(id, "!g[COJ] !yИдет бунт, хук запрещен!");
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");
return PLUGIN_HANDLED;
}
-
Vaas
-
- Сообщения: 47
- Зарегистрирован: 25 май 2016, 16:02
- Благодарил (а): 12 раз.
- Поблагодарили: 8 раз.
- Опыт программирования: Больше трех лет
- Языки программирования: Pascal
Pawn
Pawno
c++
php
js
Graviti » 20 мар 2018, 16:24
Не работает
-
Graviti
-
- Сообщения: 35
- Зарегистрирован: 29 янв 2018, 16:11
- Благодарил (а): 0 раз.
- Поблагодарили: 0 раз.
- Опыт программирования: Около 6 месяцев
- Языки программирования: Pawn
Php
HTML
CSS
Java
Вернуться в Скриптинг
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12