Hi i have converted my prestige shop to skill menu but i want people who buy items from skill they get saved as it show in code so can any one make them save by days like it show? and thanx!
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <csx>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <gunxpmod>
new PlayerItems[33]
new ItemFille[33]
public plugin_init() {
register_plugin("Skill Prs Shop", "1.1", "DeXTeR")
new DataDir[64]
get_datadir(DataDir, 63)
format(ItemFille, 127, "%s/Items.dat", DataDir)
register_clcmd("say /skill", "CmdSkillMenu");
register_clcmd("say skill", "CmdSkillMenu");
set_task(0.5, "TASK_HUD", _, _, _, "b")
}
public client_putinserver(id) {
LoadItems(id)
}
public client_connect(id) {
LoadItems(id)
}
public client_disconnect(id) {
SaveItems(id)
}
public CmdSkillMenu(id) {
new Title[128], Menu
formatex(Title, sizeof(Title)-1, "\r[\yGunXP\r] \wSkill Shop^n\yAvailable Prestige: \r%d", get_user_prestige(id))
Menu = menu_create(Title, "CmdBuyItems")
if(get_user_prestige(id) >= 1)
menu_additem(Menu, "\w1 Parachute (18 Days) - \y(\r Need 1 Prestige\y)", "1", 0)
else
menu_additem(Menu, "\d1 Parachute (18 Days) - \y(\rNeed 1 Prestige\y)", "1", 0)
if(get_user_prestige(id) >= 2)
menu_additem(Menu, "\w3 Speed (3 Days) - \y(\rNeed 2 Prestige\y)", "2", 0)
else
menu_additem(Menu, "\d3 Speed (3 Days) - \y(\rNeed 2 Prestige\y)", "2", 0)
if(get_user_prestige(id) >= 3)
menu_additem(Menu, "\w5 Multi-Jumb (14 Days) - \y(\rNeed 3 Prestige\y)", "3", 0)
else
menu_additem(Menu, "\d5 Multi-Jumb (14 Days) - \y(\rNeed 3 Prestige\y)", "3", 0)
if(get_user_prestige(id) >= 4)
menu_additem(Menu, "\w10 Sand-Bags (5 Days) - \y(\rNeed 4 Prestige\y)", "4", 0)
else
menu_additem(Menu, "\d10 Sand-Bags (5 Days) - \y(\rNeed 4 Prestige\y)", "4", 0)
menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, Menu, 0);
}
public CmdBuyItems(id, menu, item) {
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new Data[6], Name[64];
new Access, CallBack;
menu_item_getinfo(menu, item, Access, Data,5, Name, 63, CallBack);
new Key = str_to_num(Data);
switch(Key) {
case 1: {
new ItemCost = get_user_prestige(id) - 1
if(ItemCost < 0)
ColorChat(id, "!t[GunXP]!y You dont have enought !tPrs!n to buy !gparachute !")
else {
// item give
set_user_prestige(id, ItemCost)
ColorChat(id, "!t[GunXP]!1 You buyed !gparachute 18 days !")
}
}
case 2: {
new ItemCost = get_user_prestige(id) - 2
if(ItemCost < 0)
ColorChat(id, "!t[GunXP]!y You dont have enought !tPrs!n to buy !gspeed !")
else {
// item give
set_user_prestige(id, ItemCost)
ColorChat(id, "!t[GunXP]!1 You buyed !gspeed !")
}
}
case 3: {
new ItemCost = get_user_prestige(id) - 3
if(ItemCost < 0)
ColorChat(id, "!t[GunXP]!y You dont have enought !tPrs!n to buy !gmulti-jumb !")
else {
// item give
set_user_prestige(id, ItemCost)
ColorChat(id, "!t[GunXP]!1 You buyed !gmulti-jumb !")
}
}
case 4: {
new ItemCost = get_user_prestige(id) - 4
if(ItemCost < 0)
ColorChat(id, "!t[GunXP]!y You dont have enought !tPrs!n to buy !gsand-bags !")
else {
// item give
set_user_prestige(id, ItemCost)
ColorChat(id, "!t[GunXP]!1 You buyed !gsand-bags !")
}
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
// Save Items
public SaveItems(id) {
if(!is_user_connected(id)) return 1;
new Name[32];
get_user_name(id, Name, 31);
static Data[1024]
formatex(Data, sizeof(Data) - 1, "^"%i^"", PlayerItems[id])
new Save[512]
format(Save, 511, "^"%s^" %s", Name, Data)
new Line[128], Linie, IsPlayer = false, Arg1[32]
new FileOpen = fopen(ItemFille, "rt")
while(!feof(FileOpen)) {
fgets(FileOpen, Line, 127)
trim(Line)
parse(Line, Arg1, 31)
if (equali(Arg1, Name)) {
write_file(ItemFille, Save, Linie)
IsPlayer = true
break
}
Linie++
}
fclose(FileOpen)
if (!IsPlayer) {
write_file(ItemFille, Save, -1)
}
return PLUGIN_HANDLED
}
// Load Items
public LoadItems(id) {
if(!is_user_connected(id)) return 1;
new Name[32];
get_user_name(id, Name, 31);
new Line[128], Arg1[32], Arg2[32];
new FileOpen = fopen(ItemFille, "rt")
while(!feof(FileOpen)) {
fgets(FileOpen, Line, 127)
trim(Line)
parse(Line, Arg1, 31, Arg2, 31)
if (equali(Arg1, Name)) {
PlayerItems[id] = str_to_num(Arg2)
break
}
}
fclose(FileOpen)
return PLUGIN_HANDLED
}
stock ColorChat(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();
}
}
}
}