#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <colorchat>
#include <hamsandwich>
#include <sqlx>
new const PLUGIN[] = "Skin Menü"
new const VERSION[] = "1.0"
new const AUTHOR[] = "exodus"
//------------------------------------------------------------------------------------------------
//Beállítások
//------------------------------------------------------------------------------------------------
new const SQLINFO[][] = { "", "", "", "" };
new const Prefix[] = "[.:BlacK DemonS:.] Fun Szerver" //Menükben megjelenõ prefix
new const Chat_Prefix[] = "[.:BlacK DemonS:.]" //Chatben megjelenõ prefix
new const Website[] = "fb.com/groups/blackdemonsszerver/" //Fõmenüben a menük alatt megjelenõ kiírás (pl.: fb oldal)
new const Drop[][] = { 50 }; //Mennyi ölés után adjon valamilyen skint.
#define MAX 51 //Felszerelhetõ skinek száma
#define ADMIN ADMIN_BAN //Addoláshoz szükséges jog
//------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------
new t_OSkin[MAX][33], t_Skin[5][33], Oles[2][33], name[32][33];
new Beallitasok[33];
new Handle:g_SqlTuple;
//------------------------------------------------------------------------------------------------
public plugin_init()
{
register_plugin(PLUGIN,VERSION,AUTHOR)
sql_create_table();
register_impulse(201, "m_Fomenu");
register_clcmd("say /menu", "m_Fomenu");
register_clcmd("say /add", "m_Addolas");
register_event("CurWeapon", "m_CurWeapon", "be", "1=1");
register_event("DeathMsg", "m_Halal", "a");
}
new const c_Fegyverek[MAX][] =
{
{ "Adidas AK47" },
{ "Barcelone AK47" },
{ "Black AK47" },
{ "Blooded AK47" },
{ "Blue AK47" },
{ "Carboned AK47" },
{ "Collect AK47" },
{ "Color AK47" },
{ "Curzon AK47" },
{ "Galaxy AK47" },
{ "Acho M4A1" },
{ "Black M4A1" },
{ "Cool M4A1" },
{ "Crome M4A1" },
{ "Desert M4A1" },
{ "Dragon M4A1" },
{ "Fain M4A1" },
{ "Fotote M4A1" },
{ "Future M4A1" },
{ "Galaxy M4A1" },
{ "Átlátszó Deagle" },
{ "Battle Deagle" },
{ "Black Deagle" },
{ "Colt Deagle" },
{ "Dragon Deagle" },
{ "Egyed Deagle" },
{ "Famosas Deagle" },
{ "Fantazi Deagle" },
{ "Galaxy Deagle" },
{ "Gold Deagle" },
{ "Amerika AWP" },
{ "Arany AWP" },
{ "Camon AWP" },
{ "Galaxy AWP" },
{ "Gyik AWP" },
{ "Ice AWP" },
{ "Joker AWP" },
{ "Katona AWP" },
{ "Laser AWP" },
{ "Monster AWP" },
{ "Adidas Kés" },
{ "Atom Kés" },
{ "Black Kés" },
{ "Botkés" },
{ "Color Kés" },
{ "Dragon Kés" },
{ "Gold Kés" },
{ "Jungel Kés" },
{ "Megatron Kés" },
{ "Natural Kés" },
{ "+1 kés" }
};
new const m_AK47[][] =
{
"models/exodus_skinmenu/Ak47/Adidas.mdl",
"models/exodus_skinmenu/Ak47/Barcelone.mdl",
"models/exodus_skinmenu/Ak47/Black.mdl",
"models/exodus_skinmenu/Ak47/Blooded.mdl",
"models/exodus_skinmenu/Ak47/Blue.mdl",
"models/exodus_skinmenu/Ak47/Carboned.mdl",
"models/exodus_skinmenu/Ak47/Collect.mdl",
"models/exodus_skinmenu/Ak47/Collor.mdl",
"models/exodus_skinmenu/Ak47/Curzon.mdl",
"models/exodus_skinmenu/Ak47/Galaxy.mdl"
};
new const m_M4A1[][] =
{
"models/exodus_skinmenu/M4a1/Acho.mdl",
"models/exodus_skinmenu/M4a1/Black.mdl",
"models/exodus_skinmenu/M4a1/Cool.mdl",
"models/exodus_skinmenu/M4a1/Crome.mdl",
"models/exodus_skinmenu/M4a1/Desert.mdl",
"models/exodus_skinmenu/M4a1/Dragon.mdl",
"models/exodus_skinmenu/M4a1/Fain.mdl",
"models/exodus_skinmenu/M4a1/Fotote.mdl",
"models/exodus_skinmenu/M4a1/Future.mdl",
"models/exodus_skinmenu/M4a1/Galaxy.mdl"
};
new const m_DEAGLE[][] =
{
"models/exodus_skinmenu/Deagle/Atlatszo.mdl",
"models/exodus_skinmenu/Deagle/Batle.mdl",
"models/exodus_skinmenu/Deagle/Black.mdl",
"models/exodus_skinmenu/Deagle/Colt.mdl",
"models/exodus_skinmenu/Deagle/Dragon.mdl",
"models/exodus_skinmenu/Deagle/Egyed.mdl",
"models/exodus_skinmenu/Deagle/Famosas.mdl",
"models/exodus_skinmenu/Deagle/Fantazi.mdl",
"models/exodus_skinmenu/Deagle/Galaxy.mdl",
"models/exodus_skinmenu/Deagle/Gold.mdl"
};
new const m_AWP[][] =
{
"models/exodus_skinmenu/awp/Amerika.mdl",
"models/exodus_skinmenu/awp/Arany.mdl",
"models/exodus_skinmenu/awp/Camon.mdl",
"models/exodus_skinmenu/awp/Galaxy.mdl",
"models/exodus_skinmenu/awp/Gyik.mdl",
"models/exodus_skinmenu/awp/Ice.mdl",
"models/exodus_skinmenu/awp/Joker.mdl",
"models/exodus_skinmenu/awp/Katona.mdl",
"models/exodus_skinmenu/awp/Laser.mdl",
"models/exodus_skinmenu/awp/Monster.mdl"
};
new const m_KNIFE[][] =
{
"models/exodus_skinmenu/knife/Adidas.mdl",
"models/exodus_skinmenu/knife/Atom.mdl",
"models/exodus_skinmenu/knife/Black.mdl",
"models/exodus_skinmenu/knife/Bot.mdl",
"models/exodus_skinmenu/knife/Color.mdl",
"models/exodus_skinmenu/knife/Dragon.mdl",
"models/exodus_skinmenu/knife/Gold.mdl",
"models/exodus_skinmenu/knife/Jungel.mdl",
"models/exodus_skinmenu/knife/Megatron.mdl",
"models/exodus_skinmenu/knife/Natural.mdl",
"models/exodus_skinmenu/knife/+1kes.mdl"
};
public m_Addolas(id)
{
if(get_user_flags(id) & ADMIN)
{
for(new i;i < MAX; i++)
t_OSkin[i][id] += 1;
ColorChat(id, GREEN, "%s^1Megkaptál minden skint!", Chat_Prefix);
}
else
{
ColorChat(id, GREEN, "%s^1Nincs jogod ehhez a parancshoz", Chat_Prefix);
}
}
public m_Fomenu(id)
{
new cim[121];
format(cim, charsmax(cim), "[%s] \r~ \dFõmenü^n\dKövetkezõ Drop: [\r%d\d/%dÖlés]", Prefix, Oles[0][id], Drop[0][0]);
new menu = menu_create(cim, "h_Fomenu");
menu_additem(menu, "Felszerelések", "1", 0);
menu_additem(menu, "Beállitások", "2", 0);
format(cim, charsmax(cim), "Random Skin \d[\r%d\d/25Ölés]^n^n\d%s", Oles[1][id], Website);
menu_additem(menu, cim, "3", 0);
menu_display(id, menu, 0);
}
public h_Fomenu(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: m_Felszereles(id);
case 2: m_Skinbeallitas(id);
case 3:
{
if(Oles[1][id] >= 15)
{
m_RandomDrop(id);
}
else
{
ColorChat(id, GREEN, "%s^1Nincs meg a szükséges 15 ölésed", Chat_Prefix);
}
}
}
}
public m_Felszereles(id)
{
new String[121];
formatex(String, charsmax(String), "[%s] \r~ \dFelszerelés", Prefix);
new menu = menu_create(String, "h_Felszereles");
for(new i;i < sizeof(c_Fegyverek); i++)
{
if(t_OSkin[i][id] > 0)
{
new Sor[6]; num_to_str(i, Sor, 5);
formatex(String, charsmax(String), "%s \d[\r%d \dDB]", c_Fegyverek[i][0], t_OSkin[i][id]);
menu_additem(menu, String, Sor);
}
}
menu_display(id, menu, 0);
}
public h_Felszereles(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..9: t_Skin[0][id] = key;
case 10..19: t_Skin[1][id] = key-9;
case 20..29: t_Skin[2][id] = key-19;
case 30..39: t_Skin[3][id] = key-29;
case 40..49: t_Skin[4][id] = key-39;
}
}
public m_Halal()
{
new Gyilkos = read_data(1);
new Aldozat = read_data(2);
if(Gyilkos == Aldozat)
return PLUGIN_HANDLED;
for(new i;i < 2; i++)
Oles[i][Gyilkos] ++;
m_Halal_Ellenorzes(Gyilkos);
return PLUGIN_HANDLED;
}
public m_Halal_Ellenorzes(id)
{
new FegyverID = random_num(0, MAX)
if(Oles[0][id] >= Drop[0][0])
{
t_OSkin[FegyverID][id]++;
Oles[0][id] = 0;
ColorChat(id, GREEN, "%s^1Találtál egy ^4%s^1-t.", Chat_Prefix, c_Fegyverek[FegyverID]);
}
}
public m_Skinbeallitas(id)
{
new cim[121];
format(cim, charsmax(cim), "[%s] \r~ \dBeállítások", Prefix);
new menu = menu_create(cim, "Skinbeallitas_h");
menu_additem(menu, Beallitasok[id] == 1 ? "Skin: \rBekapcsolva \y| \wKikapcsolva":"Skin: \wBekapcsolva \y| \rKikapcsolva", "1",0);
menu_display(id, menu, 0);
}
public Skinbeallitas_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(Beallitasok[id] == 1)
{
Beallitasok[id] = 0;
}
else
{
Beallitasok[id] = 1;
}
m_Skinbeallitas(id);
}
}
}
public plugin_precache()
{
for(new i;i < sizeof(m_AK47); i++)
{
precache_model(m_AK47[i]);
}
for(new i;i < sizeof(m_M4A1); i++)
{
precache_model(m_M4A1[i]);
}
for(new i;i < sizeof(m_DEAGLE); i++)
{
precache_model(m_DEAGLE[i]);
}
for(new i;i < sizeof(m_AWP); i++)
{
precache_model(m_AWP[i]);
}
for(new i;i < sizeof(m_KNIFE); i++)
{
precache_model(m_KNIFE[i]);
}
}
public m_CurWeapon(id)
{
if(Beallitasok[id] == 0)
return;
new beallitasok = get_user_weapon(id);
for(new i;i < sizeof(m_AK47); i++)
{
if(t_Skin[0][id] == 1 + i && beallitasok == CSW_AK47)
{
set_pev(id, pev_viewmodel2, m_AK47[i]);
}
}
for(new i;i < sizeof(m_M4A1); i++)
{
if(t_Skin[1][id] == 1 + i && beallitasok == CSW_M4A1)
{
set_pev(id, pev_viewmodel2, m_M4A1[i]);
}
}
for(new i;i < sizeof(m_DEAGLE); i++)
{
if(t_Skin[2][id] == 1 + i && beallitasok == CSW_DEAGLE)
{
set_pev(id, pev_viewmodel2, m_DEAGLE[i]);
}
}
for(new i;i < sizeof(m_AWP); i++)
{
if(t_Skin[3][id] == 1 + i && beallitasok == CSW_AWP)
{
set_pev(id, pev_viewmodel2, m_AWP[i]);
}
}
for(new i;i < sizeof(m_KNIFE); i++)
{
if(t_Skin[4][id] == 1 + i && beallitasok == CSW_KNIFE)
{
set_pev(id, pev_viewmodel2, m_KNIFE[i]);
}
}
}
public m_RandomDrop(id)
{
new FegyverID = random_num(0, MAX)
t_OSkin[FegyverID][id]++;
Oles[1][id] -= 25;
ColorChat(id, GREEN, "%s^1Random Drop: ^4%s^1.", Chat_Prefix, c_Fegyverek[FegyverID]);
}
public client_disconnect(id)
{
if(!is_user_bot(id))
{
sql_update_user(id);
}
for(new i;i < 2; i++)
Oles[i][id] = 0;
for(new i;i < MAX; i++)
t_OSkin[i][id] = 0;
for(new i;i < 5; i++)
t_Skin[i][id] = 0;
copy(name[id], charsmax(name[]), "");
}
public client_putinserver(id)
{
if(!is_user_bot(id))
{
get_user_name(id, name[id], charsmax(name));
sql_load_user(id);
}
Beallitasok[id] = 1;
}
public sql_create_table()
{
g_SqlTuple = SQL_MakeDbTuple(SQLINFO[0], SQLINFO[1], SQLINFO[2], SQLINFO[3]);
static Query[10048];
new Len;
Len += formatex(Query[Len], charsmax(Query), "CREATE TABLE IF NOT EXISTS `skin_menu_1.0`");
Len += formatex(Query[Len], charsmax(Query)-Len, "(`Nev` varchar(32) NOT NULL, ");
for(new i;i < MAX; i++)
Len += formatex(Query[Len], charsmax(Query)-Len, "`IT_%d` int(11) NOT NULL,", i);
for(new i;i < 2; i++)
Len += formatex(Query[Len], charsmax(Query)-Len, "`Kill_%d` int(11) NOT NULL,", i);
for(new i;i < 5; i++)
Len += formatex(Query[Len], charsmax(Query)-Len, "`SK_%d` int(11) NOT NULL,", i);
Len += formatex(Query[Len], charsmax(Query)-Len, "`id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)");
SQL_ThreadQuery(g_SqlTuple, "createTableThread", Query);
}
public sql_load_user(id)
{
static Query[10048];
new Data[1];
Data[0] = id;
formatex(Query, charsmax(Query), "SELECT * FROM `skin_menu_1.0` WHERE Nev = ^"%s^";", name[id]);
SQL_ThreadQuery(g_SqlTuple, "QuerySelectData", Query, Data, 1);
}
public QuerySelectData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
{
if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
{
log_amx("%s", Error);
return;
}
else
{
new id = Data[0];
if(SQL_NumRows(Query) > 0)
{
for(new i;i < 2; i++)
{
new String[64];
formatex(String, charsmax(String), "Kill_%d", i);
Oles[i][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, String));
}
for(new i;i < MAX; i++)
{
new String[64];
formatex(String, charsmax(String), "IT_%d", i);
t_OSkin[i][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, String));
}
for(new i;i < 5; i++)
{
new String[64];
formatex(String, charsmax(String), "SK%d", i);
t_Skin[i][id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, String));
}
}
else
{
sql_save_user(id);
}
}
}
public sql_save_user(id)
{
static Query[256];
formatex(Query, charsmax(Query), "INSERT INTO `skin_menu_1.0` (`Nev`) VALUES (^"%s^");", name[id]);
SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
}
public sql_update_user(id)
{
static Query[10048];
new Len;
Len += formatex(Query[Len], charsmax(Query), "UPDATE `skin_menu_1.0` SET Kill_1 = ^"%i^", ",Oles[0][id]);
for(new i;i < MAX; i++)
Len += formatex(Query[Len], charsmax(Query)-Len, "IT_%d = ^"%i^", ", i, t_OSkin[i][id]);
for(new i;i < 5; i++)
Len += formatex(Query[Len], charsmax(Query)-Len, "SK_%d = ^"%i^", ", i, t_Skin[i][id]);
Len += formatex(Query[Len], charsmax(Query)-Len, "Kill_0 = ^"%i^" WHERE Nev = ^"%s^";", Oles[1][id], name[id]);
SQL_ThreadQuery(g_SqlTuple, "QuerySetData", Query);
}
public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
{
if(FailState == TQUERY_CONNECT_FAILED)
set_fail_state("[HIBA*] NEM TUDTAM CSATLAKOZNI AZ ADATBAZISHOZ!");
else if(FailState == TQUERY_QUERY_FAILED)
set_fail_state("Query Error");
if(Errcode)
log_amx("[HIBA*] HIBAT DOBTAM: %s",Error);
}
public QuerySetData(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
{
if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
{
log_amx("%s", Error);
return;
}
}
public plugin_end()
{
SQL_FreeHandle(g_SqlTuple);
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par }
*/