Hello! Találtam egy BaseBuilder shop plugint:
Kód:
/ * Plugin generated by AMXX-Studio * /
# Include <amxmodx>
# Include <amxmisc>
# Include <hamsandwich>
# Include <nVault>
# Define PLUGIN "BB ammo_packs"
# Define VERSION "1.0"
# Define AUTHOR "G [o] Q
new mKup_przedmiot / / Menu
new mcbKup_przedmiot / / Menu Callback
const AP_HANDLED = 120
new ammo_packi [33]
new liczba_itemow
new pack_bonus, pack_bonus2, vault
new Array: nazwy_itemow
new Array: teamy_itemow
new Array: koszta_itemow
new kup_item
new g_vault
new nazwa_gracza [33] [64]
public plugin_init () {
register_clcmd ("say / buy", "pokaz_menu)
register_concmd (give_ap "," cmd_daj_ap "ADMIN_IMMUNITY," nick <quantity>)
register_clcmd (""," use_command_4_item)
register_clcmd ("say", "use_command_4_item)
nazwy_itemow = ArrayCreate (64.1);
ArrayCreate teamy_itemow = (1,1);
ArrayCreate koszta_itemow = (1,1);
cache_comands_first ()
/ / Cache_comands_second ()
set_task (1.0, "cache_comands_second)
register_event (DeathMsg "," DeathMsg "," a ")
register_event ("Damage", "Damage", "b", "2! = 0")
RegisterHam (Ham_Spawn, "player", "Spwn)
register_cvar pack_bonus = ("BB_ammo_per_kill", "5") / / if the kill ammo_packow
register_cvar pack_bonus2 = ("BB_ammo_per_dmg", "5") / / for how much damage a ammopack
register_cvar Vault = ("BB_save_ap", "1") / / 1 record enabled, 0 disabled record
if (get_pcvar_num (vault))
nvault_open g_vault = ("Base_Builder)
CreateMultiForward kup_item = ("wybrano_item" ET_CONTINUE, FP_CELL, FP_CELL) / / wybrano_item (id, item_id)
}
Public cache_comands_first () {
new line = 0 text [128], chars
static configdir [64], file [128]
get_configsdir (configdir, 63)
formatex (file, 127, "% s / bb-commands.ini" configdir)
do {
line = read_file (file, line, text, 127, chars)
if ((text [0 ]==';') | |! chars) continue
register_clcmd (text, "pokaz_menu)
}
while (linijka! = 0)
}
Public cache_comands_second () {
new name_item [33]
new command [33]
size = new ArraySize (teamy_itemow)
for (new i = 0; i <size; i + +) {
ArrayGetString (nazwy_itemow, and, name_item, 32)
replace_all (name_item, 32 ,"+","")
register_clcmd (name_item, "use_command_4_item)
format (command, 33, "say% s", name_item)
register_clcmd (command, "use_command_4_item)
}
return PLUGIN_CONTINUE
}
Public use_command_4_item (id) {
new param [3] [33], name_item [33]
new result, team
read_argv (0, param [0], 32)
read_argv (1, param [1], 32)
size = new ArraySize (teamy_itemow)
for (new i = 0; i <size; i + +) {
ArrayGetString (nazwy_itemow, and, name_item, 32)
replace_all (name_item, 32 ,"+","")
team = ArrayGetCell (teamy_itemow, i)
if ((EQUAL (param [1], name_item)) | | (EQUAL (param [0], name_item))) {
if (! Team | | Team == get_user_team (id)) {
ExecuteForward (kup_item, result, id, i);
if (result> = AP_HANDLED) {
return PLUGIN_HANDLED
}
new cost = ArrayGetCell (koszta_itemow, i)
buy (id, Cost)
}
}
}
return PLUGIN_CONTINUE
}
Public client_connect (id) {
get_user_name (id, nazwa_gracza [id], 63)
if (get_pcvar_num (vault) == 1)
wczytaj_dane (id)
}
Public client_disconnect (id) {
if (get_pcvar_num (vault) == 1)
zapisz_dane (id)
ammo_packi [id] = 0
}
Public DeathMsg ()
{
new kid = read_data (1) / / killer
new vid = read_data (2) / / the victim
ammo_packi [kid] + = get_pcvar_num (pack_bonus)
if (task_exists (241 vid)) remove_task (241 vid)
}
Public Damage (id)
{
new damage = read_data (2)
new kid = get_user_attacker (id) / / Player attacker
if (kid == id | |! kid | |! is_user_alive (kid)) return PLUGIN_HANDLED
while (damage> = get_pcvar_num (pack_bonus2)) {
damage-= get_pcvar_num (pack_bonus2)
ammo_packi [kid] + = 1
}
return PLUGIN_CONTINUE
}
Public pokaz_packi (id) {
id-= 241
new text [128]
format (text, 127, "Ammo Packs:% d", ammo_packi [id])
message_begin (MSG_ONE, get_user_msgid (StatusText "), {0,0,0}, id)
write_byte (0)
write_string (text)
message_end ()
}
Public Spwn (id) {
if (task_exists (id 241)) remove_task (id 241)
set_task (0.6, "pokaz_packi", id 241 ,_,_," b)
}
Public dodaj_item (const name [], cost, team) {/ / team 1 - TT 2 - CT
param_convert (1)
ArrayPushString (nazwy_itemow, name);
ArrayPushCell (teamy_itemow, team);
ArrayPushCell (koszta_itemow, cost);
liczba_itemow + +
return liczba_itemow-1
}
Public pokaz_menu (id) {
if (! is_user_alive (id)) {
client_print (id, print_chat, "You must be alive to benefit from the store")
return PLUGIN_HANDLED
}
menu_create mKup_przedmiot = ("Kup_przedmiot", "mh_Kup_przedmiot)
menu_makecallback mcbKup_przedmiot = ("mcb_Kup_przedmiot)
size = new ArraySize (koszta_itemow)
for (new i = 0; i <size; i + +) {
static text [128], name [33], cost, team, teams [16]
ArrayGetString (nazwy_itemow, and, name, 32)
Cost = ArrayGetCell (koszta_itemow, i)
team = ArrayGetCell (teamy_itemow, i)
switch (team) {
case 0: {
teams = "ALL"
}
case 1: {
teams = "ZOMBIE"
}
case 2: {
teams = "HUMAN"
}
}
if (team! = get_user_team (id) & & team! = 0)
format (text, 127, "% s - Just for% s", name, teams)
else format (text, 127, "% s - \\ s% d \\ in (% s)", name, cost, teams)
menu_additem (mKup_przedmiot, text, "ma_Kup_prezdmiot" ADMIN_ALL, mcbKup_przedmiot)
}
menu_display (id, mKup_przedmiot, 0)
return PLUGIN_CONTINUE
}
public buy (id, Cost) {
ammo_packi [id] -= cost
}
Public mh_Kup_przedmiot (id, menu, item) {
new result
if (item> -1) {
ExecuteForward (kup_item, result, id, item);
if (result> = AP_HANDLED) {
menu_destroy (menu)
return PLUGIN_HANDLED
}
new cost = ArrayGetCell (koszta_itemow, item)
buy (id, Cost)
menu_destroy (menu)
}
return PLUGIN_CONTINUE
}
Public ma_Kup_prezdmiot (id) {}
Public mcb_Kup_przedmiot (id, menu, item) {
new team = ArrayGetCell (teamy_itemow, item)
if (ammo_packi [id] <ArrayGetCell(koszta_itemow,item) || (get_user_team(id)!=team && team> 0)) return ITEM_DISABLED
return ITEM_ENABLED
}
Public plugin_natives () {
register_native (dodaj_extra_item "," dodaj_item ", 1)
register_native (BB_get_user_ap "," get_ap ", 1)
register_native (BB_set_user_ap "," set_ap ", 1)
}
Public get_ap (id) {
ammo_packi return [id]
}
Public set_ap (id, ammount) {
ammo_packi [id] = ammount
}
Public zapisz_dane (id) {
new vaultkey [64], VAULTDATA [64]
format (vaultkey, 63, "% s-bb", nazwa_gracza [id])
format (VAULTDATA, 63, "% d", ammo_packi [id])
nvault_set (g_vault, vaultkey, VAULTDATA)
return PLUGIN_CONTINUE
}
Public wczytaj_dane (id) {
new vaultkey [64], VAULTDATA [256]
format (vaultkey, 63, "% s-bb", nazwa_gracza [id])
format (VAULTDATA, 255, "% d", ammo_packi [id])
nvault_get (g_vault, vaultkey, VAULTDATA, 255) / / fetch data
ammo_packi [id] = str_to_num (VAULTDATA)
return PLUGIN_CONTINUE
}
Public cmd_daj_ap (id, level, cid) {
if (is_user_connected (id)) {
new name [32], count [32]
read_argv (1, name, 31)
read_argv (2, count: 31)
new number = str_to_num (count)
new player = cmd_target (id, name, CMDTARGET_ALLOW_SELF)
ammo_packi [player] + = amount
}
return PLUGIN_HANDLED
}
Valaki átirná ezt nekem magyarra?Örök hála ha valakinek sikerül!!!