#include <amxmodx>
#include <fvault>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#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] =
{
{ "Vonalzo Kés", "models/paintball/v_vonalzo.mdl" },
{ "Hagyma Kés", "models/paintball/v_hagyma.mdl" },
{ "Dildo Kés", "models/paintball/v_dildo.mdl" },
{ "Lumine Kés", "models/paintball/v_lumine.mdl" },
{ "M9 Bayonet Kés", "models/paintball/v_m9.mdl" },
{ "Wolverine Kés", "models/paintball/v_wolverine.mdl" },
{ "Kukri Beast Kés", "models/paintball/v_kukri_beast.mdl" },
{ "Defibrillator Kés", "models/paintball/v_defibrillator.mdl" },
{ "Chinese Kés", "models/paintball/v_chinese.mdl" },
{ "Daedric Kés", "models/paintball/v_daedric.mdl" },
{ "Cheese Slicer Kés", "models/paintball/v_cheese_slicer.mdl" },
{ "Beba Kés", "models/paintball/v_beba.mdl" },
{ "Aqua Kés", "models/paintball/v_aqua.mdl" },
{ "Carbon Kés", "models/paintball/v_carbon.mdl" },
{ "Balrog Dragonslayer Kés", "models/paintball/v_balrog_dragonslayer.mdl" }
};
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
register_impulse(201, "FoMenu");
register_clcmd("say /menu", "FoMenu");
g_SyncHud1 = CreateHudSyncObj();
set_task(0.5,"TaskHalfSecond",.flags="b");
register_event("DeathMsg", "Halal", "a");
RegisterHam(Ham_Item_Deploy, "weapon_knife", "FegyverValtas", 1);
}
public plugin_precache()
{
for(new i;i < 15; i++)
precache_model(Kesek[i][Model]);
}
public FegyverValtas(ent)
{
new id = get_pdata_cbase(ent, 41, 4);
switch(get_user_weapon(id))
{
case CSW_KNIFE:
{
switch(Skin[id])
{
case 1: set_pev(id, pev_viewmodel2, Kesek[0][Model]);
case 2: set_pev(id, pev_viewmodel2, Kesek[1][Model]);
case 3: set_pev(id, pev_viewmodel2, Kesek[2][Model]);
case 4: set_pev(id, pev_viewmodel2, Kesek[3][Model]);
case 5: set_pev(id, pev_viewmodel2, Kesek[4][Model]);
case 6: set_pev(id, pev_viewmodel2, Kesek[5][Model]);
case 7: set_pev(id, pev_viewmodel2, Kesek[6][Model]);
case 8: set_pev(id, pev_viewmodel2, Kesek[7][Model]);
case 9: set_pev(id, pev_viewmodel2, Kesek[8][Model]);
case 10: set_pev(id, pev_viewmodel2, Kesek[9][Model]);
case 11: set_pev(id, pev_viewmodel2, Kesek[10][Model]);
case 12: set_pev(id, pev_viewmodel2, Kesek[11][Model]);
case 13: set_pev(id, pev_viewmodel2, Kesek[12][Model]);
case 14: set_pev(id, pev_viewmodel2, Kesek[13][Model]);
case 15: set_pev(id, pev_viewmodel2, 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^nLáda: %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 !nKaptál !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 !nTalált egy ládát.", Prefix, Nev);
}
else if(Num == 5 && elezaparaszt)
{
Kulcs[Gyilkos] ++;
client_printcolor(0, "!g%s !t%s !nTalált egy kulcsot.", Prefix, Nev);
}
}
public FoMenu(id)
{
new menu = menu_create("\wPaintball \y- \dFõmenü", "Fomenu_h");
menu_additem(menu, "Raktár", "1", 0);
menu_additem(menu, "Láda Nyitás", "2", 0);
menu_additem(menu, "Piac", "3", 0);
menu_additem(menu, "Eldobás", "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- \dRaktár", "Raktar_h");
for(new i=0;i < 15; 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 Kiválasztodtad a : !g%s !nSkin.", Prefix, Kesek[key][Name]);
}
public LadaNyitas(id)
{
new menu = menu_create("\wPaintball \y- \dLadáNyitás", "LadaNyit_h");
menu_additem(menu, "\yLádaNyitás\r!^n\d1 Láda é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- \dEldobás", "Eldobas_h");
for(new i=0;i < 15; 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, "Eladás", "1", 0);
menu_additem(menu, "Vásárlás", "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- \dEladás");
new menu = menu_create(cim, "eladas_h" );
if(kirakva[id] == 0){
for(new i=0; i < 110; i++) {
if(kicucc[id] == 0) format(ks1, charsmax(ks1), "Tárgy: \dVálasz Valamit!^n");
else if(kicucc[id] == i) format(ks1, charsmax(ks1), "Tárgy: \d%s^n", Kesek[i-1][Name]);
}
menu_additem(menu, ks1 ,"0",0);
}
if(kirakva[id] == 0){
format(ks2, charsmax(ks2), "\wÁr: \d%d", Erteke[id]);
menu_additem(menu,ks2,"1",0);
}
if(kirakva[id] == 0)
menu_additem(menu,"\yKirakás!","2",0);
if(Erteke[id] != 0 && kirakva[id] == 1)
menu_additem(menu,"Tárgy \dVisszavonás","-2",0);
menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
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 < 110; 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 Válasz");
new menu = menu_create( szMenuTitle, "fvalaszt_h" );
for(new i=0; i < 110; 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- \dVásárlás");
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 < 110; 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 < 110; 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 Aranyért!",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 !nTalálta ezt: !g%s!", Prefix, Nev, Kesek[0][Name]);
}
case 2:
{
Kes[1][id] ++;
client_printcolor(0, "!g%s !t%s !nTalálta ezt: !g%s!", Prefix, Nev, Kesek[1][Name]);
}
case 3:
{
Kes[2][id] ++;
client_printcolor(0, "!g%s !t%s !nTalálta 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 !nTalálta ezt: !g%s!", Prefix, Nev, Kesek[4][Name]);
}
case 6:
{
Kes[5][id] ++;
client_printcolor(0, "!g%s !t%s !nTalálta ezt: !g%s!", Prefix, Nev, Kesek[5][Name]);
}
case 7:
{
Kes[6][id] ++;
client_printcolor(0, "!g%s !t%s !nTalálta 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 !nTalálta ezt: !g%s!", Prefix, Nev, Kesek[7][Name]);
}
case 2:
{
Kes[8][id] ++;
client_printcolor(0, "!g%s !t%s !nTalálta ezt: !g%s!", Prefix, Nev, Kesek[8][Name]);
}
case 3:
{
Kes[9][id] ++;
client_printcolor(0, "!g%s !t%s !nTalálta ezt: !g%s!", Prefix, Nev, Kesek[9][Name]);
}
case 4:
{
Kes[10][id] ++;
client_printcolor(0, "!g%s !t%s !nTalálta ezt: !g%s!", Prefix, Nev, Kesek[10][Name]);
}
case 5:
{
Kes[11][id] ++;
client_printcolor(0, "!g%s !t%s !nTalálta ezt: !g%s!", Prefix, Nev, Kesek[11][Name]);
}
case 6:
{
Kes[12][id] ++;
client_printcolor(0, "!g%s !t%s !nTalálta ezt: !g%s!", Prefix, Nev, Kesek[12][Name]);
}
case 7:
{
Kes[13][id] ++;
client_printcolor(0, "!g%s !t%s !nTalálta ezt: !g%s!", Prefix, Nev, Kesek[13][Name]);
}
case 8:
{
Kes[14][id] ++;
client_printcolor(0, "!g%s !t%s !nTalálta 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;
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", 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]);
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];
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);
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);
}
}
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", 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]);
fvault_set_data(File, Nev, Mentes);
}