Raised This Month: $ Target: $400
 0% 

Weapon, like grenades and deagle


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
STr!ker
Senior Member
Join Date: Jun 2009
Location: Germany
Old 11-26-2011 , 11:36   Weapon, like grenades and deagle
Reply With Quote #1

Hello, i have found a shop:

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

#include "furien.inc"
#include "furien_shop.inc"

#define VERSION "0.2.1"

#define MAX_WEAPONS    CSW_P90

enum _:mDatas {
    
mFurienCost,
    
mFurienBpAmmo,
    
mFurienBpAmmoMax,
    
mAntiCost,
    
mAntiBpAmmo,
    
mAntiBpAmmoMax
}

enum _:mAutoDatas {
    
miId,
    
miBpAmmo,
    
miBpAmmoMax
}

new 
g_iWeaponsBuyDatas[MAX_WEAPONS+1][mDatas]

new Array:
g_aFurienAutoWeapons, Array:g_aAntiAutoWeapons

public plugin_init()
{
    
register_plugin("Furien Weapons"VERSION"ConnorMcLeod")

    
g_aFurienAutoWeapons ArrayCreate(mAutoDatas)
    
g_aAntiAutoWeapons ArrayCreate(mAutoDatas)

    new 
szConfigFile[128]
    
get_localinfo("amxx_configsdir"szConfigFilecharsmax(szConfigFile))
    
format(szConfigFilecharsmax(szConfigFile), "%s/furien/items/weapons.ini"szConfigFile);

    new 
fp fopen(szConfigFile"rt")
    if( !
fp )
    {
        return
    }

    new 
szDatas[256], szWeaponName[20], szMode[2], szFurienBpAmmo[4], szAntiBpAmmo[4], szFurienBpAmmoMax[4], szAntiBpAmmoMax[4], 
        
szFurienName[32], szAntiName[32], szFurienCost[6], szAntiCost[6]

    while( !
feof(fp) )
    {
        
fgets(fpszDatascharsmax(szDatas))
        
trim(szDatas)
        if(!
szDatas[0] || szDatas[0] == ';' || szDatas[0] == '#' || (szDatas[0] == '/' && szDatas[1] == '/'))
        {
            continue
        }

//        server_print("Weapons Entry")
//        server_print(szDatas)

        
parse
        
(
            
szDatas
            
szWeaponNamecharsmax(szWeaponName),
            
szModecharsmax(szMode),
            
szFurienBpAmmocharsmax(szFurienBpAmmo),
            
szAntiBpAmmocharsmax(szAntiBpAmmo),
            
szFurienBpAmmoMaxcharsmax(szFurienBpAmmoMax),
            
szAntiBpAmmoMaxcharsmax(szAntiBpAmmoMax),
            
szFurienNamecharsmax(szFurienName),
            
szAntiNamecharsmax(szAntiName),
            
szFurienCostcharsmax(szFurienCost),
            
szAntiCostcharsmax(szAntiCost)
        )
/*
        server_print("%s %s | BpAmmo %s %s | Max %s %s | %s %s %s %s",
            szWeaponName, szMode, szFurienBpAmmo, szAntiBpAmmo, szFurienBpAmmoMax, szAntiBpAmmoMax,
            szFurienName, szAntiName, szFurienCost, szAntiCost)
*/
        
new iId get_weaponidszWeaponName )
        if( 
iId <= )
        {
            continue
        }

        switch( 
szMode[0] )
        {
            case 
'0':
            {
                if( (
g_iWeaponsBuyDatas[iId][mFurienCost] = str_to_num(szFurienCost)) )
                {
                    
g_iWeaponsBuyDatas[iId][mFurienBpAmmo] = str_to_num(szFurienBpAmmo)
                    
g_iWeaponsBuyDatas[iId][mFurienBpAmmoMax] = maxstr_to_num(szFurienBpAmmoMax) , g_iWeaponsBuyDatas[iId][mFurienBpAmmo] )
                }

                if( (
g_iWeaponsBuyDatas[iId][mAntiCost] = str_to_num(szAntiCost)) )
                {    
                    
g_iWeaponsBuyDatas[iId][mAntiBpAmmo] = str_to_num(szAntiBpAmmo)
                    
g_iWeaponsBuyDatas[iId][mAntiBpAmmoMax] = maxstr_to_num(szAntiBpAmmoMax) , g_iWeaponsBuyDatas[iId][mAntiBpAmmo] )
                }

                
furien_register_item
                
(
                    
szFurienName,
                    
g_iWeaponsBuyDatas[iId][mFurienCost],
                    
szAntiName,
                    
g_iWeaponsBuyDatas[iId][mAntiCost],
                    
"furien_buy_weapon",
                    
iId
                
)    
            }
            case 
'1':
            {
                new 
Datas[mAutoDatas]

                
Datas[miId] = iId
                Datas
[miBpAmmo] = str_to_num(szFurienBpAmmo)
                
Datas[miBpAmmoMax] = maxstr_to_num(szFurienBpAmmoMax), Datas[miBpAmmo] )

                
ArrayPushArray(g_aFurienAutoWeaponsDatas)
            }
            case 
'2':
            {
                new 
Datas[mAutoDatas]

                
Datas[miId] = iId
                Datas
[miBpAmmo] = str_to_num(szAntiBpAmmo)
                
Datas[miBpAmmoMax] = maxstr_to_num(szAntiBpAmmoMax), Datas[miBpAmmo] )

                
ArrayPushArray(g_aAntiAutoWeaponsDatas)
            }
            case 
'3':
            {
                new 
Datas[mAutoDatas]

                
Datas[miId] = iId
                Datas
[miBpAmmo] = str_to_num(szAntiBpAmmo)
                
Datas[miBpAmmoMax] = maxstr_to_num(szAntiBpAmmoMax), Datas[miBpAmmo] )

                
ArrayPushArray(g_aFurienAutoWeaponsDatas)
                
ArrayPushArray(g_aAntiAutoWeaponsDatas)
            }
        }
    }
    
fclose(fp)

    if( 
ArraySize(g_aFurienAutoWeapons) || ArraySize(g_aAntiAutoWeapons) )
    {
        
RegisterHam(Ham_Spawn"player""Ham_CBasePlayer_Spawn_Post"1)
    }
}

public 
plugin_end()
{
    
ArrayDestroyg_aFurienAutoWeapons )
    
ArrayDestroyg_aAntiAutoWeapons )
}

public 
Ham_CBasePlayer_Spawn_Postid )
{
    if( 
is_user_alive(id) )
    {
        switch( 
furien_get_user_team(id) )
        {
            case 
Furien :
            {
                
GiveAutoWeapons(idg_aFurienAutoWeapons)
            }
            case 
AntiFurien :
            {
                
GiveAutoWeapons(idg_aAntiAutoWeapons)
            }
        }
    }
}

public 
furien_buy_weaponidiId )
{
    new 
iTeam furien_get_user_team(id)
    if( 
iTeam == -)
    {
        return 
ShopCloseMenu
    
}

    new 
iItemCost g_iWeaponsBuyDatas[iId][ iTeam == Furien mFurienCost mAntiCost ]

    if( 
iItemCost <= )
    {
        return 
ShopTeamNotAvail
    
}

    if( 
user_has_weapon(idiId) )
    {
        return 
ShopAlreadyHaveOne
    
}

    if( 
furien_try_buy(idiItemCost) )
    {
        new 
szWeaponName[20]
        
get_weaponname(iIdszWeaponNamecharsmax(szWeaponName))
        
give_item(idszWeaponName)
        new 
iBpAmmo g_iWeaponsBuyDatas[iId][ iTeam == Furien mFurienBpAmmo mAntiBpAmmo ]
        if( 
iBpAmmo )
        {
            new 
iBpAmmoMax g_iWeaponsBuyDatas[iId][ iTeam == Furien mFurienBpAmmoMax mAntiBpAmmoMax ]
            new 
iCurrentBpAmmo cs_get_user_bpammo(idiId)
            if( 
iCurrentBpAmmo iBpAmmoMax )
            {
                
cs_set_user_bpammo(idiIdmin(iCurrentBpAmmo iBpAmmoiBpAmmoMax))
            }
        }
        return 
ShopBought
    
}
    return 
ShopNotEnoughMoney
}

GiveAutoWeapons(id, Array:aWeapons)
{
    new 
iItemsNum ArraySize(aWeapons)

    new 
Datas[mAutoDatas], iIdszWeaponName[20], iBpAmmoiBpAmmoMaxiCurrentBpAmmo

    
for(new ii<iItemsNumi++)
    {
        
ArrayGetArray(aWeaponsiDatas)
        
iId Datas[miId]
        if( !
user_has_weapon(idiId) )
        {
            
get_weaponname(iIdszWeaponNamecharsmax(szWeaponName))
            
give_item(idszWeaponName)
        }

        
iBpAmmo Datas[miBpAmmo]
        if( 
iBpAmmo )
        {
            
iBpAmmoMax Datas[miBpAmmoMax]
            
iCurrentBpAmmo cs_get_user_bpammo(idiId)
            if( 
iCurrentBpAmmo iBpAmmoMax )
            {
                
cs_set_user_bpammo(idiIdmin(iCurrentBpAmmo iBpAmmoiBpAmmoMax))
            }
        }
    }

My problem now is, that i have no idea, how to prevent spamming with buying he´s and flash´s and smoke´s. They can buy a he, threw it away and they just can buy a he again and that sucks so much!
STr!ker is offline
 


Thread Tools
Display Modes

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 08:33.


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