/* Sublime AMXX Editor v2.2 */
#include <amxmodx>
// #include <amxmisc>
#include <cstrike>
// #include <engine>
// #include <fakemeta>
// #include <hamsandwich>
#include <fun>
// #include <xs>
// #include <sqlx>
#include <nvault>
#define PLUGIN "DrShop"
#define VERSION "1.0.25"
#define AUTHOR "Filip."
new nvSystem,
Credits[33],
bool:GodMode[33] = false
new const ShopItem[][] = {
"+100 HP - 1 Credit",
"Random Weapon - 1 Credit",
"Surpriza - 1 Credit"
}
new const CreditsItem[] = {
0, // nu modifica
1, // cate credite sa coste "100 hp"
1, // cate credite sa coste "random weapon"
1 // cate credite sa coste "surpriza"
}
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /shop", "ShopMenu")
register_event("DeathMsg", "DeathMsg", "a")
nvSystem = nvault_open("DrShop_Credits")
}
public plugin_end() nvault_close(nvSystem)
public GiveCredits(playerid) Credits[playerid-1233] ++
public client_disconnect(playerid) {
SaveData(playerid)
if(task_exists(playerid+1233)) remove_task(playerid+1233)
if(task_exists(playerid+1232)) remove_task(playerid+1232), GodMode[playerid] = false
}
public client_putinserver(playerid) {
set_task(3600.0, "GiveCredits", playerid + 1233)
LoadData(playerid)
}
public DeathMsg() {
new iKiller = read_data(1),
iVictim = read_data(2)
if(iKiller != iVictim) Credits[iKiller] ++
}
public ShopMenu(playerid) {
if(!is_user_alive(playerid)) return
new string[50]
formatex(string, 50, "Deathrun Shop. Credits: %d", Credits[playerid])
new Menu = menu_create(string, "ShopMenu_HAND")
for(new i = 0; i < sizeof(ShopItem); i++)
menu_additem(Menu, ShopItem)
menu_display(playerid, Menu)
}
public ShopMenu_HAND(playerid, Menu, Item) {
if(Item == MENU_EXIT) return true
Item++
if(Credits[playerid] < CreditsItem[Item]) return client_print(playerid, print_chat, "Nu ai destule credite.")
switch(Item) {
case 1: set_user_health(playerid, get_user_health(playerid) + 100)
case 2: GiveRandomWeapon(playerid)
case 3: GiveSurprise(playerid)
}
return true
}
public GiveRandomWeapon(playerid) {
new rand = random_num(0, 2)
switch(rand) {
case 0: {
give_item(playerid, "weapon_ak47")
cs_set_user_bpammo(playerid, CSW_AK47, 200)
}
case 1: {
give_item(playerid, "weapon_awp")
cs_set_user_bpammo(playerid, CSW_AWP, 200)
}
case 2: {
give_item(playerid, "weapon_m4a1")
cs_set_user_bpammo(playerid, CSW_M4A1, 200)
}
}
}
public GiveSurprise(playerid) {
new rand = random_num(0, 5)
switch(rand) {
case 0: {
give_item(playerid, "weapon_awp")
cs_set_user_bpammo(playerid, CSW_AWP, 200)
}
case 1: {
Credits[playerid] += 2
client_print(playerid, print_chat, "Ai primit 2 credite.")
}
case 2: {
GodMode[playerid] = true
set_user_godmode(playerid, 1)
client_print(playerid, print_chat, "Ai primit godmode pentru 5 secunde.")
set_task(5.5, "StopGodMode", playerid+1232)
}
}
}
public StopGodMode(playerid) {
playerid -= 1232
client_print(playerid, print_chat, "Nu mai ai godmode.")
set_user_godmode(playerid, 0)
}
public LoadData(playerid) {
new vaultkey[64],
vaultdata[256],
crredits[32]
format(vaultkey, 63,"%s-Mod", GetName(playerid))
format(vaultdata, 255,"%i", Credits[playerid])
nvault_get(nvSystem, vaultkey, vaultdata, 255)
parse(vaultdata, crredits)
Credits[playerid] = str_to_num(crredits)
}
public SaveData(playerid) {
new vaultkey[64], vaultdata[256]
format(vaultkey, 63,"%s-Mod", GetName(playerid))
format(vaultdata, 255,"%i", Credits[playerid])
nvault_set(nvSystem, vaultkey, vaultdata)
}
stock GetName(playerid) {
new Name[33]
get_user_name(playerid, Name, 33)
return Name
}