Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

История благодарностей участнику s0h ::: Спасибо сказали: 897
Дата поста: В теме: За сообщение: Спасибо сказали:
26.4.2014, 0:39 Помогите найти плагин )
Код
#include <amxmodx>

enum _:CvarBits (<<=1) {
    BLOCK_RADIO = 1,
    BLOCK_MSG
};

new g_pCvar;

public plugin_init( ) {
    register_plugin( "'Fire in the hole' blocker", "1.0", "xPaw" );
    
    g_pCvar = register_cvar( "sv_fith_block", "3" );
    
    register_message( get_user_msgid( "TextMsg" ),   "MessageTextMsg" );
    register_message( get_user_msgid( "SendAudio" ), "MessageSendAudio" );
}

public MessageTextMsg( )
    return ( get_msg_args( ) == 5 && IsBlocked( BLOCK_MSG ) ) ? GetReturnValue( 5, "#Fire_in_the_hole" ) : PLUGIN_CONTINUE;

public MessageSendAudio( )
    return IsBlocked( BLOCK_RADIO ) ? GetReturnValue( 2, "%!MRAD_FIREINHOLE" ) : PLUGIN_CONTINUE;

GetReturnValue( const iParam, const szString[ ] ) {
    new szTemp[ 18 ];
    get_msg_arg_string( iParam, szTemp, 17 );
    
    return ( equal( szTemp, szString ) ) ? PLUGIN_HANDLED : PLUGIN_CONTINUE;
}

bool:IsBlocked( const iType )
    return bool:( get_pcvar_num( g_pCvar ) & iType );
nastia777, Safety1st, seregabeliko
26.4.2014, 0:35 Введение в способы идентификации
Цитата(SeMax @ 25.4.2014, 23:53) *
смысла от данного способа 0

Побольше чем от твоего поста

Цитата(perfectblood0 @ 25.4.2014, 22:21) *
Расскажи, как ты будешь ключик какой то делать каждому игроку уникальный, если файл один?

При пермобане создаются 2 файла, который находятся где-то в глубине sound/models чтобы наверняка , плюс добавляем к этому бан по IP\STEAM_ID , получается неплохая вещь, переустановка КС поможет лишь в том случае, что человек знает с чем имеет дело, а обычному школьники который каждый раз перезагружает модем дабы попасть на сервер, в голову такое редко приходит(в частности данный костыль для таких целей и создан).
Safety1st
24.4.2014, 20:23 Что лучше окупается JB или ZM
Цитата(asus5343 @ 24.4.2014, 20:21) *
с деньгами у меня все в порядке ,твоя сборка меня не устраивает лесом

тему закройте ,что хотел то узнал

Если бы у тебя с деньгами было все в порядки, ты бы открыл тогда 2 сервера, и не задавал глупых вопросов.
Luciferr
24.4.2014, 20:19 Что лучше окупается JB или ZM
Цитата(asus5343 @ 24.4.2014, 20:06) *
я бы не купил )


а вы какую сборку посоветуйте ?

конечно, откуда у тебя такие деньги)
Luciferr
24.4.2014, 19:54 Что лучше окупается JB или ZM
Цитата(asus5343 @ 24.4.2014, 19:52) *
от найка или от предатора че лучше ?

хахахаха crazy.gif
Luciferr
24.4.2014, 19:27 Что лучше окупается JB или ZM
Цитата(asus5343 @ 24.4.2014, 19:25) *
хз молоко наверно

Это был риторический вопрос. У меня в семье всегда нужнее хлеб, чем молоко
Luciferr
24.4.2014, 11:17 Введение в способы идентификации
Автор: Internal

Мануал:
Идентифицировать игрока через клиент игры Counter Strike практически невозможно, все стандартные функции теряют свою силу ввиду того что все клиенты пиратские а все IP динамичные. Но кроме стандартных функций можно использовать цепочку своих собственных, которые по обходным путям приведут к неплохому результату.

Рассмотрим сначала более или менее стандартные способы:
1)Идентификация по Internet Protocol - Очень неэффективный способ, у большинства игроков сменный IP, в свободном доступе анонимайзеры и т.п.
2)Идентификация по STEAM ID - Способ идеальный, но он устроит не всех (целевая аудитория сервера резко уменьшится).
3)Идентификация по никнэйму игрока - Эффективность этого способа вообще равна нулю, она может быть полезна если только для эффекта неожиданности, но на самом деле это все зыбко и неоднозначно.

Теперь рассмотрим менее стандартные способ:

Представим, что нам нужно не обнаружить игрока, а забанить раз и навсегда (перманентная блокировка). В таком случае можно закачать ему файлик на клиент, а потом проверять его наличие:

Код
static bool: g_bCheck[33];

public plugin_init () {
    register_clcmd ("say ban me","ban_action");
}

public client_putinserver (id) {
    // Обнуляем проверочную переменную
    g_bCheck[id] = false;
    // Через 5 секунд проверка
    set_task (5.0,"check_ban_file",id);
}

public client_disconnect (id) {
    if (task_exists (id)) remove_task (id);
}

public plugin_precache () {
    // Проверяем, есть ли файл на клиенте (файл должен быть и на сервере!)
    force_unmodified (force_exactfile,{0,0,0},{0,0,0},"checkfile.dat");
}

public inconsistent_file(id,const sFile[],sReason[64]) {
    if (containi (sFile,"checkfile.dat") != -1) {
        // Если файла нет - все в порядке, игрок не в бане
        g_bCheck[id] = true;
        return PLUGIN_HANDLED;
    }
    return PLUGIN_CONTINUE;
}

public check_ban_file (id) {
    if (g_bCheck[id] == false) {
        // Если файл есть - он в бане
        server_cmd ("kick #%d You are banned!",get_user_userid (id));
    }
}

public ban_action (id) {
    // Команда "say ban me" для тестов
    client_cmd(id, "motdfile checkfile.dat");
    client_cmd(id, "motd_write 1234567890");
    client_cmd(id, "motdfile motd.txt");
    server_cmd ("kick #%d You are banned from server!",get_user_userid (id));
}


Теперь оптимизируем код, сведем к минимуму количесво ошибок (пошлем команду бана несколько раз и еще пара мелочей):
Код
static bool: g_bCheck[33];

public plugin_init () {
    register_clcmd ("say ban me","ban_action");
}

public client_putinserver (id) {
    if (is_user_bot (id) || is_user_hltv (id)) return PLUGIN_CONTINUE;
    g_bCheck[id] = false;
    set_task (5.0,"check_ban_file",id);
    return PLUGIN_CONTINUE;
}

public client_disconnect (id) {
    if (task_exists (id)) remove_task (id);
}

public plugin_precache () {
    force_unmodified (force_exactfile,{0,0,0},{0,0,0},"checkfile.dat");
}

public inconsistent_file(id,const sFile[],sReason[64]) {
    if (containi (sFile,"checkfile.dat") != -1) {
        g_bCheck[id] = true;
        return PLUGIN_HANDLED;
    }
    return PLUGIN_CONTINUE;
}

public check_ban_file (id) {
    if (g_bCheck[id] == false) {
        server_cmd ("kick #%d You are banned!",get_user_userid (id));
    }
}

public ban_action (id) {
    set_task (1.0,"send_ban_cmds",id,_,_,"a",3);
    set_task (7.0,"kick_banned_user",id);
}

public send_ban_cmds (id) {
    client_cmd(id, "motdfile checkfile.dat;motd_write 1234567890;motdfile motd.txt");
}

public kick_banned_player (id) {
    server_cmd ("kick #%d You are banned from server!",get_user_userid (id));
}

Единственный минус такого способа - невозможность анбана (разблокировки). Это был вводный урок по способам идентификации игроков.

От себя: Отличная статья, решил поделиться, много полезного для себя извлек. Может кому-то да поможет.
Fred Perry, orlovich, proff_q, Safety1st, taulalan, winzh1
21.4.2014, 12:51 Посещение администратора
Цитата(filip @ 21.4.2014, 12:49) *
Не могли бы пояснить, что значит "замена"

Когда человек не может появиться в свой график, он просит другого администратора заменить его.

Создавал лично для себя, так как существует график администраторов.
filip
21.4.2014, 12:28 Посещение администратора
Нужно было проверять посещаемость своих администраторов, создал плагин который записывает когда админ: заходит\выходит\вступает на замену(у меня так же есть личный график).

В логах пишется карта\время\ник.

Сохранение логов идет по:
1)Нику администратора - addons/amxmodx/log_sm/users/&ИМЯ_АДМИНА%.txt
2)Общая - addons/amxmodx/log_sm/global_%МЕСЯЦ%_%ДЕНЬ%.txt

Также, нужно создать папки log_sm и log_sm/users в amxmodx

Чтобы администратор вступил на замену, в консоль нужно написать zamena.

[attachment=24851:logs_vision.sma]
dimka198, filip, proff_q, ThisIsSparta, trollface, zefn
16.4.2014, 23:27 Проверку на к-во гранат
Цитата(Fred Perry @ 16.4.2014, 23:18) *
Первый вопрос:
get_user_weapon проверяю то что в руках или то что в инвентаре ?

Код
Проверка на игрока идет, внизу по ссылке там есть пример.

А вот от меня как это сделать
//25 = CSW_FLASHBANG
//clip нужно смотреть, но вроде 0
//ammo = 0 или 1 или 2

new weapon = get_user_weapon(25,0,1) //проверка на 1 гранату

if(weapon == get_user_weapon(id,clip,ammo)) //проверка на 1 гранату в инвентаре
{

}


Цитата(Fred Perry @ 16.4.2014, 23:18) *
Второй вопрос:
Не понятный этот кусок
Код
public fw_SetModel(entity, const model[])
{
//в нужном if'e, когда выкидывает гранату
g_fb_c[id]--;
//
}

Как зафиксировать выкидывание гранаты?

Там где присваивается W_MODEL. Я дал пример из ZP4.3 исходника.
Fred Perry
16.4.2014, 23:03 Проверку на к-во гранат
Цитата(Fred Perry @ 16.4.2014, 22:54) *
ЗП, но в принципе под паблик тоже можно. Не вижу разницы. Сам мод переделает флешки в frost nade


1й способ
Код
new g_fb_c[33] = { 0 };

//..где идет покупка гранаты
g_fb_c[id]++;
//

public fw_SetModel(entity, const model[])
{
//в нужном if'e, когда выкидывает гранату
g_fb_c[id]--;
//
}

//Проверка на кол-во
if(g_fb_c[id] == 1) // 1 граната
{

}
else if(g_fb_c[id] == 2) // 2 гранаты
{

}
else // если нету гранат
{

}


2й способ

http://amxxmodx.ru/core/amxmodxinc/362-get...ka-v-rukah.html
Danjkeee^, Fred Perry
6.4.2014, 15:11 Exes-vip sell
Цитата(TeamPlay @ 6.4.2014, 15:10) *
Закрывают контору)

пруф? либо просто хотим таким образом пошутить?
stefkone, zefn
5.4.2014, 20:38 Выдача гранаты
Цитата(Fred Perry @ 5.4.2014, 20:34) *
Всем здарова.

Суть плагина - должен выдавать пак гранат.

Проблема, должно вроде же выдавать 2 флеши, но не выдает. В чем проблема или я что-то не так делаю
Кусок когда с выдачей
Код
            if(user_has_weapon(player, CSW_FLASHBANG))
            {
                static frost
                frost = cs_get_user_bpammo(player, CSW_FLASHBANG)
                cs_set_user_bpammo(player, CSW_FLASHBANG, frost + 2)
            }

Исходник
Код
#include <amxmodx>
#include <fakemeta>
#include <cstrike>
#include <zombieplague>

#define PLUGIN "[ZP] Pack Of Granades"
#define VERSION "1.0"
#define AUTHOR "unnamed"

new g_enabled
new g_pack_grenades
new const g_cost = 5

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    g_enabled = register_cvar("zp_pack_grenades", "1")
    g_pack_grenades = zp_register_extra_item("packet", g_cost, ZP_TEAM_HUMAN)
}

public zp_extra_item_selected(player, itemid)
{
    if (itemid == g_pack_grenades)
    {
        if (get_pcvar_num(g_enabled)) {
            if(user_has_weapon(player, CSW_HEGRENADE))
            {
                static napalm
                napalm = cs_get_user_bpammo(player, CSW_HEGRENADE)
                cs_set_user_bpammo(player, CSW_HEGRENADE, napalm + 1)
            }
            else
            {
                fm_give_item(player, "weapon_hegrenade")
            }
            
            if(user_has_weapon(player, CSW_FLASHBANG))
            {
                static frost
                frost = cs_get_user_bpammo(player, CSW_FLASHBANG)
                cs_set_user_bpammo(player, CSW_FLASHBANG, frost + 2)
            }
            else
            {
                fm_give_item(player, "weapon_flashbang")
            }
            
            if(user_has_weapon(player, CSW_SMOKEGRENADE))
            {
                static flare
                flare = cs_get_user_bpammo(player, CSW_SMOKEGRENADE)
                cs_set_user_bpammo(player, CSW_SMOKEGRENADE, flare + 1)
            }
            else
            {
                fm_give_item(player, "weapon_smokegrenade")
            }
            

        }
        else
        {
            static ammopacks
            ammopacks = zp_get_user_ammo_packs(player)
            zp_set_user_ammo_packs(player, ammopacks + g_cost)
        }
    }
}

stock fm_give_item(id, const item[])
{
    static ent
    ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, item))
    if (!pev_valid(ent)) return;
    
    static Float:originF[3]
    pev(id, pev_origin, originF)
    set_pev(ent, pev_origin, originF)
    set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN)
    dllfunc(DLLFunc_Spawn, ent)
    
    static save
    save = pev(ent, pev_solid)
    dllfunc(DLLFunc_Touch, ent, id)
    if (pev(ent, pev_solid) != save)
        return;
    
    engfunc(EngFunc_RemoveEntity, ent)
}

Должно сразу выдавать 2 флеши? или если есть флеша увеличивать значение на 1?


А пока проверь вот так вот просто,
Код
  else
            {
                fm_give_item(player, "weapon_flashbang")
            }
==========>
  else
            {
                fm_give_item(player, "weapon_flashbang")
                fm_give_item(player, "weapon_flashbang")
            }


По моему ограничение в самом ЗП есть на гранаты, сейчас гляну.
Fred Perry
5.4.2014, 20:29 Случайная покупка скаута
Описание: Иногда люди случайно покупают скаут на паблик серверах: вот мини-хак, чтобы вернуть деньги за скаут, если купили случайно.

dntknw.gif Есть одно но, если человек нашёл скаут и начался следующий раунд, он может его вернуть и получить деньги :3

Исходник
Код
#include <amxmodx>
#include <fun>
#include <cstrike>

#define PLUGIN "BUY SCOUT"
#define VERSION "1.0"
#define AUTHOR "s0h"

new rnt; //проверка на старт раунда
new stopdispay[33]; // Игроки которые не нужен показ скаута

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)

    register_event("HLTV", "RoundStart", "a", "1=0", "2=0")
    register_event("CurWeapon","CurrentWeapon","be","1=1")
}

public RoundStart(id)
{
    rnt = true;
    
    set_task(15.0, "check_rnd");
}

public check_rnd()
    rnt = false;


public CurrentWeapon(id)
{
     if(read_data(2) != CSW_SCOUT)
          return;
          
    if(rnt && !stopdispay[id])
        scout(id);
}

public scout(id)
{
    new i_Menu = menu_create("\rСлучайно купили SCOUT?:", "scout_h")

    menu_additem(i_Menu, "\wДа", "1", 0)
    menu_additem(i_Menu, "\wНет", "2", 0)

    menu_setprop(i_Menu, MPROP_EXIT, MEXIT_ALL)

    menu_display(id, i_Menu, 0)
}

public scout_h(id, menu, item)
{
    if (item == MENU_EXIT)
    {
        menu_destroy(menu)
        
        return PLUGIN_HANDLED
    }

    new s_Data[6], s_Name[64], i_Access, i_Callback

    menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

    new i_Key = str_to_num(s_Data)

    switch(i_Key)
    {
        case 1:
        {
            strip_user_weapons(id);
            give_item(id, "weapon_knife");
            give_item(id, "weapon_usp");
            cs_set_user_money(id, cs_get_user_money(id) + 2550, 1);
            menu_destroy(menu);
            return PLUGIN_HANDLED
        }
        case 2:
        {
            stopdispay[id] = true;
            return PLUGIN_HANDLED
        }

    }

    // Уничтожение меню
    menu_destroy(menu)
    return PLUGIN_HANDLED
}

[attachment=24521:scout_buy.sma]
Bloo, filip
4.4.2014, 17:06 Помогите с сборкой
Цитата(f1rstik @ 4.4.2014, 13:13) *
Хостинг multiplay.ru, купил сборку zombie CSO за приличную сумму, установил сегодня на хостинг, захожу а там не зомби ксо а обычный классик есть некоторые плагины, но в основном это классик
Я уже всю голову сломал не знаю что делать


Продовец запускал на таком же хостинге но вот что он говорит:


Переписка
Артем (ПРОДОВЕЦ)

данный хостинг не подходит для этой сборки, а точнее для полной комплектации сборки, база данных mysql вымахивается и не дает всем плагинам корректно работать. Пришлось некоторые плагины убрать, и перенастроить немного сервер. Все почти тоже самое, нет только уровней и некоторых эффектов, так же пришлось отключить некоторые плагины. Либо арендуй сервер на сиса, либо пользуйся тем что есть... больше ничем помочь не могу
база данных имеет ограничение
поэтому вымахивается

Артём(я)
у вас тоже на этом хостинге стоял
02.04.14

Артем(ПРОДОВЕЦ)
мне ставил приятель который работает на этом хосте он мне снчял ограничения
02.04.14
если точнее то он мне выдал отдельную БД

А почему вы решили купить у этого человек и за сколько? Вы перед этим хоть что-то о нем читали ? (Отзывы\рекомендации)?

Попахивает разводом особенно вот это -> "мне ставил приятель который работает на этом хосте он мне снчял ограничения", звучит как лепит пятилетнего ребенка.
Bloo
4.4.2014, 11:15 Посоветуйте сериал
Декстер
stefkone
2.4.2014, 15:18 Требуется VIP
Если не найдешь, смогу написать :)
Yashaka
1.4.2014, 21:49 Шантаж\Угрозы bamboo4aa'и
Если я и создал 2 темы примерно одинакового характера , это не дает тебе право оскор***ь меня, все мои слова я подтверждаю фактами\доказательствами!

Цитата(gtwk @ 1.4.2014, 21:41) *
Может вы нас разыгрываете вдвоем?

Увы , но нет. Под всеми моими словами я подписываюсь.
gtwk
1.4.2014, 20:14 Шантаж\Угрозы bamboo4aa'и
Профиль: https://c-s.net.ua/forum/index.php?showuser=14815

Начнем с того что человек приобрел мою сборку, она ему не понравилась ПОСЛЕ приобретения, но все еще хуже..

Человек выплатил только 2000 рублей за мое творение, вместо 4000, так как у него не было, его босс(хозяин) мог выдать только 2000 рублей на сервера(слушаем телефонную запись снизу), а через 2 месяца он бы выплатил всю оставшуюся сумму. Человек проверенный поэтому я согласился.
[attachment=24408:4.png]

Теперь ему сборка не понравилась он ее удалил и начал угрожать , шантажировать .
[attachment=24409:Угроза.png]

Он говорит что я ему соврал и он верил моим словами и он ничего не попробовал, а купил он сервер из-за моих красивых слов , якобы я соврал.
[attachment=24410:попытка_2.png]

Пруф что это не так:
[attachment=24411:проба.png]

Всю сумму он не выплатил хотя под своими словами он подписывался.
[attachment=24412:1.png]
[attachment=24413:2.png]
[attachment=24414:3.png]

Первая телефонная запись : http://rghost.ru/53694790

Что ему якобы не понравилось: [attachment=24415:8.png]

Все технические нюансы я выполнял, фиксил и переделывал что он хотел. Теперь же ему не понравился геемплей и он захотел полностью переделать сборку, я сказал что это невозможно и я выполняю только ТЕХНИЧЕСКУЮ работу (Установка\фикс багов\Обновления)
[attachment=24416:технические_нюансі.png]

Вначале он вообще пытался сделать так чтобы я поставил ему сервер, А ПОТОМ он заплатил деньги. Все это мы слышим на второй телефонной записи.
Вторая запись: http://rghost.ru/53695196

О возврате мы вообще не говори, и не обсудили этот момент. ( Я не считаю себя виноватым, это было в его интересах, теперь же мне он угрожает)

Я знал изначально что в этом всем есть подвох поэтому собирал сразу все материалы.

Видимо Бамбучка после покупки мода, на 2-й день хотел окупить всю ее стоимость, но у него не вышло, вот и решил хоть как-то выкрутиться.

Всю свою работу я выполнил, даже больше, сам договаривался с тех.поддержкой, сам решал другие нюансы. От технической поддержки не отказывался.

Фиксил найденные баги сразу:
[attachment=24417:фиксил_баг.png]
[attachment=24418:баг2.png]

Я все делал и от своих слов не отказывался, на мороз не падал. Но всю свою сумму денег я не получил, теперь мне еще угрожают и шантажируют.

Тема создана в целях защиты и поддержки.

Теперь он говорит что сборку удалил, хотя она до сих пор стоит на его сервере.
[attachment=24422:сборрка.png]
[attachment=24423:1_2_3.png]
A1on3, MYXA, OriGinaL, Safety1st, stefkone, taulalan, TEROR^, werba
1.4.2014, 16:18 Шутку для сайта сделали..
Цитата(HoHoL @ 1.4.2014, 16:12) *
Найс , а с чего бы тогда в конце перекинуло в вк , с сообщением изменен пароль ?
Даже если это и прикол , всё равно бред .

Я уже переписываюсь с твоей девушкой


А вот и пруфы, что это безобидная шутка.
http://vk.com/settings?m=2
http://vk.com/settings?m=6
http://vk.com/settings?m=7
http://vk.com/settings?m=8
http://vk.com/settings?m=11
exec1337

8 страниц V  « 6 7 8