|
Member
|

01-13-2014
, 15:37
Help with a Knife Shop. (Natives)
|
#1
|
Hello,
PHP Code:
native hnsxp_get_user_xp(client);
native hnsxp_set_user_xp(client, xp);
stock hnsxp_add_user_xp(client, xp)
{
return hnsxp_set_user_xp(client, hnsxp_get_user_xp(client) + xp);
}
stock hnsxp_sub_user_xp(client, xp)
{
return hnsxp_set_user_xp(client, hnsxp_get_user_xp(client) - xp);
}
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#define SKINS 2
new g_knife[33];
new g_xp[33];
public plugin_natives()
{
register_library("hns_xp");
register_native("hnsxp_get_user_xp", "_get_xp");
}
public _get_xp(plugin, params)
{
return g_xp[get_param(1)];
}
new const g_knifemodels[SKINS][64] = {
"models/v_knife.mdl", // The default model, don't touch
"models/v_knife.mdl"
}
new const g_knifenames [SKINS][32] = {
"Default Knife",
"Custom Knife #1"
}
new g_knifecosts[SKINS][] = {
"0",
"500"
}
new g_knifeflag[SKINS][] = {
"0",
"0"
}
static const DIE [ ] = "You can not open a shop, you must be alive !"
static const MONEY [ ] = "You dont have money for this knife skin !"
static const BUY [ ] = "You bought ^3"
#define PLUGIN ""
#define VERSION ""
#define AUTHOR ""
#define VIP_FLAG ADMIN_LEVEL_G
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /knifeshop", "cmd_knife")
register_clcmd("say /knife", "cmd_knife")
register_event("CurWeapon","Event_CurWeapon","be","1=1");
}
public plugin_precache(){
for (new i; i <= sizeof g_knifemodels; i++)
precache_model(g_knifemodels[i]);
}
public client_putinserver(client)
g_knife[client] = 0;
public Event_CurWeapon(client){
if (read_data(2) == CSW_KNIFE)
set_pev(client,pev_viewmodel2,g_knifemodels[g_knife[client]]);
}
public cmd_knife(id){
new szSome[256];
if(is_user_alive(id))
{
new knife = menu_create("Select your Knife", "cmd_knife_h");
new cb = menu_makecallback("knife_callback");
for (new i; i <= SKINS - 1; i++)
{
formatex(szSome,255,"%s \r[%sXP] \y%i",g_knifenames[i],str_to_num(g_knifecosts[i]),(str_to_num(g_knifeflag[i]) ? "[VIP]":""));
menu_additem(knife,szSome,g_knifeflag[i],.callback=cb);
}
menu_display(id,knife);
}
else
ChatColor(id, "%s %s", DIE);
}
public knife_callback(client,knife,item){
new access,callback,szInfo[8],szName[32];
menu_item_getinfo(knife,item,access,szInfo,8,szName,32,callback);
if (str_to_num(szInfo) == 1 && !(get_user_flags(client) & VIP_FLAG))
return ITEM_DISABLED;
return ITEM_ENABLED;
}
public cmd_knife_h(client, knife, item)
{
if(item == MENU_EXIT)
{
menu_destroy(knife);
return;
}
if (g_xp(client) < str_to_num(g_knifecosts[item]))
{
ChatColor(client,"%s %s",MONEY);
return;
}
_get_xp(client,(_get_xp(client) - str_to_num(g_knifecosts[item])),1);
g_knife[client] = item;
ChatColor(client,"%s %s%s",BUY,g_knifenames[g_knife[client]]);
}
stock ChatColor(const id, const input[], any:...) {
new count = 1, players[ 32 ]
static msg[ 191 ]
vformat( msg, 190, input, 3 )
replace_all( msg, 190, "!g", "^4" )
replace_all( msg, 190, "!y", "^1" )
replace_all( msg, 190, "!t", "^3" )
if(id) players[ 0 ] = id;
else get_players( players, count, "ch" )
for(new i = 0; i < count; i++)
{
if( is_user_connected( players[ i ] ) )
{
message_begin( MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[ i ] )
write_byte( players[ i ] )
write_string( msg )
message_end( )
}
}
}
I am trying to implement the hidenseek xp mod by exolent into this shop, so you will pay with the XP earned from that xpmod.
But so far i am getting this error:
Quote:
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2013 ITB CompuPhase, AMX Mod X Team
Warning: Loose indentation on line 101
Error: Undefined symbol "xp" on line 129
Error: Number of arguments does not match definition on line 135
2 Errors.
|
I am really confused about all this.
__________________
Learning amxx/pawn and all that good stuff.
|
|