Raised This Month: $ Target: $400
 0% 

Help... Optimize it for me please.


Post New Thread Reply   
 
Thread Tools Display Modes
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_
fysiks
Veteran Member
Join Date: Sep 2007
Location: Flatland, USA
Old 02-08-2013 , 00:29   Re: Help... Optimize it for me please.
Reply With Quote #2

Does it work? If it works and has the features you need then just use it.
__________________
fysiks is offline
leonardo_
Member
Join Date: Nov 2012
Location: Moscow, right now in Vic
Old 02-08-2013 , 00:49   Re: Help... Optimize it for me please.
Reply With Quote #3

Quote:
Originally Posted by fysiks View Post
Does it work? If it works and has the features you need then just use it.
It does work but code is just really bad as everyone was saying can you optimize it or someone else?
leonardo_ is offline
Send a message via ICQ to leonardo_ Send a message via Skype™ to leonardo_
YamiKaitou
Has a lovely bunch of coconuts
Join Date: Apr 2006
Location: Texas
Old 02-08-2013 , 00:55   Re: Help... Optimize it for me please.
Reply With Quote #4

You are in Scripting Help, ask us a question and we will guide you. We are not here to do it for you.
__________________
ProjectYami Laboratories

I do not browse the forums regularly anymore. If you need me for anything (asking questions or anything else), then PM me (be descriptive in your PM, message containing only a link to a thread will be ignored).
YamiKaitou is offline
leonardo_
Member
Join Date: Nov 2012
Location: Moscow, right now in Vic
Old 02-08-2013 , 01:19   Re: Help... Optimize it for me please.
Reply With Quote #5

Quote:
Originally Posted by YamiKaitou View Post
You are in Scripting Help, ask us a question and we will guide you. We are not here to do it for you.
How do you optimize that code?
leonardo_ is offline
Send a message via ICQ to leonardo_ Send a message via Skype™ to leonardo_
simanovich
AlliedModders Donor
Join Date: Jun 2012
Location: Israel
Old 02-08-2013 , 02:54   Re: Help... Optimize it for me please.
Reply With Quote #6

Not that sh*t again!!!

DON'T USE THAT PLUGIN CUZ IT HAVE A VERY BAD CODE!!!

I think that the author of this plugin don't know pawn scripting, or that it's just his first plugin.....

I don't know who did approved this plugin, but it's need to be unapproved

The code is very bad. In some parts of the plugin I didn't understand what the fuck the author did.
__________________

Last edited by simanovich; 02-08-2013 at 02:59.
simanovich is offline
YamiKaitou
Has a lovely bunch of coconuts
Join Date: Apr 2006
Location: Texas
Old 02-08-2013 , 03:02   Re: Help... Optimize it for me please.
Reply With Quote #7

Quote:
Originally Posted by simanovich View Post
I don't know who did approved this plugin, but it's need to be unapproved.
Then reply to the plugin's thread with the errors and then report the thread
__________________
ProjectYami Laboratories

I do not browse the forums regularly anymore. If you need me for anything (asking questions or anything else), then PM me (be descriptive in your PM, message containing only a link to a thread will be ignored).
YamiKaitou is offline
simanovich
AlliedModders Donor
Join Date: Jun 2012
Location: Israel
Old 02-08-2013 , 03:04   Re: Help... Optimize it for me please.
Reply With Quote #8

Quote:
Originally Posted by YamiKaitou View Post
Then reply to the plugin's thread with the errors and then report the thread
I alredy did it
__________________
simanovich is offline
Unkolix
Veteran Member
Join Date: Sep 2012
Old 02-08-2013 , 03:34   Re: Help... Optimize it for me please.
Reply With Quote #9

I am working on this plugin. I am adding more features like: You can't get the vipmenu on maps like awp_, cs_deagle, knf_, 1hp_ (I wil add more). VIP's won't get bombs on those maps too. I will add more cvars such as from which round vip gets the menu. A new feature, when player close the menu, if he didn't chose anything, he can write vipmenu in chat and in alternative ways and he will get the menu until he choose something. A cvar how many times vip can call vipmenu. I am still fixing quite a lot of bugs. I will release the plugin after few weeks if I will manage to finish it. + a multi-lingual will be added!

Last edited by Unkolix; 02-08-2013 at 05:44.
Unkolix is offline
leonardo_
Member
Join Date: Nov 2012
Location: Moscow, right now in Vic
Old 02-08-2013 , 03:59   Re: Help... Optimize it for me please.
Reply With Quote #10

Quote:
Originally Posted by Unkolix View Post
I am working on this plugin. I am adding more features like: You can't get the vipmenu on maps like awp_, cs_deagle, knf_, 1hp_ (I wil add more). Player won' get bombs on those maps apskritai too. I will add more cvars such as from whixh round vip gets the menu. A new feature, when player close the menu, if he didn't chose anything, he can write vipmenu in chat and in alternative ways and he will get the menu ubtil he choose something. A cvar how many times vip can call vipmenu. I am still fixing quite a lot of bugs. I will release the plugin after few weeks if I will manage to finish it. + a multi-lingual will be added!
nice man! Thank you so much!

Can you PM me when you release that plugin?
leonardo_ is offline
Send a message via ICQ to leonardo_ Send a message via Skype™ to leonardo_
Reply



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