AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Open menu with command (https://forums.alliedmods.net/showthread.php?t=270530)

pafch0 08-23-2015 03:28

Open menu with command
 
Hey guys, im very limited at my skills for Pawn , i use it mostly to do basic edits.

So.. my problem is this. I used a generator from a polish website to generate a VIP Plugin. Problem is that im running a CSDM server and the vipmenu creates a conflict with the CSDM weapon menu. VIP menu pops up first and second comes the weapon menu.

So i came up with the idea to ask if you guys could help me make the plugin open the vipmenu with a command, something like /vm or /vipmenu.

The generator in question is this: VIP Generator

Thank you very much in advance!

PHP Code:

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

#define DMG_HE (1<<24)
#define IsPlayer(%1) (1<=%1<=maxPlayers)

forward amxbans_admin_connect(id);

new Array:
g_ArrayCsArmorType:armortypebool:g_FreezeTimebool:g_Vip[33], bool:g_speed[33],
g_HudmsgioidmaxPlayersmenumenu_callback_handler,
skoki[33], weapon_id;

new const 
clips[]={013, -01017030301302025303525122010301008303020273030050};
new const 
g_Langcmd[][]={"say /vips","say_team /vips","say /vipy","say_team /vipy"};

public 
plugin_init(){
    
register_plugin("VIP Ultimate""12.3.0.2""benio101 & speedkill");
    
RegisterHam(get_player_resetmaxspeed_func(), "player""fw_Player_ResetMaxSpeed"1);
    
register_logevent("logevent_round_start"2"1=Round_Start");
    
register_event("HLTV""event_new_round""a""1=0""2=0");
    
RegisterHam(Ham_Spawn"player""SpawnedEventPre"1);
    
register_logevent("RoundEnd"2"1=Round_End");
    
register_forward(FM_CmdStart"CmdStartPre");
    
RegisterHam(Ham_TakeDamage"player""takeDamage"0);
    
register_event("DeathMsg""DeathMsg""a");
    
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");
    }
    
register_clcmd("say /vip""ShowMotd");
    
set_task(30.0"ShowAdv",.flags "b");
    
g_Hudmsg=CreateHudSyncObj();
    
register_event("Damage""damage""b""2!0""3=0""4!0");
    
register_event("Damage""Damage_Wyrzucenie""b""2!=0");
}
public 
client_authorized(id){
    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 
0g_Sizei++){
        
ArrayGetString(g_ArrayiszNamecharsmax(szName));
        
        if(
equal(g_NameszName)){
            return 
0;
        }
    }
    
ArrayPushString(g_Array,g_Name);
    
set_hudmessage(241902200.250.206.06.0);
    
ShowSyncHudMsg(0g_Hudmsg"Vip %s vlezna v servera",g_Name);
    
    return 
PLUGIN_CONTINUE;
}
public 
client_disconnect(id){
    if(
g_Vip[id]){
        
client_disconnect_vip(id);
    }
}
public 
client_disconnect_vip(id){
    
g_Vip[id]=false;
    
g_speed[id]=false;
    new 
Name[64];
    
get_user_name(id,Name,charsmax(Name));
    
    new 
g_Size ArraySize(g_Array);
    new 
g_Name[64];
    
    for(new 
0g_Sizei++){
        
ArrayGetString(g_Arrayig_Namecharsmax(g_Name));
        
        if(
equal(g_Name,Name)){
            
ArrayDeleteItem(g_Array,i);
            break;
        }
    }
}
Ham:get_player_resetmaxspeed_func(){
    
#if defined Ham_CS_Player_ResetMaxSpeed
    
return IsHamValid(Ham_CS_Player_ResetMaxSpeed)?Ham_CS_Player_ResetMaxSpeed:Ham_Item_PreFrame;
    
#else
    
return Ham_Item_PreFrame;
    
#endif
}
public 
fw_Player_ResetMaxSpeed(id){
    if(
g_Vip[id]){
        if(
is_user_alive(id)){
            
fw_Player_ResetMaxSpeedVip(id);
        }
    }
}
public 
logevent_round_start(){
    
g_FreezeTime=false;
}
public 
event_new_round(){
    
g_FreezeTime=true;
}
public 
SpawnedEventPre(id){
    if(
g_Vip[id]){
        if(
is_user_alive(id)){
            
SpawnedEventPreVip(id);
        }
    }
}
public 
plugin_cfg(){
    
maxPlayers=get_maxplayers();
}
public 
SpawnedEventPreVip(id){
    
g_speed[id]=false;
    
skoki[id]=-1;
    
set_user_rendering(idkRenderFxGlowShell02550kRenderNormal25);
    
show_vip_menu(id);
}
public 
RoundEnd(){
    for(new 
i=1i<=maxPlayers; ++i){
        
g_speed[i]=false;
        if(
is_user_alive(i)){
            
fw_Player_ResetMaxSpeedVip(i);
        }
    }
    for(new 
i=1i<=maxPlayers; ++i){
        
skoki[i]=-1;
    }
    for(new 
i=1i<=maxPlayers; ++i){
        if(
is_user_alive(i)){
            
set_user_rendering(ikRenderFxNone255255255kRenderNormal16);
        }
    }
    for(new 
1<= maxPlayersi++){
        if(
is_user_alive(i) && g_Vip[i]){
            
cs_set_user_money(i,cs_get_user_money(i) + 500);
        }
    }
}
public 
menu_1_handler(id){
    
g_speed[id]=true;
    
set_user_maxspeed(id,get_user_maxspeed(id) + 350);
}
public 
fw_Player_ResetMaxSpeedVip(id){
    if(!
g_FreezeTime){
        if(
g_speed[id]){
            
set_user_maxspeed(id,get_user_maxspeed(id) + 350);
        }
    }
}
public 
CmdStartPre(iduc_handle){
    if(
g_Vip[id]){
        if(
is_user_alive(id)){
            
CmdStartPreVip(iduc_handle);
        }
    }
}
public 
CmdStartPreVip(iduc_handle){
    new 
flags pev(idpev_flags);
    if((
get_uc(uc_handleUC_Buttons) & IN_JUMP) && !(flags FL_ONGROUND) && !(pev(idpev_oldbuttons) & IN_JUMP) && skoki[id]>0){
        --
skoki[id];
        new 
Float:velocity[3];
        
pev(idpev_velocity,velocity);
        
velocity[2] = random_float(265.0,285.0);
        
set_pev(id,pev_velocity,velocity);
    } else if(
flags FL_ONGROUND && skoki[id]!=-1){
        
skoki[id] = 2;
    }
}
public 
menu_2_handler(id){
    
skoki[id]=2;
}
public 
menu_3_handler(id){
    
set_user_rendering(idkRenderFxNone0,0,0kRenderTransAlpha150);
}
public 
menu_4_handler(id){
    
set_user_health(idget_user_health(id)+50);
    
cs_set_user_armor(idmin(cs_get_user_armor(id,armortype)+10050), CS_ARMOR_VESTHELM);
}
public 
menu_6_handler(id){
    
cs_set_user_money(idcs_get_user_money(id)+20001);
}
public 
menu_5_handler(id){
    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(idCSW_FLASHBANG2);
    
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_id10);
    
cs_set_user_bpammo(idCSW_AWP30);
    
give_item(id"weapon_g3sg1");
    
give_item(id"ammo_9mm");
    
weapon_id=find_ent_by_owner(-1"weapon_g3sg1"id);
    if(
weapon_id)cs_set_weapon_ammo(weapon_id30);
    
cs_set_user_bpammo(idCSW_G3SG190);
    
give_item(id"weapon_sg550");
    
give_item(id"ammo_556nato");
    
weapon_id=find_ent_by_owner(-1"weapon_sg550"id);
    if(
weapon_id)cs_set_weapon_ammo(weapon_id30);
    
cs_set_user_bpammo(idCSW_SG55090);
}
public 
takeDamage(thisidinflictoridattackerFloat:damagedamagebits){
    if(((
IsPlayer(idattacker) && is_user_connected(idattacker) && g_Vip[idattacker] && (ioid=idattacker)) ||
    (
ioid=pev(idinflictorpev_owner) && IsPlayer(ioid) && is_user_connected(ioid) && g_Vip[ioid]))){
        if(
random(20)<1){
            
damage*=(100+20)/100;
        }
        if(
damagebits DMG_HE){
            if(
random(60)<1){
                
damage*=(100+30)/100;
            }
        }
        if(
damagebits DMG_BULLET){
            if(
get_user_weapon(ioid)==CSW_USP){
                if(
get_user_team(ioid)==2){
                    
damage*=(100+10)/100;
                }
            }
            if(
get_user_weapon(ioid)==CSW_DEAGLE){
                
damage*=(100+15)/100;
            }
            if(
get_user_weapon(ioid)==CSW_AK47){
                
damage*=(100+10)/100;
            }
            if(
get_user_weapon(ioid)==CSW_M4A1){
                
damage*=(100+10)/100;
            }
        }
    }
    
    
SetHamParamFloat(4damage);
    return 
HAM_HANDLED;
}
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(kidmin(get_user_health(kid)+(hs?40:20),300));
    
cs_set_user_money(kidcs_get_user_money(kid)+(hs?300:100));
    
recharge(kid);
}
public 
recharge(id){
    new 
wid=get_user_weapon(id);
    if(
wid){
        new 
weaponname[32], weid;
        
get_weaponname(widweaponname31);
        
weid=find_ent_by_owner(-1weaponnameid);
        if(
weid){
            
cs_set_weapon_ammo(weidclips[wid]);
        }
    }
}
public 
show_vip_menu(id){
    
menu=menu_create("\rMenu VIPa","menu_handler");
    
menu_callback_handler=menu_makecallback("menu_callback");
    new 
bool:active=falsenum=-1;
    
menu_additem(menu,"\wSkorost","",0,menu_callback_handler);
    if(
menu_callback(idmenu, ++num)==ITEM_ENABLED){
        
active=true;
    }
    
menu_additem(menu,"\wMulti Jump","",0,menu_callback_handler);
    if(
menu_callback(idmenu, ++num)==ITEM_ENABLED){
        
active=true;
    }
    
menu_additem(menu,"\wNevidimost","",0,menu_callback_handler);
    if(
menu_callback(idmenu, ++num)==ITEM_ENABLED){
        
active=true;
    }
    
menu_additem(menu,"\wExtra HP/Armor","",0,menu_callback_handler);
    if(
menu_callback(idmenu, ++num)==ITEM_ENABLED){
        
active=true;
    }
    
menu_additem(menu,"\wAWP/G3SG1/SG550","",0,menu_callback_handler);
    if(
menu_callback(idmenu, ++num)==ITEM_ENABLED){
        
active=true;
    }
    
menu_additem(menu,"\wExtra $$$","",0,menu_callback_handler);
    if(
menu_callback(idmenu, ++num)==ITEM_ENABLED){
        
active=true;
    }
    if(
active){
        
menu_setprop(menu,MPROP_EXITNAME,"Exit");
        
menu_setprop(menu,MPROP_TITLE,"\yVIP Menu");
        
menu_setprop(menu,MPROP_NUMBER_COLOR,"\r");
        
menu_display(idmenu);
    } else {
        
menu_destroy(menu);
    }
}
public 
menu_callback(idmenuitem){
    if(
is_user_alive(id)){
        if(
item==0){
            return 
ITEM_ENABLED;
        }
        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(
item==5){
            return 
ITEM_ENABLED;
        }
    }
    return 
ITEM_DISABLED;
}
public 
menu_handler(idmenuitem){
    if(
is_user_alive(id)){
        if(
item==0){
            
menu_1_handler(id);
        }
        if(
item==1){
            
menu_2_handler(id);
        }
        if(
item==2){
            
menu_3_handler(id);
        }
        if(
item==3){
            
menu_4_handler(id);
        }
        if(
item==4){
            
menu_5_handler(id);
        }
        if(
item==5){
            
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(2ARG_BYTEget_msg_arg_int(2)|4);
    }
}
public 
ShowVips(id){
    new 
g_Name[64],g_Message[192];
    
    new 
g_Size=ArraySize(g_Array);
    
    for(new 
0g_Sizei++){
        
ArrayGetString(g_Arrayig_Namecharsmax(g_Name));
        
        
add(g_Messagecharsmax(g_Message), g_Name);
        
        if(
== g_Size 1){
            
add(g_Messagecharsmax(g_Message), ".");
        }
        else{
            
add(g_Messagecharsmax(g_Message), ", ");
        }
    }
    
ColorChat(id,GREEN,"^x03Vipy ^x04na ^x03serwerze: ^x04%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 
0g_Sizei++){
                
ArrayGetString(g_Arrayig_Namecharsmax(g_Name));
                
                if(
equal(g_Name,Name)){
                    
ArrayDeleteItem(g_Array,i);
                    break;
                }
            }
        }
    }
}
public 
plugin_end(){
    
ArrayDestroy(g_Array);
}
public 
ShowMotd(id){
    
show_motd(id"vip.txt""Informacje o vipie");
}
public 
ShowAdv(){
    
ColorChat(0NORMAL"[VIP]^x04 Iskash li da razberesh kakvo ima VIP? Napishi /vip v chata!");
}
public 
damage(id){
    new 
attacker=get_user_attacker(id);
    new 
damage=read_data(2);
    
    if(
g_Vip[id]){
        
set_hudmessage(255000.450.5020.14.00.10.1, -1);
        
ShowSyncHudMsg(idg_Hudmsg"%i^n"damage);
    }
    if(
is_user_connected(attacker) && g_Vip[attacker]){
        
set_hudmessage(0100200, -1.00.5520.14.00.020.02, -1);
        
ShowSyncHudMsg(attackerg_Hudmsg"%i^n"damage);
    }
}
public 
Damage_Wyrzucenie(vid){
    new 
aid=get_user_attacker(vid);
    if(
is_user_connected(aid) && is_user_alive(vid) && g_Vip[aid] && get_user_team(aid)!=get_user_team(vid) && random(100)<5){
        
Damage_Wyrzucenie_Vip(aidvid);
    }
}
public 
Damage_Wyrzucenie_Vip(aidvid){
    
client_cmd(vid"drop");
}
public 
amxbans_admin_connect(id){
    
client_authorized(id);



siriusmd99 08-23-2015 05:27

Re: Open menu with command
 
Use set task to show one later?

pafch0 08-25-2015 17:00

Re: Open menu with command
 
Can you explain a little better? I made it clear that im not good in Pawn.

wickedd 08-25-2015 17:59

Re: Open menu with command
 
Add this to your plugin
PHP Code:

register_clcmd"say /vipmenu""show_vip_menu" ); 

then edit the code below

PHP Code:

public SpawnedEventPreVip(id){
    
g_speed[id]=false;
    
skoki[id]=-1;
    
set_user_rendering(idkRenderFxGlowShell02550kRenderNormal25);
    
show_vip_menu(id); /*DELETE OR COMMENT OUT THIS LINE*/


That should be all you need to do.

P.S. Looking at that code hurt my eyes.


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

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