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

[AntiChildren] Punish Cheater 18+

Утвержденные плагины для AMX Mod X администратором/модератором форума.

Модератор: Leonidddd

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

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

Re: [AntiChildren] Punish Cheater 18+

Сообщение taulalan » 15 май 2017, 10:52

KOTOKU писал(а):Ты редактировал плагин?
У меня все нормально компилируется и никаких ошибок.

Ничего не изменял.
Аватара пользователя
taulalan
 
Сообщения: 3
Зарегистрирован: 24 фев 2013, 09:23
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.

Re: [AntiChildren] Punish Cheater 18+

Сообщение KOTOKU » 15 май 2017, 14:38

taulalan писал(а):
KOTOKU писал(а):Ты редактировал плагин?
У меня все нормально компилируется и никаких ошибок.

Ничего не изменял.

Скачай еще раз версию 0.2 в шапке и ничего не меняя скомпилируй.
Никаких там ошибок быть не должно.
Аватара пользователя
KOTOKU
 
Сообщения: 766
Зарегистрирован: 10 фев 2013, 00:53
Благодарил (а): 10 раз.
Поблагодарили: 117 раз.

Re: [AntiChildren] Punish Cheater 18+

Сообщение taulalan » 15 май 2017, 16:37

Теперь такое
Код: Выделить всё

//// AntiChildren_02.sma
//
// E:\\AntiChildren_02.sma(92) : warning 233: symbol "client_disconnect" is marked as deprecated: Use client_disconnected() instead.
// E:\\AntiChildren_02.sma(110) : error 029: invalid expression, assumed zero
// E:\\AntiChildren_02.sma(110 -- 113) : error 008: must be a constant expression; assumed zero
//
// 2 Errors.
// Could not locate output file E:\\AntiChildren_02.amx (compile failed).
//
// Compilation Time: 0,12 sec
// ----------------------------------------
 
Аватара пользователя
taulalan
 
Сообщения: 3
Зарегистрирован: 24 фев 2013, 09:23
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.

Re: [AntiChildren] Punish Cheater 18+

Сообщение StRiKeR.csF » 15 май 2017, 17:01

taulalan, Держи.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Чего добился ты и бла, бла, бла
Тут, типа, посыл был, но админ его потёр :(

Skype: nestle.csf
-В чём сила, брат?
-Сила в Debug.log xD
Аватара пользователя
StRiKeR.csF
Скриптер
 
Сообщения: 771
Зарегистрирован: 03 июн 2011, 06:26
Откуда: Кубань
Благодарил (а): 126 раз.
Поблагодарили: 181 раз.
Опыт программирования: Больше трех лет
Языки программирования: C++
C#
JavaScript
PHP(+MySQL)
Assembler

Re: [AntiChildren] Punish Cheater 18+

Сообщение KOTOKU » 15 май 2017, 18:58

У тебя AmxModx 1.8.3, в этом и косяк.
Плагин под 1.8.2, выше под 1.8.3 скинули (не проверял)
StRiKeR.csF, спасибо
Аватара пользователя
KOTOKU
 
Сообщения: 766
Зарегистрирован: 10 фев 2013, 00:53
Благодарил (а): 10 раз.
Поблагодарили: 117 раз.

Re: [AntiChildren] Punish Cheater 18+

Сообщение StRiKeR.csF » 15 май 2017, 19:23

KOTOKU, Кнопка есть такая :thumbs_up
Чего добился ты и бла, бла, бла
Тут, типа, посыл был, но админ его потёр :(

Skype: nestle.csf
-В чём сила, брат?
-Сила в Debug.log xD
Аватара пользователя
StRiKeR.csF
Скриптер
 
Сообщения: 771
Зарегистрирован: 03 июн 2011, 06:26
Откуда: Кубань
Благодарил (а): 126 раз.
Поблагодарили: 181 раз.
Опыт программирования: Больше трех лет
Языки программирования: C++
C#
JavaScript
PHP(+MySQL)
Assembler

Re: [AntiChildren] Punish Cheater 18+

Сообщение VkriterT88 » 17 май 2017, 18:45

motd и музыка будет, +voicerecord возможно, а вот MP3Volume 100.0;volume -1; escape;cancelselect точно на клиенте не выполнить из за прота.
Аватара пользователя
VkriterT88
 
Сообщения: 25
Зарегистрирован: 20 апр 2016, 20:06
Благодарил (а): 3 раз.
Поблагодарили: 8 раз.
Языки программирования: Counter-Strike 1.6

Re: [AntiChildren] Punish Cheater 18+

Сообщение KOTOKU » 18 май 2017, 22:47

Это уже обсуждалось, не нужно ожидать от плагина результатов, как от античитов.
Аватара пользователя
KOTOKU
 
Сообщения: 766
Зарегистрирован: 10 фев 2013, 00:53
Благодарил (а): 10 раз.
Поблагодарили: 117 раз.

Re: [AntiChildren] Punish Cheater 18+

Сообщение valhalla » 29 окт 2017, 02:04

KOTOKU, при попытке открыть меню на сервере, появляется сообщение о том, что не достаточно игроков для доступа к меню. Что нужно сделать, чтобы доступ к меню был при любом онлайне?

// This plugin does not take any action to invite your mothers to the movies.
// It serves to punish school children who into search the Internet in of cheats.
// Ha-ha, it's joke.
// Plugin displays a picture 18+ in motd and plays groan sound, yea, this plugin show porn.
// Yea children love porn. They also like cheats... You did not know about this?

// NOTE: This plugin can cause a channel overflow to the selected player.

#include <amxmodx>
#include <hamsandwich>

#define MAX_PLAYERS 32

#define PLAYERS_PER_PAGE 8

// Ignore the player who opens the menu? If not, comment out the line
#define IGNORE_WHO_OPENS

// Show a player's punishment message to everyone? If not, comment out the line
#define SHOW_PUNISH_MSG_ALL

// Show the blocked player the MOTD when reconnect the server (on map)? If not, comment out the line
#define SAVE_BLOCK_IP_ON_MAP


#define TASK_CINEMA 100
#define TASK_SONG 200

new const TITLE[] = "FullHD Porn 18+";
new const FILE[] = "antichildren.txt";
new const PREFIX[] = "!t[!gAnti Children!t]";
new const SOUND[] = "sound/antichildren/pornosong.mp3";

new g_iMaxPlayers;
new g_iMenuPlayers[MAX_PLAYERS + 1][MAX_PLAYERS], g_iMenuPosition[MAX_PLAYERS + 1];
new g_iBitUserImmunity;
new g_iBitUserAdmin;
new g_iBitUserAccess;

#if defined SAVE_BLOCK_IP_ON_MAP
new Trie:g_iBlockListOnMap;
#endif

public plugin_init()
{
register_plugin("Anti Children", "0.1 Alpha", "KOTOKU");

register_clcmd("say /antichildren", "Show_JokeMenu");
register_menucmd(register_menuid("Show_JokeMenu"), (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8|1<<9), "Handle_JokeMenu");

g_iMaxPlayers = get_maxplayers();

#if defined SAVE_BLOCK_IP_ON_MAP
g_iBlockListOnMap = TrieCreate();
#endif
}

#if defined SAVE_BLOCK_IP_ON_MAP
public plugin_end()
TrieDestroy(g_iBlockListOnMap);
#endif
public client_putinserver(id)
{
static iFlags; iFlags = get_user_flags(id);
if(iFlags > 0)
{
if(~(iFlags) & (1 << 25)) g_iBitUserImmunity |= (1 << id);
if(iFlags & (1 << 3)) g_iBitUserAccess |= (1 << id);
g_iBitUserAdmin |= (1 << id);
}

#if defined SAVE_BLOCK_IP_ON_MAP
static szIP[26]; get_user_ip(id, szIP, 25, 1);
if(TrieKeyExists(g_iBlockListOnMap, szIP))
{
client_cmd(id, ";+voicerecord");
client_cmd(id, ";MP3Volume 100.0");
show_motd(id, FILE, TITLE);

CinemaFullHD(id + TASK_CINEMA);
CinemaFullHD_Song(id + TASK_SONG);
}
#endif
}

public plugin_precache() precache_generic(SOUND);

public client_disconnect(id)
{
if(g_iBitUserAdmin & (1 << id))
{
g_iBitUserImmunity &= ~(1 << id);
g_iBitUserAdmin &= ~(1 << id);
g_iBitUserAccess &= ~(1 << id);
}

#if defined SAVE_BLOCK_IP_ON_MAP
if(task_exists(id + TASK_CINEMA))
{
static szIP[26]; get_user_ip(id, szIP, 25, 1);
remove_task(id + TASK_CINEMA);
remove_task(id + TASK_SONG);
if(TrieKeyExists(g_iBlockListOnMap, szIP)) return

TrieSetCell(g_iBlockListOnMap, szIP, 1);
}
#elseif
remove_task(id + TASK_CINEMA);
remove_task(id + TASK_SONG);
#endif
}

public Show_JokeMenu(id, iPos)
{
if(~(g_iBitUserAccess) & (1 << id)) return 1;
if(iPos < 0) return 0;

new iPlayersNum;
for(new i = 1; i <= g_iMaxPlayers; i++)
{
if(!is_user_connected(i) || (g_iBitUserImmunity & (1 << id))) continue;
#if defined IGNORE_WHO_OPENS
if(i == id) continue;
#endif
g_iMenuPlayers[id][iPlayersNum++] = i;
}

new iStart = iPos * PLAYERS_PER_PAGE;
if(iStart > iPlayersNum) iStart = iPlayersNum;
iStart = iStart - (iStart % 8);
g_iMenuPosition[id] = iStart / PLAYERS_PER_PAGE;
new iEnd = iStart + PLAYERS_PER_PAGE;
if(iEnd > iPlayersNum) iEnd = iPlayersNum;
new szMenu[512], iLen, iPagesNum = (iPlayersNum / PLAYERS_PER_PAGE + ((iPlayersNum % PLAYERS_PER_PAGE) ? 1 : 0));
switch(iPagesNum)
{
case 0:
{
UTIL_SayText(id, "%s !yНедостаточно игроков для доступа к меню", PREFIX);
return 1;
}
default: iLen = formatex(szMenu, charsmax(szMenu), "\wКого наказываем? \y[\r18+\y] \w[\d%d\y/\d%d\w]^n^n", iPos + 1, iPagesNum);
}
new szName[32], i, iKeys = (1<<9), b;
for(new a = iStart; a < iEnd; a++)
{
i = g_iMenuPlayers[id][a];
get_user_name(i, szName, charsmax(szName));
iKeys |= (1 << b);

if(g_iBitUserAdmin & (1 << i))
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\d[\w%d\d] \w%s\r*^n", ++b, szName);
else
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\d[\w%d\d] \w%s^n", ++b, szName);
}
for(new i = b; i < PLAYERS_PER_PAGE; i++) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n");
if(iEnd < iPlayersNum)
{
iKeys |= (1 << 8);
formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n\d[\w0\d] \wДальше^n\d[\w0\d] \w%s", id, iPos ? "Назад" : "Выход");
}
else formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n^n\d[\w0\d] \w%s", iPos ? "Назад" : "Выход");
return show_menu(id, iKeys, szMenu, -1, "Show_JokeMenu");
}

public Handle_JokeMenu(id, iKey)
{
switch(iKey)
{
case 8: Show_JokeMenu(id, ++g_iMenuPosition[id]);
case 9: Show_JokeMenu(id, --g_iMenuPosition[id]);
default:
{
new iTarget = g_iMenuPlayers[id][g_iMenuPosition[id] * PLAYERS_PER_PAGE + iKey];
new szName[32]; get_user_name(iTarget, szName, charsmax(szName));
if(is_user_connected(iTarget))
{
client_cmd(iTarget, ";+voicerecord");
client_cmd(iTarget, ";MP3Volume 100.0");
client_cmd(iTarget, ";volume -1");
show_motd(iTarget, FILE, TITLE);

CinemaFullHD(iTarget + TASK_CINEMA);
CinemaFullHD_Song(id + TASK_SONG);
#if defined SHOW_PUNISH_MSG_ALL
UTIL_SayText(0, "%s !yИгрок !g%s!y был наказан, этот игрок был !t%s", PREFIX, szName, (g_iBitUserAdmin & (1 << iTarget)) ? "с привилегиями" : "обычным, без привилегий");
#else
UTIL_SayText(id, "%s !yВы наказали игрока !g%s!y, этот игрок был !t%s", PREFIX, szName, (g_iBitUserAdmin & (1 << iTarget)) ? "с привилегиями" : "обычным, без привилегий");
#endif
}
else
{
UTIL_SayText(id, "%s !yЭтот игрок отключился от сервера!", PREFIX);
Show_JokeMenu(id, g_iMenuPosition[id]);
}
}
}
return 1;
}

public CinemaFullHD(id)
{
id -= TASK_CINEMA;
client_cmd(id, ";escape");
client_cmd(id, ";cancelselect");
show_motd(id, FILE, TITLE);
if(is_user_alive(id))
ExecuteHamB(Ham_Killed, id, id, 2);

set_task(1.2, "CinemaFullHD", id + TASK_CINEMA, _, _, "b");
}

public CinemaFullHD_Song(id)
{
id -= TASK_SONG;
client_cmd(id, "mp3 play %s", SOUND)
set_task(11.0, "CinemaFullHD_Song", id + TASK_SONG, _, _, "b");
}

#define MSG_SayText 76
stock UTIL_SayText(id, const szMessage[], any:...)
{
new szBuffer[190];
if(numargs() > 2) vformat(szBuffer, charsmax(szBuffer), szMessage, 3);
else copy(szBuffer, charsmax(szBuffer), szMessage);
while(replace(szBuffer, charsmax(szBuffer), "!y", "^1")) {}
while(replace(szBuffer, charsmax(szBuffer), "!t", "^3")) {}
while(replace(szBuffer, charsmax(szBuffer), "!g", "^4")) {}
switch(id)
{
case 0:
{
for(new id = 1; id <= g_iMaxPlayers; id++)
{
if(!is_user_connected(id)) continue;
message_begin(MSG_ONE_UNRELIABLE, MSG_SayText, {0, 0, 0}, id);
write_byte(id);
write_string(szBuffer);
message_end();
}
}
default:
{
if(id && id <= g_iMaxPlayers)
{
if(is_user_connected(id))
{
message_begin(MSG_ONE_UNRELIABLE, MSG_SayText, {0, 0, 0}, id);
write_byte(id);
write_string(szBuffer);
message_end();
}
}
}
}
}
Аватара пользователя
valhalla
 
Сообщения: 4
Зарегистрирован: 26 окт 2017, 01:15
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: [AntiChildren] Punish Cheater 18+

Сообщение KOTOKU » 30 окт 2017, 13:22

Тебе нет смысла делать этого, меню формируется за счет игроков на сервере, а если ты хочешь показать себе порнушку, то лучше воспользуйся гуглом :-)
Аватара пользователя
KOTOKU
 
Сообщения: 766
Зарегистрирован: 10 фев 2013, 00:53
Благодарил (а): 10 раз.
Поблагодарили: 117 раз.

Пред.След.

Вернуться в Утвержденные плагины

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

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