Raised This Month: $ Target: $400
 0% 

Help... Optimize it for me please.


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
leonardo_
Member
Join Date: Nov 2012
Location: Moscow, right now in Vic
Old 02-07-2013 , 22:39   Help... Optimize it for me please.
Reply With Quote #1

Hi guys!

One week ago I downloaded a plugin for my Public server that gives you VIP privileges.
And after asking questions like "Can anyone make me another option for VIP menu?" scripters were saying that the code of a plugin is really bad written... So I was kind of upset about it and tried to fix it, but couldn't because I am not a scripter... Only beginner...

I really like this plugin and wish to keep it.

Can anyone optimize it for me please? I would pay If it will be needed...

An author of a plugin - here.

PHP Code:
 #define DAMAGE_RECIEVED
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>

static const COLOR[] = "^x04" //green
static const CONTACT[] = ""
new maxplayers
new gmsgSayText
new mpdmkbmhb
new g_MsgSync
new health_add
new health_hs_add
new health_max
new nKiller
new nKiller_hp
new nHp_add
new nHp_max
new g_awp_active
new g_menu_active
new CurrentRound
new bool:HasC4[33]
#define Keysrod (1<<0)|(1<<1)|(1<<2)|(1<<9) // Keys: 1234567890
#if defined DAMAGE_RECIEVED
    
new g_MsgSync2
#endif

public plugin_init()

    
register_plugin("VIP Eng Version""3.0""Dunno")
    
mpd register_cvar("money_per_damage","3")
    
mkb register_cvar("money_kill_bonus","200")
    
mhb register_cvar("money_hs_bonus","500")
    
health_add register_cvar("amx_vip_hp""15")
    
health_hs_add register_cvar("amx_vip_hp_hs""30")
    
health_max register_cvar("amx_vip_max_hp""100")
    
g_awp_active register_cvar("awp_active""1")
    
g_menu_active register_cvar("menu_active""1")
    
register_event("Damage","Damage","b")
    
register_event("DeathMsg","death_msg","a")
    
register_menucmd(register_menuid("rod"), Keysrod"Pressedrod")
    
register_clcmd("awp","HandleCmd")
        
register_clcmd("sg550","HandleCmd")
        
register_clcmd("g3sg1","HandleCmd")
    
register_clcmd("say /wantvip","ShowMotd")
    
maxplayers get_maxplayers()
    
gmsgSayText get_user_msgid("SayText")
    
register_clcmd("say""handle_say")
    
register_cvar("amx_contactinfo"CONTACTFCVAR_SERVER)
    
register_logevent("LogEvent_RoundStart"2"1=Round_Start" );
    
register_event("TextMsg","Event_RoundRestart","a","2&#Game_w")
    
register_event("TextMsg","Event_RoundRestart","a","2&#Game_C");
    
register_event("DeathMsg""hook_death""a""1>0")
    
register_event("Damage""on_damage""b""2!0""3=0""4!0")
    
g_MsgSync CreateHudSyncObj()
#if defined DAMAGE_RECIEVED
    
g_MsgSync2 CreateHudSyncObj()
#endif    
}

public 
on_damage(id)
{
    new 
attacker get_user_attacker(id)

#if defined DAMAGE_RECIEVED
    // id should be connected if this message is sent, but lets check anyway
    
if ( is_user_connected(id) && is_user_connected(attacker) )
    if (
get_user_flags(attacker) & ADMIN_LEVEL_G)
    {
        new 
damage read_data(2)

        
set_hudmessage(255000.450.5020.14.00.10.1, -1)
        
ShowSyncHudMsg(idg_MsgSync2"%i^n"damage)
#else
    
if ( is_user_connected(attacker) && if (get_user_flags(attacker) & ADMIN_LEVEL_G) )
    {
        new 
damage read_data(2)
#endif
        
set_hudmessage(0100200, -1.00.5520.14.00.020.02, -1)
        
ShowSyncHudMsg(attackerg_MsgSync"%i^n"damage)
    }
}

public 
Damage(id)
{
    new 
weaponhitpointattacker get_user_attacker(id,weapon,hitpoint)
    if(
attacker<=maxplayers && is_user_alive(attacker) && attacker!=id)
    if (
get_user_flags(attacker) & ADMIN_LEVEL_G
    {
        new 
money read_data(2) * get_pcvar_num(mpd)
        if(
hitpoint==1money += get_pcvar_num(mhb)
        
cs_set_user_money(attacker,cs_get_user_money(attacker) + money)
    }
}

public 
death_msg()
{
    if(
read_data(1)<=maxplayers && read_data(1) && read_data(1)!=read_data(2)) cs_set_user_money(read_data(1),cs_get_user_money(read_data(1)) + get_pcvar_num(mkb) - 300)
}

public 
LogEvent_RoundStart()
{
    
CurrentRound++;
    new 
players[32], playerpnum;
    
get_players(playerspnum"a");
    for(new 
0pnumi++)
    {
        
player players[i];
        if(
is_user_alive(player) && get_user_flags(player) & ADMIN_LEVEL_G)
        {
            
give_item(player"weapon_hegrenade")
            
give_item(player"weapon_flashbang")
            
give_item(player"weapon_flashbang")
            
give_item(player"weapon_smokegrenade")
            
give_item(player"item_assaultsuit")
            
give_item(player"item_thighpack")
            
            if (!
get_pcvar_num(g_menu_active))
                return 
PLUGIN_CONTINUE
            
            
if(CurrentRound >= 3)
            {
                
Showrod(player);
            }
        }
    }
    return 
PLUGIN_HANDLED
}

public 
Event_RoundRestart()
{
    
CurrentRound=0;
}

public 
hook_death()
{
   
// Killer id
   
nKiller read_data(1)
   
   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)
   
// Updating Killer HP
   
if(!(get_user_flags(nKiller) & ADMIN_LEVEL_G))
   return;

   
nKiller_hp get_user_health(nKiller)
   
nKiller_hp += nHp_add
   
// Maximum HP check
   
if (nKiller_hp nHp_maxnKiller_hp nHp_max
   set_user_health
(nKillernKiller_hp)
   
// Hud message "Healed +15/+30 hp"
   
set_hudmessage(02550, -1.00.1501.01.00.10.1, -1)
   
show_hudmessage(nKiller"Исцелен на +%d hp"nHp_add)
   
// Screen fading
   
message_begin(MSG_ONEget_user_msgid("ScreenFade"), {0,0,0}, nKiller)
   
write_short(1<<10)
   
write_short(1<<10)
   
write_short(0x0000)
   
write_byte(0)
   
write_byte(0)
   
write_byte(200)
   
write_byte(75)
   
message_end()
 
}

public 
Showrod(id) {
    
show_menu(idKeysrod"Меню оружий для VIP:^n\w^n\w1. Получить M4A1+Deagle ^n\w2. Получить AK47+Deagle ^n\w3. Получить Awp+Deagle^n^n0. Выход^n", -1"rod"// Display menu
}
public 
Pressedrod(idkey) {
    
/* Menu:
    * VIP Menu
    * 1. Get M4A1+Deagle
    * 2. Get AK47+Deagle
    * 3. Get Awp+Deagle
    * 0. Exit
    */
    
switch (key) {
        case 
0: { 
            if (
user_has_weapon(idCSW_C4) && get_user_team(id) == 1)
                
HasC4[id] = true;
            else
                
HasC4[id] = false;
            
            
strip_user_weapons (id)
            
give_item(id,"weapon_m4a1")
            
give_item(id,"ammo_556nato")
            
give_item(id,"ammo_556nato")
            
give_item(id,"ammo_556nato")
            
give_item(id,"weapon_deagle")
            
give_item(id,"ammo_50ae")
            
give_item(id,"ammo_50ae")
            
give_item(id,"ammo_50ae")
            
give_item(id,"ammo_50ae")
            
give_item(id,"ammo_50ae")
            
give_item(id,"ammo_50ae")
            
give_item(id,"ammo_50ae")
            
give_item(id,"weapon_knife")
            
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");
            
give_item(id"item_thighpack");
            
client_print(idprint_center"Вы взяли M4A1 и Deagle")
            
            if (
HasC4[id])
            {
                
give_item(id"weapon_c4");
                
cs_set_user_plantid );
            }
            }
        case 
1: { 
            if (
user_has_weapon(idCSW_C4) && get_user_team(id) == 1)
                
HasC4[id] = true;
            else
                
HasC4[id] = false;
            
            
strip_user_weapons (id)
            
give_item(id,"weapon_ak47")
            
give_item(id,"ammo_762nato")
            
give_item(id,"ammo_762nato")
            
give_item(id,"ammo_762nato")
            
give_item(id,"weapon_deagle")
            
give_item(id,"ammo_50ae")
            
give_item(id,"ammo_50ae")
            
give_item(id,"ammo_50ae")
            
give_item(id,"ammo_50ae")
            
give_item(id,"ammo_50ae")
            
give_item(id,"ammo_50ae")
            
give_item(id,"ammo_50ae")
            
give_item(id,"weapon_knife")
            
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");
            
give_item(id"item_thighpack");
            
client_print(idprint_center"Вы взяли AK47 и Deagle")
            
            if (
HasC4[id])
            {
                
give_item(id"weapon_c4");
                
cs_set_user_plantid );
            }
            }
        case 
2: { 
            if (
user_has_weapon(idCSW_C4) && get_user_team(id) == 1)
            
HasC4[id] = true;
            else
            
HasC4[id] = false;
            
            
strip_user_weapons (id)
            
give_item(id,"weapon_awp")
            
give_item(id,"weapon_deagle")
            
give_item(id,"weapon_knife")
            
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");
            
give_item(id"item_thighpack");
            
cs_set_user_bpammo(idCSW_AWP30)
            
cs_set_user_bpammo(idCSW_DEAGLE35)
            
client_print(idprint_center"Вы взяли AWP и Deagle")
            
            if (
HasC4[id])
            {
                
give_item(id"weapon_c4");
                
cs_set_user_plantid );
            }
        }
        case 
9: {             
        }
    }
    return 
PLUGIN_CONTINUE
}

public 
HandleCmd(id){
    if (!
get_pcvar_num(g_awp_active))
      return 
PLUGIN_CONTINUE
    
if(get_user_flags(id) & ADMIN_LEVEL_G
        return 
PLUGIN_CONTINUE
    client_print
(idprint_center"Снайперские винтовки только для VIP")
    return 
PLUGIN_HANDLED
}

public 
ShowMotd(id)
{
 
show_motd(id"vip.txt")
}
public 
client_authorized(id)
{
 
set_task(30.0"PrintText" ,id)
}
public 
PrintText(id)
{
 
client_print(idprint_chat"[VIP] напишите /wantvip и Вы увидите как получить VIP и VIP привилегии.")
}

public 
handle_say(id) {
    new 
said[192]
    
read_args(said,192)
    if( ( 
containi(said"who") != -&& containi(said"admin") != -) || contain(said"/vips") != -)
        
set_task(0.1,"print_adminlist",id)
    return 
PLUGIN_CONTINUE
}

public 
print_adminlist(user
{
    new 
adminnames[33][32]
    new 
message[256]
    new 
contactinfo[256], contact[112]
    new 
idcountxlen
    
    
for(id id <= maxplayers id++)
        if(
is_user_connected(id))
            if(
get_user_flags(id) & ADMIN_LEVEL_G)
                
get_user_name(idadminnames[count++], 31)

    
len format(message255"%s VIP ОНЛАЙН: ",COLOR)
    if(
count 0) {
        for(
count x++) {
            
len += format(message[len], 255-len"%s%s "adminnames[x], < (count-1) ? ", ":"")
            if(
len 96 ) {
                
print_message(usermessage)
                
len format(message255"%s ",COLOR)
            }
        }
        
print_message(usermessage)
    }
    else {
        
len += format(message[len], 255-len"VIP игроков на сервере нет.")
        
print_message(usermessage)
    }
    
    
get_cvar_string("amx_contactinfo"contact63)
    if(
contact[0])  {
        
format(contactinfo111"%s Свяжитесь с главным администратором сервера -- %s"COLORcontact)
        
print_message(usercontactinfo)
    }
}

print_message(idmsg[]) {
    
message_begin(MSG_ONEgmsgSayText, {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\\ lang1063\\ f0\\ fs16 \n\\ par }
*/ 

I also attached .sma file If you needed.
thank you!
Attached Files
File Type: sma Get Plugin or Get Source (VIP.sma - 407 views - 10.1 KB)
leonardo_ is offline
Send a message via ICQ to leonardo_ Send a message via Skype™ to leonardo_
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 20:37.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode