Raised This Month: $51 Target: $400
 12% 

warning 217 lose indetation Gun xp


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
AurimasJ
Junior Member
Join Date: Nov 2015
Old 02-23-2016 , 17:44   warning 217 lose indetation Gun xp
Reply With Quote #1

Code:
#include <amxmodx>
#include <gunxpmod>

#define PLUGIN	"Gun Xp Mod Shop"
#define AUTHOR	"xbatista"
#define VERSION	"1.4"

#define MAX_UNLOCKS 25
#define MAX_UNLOCKS_NAME_SIZE 64
#define MAX_UNLOCKS_DESC_SIZE 128

new g_menuPosition[33], gSelected[33];

enum _:iUnlocks
{ 
UL_Knife, 
UL_Pistol, 
UL_Rifle, 
UL_Grenade,
UL_Balrog,
UL_Item 
};

//all
new g_numberofitems[iUnlocks];
new g_itemindex[iUnlocks][MAX_UNLOCKS+1];
new g_itemcost[iUnlocks][MAX_UNLOCKS+1];
new g_itemlevel[iUnlocks][MAX_UNLOCKS+1];
new g_itemaccess[iUnlocks][MAX_UNLOCKS+1];
new g_itemname[iUnlocks][MAX_UNLOCKS+1][MAX_UNLOCKS_NAME_SIZE+1];
new g_itemdesc[iUnlocks][MAX_UNLOCKS+1][MAX_UNLOCKS_DESC_SIZE+1];
new g_itemwpn[iUnlocks][MAX_UNLOCKS+1];
new bool:g_PlayerItem[33][iUnlocks][MAX_UNLOCKS+1];

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);

register_dictionary("gunxpmod.txt");

register_clcmd("say /unlocks", "menus")
register_clcmd("say unlocks", "menus")
register_clcmd("say /ul", "menus")
register_clcmd("say ul", "menus")
register_clcmd("say /noriuvip", "motd")	
register_clcmd("say /buyvip", "motd")	

register_menucmd(register_menuid("Unlocks Shop"), 1023, "action_item_upgrades");
}

public motd(id) {
show_motd(id, "http://master.cs-golden.lt/paslaugos/ordergame/vip_order_game.php?get=gold", "VIP Buy");
return PLUGIN_HANDLED;
}

public client_connect(id)
{
static i, j
for(i = 0; i < iUnlocks; ++i)
	for(j = 0; j <= MAX_UNLOCKS; ++j)
		g_PlayerItem[id][i][j] = false;
}

public menus(id)
{
	new menu = menu_create("\yUpgrade Menu", "upgrades_menu");
	new call = menu_makecallback("Call_Back");
	gSelected[id] = 0;
	new szMsg[256];
	
	format(szMsg, 255, "Knifes (%s%d\w/\r%d)", (GetItemCount(g_PlayerItem[id][UL_Knife], g_numberofitems[UL_Knife]) == g_numberofitems[UL_Knife]) ? "\r" : "\y", GetItemCount(g_PlayerItem[id][UL_Knife], g_numberofitems[UL_Knife]), g_numberofitems[UL_Knife]);
	menu_additem(menu, szMsg, _, _, g_numberofitems[UL_Knife] ? -1 : call);
	
	format(szMsg, 255, "Pistols (%s%d\w/\r%d)", (GetItemCount(g_PlayerItem[id][UL_Pistol], g_numberofitems[UL_Pistol]) == g_numberofitems[UL_Pistol]) ? "\r" : "\y", GetItemCount(g_PlayerItem[id][UL_Pistol], g_numberofitems[UL_Pistol]), g_numberofitems[UL_Pistol]);
	menu_additem(menu, szMsg, _, _, g_numberofitems[UL_Pistol] ? -1 : call);
	
	format(szMsg, 255, "Rifles (%s%d\w/\r%d)", (GetItemCount(g_PlayerItem[id][UL_Rifle], g_numberofitems[UL_Rifle]) == g_numberofitems[UL_Rifle]) ? "\r" : "\y", GetItemCount(g_PlayerItem[id][UL_Rifle], g_numberofitems[UL_Rifle]), g_numberofitems[UL_Rifle]);
	menu_additem(menu, szMsg, _, _, g_numberofitems[UL_Rifle] ? -1 : call);
	
	format(szMsg, 255, "Grenades (%s%d\w/\r%d)", (GetItemCount(g_PlayerItem[id][UL_Grenade], g_numberofitems[UL_Grenade]) == g_numberofitems[UL_Grenade]) ? "\r" : "\y", GetItemCount(g_PlayerItem[id][UL_Grenade], g_numberofitems[UL_Grenade]), g_numberofitems[UL_Grenade]);
	menu_additem(menu, szMsg, _, _, g_numberofitems[UL_Grenade] ? -1 : call);
	
	format(szMsg, 255, "Balrog (%s%d\w/\r%d)", (GetItemCount(g_PlayerItem[id][UL_Balrog], g_numberofitems[UL_Balrog]) == g_numberofitems[UL_Balrog]) ? "\r" : "\y", GetItemCount(g_PlayerItem[id][UL_Balrog], g_numberofitems[UL_Balrog]), g_numberofitems[UL_Balrog]);
	menu_additem(menu, szMsg, _, _, g_numberofitems[UL_Balrog] ? -1 : call);
	
	format(szMsg, 255, "Items (%s%d\w/\r%d)", (GetItemCount(g_PlayerItem[id][UL_Item], g_numberofitems[UL_Item]) == g_numberofitems[UL_Item]) ? "\r" : "\y", GetItemCount(g_PlayerItem[id][UL_Item], g_numberofitems[UL_Item]), g_numberofitems[UL_Item]);
	menu_additem(menu, szMsg, _, _, g_numberofitems[UL_Item] ? -1 : call);
	
	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
	
	menu_display(id, menu, 0);
	
	return PLUGIN_HANDLED;
}

public Call_Back(id, menu, item)
	return ITEM_DISABLED;

public upgrades_menu(id, menu, item)
{
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	
	gSelected[id] = item;
	g_menuPosition[id] = 0;
	display_item_upgrades(id, 0, item);
	
	menu_destroy(menu);
	return PLUGIN_HANDLED;	
}

public plugin_natives()
{
	register_native("register_gxm_item", "register_unlock")
	register_native("register_item_gxm", "register_unlock")
}

public register_unlock(plugin, params)
{
	static item_section
	item_section = get_param(5)-1
	
	g_numberofitems[item_section]++;
	g_itemindex[item_section][g_numberofitems[item_section]] = plugin;
	get_string(1, g_itemname[item_section][g_numberofitems[item_section]], MAX_UNLOCKS_NAME_SIZE)
	get_string(2, g_itemdesc[item_section][g_numberofitems[item_section]], MAX_UNLOCKS_DESC_SIZE)
	g_itemcost[item_section][g_numberofitems[item_section]] = get_param(3);
	g_itemlevel[item_section][g_numberofitems[item_section]] = get_param(4);
	g_itemaccess[item_section][g_numberofitems[item_section]] = get_param(6) ? get_param(6) : 0;
	g_itemwpn[item_section][g_numberofitems[item_section]] = get_param(7);
}

//ALL
public display_item_upgrades(id, pos, selection)
{
	if(!is_user_alive(id)) 
		return;
	
	static menuBody[510], len;
	len = 0;
	gSelected[id] = selection;
	
	if(pos < 0)
		return;
	
	new start = pos * 8
	if(start >= g_numberofitems[selection])
		start = pos = g_menuPosition[id];
	
	len += formatex(menuBody[len], sizeof menuBody - 1 - len, "%L", LANG_SERVER, "TITLE_MENU_SHOP", get_user_xp(id), get_user_max_level(id))
	
	new end = start + 8
	new keys = MENU_KEY_0
	
	if(end > g_numberofitems[selection])
		end = g_numberofitems[selection];
	
	new b = 0
	for(new a = start; a < end; ++a) 
	{
		new i = a + 1
		new money, level
		
		money = get_user_xp(id)
		level = get_user_level(id)
		
		if( g_PlayerItem[id][selection][i] ) 
			len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP_BOUGHT", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i])
		
		else if(g_itemaccess[selection][i] == GUN_FIRST_ACCESS_ID && !(get_user_flags(id) & GUN_FIRST_ACCESS))
			len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP_ACCESS", ++b, g_itemname[selection][i], GUN_FIRST_ACCESS_TEXT);
		
		else if(g_itemaccess[selection][i] == GUN_SECOND_ACCESS_ID && !(get_user_flags(id) & GUN_SECOND_ACCESS))
			len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP_ACCESS", ++b, g_itemname[selection][i], GUN_SECOND_ACCESS_TEXT);
		
		else if(g_itemaccess[selection][i] == GUN_THIRD_ACCESS_ID && !(get_user_flags(id) & GUN_THIRD_ACCESS))
			len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP_ACCESS", ++b, g_itemname[selection][i], GUN_THIRD_ACCESS_TEXT);
		
		else if(level < g_itemlevel[selection][i]) 
			len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i])
		
		else if(PatrArTuri(id, g_itemwpn[selection][i]))
			len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_NO_MORE", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i])
		
		else if( money < g_itemcost[selection][i] ) 
			len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i])
		else 
		{
			keys |= (1<<b)
			
			switch(g_itemaccess[selection][i])
			{
				case GUN_FIRST_ACCESS_ID:
					len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "ACTIVE_MENU_SHOP2", ++b, g_itemname[selection][i], GUN_FIRST_ACCESS_TEXT, g_itemcost[selection][i], g_itemlevel[selection][i])
				
				case GUN_SECOND_ACCESS_ID:
					len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "ACTIVE_MENU_SHOP2", ++b, g_itemname[selection][i], GUN_SECOND_ACCESS_TEXT, g_itemcost[selection][i], g_itemlevel[selection][i])
				
				case GUN_THIRD_ACCESS_ID:
					len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "ACTIVE_MENU_SHOP2", ++b, g_itemname[selection][i], GUN_THIRD_ACCESS_TEXT, g_itemcost[selection][i], g_itemlevel[selection][i])
				
				default:
				len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "ACTIVE_MENU_SHOP", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i])
			}
		}
	}
	
	if(end != g_numberofitems[selection])
	{
		len += formatex(menuBody[len], sizeof menuBody - 1 - len, "^n\r9. \w%L\r^n0. \w%L", id, "NEXT_MENU", id, pos ? "BACK_MENU" : "EXIT_MENU")
		keys |= MENU_KEY_9
	}
	else
	{
		len += formatex(menuBody[len], sizeof menuBody - 1 - len, "^n\r0. \w%L", id, pos ? "BACK_MENU" : "EXIT_MENU")
	}
	
	show_menu(id, keys, menuBody, -1, "Unlocks Shop")
}

public action_item_upgrades(id, key)
{
	switch(key) 
	{
		case 8: display_item_upgrades(id, ++g_menuPosition[id], gSelected[id]);
			case 9: display_item_upgrades(id, --g_menuPosition[id], gSelected[id]);
			default:
	{
		if(!is_user_alive(id))
			return PLUGIN_HANDLED;
			
			++key
			new money
			new plugin_id = g_itemindex[gSelected[id]][g_menuPosition[id] * 8 + key]
			new item_id = g_menuPosition[id] * 8 + key
			new func = get_func_id("gxm_item_enabled", plugin_id)
			
			money = get_user_xp(id)
			new cost = g_itemcost[gSelected[id]][item_id];
			
			if(money >= cost)
			{
				callfunc_begin_i(func, plugin_id)
				callfunc_push_int(id)
				callfunc_end()
				
				g_PlayerItem[id][gSelected[id]][item_id] = true
				
				new overall = money - cost
				set_user_xp(id, overall)
				
				client_printcolor(1, "/yItem Bought Successfully, Item: /g%s.", g_itemname[gSelected[id]][item_id])
				client_printcolor(1, "/yDescription: /g%s.", g_itemdesc[gSelected[id]][item_id])
				display_item_upgrades(id, g_menuPosition[id], gSelected[id]);
			}
		}
	}
	return PLUGIN_HANDLED;
}

stock client_printcolor ( const id, const input[], any:... )
{
	new iCount = 1, iPlayers[32]
	
	new sNewMsg[191]
	vformat( sNewMsg, charsmax ( sNewMsg ), input, 3 )
	//format ( sNewMsg, charsmax ( sNewMsg ), "^4[x^1 %s", sNewMsg )
	
	replace_all ( sNewMsg, charsmax ( sNewMsg ), "/g", "^4") // green txt
	replace_all ( sNewMsg, charsmax ( sNewMsg ), "/y", "^1") // orange txt
	replace_all ( sNewMsg, charsmax ( sNewMsg ), "/t", "^3") // team txt
	
	if ( id )
		iPlayers[0] = id
	else
		get_players ( iPlayers, iCount, "ch" )
	
	for ( new i; i < iCount; i++ )
	{
		if ( is_user_connected ( iPlayers[i] ) )
		{
			message_begin ( MSG_ONE_UNRELIABLE, get_user_msgid ( "SayText" ), _, iPlayers[i] )
			write_byte ( iPlayers[i])
			write_string ( sNewMsg)
			message_end ()
		}
	}
}

stock bool:PatrArTuri(id, wpn)
{
	static i, j
	for(i = 0; i < iUnlocks; ++i)
	{
		for(j = 0; j <= MAX_UNLOCKS; ++j)
		{
			if(g_PlayerItem[id][i][j])
			{
				if(g_itemwpn[i][j] == wpn)
					return true
			}
		}
	}
	
	return false
}

GetItemCount(array[], size)
{
new count = 0;

for(new i = 1; i <= size; i++)
	if(array[i])
		count++;
	
	return count;
}
AurimasJ is offline
Bugsy
AMX Mod X Moderator
Join Date: Feb 2005
Location: NJ, USA
Old 02-23-2016 , 18:17   Re: warning 217 lose indetation Gun xp
Reply With Quote #2

It's from bad/inconsistent indentation.


Code:
public action_item_upgrades(id, key) {     switch(key)     {         case 8: display_item_upgrades(id, ++g_menuPosition[id], gSelected[id]);
            case 9: display_item_upgrades(id, --g_menuPosition[id], gSelected[id]);
            default:
    {
        if(!is_user_alive(id))
            return PLUGIN_HANDLED;
           
            ++key
            new money
Should be
PHP Code:
public action_item_upgrades(idkey)
{
    switch(
key
    {
        case 
8display_item_upgrades(id, ++g_menuPosition[id], gSelected[id]);
        case 
9display_item_upgrades(id, --g_menuPosition[id], gSelected[id]);
        default:
    {

    if(!
is_user_alive(id))
        return 
PLUGIN_HANDLED;
            
    ++
key
    
new money 
Code:
GetItemCount(array[], size) {
new count = 0;
for(new i = 1; i <= size; i++)
    if(array[i])
        count++;
        return count; }
Should be
PHP Code:
GetItemCount(array[], size)
{
    new 
count 0;

    for(new 
1<= sizei++)
        if(array[
i])
            
count++;
    
    return 
count;

__________________
Bugsy is offline
AurimasJ
Junior Member
Join Date: Nov 2015
Old 02-23-2016 , 18:37   Re: warning 217 lose indetation Gun xp
Reply With Quote #3

Quote:
Originally Posted by Bugsy View Post
It's from bad/inconsistent indentation.


Code:
public action_item_upgrades(id, key) {     switch(key)     {         case 8: display_item_upgrades(id, ++g_menuPosition[id], gSelected[id]);
            case 9: display_item_upgrades(id, --g_menuPosition[id], gSelected[id]);
            default:
    {
        if(!is_user_alive(id))
            return PLUGIN_HANDLED;
           
            ++key
            new money
Should be
PHP Code:
public action_item_upgrades(idkey)
{
    switch(
key
    {
        case 
8display_item_upgrades(id, ++g_menuPosition[id], gSelected[id]);
        case 
9display_item_upgrades(id, --g_menuPosition[id], gSelected[id]);
        default:
    {

    if(!
is_user_alive(id))
        return 
PLUGIN_HANDLED;
            
    ++
key
    
new money 
Code:
GetItemCount(array[], size) {
new count = 0;
for(new i = 1; i <= size; i++)
    if(array[i])
        count++;
        return count; }
Should be
PHP Code:
GetItemCount(array[], size)
{
    new 
count 0;

    for(new 
1<= sizei++)
        if(array[
i])
            
count++;
    
    return 
count;

Attached Thumbnails
Click image for larger version

Name:	Be pavadinimo.png
Views:	111
Size:	12.4 KB
ID:	152180  
AurimasJ is offline
Bugsy
AMX Mod X Moderator
Join Date: Feb 2005
Location: NJ, USA
Old 02-23-2016 , 18:48   Re: warning 217 lose indetation Gun xp
Reply With Quote #4

That (237) in the compiler warning tells you what line the issue is on. You can look there yourself to find this issue.

Fix this:
Code:
public action_item_upgrades(id, key) {     switch(key)     {         case 8: display_item_upgrades(id, ++g_menuPosition[id], gSelected[id]);
            case 9: display_item_upgrades(id, --g_menuPosition[id], gSelected[id]);
            default:
    {
        if(!is_user_alive(id))
            return PLUGIN_HANDLED;
                        ++key             new money             new plugin_id = g_itemindex[gSelected[id]][g_menuPosition[id] * 8 + key]             new item_id = g_menuPosition[id] * 8 + key             new func = get_func_id("gxm_item_enabled", plugin_id)                         money = get_user_xp(id)             new cost = g_itemcost[gSelected[id]][item_id];                         if(money >= cost)             {                 callfunc_begin_i(func, plugin_id)                 callfunc_push_int(id)                 callfunc_end()                                 g_PlayerItem[id][gSelected[id]][item_id] = true                                 new overall = money - cost                 set_user_xp(id, overall)                                 client_printcolor(1, "/yItem Bought Successfully, Item: /g%s.", g_itemname[gSelected[id]][item_id])                 client_printcolor(1, "/yDescription: /g%s.", g_itemdesc[gSelected[id]][item_id])                 display_item_upgrades(id, g_menuPosition[id], gSelected[id]);             }         }     }     return PLUGIN_HANDLED; }
__________________

Last edited by Bugsy; 02-23-2016 at 18:49.
Bugsy is offline
AurimasJ
Junior Member
Join Date: Nov 2015
Old 02-23-2016 , 19:08   Re: warning 217 lose indetation Gun xp
Reply With Quote #5

Quote:
Originally Posted by Bugsy View Post
That (237) in the compiler warning tells you what line the issue is on. You can look there yourself to find this issue.

Fix this:
Code:
public action_item_upgrades(id, key) {     switch(key)     {         case 8: display_item_upgrades(id, ++g_menuPosition[id], gSelected[id]);
            case 9: display_item_upgrades(id, --g_menuPosition[id], gSelected[id]);
            default:
    {
        if(!is_user_alive(id))
            return PLUGIN_HANDLED;
                        ++key             new money             new plugin_id = g_itemindex[gSelected[id]][g_menuPosition[id] * 8 + key]             new item_id = g_menuPosition[id] * 8 + key             new func = get_func_id("gxm_item_enabled", plugin_id)                         money = get_user_xp(id)             new cost = g_itemcost[gSelected[id]][item_id];                         if(money >= cost)             {                 callfunc_begin_i(func, plugin_id)                 callfunc_push_int(id)                 callfunc_end()                                 g_PlayerItem[id][gSelected[id]][item_id] = true                                 new overall = money - cost                 set_user_xp(id, overall)                                 client_printcolor(1, "/yItem Bought Successfully, Item: /g%s.", g_itemname[gSelected[id]][item_id])                 client_printcolor(1, "/yDescription: /g%s.", g_itemdesc[gSelected[id]][item_id])                 display_item_upgrades(id, g_menuPosition[id], gSelected[id]);             }         }     }     return PLUGIN_HANDLED; }
Thanks, everything works
AurimasJ is offline
XxScripteRxX
Member
Join Date: Aug 2019
Old 11-12-2019 , 14:29   Re: warning 217 lose indetation Gun xp
Reply With Quote #6

ok good this plugin in my mod



How to Unlock Weapon For This Ul ? And no have Inc fail To Comile This New Unlock of weapons

Like This or ?

Code:
  
#include <amxmodx>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <cstrike>
#include <gunxpmod>

#define PLUGIN "Balrog-III"
#define VERSION "1.0"
#define AUTHOR "Dias"

#define V_MODEL "models/gunxpmod/v_balrog3.mdl"
#define P_MODEL "models/gunxpmod/p_balrog3.mdl"
#define W_MODEL "models/gunxpmod/w_balrog3.mdl"

#define DAMAGE 120
#define BPAMMO 500
#define ACTIVE_CLIP 15

#define CSW_BALROG3 CSW_MP5NAVY
#define weapon_balrog3 "weapon_mp5navy"

#define WEAPON_SECRETCODE 4962
#define WEAPON_EVENT "events/mp5n.sc"
#define OLD_W_MODEL "models/w_mp5.mdl"

new const Balrog3_Sounds[6][] =
{
	"weapons/balrig3-1.wav",
	"weapons/balrig3-2.wav",
	"weapons/balrig3_boltpull.wav",
	"weapons/balrig3_clipin.wav",
	"weapons/balrig3_clipout.wav",
	"weapons/balrig3_draw.wav"
}

#define EXPLOSE_SPR "sprites/balrog5stack.spr"

enum
{
	ANIM_IDLE = 0,
	ANIM_DRAW,
	ANIM_RELOAD,
	ANIM_SHOOT_A,
	ANIM_SHOOT_B
}


new g_Had_Balrog3[33], g_Shoot_Special[33], g_Holding_Attack[33], g_Shoot_Count[33], g_Old_Weapon[33], g_Current_Weapon[33]
new g_Exp_SprId, g_balrog3_event, g_ShellId, g_SmokePuff_SprId

public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_gxm_item("Balrog-III(MP5)", "+Aim -Power, ( MP5 )", 150)
	
	register_event("CurWeapon", "Event_CurWeapon", "be", "1=1")
	
	register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1)	
	register_forward(FM_PlaybackEvent, "fw_PlaybackEvent")	
	register_forward(FM_SetModel, "fw_SetModel")
	register_forward(FM_CmdStart, "fw_CmdStart")		
	
	RegisterHam(Ham_TraceAttack, "worldspawn", "fw_TraceAttack")
	RegisterHam(Ham_TraceAttack, "player", "fw_TraceAttack")	
	RegisterHam(Ham_Weapon_PrimaryAttack, weapon_balrog3, "fw_Weapon_PrimaryAttack")
	RegisterHam(Ham_Weapon_PrimaryAttack, weapon_balrog3, "fw_Weapon_PrimaryAttack_Post", 1)
	RegisterHam(Ham_Item_AddToPlayer, weapon_balrog3, "fw_Item_AddToPlayer_Post", 1)

	register_clcmd("admin_get_balrog3", "Get_Balrog3", ADMIN_BAN)
}

public plugin_precache()
{
	engfunc(EngFunc_PrecacheModel, V_MODEL)
	engfunc(EngFunc_PrecacheModel, P_MODEL)
	engfunc(EngFunc_PrecacheModel, W_MODEL)
	
	for(new i = 0; i < sizeof(Balrog3_Sounds); i++)
		engfunc(EngFunc_PrecacheSound, Balrog3_Sounds[i])
		
	g_Exp_SprId = engfunc(EngFunc_PrecacheModel, EXPLOSE_SPR)
	g_SmokePuff_SprId = engfunc(EngFunc_PrecacheModel, "sprites/wall_puff1.spr")
	g_ShellId = engfunc(EngFunc_PrecacheModel, "models/pshell.mdl")
	
	register_forward(FM_PrecacheEvent, "fw_PrecacheEvent_Post", 1)
}

public fw_PrecacheEvent_Post(type, const name[])
{
	if(equal(WEAPON_EVENT, name))
		g_balrog3_event = get_orig_retval()		
}

public gxm_item_enabled(id)
{
	if(!is_user_alive(id))
		return
		
	g_Had_Balrog3[id] = 1
	g_Shoot_Special[id] = 0
	g_Holding_Attack[id] = 0
	g_Shoot_Count[id] = 0
	
	fm_give_item(id, weapon_balrog3)
	
	cs_set_user_bpammo(id, CSW_BALROG3, BPAMMO)
}

public Event_CurWeapon(id)
{
	if(!is_user_alive(id))
		return
	
	if(get_user_weapon(id) != g_Current_Weapon[id]) g_Current_Weapon[id] = get_user_weapon(id)
	
	if(get_user_weapon(id) == CSW_BALROG3 && g_Had_Balrog3[id])
	{
		if(g_Old_Weapon[id] != CSW_BALROG3)
		{
			set_pev(id, pev_viewmodel2, V_MODEL)
			set_pev(id, pev_weaponmodel2, P_MODEL)
		}
	}
	
	g_Old_Weapon[id] = get_user_weapon(id)
}

public fw_UpdateClientData_Post(id, sendweapons, cd_handle)
{
	if(!is_user_alive(id) || !is_user_connected(id))
		return FMRES_IGNORED	
	if(get_user_weapon(id) == CSW_BALROG3 && g_Had_Balrog3[id])
		set_cd(cd_handle, CD_flNextAttack, get_gametime() + 0.001) 
	
	return FMRES_HANDLED
}

public fw_PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2)
{
	if (!is_user_connected(invoker))
		return FMRES_IGNORED	
	if(get_user_weapon(invoker) != CSW_BALROG3 || !g_Had_Balrog3[invoker])
		return FMRES_IGNORED
	if(eventid != g_balrog3_event)
		return FMRES_IGNORED
	
	engfunc(EngFunc_PlaybackEvent, flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2)
	
	if(!g_Shoot_Special[invoker] && cs_get_user_bpammo(invoker, CSW_BALROG3) > 0)
	{
		g_Shoot_Count[invoker]++
		if(g_Shoot_Count[invoker] >= ACTIVE_CLIP)
		{
			g_Shoot_Special[invoker] = 1
			
			static Ent; Ent = fm_get_user_weapon_entity(invoker, CSW_BALROG3)
			if(pev_valid(Ent)) g_Shoot_Count[invoker] = cs_get_weapon_ammo(Ent)
		}
	} else if(g_Shoot_Special[invoker]) {
		cs_set_user_bpammo(invoker, CSW_BALROG3, cs_get_user_bpammo(invoker, CSW_BALROG3) - 1)
		
		if(cs_get_user_bpammo(invoker, CSW_BALROG3) <= 0)
		{
			g_Shoot_Special[invoker] = 0
			g_Shoot_Count[invoker] = 0
		}
	}
	
	set_weapon_anim(invoker, g_Shoot_Special[invoker] == 1 ? ANIM_SHOOT_B : ANIM_SHOOT_A)
	emit_sound(invoker, CHAN_WEAPON, g_Shoot_Special[invoker] == 1 ? Balrog3_Sounds[1] : Balrog3_Sounds[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
	
	Eject_Shell(invoker, g_ShellId, 0.0)
		
	return FMRES_SUPERCEDE
}

public fw_SetModel(entity, model[])
{
	if(!pev_valid(entity))
		return FMRES_IGNORED
	
	static Classname[32]
	pev(entity, pev_classname, Classname, sizeof(Classname))
	
	if(!equal(Classname, "weaponbox"))
		return FMRES_IGNORED
	
	static iOwner
	iOwner = pev(entity, pev_owner)
	
	if(equal(model, OLD_W_MODEL))
	{
		static weapon; weapon = fm_find_ent_by_owner(-1, weapon_balrog3, entity)
		
		if(!pev_valid(weapon))
			return FMRES_IGNORED;
		
		if(g_Had_Balrog3[iOwner])
		{
			
			set_pev(weapon, pev_impulse, 900, WEAPON_SECRETCODE)
			engfunc(EngFunc_SetModel, entity, W_MODEL)
			
			return FMRES_SUPERCEDE
		}
	}

	return FMRES_IGNORED;
}

public fw_CmdStart(id, uc_handle, seed)
{
	if(!is_user_alive(id))
		return
	if(g_Current_Weapon[id] != CSW_BALROG3 || !g_Had_Balrog3[id])
		return
		
	static NewButton; NewButton = get_uc(uc_handle, UC_Buttons)
	static OldButton; OldButton = pev(id, pev_oldbuttons)
	
	if(NewButton & IN_ATTACK)
	{
		if(!g_Holding_Attack[id]) g_Holding_Attack[id] = 1
	} else if((NewButton & IN_ATTACK2) && !(OldButton & IN_ATTACK2)) {
		if(cs_get_user_zoom(id) == 1) cs_set_user_zoom(id, CS_SET_AUGSG552_ZOOM, 1)
		else cs_set_user_zoom(id, CS_SET_NO_ZOOM, 1)
	} else {
		if(OldButton & IN_ATTACK)
		{
			if(g_Holding_Attack[id]) 
			{
				g_Holding_Attack[id] = 0
				g_Shoot_Count[id] = 0
				g_Shoot_Special[id] = 0
			}
		}
	}
}

public fw_TraceAttack(Victim, Attacker, Float:Damage, Float:Direction[3], Ptr, DamageBits)
{
	if(!is_user_alive(Attacker))
		return HAM_IGNORED	
	if(get_user_weapon(Attacker) != CSW_BALROG3 || !g_Had_Balrog3[Attacker])
		return HAM_IGNORED
		
	static Float:flEnd[3], Float:vecPlane[3]
	
	get_tr2(Ptr, TR_vecEndPos, flEnd)
	get_tr2(Ptr, TR_vecPlaneNormal, vecPlane)		
		
	if(!is_user_alive(Victim))
	{
		Make_BulletHole(Attacker, flEnd, Damage)
		Make_BulletSmoke(Attacker, Ptr)
	}
	
	if(g_Shoot_Special[Attacker])
	{
		Make_BalrogEffect(Attacker, Ptr)
		radius_damage(Attacker, flEnd, float(DAMAGE), 96.0)
	}
	
	SetHamParamFloat(3, float(DAMAGE))
	
	return HAM_IGNORED
}

public fw_Weapon_PrimaryAttack(Ent)
{
	if(!pev_valid(Ent))
		return
	static Id; Id = pev(Ent, pev_owner)
	if(!g_Had_Balrog3[Id])
		return
	
	if(g_Shoot_Special[Id]) set_pdata_float(Ent, 62, 0.4, 4)
	else set_pdata_float(Ent, 62, 0.2, 4)
}

public fw_Weapon_PrimaryAttack_Post(Ent)
{
	if(!pev_valid(Ent))
		return
	static Id; Id = pev(Ent, pev_owner)
	if(!g_Had_Balrog3[Id])
		return
	
	if(g_Shoot_Special[Id] && cs_get_weapon_ammo(Ent) > 0) 
	{
		cs_set_weapon_ammo(Ent, g_Shoot_Count[Id])
		set_pdata_float(Ent, 46, get_pdata_float(Ent, 46, 4) * 0.75, 4)	
	}
}

public fw_Item_AddToPlayer_Post(ent, id)
{
	if(!pev_valid(ent))
		return HAM_IGNORED
		
	if(pev(ent, pev_impulse) == WEAPON_SECRETCODE)
	{
		g_Had_Balrog3[id] = 1
		set_pev(ent, pev_impulse, 0)
	}		

	return HAM_HANDLED	
}

stock Make_BulletHole(id, Float:Origin[3], Float:Damage)
{
	// Find target
	static Decal; Decal = random_num(41, 45)
	static LoopTime; 
	
	if(Damage > 100.0) LoopTime = 2
	else LoopTime = 1
	
	for(new i = 0; i < LoopTime; i++)
	{
		// Put decal on "world" (a wall)
		message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
		write_byte(TE_WORLDDECAL)
		engfunc(EngFunc_WriteCoord, Origin[0])
		engfunc(EngFunc_WriteCoord, Origin[1])
		engfunc(EngFunc_WriteCoord, Origin[2])
		write_byte(Decal)
		message_end()
		
		// Show sparcles
		message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
		write_byte(TE_GUNSHOTDECAL)
		engfunc(EngFunc_WriteCoord, Origin[0])
		engfunc(EngFunc_WriteCoord, Origin[1])
		engfunc(EngFunc_WriteCoord, Origin[2])
		write_short(id)
		write_byte(Decal)
		message_end()
	}
}

public Make_BulletSmoke(id, TrResult)
{
	static Float:vecSrc[3], Float:vecEnd[3], TE_FLAG
	
	get_weapon_attachment(id, vecSrc)
	global_get(glb_v_forward, vecEnd)
    
	xs_vec_mul_scalar(vecEnd, 8192.0, vecEnd)
	xs_vec_add(vecSrc, vecEnd, vecEnd)

	get_tr2(TrResult, TR_vecEndPos, vecSrc)
	get_tr2(TrResult, TR_vecPlaneNormal, vecEnd)
    
	xs_vec_mul_scalar(vecEnd, 2.5, vecEnd)
	xs_vec_add(vecSrc, vecEnd, vecEnd)
    
	TE_FLAG |= TE_EXPLFLAG_NODLIGHTS
	TE_FLAG |= TE_EXPLFLAG_NOSOUND
	TE_FLAG |= TE_EXPLFLAG_NOPARTICLES
	
	engfunc(EngFunc_MessageBegin, MSG_PAS, SVC_TEMPENTITY, vecEnd, 0)
	write_byte(TE_EXPLOSION)
	engfunc(EngFunc_WriteCoord, vecEnd[0])
	engfunc(EngFunc_WriteCoord, vecEnd[1])
	engfunc(EngFunc_WriteCoord, vecEnd[2] - 10.0)
	write_short(g_SmokePuff_SprId)
	write_byte(2)
	write_byte(50)
	write_byte(TE_FLAG)
	message_end()
}

public Make_BalrogEffect(id, TrResult)
{
	static Float:vecSrc[3], Float:vecEnd[3], TE_FLAG
	
	get_weapon_attachment(id, vecSrc)
	global_get(glb_v_forward, vecEnd)
    
	xs_vec_mul_scalar(vecEnd, 8192.0, vecEnd)
	xs_vec_add(vecSrc, vecEnd, vecEnd)

	get_tr2(TrResult, TR_vecEndPos, vecSrc)
	get_tr2(TrResult, TR_vecPlaneNormal, vecEnd)
    
	xs_vec_mul_scalar(vecEnd, 5.0, vecEnd)
	xs_vec_add(vecSrc, vecEnd, vecEnd)
    
	TE_FLAG |= TE_EXPLFLAG_NODLIGHTS
	TE_FLAG |= TE_EXPLFLAG_NOSOUND
	TE_FLAG |= TE_EXPLFLAG_NOPARTICLES
	
	engfunc(EngFunc_MessageBegin, MSG_PAS, SVC_TEMPENTITY, vecEnd, 0)
	write_byte(TE_EXPLOSION)
	engfunc(EngFunc_WriteCoord, vecEnd[0])
	engfunc(EngFunc_WriteCoord, vecEnd[1])
	engfunc(EngFunc_WriteCoord, vecEnd[2])
	write_short(g_Exp_SprId)
	write_byte(5)
	write_byte(30)
	write_byte(TE_FLAG)
	message_end()
}

stock get_weapon_attachment(id, Float:output[3], Float:fDis = 40.0)
{ 
	new Float:vfEnd[3], viEnd[3] 
	get_user_origin(id, viEnd, 3)  
	IVecFVec(viEnd, vfEnd) 
	
	new Float:fOrigin[3], Float:fAngle[3]
	
	pev(id, pev_origin, fOrigin) 
	pev(id, pev_view_ofs, fAngle)
	
	xs_vec_add(fOrigin, fAngle, fOrigin) 
	
	new Float:fAttack[3]
	
	xs_vec_sub(vfEnd, fOrigin, fAttack)
	xs_vec_sub(vfEnd, fOrigin, fAttack) 
	
	new Float:fRate
	
	fRate = fDis / vector_length(fAttack)
	xs_vec_mul_scalar(fAttack, fRate, fAttack)
	
	xs_vec_add(fOrigin, fAttack, output)
}

stock radius_damage(id, Float:Origin[3], Float:Damage, Float:Radius)
{
	static Victim; Victim = -1

	while((Victim = engfunc(EngFunc_FindEntityInSphere, Victim, Origin, Radius)) != 0)
	{
		if(!is_user_alive(Victim) || id == Victim) 
			continue

		ExecuteHamB(Ham_TakeDamage, Victim, fm_get_user_weapon_entity(id, get_user_weapon(id)), id, Damage, DMG_BULLET)
	}
}

stock Eject_Shell(id, Shell_ModelIndex, Float:Time) // By Dias
{
	static Ent; Ent = get_pdata_cbase(id, 373, 5)
	if(!pev_valid(Ent))
		return

        set_pdata_int(Ent, 57, Shell_ModelIndex, 4)
        set_pdata_float(id, 111, get_gametime() + Time)
}

stock set_weapon_anim(id, anim)
{
	if(!is_user_alive(id))
		return
	
	set_pev(id, pev_weaponanim, anim)
	
	message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, {0, 0, 0}, id)
	write_byte(anim)
	write_byte(pev(id, pev_body))
	message_end()
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
XxScripteRxX is offline
fysiks
Veteran Member
Join Date: Sep 2007
Location: Flatland, USA
Old 11-12-2019 , 23:25   Re: warning 217 lose indetation Gun xp
Reply With Quote #7

Quote:
Originally Posted by XxScripteRxX View Post
ok good this plugin in my mod



How to Unlock Weapon For This Ul ? And no have Inc fail To Comile This New Unlock of weapons
If you have a question not directly related to the topic of this thread (which is "loose indentation") then post a new thread.
__________________
fysiks 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 10:15.


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