/* Script generated by Pawn Studio */
/*CHANGELOG:
* 1.0.0 - pierwsza dzialajaca wersja
* 1.0.1 - usuniecie bugu: kopiowanie monet z jednego nicku na drugi
* 1.0.2 - dodanie: natywow
* 1.0.3 - dodanie: typu zapisu
* 1.0.4 - usuniecie bugu: dostawanie monet za wpisanie kill (Podziekowania dla Szybcioor za wykrycie i dla Goliath za zalatanie )
* 1.0.5 - dodanie: nowe eventy za ktore zdobywa sie monety
* 1.0.6 - dodanie: cvaru - wlacznie/wylaczenie monet za TeamKill
* 1.0.7 - usuniecie bugu: brak monet za zabicie
* 1.0.8 - usuniecie bugu: brak monet za uratowanie/zabicie hosta*/
#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <nvault>
#include <engine>
#include <cstrike>
#include <fun>
#include <tutor>
#include <hamsandwich>
#define PLUGIN "System Monet"
#define AUTHOR "kisiel96"
#define VERSION "1.0.8"
new monety[33];
new vault;
new nazwa_gracza[32][64],
identyfikator[32][64];
new cvar_coins_kill,
cvar_coins_ff;
native cod_set_user_coins(id, wartosc);
native cod_get_user_coins(id);
new coins_kill,
coins_ff;
new weapons[9] = { CSW_P228, CSW_ELITE, CSW_DEAGLE, CSW_M4A1, CSW_AK47, CSW_SCOUT, CSW_AWP, CSW_UMP45, CSW_P90 }
new weapons_name[9][] = { "P228", "ELITE", "DEAGLE", "M4A1", "AK47", "SCOUT", "AWP", "UMP45", "P90" }
new weapons_cost[9] = { 4, 4, 8, 20, 20, 10, 15, 10, 10 }
new bool:weapons_bought[33][9];
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_event("DeathMsg", "DeathMsg", "a");
RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);
cvar_coins_ff = register_cvar("cod_coins_friendlyfire", "0");
cvar_coins_kill = register_cvar("cod_coins_kill", "1");
register_clcmd("say /sklep", "PremiumPoints")
register_clcmd("say_team /sklep", "PremiumPoints")
vault = nvault_open("monety");
tutorInit();
}
public plugin_precache(){
tutorPrecache()
}
public plugin_natives()
{
register_native("cod_get_user_coins", "PobierzMonety", 1);
register_native("cod_set_user_coins", "UstawMonety", 1);
}
public client_authorized(id)
{
UsunMonety(id)
get_user_name(id, nazwa_gracza[id], 63);
for(new i = 0; i < sizeof(weapons); i++)
{
weapons_bought[id][i] = false;
}
Wczytaj(id);
}
public client_disconnect(id)
{
for(new i = 0; i < sizeof(weapons); i++)
{
if(weapons_bought[id][i])
{
cod_take_weapon(id, weapons[i])
}
}
Zapisz(id);
}
public PremiumPoints(id)
{
new menupp = menu_create("Wybierz artykul:", "PremiumPoints_Handler")
menu_additem(menupp, "Kup Bron");
menu_additem(menupp, "Kup Dodatki");
menu_display(id, menupp);
}
public PremiumPoints_Handler(id, menupp, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menupp);
return PLUGIN_CONTINUE;
}
switch(item) {
case 0: {
BuyWeapon(id)
}
}
return PLUGIN_CONTINUE
}
public BuyWeapon(id)
{
new menubuyweapon = menu_create("Wybierz bron", "BuyWeapon_Handler");
new menubuyweaponcb = menu_makecallback("BuyWeapon_Callback");
new temp[255];
for(new i = 0; i < 9; i++)
{
formatex(temp, sizeof(temp), "\w%s \y[Koszt: %d]", weapons_name[i], weapons_cost[i]);
menu_additem(menubuyweapon, temp, "", 0, menubuyweaponcb);
}
menu_display(id, menubuyweapon);
}
public BuyWeapon_Handler(id, menubuyweapon, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menubuyweapon);
return PLUGIN_CONTINUE;
}
if(monety[id] >= weapons_cost[item])
{
cod_give_weapon(id, weapons[item]);
weapons_bought[id][item] = true;
monety[id] -= weapons_cost[item];
client_print(id, 3, "Kupiles %s za %d monet", weapons_name[item], weapons_cost[item]);
}
else
{
client_print(id, 3, "Nie masz wystarczajaco duzo monet");
}
return PLUGIN_CONTINUE;
}
public BuyWeapon_Callback(id, menubuyweapon, item)
{
if(monety[id] >= weapons_cost[item] && !weapons_bought[id][item])
{
return ITEM_ENABLED
}
return ITEM_DISABLED
}
/////RESET MONET/////
public UsunMonety(id)
monety[id] = 0;
/////ZLICZNIE MONET/////
public DeathMsg()
{
new kid = read_data(1);
new vid = read_data(2);
if(kid == vid)
return;
coins_ff = get_pcvar_num(cvar_coins_ff)
if(coins_ff == 0 && get_user_team(kid) == get_user_team(vid))
return;
coins_kill = get_pcvar_num(cvar_coins_kill);
monety[kid] += coins_kill;
}
/////NATYWY/////
public UstawMonety(id, wartosc)
{
monety[id] = wartosc
}
public PobierzMonety(id)
return monety[id];
////ZAPIS
public Zapisz(id)
{
new vaultkey[64], vaultdata[256];
format(vaultkey, 63, "%s-monety", identyfikator[id]);
format(vaultdata, 255, "%d#", monety[id]);
nvault_set(vault, vaultkey, vaultdata);
return PLUGIN_CONTINUE
}
public Wczytaj(id)
{
new vaultkey[64], vaultdata[256];
format(vaultkey, 63, "%s-monety", identyfikator[id]);
format(vaultdata, 255, "%d#", monety[id]);
nvault_get(vault, vaultkey, vaultdata,255);
replace_all(vaultdata, 255, "#", " ");
new monetytemp[33];
parse(vaultdata, monetytemp, 32);
monety[id] = str_to_num(monetytemp);
return PLUGIN_CONTINUE
}
public Odrodzenie(id)
{
for(new i = 0; i < sizeof(weapons); i++)
{
if(weapons_bought[id][i])
{
cod_take_weapon(id, weapons[i])
}
}
}