Raised This Month: $ Target: $400
 0% 

Last Choosen Weapon Menu


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
m4m3ts
Senior Member
Join Date: Jun 2012
Old 05-12-2013 , 23:46   Last Choosen Weapon Menu
Reply With Quote #1

i have a simple weapon menu:

PHP Code:
#include <amxmodx>
#include <hamsandwich>

public plugin_init()
{
    
RegisterHam(Ham_Spawn"player""PlayerSpawn"1);
    
register_clcmd("say xp""MyMenu")
}

public 
PlayerSpawn(id)
{
    
client_cmd(id"say xp")
}
public 
MyMenu (id)
{
    new 
menu menu_create("Weapon Menu","menu_handler")
    
menu_additem(menu"Skull4","1",0);
    
menu_additem(menu"Skulllss4","2",0);
    
menu_additem(menu"Skoll4","3",0);
    
menu_setprop(menuMPROP_EXITMEXIT_ALL)
    
menu_display(idmenu0);
    return 
PLUGIN_HANDLED
}

public 
menu_handler(idmenuitem)
{
    new 
data[6], szName[64];
    new 
accesscallback;
    
menu_item_getinfo(menuitemaccessdata,charsmax(data), szName,charsmax(szName), callback);
    new 
key str_to_num(data);
    switch(
key)
    {
        case 
1:
        {
                
client_cmd(id"skull4")
        }
        case 
2:
        {
                
client_cmd(id"say OK")
        }
        case 
3:
        {
                
client_cmd(id"say Yes")
        }
    }

I've trouble creating Previous Setup menu, in weapon menu.
can someone help me creating it in my menu ??

I want like CSDM Gun menu:
-----------------------------------------
1. New Weapons
2. Previous Setup
3. Don't Show this menu again.

Type /guns to enable this menu again
-----------------------------------------

thanks b4....
Attached Files
File Type: sma Get Plugin or Get Source (Skull-4_2.sma - 488 views - 817 Bytes)

Last edited by m4m3ts; 05-12-2013 at 23:48.
m4m3ts is offline
Unkolix
Veteran Member
Join Date: Sep 2012
Old 05-13-2013 , 00:43   Re: Last Choosen Weapon Menu
Reply With Quote #2

You can see how I did it:
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fun>
#include <cstrike>

#define PLUGIN "CSDM Gun Menu"
#define VERSION "1.0"
#define AUTHOR "Unkolix"

new HasDgl[33], HasUsp[33], HasAWP[33], HasAK47[33], HasM4A1[33], ShowMenu[33] = true;

public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_clcmd("say .guns""WeaponMenuOn")
    
    
RegisterHam(Ham_Spawn"player""fwHamPlayerSpawnPost"1);
}

public 
fwHamPlayerSpawnPost(id)
{
    if(
is_user_alive(id)) 
    {
        if(
ShowMenu[id])
        {
            
weapons(id)
        }
        else
        {
            
GiveLastWeapons(id)
            
set_task(2.0"WriteGuns"id)
        }
    }
}

public 
WriteGuns(id)
{
    
client_print(idprint_chat"Noredamas vel matyti apsilimo meniu, rasyk .guns")
}

public 
WeaponMenuOn(id)
{
    
ShowMenu[id] = true;
}

public 
weapons(id) {
    new 
menu menu_create("Apsilimo Meniu:""weaponsrod");
    
    
menu_additem(menu"Ginklai""1"0);
    
menu_additem(menu"Paskutinis pasirinkimas""2"0);
    
menu_additem(menu"2 + Nerodyti Sito Meniu""3"0);
    
    
menu_setprop(menuMPROP_EXITNAME"Iseiti.")
    
menu_setprop(menuMPROP_EXITMEXIT_ALL);
    
menu_display(idmenu0);
}

public 
weaponsrod(idmenuitem)
{
    if( 
item == MENU_EXIT )
    {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }
    new 
data[6], szName[64];
    new 
accesscallback;
    
menu_item_getinfo(menuitemaccessdata,charsmax(data), szName,charsmax(szName), callback);
    new 
key str_to_num(data);
    switch(
key)
    {
    case 
1: {                                  
            
weapons2(id)
        }
    case 
2: {     
            
GiveLastWeapons(id)
        }
    case 
3: {
            
ShowMenu[id] = false;
            
GiveLastWeapons(id)
        }
    }
    
menu_destroy(menu);
    return 
PLUGIN_CONTINUE
}

public 
GiveLastWeapons(id)
{
    
strip_user_weapons(id)
    
give_item(id"weapon_knife")
    
give_item(id"item_assaultsuit");
    
give_item(id"weapon_hegrenade");
    
give_item(id"weapon_flashbang");
    
give_item(id"weapon_flashbang");
    
give_item(id"weapon_smokegrenade");
    
    if(
HasUsp[id])
    {
        
give_item(id"weapon_usp");
        
cs_set_user_bpammo(idCSW_USP100);
    }
    else if(
HasDgl[id])
    {
        
give_item(id"weapon_deagle");
        
cs_set_user_bpammo(idCSW_DEAGLE35);
    }
    
    if(
HasM4A1[id])
    {
        
give_item(id"weapon_m4a1");
        
cs_set_user_bpammo(idCSW_M4A190);
    }
    else if(
HasAK47[id])
    {
        
give_item(id"weapon_ak47");
        
cs_set_user_bpammo(idCSW_AK4790);
    }
    else if(
HasAWP[id])
    {
        
give_item(id"weapon_awp");
        
cs_set_user_bpammo(idCSW_AWP30);
    }
}

public 
weapons2(id) {
    new 
menu menu_create("Apsilimo Ginklu Meniu 1/2:""weapons2rod");
    
    
menu_additem(menu"Desert Eagle""1"0);
    
menu_additem(menu"USP""2"0);
    
    
menu_setprop(menuMPROP_EXITNAME"Iseiti.")
    
menu_setprop(menuMPROP_EXITMEXIT_ALL);
    
menu_display(idmenu0);
}

public 
weapons2rod(idmenuitem)
{
    if( 
item == MENU_EXIT )
    {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }
    new 
data[6], szName[64];
    new 
accesscallback;
    
HasDgl[id] = false;
    
HasUsp[id] = false;
    
menu_item_getinfo(menuitemaccessdata,charsmax(data), szName,charsmax(szName), callback);
    new 
key str_to_num(data);
    switch(
key)
    {
    case 
1: {                                  
            
HasDgl[id] = true;
        }
    case 
2: {     
            
HasUsp[id] = true;
        }
    }
    
GiveLastWeapons(id)
    
weapons3(id)
    
menu_destroy(menu);
    return 
PLUGIN_CONTINUE
}

public 
weapons3(id) {
    new 
menu menu_create("Apsilimo Ginklu Meniu 2/2:""weaponsrod3");
    
    
menu_additem(menu"M4A1""1"0);
    
menu_additem(menu"AK47""2"0);
    
menu_additem(menu"AWP""3"0);
    
    
menu_setprop(menuMPROP_EXITNAME"Iseiti.")
    
menu_setprop(menuMPROP_EXITMEXIT_ALL);
    
menu_display(idmenu0);
}

public 
weaponsrod3(idmenuitem)
{
    if( 
item == MENU_EXIT )
    {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }
    new 
data[6], szName[64];
    new 
accesscallback;
    
HasM4A1[id] = false;
    
HasAK47[id] = false;
    
HasAWP[id] = false;
    
menu_item_getinfo(menuitemaccessdata,charsmax(data), szName,charsmax(szName), callback);
    
    new 
key str_to_num(data);
    switch(
key)
    {
    case 
1: {
            
HasM4A1[id] = true;
        }
    case 
2: {     
            
HasAK47[id] = true;
        }
    case 
3: {
            
HasAWP[id] = true;
        }
    }
    
GiveLastWeapons(id)
    
menu_destroy(menu);
    return 
PLUGIN_CONTINUE

But I believe it's a poor way

Last edited by Unkolix; 05-13-2013 at 00:43.
Unkolix is offline
ConnorMcLeod
Veteran Member
Join Date: Jul 2006
Location: France (95)
Old 05-13-2013 , 00:49   Re: Last Choosen Weapon Menu
Reply With Quote #3

Quote:
But I believe it's a poor way
Yes it is.


Have a look at csdm plugins sources.
__________________
- tired and retired -

- my plugins -
ConnorMcLeod is offline
m4m3ts
Senior Member
Join Date: Jun 2012
Old 05-13-2013 , 00:58   Re: Last Choosen Weapon Menu
Reply With Quote #4

Quote:
Originally Posted by Unkolix View Post
You can see how I did it:
Quote:
Originally Posted by ConnorMcLeod View Post
Have a look at csdm plugins sources.
thanks for the example...but it is difficult to understand you'rs, or csdm plugin cz it's more complicated then my menu.

for newbie like me, i hope you modify my simple menu and add a simple code of "previous Setup" menu.
thanks.

bcause i'll add a weapon from other plugin.

Last edited by m4m3ts; 05-13-2013 at 00:59.
m4m3ts is offline
ConnorMcLeod
Veteran Member
Join Date: Jul 2006
Location: France (95)
Old 05-13-2013 , 01:10   Re: Last Choosen Weapon Menu
Reply With Quote #5

First, don't use client_cmd in PlayerSpawn, this show your little skill ;)
Directly call MyMenu(id), is better, also, check that player is alive in spawn event, else you gonna have error logs.

Same in menu handler, use client_print, not client_cmd, GOD !!

So, in menu handler, use player choice to store in a variable (has to be an array)


In menu creation, if player variable is filled, add to 2 options at the end of the menu.

In menu handler, if player chooses last or last and don't ask, use the stored choice variable to give items.
And if choice is last and don't ask, store it in another global variable

So in PlayerSpawn, if that other global variable is set, give directly items instead of showing menu.



If you can't do this because it is too difficult, then post a request in the appropriated forum.
__________________
- tired and retired -

- my plugins -
ConnorMcLeod is offline
Blizzard_87
Veteran Member
Join Date: Oct 2012
Old 05-13-2013 , 02:50   Re: Last Choosen Weapon Menu
Reply With Quote #6

Quote:
Originally Posted by Unkolix View Post
You can see how I did it:
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fun>
#include <cstrike>

#define PLUGIN "CSDM Gun Menu"
#define VERSION "1.0"
#define AUTHOR "Unkolix"

new HasDgl[33], HasUsp[33], HasAWP[33], HasAK47[33], HasM4A1[33], ShowMenu[33] = true;

public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_clcmd("say .guns""WeaponMenuOn")
    
    
RegisterHam(Ham_Spawn"player""fwHamPlayerSpawnPost"1);
}

public 
fwHamPlayerSpawnPost(id)
{
    if(
is_user_alive(id)) 
    {
        if(
ShowMenu[id])
        {
            
weapons(id)
        }
        else
        {
            
GiveLastWeapons(id)
            
set_task(2.0"WriteGuns"id)
        }
    }
}

public 
WriteGuns(id)
{
    
client_print(idprint_chat"Noredamas vel matyti apsilimo meniu, rasyk .guns")
}

public 
WeaponMenuOn(id)
{
    
ShowMenu[id] = true;
}

public 
weapons(id) {
    new 
menu menu_create("Apsilimo Meniu:""weaponsrod");
    
    
menu_additem(menu"Ginklai""1"0);
    
menu_additem(menu"Paskutinis pasirinkimas""2"0);
    
menu_additem(menu"2 + Nerodyti Sito Meniu""3"0);
    
    
menu_setprop(menuMPROP_EXITNAME"Iseiti.")
    
menu_setprop(menuMPROP_EXITMEXIT_ALL);
    
menu_display(idmenu0);
}

public 
weaponsrod(idmenuitem)
{
    if( 
item == MENU_EXIT )
    {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }
    new 
data[6], szName[64];
    new 
accesscallback;
    
menu_item_getinfo(menuitemaccessdata,charsmax(data), szName,charsmax(szName), callback);
    new 
key str_to_num(data);
    switch(
key)
    {
    case 
1: {                                  
            
weapons2(id)
        }
    case 
2: {     
            
GiveLastWeapons(id)
        }
    case 
3: {
            
ShowMenu[id] = false;
            
GiveLastWeapons(id)
        }
    }
    
menu_destroy(menu);
    return 
PLUGIN_CONTINUE
}

public 
GiveLastWeapons(id)
{
    
strip_user_weapons(id)
    
give_item(id"weapon_knife")
    
give_item(id"item_assaultsuit");
    
give_item(id"weapon_hegrenade");
    
give_item(id"weapon_flashbang");
    
give_item(id"weapon_flashbang");
    
give_item(id"weapon_smokegrenade");
    
    if(
HasUsp[id])
    {
        
give_item(id"weapon_usp");
        
cs_set_user_bpammo(idCSW_USP100);
    }
    else if(
HasDgl[id])
    {
        
give_item(id"weapon_deagle");
        
cs_set_user_bpammo(idCSW_DEAGLE35);
    }
    
    if(
HasM4A1[id])
    {
        
give_item(id"weapon_m4a1");
        
cs_set_user_bpammo(idCSW_M4A190);
    }
    else if(
HasAK47[id])
    {
        
give_item(id"weapon_ak47");
        
cs_set_user_bpammo(idCSW_AK4790);
    }
    else if(
HasAWP[id])
    {
        
give_item(id"weapon_awp");
        
cs_set_user_bpammo(idCSW_AWP30);
    }
}

public 
weapons2(id) {
    new 
menu menu_create("Apsilimo Ginklu Meniu 1/2:""weapons2rod");
    
    
menu_additem(menu"Desert Eagle""1"0);
    
menu_additem(menu"USP""2"0);
    
    
menu_setprop(menuMPROP_EXITNAME"Iseiti.")
    
menu_setprop(menuMPROP_EXITMEXIT_ALL);
    
menu_display(idmenu0);
}

public 
weapons2rod(idmenuitem)
{
    if( 
item == MENU_EXIT )
    {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }
    new 
data[6], szName[64];
    new 
accesscallback;
    
HasDgl[id] = false;
    
HasUsp[id] = false;
    
menu_item_getinfo(menuitemaccessdata,charsmax(data), szName,charsmax(szName), callback);
    new 
key str_to_num(data);
    switch(
key)
    {
    case 
1: {                                  
            
HasDgl[id] = true;
        }
    case 
2: {     
            
HasUsp[id] = true;
        }
    }
    
GiveLastWeapons(id)
    
weapons3(id)
    
menu_destroy(menu);
    return 
PLUGIN_CONTINUE
}

public 
weapons3(id) {
    new 
menu menu_create("Apsilimo Ginklu Meniu 2/2:""weaponsrod3");
    
    
menu_additem(menu"M4A1""1"0);
    
menu_additem(menu"AK47""2"0);
    
menu_additem(menu"AWP""3"0);
    
    
menu_setprop(menuMPROP_EXITNAME"Iseiti.")
    
menu_setprop(menuMPROP_EXITMEXIT_ALL);
    
menu_display(idmenu0);
}

public 
weaponsrod3(idmenuitem)
{
    if( 
item == MENU_EXIT )
    {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }
    new 
data[6], szName[64];
    new 
accesscallback;
    
HasM4A1[id] = false;
    
HasAK47[id] = false;
    
HasAWP[id] = false;
    
menu_item_getinfo(menuitemaccessdata,charsmax(data), szName,charsmax(szName), callback);
    
    new 
key str_to_num(data);
    switch(
key)
    {
    case 
1: {
            
HasM4A1[id] = true;
        }
    case 
2: {     
            
HasAK47[id] = true;
        }
    case 
3: {
            
HasAWP[id] = true;
        }
    }
    
GiveLastWeapons(id)
    
menu_destroy(menu);
    return 
PLUGIN_CONTINUE

But I believe it's a poor way
this could be optimised alot. maybe even by half.

EDIT:

check this plugin out. https://forums.alliedmods.net/showpo...39&postcount=6

it shows you better way to do weapons menu with remember last choice.
__________________

Last edited by Blizzard_87; 05-13-2013 at 03:42.
Blizzard_87 is offline
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 16:21.


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