/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <fakemeta_util>
#include <engine>
#include <fvault>
#include <colorchat>
#include <cstrike>
#include <fun>
#define PLUGIN "SkinRendszer 2.0"
#define VERSION "1.0"
#define AUTHOR "Pardon"
#define TULAJ ADMIN_IMMUNITY
#define ADMIN ADMIN_LEVEL_E
#define FOADMIN ADMIN_LEVEL_B
#define KISADMIN ADMIN_BAN
new Csomag[33], Oles[33], Rang[33], Vip[33], Valtozat[33], Kredit[33];
//Const
new const File[] = "Skin_Fvault";
new const Prefix[] = "!g[Sincefor @ OnlyDust2]";
new const Rangok[][] =
{
"Ăšjonc",
"Lelkes",
"Tag",
"Beavatott",
"Tud valamit",
"Fanatikus",
"Senior Tag",
"Jómunkásember",
"NagyĂşr",
"FĂ©listen",
"Ă–stag",
"Veterán",
"Oskövület",
"Minden6Ăł",
"ISTEN",
"Mindent TudĂł",
""
};
new const RangOles[] =
{
25,
50,
100,
125,
150,
200,
260,
340,
460,
570,
700,
760,
820,
950,
0
};
new const Weapons[][] = {
"models/sincefor_fegyvercsomagok/rozsdas/v_ak47.mdl",
"models/sincefor_fegyvercsomagok/rozsdas/v_awp.mdl",
"models/sincefor_fegyvercsomagok/rozsdas/v_deagle.mdl",
"models/sincefor_fegyvercsomagok/rozsdas/v_m4a1.mdl",
"models/sincefor_fegyvercsomagok/bronz/v_ak47.mdl",
"models/sincefor_fegyvercsomagok/bronz/v_awp.mdl",
"models/sincefor_fegyvercsomagok/bronz/v_deagle.mdl",
"models/sincefor_fegyvercsomagok/bronz/v_m4a1.mdl",
"models/sincefor_fegyvercsomagok/ezust/v_ak47.mdl",
"models/sincefor_fegyvercsomagok/ezust/v_awp.mdl",
"models/sincefor_fegyvercsomagok/ezust/v_deagle.mdl",
"models/sincefor_fegyvercsomagok/ezust/v_m4a1.mdl",
"models/sincefor_fegyvercsomagok/arany/v_ak47.mdl",
"models/sincefor_fegyvercsomagok/arany/v_awp.mdl",
"models/sincefor_fegyvercsomagok/arany/v_deagle.mdl",
"models/sincefor_fegyvercsomagok/arany/v_m4a1.mdl",
"models/sincefor_fegyvercsomagok/veteran/v_ak47.mdl",
"models/sincefor_fegyvercsomagok/veteran/v_awp.mdl",
"models/sincefor_fegyvercsomagok/veteran/v_deagle.mdl",
"models/sincefor_fegyvercsomagok/veteran/v_m4a1.mdl",
"models/sincefor_fegyvercsomagok/Vip/v_ak47.mdl",
"models/sincefor_fegyvercsomagok/Vip/v_awp.mdl",
"models/sincefor_fegyvercsomagok/Vip/v_deagle.mdl",
"models/sincefor_fegyvercsomagok/Vip/v_m4a1.mdl"
}
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
register_impulse(201, "FoMenu")
register_clcmd("say /menu", "FoMenu")
register_clcmd("say /add", "Addolas")
register_clcmd("say /rs", "ResetScore")
register_clcmd("say", "sayhook")
register_forward(FM_Touch,"ForwardTouch" );
register_event("CurWeapon", "WeaponSwitch", "be", "1=1")
register_event("DeathMsg", "Halal", "a");
}
public Addolas(id) {
if(get_user_flags(id) & ADMIN_IMMUNITY)
{
Oles[id]+= 1000
Kredit[id]+= 500
}
}
public ResetScore(id){
cs_set_user_deaths(id, 0)
set_user_frags(id, 0)
cs_set_user_deaths(id, 0)
set_user_frags(id, 0)
client_printcolor(id, "%s^1 Sikeresen nulláztad a^4 statisztikádat^1 a(z)^3 /rs^1 paranccsal!", Prefix)
}
public plugin_precache()
{
for(new i;i < sizeof(Weapons); i++)
{
new String[96]
formatex(String, charsmax(String), Weapons[i])
precache_model(String)
}
precache_model("models/sincefor_fegyvercsomagok/pack/kredit.mdl")
}
public Halal()
{
new Gyilkos = read_data(1);
new Aldozat = read_data(2);
if(Gyilkos != Aldozat && read_data(3))
{
Oles[Gyilkos]+= 2;
client_printcolor(Gyilkos, "%s !tFejlövés !nEzért az ölésért !t+2 !nPontod kaptál", Prefix);
}
else if(Gyilkos != Aldozat)
{
Oles[Gyilkos]++;
client_printcolor(Gyilkos, "%s !nEzért az ölésért !t+1 !nPontod kaptál", Prefix);
}
if(Oles[Gyilkos] >= RangOles[Rang[Gyilkos]])
{
Rang[Gyilkos]++;
}
switch(random_num(1,3)){
case 1: dropdobas()
}
}
public dropdobas()
{
new victim = read_data( 2 );
static Float:origin[ 3 ];
pev( victim, pev_origin, origin );
new ent = engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, "info_target" ) );
origin[ 2 ] -= 36;
engfunc( EngFunc_SetOrigin, ent, origin );
if( !pev_valid( ent ) )
{
return PLUGIN_HANDLED;
}
set_pev( ent, pev_classname, "kredit" );
engfunc( EngFunc_SetModel, ent, "models/sincefor_fegyvercsomagok/pack/kredit.mdl" );
dllfunc( DLLFunc_Spawn, ent );
set_pev( ent, pev_solid, SOLID_BBOX );
set_pev( ent, pev_movetype, MOVETYPE_NONE );
engfunc( EngFunc_SetSize, ent, Float:{ -23.160000, -13.660000, -0.050000 }, Float:{ 11.470000, 12.780000, 6.720000 } );
engfunc( EngFunc_DropToFloor, ent );
return PLUGIN_HANDLED;
}
public ForwardTouch( ent, id )
{
if(pev_valid(ent))
{
new classname[ 32 ];
pev( ent, pev_classname, classname, charsmax( classname ) );
if( !equal( classname, "kredit") )
{
return FMRES_IGNORED;
}
new pPont;
pPont += random_num(1, 4)
Kredit[id] += pPont
client_printcolor(id, "%s !nTaláltál !t+%d !nKredited",Prefix, pPont);
engfunc( EngFunc_RemoveEntity, ent );
}
return FMRES_IGNORED
}
public logevent_round_start()
{
new hkt = FM_NULLENT;
while ( ( hkt = fm_find_ent_by_class( hkt, "kredit") ) )
{
engfunc( EngFunc_RemoveEntity, hkt );
}
}
public Parancs_Vip_Add_Ido(id) {
if(Valtozat[id] > get_systime(id))
{
Valtozat[id] += (60*60*24*7) //7 Nap
}
else
{
Valtozat[id] += get_systime(id)+(60*60*24*7) //7 nap
}
Vip[id] = 1
}
public Parancs_Vip_elvittel(id) {
if(Valtozat[id] < get_systime(id))
{
Vip[id] = 0
}
}
public FoMenu(id)
{
new cim[121];
format(cim, charsmax(cim), "\y[Sincefor] \wOnlyDust2^n\rÖlés:\d %d \y| \rKredit: \d %d", Oles[id], Kredit[id]);
new menu = menu_create(cim, "Fomenu_h");
menu_additem(menu, "\rFegyver \wCsomagok", "1", 0);
menu_additem(menu, "\rVip\d(Nyitva)", "2",0);
format(cim, charsmax(cim), "\yJátékos Tapasztalata^n^n\rRangod: \d%s^n\rKövetkezo Rangod: \d%s \r(\w%d/%d\r)", Rangok[Rang[id]], Rangok[Rang[id]+1], Oles[id], RangOles[Rang[id]]);
menu_additem(menu, cim, "3",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: Fegyver(id)
case 2: VipMenu(id)
case 3: playerinfo(id)
}
}
public Fegyver(id)
{
new cim[121], String[96]
format(cim, 121, "\y[Sincefor] \wOnlyDust2 \r- \dFegyver Csomagok^nÖlés: \d%d", Oles[id]);
new menu = menu_create(cim, "fegyver_h");
menu_additem(menu, "Alap Csomag \r[Megszerezve]", "0", 0);
format(String, charsmax(String), Oles[id] >= 150 ? ("Rozsdás Csomagok \r[Megszerezve]"):("Rozsdás Csomag \r[\w%d/150\r]"), Oles[id]);
menu_additem(menu, String, "1" );
format(String, charsmax(String), Oles[id] >= 300 ? ("Bronz Csomagok \r[Megszerezve]"):("Bronz Csomagok \r[\w%d/300\r]"), Oles[id]);
menu_additem(menu, String, "2" );
format(String, charsmax(String), Oles[id] >= 550 ? ("EzĂĽst Csomagok\r[Megszerezve]"):("EzĂĽst Csomagok \r[\w%d/550\r]"), Oles[id]);
menu_additem(menu, String, "3" );
format(String, charsmax(String), Oles[id] >= 700 ? ("Arany Csomagok\r[Megszerezve]"):("Arany Csomagok \r[\w%d/700\r]"), Oles[id]);
menu_additem(menu, String, "4" );
format(String, charsmax(String), Oles[id] >= 850 ? ("Veterán Csomagok \r[Megszerezve]"):("Veterán Csomagok \r[\w%d/850\r]"), Oles[id]);
menu_additem(menu, String, "5" );
format(String, charsmax(String), Vip[id] == 1 ? ("Vip Csomagok \r(Aktiv)"):("Vip Csomagok \r(Nem Vagy Vip)"))
menu_additem(menu, String, "6");
menu_display(id, menu, 0)
}
public fegyver_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 0: Csomag[id] = 0;
case 1: {
if(Oles[id] >= 150) {
Csomag[id] = 1;
client_printcolor(id, "%s !nSikeresen Aktiváltad a Csomagod", Prefix);
}
else {
client_printcolor(id, "%s !nNincs Elég Ölésed", Prefix);
}
}
case 2: {
if(Oles[id] >= 300) {
Csomag[id] = 2;
client_printcolor(id, "%s !nSikeresen Aktiváltad a Csomagod", Prefix)
}
else {
client_printcolor(id, "%s !nNincs Elég Ölésed", Prefix)
}
}
case 3: {
if(Oles[id] >= 550) {
Csomag[id] = 3;
client_printcolor(id, "%s !nSikeresen Aktiváltad a Csomagod", Prefix)
}
else {
client_printcolor(id, "%s !nNincs Elég Ölésed", Prefix)
}
}
case 4: {
if(Oles[id] >= 700) {
Csomag[id] = 4;
client_printcolor(id, "%s !nSikeresen Aktiváltad a Csomagod", Prefix)
}
else {
client_printcolor(id, "%s !nNincs Elég Ölésed", Prefix)
}
}
case 5: {
if(Oles[id] >= 850) {
Csomag[id] = 5;
client_printcolor(id, "%s !nSikeresen Aktiváltad a Csomagod", Prefix)
}
else {
client_printcolor(id, "%s !nNincs Elég Ölésed", Prefix)
}
}
case 6: {
if(Vip[id] == 1) {
Csomag[id] = 6;
Parancs_Vip_Add_Ido(id)
client_printcolor(id, "%s !nSikeresen Aktiváltad a Csomagod", Prefix)
}
else
{
client_printcolor(id, "%s !nNem Vagy Vip!", Prefix)
}
}
}
}
public playerinfo(id)
{
new some[256], menu
static players[32],szTemp[10],pnum
get_players(players,pnum,"ch");
formatex(some,255,"\y[Sincefor] \wOnlyDust2 \r- \dJátékos^n\rÖlés \d| \rRang \d| \rKredit");
menu = menu_create(some,"pinfo_Handler");
for (new i; i < pnum; i++)
{
formatex(some,256,"%s \r(\yÖlései: \w%i \d| \yRang: \w%s \d| \yKredit: \w%i\r)",get_player_name(players[i]), Oles[players[i]], Rangok[Rang[players[i]]], Kredit[players[i]]);
num_to_str(players[i],szTemp,charsmax(szTemp));
menu_additem(menu, some, szTemp);
}
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL );
menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
menu_display(id, menu);
return PLUGIN_HANDLED;
}
public pinfo_Handler(id,menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return;
}
playerinfo(id)
}
public VipMenu(id) {
new cim[121]
format(cim, charsmax(cim), "\y[Sincefor] \wOnlyDust2 \r- \dVip")
new menu = menu_create(cim, "Vip_h")
if(Vip[id] == 1) {
format_time(cim, charsmax(cim), "\yVip \r(%Y-%m-%d %H:%M:%S)", Valtozat[id])
menu_additem(menu, cim, "0",0)
}
else
{
format(cim, charsmax(cim), "\yVip \r[500 Kredit]")
menu_additem(menu, cim, "1",0)
}
menu_display(id, menu, 0)
}
public Vip_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 0: VipMenu(id)
case 1: {
if(Kredit[id] >= 500){
Vip[id] = 1
Parancs_Vip_Add_Ido(id)
Kredit[id] -= 500
client_printcolor(id, "%s !nSikeresen Megvásároltad", Prefix)
}
else
{
client_printcolor(id, "%s !nNincs Elég Kredited", Prefix)
}
}
}
}
stock get_player_name(id){
static szName[32];
get_user_name(id,szName,31);
return szName;
}
public client_putinserver(id) Load(id)
public client_disconnect(id) Save(id)
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", Oles[id], Rang[id], Csomag[id], Kredit[id], Vip[id])
if(fvault_get_data(File, Nev, Mentes, 511))
{
new Ol[32], Ran[32], Csomi[32], Kre[32], Vi[32]
parse(Mentes, Ol, 31, Ran, 31, Csomi, 31, Kre, 31, Vi, 31)
Oles[id] = str_to_num(Ol)
Rang[id] = str_to_num(Ran)
Csomag[id] = str_to_num(Csomi)
Kredit[id] = str_to_num(Kre)
Vip[id] = str_to_num(Vi)
}
else
{
Oles[id] = 0
Rang[id] = 0
Csomag[id] = 0
Kredit[id] = 0
Vip[id] = 0
}
}
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", Oles[id], Rang[id], Csomag[id], Kredit[id], Vip[id])
fvault_set_data(File, Nev, Mentes)
}
public WeaponSwitch(id) {
new Gun = get_user_weapon(id)
if(Csomag[id] == 1) {
if(Gun == CSW_AK47) set_pev(id, pev_viewmodel2, Weapons[0])
if(Gun == CSW_AWP) set_pev(id, pev_viewmodel2, Weapons[1])
if(Gun == CSW_DEAGLE) set_pev(id, pev_viewmodel2, Weapons[2])
if(Gun == CSW_M4A1) set_pev(id, pev_viewmodel2, Weapons[3])
}
else if(Csomag[id] == 2) {
if(Gun == CSW_AK47) set_pev(id, pev_viewmodel2, Weapons[4])
if(Gun == CSW_AWP) set_pev(id, pev_viewmodel2, Weapons[5])
if(Gun == CSW_DEAGLE) set_pev(id, pev_viewmodel2, Weapons[6])
if(Gun == CSW_M4A1) set_pev(id, pev_viewmodel2, Weapons[7])
}
else if(Csomag[id] == 3) {
if(Gun == CSW_AK47) set_pev(id, pev_viewmodel2, Weapons[8])
if(Gun == CSW_AWP) set_pev(id, pev_viewmodel2, Weapons[9])
if(Gun == CSW_DEAGLE) set_pev(id, pev_viewmodel2, Weapons[10])
if(Gun == CSW_M4A1) set_pev(id, pev_viewmodel2, Weapons[11])
}
else if(Csomag[id] == 4) {
if(Gun == CSW_AK47) set_pev(id, pev_viewmodel2, Weapons[12])
if(Gun == CSW_AWP) set_pev(id, pev_viewmodel2, Weapons[13])
if(Gun == CSW_DEAGLE) set_pev(id, pev_viewmodel2, Weapons[14])
if(Gun == CSW_M4A1) set_pev(id, pev_viewmodel2, Weapons[15])
}
else if(Csomag[id] == 5) {
if(Gun == CSW_AK47) set_pev(id, pev_viewmodel2, Weapons[16])
if(Gun == CSW_AWP) set_pev(id, pev_viewmodel2, Weapons[17])
if(Gun == CSW_DEAGLE) set_pev(id, pev_viewmodel2, Weapons[18])
if(Gun == CSW_M4A1) set_pev(id, pev_viewmodel2, Weapons[19])
}
else if(Csomag[id] == 6) {
if(Gun == CSW_AK47) set_pev(id, pev_viewmodel2, Weapons[20])
if(Gun == CSW_AWP) set_pev(id, pev_viewmodel2, Weapons[21])
if(Gun == CSW_DEAGLE) set_pev(id, pev_viewmodel2, Weapons[22])
if(Gun == CSW_M4A1) set_pev(id, pev_viewmodel2, Weapons[23])
}
}
public sayhook(id)
{
new message[192], Name[32], none[2][32], chat[192]
read_args(message, 191)
remove_quotes(message)
formatex(none[0], 31, ""), formatex(none[1], 31, " ")
if (message[0] == '@' || message[0] == '/' || message[0] == '#' || message[0] == '!' || equal (message, ""))
return PLUGIN_HANDLED;
if(!equali(message, none[0]) && !equali(message, none[1]))
{
get_user_name(id, Name, 31);
if(is_user_alive(id))
{
if(get_user_flags(id) & TULAJ)
formatex(chat, 191, "^x04[Tulajdonos][%s]^3%s^x04: %s", Rangok[Rang[id]], Name, message)
else if(get_user_flags(id) & TULAJ && (Vip[id] == 1))
formatex(chat, 191, "^x04[Tulajdonos][Vip][%s]^3 %s^x04: %s", Rangok[Rang[id]], Name, message)
else if(get_user_flags(id) & FOADMIN)
formatex(chat, 191, "^x04[FĹ‘admin][%s]^x03%s^x04: %s", Rangok[Rang[id]], Name, message)
else if(get_user_flags(id) & FOADMIN && (Vip[id] == 1))
formatex(chat, 191, "^x04[FĹ‘admin][Vip][%s]^x03%s^x04: %s", Rangok[Rang[id]], Name, message)
else if(get_user_flags(id) & ADMIN)
formatex(chat, 191, "^x04[Admin][%s]^x03%s^x04: %s", Rangok[Rang[id]], Name, message)
else if(get_user_flags(id) & ADMIN && (Vip[id] == 1))
formatex(chat, 191, "^x04[Admin][Vip][%s]^x03%s^x04: %s", Rangok[Rang[id]], Name, message)
else if(get_user_flags(id) & KISADMIN)
formatex(chat, 191, "^x04[KisAdmin][%s]^x03%s^x04: %s", Rangok[Rang[id]], Name, message)
else if(Vip[id] == 1)
formatex(chat, 191, "^x04[Vip][%s]^x03%s^x04: %s", Rangok[Rang[id]], Name, message)
else
formatex(chat, 191, "^x04[%s]^x03%s^x01: %s", Rangok[Rang[id]], Name, message)
}
else {
if(get_user_flags(id) & TULAJ)
formatex(chat, 191, "^x01*Halott*^x04[Tulajdonos][%s]^3 %s^x04: %s", Rangok[Rang[id]], Name, message)
else if(get_user_flags(id) & TULAJ && (Vip[id] == 1))
formatex(chat, 191, "^x01*Halott*^x04[Tulajdonos][Vip][%s]^3 %s^x04: %s", Rangok[Rang[id]], Name, message)
else if(get_user_flags(id) & FOADMIN)
formatex(chat, 191, "^x01*Halott*^x04[FĹ‘admin][%s]^x03 %s^x04: %s", Rangok[Rang[id]], Name, message)
else if(get_user_flags(id) & FOADMIN && (Vip[id] == 1))
formatex(chat, 191, "^x01*Halott*^x04[FĹ‘admin][Vip][%s]^x03%s^x04: %s", Rangok[Rang[id]], Name, message)
else if(get_user_flags(id) & ADMIN)
formatex(chat, 191, "^x01*Halott*^x04[Admin][%s]^x03 %s^x04: %s", Rangok[Rang[id]], Name, message)
else if(get_user_flags(id) & ADMIN)
formatex(chat, 191, "^x01*Halott*^x04[Admin][%s]^x03%s^x04: %s", Rangok[Rang[id]], Name, message)
else if(get_user_flags(id) & KISADMIN)
formatex(chat, 191, "^x01*Halott*^x04[KisAdmin][%s]^x03 %s^x04: %s", Rangok[Rang[id]], Name, message)
else if(Vip[id] == 1)
formatex(chat, 191, "^x01*Halott*^x04[Vip][%s]^x03%s^x04: %s", Rangok[Rang[id]], Name, message)
else
formatex(chat, 191, "^x01*Halott*^x04[%s]^x03 %s^x01: %s", Rangok[Rang[id]], Name, message)
}
switch(cs_get_user_team(id))
{
case 1: ColorChat(0, RED, chat)
case 2: ColorChat(0, BLUE, chat)
}
if(cs_get_user_team(id) == CS_TEAM_SPECTATOR)
ColorChat(0, GREY, chat)
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
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;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/