Raised This Month: $ Target: $400
 0% 

Improving and optimizing this thing


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
Krystek.
Member
Join Date: May 2022
Old 05-29-2022 , 10:35   Improving and optimizing this thing
Reply With Quote #1

Hello, would someone be so kind and point out how to improve "this thing?", since it can't be called a plugin due to the rather clunky code ;DD

PHP Code:
#include < amxmodx >
#include < amxmisc >
#include < fakemeta >
#include < nvault >

new const PLUGIN[] = "Skins"
new const VERSION[] = "1.0.0"
new const AUTHOR[] = ""

new const gcCommands[][] = { "say /skins""say /skiny""say /skin""say /modele""say /model""say /models" };

new 
KnifeNames[][] = {
    
"Default"
    
"Knife \d×\w Skins"
    
"Knife \d×\w Skins"
    
"Knife \d×\w Skins"
    
"Knife \d×\w Skins"
    
"Knife \d×\w Skins"
    
"Knife \d×\w Skins"
    
"Knife \d×\w Skins"
    
"Knife \d×\w Skins"
    
"Knife \d×\w Skins"
    
"Knife \d×\w Skins"
    
"Knife \d×\w Skins",
    
"Knife \d×\w Skins"
    
"Knife \d×\w Skins",
    
"Knife \d×\w Skins"            
};
new const 
KnifeModels[][] = {
    
"models/v_knife.mdl",
    
"models/v_knife_boreal_forest.mdl",
    
"models/v_knife_safari_mesh.mdl",
    
"models/v_falchion_slaughter.mdl",
    
"models/v_bayonet_doppler_saphire.mdl",
    
"models/v_bayonet_lore.mdl",
    
"models/v_butterfly_case_hardened.mdl",
    
"models/v_butterfly_doppler_ruby.mdl",
    
"models/v_huntsman_fade.mdl",
    
"models/v_huntsman_tiger_tooth.mdl",
    
"models/v_navaja_forestddpat.mdl",
    
"models/v_navaja_night.mdl",
    
"models/v_bowie_damascus_steel.mdl",
    
"models/v_bowie_marble_fade.mdl",
    
"models/v_noz_miku.mdl"
};
new 
FlagsKnife[] = { 0000ADMIN_LEVEL_HADMIN_LEVEL_HADMIN_LEVEL_HADMIN_LEVEL_HADMIN_LEVEL_HADMIN_LEVEL_HADMIN_LEVEL_HADMIN_LEVEL_HADMIN_LEVEL_HADMIN_LEVEL_HADMIN_LEVEL_D };

new 
P90Names[][] = {
    
"Kroliczek"
    
"P90 \d×\w Skins"
    
"P90 \d×\w Skins"
    
"P90 \d×\w Skins"
    
"P90 \d×\w Skins"
    
"P90 \d×\w Skins",
    
"P90 \d×\w Skins",
    
"P90 \d×\w Skins",
    
"P90 \d×\w Skins",
    
"P90 \d×\w Skins"        
};
new const 
P90Models[][] = {
    
"models/v_p90_rabbit.mdl",
    
"models/v_p90_assimov.mdl",
    
"models/v_p90_chicken_of_war.mdl",
    
"models/v_p90_chopper.mdl",
    
"models/v_p90_death_by_kitty.mdl",
    
"models/v_p90_emerald_dragon.mdl",
    
"models/v_p90_grim.mdl",
    
"models/v_p90_puzzle.mdl",
    
"models/v_p90_trigon.mdl",
    
"models/v_p90_miku.mdl"
};
new 
FlagsP90[] = { 0ADMIN_LEVEL_HADMIN_LEVEL_HADMIN_LEVEL_HADMIN_LEVEL_HADMIN_LEVEL_HADMIN_LEVEL_HADMIN_LEVEL_HADMIN_LEVEL_HADMIN_LEVEL_D };

new const 
weaponSOUND[][] = {
    
"sound/weapons/blockas1_change1.wav",
    
"sound/weapons/blockas1_change2.wav",
    
"sound/weapons/blockas1_reload_loop.wav",
    
"sound/weapons/blockas2_change1_1.wav",
    
"sound/weapons/blockas2_change2_1.wav",
    
"sound/weapons/blockas2_draw.wav",
    
"sound/weapons/blockas2_idle.wav",
    
"sound/weapons/blockas2_reload.wav",
    
"sound/weapons/blockas2_shoot_end.wav",
    
"sound/weapons/blockas2_shoot_start.wav"
};

new 
player_item[7][MAX_PLAYERS 1]
new 
g_vault

public plugin_init() {
    
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_event("CurWeapon""CurWeapon""be""1=1");

    
register_menucmd(register_menuid("MENU_MAIN"), 1023"MENU_MAIN_Handler");

    
register_menucmd(register_menuid("@MENU_KNIFE"), 1023"@MENU_KNIFE_Handler");
    
register_menucmd(register_menuid("@MENU_P90"), 1023"@MENU_P90_Handler");

    for(new 
0sizeof(gcCommands); i++) 
        
register_clcmd(gcCommands[i], "Command_MainMenu");
    
    
g_vault nvault_open("Skins");
}

public 
client_connect(id) {
    
LoadsModels(id);
}

public 
client_disconnected(id)
{
    
player_item[1][id] = 0;
    
player_item[2][id] = 0;
}

public 
plugin_end()
    
nvault_close(g_vault);

public 
plugin_precache() {
    
    for (new 
0sizeof KnifeModelsi++)
    
precache_model(KnifeModels[i]);
    
    for (new 
0sizeof P90Modelsi++)
    
precache_model(P90Models[i]);
}

public 
Command_MainMenu(id){
    new 
szMenu[512], len 0;
    
    
len formatex(szMenu[len], charsmax(szMenu) - len"\dSkins Menu^n^n");
    
    
len += formatex(szMenu[len], charsmax(szMenu) - len"\r1. \d» \wSkins \rKnife^n^n");
    
len += formatex(szMenu[len], charsmax(szMenu) - len"\r2. \d» \wSkins \rP90 \y(VIP)^n");
    
len += formatex(szMenu[len], charsmax(szMenu) - len"^n^n\r0. \wExit");
    
    
show_menu(id, (<< 0)|(<< 1)|(<< 2)|(<< 3)|(<< 4)|(<< 5)|(<< 9), szMenu, -1"MENU_MAIN");
    return 
PLUGIN_HANDLED;    
}

public 
MENU_MAIN_Handler(idkey)
{
    switch(
key)
    {
        case 
0: @MENU_KNIFE(id);
        case 
1: @MENU_P90(id);
        case 
2: @MENU_M249(id);
        case 
3: @MENU_XM1014(id);        
        case 
4: @MENU_MP5_TT(id);
        case 
5: @MENU_MP5_CT(id);
    }
}

@
MENU_KNIFE(id) {
    
    new 
Knife menu_create(fmt("\dSkins \rKnifes\d"), "@MENU_KNIFE_Handler")
    
    for(new 
0sizeof(KnifeNames); i++){
        if(
FlagsKnife[i] == ADMIN_LEVEL_H){
            
menu_additem(Knife fmt("\d» %s %s"get_user_flags(id) & ADMIN_LEVEL_H "\y(VIP)\w" "\d(VIP)\d"KnifeNames[i]), ""FlagsKnife[i], -1);
        }
        if(
FlagsKnife[i] == ADMIN_LEVEL_D){
            
menu_additem(Knife fmt("\d» %s %s"get_user_flags(id) & ADMIN_LEVEL_D "\y(MODEL MIKU)\w" "\d(MODEL MIKU)\d"KnifeNames[i]), ""FlagsKnife[i], -1);            
        }
        if(
FlagsKnife[i] == 0){
            
menu_additem(Knife fmt("\d»\w %s"KnifeNames[i]), ""FlagsKnife[i], -1);
        }
    }
    
menu_setprop(KnifeMPROP_EXITNAME"Exit");

    
menu_display(idKnife);

    return 
PLUGIN_HANDLED;
}
@
MENU_KNIFE_Handler(idKnifeitem) {
    if (
item == MENU_EXIT) {
        
menu_destroy(Knife);
        return 
PLUGIN_HANDLED;
    }
    
    if(
FlagsKnife[item] == 0){
        
player_item[1][id] = item
    
}
    else if(
FlagsKnife[item] > && get_user_flags(id) & FlagsKnife[item]){
        
player_item[1][id] = item
    
}

    
Set_Model(id);
    
SaveModels(id)    

    
menu_destroy(Knife);

    return 
PLUGIN_HANDLED;
}

@
MENU_P90(id) {
    
    new 
P90 menu_create(fmt("\dSkins \rP90\d"), "@MENU_P90_Handler")
    
    for(new 
0sizeof(P90Names); i++){
        if(
FlagsP90[i] == ADMIN_LEVEL_H){
            
menu_additem(P90 fmt("\d»\w %s %s"get_user_flags(id) & ADMIN_LEVEL_H "\y(VIP)\w" "\d(VIP)\d"P90Names[i]), ""FlagsP90[i], -1);
        }
        if(
FlagsP90[i] == ADMIN_LEVEL_D){
            
menu_additem(P90 fmt("\d»\w %s %s"get_user_flags(id) & ADMIN_LEVEL_D "\y(MODEL MIKU)\w" "\d(MODEL MIKU)\d"P90Names[i]), ""FlagsP90[i], -1);
        }        
        if(
FlagsP90[i] == 0){
            
menu_additem(P90 fmt("\d»\w %s"P90Names[i]), ""FlagsP90[i], -1);
        }
    }
    
menu_setprop(P90MPROP_EXITNAME"Exit");

    
menu_display(idP90);

    return 
PLUGIN_HANDLED;
}
@
MENU_P90_Handler(idP90item) {
    if (
item == MENU_EXIT) {
        
menu_destroy(P90);
        return 
PLUGIN_HANDLED;
    }
    
    if(
FlagsP90[item] == 0){
        
player_item[2][id] = item
    
}
    else if(
FlagsP90[item] > && get_user_flags(id) & FlagsP90[item]){
        
player_item[2][id] = item
    
}

    
Set_Model(id);
    
SaveModels(id);

    
menu_destroy(P90);

    return 
PLUGIN_HANDLED;
}

public 
LoadsModels(id){
    
    new 
pszName[33][64]; get_user_name(idpszName[id], charsmax(pszName));
    new 
pszValue[128];    
    
    if(
nvault_get(g_vaultfmt("%s"pszName[id]), pszValuecharsmax(pszValue))) 
    {
        new 
skinUser[7][32];
        
parse(pszValueskinUser[1], charsmax(skinUser), skinUser[2]);

        
player_item[1][id] = str_to_num(skinUser[1]);
        
player_item[2][id] = str_to_num(skinUser[2]);        
    }
    return 
PLUGIN_CONTINUE;
}
public 
SaveModels(id){
    
    new 
pszName[33][64]; get_user_name(idpszName[id], charsmax(pszName));

    
nvault_set(g_vaultfmt("%s"pszName[id]), fmt("%i %i"player_item[1][id], player_item[2][id]));
    
    return 
PLUGIN_CONTINUE;
}

public 
Set_Model(id) {
    
    new 
piWeapon get_user_weapon(id);
    
    if (
piWeapon == CSW_KNIFE) {
        
        
set_pev(idpev_viewmodel2KnifeModels[player_item[1][id]]);
    }
    if(
piWeapon == CSW_P90) {
        
        
set_pev(idpev_viewmodel2P90Models[player_item[2][id]]);
    }

    return 
PLUGIN_CONTINUE;
}

public 
CurWeapon(id) {
    if (!
is_user_alive(id)) {
        return 
PLUGIN_HANDLED;
    }
    
    new 
weapon get_user_weapon(id);
    
    switch (
weapon) {
        case 
CSW_KNIFE: {
            
Set_Model(id)
        }
        case 
CSW_P90: {
            
Set_Model(id)
        }        
    }

    return 
PLUGIN_CONTINUE;

It's about:
- Using code more wisely,
- optimization,
- shortening the insane functions and lines.

I know, I know, the code is tragic and you can cry over it.
Krystek. is offline
 


Thread Tools
Display Modes

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 21:22.


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