| Going Dutch |
01-14-2014 08:04 |
Re: Help with a Knife Shop. (Natives)
Hi,
I almost got it, only getting one error now.
Quote:
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2013 ITB CompuPhase, AMX Mod X Team
Error: Number of arguments does not match definition on line 169
1 Error.
|
This line is wrong:
PHP Code:
hnsxp_set_user_xp(client, (hnsxp_get_user_xp(client) - str_to_num(g_knifecosts[item])),1);
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 11
new g_knife[33]; new g_xp[33]; new const g_knifemodels[SKINS][64] = { "models/v_knife.mdl", // The default model, don't touch "models/v_knife.mdl", "models/v_knife.mdl", "models/v_knife.mdl", "models/v_knife.mdl", "models/v_knife.mdl", "models/v_knife.mdl", "models/v_knife.mdl", "models/v_knife.mdl", "models/v_knife.mdl", "models/v_knife.mdl" }
new const g_knifenames [SKINS][32] = { "Default Knife", "Dorex Knife", "Lightning Knife", "Master Knife", "Traker Knife", "Ultimate Knife", "Ice Knife", "Bloody Knife", "Evolution Knife", "Simple Knife", "Crool Knife" }
new g_knifecosts[SKINS][] = { "0", "5", "5", "5", "5", "5", "10", "10", "15", "15", "15" }
new g_knifeflag[SKINS][] = { "0", "0", "0", "0", "0", "0", "1", "1", "1", "1", "1" }
static const PORTAL [ ] = "^4[Website coming soon]^1" static const DIE [ ] = "You can not open this shop, you must be alive !" static const MONEY [ ] = "You dont have enough XP for this knife skin !" static const BUY [ ] = "You have bought ^3"
#define PLUGIN "" #define VERSION "" #define AUTHOR ""
#define VIP_FLAG ADMIN_LEVEL_G
public plugin_natives() { register_library("hns_xp"); register_native("hnsxp_get_user_xp", "_get_xp"); register_native("hnsxp_set_user_xp", "_set_xp"); }
public _get_xp(plugin, params) { return g_xp[get_param(1)]; } 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[%i$] \y%s",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", PORTAL, 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 (hnsxp_get_user_xp(client) < str_to_num(g_knifecosts[item])) { ChatColor(client,"%s %s",PORTAL,MONEY); return; } hnsxp_set_user_xp(client, (hnsxp_get_user_xp(client) - str_to_num(g_knifecosts[item])),1); g_knife[client] = item; ChatColor(client,"%s %s%s",PORTAL,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( ) } } }
Sorry if i am asking too much, but i really want to get this right.
Thank you
|