Здравствуйте, гость Вход | Регистрация
Наши новости:
|
| Дата поста: | В теме: | За сообщение: | Спасибо сказали: | ||
|---|---|---|---|---|---|
| 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 | Введение в способы идентификации | смысла от данного способа 0 Побольше чем от твоего поста Расскажи, как ты будешь ключик какой то делать каждому игроку уникальный, если файл один? При пермобане создаются 2 файла, который находятся где-то в глубине sound/models чтобы наверняка , плюс добавляем к этому бан по IP\STEAM_ID , получается неплохая вещь, переустановка КС поможет лишь в том случае, что человек знает с чем имеет дело, а обычному школьники который каждый раз перезагружает модем дабы попасть на сервер, в голову такое редко приходит(в частности данный костыль для таких целей и создан). |
Safety1st | ||
| 24.4.2014, 20:23 | Что лучше окупается JB или ZM | Luciferr | |||
| 24.4.2014, 20:19 | Что лучше окупается JB или ZM | Luciferr | |||
| 24.4.2014, 19:54 | Что лучше окупается JB или ZM | Luciferr | |||
| 24.4.2014, 19:27 | Что лучше окупается JB или ZM | 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: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 | Проверку на к-во гранат | Первый вопрос: 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 гранату в инвентаре { } Второй вопрос: Не понятный этот кусок Код public fw_SetModel(entity, const model[]) { //в нужном if'e, когда выкидывает гранату g_fb_c[id]--; // } Как зафиксировать выкидывание гранаты? Там где присваивается W_MODEL. Я дал пример из ZP4.3 исходника. |
Fred Perry | ||
| 16.4.2014, 23:03 | Проверку на к-во гранат | ЗП, но в принципе под паблик тоже можно. Не вижу разницы. Сам мод переделает флешки в 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 | stefkone, zefn | |||
| 5.4.2014, 20:38 | Выдача гранаты | Всем здарова. Суть плагина - должен выдавать пак гранат. Проблема, должно вроде же выдавать 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 | Случайная покупка скаута | Описание: Иногда люди случайно покупают скаут на паблик серверах: вот мини-хак, чтобы вернуть деньги за скаут, если купили случайно. Исходник Код #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 | Помогите с сборкой | Хостинг 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'и | 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 | Шутку для сайта сделали.. | Найс , а с чего бы тогда в конце перекинуло в вк , с сообщением изменен пароль ? Даже если это и прикол , всё равно бред . Я уже переписываюсь с твоей девушкой А вот и пруфы, что это безобидная шутка. 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 | ||