You can log in to our site only via STEAM. If you don’t have a STEAM account, please register a free one on the official site steamcommunity.com, then click the button below to log in. Logged-in users have access to many features that make browsing our store more convenient. To purchase plugins, change your IP, or recover a key, logging in is not required.
By logging in to our website, you agree to the terms of our Privacy Policy
The plugin is not relevant if you are using ReHLDS!
The plugin removes the $16,000 money limit. Official page for More Money than 16000 2.0 (2/1/08): https://forums.alliedmods.net/showthread.php?t=24003 The plugin is identical to the original and is provided because some of our plugins support it!
CVars (add to amxx.cfg)
amx_maxmoney - Maximum amount of money a player can have (default: 99999) amx_startmoney - Use this cvar instead of the standard mp_startmoney (initial money for the player)
Commands
amx_setmoney - Give money to a player/all/team Access level - ADMIN_LEVEL_A (flag m) Syntax - amx_setmoney "@team/@all/nickname/#userid" "amount" where @team is the team, @all is everyone, nickname is by player name, #userid is by userid (vote to view)
For Developers
Place money_ul.inc in the scripting/include/ folder
Include it in your plugin: #include (must be included after #include )
Replace all cs_get_user_money with cs_get_user_money_ul
Replace all cs_set_user_money with cs_set_user_money_ul
2.0 - Добавлены нативы для поддержки других плагинов 1.3 - Исправлен показ денег - Исправлен amx_startmoney при значении выше 16000, спасибо jopmako 1.2 - Добавлен квар для amxx 1.70 и выше 1.1.1 - Исправлена ошибка sv_restartround 1.1 - Исправлен показ денег при sv_restartround 1.0 - релиз
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#define MONEY_TIER 8000 // DON'T MESS WITH, Money total at which the plugin switches over keeping track of money
new money_total[33] // Keep track of peeps money if above MONEY_TIER
new gmsg_Money
new amx_maxmoney
new amx_startmoney
public client_connect(id)
{
set_cvar_float("mp_startmoney", 801.0) // So you can track when to change to amx_startmoney ammount, I know.. a crude method
money_total[id] = 0
}
public read_gmsg_Money(id) {
if(!is_user_connected(id)) return PLUGIN_HANDLED
new current_total = read_data(1)
if(current_total == 801){ // If CS is spawning you with mp_startmoney default
current_total = get_pcvar_num(amx_startmoney) // current total is actually amx_startmoney
cs_set_user_money(id, current_total,0) // so set user money to amx_startmoney
money_total[id] = 0 // reset
}
if(current_total >= MONEY_TIER && !money_total[id]) // If first time above MONEY_TIER
{
money_total[id] = current_total // Keep track of current total
send_moneymsg(id,current_total-MONEY_TIER,read_data(2)) // send money msg of current total
return PLUGIN_CONTINUE
}
if(money_total[id]) // If was over tier on last money message
{
money_total[id] += current_total - MONEY_TIER // figure the term of current total - tier
if(money_total[id] < MONEY_TIER){ // If less then tier set user money to money_total[id] and stop keeping track
cs_set_user_money(id,money_total[id],1)
money_total[id] = 0
}
else{
send_moneymsg(id,current_total-MONEY_TIER,read_data(2)) // else send money message
}
return PLUGIN_CONTINUE
}
return PLUGIN_CONTINUE
}
//change flash to ammount
public send_moneymsg(id,ammount,flash)
{
cs_set_user_money(id,MONEY_TIER,0) //Set user money to tier ammount so easy to track add and subtract terms
new maxamount = get_pcvar_num(amx_maxmoney)
if(money_total[id] > maxamount)
money_total[id] = maxamount
//send old money
message_begin( MSG_ONE , gmsg_Money , {0,0,0}, id )
write_long(money_total[id]-ammount)
write_byte(0)
message_end()
//send current money
message_begin( MSG_ONE , gmsg_Money , {0,0,0}, id ) //Send money message with ammount stored in money_total[id]
write_long(money_total[id])
write_byte(flash)
message_end()
}
public find_money_target(id, level, cid)
{
if(!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED
new target[16], ammount[8], players[32]
new num
read_argv(1,target,15)
read_argv(2,ammount,7)
if(target[0] == '@'){ //If trying to give a team money
if(target[1] == 'C' || target[1] == 'c'){
get_players(players, num ,"e", "CT")
}
else if(target[1] == 'T' || target[1] == 't'){
get_players(players, num ,"e", "TERRORIST")
}
else{
console_print(id, "*** No known team by that name. ***")
return PLUGIN_HANDLED
}
}
else if(target[0] == '#'){ //If trying to give a player(userid) money
new userid = str_to_num(target[1])
players[0] = find_player("k", userid)
}
else{ // else search for matching name to try and give money
players[0] = find_player("bl", target)
}
if(players[0] == 0){ //If no target(s) could be found
console_print(id, "*** No target(s) could be found. ***")
return PLUGIN_HANDLED
}
else
give_money(players, str_to_num(ammount))
return PLUGIN_HANDLED
}
public give_money(players[], ammount)
{
new i
while(players[i]){
if(money_total[players[i]]){
money_total[players[i]] += ammount // Keep track of current total
send_moneymsg(players[i],ammount,1) // send money msg of current total
}
else if( (cs_get_user_money(players[i]) + ammount) >= MONEY_TIER){
money_total[players[i]] = cs_get_user_money(players[i]) + ammount // Keep track of current total
send_moneymsg(players[i],ammount,1) // send money msg of current total
}
else{
ammount += cs_get_user_money(players[i])
cs_set_user_money(players[i],ammount,1)
money_total[players[i]] = 0
}
++i
}
}
public restartround()
{
for (new i=1; i<33; i++)
money_total[i] = 0
}
public _cs_get_user_money_ul(plug,param) {
if(param != 1)
return PLUGIN_HANDLED
new id = get_param(1)
if (id < 1 || id > get_maxplayers()) {
log_error(AMX_ERR_NATIVE, "Player out of range (%d)", id)
return PLUGIN_HANDLED
} else {
if (!is_user_connected(id)) {
log_error(AMX_ERR_NATIVE, "Invalid player %d", id)
return PLUGIN_HANDLED
}
}
if(money_total[id] < MONEY_TIER) {
return cs_get_user_money(id)
}
else {
return money_total[id]
}
return PLUGIN_HANDLED
}
public _cs_set_user_money_ul(plug,param) {
if(param != 2 && param != 3 )
return PLUGIN_HANDLED
new id = get_param(1)
if (id < 1 || id > get_maxplayers()) {
log_error(AMX_ERR_NATIVE, "Player out of range (%d)", id)
return PLUGIN_HANDLED
} else {
if (!is_user_connected(id)) {
log_error(AMX_ERR_NATIVE, "Invalid player %d", id)
return PLUGIN_HANDLED
}
}
new ammount = get_param(2)
if(ammount >= MONEY_TIER){
new change = ammount - money_total[id]
money_total[id] = ammount
send_moneymsg(id,change,get_param(3))
}
else{
if (ammount < 0) ammount = 0
cs_set_user_money(id,ammount,get_param(3))
money_total[id] = 0
}
return PLUGIN_HANDLED
}
public plugin_natives() {
register_library("money_ul")
register_native("cs_get_user_money_ul","_cs_get_user_money_ul")
register_native("cs_set_user_money_ul","_cs_set_user_money_ul")
}
public plugin_init()
{
register_plugin("Unlimited Money","2.0","NL)Ramon(NL")
register_event("Money","read_gmsg_Money","b")
register_event("TextMsg", "restartround", "a", "2&#Game_C","2&#Game_w")
amx_startmoney = register_cvar("amx_startmoney", "800")
amx_maxmoney = register_cvar("amx_maxmoney", "99999")
register_concmd("amx_setmoney", "find_money_target",ADMIN_LEVEL_A, "{@team, #userid, or name(can be partial)} <ammount>")
gmsg_Money = get_user_msgid("Money")
return PLUGIN_CONTINUE
}
#if defined _money_ul_included
#endinput
#endif
#define _money_ul_included
/* Returns users money.
*/
native cs_get_user_money_ul(index);
/* Gives money to user. If flash is 1, the difference between new and old amount will flash red or green.
*/
native cs_set_user_money_ul(index, money, flash = 1);