AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   ammo (https://forums.alliedmods.net/showthread.php?t=89344)

~Ice*shOt 04-05-2009 04:22

ammo
 
how to do that given Ammo? on gun.

TheRadiance 04-05-2009 04:28

Re: ammo
 
for cstrike ? cs_set_weapon_ammo / bpammo

~Ice*shOt 04-05-2009 05:00

Re: ammo
 
Quote:

Originally Posted by TheRadiance (Post 797817)
for cstrike ? cs_set_weapon_ammo / bpammo

with that code:
if(PlayerLevel[id] == 5) // Checks level.
{
give_item(id,"weapon_ump45"); // Give yourself ump45 at level 5
}

TheRadiance 04-05-2009 05:26

Re: ammo
 
PHP Code:

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

public plugin_init ( )
{
     
// Registering your plugin...
}

public 
somefunc /* func args */ )
{
    if(
PlayerLevel[id] == 5// Checks level.
    
{
        
give_item(id,"weapon_ump45"); // Give yourself ump45 at level 5
        
cs_set_weapon_ammo fm_get_weapon_ent idCSW_UMP45 ), /* Your ammo */ )
    }
}

fm_get_weapon_ent(idwpnid 0)
{
    new 
name[32]

    if(
wpnid)
        
get_weaponname(wpnidname31)

    if (!
equal(name"weapon_"7))
        
format(namesizeof (name) - 1"weapon_%s"name)

    return 
fm_find_ent_by_owner(get_maxplayers(), nameid)
}

fm_find_ent_by_owner(id, const classname[], ownerjghgtype 0)
{
    new 
strtype[16] = "classname"
    
new ent id

    
switch (jghgtype)
    {
        case 
1strtype "target"
        
case 2strtype "targetname"
    
}

    while ((
ent engfunc(EngFunc_FindEntityByStringentstrtypeclassname)) && pev(entpev_owner) != owner)
    {
    }

    return 
ent



~Ice*shOt 04-05-2009 05:44

Re: ammo
 
Quote:

Originally Posted by TheRadiance (Post 797830)
PHP Code:

#include < amxmodx >
#include < cstrike >
#include < fakemeta >
 
public plugin_init ( )
{
     
// Registering your plugin...
}
 
public 
somefunc /* func args */ )
{
    if(
PlayerLevel[id] == 5// Checks level.
    
{
        
give_item(id,"weapon_ump45"); // Give yourself ump45 at level 5
        
cs_set_user_ammo fm_get_weapon_ent idCSW_UMP45 ), /* Your ammo */ )
    }
}
 
fm_get_weapon_ent(idwpnid 0)
{
    new 
name[32]
 
    if(
wpnid)
        
get_weaponname(wpnidname31)
 
    if (!
equal(name"weapon_"7))
        
format(namesizeof (name) - 1"weapon_%s"name)
 
    return 
fm_find_ent_by_owner(get_maxplayers(), nameid)
}
 
fm_find_ent_by_owner(id, const classname[], ownerjghgtype 0)
{
    new 
strtype[16] = "classname"
    
new ent id
 
    
switch (jghgtype)
    {
        case 
1strtype "target"
        
case 2strtype "targetname"
    
}
 
    while ((
ent engfunc(EngFunc_FindEntityByStringentstrtypeclassname)) && pev(entpev_owner) != owner)
    {
    }
 
    return 
ent




Bad that code:

PHP Code:

#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <fun>
#include <fakemeta>
#include <cstrike>
#define MAXCLASSES 5
#define PREFIX "Animal Mod"
enum {
PLAYERLEVEL_1,
PLAYERLEVEL_2,
PLAYERLEVEL_3// How many Levels
PLAYERLEVEL_4,
PLAYERLEVEL_5,
PLAYERLEVEL_6
}
enum {
CLASS_NONE 0,
CLASS_COW,
CLASS_HORSE// Add your Classes there..
CLASS_CAT,
CLASS_DOG
}
new const 
CLASSES[MAXCLASSES][] = {
    
"None",
    
"Dog",
    
"Cat",
    
"Horse",
    
"Cow"
};
new const 
LEVELS[6] = {
    
100
    
200
    
400
    
800,
    
1600,
    
3200
};
new 
PlayerXP[33], PlayerLevel[33], PlayerClass[33];
new 
gCvar_KillgCvar_KnifegCvar_HSgCvar_Enableg_Vault;
public 
plugin_init() {
    
register_plugin("XP Mod""1.0""fxfighter");
    
register_event("DeathMsg""eDeath""a");
    
register_event("ResetHUD""skill""be");
    
gCvar_Enable    register_cvar("xp_save""1");
    
gCvar_Kill    register_cvar("xp_per_kill""20");
    
gCvar_HS    register_cvar("xp_hs_bonus""20");
    
gCvar_Knife    register_cvar("xp_Knife_bonus""20");
    
g_Vault        nvault_open("animod");
    
    
register_concmd("amx_take_exp""cmd_take_exp"ADMIN_KICK"<target> <amount>"); 
    
register_concmd("amx_give_exp""cmd_give_exp"ADMIN_KICK"<target> <amount>");
    
    
register_clcmd("say /class",    "ChangeClass");
    
register_clcmd("say_team /class""ChangeClass");
    
register_clcmd("say /xp",    "ShowHud");
    
register_clcmd("say_team /xp",    "ShowHud");
}
public 
eDeath() {
    new 
attacker read_data);
    new 
headshot read_data);
    new 
clipammoweapon get_user_weapon(attackerclipammo);
    
PlayerXP[attacker] += get_pcvar_num(gCvar_Kill);
    if(
headshot)
        
PlayerXP[attacker] += get_pcvar_num(gCvar_HS);
    if(
weapon == CSW_KNIFE)
        
PlayerXP[attacker] += get_pcvar_num(gCvar_Knife);
    while(
PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]]) {
        
client_print(attackerprint_chat"[%s] Congratulations! You are a level %i %s!"PREFIXPlayerLevel[attacker], CLASSES[PlayerClass[attacker]]);
        
PlayerLevel[attacker] += 1;
    }
    
ShowHud(attacker);
    
SaveData(attacker);
}
public 
ShowHud(id) {
    
set_hudmessage(255000.750.0106.015.0);
    
show_hudmessage(id"Level: %i^nXP: %i^nClass: %s"PlayerLevel[id], PlayerXP[id], CLASSES[PlayerClass[id]]);
}
public 
ChangeClass(id) {
    new 
menu menu_create("Class Menu" "Class_Handle");
    
menu_additem(menu ,"Dog""1" 0);
    
menu_additem(menu ,"Cat""2" 0);
    
menu_additem(menu ,"Horse""3" 0);
    
menu_additem(menu ,"Cow""4" 0);
    
menu_setprop(menu MPROP_EXIT MEXIT_ALL);
    
menu_display(id menu 0);
    return 
PLUGIN_CONTINUE;
}
public 
Class_Handle(id menu item)  {
    if(
item == MENU_EXIT
        
menu_destroy(menu);
    new 
szCommand[6] , szName[64];
    new 
access callback;
    
menu_item_getinfo(menu item access szCommand szName 63 callback);
    new 
str_to_num(szCommand);
    if(
PlayerClass[id] != i) {
        
PlayerClass[id] = i;
        
client_print(id,print_chat,"[%s] You are now a %s"PREFIXCLASSES[i]);
    } else
        
client_print(id,print_chat,"[%s] You are already a %s"PREFIXCLASSES[i]);
    
menu_destroy(menu);
    return 
PLUGIN_CONTINUE;
}
public 
client_connect(id)
    if(
get_pcvar_num(gCvar_Enable) == 1)
        
LoadData(id);
public 
client_disconnect(id) {
    if(
get_pcvar_num(gCvar_Enable) == 1)
        
SaveData(id);
    
PlayerXP[id]    = 0;
    
PlayerLevel[id]    = 0;
    
PlayerClass[id]    = 0;
}
public 
SaveData(id) {
    new 
AuthID[35];
    
get_user_authid(idAuthID34);
    
    new 
vaultkey[64], vaultdata[256];
    
format(vaultkey63"%s-Mod"AuthID);
    
format(vaultdata255"%i#%i#"PlayerXP[id], PlayerLevel[id]);
    
nvault_set(g_Vaultvaultkeyvaultdata);
    return 
PLUGIN_CONTINUE;
}
public 
LoadData(id) {
    new 
AuthID[35];
    
get_user_authid(id,AuthID,34);
    
    new 
vaultkey[64], vaultdata[256];
    
format(vaultkey63"%s-Mod"AuthID);
    
format(vaultdata255"%i#%i#"PlayerXP[id], PlayerLevel[id]);
    
nvault_get(g_Vaultvaultkeyvaultdata,255);
    
replace_all(vaultdata255"#"" ");
    new 
playerxp[32], playerlevel[32];
    
parse(vaultdataplayerxp31playerlevel31);
    
PlayerXP[id] = str_to_num(playerxp);
    
PlayerLevel[id] = str_to_num(playerlevel);
    return 
PLUGIN_CONTINUE;
}
// Give/Take XP addaon by [X]-RayCat
public cmd_give_expidlevel,cid ) {
    if( ! 
cmd_access idlevelcid) )
        return 
PLUGIN_HANDLED;
    new 
target[32], amount[21], reason[21];
    
read_argv1target31 );
    
read_argv(2amount20 );
    
read_argv3reason20 );
    new 
player cmd_targetidtarget);
    if( ! 
player 
        return 
PLUGIN_HANDLED;
    new 
admin_name[32], player_name[32];
    
get_user_nameidadmin_name31 );
    
get_user_nameplayerplayer_name31 );
    new 
expnum str_to_numamount );
    
PlayerXP[player] += expnum;
    switch( 
get_cvar_num "amx_show_activity" ) ) {
        case 
1client_print0print_chat"ADMIN: gave %i points for %s."expnumplayer_name );
        case 
2client_print0print_chat"ADMIN %s: gave %i points for %s."admin_nameexpnumplayer_name );
    }
    
client_printplayerprint_chat"[%s] You received %i points. (Total: %d)"PREFIXexpnumPlayerXP[player] );
    
SaveDataid );
    return 
PLUGIN_CONTINUE;
}
 
public 
cmd_take_expidlevel,cid ) {
    if( ! 
cmd_access idlevelcid) )
       return 
PLUGIN_HANDLED;
    new 
target[32], amount[21], reason[21];
    
read_argv1target31 );
    
read_argv2amount20 );
    
read_argv3reason20 );
    new 
player cmd_targetidtarget);
    if( ! 
player 
       return 
PLUGIN_HANDLED;
    new 
admin_name[32], player_name[32];
    
get_user_nameidadmin_name31 );
    
get_user_nameplayerplayer_name31 );
    new 
expnum str_to_numamount );
    
PlayerXP[player] -= expnum;
    switch(
get_cvar_num("amx_show_activity")){
        case 
1client_print0print_chat"ADMIN: took %i points from %s."expnumplayer_name );
        case 
2client_print0print_chat"ADMIN %s: took %i points from %s."admin_nameexpnumplayer_name );
    }
    
client_printplayerprint_chat"[%s] You lost %i points. (Total: %d)"PREFIXexpnumPlayerXP[player] );
    
SaveDataid );
    return 
PLUGIN_CONTINUE;
}  
public 
skill(id)
{
 if(
PlayerLevel[id] == 0// Checks level. 
    

        
give_item(id,"weapon_glock18"); // Give yourself glock18 at level 0
        
cs_set_user_ammo fm_get_weapon_ent idCSW_GLOCK18 ), 120 
    } 
 if(
PlayerLevel[id] == 1// Checks level. 
    

        
give_item(id,"weapon_usp"); // Give yourself usp at level 1
        
cs_set_user_ammo fm_get_weapon_ent idCSW_USP ), 100 
    }
 if(
PlayerLevel[id] == 2// Checks level. 
    

        
give_item(id,"weapon_deagle"); // Give yourself deagle at level 2
        
cs_set_user_ammo fm_get_weapon_ent idCSW_DEAGLE ), 35 
    } 
 if(
PlayerLevel[id] == 3// Checks level. 
    

        
give_item(id,"weapon_elites"); // Give yourself elites at level 3
        
cs_set_user_ammo fm_get_weapon_ent idCSW_ELITES ), 120 
    } 
 if(
PlayerLevel[id] == 4// Checks level. 
    

        
give_item(id,"weapon_tmp"); // Give yourself tmp at level 4
        
cs_set_user_ammo fm_get_weapon_ent idCSW_TMP ), 120 
    } 
 if(
PlayerLevel[id] == 5// Checks level. 
    

        
give_item(id,"weapon_ump45"); // Give yourself ump45 at level 5
        
cs_set_user_ammo fm_get_weapon_ent idCSW_UMP45 ), 120 
    } 
 if(
PlayerLevel[id] == 6// Checks level. 
    

        
give_item(id,"weapon_mp5"); // Give yourself mp5 at level 6
        
cs_set_user_ammo fm_get_weapon_ent idCSW_MP5 ), 120
    } 



TheRadiance 04-05-2009 05:51

Re: ammo
 
PHP Code:

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

#define MAXCLASSES 5
#define PREFIX "Animal Mod"
enum {
PLAYERLEVEL_1,
PLAYERLEVEL_2,
PLAYERLEVEL_3// How many Levels
PLAYERLEVEL_4,
PLAYERLEVEL_5,
PLAYERLEVEL_6
}
enum {
CLASS_NONE 0,
CLASS_COW,
CLASS_HORSE// Add your Classes there..
CLASS_CAT,
CLASS_DOG
}
new const 
CLASSES[MAXCLASSES][] = {
    
"None",
    
"Dog",
    
"Cat",
    
"Horse",
    
"Cow"
};
new const 
LEVELS[6] = {
    
100
    
200
    
400
    
800,
    
1600,
    
3200
};
new 
PlayerXP[33], PlayerLevel[33], PlayerClass[33];
new 
gCvar_KillgCvar_KnifegCvar_HSgCvar_Enableg_Vault;
public 
plugin_init() {
    
register_plugin("XP Mod""1.0""fxfighter");
    
register_event("DeathMsg""eDeath""a");
    
register_event("ResetHUD""skill""be");
    
gCvar_Enable    register_cvar("xp_save""1");
    
gCvar_Kill    register_cvar("xp_per_kill""20");
    
gCvar_HS    register_cvar("xp_hs_bonus""20");
    
gCvar_Knife    register_cvar("xp_Knife_bonus""20");
    
g_Vault        nvault_open("animod");
    
    
register_concmd("amx_take_exp""cmd_take_exp"ADMIN_KICK"<target> <amount>"); 
    
register_concmd("amx_give_exp""cmd_give_exp"ADMIN_KICK"<target> <amount>");
    
    
register_clcmd("say /class",    "ChangeClass");
    
register_clcmd("say_team /class""ChangeClass");
    
register_clcmd("say /xp",    "ShowHud");
    
register_clcmd("say_team /xp",    "ShowHud");
}
public 
eDeath() {
    new 
attacker read_data);
    new 
headshot read_data);
    new 
clipammoweapon get_user_weapon(attackerclipammo);
    
PlayerXP[attacker] += get_pcvar_num(gCvar_Kill);
    if(
headshot)
        
PlayerXP[attacker] += get_pcvar_num(gCvar_HS);
    if(
weapon == CSW_KNIFE)
        
PlayerXP[attacker] += get_pcvar_num(gCvar_Knife);
    while(
PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]]) {
        
client_print(attackerprint_chat"[%s] Congratulations! You are a level %i %s!"PREFIXPlayerLevel[attacker], CLASSES[PlayerClass[attacker]]);
        
PlayerLevel[attacker] += 1;
    }
    
ShowHud(attacker);
    
SaveData(attacker);
}
public 
ShowHud(id) {
    
set_hudmessage(255000.750.0106.015.0);
    
show_hudmessage(id"Level: %i^nXP: %i^nClass: %s"PlayerLevel[id], PlayerXP[id], CLASSES[PlayerClass[id]]);
}
public 
ChangeClass(id) {
    new 
menu menu_create("Class Menu" "Class_Handle");
    
menu_additem(menu ,"Dog""1" 0);
    
menu_additem(menu ,"Cat""2" 0);
    
menu_additem(menu ,"Horse""3" 0);
    
menu_additem(menu ,"Cow""4" 0);
    
menu_setprop(menu MPROP_EXIT MEXIT_ALL);
    
menu_display(id menu 0);
    return 
PLUGIN_CONTINUE;
}
public 
Class_Handle(id menu item)  {
    if(
item == MENU_EXIT
        
menu_destroy(menu);
    new 
szCommand[6] , szName[64];
    new 
access callback;
    
menu_item_getinfo(menu item access szCommand szName 63 callback);
    new 
str_to_num(szCommand);
    if(
PlayerClass[id] != i) {
        
PlayerClass[id] = i;
        
client_print(id,print_chat,"[%s] You are now a %s"PREFIXCLASSES[i]);
    } else
        
client_print(id,print_chat,"[%s] You are already a %s"PREFIXCLASSES[i]);
    
menu_destroy(menu);
    return 
PLUGIN_CONTINUE;
}
public 
client_connect(id)
    if(
get_pcvar_num(gCvar_Enable) == 1)
        
LoadData(id);
public 
client_disconnect(id) {
    if(
get_pcvar_num(gCvar_Enable) == 1)
        
SaveData(id);
    
PlayerXP[id]    = 0;
    
PlayerLevel[id]    = 0;
    
PlayerClass[id]    = 0;
}
public 
SaveData(id) {
    new 
AuthID[35];
    
get_user_authid(idAuthID34);
    
    new 
vaultkey[64], vaultdata[256];
    
format(vaultkey63"%s-Mod"AuthID);
    
format(vaultdata255"%i#%i#"PlayerXP[id], PlayerLevel[id]);
    
nvault_set(g_Vaultvaultkeyvaultdata);
    return 
PLUGIN_CONTINUE;
}
public 
LoadData(id) {
    new 
AuthID[35];
    
get_user_authid(id,AuthID,34);
    
    new 
vaultkey[64], vaultdata[256];
    
format(vaultkey63"%s-Mod"AuthID);
    
format(vaultdata255"%i#%i#"PlayerXP[id], PlayerLevel[id]);
    
nvault_get(g_Vaultvaultkeyvaultdata,255);
    
replace_all(vaultdata255"#"" ");
    new 
playerxp[32], playerlevel[32];
    
parse(vaultdataplayerxp31playerlevel31);
    
PlayerXP[id] = str_to_num(playerxp);
    
PlayerLevel[id] = str_to_num(playerlevel);
    return 
PLUGIN_CONTINUE;
}
// Give/Take XP addaon by [X]-RayCat
public cmd_give_expidlevel,cid ) {
    if( ! 
cmd_access idlevelcid) )
        return 
PLUGIN_HANDLED;
    new 
target[32], amount[21], reason[21];
    
read_argv1target31 );
    
read_argv(2amount20 );
    
read_argv3reason20 );
    new 
player cmd_targetidtarget);
    if( ! 
player 
        return 
PLUGIN_HANDLED;
    new 
admin_name[32], player_name[32];
    
get_user_nameidadmin_name31 );
    
get_user_nameplayerplayer_name31 );
    new 
expnum str_to_numamount );
    
PlayerXP[player] += expnum;
    switch( 
get_cvar_num "amx_show_activity" ) ) {
        case 
1client_print0print_chat"ADMIN: gave %i points for %s."expnumplayer_name );
        case 
2client_print0print_chat"ADMIN %s: gave %i points for %s."admin_nameexpnumplayer_name );
    }
    
client_printplayerprint_chat"[%s] You received %i points. (Total: %d)"PREFIXexpnumPlayerXP[player] );
    
SaveDataid );
    return 
PLUGIN_CONTINUE;
}
 
public 
cmd_take_expidlevel,cid ) {
    if( ! 
cmd_access idlevelcid) )
       return 
PLUGIN_HANDLED;
    new 
target[32], amount[21], reason[21];
    
read_argv1target31 );
    
read_argv2amount20 );
    
read_argv3reason20 );
    new 
player cmd_targetidtarget);
    if( ! 
player 
       return 
PLUGIN_HANDLED;
    new 
admin_name[32], player_name[32];
    
get_user_nameidadmin_name31 );
    
get_user_nameplayerplayer_name31 );
    new 
expnum str_to_numamount );
    
PlayerXP[player] -= expnum;
    switch(
get_cvar_num("amx_show_activity")){
        case 
1client_print0print_chat"ADMIN: took %i points from %s."expnumplayer_name );
        case 
2client_print0print_chat"ADMIN %s: took %i points from %s."admin_nameexpnumplayer_name );
    }
    
client_printplayerprint_chat"[%s] You lost %i points. (Total: %d)"PREFIXexpnumPlayerXP[player] );
    
SaveDataid );
    return 
PLUGIN_CONTINUE;
}  
public 
skill(id)
{
 if(
PlayerLevel[id] == 0// Checks level. 
    

        
give_item(id,"weapon_glock18"); // Give yourself glock18 at level 0
        
cs_set_weapon_ammo fm_get_weapon_ent idCSW_GLOCK18 ), 120 
    } 
 if(
PlayerLevel[id] == 1// Checks level. 
    

        
give_item(id,"weapon_usp"); // Give yourself usp at level 1
        
cs_set_weapon_ammo fm_get_weapon_ent idCSW_USP ), 100 
    }
 if(
PlayerLevel[id] == 2// Checks level. 
    

        
give_item(id,"weapon_deagle"); // Give yourself deagle at level 2
        
cs_set_weapon_ammo fm_get_weapon_ent idCSW_DEAGLE ), 35 
    } 
 if(
PlayerLevel[id] == 3// Checks level. 
    

        
give_item(id,"weapon_elites"); // Give yourself elites at level 3
        
cs_set_weapon_ammo fm_get_weapon_ent idCSW_ELITE ), 120 
    } 
 if(
PlayerLevel[id] == 4// Checks level. 
    

        
give_item(id,"weapon_tmp"); // Give yourself tmp at level 4
        
cs_set_weapon_ammo fm_get_weapon_ent idCSW_TMP ), 120 
    } 
 if(
PlayerLevel[id] == 5// Checks level. 
    

        
give_item(id,"weapon_ump45"); // Give yourself ump45 at level 5
        
cs_set_weapon_ammo fm_get_weapon_ent idCSW_UMP45 ), 120 
    } 
 if(
PlayerLevel[id] == 6// Checks level. 
    

        
give_item(id,"weapon_mp5"); // Give yourself mp5 at level 6
        
cs_set_weapon_ammo fm_get_weapon_ent idCSW_MP5NAVY ), 120
    } 


fm_get_weapon_ent(idwpnid 0)
{
    new 
name[32]

    if(
wpnid)
        
get_weaponname(wpnidname31)

    if (!
equal(name"weapon_"7))
        
format(namesizeof (name) - 1"weapon_%s"name)

    return 
fm_find_ent_by_owner(get_maxplayers(), nameid)
}

fm_find_ent_by_owner(id, const classname[], ownerjghgtype 0)
{
    new 
strtype[16] = "classname"
    
new ent id

    
switch (jghgtype)
    {
        case 
1strtype "target"
        
case 2strtype "targetname"
    
}

    while ((
ent engfunc(EngFunc_FindEntityByStringentstrtypeclassname)) && pev(entpev_owner) != owner)
    {
    }

    return 
ent



~Ice*shOt 04-05-2009 06:08

Re: ammo
 
Quote:

Originally Posted by TheRadiance (Post 797839)
PHP Code:

#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <fun>
#include <fakemeta>
#include <cstrike>
 
#define MAXCLASSES 5
#define PREFIX "Animal Mod"
enum {
PLAYERLEVEL_1,
PLAYERLEVEL_2,
PLAYERLEVEL_3// How many Levels
PLAYERLEVEL_4,
PLAYERLEVEL_5,
PLAYERLEVEL_6
}
enum {
CLASS_NONE 0,
CLASS_COW,
CLASS_HORSE// Add your Classes there..
CLASS_CAT,
CLASS_DOG
}
new const 
CLASSES[MAXCLASSES][] = {
    
"None",
    
"Dog",
    
"Cat",
    
"Horse",
    
"Cow"
};
new const 
LEVELS[6] = {
    
100
    
200
    
400
    
800,
    
1600,
    
3200
};
new 
PlayerXP[33], PlayerLevel[33], PlayerClass[33];
new 
gCvar_KillgCvar_KnifegCvar_HSgCvar_Enableg_Vault;
public 
plugin_init() {
    
register_plugin("XP Mod""1.0""fxfighter");
    
register_event("DeathMsg""eDeath""a");
    
register_event("ResetHUD""skill""be");
    
gCvar_Enable    register_cvar("xp_save""1");
    
gCvar_Kill    register_cvar("xp_per_kill""20");
    
gCvar_HS    register_cvar("xp_hs_bonus""20");
    
gCvar_Knife    register_cvar("xp_Knife_bonus""20");
    
g_Vault        nvault_open("animod");
 
    
register_concmd("amx_take_exp""cmd_take_exp"ADMIN_KICK"<target> <amount>"); 
    
register_concmd("amx_give_exp""cmd_give_exp"ADMIN_KICK"<target> <amount>");
 
    
register_clcmd("say /class",    "ChangeClass");
    
register_clcmd("say_team /class""ChangeClass");
    
register_clcmd("say /xp",    "ShowHud");
    
register_clcmd("say_team /xp",    "ShowHud");
}
public 
eDeath() {
    new 
attacker read_data);
    new 
headshot read_data);
    new 
clipammoweapon get_user_weapon(attackerclipammo);
    
PlayerXP[attacker] += get_pcvar_num(gCvar_Kill);
    if(
headshot)
        
PlayerXP[attacker] += get_pcvar_num(gCvar_HS);
    if(
weapon == CSW_KNIFE)
        
PlayerXP[attacker] += get_pcvar_num(gCvar_Knife);
    while(
PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]]) {
        
client_print(attackerprint_chat"[%s] Congratulations! You are a level %i %s!"PREFIXPlayerLevel[attacker], CLASSES[PlayerClass[attacker]]);
        
PlayerLevel[attacker] += 1;
    }
    
ShowHud(attacker);
    
SaveData(attacker);
}
public 
ShowHud(id) {
    
set_hudmessage(255000.750.0106.015.0);
    
show_hudmessage(id"Level: %i^nXP: %i^nClass: %s"PlayerLevel[id], PlayerXP[id], CLASSES[PlayerClass[id]]);
}
public 
ChangeClass(id) {
    new 
menu menu_create("Class Menu" "Class_Handle");
    
menu_additem(menu ,"Dog""1" 0);
    
menu_additem(menu ,"Cat""2" 0);
    
menu_additem(menu ,"Horse""3" 0);
    
menu_additem(menu ,"Cow""4" 0);
    
menu_setprop(menu MPROP_EXIT MEXIT_ALL);
    
menu_display(id menu 0);
    return 
PLUGIN_CONTINUE;
}
public 
Class_Handle(id menu item)  {
    if(
item == MENU_EXIT
        
menu_destroy(menu);
    new 
szCommand[6] , szName[64];
    new 
access callback;
    
menu_item_getinfo(menu item access szCommand szName 63 callback);
    new 
str_to_num(szCommand);
    if(
PlayerClass[id] != i) {
        
PlayerClass[id] = i;
        
client_print(id,print_chat,"[%s] You are now a %s"PREFIXCLASSES[i]);
    } else
        
client_print(id,print_chat,"[%s] You are already a %s"PREFIXCLASSES[i]);
    
menu_destroy(menu);
    return 
PLUGIN_CONTINUE;
}
public 
client_connect(id)
    if(
get_pcvar_num(gCvar_Enable) == 1)
        
LoadData(id);
public 
client_disconnect(id) {
    if(
get_pcvar_num(gCvar_Enable) == 1)
        
SaveData(id);
    
PlayerXP[id]    = 0;
    
PlayerLevel[id]    = 0;
    
PlayerClass[id]    = 0;
}
public 
SaveData(id) {
    new 
AuthID[35];
    
get_user_authid(idAuthID34);
 
    new 
vaultkey[64], vaultdata[256];
    
format(vaultkey63"%s-Mod"AuthID);
    
format(vaultdata255"%i#%i#"PlayerXP[id], PlayerLevel[id]);
    
nvault_set(g_Vaultvaultkeyvaultdata);
    return 
PLUGIN_CONTINUE;
}
public 
LoadData(id) {
    new 
AuthID[35];
    
get_user_authid(id,AuthID,34);
 
    new 
vaultkey[64], vaultdata[256];
    
format(vaultkey63"%s-Mod"AuthID);
    
format(vaultdata255"%i#%i#"PlayerXP[id], PlayerLevel[id]);
    
nvault_get(g_Vaultvaultkeyvaultdata,255);
    
replace_all(vaultdata255"#"" ");
    new 
playerxp[32], playerlevel[32];
    
parse(vaultdataplayerxp31playerlevel31);
    
PlayerXP[id] = str_to_num(playerxp);
    
PlayerLevel[id] = str_to_num(playerlevel);
    return 
PLUGIN_CONTINUE;
}
// Give/Take XP addaon by [X]-RayCat
public cmd_give_expidlevel,cid ) {
    if( ! 
cmd_access idlevelcid) )
        return 
PLUGIN_HANDLED;
    new 
target[32], amount[21], reason[21];
    
read_argv1target31 );
    
read_argv(2amount20 );
    
read_argv3reason20 );
    new 
player cmd_targetidtarget);
    if( ! 
player 
        return 
PLUGIN_HANDLED;
    new 
admin_name[32], player_name[32];
    
get_user_nameidadmin_name31 );
    
get_user_nameplayerplayer_name31 );
    new 
expnum str_to_numamount );
    
PlayerXP[player] += expnum;
    switch( 
get_cvar_num "amx_show_activity" ) ) {
        case 
1client_print0print_chat"ADMIN: gave %i points for %s."expnumplayer_name );
        case 
2client_print0print_chat"ADMIN %s: gave %i points for %s."admin_nameexpnumplayer_name );
    }
    
client_printplayerprint_chat"[%s] You received %i points. (Total: %d)"PREFIXexpnumPlayerXP[player] );
    
SaveDataid );
    return 
PLUGIN_CONTINUE;
}
 
public 
cmd_take_expidlevel,cid ) {
    if( ! 
cmd_access idlevelcid) )
       return 
PLUGIN_HANDLED;
    new 
target[32], amount[21], reason[21];
    
read_argv1target31 );
    
read_argv2amount20 );
    
read_argv3reason20 );
    new 
player cmd_targetidtarget);
    if( ! 
player 
       return 
PLUGIN_HANDLED;
    new 
admin_name[32], player_name[32];
    
get_user_nameidadmin_name31 );
    
get_user_nameplayerplayer_name31 );
    new 
expnum str_to_numamount );
    
PlayerXP[player] -= expnum;
    switch(
get_cvar_num("amx_show_activity")){
        case 
1client_print0print_chat"ADMIN: took %i points from %s."expnumplayer_name );
        case 
2client_print0print_chat"ADMIN %s: took %i points from %s."admin_nameexpnumplayer_name );
    }
    
client_printplayerprint_chat"[%s] You lost %i points. (Total: %d)"PREFIXexpnumPlayerXP[player] );
    
SaveDataid );
    return 
PLUGIN_CONTINUE;
}  
public 
skill(id)
{
 if(
PlayerLevel[id] == 0// Checks level. 
    

        
give_item(id,"weapon_glock18"); // Give yourself glock18 at level 0
        
cs_set_weapon_ammo fm_get_weapon_ent idCSW_GLOCK18 ), 120 
    } 
 if(
PlayerLevel[id] == 1// Checks level. 
    

        
give_item(id,"weapon_usp"); // Give yourself usp at level 1
        
cs_set_weapon_ammo fm_get_weapon_ent idCSW_USP ), 100 
    }
 if(
PlayerLevel[id] == 2// Checks level. 
    

        
give_item(id,"weapon_deagle"); // Give yourself deagle at level 2
        
cs_set_weapon_ammo fm_get_weapon_ent idCSW_DEAGLE ), 35 
    } 
 if(
PlayerLevel[id] == 3// Checks level. 
    

        
give_item(id,"weapon_elites"); // Give yourself elites at level 3
        
cs_set_weapon_ammo fm_get_weapon_ent idCSW_ELITE ), 120 
    } 
 if(
PlayerLevel[id] == 4// Checks level. 
    

        
give_item(id,"weapon_tmp"); // Give yourself tmp at level 4
        
cs_set_weapon_ammo fm_get_weapon_ent idCSW_TMP ), 120 
    } 
 if(
PlayerLevel[id] == 5// Checks level. 
    

        
give_item(id,"weapon_ump45"); // Give yourself ump45 at level 5
        
cs_set_weapon_ammo fm_get_weapon_ent idCSW_UMP45 ), 120 
    } 
 if(
PlayerLevel[id] == 6// Checks level. 
    

        
give_item(id,"weapon_mp5"); // Give yourself mp5 at level 6
        
cs_set_weapon_ammo fm_get_weapon_ent idCSW_MP5NAVY ), 120
    } 

 
fm_get_weapon_ent(idwpnid 0)
{
    new 
name[32]
 
    if(
wpnid)
        
get_weaponname(wpnidname31)
 
    if (!
equal(name"weapon_"7))
        
format(namesizeof (name) - 1"weapon_%s"name)
 
    return 
fm_find_ent_by_owner(get_maxplayers(), nameid)
}
 
fm_find_ent_by_owner(id, const classname[], ownerjghgtype 0)
{
    new 
strtype[16] = "classname"
    
new ent id
 
    
switch (jghgtype)
    {
        case 
1strtype "target"
        
case 2strtype "targetname"
    
}
 
    while ((
ent engfunc(EngFunc_FindEntityByStringentstrtypeclassname)) && pev(entpev_owner) != owner)
    {
    }
 
    return 
ent



THX,
0 Errors, 0 Warrings. Maybe can help with the situ? when tying in the server and command me jungiuos emit SERVER error: ED_Alloc: no free edits

YamiKaitou 04-06-2009 01:09

Re: ammo
 
As per the Global Forum Rules, you need to have a descriptive topic title. If you wish for this topic to stay open, please correct the topic title before you post again.

~Ice*shOt 04-06-2009 02:51

Re: ammo
 
Quote:

Originally Posted by YamiKaitou (Post 798555)
As per the Global Forum Rules, you need to have a descriptive topic title. If you wish for this topic to stay open, please correct the topic title before you post again.

but this topic I will still need

ConnorMcLeod 04-06-2009 13:14

Re: ammo
 
AFAIK, give_item return the entity index if it was actually given.

PHP Code:

new iWeapon give_item(id"weapon_m4a1")
if( 
iWeapon )
{
    
cs_set_weapon_ammp(iWeapon30// but should already be 30 when you receive it
}
cs_set_user_bpammo(idCSW_M4A190

If you need to retrieve player weapon entity index, then use my stock :
http://forums.alliedmods.net/showthread.php?t=85962

PHP Code:

new iM4A1 ham_get_user_weaponent(idCSW_M4A11)
//new iM4A1 = ham_get_user_weaponent2(id, CSW_M4A1) // 1st one is faster, but this one is fine too.
if( iM4A1 )
{
    
cs_set_weapon_ammo(iM4A130)




All times are GMT -4. The time now is 02:28.

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