Merhaba arkadaşlar. Serverde Zombie Plague 5.0 kurulu. Zombie Bankasıyla, Ammo verme plugini çakışıyor. Ammo verme çalışmıyor. Yardımcı olabilir misiniz.
Printable View
Merhaba arkadaşlar. Serverde Zombie Plague 5.0 kurulu. Zombie Bankasıyla, Ammo verme plugini çakışıyor. Ammo verme çalışmıyor. Yardımcı olabilir misiniz.
.sma paylaşmadığınız için sorununuzu sitenin sihirli değneği ile çözdük :)
PHP- Kodu:
/*================================================================================
--------------------------------------
-*- [ZP] Sub-Plugin: Ultimate Bank -*-
--------------------------------------
~~~~~~~~~~~~~~~
- Description -
~~~~~~~~~~~~~~~
This plug-in offers the clients the possibility to save their
ammo packs in a bank account and retrieve them when needed.
Everything is configurable by cvar values.
This bank has absolutely NO BUGS.
This plug-in also has new features such as auto saving,
auto withdrawing, ML and bot support.
Enjoy it and have fun!
Original forum thread: [ZP] Sub-Plugin: Ultimate Bank 1.1 - AlliedModders
~~~~~~~~~~~~~
- Thanks to -
~~~~~~~~~~~~~
MeRcyLeZZ - For such an awesome mod like Zombie Plague
and for some code i used from it...once again
Random1 - For the original plug-in
abdul-rehman - For suggesting removal of entity for ads
and providing a option to replace it
dorin2oo7 - For his pictures i used to style up my post
~~~~~~~~~~~~~~~~~
- Multi-lingual -
~~~~~~~~~~~~~~~~~
EN: Me (AlliedModders - View Profile: georgik57)
RO: Me (AlliedModders - View Profile: georgik57)
ES: DJHD! (AlliedModders - View Profile: DJHD!),
lNeedHelp (AlliedModders - View Profile: lNeedHelp)
RU: GAARA54 (AlliedModders - View Profile: GAARA54)
BR: BRDominik (AlliedModders - View Profile: BRDominik)
TR: AnqeL' (AlliedModders - View Profile: AnqeL')
LV: Zyhm (AlliedModders - View Profile: Zyhm)
PL: artos (AlliedModders - View Profile: artos)
~~~~~~~~~~~~~~
- To do list -
~~~~~~~~~~~~~~
* Add donate
* Add SQL support
~~~~~~~~~~~~~
- Changelog -
~~~~~~~~~~~~~
* v1.0 (11 Jul 2010)
- First release
- Added ML, auto-depositing/withdrawing,
bot, steamid, ip, name saving support
- Fixed all the bugs up to date
* v1.1 (25 Sep 2010)
- Fixed ML not displaying correctly when
depositing a certain ammount of ammo packs
- Fixed auto-withdraw bug which was
giving players extra ammo packs
- Replaced ad entity with a task
- Added reseting the bank limit if it's
set to a value lower than 1
- Ads display now only the active options
- Removed FakeMeta
================================================================================*/
#include <amxmodx>
#include <nvault>
#include <zombieplague>
#define CMDTARGET_OBEY_IMMUNITY (1<<0)
#define CMDTARGET_ALLOW_SELF (1<<1)
#define CMDTARGET_ONLY_ALIVE (1<<2)
#define CMDTARGET_NO_BOTS (1<<3)
enum pcvar
{
enable = 0,
cap,
start,
advertise,
deposit,
withdraw,
account,
savetype,
bot
}
new gvault, g_msgSayText, pcvars[pcvar], bankstorage[33]
public plugin_init()
{
register_plugin("[ZP] Sub Plugin: Ultimate Bank", "1.1", "93()|29!/<, Random1");
register_dictionary("zp_bank.txt")
gvault = nvault_open("Zombie Bank Ultimate");
g_msgSayText = get_user_msgid("SayText")
pcvars[enable] = register_cvar("zp_bank", "1");
pcvars[cap] = register_cvar("zp_bank_limit", "7500000007");
pcvars[start] = register_cvar("zp_bank_blockstart", "0");
pcvars[advertise] = register_cvar("zp_bank_ad_delay", "275.7")
pcvars[deposit] = register_cvar("zp_bank_deposit", "1")
pcvars[withdraw] = register_cvar("zp_bank_withdraw", "1")
pcvars[account] = register_cvar("zp_bank_account", "1")
pcvars[savetype] = register_cvar("zp_bank_save_type", "1")
pcvars[bot] = register_cvar("zp_bank_bot_support", "1")
if (get_pcvar_num(pcvars[cap]) > 2147483646)
{
set_pcvar_num(pcvars[cap], 2147483646);
server_print("[%L] %L", LANG_PLAYER, "BANK_PREFIX", LANG_PLAYER, "BANK_LIMIT");
}
else if (get_pcvar_num(pcvars[cap]) < 1)
set_pcvar_num(pcvars[cap], 1);
register_clcmd("say", "handle_say");
register_clcmd("say_team", "handle_say");
if (get_pcvar_num(pcvars[advertise]))
set_task(get_pcvar_float(pcvars[advertise]), "advertise_loop");
}
public plugin_cfg()
{
// Plugin is disabled
if (!get_pcvar_num(pcvars[enable]))
return;
// Get configs dir
new cfgdir[32]
get_configsdir(cfgdir, charsmax(cfgdir))
// Execute config file (zp_rewards.cfg)
server_cmd("exec %s/zp_bank.cfg", cfgdir)
}
public advertise_loop()
{
if (!get_pcvar_num(pcvars[enable]) || !get_pcvar_float(pcvars[advertise]))
{
remove_task()
return;
}
if (get_pcvar_num(pcvars[cap]))
zp_colored_print(0, "^x04[%L]^x01 %L", LANG_PLAYER, "BANK_PREFIX", LANG_PLAYER, "BANK_INFO1", get_pcvar_num(pcvars[cap]));
if (get_pcvar_num(pcvars[deposit]))
zp_colored_print(0, "^x04[%L]^x01 %L", LANG_PLAYER, "BANK_PREFIX", LANG_PLAYER, "BANK_INFO_DPS");
else
zp_colored_print(0, "^x04[%L]^x01 %L", LANG_PLAYER, "BANK_PREFIX", LANG_PLAYER, "BANK_INFO_AS");
if (get_pcvar_num(pcvars[withdraw]))
zp_colored_print(0, "^x04[%L]^x01 %L", LANG_PLAYER, "BANK_PREFIX", LANG_PLAYER, "BANK_INFO_WD");
set_task(get_pcvar_float(pcvars[advertise]), "advertise_loop");
}
public plugin_end()
nvault_close(gvault);
public handle_say(id)
{
if (!get_pcvar_num(pcvars[enable]))
return PLUGIN_CONTINUE;
new text[70], arg1[32], arg2[32], arg3[6];
read_args(text, sizeof(text) - 1);
remove_quotes(text);
arg1[0] = '^0';
arg2[0] = '^0';
arg3[0] = '^0';
parse(text, arg1, sizeof(arg1) - 1, arg2, sizeof(arg2) - 1, arg3, sizeof(arg3) - 1);
//strip forward slash if present
if (equali(arg1, "/", 1))
format(arg1, 31, arg1[1]);
// if the chat line has more than 2 words, we're not interested at all
if (arg3[0])
return PLUGIN_CONTINUE;
if (equali(arg1, "deposit", 7) || equali(arg1, "save", 4) || equali(arg1, "store", 5))
{
if (!get_pcvar_num(pcvars[deposit]))
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_DNA");
return PLUGIN_CONTINUE;
}
if (isdigit(arg2[0]) || arg2[0] == '-' && isdigit(arg2[1]))
{
new amount = str_to_num(arg2);
if (amount <= 0)
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_VGZ");
return PLUGIN_CONTINUE;
}
store_packs(id, amount);
return PLUGIN_HANDLED;
}
else if (equali(arg2, "all"))
{
store_packs(id, 0);
return PLUGIN_HANDLED;
}
else if (!arg2[0])
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_HELP_DPS");
return PLUGIN_CONTINUE;
}
return PLUGIN_CONTINUE;
}
else if (equali(arg1, "withdraw", 8) || equali(arg1, "take", 4) || equali(arg1, "retrieve", 8))
{
if (!get_pcvar_num(pcvars[withdraw]))
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_WNA");
return PLUGIN_CONTINUE;
}
if (isdigit(arg2[0]) || arg2[0] == '-' && isdigit(arg2[1]))
{
new amount = str_to_num(arg2);
if (amount <= 0)
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_VGZ");
return PLUGIN_CONTINUE;
}
take_packs(id, amount);
return PLUGIN_HANDLED;
}
else if (equali(arg2, "all", 3) || equali(arg2, "everything", 10))
{
take_packs(id, 0);
return PLUGIN_HANDLED;
}
else if (!arg2[0])
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_HELP_WD");
return PLUGIN_CONTINUE;
}
return PLUGIN_CONTINUE;
}
else if (equali(arg1, "packs", 6) || equali(arg1, "account", 7) || equali(arg1, "bank", 4))
{
if (!arg2[0])
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_INFO_CHK1", bankstorage[id]);
return PLUGIN_HANDLED;
}
else
{
new id2 = cmd_target(id, arg2, 2);
if (!id2)
return PLUGIN_CONTINUE;
static id2name[32];
get_user_name(id2, id2name, 31);
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_INFO_CHK2", id2name, bankstorage[id2]);
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
return PLUGIN_CONTINUE;
}
//public zp_user_disconnect_pre(id)
public client_disconnect(id)
{
if (!get_pcvar_num(pcvars[enable]))
return;
if (is_user_bot(id) && !get_pcvar_num(pcvars[bot]) || !zp_get_user_ammo_packs(id))
return;
else
store_packs(id, 0);
if (bankstorage[id] > 0)
save_data(id);
}
//public zp_user_connect_post(id)
public client_putinserver(id)
{
if (!get_pcvar_num(pcvars[enable]))
return;
bankstorage[id] = 0; //clear residual before loading
retrieve_data(id);
if (!get_pcvar_num(pcvars[withdraw]))
{
if (!bankstorage[id] || is_user_bot(id) && !get_pcvar_num(pcvars[bot]))
return;
take_packs(id, 0)
}
}
store_packs(id, amnt)
{
if (!get_pcvar_num(pcvars[enable]))
return;
new temp = zp_get_user_ammo_packs(id);
new limit = get_pcvar_num(pcvars[cap]);
new fill = limit - bankstorage[id];
if (!temp)
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_NAPTD")
return;
}
if (amnt == 0)
{
if (bankstorage[id] + temp <= limit)
{
bankstorage[id] += temp;
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_DPST", temp)
zp_set_user_ammo_packs(id, 0);
}
else
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_CPCT", limit);
if (!fill)
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_NDPST");
return;
}
else
{
bankstorage[id] += fill
zp_set_user_ammo_packs(id, temp - fill);
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_PADPST", fill);
}
}
checkmax(id);
}
else if (amnt > 0)
{
if (temp >= amnt)
{
if (bankstorage[id] + amnt <= limit)
{
bankstorage[id] += amnt
zp_set_user_ammo_packs(id, temp - amnt);
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_DPST", amnt)
}
else
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_CPCT", limit);
if (!fill)
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_NDPST");
return;
}
else
{
bankstorage[id] += fill
zp_set_user_ammo_packs(id, temp - fill);
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_PDPST", fill, amnt);
}
}
}
else
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_ASTDG", amnt, temp);
return;
}
}
}
take_packs(id, amnt)
{
if (!get_pcvar_num(pcvars[enable]))
return;
if (!bankstorage[id])
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_NPIA")
return;
}
if (amnt == 0)
{
zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + bankstorage[id])
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_WALL", bankstorage[id])
bankstorage[id] = 0;
}
else if (amnt > 0)
{
if (bankstorage[id] >= amnt)
{
zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + amnt);
bankstorage[id] -= amnt;
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_WAM", amnt)
}
else
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_ASGB", amnt, bankstorage[id]);
return;
}
}
}
save_data(id)
{
new vaultkey[40], vaultdata[13];
switch (get_pcvar_num(pcvars[savetype]))
{
case 1:
{
new AuthID[33];
get_user_authid(id, AuthID, 32);
formatex(vaultkey, 39, "__%s__", AuthID);
}
case 2:
{
new IP[33];
get_user_ip(id, IP, 32);
formatex(vaultkey, 39, "__%s__", IP);
}
case 3:
{
new Name[33];
get_user_name(id, Name, 32);
formatex(vaultkey, 39, "__%s__", Name);
}
}
formatex(vaultdata, 12, "%i", bankstorage[id]);
nvault_set(gvault, vaultkey, vaultdata);
}
retrieve_data(id)
{
new vaultkey[40], vaultdata[13];
switch (get_pcvar_num(pcvars[savetype]))
{
case 1:
{
new AuthID[33];
get_user_authid(id, AuthID, 32);
formatex(vaultkey, 39, "__%s__", AuthID);
}
case 2:
{
new IP[33];
get_user_ip(id, IP, 32);
formatex(vaultkey, 39, "__%s__", IP);
}
case 3:
{
new Name[33];
get_user_name(id, Name, 32);
formatex(vaultkey, 39, "__%s__", Name);
}
}
nvault_get(gvault, vaultkey, vaultdata, 12);
bankstorage[id] = str_to_num(vaultdata);
checkmax(id);
// If they have an account don't allow zombie mod to give them 5 ammo packs at beggining
if (get_pcvar_num(pcvars[start]) && bankstorage[id] > 0)
zp_set_user_ammo_packs(id, 0);
}
checkmax(id)
{
if (bankstorage[id] > get_pcvar_num(pcvars[cap]))
bankstorage[id] = get_pcvar_num(pcvars[cap]);
else if (bankstorage[id] < 0)
bankstorage[id] = 0;
}
// Colored chat print by MeRcyLeZZ
zp_colored_print(target, const message[], any:...)
{
static buffer[512], i, argscount
argscount = numargs()
// Send to everyone
if (!target)
{
static player
for (player = 1; player <= get_maxplayers(); player++)
{
// Not connected
if (!is_user_connected(player))
continue;
// Remember changed arguments
static changed[5], changedcount // [5] = max LANG_PLAYER occurencies
changedcount = 0
// Replace LANG_PLAYER with player id
for (i = 2; i < argscount; i++)
{
if (getarg(i) == LANG_PLAYER)
{
setarg(i, 0, player)
changed[changedcount] = i
changedcount++
}
}
// Format message for player
vformat(buffer, charsmax(buffer), message, 3)
// Send it
message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, player)
write_byte(player)
write_string(buffer)
message_end()
// Replace back player id's with LANG_PLAYER
for (i = 0; i < changedcount; i++)
setarg(changed[i], 0, LANG_PLAYER)
}
}
// Send to specific target
else
{
// Format message for player
vformat(buffer, charsmax(buffer), message, 3)
// Send it
message_begin(MSG_ONE, g_msgSayText, _, target)
write_byte(target)
write_string(buffer)
message_end()
}
}
// Stock from AmxMisc
stock get_configsdir(name[], len)
return get_localinfo("amxx_configsdir", name, len);
stock cmd_target(id,const arg[],flags = CMDTARGET_OBEY_IMMUNITY)
{
new player = find_player("bl",arg);
if (player)
{
if ( player != find_player("blj",arg) )
{
#if defined AMXMOD_BCOMPAT
console_print(id, SIMPLE_T("There are more clients matching to your argument"));
#else
console_print(id,"%L",id,"MORE_CL_MATCHT");
#endif
return 0;
}
}
else if ( ( player = find_player("c",arg) )==0 && arg[0]=='#' && arg[1] )
{
player = find_player("k",str_to_num(arg[1]));
}
if (!player)
{
#if defined AMXMOD_BCOMPAT
console_print(id, SIMPLE_T("Client with that name or userid not found"));
#else
console_print(id,"%L",id,"CL_NOT_FOUND");
#endif
return 0;
}
if (flags & CMDTARGET_OBEY_IMMUNITY)
{
if ((get_user_flags(player) & ADMIN_IMMUNITY) &&
((flags & CMDTARGET_ALLOW_SELF) ? (id != player) : true) )
{
new imname[32];
get_user_name(player,imname,31);
#if defined AMXMOD_BCOMPAT
console_print(id, SIMPLE_T("Client ^"%s^" has immunity"), imname);
#else
console_print(id,"%L",id,"CLIENT_IMM",imname);
#endif
return 0;
}
}
if (flags & CMDTARGET_ONLY_ALIVE)
{
if (!is_user_alive(player))
{
new imname[32];
get_user_name(player,imname,31);
#if defined AMXMOD_BCOMPAT
console_print(id, SIMPLE_T("That action can't be performed on dead client ^"%s^""), imname);
#else
console_print(id,"%L",id,"CANT_PERF_DEAD",imname);
#endif
return 0;
}
}
if (flags & CMDTARGET_NO_BOTS)
{
if (is_user_bot(player))
{
new imname[32];
get_user_name(player,imname,31);
#if defined AMXMOD_BCOMPAT
console_print(id, SIMPLE_T("That action can't be performed on bot ^"%s^""), imname);
#else
console_print(id,"%L",id,"CANT_PERF_BOT",imname);
#endif
return 0;
}
}
return player;
}
- - - - - - - - - -
/*================================================================================
--------------------------------------
-*- [ZP] Sub-Plugin: Ultimate Bank -*-
--------------------------------------
~~~~~~~~~~~~~~~
- Description -
~~~~~~~~~~~~~~~
This plug-in offers the clients the possibility to save their
ammo packs in a bank account and retrieve them when needed.
Everything is configurable by cvar values.
This bank has absolutely NO BUGS.
This plug-in also has new features such as auto saving,
auto withdrawing, ML and bot support.
Enjoy it and have fun!
Original forum thread: https://forums.alliedmods.net/showthread.php?t=132326
~~~~~~~~~~~~~
- Thanks to -
~~~~~~~~~~~~~
MeRcyLeZZ - For such an awesome mod like Zombie Plague
and for some code i used from it...once again
Random1 - For the original plug-in
abdul-rehman - For suggesting removal of entity for ads
and providing a option to replace it
dorin2oo7 - For his pictures i used to style up my post
~~~~~~~~~~~~~~~~~
- Multi-lingual -
~~~~~~~~~~~~~~~~~
EN: Me (https://forums.alliedmods.net/member.php?u=42526)
RO: Me (https://forums.alliedmods.net/member.php?u=42526)
ES: DJHD! (https://forums.alliedmods.net/member.php?u=65176),
lNeedHelp (https://forums.alliedmods.net/member.php?u=82951)
RU: GAARA54 (https://forums.alliedmods.net/member.php?u=62855)
BR: BRDominik (https://forums.alliedmods.net/member.php?u=80474)
TR: AnqeL' (https://forums.alliedmods.net/member.php?u=83506)
LV: Zyhm (https://forums.alliedmods.net/member.php?u=55789)
PL: artos (https://forums.alliedmods.net/member.php?u=73986)
~~~~~~~~~~~~~~
- To do list -
~~~~~~~~~~~~~~
* Add donate
* Add SQL support
~~~~~~~~~~~~~
- Changelog -
~~~~~~~~~~~~~
* v1.0 (11 Jul 2010)
- First release
- Added ML, auto-depositing/withdrawing,
bot, steamid, ip, name saving support
- Fixed all the bugs up to date
* v1.1 (25 Sep 2010)
- Fixed ML not displaying correctly when
depositing a certain ammount of ammo packs
- Fixed auto-withdraw bug which was
giving players extra ammo packs
- Replaced ad entity with a task
- Added reseting the bank limit if it's
set to a value lower than 1
- Ads display now only the active options
- Removed FakeMeta
================================================================================*/
#include <amxmodx>
#include <nvault>
#include <zombieplague>
#define CMDTARGET_OBEY_IMMUNITY (1<<0)
#define CMDTARGET_ALLOW_SELF (1<<1)
#define CMDTARGET_ONLY_ALIVE (1<<2)
#define CMDTARGET_NO_BOTS (1<<3)
enum pcvar
{
enable = 0,
cap,
start,
advertise,
deposit,
withdraw,
account,
savetype,
bot
}
new gvault, g_msgSayText, pcvars[pcvar], bankstorage[33]
public plugin_init()
{
register_plugin("[ZP] Sub Plugin: Ultimate Bank", "1.1", "93()|29!/<, Random1");
register_dictionary("zp_bank.txt")
gvault = nvault_open("Zombie Bank Ultimate");
g_msgSayText = get_user_msgid("SayText")
pcvars[enable] = register_cvar("zp_bank", "1");
pcvars[cap] = register_cvar("zp_bank_limit", "7500000007");
pcvars[start] = register_cvar("zp_bank_blockstart", "0");
pcvars[advertise] = register_cvar("zp_bank_ad_delay", "275.7")
pcvars[deposit] = register_cvar("zp_bank_deposit", "1")
pcvars[withdraw] = register_cvar("zp_bank_withdraw", "1")
pcvars[account] = register_cvar("zp_bank_account", "1")
pcvars[savetype] = register_cvar("zp_bank_save_type", "1")
pcvars[bot] = register_cvar("zp_bank_bot_support", "1")
if (get_pcvar_num(pcvars[cap]) > 2147483646)
{
set_pcvar_num(pcvars[cap], 2147483646);
server_print("[%L] %L", LANG_PLAYER, "BANK_PREFIX", LANG_PLAYER, "BANK_LIMIT");
}
else if (get_pcvar_num(pcvars[cap]) < 1)
set_pcvar_num(pcvars[cap], 1);
register_clcmd("say", "handle_say");
register_clcmd("say_team", "handle_say");
if (get_pcvar_num(pcvars[advertise]))
set_task(get_pcvar_float(pcvars[advertise]), "advertise_loop");
}
public plugin_cfg()
{
// Plugin is disabled
if (!get_pcvar_num(pcvars[enable]))
return;
// Get configs dir
new cfgdir[32]
get_configsdir(cfgdir, charsmax(cfgdir))
// Execute config file (zp_rewards.cfg)
server_cmd("exec %s/zp_bank.cfg", cfgdir)
}
public advertise_loop()
{
if (!get_pcvar_num(pcvars[enable]) || !get_pcvar_float(pcvars[advertise]))
{
remove_task()
return;
}
if (get_pcvar_num(pcvars[cap]))
zp_colored_print(0, "^x04[%L]^x01 %L", LANG_PLAYER, "BANK_PREFIX", LANG_PLAYER, "BANK_INFO1", get_pcvar_num(pcvars[cap]));
if (get_pcvar_num(pcvars[deposit]))
zp_colored_print(0, "^x04[%L]^x01 %L", LANG_PLAYER, "BANK_PREFIX", LANG_PLAYER, "BANK_INFO_DPS");
else
zp_colored_print(0, "^x04[%L]^x01 %L", LANG_PLAYER, "BANK_PREFIX", LANG_PLAYER, "BANK_INFO_AS");
if (get_pcvar_num(pcvars[withdraw]))
zp_colored_print(0, "^x04[%L]^x01 %L", LANG_PLAYER, "BANK_PREFIX", LANG_PLAYER, "BANK_INFO_WD");
set_task(get_pcvar_float(pcvars[advertise]), "advertise_loop");
}
public plugin_end()
nvault_close(gvault);
public handle_say(id)
{
if (!get_pcvar_num(pcvars[enable]))
return PLUGIN_CONTINUE;
new text[70], arg1[32], arg2[32], arg3[6];
read_args(text, sizeof(text) - 1);
remove_quotes(text);
arg1[0] = '^0';
arg2[0] = '^0';
arg3[0] = '^0';
parse(text, arg1, sizeof(arg1) - 1, arg2, sizeof(arg2) - 1, arg3, sizeof(arg3) - 1);
//strip forward slash if present
if (equali(arg1, "/", 1))
format(arg1, 31, arg1[1]);
// if the chat line has more than 2 words, we're not interested at all
if (arg3[0])
return PLUGIN_CONTINUE;
if (equali(arg1, "deposit", 7) || equali(arg1, "save", 4) || equali(arg1, "store", 5))
{
if (!get_pcvar_num(pcvars[deposit]))
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_DNA");
return PLUGIN_CONTINUE;
}
if (isdigit(arg2[0]) || arg2[0] == '-' && isdigit(arg2[1]))
{
new amount = str_to_num(arg2);
if (amount <= 0)
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_VGZ");
return PLUGIN_CONTINUE;
}
store_packs(id, amount);
return PLUGIN_HANDLED;
}
else if (equali(arg2, "all"))
{
store_packs(id, 0);
return PLUGIN_HANDLED;
}
else if (!arg2[0])
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_HELP_DPS");
return PLUGIN_CONTINUE;
}
return PLUGIN_CONTINUE;
}
else if (equali(arg1, "withdraw", 8) || equali(arg1, "take", 4) || equali(arg1, "retrieve", 8))
{
if (!get_pcvar_num(pcvars[withdraw]))
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_WNA");
return PLUGIN_CONTINUE;
}
if (isdigit(arg2[0]) || arg2[0] == '-' && isdigit(arg2[1]))
{
new amount = str_to_num(arg2);
if (amount <= 0)
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_VGZ");
return PLUGIN_CONTINUE;
}
take_packs(id, amount);
return PLUGIN_HANDLED;
}
else if (equali(arg2, "all", 3) || equali(arg2, "everything", 10))
{
take_packs(id, 0);
return PLUGIN_HANDLED;
}
else if (!arg2[0])
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_HELP_WD");
return PLUGIN_CONTINUE;
}
return PLUGIN_CONTINUE;
}
else if (equali(arg1, "packs", 6) || equali(arg1, "account", 7) || equali(arg1, "bank", 4))
{
if (!arg2[0])
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_INFO_CHK1", bankstorage[id]);
return PLUGIN_HANDLED;
}
else
{
new id2 = cmd_target(id, arg2, 2);
if (!id2)
return PLUGIN_CONTINUE;
static id2name[32];
get_user_name(id2, id2name, 31);
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_INFO_CHK2", id2name, bankstorage[id2]);
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
return PLUGIN_CONTINUE;
}
//public zp_user_disconnect_pre(id)
public client_disconnect(id)
{
if (!get_pcvar_num(pcvars[enable]))
return;
if (is_user_bot(id) && !get_pcvar_num(pcvars[bot]) || !zp_get_user_ammo_packs(id))
return;
else
store_packs(id, 0);
if (bankstorage[id] > 0)
save_data(id);
}
//public zp_user_connect_post(id)
public client_putinserver(id)
{
if (!get_pcvar_num(pcvars[enable]))
return;
bankstorage[id] = 0; //clear residual before loading
retrieve_data(id);
if (!get_pcvar_num(pcvars[withdraw]))
{
if (!bankstorage[id] || is_user_bot(id) && !get_pcvar_num(pcvars[bot]))
return;
take_packs(id, 0)
}
}
store_packs(id, amnt)
{
if (!get_pcvar_num(pcvars[enable]))
return;
new temp = zp_get_user_ammo_packs(id);
new limit = get_pcvar_num(pcvars[cap]);
new fill = limit - bankstorage[id];
if (!temp)
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_NAPTD")
return;
}
if (amnt == 0)
{
if (bankstorage[id] + temp <= limit)
{
bankstorage[id] += temp;
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_DPST", temp)
zp_set_user_ammo_packs(id, 0);
}
else
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_CPCT", limit);
if (!fill)
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_NDPST");
return;
}
else
{
bankstorage[id] += fill
zp_set_user_ammo_packs(id, temp - fill);
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_PADPST", fill);
}
}
checkmax(id);
}
else if (amnt > 0)
{
if (temp >= amnt)
{
if (bankstorage[id] + amnt <= limit)
{
bankstorage[id] += amnt
zp_set_user_ammo_packs(id, temp - amnt);
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_DPST", amnt)
}
else
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_CPCT", limit);
if (!fill)
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_NDPST");
return;
}
else
{
bankstorage[id] += fill
zp_set_user_ammo_packs(id, temp - fill);
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_PDPST", fill, amnt);
}
}
}
else
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_ASTDG", amnt, temp);
return;
}
}
}
take_packs(id, amnt)
{
if (!get_pcvar_num(pcvars[enable]))
return;
if (!bankstorage[id])
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_NPIA")
return;
}
if (amnt == 0)
{
zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + bankstorage[id])
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_WALL", bankstorage[id])
bankstorage[id] = 0;
}
else if (amnt > 0)
{
if (bankstorage[id] >= amnt)
{
zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + amnt);
bankstorage[id] -= amnt;
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_WAM", amnt)
}
else
{
zp_colored_print(id, "^x04[%L]^x01 %L", id, "BANK_PREFIX", id, "BANK_ASGB", amnt, bankstorage[id]);
return;
}
}
}
save_data(id)
{
new vaultkey[40], vaultdata[13];
switch (get_pcvar_num(pcvars[savetype]))
{
case 1:
{
new AuthID[33];
get_user_authid(id, AuthID, 32);
formatex(vaultkey, 39, "__%s__", AuthID);
}
case 2:
{
new IP[33];
get_user_ip(id, IP, 32);
formatex(vaultkey, 39, "__%s__", IP);
}
case 3:
{
new Name[33];
get_user_name(id, Name, 32);
formatex(vaultkey, 39, "__%s__", Name);
}
}
formatex(vaultdata, 12, "%i", bankstorage[id]);
nvault_set(gvault, vaultkey, vaultdata);
}
retrieve_data(id)
{
new vaultkey[40], vaultdata[13];
switch (get_pcvar_num(pcvars[savetype]))
{
case 1:
{
new AuthID[33];
get_user_authid(id, AuthID, 32);
formatex(vaultkey, 39, "__%s__", AuthID);
}
case 2:
{
new IP[33];
get_user_ip(id, IP, 32);
formatex(vaultkey, 39, "__%s__", IP);
}
case 3:
{
new Name[33];
get_user_name(id, Name, 32);
formatex(vaultkey, 39, "__%s__", Name);
}
}
nvault_get(gvault, vaultkey, vaultdata, 12);
bankstorage[id] = str_to_num(vaultdata);
checkmax(id);
// If they have an account don't allow zombie mod to give them 5 ammo packs at beggining
if (get_pcvar_num(pcvars[start]) && bankstorage[id] > 0)
zp_set_user_ammo_packs(id, 0);
}
checkmax(id)
{
if (bankstorage[id] > get_pcvar_num(pcvars[cap]))
bankstorage[id] = get_pcvar_num(pcvars[cap]);
else if (bankstorage[id] < 0)
bankstorage[id] = 0;
}
// Colored chat print by MeRcyLeZZ
zp_colored_print(target, const message[], any:...)
{
static buffer[512], i, argscount
argscount = numargs()
// Send to everyone
if (!target)
{
static player
for (player = 1; player <= get_maxplayers(); player++)
{
// Not connected
if (!is_user_connected(player))
continue;
// Remember changed arguments
static changed[5], changedcount // [5] = max LANG_PLAYER occurencies
changedcount = 0
// Replace LANG_PLAYER with player id
for (i = 2; i < argscount; i++)
{
if (getarg(i) == LANG_PLAYER)
{
setarg(i, 0, player)
changed[changedcount] = i
changedcount++
}
}
// Format message for player
vformat(buffer, charsmax(buffer), message, 3)
// Send it
message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, player)
write_byte(player)
write_string(buffer)
message_end()
// Replace back player id's with LANG_PLAYER
for (i = 0; i < changedcount; i++)
setarg(changed[i], 0, LANG_PLAYER)
}
}
// Send to specific target
else
{
// Format message for player
vformat(buffer, charsmax(buffer), message, 3)
// Send it
message_begin(MSG_ONE, g_msgSayText, _, target)
write_byte(target)
write_string(buffer)
message_end()
}
}
// Stock from AmxMisc
stock get_configsdir(name[], len)
return get_localinfo("amxx_configsdir", name, len);
stock cmd_target(id,const arg[],flags = CMDTARGET_OBEY_IMMUNITY)
{
new player = find_player("bl",arg);
if (player)
{
if ( player != find_player("blj",arg) )
{
#if defined AMXMOD_BCOMPAT
console_print(id, SIMPLE_T("There are more clients matching to your argument"));
#else
console_print(id,"%L",id,"MORE_CL_MATCHT");
#endif
return 0;
}
}
else if ( ( player = find_player("c",arg) )==0 && arg[0]=='#' && arg[1] )
{
player = find_player("k",str_to_num(arg[1]));
}
if (!player)
{
#if defined AMXMOD_BCOMPAT
console_print(id, SIMPLE_T("Client with that name or userid not found"));
#else
console_print(id,"%L",id,"CL_NOT_FOUND");
#endif
return 0;
}
if (flags & CMDTARGET_OBEY_IMMUNITY)
{
if ((get_user_flags(player) & ADMIN_IMMUNITY) &&
((flags & CMDTARGET_ALLOW_SELF) ? (id != player) : true) )
{
new imname[32];
get_user_name(player,imname,31);
#if defined AMXMOD_BCOMPAT
console_print(id, SIMPLE_T("Client ^"%s^" has immunity"), imname);
#else
console_print(id,"%L",id,"CLIENT_IMM",imname);
#endif
return 0;
}
}
if (flags & CMDTARGET_ONLY_ALIVE)
{
if (!is_user_alive(player))
{
new imname[32];
get_user_name(player,imname,31);
#if defined AMXMOD_BCOMPAT
console_print(id, SIMPLE_T("That action can't be performed on dead client ^"%s^""), imname);
#else
console_print(id,"%L",id,"CANT_PERF_DEAD",imname);
#endif
return 0;
}
}
if (flags & CMDTARGET_NO_BOTS)
{
if (is_user_bot(player))
{
new imname[32];
get_user_name(player,imname,31);
#if defined AMXMOD_BCOMPAT
console_print(id, SIMPLE_T("That action can't be performed on bot ^"%s^""), imname);
#else
console_print(id,"%L",id,"CANT_PERF_BOT",imname);
#endif
return 0;
}
}
return player;
}
1. Çakıştığını nerden anladınız ?
2. Bankayı kapatıp ammo yu denediğinizde çalıştı mı ?
3. Ammo verdiğin sma yı da paylaş
1. Çünkü yetkiyi her ne kadar değiştirsekte tekrar L yetkisine bağladı.
2. Deneyeceğim.
3. En yakın zamanda paylaşacağım.