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

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

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

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

Тонкая настройка плагина для vip игроков

, Помогите изменить/настроить плагин
Статус пользователя kolyya
сообщение 17.12.2011, 15:07
Сообщение #1
Стаж: 14 лет

Сообщений: 4
Благодарностей: 1
Полезность: 0

Здравствуйте, у меня небольшая проблема. Хотел сделать настройку vip плагина, но не умею.

Вот исходник плагина

1
Код
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fakemeta>
#include <cstrike>
#include <fun>

#define PLUGIN "VIP"
#define VERSION "3.5"
#define AUTHOR "Extreem"

#define VIP_FLAG ADMIN_LEVEL_H

static const COLOR[] = "^x04" //green
static const CONTACT[] = ""
new maxplayers
new gmsgSayText
new vipsOnline
new health_add
new health_hs_add
new health_max
new nKiller
new nKiller_hp
new nHp_add
new nHp_max
new giveHp
new g_awp_active
//Menu Items
new p_Menu_Enable, p_Give_AK47, p_Give_M4A1, p_Give_AWP


new bool:HasC4[33]

//Start Items
new p_Start_Deagle, p_Start_He, p_Start_Flash, p_Start_Smoke, round_number, g_maxplayers, p_Plugin_Exist, p_Plugin_Exist_Time
public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_clcmd("say /vip", "vipinfo")
    register_dictionary("viplang.txt")
    new configsDir[64]
    get_configsdir(configsDir, 63)
    server_cmd("exec %s/vip_config.cfg", configsDir)
    register_event("CurWeapon", "event_CurWeapon", "be", "1=1")
    register_clcmd("awp","HandleCmd")
    g_awp_active = register_cvar("awp_only_vips", "1")
    giveHp = register_cvar("give_kill_hp", "1")
    health_add = register_cvar("kill_hp", "5")
    health_hs_add = register_cvar("kill_hs_hp", "10")
    health_max = register_cvar("max_hp", "100")
    register_event("DeathMsg", "hook_death", "a", "1>0")
    p_Menu_Enable = register_cvar("menu_enable", "1")
    p_Give_AK47 = register_cvar("menu_ak47", "1")
    p_Give_M4A1 = register_cvar("menu_m4a1", "1")
    p_Give_AWP = register_cvar("menu_awp", "1")
    p_Start_Deagle = register_cvar("start_deagle", "1")
    p_Start_He = register_cvar("start_hegrenade", "1")
    p_Start_Flash = register_cvar("start_flash", "2")
    p_Start_Smoke = register_cvar("start_smokegrenade","1")
    p_Plugin_Exist = register_cvar("plugin_exist", "1")
    p_Plugin_Exist_Time = register_cvar("plugin_exist_time", "60.0")
    vipsOnline = register_cvar("show_vips", "1")
    RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1);
    register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
    register_event("TextMsg", "event_game_restart", "a", "2=#Game_Commencing", "2=#Game_will_restart_in")
    g_maxplayers=get_maxplayers()
    maxplayers = get_maxplayers()
    register_clcmd("say", "handle_say")
    register_cvar("amx_contactinfo", CONTACT, FCVAR_SERVER)
    gmsgSayText = get_user_msgid("SayText")
}
stock ChatColor(const id,const input[],any:...)
{
    new count = 1,players[32]
    static msg[191]
    vformat(msg,190,input,3)
    
    replace_all(msg,190,"!g","^4")
    replace_all(msg,190,"!y","^1")
    replace_all(msg,190,"!team","^3")
    replace_all(msg, 190,"!team2","^0")
    
    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,get_user_msgid("SayText"),_,players[i])
                write_byte(players[i])
                write_string(msg)
                message_end()
            }
        }
    }
}
public HandleCmd(id){
    if (get_pcvar_num(g_awp_active) == 1)
      return PLUGIN_CONTINUE
    if(!(get_user_flags(id) & VIP_FLAG))
        return PLUGIN_CONTINUE
    client_print(id, print_center, "%L", LANG_SERVER, "AWP_ONLY_FOR_VIP")
    return PLUGIN_HANDLED
}

public event_CurWeapon(id){
    if (get_pcvar_num(g_awp_active) == 1){
        if(read_data(2) == CSW_AWP){
            if(!(get_user_flags(id) & VIP_FLAG)){
                client_print(id, print_center, "%L", LANG_SERVER, "AWP_ONLY_FOR_VIP")
                client_cmd(id, "drop")
            }
            
            }
        }
    return PLUGIN_HANDLED
}
public hook_death()
{
    if(get_pcvar_num(giveHp) == 1){
   nKiller = read_data(1)
   if(!access(nKiller,VIP_FLAG))
   return;
   if ( (read_data(3) == 1) && (read_data(5) == 0) )
   {
      nHp_add = get_pcvar_num (health_hs_add)
   }
   else
      nHp_add = get_pcvar_num (health_add)
   nHp_max = get_pcvar_num (health_max)
   nKiller_hp = get_user_health(nKiller)
   nKiller_hp += nHp_add
   if (nKiller_hp > nHp_max) nKiller_hp = nHp_max
   set_user_health(nKiller, nKiller_hp)
   set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
   show_hudmessage(nKiller, "%L", LANG_SERVER, "HP_ADD", nHp_add)
}
}
public mymenu(id){
    new MyMenu=menu_create("Player Menu","vipMenu");
    new MyMenuFun=menu_makecallback("mcbMyMenu");
    new m4a1[150]
    formatex(m4a1, sizeof m4a1 - 1, "%L", id, "MENU_M4A1")
    menu_additem(MyMenu,m4a1,"",0,MyMenuFun);
    new ak47[150]
    formatex(ak47, sizeof ak47 - 1, "%L", id, "MENU_AK47")
    menu_additem(MyMenu,ak47 ,"",0,MyMenuFun);
    new awp[150]
    formatex(awp, sizeof awp - 1, "%L", id, "MENU_AWP")
    menu_additem(MyMenu,awp,"",0,MyMenuFun);
    if(get_user_flags(id) & VIP_FLAG){
        menu_display(id, MyMenu,0);
    }
    else{
        ChatColor(id,"%L",LANG_SERVER,"NOT_VIP")
    }
    return PLUGIN_HANDLED;
}

public vipMenu(id, menu, item){
    switch(item){
        case 0:{
            if (user_has_weapon(id, CSW_C4)){
                    HasC4[id] = true;
            }
            else{
                    HasC4[id] = false;
            }
            strip_user_weapons (id)
            give_item(id, "weapon_m4a1")
            cs_set_user_bpammo(id, CSW_M4A1, 90)
            give_item(id,"weapon_knife")
            if(get_pcvar_num(p_Start_He) == 1){
                give_item(id,"weapon_hegrenade")
            }            
            if(get_pcvar_num(p_Start_Flash) == 1){
                give_item(id, "weapon_flashbang");
            }
            else if(get_pcvar_num(p_Start_Flash) == 2){
                give_item(id, "weapon_flashbang");
                give_item(id, "weapon_flashbang");
            }
            if(get_pcvar_num(p_Start_Smoke) == 1){
                give_item(id, "weapon_smokegrenade");
            }
            if(get_pcvar_num(p_Start_Deagle) == 1){
                give_item(id,"weapon_deagle")
                cs_set_user_bpammo(id, CSW_DEAGLE, 35)
            }
            else if(cs_get_user_team(id) == CS_TEAM_CT){
                give_item(id, "weapon_usp")
                cs_set_user_bpammo(id, CSW_USP, 24)
            }
            else if (cs_get_user_team(id) == CS_TEAM_T){
                give_item(id, "weapon_glock18")
                cs_set_user_bpammo(id, CSW_GLOCK18, 40)
            }
            give_item(id, "weapon_smokegrenade");
            give_item(id, "item_assaultsuit");
            give_item(id, "item_thighpack");
            if (HasC4[id]){
                give_item(id, "weapon_c4");
                cs_set_user_plant( id );
            }
            ChatColor(id,"%L",LANG_SERVER,"GET_WEAPON_M4A1")
    }
        case 1:{
            if (user_has_weapon(id, CSW_C4)){
                HasC4[id] = true;
            }
            else{
                HasC4[id] = false;
            }
            strip_user_weapons (id)
            give_item(id, "weapon_ak47")
            cs_set_user_bpammo(id, CSW_AK47, 90)
            give_item(id,"weapon_knife")
            if(get_pcvar_num(p_Start_He) == 1){
                give_item(id,"weapon_hegrenade")
            }            
            if(get_pcvar_num(p_Start_Flash) == 1){
                give_item(id, "weapon_flashbang");
            }
            else if(get_pcvar_num(p_Start_Flash) == 2){
                give_item(id, "weapon_flashbang");
                give_item(id, "weapon_flashbang");
            }
            if(get_pcvar_num(p_Start_Smoke) == 1){
                give_item(id, "weapon_smokegrenade");
            }
            if(get_pcvar_num(p_Start_Deagle) == 1){
                give_item(id,"weapon_deagle")
                cs_set_user_bpammo(id, CSW_DEAGLE, 35)
            }
            else if(cs_get_user_team(id) == CS_TEAM_CT){
                give_item(id, "weapon_usp")
                cs_set_user_bpammo(id, CSW_USP, 24)
            }
            else if (cs_get_user_team(id) == CS_TEAM_T){
                give_item(id, "weapon_glock18")
                cs_set_user_bpammo(id, CSW_GLOCK18, 40)
            }
            give_item(id, "weapon_smokegrenade");
            give_item(id, "item_assaultsuit");
            give_item(id, "item_thighpack");
            if (HasC4[id]){
                give_item(id, "weapon_c4");
                cs_set_user_plant( id );
            }
            ChatColor(id,"%L",LANG_SERVER,"GET_WEAPON_AK47")
    
}
        case 2:{
            if (user_has_weapon(id, CSW_C4)){
                HasC4[id] = true;
            }
            else{
                HasC4[id] = false;
            }
            strip_user_weapons (id)
            give_item(id, "weapon_awp")
            cs_set_user_bpammo(id, CSW_AWP, 30)
            give_item(id,"weapon_knife")
            if(get_pcvar_num(p_Start_He) == 1){
                give_item(id,"weapon_hegrenade")
            }            
            if(get_pcvar_num(p_Start_Flash) == 1){
                give_item(id, "weapon_flashbang");
            }
            else if(get_pcvar_num(p_Start_Flash) == 2){
                give_item(id, "weapon_flashbang");
                give_item(id, "weapon_flashbang");
            }
            if(get_pcvar_num(p_Start_Smoke) == 1){
                give_item(id, "weapon_smokegrenade");
            }
            if(get_pcvar_num(p_Start_Deagle) == 1){
                give_item(id,"weapon_deagle")
                cs_set_user_bpammo(id, CSW_DEAGLE, 35)
            }
            else if(cs_get_user_team(id) == CS_TEAM_CT){
                give_item(id, "weapon_usp")
                cs_set_user_bpammo(id, CSW_USP, 24)
            }
            else if (cs_get_user_team(id) == CS_TEAM_T){
                give_item(id, "weapon_glock18")
                cs_set_user_bpammo(id, CSW_GLOCK18, 40)
            }
            give_item(id, "weapon_smokegrenade");
            give_item(id, "item_assaultsuit");
            give_item(id, "item_thighpack")
            if (HasC4[id]){
                give_item(id, "weapon_c4");
                cs_set_user_plant( id );
            }
            ChatColor(id,"%L",LANG_SERVER,"GET_WEAPON_AWP")
                 }
                  }
        
}
public mcbMyMenu(id, menu, item){
    if(item==0){
    if(get_pcvar_num(p_Give_M4A1) != 1){
        return ITEM_DISABLED;
    }
}
    if(item==1){
        if(get_pcvar_num(p_Give_AK47) != 1){
            return ITEM_DISABLED;
        }
    }
    if(item==2){
        if(get_pcvar_num(p_Give_AWP) != 1){
            return ITEM_DISABLED;
        }
    }
    return ITEM_ENABLED;
}
public event_round_start()
{
    if(get_pcvar_num(p_Menu_Enable) == 1){
    round_number++
    
    if (round_number>1)
    {
        for (new id=1;id<=g_maxplayers;id++)
        {
            if (!is_user_connected(id)||is_user_bot(id))
                continue
            if(get_user_flags(id) & VIP_FLAG){
            if(cs_get_user_team(id) == CS_TEAM_CT || CS_TEAM_T){
                        set_task(0.1, "mymenu", id, _, _, "a", 1)

        }
       }
        }
    }
   }
}
public event_game_restart()
{
    round_number=0
}
public fwHamPlayerSpawnPost(id){
    if (get_user_flags(id) & VIP_FLAG) {
        strip_user_weapons (id)
        give_item(id,"weapon_knife")
        if(get_pcvar_num(p_Start_Deagle) == 1){
            give_item(id,"weapon_deagle")
            cs_set_user_bpammo(id, CSW_DEAGLE, 35)
        }
        else if(cs_get_user_team(id) == CS_TEAM_CT){
            give_item(id, "weapon_usp")
            cs_set_user_bpammo(id, CSW_USP, 24)
        }
        else if (cs_get_user_team(id) == CS_TEAM_T){
            give_item(id, "weapon_glock18")
            cs_set_user_bpammo(id, CSW_GLOCK18, 40)
        }
        if(get_pcvar_num(p_Start_He) == 1){
            give_item(id, "weapon_hegrenade")
        }
        if(get_pcvar_num(p_Start_Flash) == 1){
            give_item(id, "weapon_flashbang")
        }
        else if(get_pcvar_num(p_Start_Flash) == 2){
            give_item(id, "weapon_flashbang")
            give_item(id, "weapon_flashbang")
        }
        if(get_pcvar_num(p_Start_Smoke) == 1){
            give_item(id, "weapon_smokegrenade")
        }
    }
}
public vipinfo(id){
    show_motd(id, "vipinfo.txt")
}
public client_authorized(id)
{
    if(get_pcvar_num(p_Plugin_Exist) == 1){
            set_task(get_pcvar_float(p_Plugin_Exist_Time), "vipInfoMessage", id, _, _, "b")
    }
}
public vipInfoMessage(id)
{
    if(!is_user_admin(id))
    ChatColor(id,"%L",LANG_SERVER,"INFO_VIP_PLUGIN_EXIST")
    
}
public handle_say(id) {
    new said[192]
    read_args(said,192)
    if( ( containi(said, "who") != -1 && containi(said, "admin") != -1 ) || contain(said, "/vips") != -1 )
        set_task(0.1,"print_adminlist",id)
    return PLUGIN_CONTINUE
}

public print_adminlist(user)
{
    if(get_pcvar_num(vipsOnline) == 1){
    new adminnames[33][32]
    new message[256]
    new contactinfo[256], contact[112]
    new id, count, x, len
    
    for(id = 1; id <= maxplayers; id++)
        if(is_user_connected(id))
            if(get_user_flags(id) & VIP_FLAG)
                get_user_name(id, adminnames[count++], 31)

    len = format(message, 255, "%s VIP Online: ",COLOR)
    if(count > 0) {
        for(x = 0; x < count; x++) {
            len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
            if(len > 96 ) {
                print_message(user, message)
                len = format(message, 255, "%s ",COLOR)
            }
        }
        print_message(user, message)
    }
    else {
        len += format(message[len], 255-len, "%L", LANG_SERVER,"NO_VIPS_ONLLINE")
        print_message(user, message)
    }
    
    get_cvar_string("amx_contactinfo", contact, 63)
    if(contact[0])  {
        format(contactinfo, 111, "%s Contact Server Admin -- %s", COLOR, contact)
        print_message(user, contactinfo)
    }
}
}
print_message(id, msg[]) {
    message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
    write_byte(id)
    write_string(msg)
    message_end()
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1029\\ f0\\ fs16 \n\\ par }
*/



Настраивается он через vip_config.cfg

Вот он



2
Код
//Vip 3.05 by Extreem configuration file//
////////////////////////////////////////
///////Adding Hp for killing////////////
/////1- YES...2- NO...///////

give_kill_hp 0  // Give HP for killing, 1- give, 0- don't give
kill_hp 5  //Give health for standart kill
kill_hs_hp 10 //Give health for HeadShoot
max_hp 250   //Stop giving hp if user have x hp

/////////////////////////////////////////////
////////Start Player Weapons////////////
/////1- YES...2- NO...///////

start_deagle 1  // Give deagle
start_hegrenade 1  // Give HE Grenade
start_flash 2  // Give FlashBannk, 1- Give 1 FlashBank, 2- Give 2 FlashBanks
start_smokegrenade 0  //Give Smoke

///////////////////////////////////////////

//Message about plugin exist(only for users, not for vip)///
plugin_exist 1   // Start Messages
plugin_exist_time 120.0  //Messages Interval

////////////////////////////////////////
//////Show Vips online with using chat command /vips...//////
show_vips 1

///////////////////////////////////////
///////Menus//////////////////////
menu_enable 1  //Start Menus
menu_ak47 1  //Enable AK47 Menu
menu_m4a1 0  //Enable M4A1 Menu
menu_awp 0  //Enable AWP Menu

//Awp Only for VIPs= 1, AWP for all users= 0
awp_only_vips 1




Еще к ниму есть файл vipinfo.txt (информация о покупке vip)
вот он



Код
<html>
<head>
<style type="text/css">
body    {
    background-color: #000000;
    font-family:Verdana,Tahoma;
        }
</style>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1257">
</head>
<font size="2" color="#e0a518"><b><center>Что вы можете делать, если преобретете вип статус?</center></b></font><br />
<font size="1" color="#c0c0ff">
<UL>
<LI TYPE=square>Вы бесплатно получаете каждый раунд гранаты (he, flash, smoke);</LI><br>
<LI TYPE=square>Так же бесплатно броню и шлем, естественно каждый раунд;</LI><br>
<LI TYPE=square>Возможность видеть попали ли вы в противника или он в вас;</LI><br>
<LI TYPE=square>Возможность покупать запрещенное оружие;</LI><br>
<LI TYPE=square>Вы сможете читать и писать в админском чате;</UL><br>
<font size="1" color=#00c000><strong>Где купить, получить или попросить вип статус?</strong></font><br>
Вы можете свзаться с администратором и обсудить с ним покупку или получение вип статуса.<br>
Skype: <font color=#FF6600>kolyan-_</font><br><br />
<font size="2" color="#ffffff"><strong>Стоимость vip 50 руб./мес.</strong></font><br />
</body>
</html>


И файл с языковыми настройками viplang.txt
вот он


3
Код
[en]
INFO_VIP_PLUGIN_EXIST = !ySay !/vip !yto show !gVIP !yprevilegies
AWP_NOT_ALLOWDED = !gAWP !yis not allowded on this server
GET_WEAPON_AWP = !yYou Taked Free !gAWP
AK47_NOT_ALLOWDED = !gAK47 !yis not allowded on this server
GET_WEAPON_AK47 = !yYou Taked Free !gAK47
M4A1_NOT_ALLOWDED = !gM4A1 !yis not allowded on this server
GET_WEAPON_M4A1 = !yYou Taked Free !gM4A1
NO_VIPS_ONLLINE = No VIPs Online
HP_ADD = Healed +%d hp
NOT_VIP = !yYou are not !gVIP
AWP_ONLY_FOR_VIP = AWP only for VIP players
MENU_M4A1 = Got M4A1
MENU_AK47 = Got AK47
MENU_AWP = Got AWP

[ru]
INFO_VIP_PLUGIN_EXIST = !yнапиши !g/vip !yчтобы посмотреть  !gVIP !yпревилегии
AWP_NOT_ALLOWDED = !gAWP !yзапрещено на сервере
GET_WEAPON_AWP = !yДостаешь !gAWP
AK47_NOT_ALLOWDED = !gAK47 !yзапрещено на сервере
GET_WEAPON_AK47 = !yДостаешь !gAK47
M4A1_NOT_ALLOWDED = !gM4A1 !yзапрещено на сервере
GET_WEAPON_M4A1 = !yДостаешь !gM4A1
NO_VIPS_ONLLINE = Нету ВИП игроков онлайн
HP_ADD = Добавлено %d hp
NOT_VIP = !yУ тебя нет !gVIP !yпревилегий
AWP_ONLY_FOR_VIP = AWP только для VIP игроков
MENU_M4A1 = Получить M4A1
MENU_AK47 = Получить AK47
MENU_AWP = Получить AWP


Что мне нужно:

В начале раунда vipам АВТОМАТИЧЕСКИ выдавало ak47+дигл+грена+2слеп (сейчас дигл + грена+2слепы выдаются, а ak47 нужно выбрать в появляющемся меню)
У вип 250хп (при старте) и 100 броня 16000$ (сейчас 100 и броня не выдается? денег столько же, как у обычных)
Випы могут покупать скорострелки (они запрещены) (сейчас запрещенное не могут, только awp и не запрещенное)
Доступ к \voteban именно ему (сейчас только amx_ban консоль)
Просто кикать (уже есть)
Денег за убийства не давать и фрагов 1 (есть)
Возможность использовать bunny hop
Доступ к команде amx_mute
При голосовании за карту голос учитывается за два. (есть)


Если кто-нибудь знает как сделать хотя бы один из пунктов, напишите пожалуйста здесь.

!
Предупреждение:
Пользуйся спойлером!


Отредактировал: kolyya, - 17.12.2011, 19:32
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: