#include <amxmodx>
#include <engine>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <hamsandwich>
#include <colorchat>
#include <sqlx>
#pragma tabsize 0
#define PLUGIN "USP Menu"
#define VERSION "1.0"
#define AUTHOR "DeRoiD"
new const PREFIX[] = ""
new const SQL_INFO[][] =
{
"", // HOST
"", // USERNAME
"", // PASSWORD
"" // DATABASE
}
new Handle:g_SqlTuple;
new name[33][32]
new pont[33], usp[33];
public plugin_precache()
{
precache_model("models/v_usp.mdl")
precache_model("models/Premium_usp/v_1.mdl")
precache_model("models/Premium_usp/v_2.mdl")
precache_model("models/Premium_usp/v_3.mdl")
precache_model("models/Premium_usp/v_4.mdl")
precache_model("models/Premium_usp/v_5.mdl")
precache_model("models/Premium_usp/v_6.mdl") //hozza irva
precache_model("models/Premium_usp/v_7.mdl")
precache_model("models/Premium_usp/v_8.mdl")
precache_model("models/Premium_usp/v_9.mdl")
precache_model("models/Premium_usp/v_10.mdl")
precache_model("models/Premium_usp/v_11.mdl")
precache_model("models/Premium_usp/v_12.mdl")
precache_model("models/Premium_usp/v_13.mdl")
}
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("DeathMsg","death","a");
register_clcmd("say /usp","menu");
register_clcmd("say_team /usp","menu");
register_clcmd("say /skin","menu"),
register_clcmd("say_team /skin","menu");
register_clcmd("say /menu","menu");
register_clcmd("say_team /menu","menu");
register_event("CurWeapon", "ecw", "be", "1=1");
set_task(120.0, "hirdetes", 0, "", 0, "b", 0);
}
public plugin_cfg()
{
new Query[512];
g_SqlTuple = SQL_MakeDbTuple(SQL_INFO[0],SQL_INFO[1],SQL_INFO[2],SQL_INFO[3])
formatex(Query, charsmax(Query), "CREATE TABLE IF NOT EXISTS `Usprendszer` (`username` varchar(32) NOT NULL,`pont` int(11) NOT NULL,`id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)")
SQL_ThreadQuery(g_SqlTuple,"createTableThread", Query)
}
public createTableThread(FailState, Handle:Query, Error[], Errcode, Data[], DataSize, Float:Queuetime)
{
if(FailState == TQUERY_CONNECT_FAILED)
set_fail_state("Nem tudtam csatlakozni az adatbazishoz.");
else if(FailState == TQUERY_QUERY_FAILED)
set_fail_state("Query Error");
if(Errcode)
log_amx("Hibat dobtam: %s",Error);
}
public client_putinserver(id)
{
if(!is_user_bot(id))
{
get_user_name(id, name[id], charsmax(name))
load(id)
}
}
public load(id)
{
new Query[512], Data[1]
Data[0] = id
formatex(Query, charsmax(Query), "SELECT * FROM `Usprendszer` WHERE username = ^"%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)
{
pont[id] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "pont"))
}
else
{
save(id)
}
}
}
public save(id)
{
new text[512];
formatex(text, charsmax(text), "INSERT INTO `Usprendszer` (`username`, `pont`) VALUES (^"%s^", ^"0^");", name[id])
SQL_ThreadQuery(g_SqlTuple, "QuerySetData", text)
}
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 update(id)
{
new text[512];
formatex(text, charsmax(text), "UPDATE `Usprendszer` SET pont = ^"%i^" WHERE username = ^"%s^";", pont[id], name[id])
SQL_ThreadQuery(g_SqlTuple, "QuerySetData", text)
}
public client_disconnect(id)
{
if(!is_user_bot(id))
{
update(id)
}
pont[id] = 0
copy(name[id], charsmax(name[]), "")
}
public plugin_end()
{
SQL_FreeHandle(g_SqlTuple)
}
public ecw(id)
{
new fegyver = get_user_weapon(id)
if(usp[id] == 0 && fegyver == CSW_USP)
{
set_pev(id, pev_viewmodel2, "models/v_usp.mdl")
}
if(usp[id] == 1 && fegyver == CSW_USP)
{
set_pev(id, pev_viewmodel2, "models/Premium_usp/v_1.mdl")
}
if(usp[id] == 2 && fegyver == CSW_USP)
{
set_pev(id, pev_viewmodel2, "models/Premium_usp/v_2.mdl")
}
if(usp[id] == 3 && fegyver == CSW_USP)
{
set_pev(id, pev_viewmodel2, "models/Premium_usp/v_3.mdl")
}
if(usp[id] == 4 && fegyver == CSW_USP)
{
set_pev(id, pev_viewmodel2, "models/Premium_usp/v_4.mdl")
}
if(usp[id] == 5 && fegyver == CSW_USP)
{
set_pev(id, pev_viewmodel2, "models/Premium_usp/v_5.mdl")
}
if(usp[id] == 6 && fegyver == CSW_USP)
{
set_pev(id, pev_viewmodel2, "models/Premium_usp/v_6.mdl") //innetol lett hozza adva
}
if(usp[id] == 7 && fegyver == CSW_USP)
{
set_pev(id, pev_viewmodel2, "models/Premium_usp/v_7.mdl")
}
if(usp[id] == 8 && fegyver == CSW_USP)
{
set_pev(id, pev_viewmodel2, "models/Premium_usp/v_8.mdl")
}
if(usp[id] == 9 && fegyver == CSW_USP)
{
set_pev(id, pev_viewmodel2, "models/Premium_usp/v_9.mdl")
}
if(usp[id] == 10 && fegyver == CSW_USP)
{
set_pev(id, pev_viewmodel2, "models/Premium_usp/v_10.mdl")
}
if(usp[id] == 11 && fegyver == CSW_USP)
{
set_pev(id, pev_viewmodel2, "models/Premium_usp/v_11.mdl")
}
if(usp[id] == 12 && fegyver == CSW_USP)
{
set_pev(id, pev_viewmodel2, "models/Premium_usp/v_12.mdl")
}
if(usp[id] == 13 && fegyver == CSW_USP)
{
set_pev(id, pev_viewmodel2, "models/Premium_usp/v_13.mdl")
}
}
public death()
{
new killer = read_data(1)
new victim = read_data(2)
if(killer == victim)
{
return PLUGIN_HANDLED
}
pont[killer]++
return PLUGIN_HANDLED
}
public menu(id)
{
new cim[121]
format(cim, charsmax(cim), "\r[%s] \wUSP Menü^n|\rPontszám\d[%d]", PREFIX, pont[id])
new menu = menu_create(cim, "menu_h" )
menu_additem(menu,"\rUSP \w[1] \r| \y[Megszerezve]","1",0)
if(pont[id] >= 10)
menu_additem(menu,"\rUSP \w[2] \r| \y[Megszerezve] ","2",0)
else
menu_additem(menu,"\dUSP \w[2] \w| \r[10 pont]-[Lezárva]","2",0)
if(pont[id] >= 30)
menu_additem(menu,"\rUSP \w[3] \r| \y[Megszerezve] \y","3",0)
else
menu_additem(menu,"\dUSP \w[3] \w| \r[30 pont]-[Lezárva]","3",0)
if(pont[id] >= 75)
menu_additem(menu,"\rUSP \w[4] \r| \y[Megszerezve] \y","4",0)
else
menu_additem(menu,"\dUSP \w[4] \w| \r[50 pont]-[Lezárva]","4",0)
if(pont[id] >= 100)
menu_additem(menu,"\rUSP \w[5] \r| \y[Megszerezve] ","5",0)
else
menu_additem(menu,"\dUSP \w[5] \w| \r[100 pont]-[Lezárva]","5",0)
if(pont[id] >= 300)
menu_additem(menu,"\rUSP \w[6] \r| \y[Megszerezve] ","5",0)
else
menu_additem(menu,"\dUSP \w[6] \w| \r[200 pont]-[Lezárva]","5",0)
if(pont[id] >= 500)
menu_additem(menu,"\rUSP \w[7] \r| \y[Megszerezve] ","5",0)
else
menu_additem(menu,"\dUSP \w[7] \w| \r[500 pont]-[Lezárva]","5",0) //innet lett hozza irva
if(pont[id] >= 700)
menu_additem(menu,"\rUSP \w[8] \r| \y[Megszerezve] ","6",0)
else
menu_additem(menu,"\dUSP \w[8] \w| \r[700 pont]-[Lezárva]","6",0)
if(pont[id] >= 900)
menu_additem(menu,"\rUSP \w[9] \r| \y[Megszerezve] ","7",0)
else
menu_additem(menu,"\dUSP \w[9] \w| \r[900 pont]-[Lezárva]","7",0)
if(pont[id] >= 1100)
menu_additem(menu,"\rUSP \w[10] \r| \y[Megszerezve] ","8",0)
else
menu_additem(menu,"\dUSP \w[10] \w| \r[1100 pont]-[Lezárva]","8",0)
if(pont[id] >= 1300)
menu_additem(menu,"\rUSP \w[11] \r| \y[Megszerezve] ","9",0)
else
menu_additem(menu,"\dUSP \w[11] \w| \r[1300 pont]-[Lezárva]","9",0)
if(pont[id] >= 1500)
menu_additem(menu,"\rUSP \w[12] \r| \y[Megszerezve] ","10",0)
else
menu_additem(menu,"\dUSP \w[12] \w| \r[1500 pont]-[Lezárva]","10",0)
if(pont[id] >= 1700)
menu_additem(menu,"\rUSP \w[12] \r| \y[Megszerezve] ","11",0)
else
menu_additem(menu,"\dUSP \w[12] \w| \r[1700 pont]-[Lezárva]","11",0)
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
}
public menu_h(id, menu, item)
{
if( item == MENU_EXIT )
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
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(pont[id] >= 0)
usp[id] = 0
else
ColorChat(id, GREEN, "[%s]-USP Menü » Ez alap USP, nem kell feloldanod!", PREFIX)
}
case 2:
{
if(pont[id] >= 10)
usp[id] = 1
else
ColorChat(id, RED, "^4[%s]-USP Menü » ^4*^3Túl kevés pontod van!^4*", PREFIX)
}
case 3:
{
if(pont[id] >= 30)
usp[id] = 2
else
ColorChat(id, RED, "^4[%s]-USP Menü » ^4*^3Túl kevés pontod van!^4*", PREFIX)
}
case 4:
{
if(pont[id] >= 75)
usp[id] = 3
else
ColorChat(id, RED, "^4[%s]-USP Menü » ^4*^3Túl kevés pontod van!^4*", PREFIX)
}
case 5:
{
if(pont[id] >= 100)
usp[id] = 4
else
ColorChat(id, RED, "^4[%s]-USP Menü » ^4*^3Túl kevés pontod van!^4*", PREFIX)
}
case 6:
{
if(pont[id] >= 300)
usp[id] = 5
else
ColorChat(id, RED, "^4[%s]-USP Menü » ^4*^3Túl kevés pontod van!^4*", PREFIX)
}
case 7:
{
if(pont[id] >= 500)
usp[id] = 6
else
ColorChat(id, RED, "^4[%s]-USP Menü » ^4*^3Túl kevés pontod van!^4*", PREFIX) //ezt itt hagytuk abba
}
case 8:
{
if(pont[id] >= 700)
usp[id] = 7
else
ColorChat(id, RED, "^4[%s]-USP Menü » ^4*^3Túl kevés pontod van!^4*", PREFIX)
}
case 9:
{
if(pont[id] >= 900)
usp[id] = 8
else
ColorChat(id, RED, "^4[%s]-USP Menü » ^4*^3Túl kevés pontod van!^4*", PREFIX)
}
case 10:
{
if(pont[id] >= 1100)
usp[id] = 9
else
ColorChat(id, RED, "^4[%s]-USP Menü » ^4*^3Túl kevés pontod van!^4*", PREFIX)
}
case 11:
{
if(pont[id] >= 1300)
usp[id] = 10
else
ColorChat(id, RED, "^4[%s]-USP Menü » ^4*^3Túl kevés pontod van!^4*", PREFIX)
}
case 12:
{
if(pont[id] >= 1500)
usp[id] = 11
else
ColorChat(id, RED, "^4[%s]-USP Menü » ^4*^3Túl kevés pontod van!^4*", PREFIX)
}
case 13:
{
if(pont[id] >= 1700)
usp[id] = 12
else
ColorChat(id, RED, "^4[%s]-USP Menü » ^4*^3Túl kevés pontod van!^4*", PREFIX)
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public kijelzo()
{
new players[32], szam, id
get_players(players, szam)
for(new i; i<szam; i++)
{
id = players[id]
}
}
public hirdetes()
{
ColorChat(0, BLUE, "^4[%s]", PREFIX)
}