Help Menu weapon adm spawn Set_task

Ако имате затруднения при изработката/преработката на даден плъгин - пишете тук, ще се опитаме да ви помогнем!
Аватар
GGzBoy
Извън линия
Foreigner
Foreigner
Мнения: 63
Регистриран на: 28 Мар 2020, 16:42
Се отблагодари: 16 пъти
Получена благодарност: 1 път

Help Menu weapon adm spawn Set_task

Мнение от GGzBoy » 19 Апр 2020, 17:22

I would like a help with the set_task function and see if there are any more errors in this menu, which only opens for administrators at each spawn
I think I started the menu well but I didn't understand this set_task with random_float

Код за потвърждение: Избери целия код

#include <amxmodx> 
#include <cstrike> 
#include <fun> 
#include <amxmisc>  
#include <hamsandwich> 


#define PLUGIN    "Armas"  
#define AUTHOR    "amxx-bg"  
#define VERSION    "1.0"  

public plugin_init() 
{ 
    register_plugin("amxx-bg menu weapon", "1.0", "amxx-bg'") 
    
    //Hamsandwich 
    RegisterHam(Ham_Spawn, "player", "FwdPlayerSpawnPost", 1) 
} 

public delay_spawn(id)
{
	if (is_user_admin(id))
	{
		ShowArmas(id);
	}
	return 0;
}

public FwdPlayerSpawnPost(id)
{
    if (!is_user_alive(id))
	{
		return 1;
	}
	set_task
} 

public ShowArmas(id) 
{ 
    if(is_user_alive(id)) 
    {  
                new menu = menu_create("amxx-bg menu weapon", "Armas_handler", "Ham_Spawn");  
                
                menu_additem(menu, "AK47", "1", 0);  
                menu_additem(menu, "M4A1", "2", 0);  
                menu_additem(menu, "AWP", "3", 0);  
                menu_additem(menu, "M3", "4", 0);   
                menu_additem(menu, "FAMAS", "5", 0);                 
                menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);  
                
                menu_display(id, menu, 0);  
               
}

public Armas_handler(id, menu, item)  
{  
	if (item == -3)
	{
		menu_destroy(menu);
		return 1;
	}
	new data[6];
	new szName[64];
	new access;
	new callback;
	menu_item_getinfo(menu, item, access, data, 5, szName, 63, callback);
	new key = str_to_num(data);
	switch (key)
	{
		case 1:
		{
			give_item(id, "weapon_ak47");
			cs_set_user_bpammo(id, 28, 999);
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_flashbang");
			give_item(id, "weapon_flashbang");
			ShowPistolas(id);
		}
		case 2:
		{
			give_item(id, "weapon_m4a1");
			cs_set_user_bpammo(id, 22, 999);
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_flashbang");
			give_item(id, "weapon_flashbang");
			ShowPistolas(id);
		}
		case 3:
		{
			give_item(id, "weapon_awp");
			cs_set_user_bpammo(id, 18, 999);
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_flashbang");
			give_item(id, "weapon_flashbang");
			ShowPistolas(id);
		}
		case 4:
		{
			give_item(id, "weapon_m3");
			cs_set_user_bpammo(id, 21, 999);
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_flashbang");
			give_item(id, "weapon_flashbang");
			ShowPistolas(id);
		}
		case 5:
		{
			give_item(id, "weapon_famas");
			cs_set_user_bpammo(id, 15, 999);
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_flashbang");
			give_item(id, "weapon_flashbang");
			ShowPistolas(id);
		}
		default:
		{
		}
	}
	menu_destroy(menu);
	return 1;
}
public ShowPistolas(id)
{
	new menu = menu_create("amxx-bg menu weapon", "Pistolas_handler", "Ham_Spawn");  
                
                menu_additem(menu, "Usp", "1", 0);  
                menu_additem(menu, "Deagle", "2", 0);  
                menu_additem(menu, "Glock", "3", 0);  
                menu_additem(menu, "Five-Seven", "4", 0);   
                menu_additem(menu, "Dual Elite", "5", 0);                 
                menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);  
                
                menu_display(id, menu, 0);  
               
}

public Pistolas_handler(id, menu, item)  
{  
	if (item == -3)
	{
		menu_destroy(menu);
		return 1;
	}
	new data[6];
	new szName[64];
	new access;
	new callback;
	menu_item_getinfo(menu, item, access, data, 5, szName, 63, callback);
	new key = str_to_num(data);
	switch (key)
	{
		case 1:
		{
			give_item(id, "weapon_usp");
			cs_set_user_bpammo(id, 16, 999);
		}
		case 2:
		{
			give_item(id, "weapon_deagle");
			cs_set_user_bpammo(id, 26, 999);
		}
		case 3:
		{
			give_item(id, "weapon_glock18");
			cs_set_user_bpammo(id, 17, 999);
		}
		case 4:
		{
			give_item(id, "weapon_fiveseven");
			cs_set_user_bpammo(id, 11, 999);
		}
		case 5:
		{
			give_item(id, "weapon_elite");
			cs_set_user_bpammo(id, 10, 999);
		}
		default:
		{		
		}
	}
	menu_destroy(menu);
	return 1;
}

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Help Menu weapon adm spawn Set_task

Мнение от OciXCrom » 19 Апр 2020, 20:43

What do you want to do exactly?
Using set_task will make the menu display after X seconds.
random_float generates a random number. Why do you need that?

Аватар
GGzBoy
Извън линия
Foreigner
Foreigner
Мнения: 63
Регистриран на: 28 Мар 2020, 16:42
Се отблагодари: 16 пъти
Получена благодарност: 1 път

Help Menu weapon adm spawn Set_task

Мнение от GGzBoy » 19 Апр 2020, 22:01

OciXCrom написа: 19 Апр 2020, 20:43 What do you want to do exactly?
Using set_task will make the menu display after X seconds.
random_float generates a random number. Why do you need that?
I want the menu to open every time a respawn adm
the menu is open until the adm choose the weapons and the menu is only for adm

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Help Menu weapon adm spawn Set_task

Мнение от OciXCrom » 19 Апр 2020, 22:45

Then you don't need set_task. Use ShowArmas(id) directly.

Аватар
GGzBoy
Извън линия
Foreigner
Foreigner
Мнения: 63
Регистриран на: 28 Мар 2020, 16:42
Се отблагодари: 16 пъти
Получена благодарност: 1 път

Help Menu weapon adm spawn Set_task

Мнение от GGzBoy » 19 Апр 2020, 23:19

AMX Mod X Compiler 1.9.0.5247
Copyright (c) 1997-2006 ITB CompuPhase
Copyright (c) 2004-2013 AMX Mod X Team

Warning: Function "FwdPlayerSpawnPost" should return a value on line 36
Warning: Loose indentation on line 55
Error: Invalid expression, assumed zero on line 55
Error: Undefined symbol "Armas_handler" on line 55
Error: Undefined symbol "item" on line 55
Error: Too many error messages on one line on line 55

Compilation aborted.
4 Errors.

Аватар
atmax
Извън линия
Потребител
Потребител
Мнения: 492
Регистриран на: 22 Мар 2018, 15:06
Се отблагодари: 37 пъти
Получена благодарност: 43 пъти

Help Menu weapon adm spawn Set_task

Мнение от atmax » 20 Апр 2020, 09:18

First: On line #35 you should return a value instead of set_task. Use the return values given with each include.
For example: You use a forward from HamSandwich, then you should use HAM_* returns.

These are the types of return:
PLUGIN_CONTINUE = HAM_IGNORED
PLUGIN_HANDLED = HAM_SUPERCEDE

Second: You dont use menu_create function correctly. Check this: https://www.amxmodx.org/api/newmenus/menu_create
That's why you are receiving those errors.
Rest in peace my friend I always will remember you! 🖤👊

Аватар
GGzBoy
Извън линия
Foreigner
Foreigner
Мнения: 63
Регистриран на: 28 Мар 2020, 16:42
Се отблагодари: 16 пъти
Получена благодарност: 1 път

Help Menu weapon adm spawn

Мнение от GGzBoy » 20 Апр 2020, 18:17

I fixed all the errors thank you very much

Код за потвърждение: Избери целия код

#include <amxmodx> 
#include <cstrike> 
#include <fun> 
#include <amxmisc>  
#include <hamsandwich> 


#define PLUGIN    "Armas"  
#define AUTHOR    "amxx-bg"  
#define VERSION    "1.0"  

new menu;

public plugin_init() 
{ 
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_plugin("amxx-bg menu weapon", "1.0", "amxx-bg" );	 
	RegisterHam(Ham_Spawn, "player", "FwdPlayerSpawnPost", 1); //Hamsandwich 
} 

public FwdPlayerSpawnPost(id)
{
    if(is_user_alive(id) && get_user_flags(id) & ADMIN_KICK)
        menu_display(id, menu);
}

public ShowArmas(id) 
{
	menu = menu_create("amxx-bg menu weapon", "Armas_handler", 3);  
                
	menu_additem( menu, "AK47", "1", 0);  
	menu_additem( menu, "M4A1", "2", 0);  
	menu_additem( menu, "AWP", "3", 0);  
	menu_additem( menu, "M3", "4", 0);   
	menu_additem( menu, "FAMAS", "5", 0);                 
	menu_setprop( menu, MPROP_EXIT, MEXIT_ALL);  
	menu_display(id, menu, 0);
	return PLUGIN_HANDLED;
}
public Armas_handler(id, menu, item)  
{  
	if (item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED
	}
	new data[6];
	new szName[64];
	new access;
	new callback;
	menu_item_getinfo(menu, item, access, data, 5, szName, 63, callback);
	new key = str_to_num(data);
	switch (key)
	{
		case 1:
		{
			give_item(id, "weapon_ak47");
			cs_set_user_bpammo(id, 28, 999);
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_flashbang");
			give_item(id, "weapon_flashbang");
			ShowPistolas(id);
		}
		case 2:
		{
			give_item(id, "weapon_m4a1");
			cs_set_user_bpammo(id, 22, 999);
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_flashbang");
			give_item(id, "weapon_flashbang");
			ShowPistolas(id);
		}
		case 3:
		{
			give_item(id, "weapon_awp");
			cs_set_user_bpammo(id, 18, 999);
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_flashbang");
			give_item(id, "weapon_flashbang");
			ShowPistolas(id);
		}
		case 4:
		{
			give_item(id, "weapon_m3");
			cs_set_user_bpammo(id, 21, 999);
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_flashbang");
			give_item(id, "weapon_flashbang");
			ShowPistolas(id);
		}
		case 5:
		{
			give_item(id, "weapon_famas");
			cs_set_user_bpammo(id, 15, 999);
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_flashbang");
			give_item(id, "weapon_flashbang");
			ShowPistolas(id);
		}
		default:
		{
		}
	}
	menu_destroy(menu);
	return PLUGIN_HANDLED;
}
public ShowPistolas(id)
{  

	menu = menu_create("amxx-bg menu weapon", "Pistolas_handler", 3);
	
	menu_additem(menu, "Usp", "1", 0);
	menu_additem(menu, "Deagle", "2", 0);
	menu_additem(menu, "Glock", "3", 0);
	menu_additem(menu, "Five-Seven", "4", 0); 
	menu_additem(menu, "Dual Elite", "5", 0);              
	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
                
	menu_display(id, menu, 0);
}
public Pistolas_handler(id, menu, item)  
{  
	if (item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	new data[6];
	new szName[64];
	new access;
	new callback;
	menu_item_getinfo(menu, item, access, data, 5, szName, 63, callback);
	new key = str_to_num(data);
	switch (key)
	{
		case 1:
		{
			give_item(id, "weapon_usp");
			cs_set_user_bpammo(id, 16, 999);
		}
		case 2:
		{
			give_item(id, "weapon_deagle");
			cs_set_user_bpammo(id, 26, 999);
		}
		case 3:
		{
			give_item(id, "weapon_glock18");
			cs_set_user_bpammo(id, 17, 999);
		}
		case 4:
		{
			give_item(id, "weapon_fiveseven");
			cs_set_user_bpammo(id, 11, 999);
		}
		case 5:
		{
			give_item(id, "weapon_elite");
			cs_set_user_bpammo(id, 10, 999);
		}
		default:
		{		
		}
	}
	menu_destroy(menu);
	return PLUGIN_HANDLED;
}
Последно промяна от GGzBoy на 20 Апр 2020, 21:15, променено общо 1 път.

Аватар
atmax
Извън линия
Потребител
Потребител
Мнения: 492
Регистриран на: 22 Мар 2018, 15:06
Се отблагодари: 37 пъти
Получена благодарност: 43 пъти

Help Menu weapon adm spawn Set_task

Мнение от atmax » 20 Апр 2020, 19:06

On line 17 and 110 you are using space instead of space use TAB and you are using one variable menu on two places first you use menu for rifles then for pistols. Learn about sub menus this will help you.
This is an example what you are doing:
You are using menu to add first item AK then you are using same menu to register new item - Usp
Rest in peace my friend I always will remember you! 🖤👊

Аватар
GGzBoy
Извън линия
Foreigner
Foreigner
Мнения: 63
Регистриран на: 28 Мар 2020, 16:42
Се отблагодари: 16 пъти
Получена благодарност: 1 път

Help Menu weapon adm spawn Set_task

Мнение от GGzBoy » 20 Апр 2020, 21:16

just another help the menu does not open when I spawn
my server has infinite spawn example: every 5 seconds the players that die are born i want this menu just trim adm every time he da spawn the menu opens and he chooses a rifle and a pistol

Аватар
atmax
Извън линия
Потребител
Потребител
Мнения: 492
Регистриран на: 22 Мар 2018, 15:06
Се отблагодари: 37 пъти
Получена благодарност: 43 пъти

Help Menu weapon adm spawn Set_task

Мнение от atmax » 21 Апр 2020, 09:01

First: menu_create(const title[], const handler[], ml=0);
Last parameter is unused should be 0:
@param ml Unused (should be 0).
Second: Better to use boolean to open this menu I made it for you. Here is the code:

Код за потвърждение: Избери целия код

#include <amxmodx> 
#include <cstrike> 
#include <fun> 
#include <amxmisc>  
#include <hamsandwich> 


#define PLUGIN    "Armas"  
#define AUTHOR    "amxx-bg"  
#define VERSION    "1.0"  

new menu;
new bool:menu_enabled[33];

public plugin_init() 
{ 
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_plugin("amxx-bg menu weapon", "1.0", "amxx-bg" );	 
	RegisterHam(Ham_Spawn, "player", "FwdPlayerSpawnPost", 1); //Hamsandwich 
} 

public client_putinserver(id)
{
	menu_enabled[id] = true;
}
public FwdPlayerSpawnPost(id)
{
	if(!is_user_alive(id)) //If player is dead
		return PLUGIN_HANDLED //Dont do anything
		
	if(!(get_user_flags(id) & ADMIN_KICK)) //If player doesn't have ADMIN_KICK
		return PLUGIN_HANDLED //Dont do anything
	
	if(menu_enabled[id]) //If menu_enabled is true
	{
		strip_user_weapons(id); //Strip user weapons to not duplicate
		give_item(id, "weapon_knife"); //give him only a knife
		ShowArmas(id); //And finally show him weapon menu
	}
	return PLUGIN_CONTINUE //The plugin continues to work.
}

public ShowArmas(id)
{
	menu = menu_create("amxx-bg menu weapon", "Armas_handler");  
                
	menu_additem( menu, "AK47", "1", 0);  
	menu_additem( menu, "M4A1", "2", 0);  
	menu_additem( menu, "AWP", "3", 0);  
	menu_additem( menu, "M3", "4", 0);   
	menu_additem( menu, "FAMAS", "5", 0);                 
	menu_setprop( menu, MPROP_EXIT, MEXIT_ALL);  
	menu_display(id, menu, 0);
	return PLUGIN_HANDLED;
}
public Armas_handler(id, menu, item)  
{  
	if (item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED
	}
	new data[6];
	new szName[64];
	new access;
	new callback;
	menu_item_getinfo(menu, item, access, data, 5, szName, 63, callback);
	new key = str_to_num(data);
	switch (key)
	{
		case 1:
		{
			give_item(id, "weapon_ak47");
			cs_set_user_bpammo(id, 28, 999);
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_flashbang");
			give_item(id, "weapon_flashbang");
			ShowPistolas(id);
		}
		case 2:
		{
			give_item(id, "weapon_m4a1");
			cs_set_user_bpammo(id, 22, 999);
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_flashbang");
			give_item(id, "weapon_flashbang");
			ShowPistolas(id);
		}
		case 3:
		{
			give_item(id, "weapon_awp");
			cs_set_user_bpammo(id, 18, 999);
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_flashbang");
			give_item(id, "weapon_flashbang");
			ShowPistolas(id);
		}
		case 4:
		{
			give_item(id, "weapon_m3");
			cs_set_user_bpammo(id, 21, 999);
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_flashbang");
			give_item(id, "weapon_flashbang");
			ShowPistolas(id);
		}
		case 5:
		{
			give_item(id, "weapon_famas");
			cs_set_user_bpammo(id, 15, 999);
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_flashbang");
			give_item(id, "weapon_flashbang");
			ShowPistolas(id);
		}
		default:
		{
		}
	}
	menu_destroy(menu);
	return PLUGIN_HANDLED;
}
public ShowPistolas(id)
{  

	menu = menu_create("amxx-bg menu weapon", "Pistolas_handler");
	
	menu_additem(menu, "Usp", "1", 0);
	menu_additem(menu, "Deagle", "2", 0);
	menu_additem(menu, "Glock", "3", 0);
	menu_additem(menu, "Five-Seven", "4", 0); 
	menu_additem(menu, "Dual Elite", "5", 0);              
	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
                
	menu_display(id, menu, 0);
}
public Pistolas_handler(id, menu, item)  
{  
	if (item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	new data[6];
	new szName[64];
	new access;
	new callback;
	menu_item_getinfo(menu, item, access, data, 5, szName, 63, callback);
	new key = str_to_num(data);
	switch (key)
	{
		case 1:
		{
			give_item(id, "weapon_usp");
			cs_set_user_bpammo(id, 16, 999);
		}
		case 2:
		{
			give_item(id, "weapon_deagle");
			cs_set_user_bpammo(id, 26, 999);
		}
		case 3:
		{
			give_item(id, "weapon_glock18");
			cs_set_user_bpammo(id, 17, 999);
		}
		case 4:
		{
			give_item(id, "weapon_fiveseven");
			cs_set_user_bpammo(id, 11, 999);
		}
		case 5:
		{
			give_item(id, "weapon_elite");
			cs_set_user_bpammo(id, 10, 999);
		}
		default:
		{		
		}
	}
	menu_destroy(menu);
	return PLUGIN_HANDLED;
}
public client_disconnected(id)
{
	menu_enabled[id] = false;
}
Now I will expain to you how its done:
Line #13: First create your bool -> new bool:menu_enabled[33];
Line #22-25: When player join in server you should enable menu for him :

Код за потвърждение: Избери целия код

public client_putinserver(id)
{
	menu_enabled[id] = true;
}
Look at the comments on FwdPlayerSpawnPost function! There you will see an explanation

And last when he disconnect disable the menu:

Код за потвърждение: Избери целия код

public client_disconnected(id)
{
	menu_enabled[id] = false;
}
Rest in peace my friend I always will remember you! 🖤👊

Заключено
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Помощ в скриптирането”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 24 госта