AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Help with my plugin (https://forums.alliedmods.net/showthread.php?t=92071)

larito 05-09-2009 16:13

Help with my plugin
 
1 Attachment(s)
I´m working in this plugin, the plugin is done, but something is wrong.
PHP Code:

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <cstrike>

//offsets
#define OFFSET_AWM_AMMO        377 
#define OFFSET_SCOUT_AMMO    378
#define OFFSET_PARA_AMMO    379
#define OFFSET_FAMAS_AMMO     380
#define OFFSET_M3_AMMO        381
#define OFFSET_USP_AMMO        382
#define OFFSET_FIVESEVEN_AMMO    383
#define OFFSET_DEAGLE_AMMO    384
#define OFFSET_P228_AMMO    385
#define OFFSET_GLOCK_AMMO    386
#define OFFSET_FLASH_AMMO    387
#define OFFSET_HE_AMMO        388
#define OFFSET_SMOKE_AMMO    389
#define OFFSET_C4_AMMO        390
#define OFFSET_LINUX        5


#define class_awp "ammo_awp"
#define class_aug "ammo_aug"
#define class_scout "ammo_scout"

/* Bpammo for Weapon*/
#define ammo_awp    30
#define ammo_aug    90
#define ammo_scout    90


/* Code by Fxfighter*/
#define wp_max        pev_iuser2
#define wp_left        pev_iuser3
new amountTime

// Cvars
new hl_reset_timehl_reset_amount


public plugin_init()
{
    
register_plugin("Ammo Spawner""1.0[beta]""Darckbaston")
    
register_forward(FM_Touch"touch_weapon")
    
register_forward(FM_Think"fm_think")
    
    
register_clcmd("hl_menu","hl_menu")
    
// cvar
    
hl_reset_time register_cvar("hl_reset_gun_time","3")
    
hl_reset_amount =register_cvar("hl_reset_gun_amount","10")
    
amount get_pcvar_num(hl_reset_amount)
    
Time get_pcvar_num(hl_reset_time)
}

public 
hl_menu(id)
{
    new 
menu menu_create("\y Spawn Ammo Menu""menu_handler")
    
menu_additem(menu"\w Aug Ammo    ""1"0)
    
menu_additem(menu"\w Scout Ammo""2"0)
    
menu_additem(menu"\w Awp Ammo     ""3"0)
    
menu_setprop(menuMPROP_EXITMEXIT_ALL)
    
menu_display(idmenu0)
}

public 
menu_handler(idmenuitem)
{
    
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    new 
data[6], iName[64]
    new 
accesscallback
    menu_item_getinfo
(menuitemaccessdata,5iName63callback)
    new 
key str_to_num(data)
    
    switch(
key)
    {
        case 
1:
        {
            new 
Float:origin[3]
            
pev(id,pev_origin,origin)
            
origin[2]+=30.0
            set_pev
(id,pev_origin,origin)
            
origin[2]-=30.0
            aug
(1origin)
        }
        case 
2:
        {
            new 
Float:origin[3]
            
pev(id,pev_origin,origin)
            
origin[2]+=30.0
            set_pev
(id,pev_origin,origin)
            
origin[2]-=30.0
            scout
(1origin)
        }
        case 
3:
        {
            new 
Float:origin[3]
            
pev(id,pev_origin,origin)
            
origin[2]+=30.0
            set_pev
(id,pev_origin,origin)
            
origin[2]-=30.0
            awp
(,origin)
        }
    }
    
    
menu_destroy(menu)
    return 
PLUGIN_HANDLED
}


/*    Create Weapon    */
public scout(countFloat:origin[])
{
    new 
weapon engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"func_wall"))
    
set_pev(weapon,pev_classnameclass_scout)
    
    
engfunc(EngFunc_SetModelweapon"models/w_scout.mdl")
    
engfunc(EngFunc_SetSizeweapon, {-1.0,-1.0,-1.0},{1.01.01.0})
    
set_pev(weapon,pev_solid,2)
    
set_pev(weapon,pev_origin,origin)
    
engfunc(EngFunc_DropToFloorweapon)
    
set_pev(weapon,wp_left,count)
    
set_pev(weapon,wp_max,count)
}

public 
aug(countFloat:origin[])
{
    new 
weapon engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"func_wall"))
    
set_pev(weapon,pev_classnameclass_aug)
    
    
engfunc(EngFunc_SetModelweapon"models/w_aug.mdl")
    
engfunc(EngFunc_SetSizeweapon, {-1.0,-1.0,-1.0},{1.01.01.0})
    
set_pev(weapon,pev_solid,2)
    
set_pev(weapon,pev_origin,origin)
    
engfunc(EngFunc_DropToFloorweapon)
    
set_pev(weapon,wp_left,count)
    
set_pev(weapon,wp_max,count)
}

public 
awp(countFloat:origin[])
{
    new 
weapon engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"func_wall"))
    
set_pev(weapon,pev_classnameclass_awp)
    
    
engfunc(EngFunc_SetModelweapon"models/w_awp.mdl")
    
engfunc(EngFunc_SetSizeweapon, {-1.0,-1.0,-1.0},{1.01.01.0})
    
set_pev(weapon,pev_solid,2)
    
set_pev(weapon,pev_origin,origin)
    
engfunc(EngFunc_DropToFloorweapon)
    
set_pev(weapon,wp_left,count)
    
set_pev(weapon,wp_max,count)
}

/* Touch Weapon*/
public touch_weapon(idweapon)
{
    if(!
pev_valid(weapon) || !pev_valid(id) )return
    static 
classname[20]
    
pev(weaponpev_classnameclassname,19)        
    
    if(
equal(classname,class_aug))  cs_set_user_bpammo(idCSW_AUGammo_aug)
    if(
equal(classname,class_awp))  cs_set_user_bpammo(idCSW_AWPammo_awp)
    if(
equal(classnameclass_scout)) cs_set_user_bpammo(idCSW_SCOUT,ammo_scout)

     
/*Code by Fxfighter*/
    // Setea para que solo este en el suelo una carga en el piso y
    
static left ;left pev(weapon,wp_left)
    
left-=1
    set_pev
(weapon,wp_left,left)    
    
    
// Setea para que aparescan de nuevo en un tiempo determinado
    
if(amount != 0)set_pev(weaponpev_nextthinkget_gametime() + Time)
    
    
    
// Setea para que no sea visible cuando no hay cargas en el suelo
    
if(!left)
    {
        
set_pev(weaponpev_renderfxkRenderFxNone)
        
set_pev(weaponpev_rendercolor, {0.0,0.0,0.0})
        
set_pev(weaponpev_rendermodekRenderTransAlpha)
        
set_pev(weaponpev_renderamt0.0)
    }

    
/* Finish */
}


/*     Reset Ammo    */
public fm_think(ent)
{
    if(!
pev_valid(ent))return
        
    static 
classname[32]
    
pev(entpev_classnameclassname31)
    
    
//not our weapon
    
if(!equal(classnameclass_aug) || !equal(classnameclass_scout) || !equal(classnameclass_awp) )return

    
    
//get values
    
classname[0] = pev(ent,wp_max)
    
classname[1] = pev(ent,wp_left)
    
    
//if its full return
    
if(classname[1] == classname[0])return
    
    
//if invisiable
    
if(!classname[1])
    {
        
set_pev(entpev_renderfxkRenderNormal)
        
set_pev(entpev_rendercolor, {255.0,255.0,255.0})
        
set_pev(entpev_rendermodekRenderTransAlpha)
        
set_pev(entpev_renderamt255.0)
    }
    
    
//add
    
classname[1] +=amount
    
    
//set it
    
if(classname[1] > classname[0])set_pev(ent,wp_left,classname[0])
    else 
set_pev(ent,wp_left,classname[1])
    
    if(
classname[1] != classname[0]) set_pev(entpev_nextthinkget_gametime() + Time)
}

public 
reset()
{
    new 
value,weapon
    
while((weapon engfunc(EngFunc_FindEntityByStringweapon"classname"class_aug)) != 0)
    {
        
value=pev(weapon,wp_left)
        if(!
value)
        {
            
set_pev(weaponpev_renderfxkRenderNormal)
            
set_pev(weaponpev_rendercolor, {255.0,255.0,255.0})
            
set_pev(weaponpev_rendermodekRenderTransAlpha)
            
set_pev(weaponpev_renderamt255.0)
            
        }
        
value=pev(weapon,wp_max)
        
set_pev(weapon,wp_left,value)
        
    }
    while((
weapon engfunc(EngFunc_FindEntityByStringweapon"classname"class_awp)) != 0)
    {
        
value=pev(weapon,wp_left)
        if(!
value)
        {
            
set_pev(weaponpev_renderfxkRenderNormal)
            
set_pev(weaponpev_rendercolor, {255.0,255.0,255.0})
            
set_pev(weaponpev_rendermodekRenderTransAlpha)
            
set_pev(weaponpev_renderamt255.0)
            
        }
        
value=pev(weapon,wp_max)
        
set_pev(weapon,wp_left,value)
        
    }
    while((
weapon engfunc(EngFunc_FindEntityByStringweapon"classname"class_scout)) != 0)
    {
        
value=pev(weapon,wp_left)
        if(!
value)
        {
            
set_pev(weaponpev_renderfxkRenderNormal)
            
set_pev(weaponpev_rendercolor, {255.0,255.0,255.0})
            
set_pev(weaponpev_rendermodekRenderTransAlpha)
            
set_pev(weaponpev_renderamt255.0)
            
        }
        
value=pev(weapon,wp_max)
        
set_pev(weapon,wp_left,value)
        
    }
}

/*    Stocks     */
stock fm_set_user_bpammo(idweaponamount)
{
    static 
offset
    
    
switch(weapon)
    {
        case 
CSW_AWPoffset OFFSET_AWM_AMMO;
        case 
CSW_SCOUT,CSW_AK47,CSW_G3SG1offset OFFSET_SCOUT_AMMO;
        case 
CSW_M249offset OFFSET_PARA_AMMO;
        case 
CSW_M4A1,CSW_FAMAS,CSW_AUG,CSW_SG550,CSW_GALI,CSW_SG552offset OFFSET_FAMAS_AMMO;
        case 
CSW_M3,CSW_XM1014offset OFFSET_M3_AMMO;
        case 
CSW_USP,CSW_UMP45,CSW_MAC10offset OFFSET_USP_AMMO;
        case 
CSW_FIVESEVEN,CSW_P90offset OFFSET_FIVESEVEN_AMMO;
        case 
CSW_DEAGLEoffset OFFSET_DEAGLE_AMMO;
        case 
CSW_P228offset OFFSET_P228_AMMO;
        case 
CSW_GLOCK18,CSW_MP5NAVY,CSW_TMP,CSW_ELITEoffset OFFSET_GLOCK_AMMO;
        case 
CSW_FLASHBANGoffset OFFSET_FLASH_AMMO;
        case 
CSW_HEGRENADEoffset OFFSET_HE_AMMO;
        case 
CSW_SMOKEGRENADEoffset OFFSET_SMOKE_AMMO;
        case 
CSW_C4offset OFFSET_C4_AMMO;
        default: return;
    }
    
    
set_pdata_int(idoffsetamountOFFSET_LINUX)


Fuction: is very easy , the fuction is equal the plugin weapon_spawner but this spawner bpammo, the problem is what dont respawn after 3 sec.

Can help my plis?

Sorry for my bad english, i´m from Argentina!

-Acid- 05-10-2009 01:54

Re: Help with my plugin
 
Post your code not the plugin.

TitANious 05-10-2009 02:37

Re: Help with my plugin
 
Are you Darckbaston?

-Acid- 05-10-2009 03:45

Re: Help with my plugin
 
me?

TitANious 05-10-2009 03:48

Re: Help with my plugin
 
No larito Pls dont bold the all

larito 05-10-2009 10:10

Re: Help with my plugin
 
Quote:

Originally Posted by TitANious (Post 824712)
Are you Darckbaston?

Yes, because the question?

@-Acid-
Ok, now post the code

PD: the plugin is my, but 25% the code is the plugin "weapon_spawner"

Sorry for my bad english, I´m from Argentina:|


All times are GMT -4. The time now is 01:27.

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