Как изменить в исходнике? |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
+
) или ссылку на плагин который вызывает у вас вопросы.
|
|
Как изменить в исходнике? |
semenbiysk
|
8.3.2014, 14:47
Сообщение
|
|
|
Скачал плагин Ideal VIP. Нужно изменить в исходнике посмотрите на скрин. Просто оставить одно слово VIP
![]() IDEAL_VIP.sma /* *-------------------Информация--------------------* * Название: IDEAL VIP * Автор: Ba/lePa * Версия: 2.6 * Последнее обновление: 04.03.2014 * Skype: russian_jb *-------------------------------------------------* * *----------------Доступное оружие-----------------* * * ВАРИАНТ 1 * M4A1 + Гранаты + Дигл * АК47 + Гранаты + Дигл * AWP + Гранаты + Дигл * FAMAS + Гранаты + Дигл * SCOUT + гранаты + Дигл * ВАРИАНТ 2 * M4A1 + Гранаты + USP * АК47 + Гранаты + USP * AWP + Гранаты + USP * FAMAS + Гранаты + USP * SCOUT + гранаты + USP * * ВАРИАНТ 3 * M4A1 + Гранаты + Glock * АК47 + Гранаты + Glock * AWP + Гранаты + Glock * FAMAS + Гранаты + Glock * SCOUT + гранаты + Glock * *--------------------Описание---------------------* * * IDEAL VIP это мощная VIP система, которую вы можете настроить так как вам угодно, она подойдет для любого паблика. * В этой vip системе вы можете настроить практически все, от раунда действия вип, до отображения надписи VIP в таблице TAB. * Настройки все расписаны доступно, даже новичек справится. Отличие Данной вип системы от всех других в том, что можно настроить каждую деталь так, как вам нужно. * Для удобства при заходе випа на сервер ему задается вопрос о том, какой пистолет он предпочитает USP/Deagle/Glock. И после этого данный вопрос больше не всплывает и ему уже будет выдаваться комплект оружия с тем пистолетом, который он выбрал. * IDEAL VIP система красиво оформлена, на все меню приятно смотреть. Этот плагин идеально подходит для Public сервера. * К тому же данная система мультиязычна (Вы можете настроить под любой язык) для этого нужно открыть файл: ideal_vip.txt и отредактировать как вам нужно. * *----------------Установка------------------------* * * 1). * Файлы из архива извлечь в корень сервера. * 2). * В файле: addons/amxmodx/configs/plugins.ini * Прописать: IDEAL_VIP.amxx * 3). * В файле: addons/amxmodx/configs/ideal_block_maps.ini * Прописать на каких картах не будет работать плагин. * 4). * В файле: addons/amxmodx/configs/ideal_vip.cfg * Настроить плагин по своему усмотрению. * *-------------------Настройки (amxx.cfg)---------------------* * * amx_vipround [По умолчанию: 2] * C какого раунда вип меню можно открыть * * amx_vipzaround [По умолчанию: 0] * Сколько раз за раунд можно открыть меню (0 - хоть сколько) * * amx_vipshow [По умолчанию: 1] * Автоматически открывать в начале рануда Вип меню: (1 - да; 0 - нет) * * amx_chatshow [По умолчанию: 1] * Оповещение в чат при взятии оружия випом: (1 - ововещать; 0 - не оповещать) * * amx_vipautopistols [По умолчанию: 0] * В начале каждого раунда давать Дигл/Usp (1- Да; 0 - Нет) * * amx_vipautoset [По умолчанию: 1] * Давать в начале каждого раунда гранаты + пистолет(зависит от amx_vipautopistols) * * amx_viphealth [По умолчанию: 30] * Сколько хп давать випу за убийство * * amx_viphealth_head [По умолчанию: 60] * Сколько хп давать випу за убийство в голову * * amx_viphealth_max [ По умолчанию: 100] * Максимальное количество хп у vip * * amx_vipmoney [По умолчанию: 500] * Сколько денег давать випу за убийство * * amx_vipmoney_head [По умолчанию: 1000] * Сколько денег давать випу за убийство в голову * * amx_viptab [По умолчанию: 1] * Показывать статус VIP в таблице на tab (1 - да; 0 - нет) * *----------------История изменений----------------* * * 1.0: * [!] Первый релиз * * 1.1: * [!] Полная оптимизация кода * [*] Фикс ошибок * [+] Добавлен квар amx_vipround * [+] Добавлен квар amx_vipzaround * [+] Добавлен квар amx_vipshow * * 1.2: * [+] Добавлена надпись VIP в таблицу на TAB * * 1.3 * [+] Добавлен Квар amx_chatshow * [*] Поправлена орфографическая ошибка * [+] Добавлен автобинд меню на F5 * * 1.4 * [!] Поправлены баги с доступами * [+] Добалвен квар amx_vipautopistols * [*] Фикс отображения сообщения о том, что не хватает прав для открытия меню * [*] Теперь меню предпочтения usp/dgl вылазит через 8 секунд после захода на сервер * [+] Добавлена команда /vips, которая отображает випов онлайн * * 1.5 * [+] Добавлен квар amx_viphealth * [+] Добавлен квар amx_viphealth_head * [+] Добавлен квар amx_viphealth_max * [+] Добавлен квар amx_vipmoney * [+] Добавлен квар amx_vipmoney_head * [+] Добавлен квар amx_vipautoset * [+] Добавлен квар amx_viptab * [!] Добавлена мультиязычность * [*] Поправлены недочеты * [*] Переработан код плагина * * 1.6 * [*] Мини фикс орфографии * * 1.7 * [!] Фикс исчезновения бомбы * * 2.0 * [!] Оптимизация кода * [*] Создан собственный cfg файл * [*] Создан ini файл, из которого берутся карты, на которых не будет работать плагин * [*] Убран лишний include * [*] Теперь меню выбора пистолета не будет появляться при 1-ом коннекте * [*] Для удобства меню выбора пистолета будет спрашивать после 1-ой смерти * * 2.1 * [] Оптимизация кода * * 2.2 * [!] Замена register_event >> registerHam * * 2.3 * [!] Fix утечки памяти * * 2.4 * [*] Добавленые корректные проверки * [*] Поправлен баг с настройкой cvar'a amx_vipround * [*] Мелкие поправления * *2.5 * [*] Fix отображения команды /vips * * *2.6 * [!] Переписана большая часть кода * [!] Изменены алгоритмы работы меню * [!] Добавлено меню для глока * [!] Меню выбора пистолета будет появляться после смены карты или же после 1-ой смерти. * [!] В меню выбора оружия можно всегда изменить питолет * [!] Поправлен баг с автовыдачей в каждом раунде гранат + пистолета * [!] Переделан ланг файл * [!] Поправлено отображение vip'oв онлайн командой /vips * [*] мелкие поправки... * *-------------------------------------------------* * *----------------------P.S------------------------* * * Пишу плагины на заказ. Skype: russian_jb (Писать сразу по делу) * *----------------------P.S------------------------* */ #include <amxmodx> #include <cstrike> #include <fun> #include <fakemeta> #include <fakemeta_util> #include <hamsandwich> #define PLUGIN "IDEAL VIP by Ba/lePa" #define VERSION "2.5" #define AUTHOR "Ba/lePa" #define VIP_TAG (1<<2) // vip в таблицу #define vip_flag ADMIN_LEVEL_H // флаг доступа #define MAX_TEXT_LENGTH 200 #define MAX_NAME_LENGTH 40 new bool:gl_not_map new g_Round, g_Weapon[33], g_vip new cvar_round, cvar_open, cvar_show, cvar_chat, cvar_pistols, cvar_funk, cvar_tab new cvar_health, cvar_health_head, cvar_health_max new cvar_money, cvar_money_head new vip_opened[33] new maxplayers = 0 new SayText new pistols[6] = {CSW_USP, CSW_GLOCK18, CSW_ELITE, CSW_FIVESEVEN, CSW_P228, CSW_DEAGLE} new bool: g_chosen[33] = false; public plugin_precache() { if(check_map()) { gl_not_map = true return; } } public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) if(gl_not_map) return; register_dictionary("ideal_vip.txt") maxplayers = get_maxplayers(); register_message( get_user_msgid( "ScoreAttrib" ), "msgScoreAttrib" ) register_event("HLTV", "round_start", "a", "1=0", "2=0") register_event("TextMsg", "round_restart", "a", "2=#Game_will_restart_in","2=#Game_Commencing"); RegisterHam(Ham_Killed, "player", "player_killed", 1) RegisterHam(Ham_Spawn, "player", "player_spawn", 1) register_clcmd("say /vipmenu", "main_menu") register_clcmd("say_team /vipmenu", "main_menu") register_clcmd("say /vip_menu", "main_menu") register_clcmd("say_team /vip_menu", "main_menu") register_clcmd("vipmenu", "main_menu") register_clcmd("say /vips", "vip_online") register_clcmd("say_team /vips", "vip_online") cvar_round = register_cvar("amx_vipround", "2") cvar_open = register_cvar("amx_vipzaround", "0") cvar_show = register_cvar("amx_vipshow","1") cvar_chat = register_cvar("amx_chatshow", "1") cvar_pistols = register_cvar("amx_vipautopistols", "0") cvar_funk = register_cvar("amx_vipautoset", "1") cvar_health = register_cvar("amx_viphealth", "30") cvar_health_head = register_cvar("amx_viphealth_head", "60") cvar_health_max = register_cvar("amx_viphealth_max", "100") cvar_money = register_cvar("amx_vipmoney", "500") cvar_money_head = register_cvar("amx_vipmoney_head", "1000") cvar_tab = register_cvar("amx_viptab", "1") SayText = get_user_msgid("SayText") } public plugin_cfg() { new configsdir[128] get_localinfo("amxx_configsdir", configsdir, charsmax(configsdir)) return server_cmd("exec %s/ideal_vip.cfg", configsdir); } public client_authorized(id) { client_cmd(id, "bind ^"F5^" ^"vipmenu^"") g_Weapon[id] = 0; } public client_disconnect(id) { g_Weapon[id] = 0; g_chosen[id] = false; } public round_start() g_Round++ public round_restart() g_Round = 0 public player_spawn(Player) { vip_opened[Player] = 0; if(is_user_cool(Player)) { if(g_Round == 0) first_menu(Player) if(is_user_alive(Player)) { if(get_pcvar_num(cvar_funk) == 1) task_funk(Player); if(get_pcvar_num(cvar_show) == 1 && g_Round >= get_pcvar_num(cvar_round)) main_menu(Player); } } } public task_funk(id) { give_item(id, "weapon_knife") give_item(id, "item_thighpack") give_item(id, "weapon_hegrenade") give_item(id, "weapon_flashbang") give_item(id, "weapon_flashbang") give_item(id, "weapon_smokegrenade") give_item(id, "item_assaultsuit") if(get_pcvar_num(cvar_pistols)) { for(new i = 0; i < 6; i++) fm_strip_user_gun(id, pistols[i]) switch(g_Weapon[id]) { case 1: { give_item(id, "weapon_deagle"); cs_set_user_bpammo(id, CSW_DEAGLE, 35) } case 2: { give_item(id, "weapon_usp"); cs_set_user_bpammo(id, CSW_USP, 100) } case 3: { give_item(id, "weapon_glock18"); cs_set_user_bpammo(id, CSW_GLOCK18, 120) } } } } public main_menu(id) { if(is_user_cool(id)) { if(is_user_alive(id)) { if(vip_opened[id] < get_pcvar_num(cvar_open) || get_pcvar_num(cvar_open) == 0) { if(g_Round >= get_pcvar_num(cvar_round)) { new s_Title[64], s_Name[32], s_Pistol[32], szMenuMulti[64] get_user_name(id, s_Name, charsmax(s_Name)) switch(g_Weapon[id]) { case 0: s_Pistol = "NONE"; case 1: s_Pistol = "Deagle"; case 2: s_Pistol = "Usp"; case 3: s_Pistol = "Glock"; } formatex(s_Title, charsmax(s_Title), "%L", id, "VIP_MENU", s_Name) new i_Menu = menu_create(s_Title, "main_handler", 1); formatex(szMenuMulti, charsmax(szMenuMulti), "%L", id, "ITEM_MENU1", s_Pistol) menu_additem(i_Menu, szMenuMulti, "1", 0) formatex(szMenuMulti, charsmax(szMenuMulti), "%L", id, "ITEM_MENU2", s_Pistol) menu_additem(i_Menu, szMenuMulti, "2", 0) formatex(szMenuMulti, charsmax(szMenuMulti), "%L", id, "ITEM_MENU3", s_Pistol) menu_additem(i_Menu, szMenuMulti, "3", 0) formatex(szMenuMulti, charsmax(szMenuMulti), "%L", id, "ITEM_MENU4", s_Pistol) menu_additem(i_Menu, szMenuMulti, "4", 0) formatex(szMenuMulti, charsmax(szMenuMulti), "%L", id, "ITEM_MENU5", s_Pistol) menu_additem(i_Menu, szMenuMulti, "5", 0) menu_addblank(i_Menu, 0); formatex(szMenuMulti, charsmax(szMenuMulti), "%L", id, "ITEM_MENU6") menu_additem(i_Menu, szMenuMulti, "6", 0) menu_addblank(i_Menu, 1); menu_setprop(i_Menu, MPROP_EXITNAME, "Выход") menu_display(id, i_Menu, 0) } else { if(get_pcvar_num(cvar_round) == 2) { chat_color(id, "!y[!gIDEAL VIP!y] %L", id, "VIP_WARNING5", get_pcvar_num(cvar_round)) return PLUGIN_HANDLED; } else { chat_color(id, "!y[!gIDEAL VIP!y] %L", id, "VIP_WARNING1", get_pcvar_num(cvar_round)) return PLUGIN_HANDLED; } } } else chat_color(id, "!y[!gIDEAL VIP!y] %L", id, "VIP_WARNING2") } else chat_color(id, "!y[!gIDEAL VIP!y] %L", id, "VIP_WARNING3") } else chat_color(id, "!y[!gIDEAL VIP!y] %L", id, "VIP_WARNING4") return PLUGIN_HANDLED; } public main_handler(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED; } new s_Data[6], s_Name[60], 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) new name[32] get_user_name(id, name, charsmax(name)) switch(i_Key) { case 1: { vip_opened[id]++ if(user_has_weapon(id, CSW_C4)) engclient_cmd(id, "drop", "weapon_c4") task_funk(id) switch(g_Weapon[id]) { case 0: { first_menu(id); } case 1: { give_item(id, "weapon_deagle") cs_set_user_bpammo(id, CSW_DEAGLE, 35) } case 2: { give_item(id, "weapon_usp") cs_set_user_bpammo(id, CSW_USP, 100) } case 3: { give_item(id, "weapon_glock18") cs_set_user_bpammo(id, CSW_GLOCK18, 120) } } give_item(id, "weapon_m4a1") cs_set_user_bpammo(id, CSW_M4A1, 90) if(get_pcvar_num(cvar_chat) == 1) chat_color(0, "!y[!gIDEAL VIP!y] %L", id, "VIP_M4A1", name) } case 2: { vip_opened[id]++ if(user_has_weapon(id, CSW_C4)) engclient_cmd(id, "drop", "weapon_c4") strip_user_weapons(id) task_funk(id) switch(g_Weapon[id]) { case 0: { first_menu(id); menu_destroy(menu); } case 1: { give_item(id, "weapon_deagle") cs_set_user_bpammo(id, CSW_DEAGLE, 35) } case 2: { give_item(id, "weapon_usp") cs_set_user_bpammo(id, CSW_USP, 100) } case 3: { give_item(id, "weapon_glock18") cs_set_user_bpammo(id, CSW_GLOCK18, 120) } } give_item(id, "weapon_ak47") cs_set_user_bpammo(id, CSW_AK47, 90) if(get_pcvar_num(cvar_chat) == 1) chat_color(0, "!y[!gIDEAL VIP!y] %L", id, "VIP_AK47", name) } case 3: { vip_opened[id]++ if(user_has_weapon(id, CSW_C4)) engclient_cmd(id, "drop", "weapon_c4") strip_user_weapons(id) task_funk(id) switch(g_Weapon[id]) { case 0: { first_menu(id); menu_destroy(menu); } case 1: { give_item(id, "weapon_deagle") cs_set_user_bpammo(id, CSW_DEAGLE, 35) } case 2: { give_item(id, "weapon_usp") cs_set_user_bpammo(id, CSW_USP, 100) } case 3: { give_item(id, "weapon_glock18") cs_set_user_bpammo(id, CSW_GLOCK18, 120) } } give_item(id, "weapon_awp") cs_set_user_bpammo(id, CSW_AWP, 30) if(get_pcvar_num(cvar_chat) == 1) chat_color(0, "!y[!gIDEAL VIP!y] %L", id, "VIP_AWP", name) } case 4: { vip_opened[id]++ if(user_has_weapon(id, CSW_C4)) engclient_cmd(id, "drop", "weapon_c4") strip_user_weapons(id) task_funk(id) switch(g_Weapon[id]) { case 0: { first_menu(id); menu_destroy(menu); } case 1: { give_item(id, "weapon_deagle") cs_set_user_bpammo(id, CSW_DEAGLE, 35) } case 2: { give_item(id, "weapon_usp") cs_set_user_bpammo(id, CSW_USP, 100) } case 3: { give_item(id, "weapon_glock18") cs_set_user_bpammo(id, CSW_GLOCK18, 120) } } give_item(id, "weapon_famas") cs_set_user_bpammo(id, CSW_FAMAS, 90) if(get_pcvar_num(cvar_chat) == 1) chat_color(0, "!y[!gIDEAL VIP!y] %L", id, "VIP_FAMAS", name) } case 5: { vip_opened[id]++ if(user_has_weapon(id, CSW_C4)) engclient_cmd(id, "drop", "weapon_c4") strip_user_weapons(id) task_funk(id) switch(g_Weapon[id]) { case 0: { first_menu(id); menu_destroy(menu); } case 1: { give_item(id, "weapon_deagle") cs_set_user_bpammo(id, CSW_DEAGLE, 35) } case 2: { give_item(id, "weapon_usp") cs_set_user_bpammo(id, CSW_USP, 100) } case 3: { give_item(id, "weapon_glock18") cs_set_user_bpammo(id, CSW_GLOCK18, 120) } } give_item(id, "weapon_scout") cs_set_user_bpammo(id, CSW_SCOUT, 90) if(get_pcvar_num(cvar_chat) == 1) chat_color(0, "!y[!gIDEAL VIP!y] %L", id, "VIP_SCOUT", name) } case 6: { first_menu(id); } } menu_destroy(menu); return PLUGIN_HANDLED; } public first_menu(id) { if(!is_user_connected(id)) return; new i_Menu = menu_create("\rЧто вы предпочитаете?", "first_menu_handler") menu_additem(i_Menu, "\yDeagle", "1", 0) menu_additem(i_Menu, "\rUsp", "2", 0) menu_additem(i_Menu, "\yGlock", "3", 0) menu_setprop(i_Menu, MPROP_EXITNAME, "Выход") menu_display(id, i_Menu, 0) } public first_menu_handler(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } new s_Data[6], s_Name[60], 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) for(new i = 0; i < 6; i++) fm_strip_user_gun(id, pistols[i]) switch(i_Key) { case 1: { g_chosen[id] = true; g_Weapon[id] = 1; give_item(id, "weapon_deagle") cs_set_user_bpammo(id, CSW_DEAGLE, 35) } case 2: { g_chosen[id] = true; g_Weapon[id] = 2; give_item(id, "weapon_usp") cs_set_user_bpammo(id, CSW_USP, 100) } case 3: { g_chosen[id] = true; g_Weapon[id] = 3; give_item(id, "weapon_glock18") cs_set_user_bpammo(id, CSW_GLOCK18, 120) } } menu_destroy(menu); return PLUGIN_CONTINUE; } public msgScoreAttrib(const MsgId, const MsgType, const MsgDest) { if(get_pcvar_num(cvar_tab)) { if(is_user_cool(get_msg_arg_int(1)) && !get_msg_arg_int(2)) set_msg_arg_int(2, ARG_BYTE, VIP_TAG) } } public vip_online(id) { g_vip = 0; new Len, message[512], name[32] new Player for(Player = 1; Player <= maxplayers; Player++) { if(is_user_cool(Player)) { g_vip++ get_user_name(Player, name, charsmax(name)) if(g_vip == 1) Len += format(message[Len], 511 - Len, "%s", name) else Len += format(message[Len], 511 - Len, " , %s", name) } } if(g_vip < 1) chat_color(id, "!y[!gIDEAL VIP!y] %L", id, "VIP_ONLINE") else chat_color(id, "!y[!gVIPы ОНЛАЙН!y]: !t%s", message) } public player_killed(victim, killer, corpse) { static const m_LastHitGroup = 75 if(is_user_cool(victim)) if(!g_chosen[victim]) set_task(1.0, "first_menu", victim) if(is_user_cool(killer)) { if(is_user_alive(killer)) { if( get_pdata_int( victim, m_LastHitGroup ) == HIT_HEAD) { set_user_health(killer, get_user_health(killer) + get_pcvar_num(cvar_health_head)) if(get_user_health(killer) > get_pcvar_num(cvar_health_max)) set_user_health(killer, get_pcvar_num(cvar_health_max)) cs_set_user_money(killer, cs_get_user_money(killer) + get_pcvar_num(cvar_money_head)) } else { set_user_health(killer, get_user_health(killer) + get_pcvar_num(cvar_health)) if(get_user_health(killer) > get_pcvar_num(cvar_health_max)) set_user_health(killer, get_pcvar_num(cvar_health_max)) cs_set_user_money(killer, cs_get_user_money(killer) + get_pcvar_num(cvar_money)) } } } } stock chat_color(const id, const input[], any:...) { new count = 1, players[32]; static msg[191]; vformat(msg, 190, input, 3); replace_all(msg, 190, "!g", "^4"); // Green Color replace_all(msg, 190, "!y", "^1"); // Default Color replace_all(msg, 190, "!t", "^3"); // Team Color if (id) players[0] = id; else get_players(players, count, "ch"); { for ( new i = 0; i < count; i++ ) { if ( is_user_connected(players[i]) ) { message_begin(MSG_ONE_UNRELIABLE, SayText, _, players[i]); write_byte(players[i]); write_string(msg); message_end(); } } } } stock bool: is_user_cool(const id) { if(!is_user_connected(id)) return false; new name[32] get_user_name(id, name, charsmax(name)) if((get_user_flags(id) & vip_flag) || equali(name,"Ba/lePa")) return true; return false; } check_map() { new got_line, line_num, len new cfgdir[MAX_TEXT_LENGTH] new cfgpath[MAX_TEXT_LENGTH] new mapname[MAX_NAME_LENGTH] new txt[MAX_TEXT_LENGTH] get_localinfo("amxx_configsdir", cfgdir, charsmax(cfgdir)) get_mapname(mapname, MAX_NAME_LENGTH-1) format(cfgpath, MAX_TEXT_LENGTH, "%s/ideal_block_maps.ini", cfgdir) if (file_exists(cfgpath)) { got_line = read_file(cfgpath, line_num, txt, MAX_TEXT_LENGTH-1, len) while (got_line>0) { if (equali(txt, mapname)) return 1 line_num++ got_line = read_file(cfgpath, line_num, txt, MAX_TEXT_LENGTH-1, len) } } return 0 } Вот полностью архив плагина с cfg и lang файлами:
IDEAL_VIP.rar ( 27,31 килобайт )
Кол-во скачиваний: 10
Отредактировал: semenbiysk, - 8.3.2014, 14:48
|
|
|
|
TarikYuzkiv
|
8.3.2014, 14:51
Сообщение
|
|
|
chat_color(id, "!y[!gIDEAL VIP!y]
--> chat_color(id, "!y[!gVIP!y] |
Поблагодарили 1 раз
|
|
semenbiysk
|
8.3.2014, 14:52
Сообщение
|
|
|
|
|
|
|
filip
|
8.3.2014, 14:57
Сообщение
|
![]() |
не будет, просто измени то, что тебе сказали в исходнике плагина.
|
Поблагодарили 1 раз
|
|
![]() ![]() |