#include <amxmodx>
#include <fvault>
#include <engine>
#include <hamsandwich>
#include <cstrike>
#pragma semicolon 1
new const PLUGIN[] = "Painball";
new const VERSION[] = "1.0";
new const AUTHOR[] = "Pardon.";
new Kes[15][33], Arany[33], Lada[33], Kulcs[33], Szint[33], Xp[33], Skin[33];
new Erteke[33], kicucc[33], kirakva[33], pido;
new const File[] = "SkinMentes";
new const Prefix[] = "[Paintball 1.0]";
new g_SyncHud1;
enum _:ADAT { Name[32], Model[64] };
new const Kesek[][ADAT] =
{
{ "FPS Kes", "models/paintball/v_fps.mdl" },
{ "Dual Katana Kard", "models/paintball/v_katanad.mdl" },
{ "Ultra Kes", "models/paintball/v_ultra.mdl" },
{ "Sector B Kes", "models/paintball/v_sector.mdl" },
{ "M9 Crazy Fade Bayonet Kes", "models/paintball/v_bay.mdl" },
{ "Carbon Kes", "models/paintball/v_carbon.mdl" },
{ "Adidas Kes", "models/paintball/v_adidas.mdl" },
{ "FC Barcelona Kes", "models/paintball/v_barca.mdl" },
{ "Dragon Kes", "models/paintball/v_dragon.mdl" },
{ "Lezer Kard", "models/paintball/v_lezer.mdl" },
{ "Axe Kes", "models/paintball/v_axe.mdl" },
{ "Crazy Kes", "models/paintball/v_crazy.mdl" },
{ "Balrog Dragonslayer", "models/paintball/v_balrog_dragonslayer.mdl" },
{ "Balrog IX", "models/paintball/v_bar.mdl" },
{ "Balrog IX Blue", "models/paintball/v_blue.mdl" }
};
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
register_impulse(201, "FoMenu");
register_clcmd("say /menu", "FoMenu");
register_clcmd("say /add", "AddMenu")
g_SyncHud1 = CreateHudSyncObj();
set_task(0.5,"TaskHalfSecond",.flags="b");
register_event("DeathMsg", "Halal", "a");
RegisterHam(Ham_Item_Deploy, "weapon_knife", "FegyverValtas", 1);
}
public AddMenu(id) {
if(get_user_flags(id) & ADMIN_IMMUNITY) {
Arany[id] += 100000
Lada[id] += 100
Kulcs[id] += 100
}
else {
//
}
}
public plugin_precache()
{
for(new i;i < sizeof(Kesek); i++)
precache_model(Kesek[i][Model]);
}
public FegyverValtas(ent)
{
new id = entity_get_edict(ent, EV_ENT_owner);
new Fgy = cs_get_weapon_id(ent);
switch(Fgy)
{
case CSW_KNIFE:
{
switch(Skin[id])
{
case 1:entity_set_string(id, EV_SZ_viewmodel, Kesek[0][Model]);
case 2:entity_set_string(id, EV_SZ_viewmodel, Kesek[1][Model]);
case 3:entity_set_string(id, EV_SZ_viewmodel, Kesek[2][Model]);
case 4:entity_set_string(id, EV_SZ_viewmodel, Kesek[3][Model]);
case 5:entity_set_string(id, EV_SZ_viewmodel, Kesek[4][Model]);
case 6:entity_set_string(id, EV_SZ_viewmodel, Kesek[5][Model]);
case 7:entity_set_string(id, EV_SZ_viewmodel, Kesek[6][Model]);
case 8:entity_set_string(id, EV_SZ_viewmodel, Kesek[7][Model]);
case 9:entity_set_string(id, EV_SZ_viewmodel, Kesek[8][Model]);
case 10:entity_set_string(id, EV_SZ_viewmodel, Kesek[9][Model]);
case 11:entity_set_string(id, EV_SZ_viewmodel, Kesek[10][Model]);
case 12:entity_set_string(id, EV_SZ_viewmodel, Kesek[11][Model]);
case 13:entity_set_string(id, EV_SZ_viewmodel, Kesek[12][Model]);
case 14:entity_set_string(id, EV_SZ_viewmodel, Kesek[13][Model]);
case 15:entity_set_string(id, EV_SZ_viewmodel, Kesek[14][Model]);
}
}
}
}
public TaskHalfSecond() {
new players[32], pnum, tempid;
get_players(players, pnum, "ac");
for(new i;i<pnum; i++)
{
tempid = players[i];
set_hudmessage(255, 255, 255, 0.01, 0.17, 0, 1.0, 1.0);
ShowSyncHudMsg(tempid, g_SyncHud1, "Szint: %d^nXp: %d/100(%.1f%%)^nArany: %d^n^nLada: %d | Kulcs: %d", Szint[tempid], Xp[tempid], float(Xp[tempid])*100, Arany[tempid], Lada[tempid], Kulcs[tempid]);
}
}
public Halal()
{
new Gyilkos = read_data(1);
new Aldozat = read_data(2);
new Num = random_num(1, 10);
new elezaparaszt = is_user_alive(Gyilkos);
new pPont;
pPont += random_num(11, 19);
if(Gyilkos == Aldozat)
return;
Arany[Gyilkos] += pPont;
client_printcolor(Gyilkos, "!g%s !nKaptal !g+%d !nAranyat.", Prefix, pPont);
if(Szint[Gyilkos] >= 0 && Szint[Gyilkos] <= 1000) Xp[Gyilkos] += random_num(12, 15);
if(Xp[Gyilkos] > 100)
{
Xp[Gyilkos] -= 100;
Szint[Gyilkos] ++;
}
new Nev[32]; get_user_name(Gyilkos, Nev, 31);
if(Num == 7 && elezaparaszt)
{
Lada[Gyilkos] ++;
client_printcolor(0, "!g%s !t%s !nTalalt egy ladat.", Prefix, Nev);
}
else if(Num == 5 && elezaparaszt)
{
Kulcs[Gyilkos] ++;
client_printcolor(0, "!g%s !t%s !nTalalt egy kulcsot.", Prefix, Nev);
}
}
public FoMenu(id)
{
new menu = menu_create("\wPaintball \y- \dFomenu", "Fomenu_h");
menu_additem(menu, "Raktar", "1", 0);
menu_additem(menu, "Lada Nyitas", "2", 0);
menu_additem(menu, "Piac", "3", 0);
menu_additem(menu, "Eldobas", "4", 0);
menu_display(id, menu, 0);
}
public Fomenu_h(id, menu, item){
if(item == MENU_EXIT)
{
menu_destroy(menu);
return;
}
new data[9], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
switch(key) {
case 1: Raktar(id);
case 2: LadaNyitas(id);
case 3: Piac(id);
case 4: Eldobas(id);
}
}
public Raktar(id)
{
new cim[121];
new menu = menu_create("\wPaintball \y- \dRaktar", "Raktar_h");
for(new i=0;i < sizeof(Kesek); i++)
{
if(Kes[i][id] > 0)
{
new Sor[6]; num_to_str(i, Sor, 5);
formatex(cim, charsmax(cim), "\r%s \y| \d%d DB", Kesek[i][Name], Kes[i][id]);
menu_additem(menu, cim, Sor);
}
}
menu_display(id, menu, 0);
}
public Raktar_h(id, menu, item){
if(item == MENU_EXIT)
{
menu_destroy(menu);
return;
}
new data[9], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
Skin[id] = key+1;
client_printcolor(id, "!g%s !nSikeresen Kivalasztodtad a : !g%s !nSkin.", Prefix, Kesek[key][Name]);
}
public LadaNyitas(id)
{
new menu = menu_create("\wPaintball \y- \dLadaNyitas", "LadaNyit_h");
menu_additem(menu, "\yLadaNyitas\r!^n\d1 Lada és 1 Kulcs!", "1", 0);
menu_display(id, menu, 0);
}
public LadaNyit_h(id, menu, item){
if(item == MENU_EXIT)
{
menu_destroy(menu);
return;
}
new data[9], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
switch(key) {
case 1:
{
if(Lada[id] >= 1 && Kulcs[id] >= 1)
{
Lada[id] --;
Kulcs[id] --;
Talal(id);
}
LadaNyitas(id);
}
}
}
public Eldobas(id)
{
new cim[121];
new menu = menu_create("\wPaintball \y- \dEldobas", "Eldobas_h");
for(new i=0;i < sizeof(Kesek); i++)
{
if(Kes[i][id] > 0)
{
new Sor[6]; num_to_str(i, Sor, 5);
formatex(cim, charsmax(cim), "\r%s \y| \d%d DB", Kesek[i][Name], Kes[i][id]);
menu_additem(menu, cim, Sor);
}
}
menu_display(id, menu, 0);
}
public Eldobas_h(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return;
}
Kes[item][id] --;
Eldobas(id);
}
public Piac(id)
{
new cim[121];
format(cim, charsmax(cim), "\wPaintball \y- \dPiac");
new menu = menu_create(cim, "Piac_h");
menu_additem(menu, "Eladas", "1", 0);
menu_additem(menu, "Vasárlas", "2", 0);
menu_display(id, menu, 0);
}
public Piac_h(id, menu, item){
if(item == MENU_EXIT)
{
menu_destroy(menu);
return;
}
new data[9], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
switch(key)
{
case 1: Eladas(id);
case 2: Vasarlas(id);
}
}
public Eladas(id) {
new cim[121], ks1[121], ks2[121];
format(cim, charsmax(cim), "\wPaintball \y- \dEladas");
new menu = menu_create(cim, "eladas_h" );
if(kirakva[id] == 0){
for(new i=0; i < sizeof(Kesek); i++) {
if(kicucc[id] == 0) format(ks1, charsmax(ks1), "Targy: \dValasz Valamit!^n");
else if(kicucc[id] == i) format(ks1, charsmax(ks1), "Targy: \d%s^n", Kesek[i-1][Name]);
}
menu_additem(menu, ks1 ,"0",0);
}
if(kirakva[id] == 0){
format(ks2, charsmax(ks2), "\wAr: \d%d", Erteke[id]);
menu_additem(menu,ks2,"1",0);
}
if(kirakva[id] == 0)
menu_additem(menu,"\yKirakas!","2",0);
if(Erteke[id] != 0 && kirakva[id] == 1)
menu_additem(menu,"Targy \dVisszavonas","-2",0);
menu_setprop(menu, MPROP_EXITNAME, "Kilepes");
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
}
public eladas_h(id, menu, item){
if( item == MENU_EXIT )
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[9], szName[64], name[32];
get_user_name(id, name, charsmax(name));
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
switch(key)
{
case -2:{
kirakva[id] = 0;
kicucc[id] = 0;
Erteke[id] = 0;
}
case 0:{
fvalaszt(id);
}
case 1:{
client_cmd(id, "messagemode DOLLAR");
}
case 2:{
for(new i=0; i < sizeof(Kesek); i++) {
if(kicucc[id] == i && Kes[i-1][id] >= 1) {
client_printcolor(0, "!g%s !t%s !nKirakott egy !g%s-!nt %d aranyrt",Prefix, name, Kesek[i-1][Name], Erteke[id]);
kirakva[id] = 1;
}
}
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public fvalaszt(id) {
new szMenuTitle[ 121 ],cim[121];
format( szMenuTitle, charsmax( szMenuTitle ), "\wPaintball \y- \dFegyver Valasz");
new menu = menu_create( szMenuTitle, "fvalaszt_h" );
for(new i=0; i < sizeof(Kesek); i++) {
if(Kes[i-1][id] > 0) {
new Num[6];
num_to_str(i, Num, 5);
formatex(cim, charsmax(cim), "\y%s \r| \d%d DB", Kesek[i][Name], Kes[i][id]);
menu_additem(menu, cim, Num);
}
}
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
}
public fvalaszt_h(id, menu, item){
if(item == MENU_EXIT)
{
menu_destroy(menu);
return;
}
new data[9], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
kicucc[id] = key+1;
Eladas(id);
}
public lekeres(id) {
new ertek, adatok[32];
read_args(adatok, charsmax(adatok));
remove_quotes(adatok);
ertek = str_to_num(adatok);
new hossz = strlen(adatok);
if(hossz > 7)
{
client_cmd(id, "messagemode DOLLAR");
}
else if(ertek < 20)
{
client_printcolor(id, "!g%s !nNem tudsz eladni fegyver!t 20 arany alatt.", Prefix);
Eladas(id);
}
else
{
Erteke[id] = ertek;
Eladas(id);
}
}
public Vasarlas(id)
{
new mpont[512], menu, cim[121];
static players[32],temp[10],pnum;
get_players(players,pnum,"c");
format(cim, charsmax(cim), "\wPaintball \y- \dVasarlas");
menu = menu_create(cim, "vasarlas_h" );
for (new i; i < pnum; i++)
{
if(kirakva[players[i]] == 1 && Erteke[players[i]] > 0)
{
for(new a=0; a < sizeof(Kesek); a++) {
if(kicucc[players[i]] == a)
formatex(mpont,256,"\r%s \y| \w%s \y| \w%d \yArany", Kesek[i-1][Name], get_player_name(players[i]), Erteke[players[i]]);
}
num_to_str(players[i],temp,charsmax(temp));
menu_additem(menu, mpont, temp);
}
}
menu_setprop(menu, MPROP_PERPAGE, 6);
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL );
menu_display(id, menu);
return PLUGIN_HANDLED;
}
public vasarlas_h(id,menu, item){
if(item == MENU_EXIT)
{
menu_destroy(menu);
return;
}
if(pido != 0){
Vasarlas(id);
return;
}
new data[6] ,szName[64],access,callback;
new name[32], name2[32];
get_user_name(id, name, charsmax(name));
menu_item_getinfo(menu, item, access, data, charsmax(data), szName, charsmax(szName), callback);
new player = str_to_num(data);
get_user_name(player, name2, charsmax(name2));
pido = 2;
set_task(2.0, "vido");
for(new i=0; i < sizeof(Kesek); i++) {
if(Arany[id] >= Erteke[player] && kicucc[player] == i && kirakva[player] == 1)
{
kirakva[player] = 0;
client_printcolor(0, "!g%s !t%s !nvett egy !g%s !n%s-tól %d Aranyert!",Prefix, name, Kesek[i-1][Name], name2, Erteke[player]);
Arany[player] += Erteke[player];
Arany[id] -= Erteke[player];
Kes[i-1][id] ++;
Kes[i-1][player] --;
kicucc[player] = 0;
Erteke[player] = 0;
}
}
}
public Talal(id)
{
new Szam = random_num(1, 700);
new Nev[32]; get_user_name(id, Nev, 31);
if(Szam < 300)
{
switch(random_num(1, 7))
{
case 1:
{
Kes[0][id] ++;
client_printcolor(0, "!g%s !t%s !nTalalta ezt: !g%s!", Prefix, Nev, Kesek[0][Name]);
}
case 2:
{
Kes[1][id] ++;
client_printcolor(0, "!g%s !t%s !nTalalta ezt: !g%s!", Prefix, Nev, Kesek[1][Name]);
}
case 3:
{
Kes[2][id] ++;
client_printcolor(0, "!g%s !t%s !nTalalta ezt: !g%s!", Prefix, Nev, Kesek[2][Name]);
}
case 4:
{
Kes[3][id] ++;
client_printcolor(0, "!g%s !t%s !nTalálta ezt: !g%s!", Prefix, Nev, Kesek[3][Name]);
}
case 5:
{
Kes[4][id] ++;
client_printcolor(0, "!g%s !t%s !nTalalta ezt: !g%s!", Prefix, Nev, Kesek[4][Name]);
}
case 6:
{
Kes[5][id] ++;
client_printcolor(0, "!g%s !t%s !nTalalta ezt: !g%s!", Prefix, Nev, Kesek[5][Name]);
}
case 7:
{
Kes[6][id] ++;
client_printcolor(0, "!g%s !t%s !nTalalta ezt: !g%s!", Prefix, Nev, Kesek[6][Name]);
}
}
}
else if(Szam < 400 && Szam > 700)
{
switch(random_num(1, 8))
{
case 1:
{
Kes[7][id] ++;
client_printcolor(0, "!g%s !t%s !nTalalta ezt: !g%s!", Prefix, Nev, Kesek[7][Name]);
}
case 2:
{
Kes[8][id] ++;
client_printcolor(0, "!g%s !t%s !nTalalta ezt: !g%s!", Prefix, Nev, Kesek[8][Name]);
}
case 3:
{
Kes[9][id] ++;
client_printcolor(0, "!g%s !t%s !nTalalta ezt: !g%s!", Prefix, Nev, Kesek[9][Name]);
}
case 4:
{
Kes[10][id] ++;
client_printcolor(0, "!g%s !t%s !nTalalta ezt: !g%s!", Prefix, Nev, Kesek[10][Name]);
}
case 5:
{
Kes[11][id] ++;
client_printcolor(0, "!g%s !t%s !nTalalta ezt: !g%s!", Prefix, Nev, Kesek[11][Name]);
}
case 6:
{
Kes[12][id] ++;
client_printcolor(0, "!g%s !t%s !nTalalta ezt: !g%s!", Prefix, Nev, Kesek[12][Name]);
}
case 7:
{
Kes[13][id] ++;
client_printcolor(0, "!g%s !t%s !nTalalta ezt: !g%s!", Prefix, Nev, Kesek[13][Name]);
}
case 8:
{
Kes[14][id] ++;
client_printcolor(0, "!g%s !t%s !nTalalta ezt: !g%s!", Prefix, Nev, Kesek[14][Name]);
}
}
}
}
public vido()
{
pido = 0;
}
stock get_player_name(id){
static Nev[32];
get_user_name(id, Nev,31);
return Nev;
}
stock client_printcolor(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, "!n", "^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();
}
}
}
return PLUGIN_HANDLED;
}
public client_putinserver(id)
{
if(!is_user_bot(id))
Load(id);
}
public client_disconnect(id)
{
if(!is_user_bot(id))
{
Save(id);
Arany[id] = 0;
Szint[id] = 0;
Xp[id] = 0;
Lada[id] = 0;
Kulcs[id] = 0;
for(new i;i < 15; i++)
Kes[i][id] = 0;
}
}
Load(id)
{
new Nev[32]; get_user_name(id, Nev, sizeof(Nev)-1);
new Mentes[512];
format(Mentes, charsmax(Mentes), "%i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i", Arany[id], Szint[id], Xp[id], Kes[0][id], Kes[1][id], Kes[2][id], Kes[3][id], Kes[4][id], Kes[5][id], Kes[6][id]
, Kes[7][id], Kes[8][id], Kes[9][id], Kes[10][id], Kes[11][id], Kes[12][id], Kes[13][id], Kes[14][id], Lada[id], Kulcs[id]);
if(fvault_get_data(File, Mentes, Nev, charsmax(Nev)))
{
new Gold[32], Lvl[32], Tap[32], Ks1[32], Ks2[32], Ks3[32], Ks4[32], Ks5[32], Ks6[32], Ks7[32], Ks8[32], Ks9[32], Ks10[32], Ks11[32], Ks12[32], Ks13[32], Ks14[32], Ks15[32], Lad[32], Key[32];
parse(Mentes, Gold, 31, Lvl, 31, Tap, 31, Ks1, 31, Ks2, 31, Ks3, 31, Ks4, 31, Ks5, 31, Ks6, 31, Ks7, 31, Ks8, 31, Ks9, 31, Ks10, 31, Ks11, 31, Ks12, 31, Ks13, 31, Ks14, 31, Ks15, 31, Lad, 31, Key, 31);
Arany[id] = str_to_num(Gold);
Szint[id] = str_to_num(Lvl);
Xp[id] = str_to_num(Tap);
Kes[0][id] = str_to_num(Ks1);
Kes[1][id] = str_to_num(Ks2);
Kes[2][id] = str_to_num(Ks3);
Kes[3][id] = str_to_num(Ks4);
Kes[4][id] = str_to_num(Ks5);
Kes[5][id] = str_to_num(Ks6);
Kes[6][id] = str_to_num(Ks7);
Kes[7][id] = str_to_num(Ks8);
Kes[8][id] = str_to_num(Ks9);
Kes[9][id] = str_to_num(Ks10);
Kes[10][id] = str_to_num(Ks11);
Kes[11][id] = str_to_num(Ks12);
Kes[12][id] = str_to_num(Ks13);
Kes[13][id] = str_to_num(Ks14);
Kes[14][id] = str_to_num(Ks15);
Lada[id] = str_to_num(Lad);
Kulcs[id] = str_to_num(Key);
}
}
Save(id)
{
new Nev[32]; get_user_name(id, Nev, sizeof(Nev)-1);
new Mentes[512];
format(Mentes, charsmax(Mentes), "%i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i", Arany[id], Szint[id], Xp[id], Kes[0][id], Kes[1][id], Kes[2][id], Kes[3][id], Kes[4][id], Kes[5][id], Kes[6][id]
, Kes[7][id], Kes[8][id], Kes[9][id], Kes[10][id], Kes[11][id], Kes[12][id], Kes[13][id], Kes[14][id], Lada[id], Kulcs[id]);
fvault_set_data(File, Nev, Mentes);
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par }
*/