AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Need Help !!! (https://forums.alliedmods.net/showthread.php?t=337673)

PrO_NiNjA_08 05-06-2022 14:42

Need Help !!!
 
Hi , my friend made a vipmenu plugin but after 4-5 rounds server start crashing can you pls check whats wrong with this plugin.
+ CPU Usage is usally around 4-5% but after this plugin is on it goes on 95% :/ i think bcz of cpu usage server crashing anyways pls check the code , thank you :)

Code:

#include <amxmodx>
#include <colorchat>
#include <cstrike>
#include <engine>
#include <fun>
#include <hamsandwich>
#include <stripweapons>

forward amxbans_admin_connect(id);

new Array:g_Array, CsArmorType:armortype, bool:g_Vip[33], gRound=0, g_Hudmsg,
menu, menu_callback_handler, weapon_id;

new const g_Langcmd[][]={"say /vips","say_team /vips","say /vip","say_team /vip"};

public plugin_init(){
        register_plugin("VIP MENU - EXTRAS", "1.0", "PrO<>NiNjA");
        register_event("DeathMsg", "DeathMsg", "a");
        RegisterHam(Ham_Spawn, "player", "SpawnedEventPre", 1);
        register_event("HLTV", "event_new_round", "a", "1=0", "2=0");
        register_logevent("GameCommencing", 2, "1=Game_Commencing");
        register_message(get_user_msgid("ScoreAttrib"), "VipStatus");
        g_Array=ArrayCreate(64,32);
        for(new i;i<sizeof g_Langcmd;i++){
                register_clcmd(g_Langcmd[i], "ShowVips");
        }
        g_Hudmsg=CreateHudSyncObj();
        register_event("Damage", "damage", "b", "2!0", "3=0", "4!0");
}
public client_authorized(id , const authid[]){
        if(get_user_flags(id) & 524288 == 524288){
                client_authorized_vip(id);
        }
}
public client_authorized_vip(id){
        g_Vip[id]=true;
        new g_Name[64];
        get_user_name(id,g_Name,charsmax(g_Name));
       
        new g_Size = ArraySize(g_Array);
        new szName[64];
       
        for(new i = 0; i < g_Size; i++){
                ArrayGetString(g_Array, i, szName, charsmax(szName));
               
                if(equal(g_Name, szName)){
                        return 0;
                }
        }
        ArrayPushString(g_Array,g_Name);
        set_hudmessage(24, 190, 220, 0.25, 0.2, 0, 6.0, 6.0);
        ShowSyncHudMsg(0, g_Hudmsg, "VIP %s JOINED THE SERVER!",g_Name);
       
        return PLUGIN_CONTINUE;
}
public client_disconnected(id){
        if(g_Vip[id]){
                client_disconnect_vip(id);
        }
}
public client_disconnect_vip(id){
        g_Vip[id]=false;
        new Name[64];
        get_user_name(id,Name,charsmax(Name));
       
        new g_Size = ArraySize(g_Array);
        new g_Name[64];
       
        for(new i = 0; i < g_Size; i++){
                ArrayGetString(g_Array, i, g_Name, charsmax(g_Name));
               
                if(equal(g_Name,Name)){
                        ArrayDeleteItem(g_Array,i);
                        break;
                }
        }
}
public menu_6_handler(id){
        cs_set_user_armor(id, cs_get_user_armor(id,armortype)+100, 1);
        give_item(id, "item_thighpack");
}
public menu_4_handler(id){
        cs_set_user_money(id, min(cs_get_user_money(id)+16000, 16000), 1);
        give_item(id, "item_thighpack");
}
public menu_5_handler(id){
        new henum=(user_has_weapon(id,CSW_HEGRENADE)?cs_get_user_bpammo(id,CSW_HEGRENADE):0);
        give_item(id, "weapon_hegrenade");
        ++henum;
        new fbnum=(user_has_weapon(id,CSW_FLASHBANG)?cs_get_user_bpammo(id,CSW_FLASHBANG):0);
        give_item(id, "weapon_flashbang");
        ++fbnum;
        cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
        new sgnum=(user_has_weapon(id,CSW_SMOKEGRENADE)?cs_get_user_bpammo(id,CSW_SMOKEGRENADE):0);
        give_item(id, "weapon_smokegrenade");
        ++sgnum;
        give_item(id, "item_thighpack");
}
public menu_1_handler(id){
        StripWeapons(id, Secondary);
        give_item(id, "weapon_deagle");
        give_item(id, "ammo_50ae");
        weapon_id=find_ent_by_owner(-1, "weapon_deagle", id);
        if(weapon_id)cs_set_weapon_ammo(weapon_id, 7);
        cs_set_user_bpammo(id, CSW_DEAGLE, 35);
        StripWeapons(id, Primary);
        give_item(id, "weapon_ak47");
        give_item(id, "ammo_762nato");
        weapon_id=find_ent_by_owner(-1, "weapon_ak47", id);
        if(weapon_id)cs_set_weapon_ammo(weapon_id, 30);
        cs_set_user_bpammo(id, CSW_AK47, 90);
        give_item(id, "item_thighpack");
}
public menu_2_handler(id){
        StripWeapons(id, Secondary);
        give_item(id, "weapon_deagle");
        give_item(id, "ammo_50ae");
        weapon_id=find_ent_by_owner(-1, "weapon_deagle", id);
        if(weapon_id)cs_set_weapon_ammo(weapon_id, 7);
        cs_set_user_bpammo(id, CSW_DEAGLE, 35);
        StripWeapons(id, Primary);
        give_item(id, "weapon_m4a1");
        give_item(id, "ammo_556nato");
        weapon_id=find_ent_by_owner(-1, "weapon_m4a1", id);
        if(weapon_id)cs_set_weapon_ammo(weapon_id, 30);
        cs_set_user_bpammo(id, CSW_M4A1, 90);
        give_item(id, "item_thighpack");
}
public menu_3_handler(id){
        StripWeapons(id, Secondary);
        give_item(id, "weapon_deagle");
        give_item(id, "ammo_50ae");
        weapon_id=find_ent_by_owner(-1, "weapon_deagle", id);
        if(weapon_id)cs_set_weapon_ammo(weapon_id, 7);
        cs_set_user_bpammo(id, CSW_DEAGLE, 35);
        set_hudmessage(0, 255, 0, -1.0, -1.0)
        show_hudmessage(id, "<Hudmessage>")
        StripWeapons(id, Primary);
        give_item(id, "weapon_awp");
        give_item(id, "ammo_338magnum");
        weapon_id=find_ent_by_owner(-1, "weapon_awp", id);
        if(weapon_id)cs_set_weapon_ammo(weapon_id, 10);
        cs_set_user_bpammo(id, CSW_AWP, 30);
        give_item(id, "item_thighpack");
}
public DeathMsg(){
        new killer=read_data(1);
        new victim=read_data(2);
       
        if(is_user_alive(killer) && g_Vip[killer] && get_user_team(killer) != get_user_team(victim)){
                DeathMsgVip(killer,victim,read_data(3));
        }
}
public DeathMsgVip(kid,vid,hs){
        set_user_health(kid, min(get_user_health(kid)+(hs?10:5),75));
}
public SpawnedEventPre(id){
        if(g_Vip[id]){
                if(is_user_alive(id)){
                        SpawnedEventPreVip(id);
                }
        }
}
public SpawnedEventPreVip(id){
        show_vip_menu(id);
        new g_Model[64];
        formatex(g_Model,charsmax(g_Model),"%s",get_user_team(id) == 1 ? "vip_tt" : "vip_ct");
        cs_set_user_model(id,g_Model);
}
public show_vip_menu(id){
        menu=menu_create("\rMenu VIPa","menu_handler");
        menu_callback_handler=menu_makecallback("menu_callback");
        new bool:active=false, num=-1;
        menu_additem(menu,"\y[\wAK47\y] - \y[\wDEAGLE\y]","",0,menu_callback_handler);
        if(menu_callback(id, menu, ++num)==ITEM_ENABLED){
                active=true;
        }
        menu_additem(menu,"\y[\wM4A1\y] - \y[\wDEAGLE\y]","",0,menu_callback_handler);
        if(menu_callback(id, menu, ++num)==ITEM_ENABLED){
                active=true;
        }
        menu_additem(menu,"\y[\wAWP\y] - \y[\wDEAGLE\y]","",0,menu_callback_handler);
        if(menu_callback(id, menu, ++num)==ITEM_ENABLED){
                active=true;
        }
        menu_additem(menu,"\w+16000$","",0,menu_callback_handler);
        if(menu_callback(id, menu, ++num)==ITEM_ENABLED){
                active=true;
        }
        menu_additem(menu,"\wHE - SG - FB","",0,menu_callback_handler);
        if(menu_callback(id, menu, ++num)==ITEM_ENABLED){
                active=true;
        }
        menu_additem(menu,"\wHELMET - KEVLAR","",0,menu_callback_handler);
        if(menu_callback(id, menu, ++num)==ITEM_ENABLED){
                active=true;
        }
       
        if(active){
                menu_setprop(menu,MPROP_EXITNAME,"\yCLOSE");
                menu_setprop(menu,MPROP_TITLE,"\r[RPGaming] \yVIP MENU :");
                menu_setprop(menu,MPROP_NUMBER_COLOR,"\w");
                menu_display(id, menu);
        } else {
                menu_destroy(menu);
        }
}
public event_new_round(){
        ++gRound;
}
public GameCommencing(){
        gRound=0;
}
public menu_callback(id, menu, item){
        if(is_user_alive(id)){
                if(gRound>=3){
                        if(item==1){
                                return ITEM_ENABLED;
                        }
                        if(item==2){
                                return ITEM_ENABLED;
                        }
                        if(item==3){
                                return ITEM_ENABLED;
                        }
                        if(item==4){
                                return ITEM_ENABLED;
                        }
                }
                if(gRound>=1){
                        if(item==5){
                                return ITEM_ENABLED;
                        }
                        if(item==6){
                                return ITEM_ENABLED;
                        }
                }
        }
        return ITEM_DISABLED;
}
public menu_handler(id, menu, item){
        if(is_user_alive(id)){
                if(gRound>=3){
                        if(item==1){
                                menu_1_handler(id);
                        }
                        if(item==2){
                                menu_2_handler(id);
                        }
                        if(item==3){
                                menu_3_handler(id);
                        }
                        if(item==4){
                                menu_4_handler(id);
                        }
                }
                if(gRound>=1){
                        if(item==5){
                                menu_5_handler(id);
                        }
                        if(item==6){
                                menu_6_handler(id);
                        }
                }
        }
        menu_destroy(menu);
        return PLUGIN_HANDLED;
}
public VipStatus(){
        new id=get_msg_arg_int(1);
        if(is_user_alive(id) && g_Vip[id]){
                set_msg_arg_int(2, ARG_BYTE, get_msg_arg_int(2)|4);
        }
}
public ShowVips(id){
        new g_Name[64],g_Message[192];
       
        new g_Size=ArraySize(g_Array);
       
        for(new i = 0; i < g_Size; i++){
                ArrayGetString(g_Array, i, g_Name, charsmax(g_Name));
               
                add(g_Message, charsmax(g_Message), g_Name);
               
                if(i == g_Size - 1){
                        add(g_Message, charsmax(g_Message), ".");
                }
                else{
                        add(g_Message, charsmax(g_Message), ", ");
                }
        }
        ColorChat(id,GREEN,"^x04ONLINE VIPS : %s", g_Message);
        return PLUGIN_CONTINUE;
}
public client_infochanged(id){
        if(g_Vip[id]){
                new szName[64];
                get_user_info(id,"name",szName,charsmax(szName));
               
                new Name[64];
                get_user_name(id,Name,charsmax(Name));
               
                if(!equal(szName,Name)){
                        ArrayPushString(g_Array,szName);
                       
                        new g_Size=ArraySize(g_Array);
                        new g_Name[64];
                        for(new i = 0; i < g_Size; i++){
                                ArrayGetString(g_Array, i, g_Name, charsmax(g_Name));
                               
                                if(equal(g_Name,Name)){
                                        ArrayDeleteItem(g_Array,i);
                                        break;
                                }
                        }
                }
        }
}
public plugin_end(){
        ArrayDestroy(g_Array);
}
public damage(id){
        new attacker=get_user_attacker(id);
        new damage=read_data(2);
       
        if(g_Vip[id]){
                set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1);
                ShowSyncHudMsg(id, g_Hudmsg, "[%i]^n", damage);
        }
        if(is_user_connected(attacker) && g_Vip[attacker]){
                set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1);
                ShowSyncHudMsg(attacker, g_Hudmsg, "[%i]^n", damage);
        }
}
public plugin_precache(){
        precache_model("models/player/vip_ct/vip_ct.mdl");
        precache_model("models/player/vip_tt/vip_tt.mdl");
}

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/



All times are GMT -4. The time now is 21:22.

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