#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <nvault>
#define PLUGIN "Kes olesert"
#define VERSION "1.0"
#define AUTHOR "mforce"
new const PREFIX[] = "Információ";
new pont[33], kes[33], vault;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("DeathMsg","death","a")
RegisterHam(Ham_Item_Deploy, "weapon_knife", "OnItemDeployPost", 1)
register_clcmd("say /menu","fomenu")
vault = nvault_open("kesszar")
register_forward(FM_CmdStart, "behozo")
register_clcmd("pont_adas", "adas")
}
public behozo(id, uc_handle, seed)
{
if(get_uc(uc_handle, UC_Impulse) == 201)
{
fomenu(id);
return FMRES_HANDLED
}
return FMRES_IGNORED
}
new const fegyverek[][] = {
"models/BS_XMAS/xmas_kes1.mdl",
"models/BS_XMAS/xmas_kes2.mdl",
"models/BS_XMAS/xmas_kes3.mdl",
"models/BS_XMAS/xmas_kes4.mdl",
"models/BS_XMAS/xmas_kes5.mdl",
"models/BS_XMAS/xmas_kes6.mdl"
};
public plugin_precache() {
for(new i; i<sizeof(fegyverek);i++) precache_model(fegyverek[i]);
}
public OnItemDeployPost(ent) {
static id; id = fm_cs_get_weapon_ent_owner(ent);
if (!pev_valid(id)) return;
switch(kes[id]) {
case 1: set_pev(id, pev_viewmodel2, fegyverek[0])
case 2: set_pev(id, pev_viewmodel2, fegyverek[1])
case 3: set_pev(id, pev_viewmodel2, fegyverek[2])
case 4: set_pev(id, pev_viewmodel2, fegyverek[3])
case 5: set_pev(id, pev_viewmodel2, fegyverek[4])
case 6: set_pev(id, pev_viewmodel2, fegyverek[5])
}
}
fm_cs_get_weapon_ent_owner(ent) {
if (pev_valid(ent) != 2) return -1;
return get_pdata_cbase(ent, 41, 4);
}
public death() {
new killer = read_data(1);
new victim = read_data(2);
if(killer != victim) {
pont[killer]++
}
}
public fomenu(id) {
new temp[128];
formatex(temp, charsmax(temp), "\r[BS] \yKarácsonyi Menü \w| \yPontjaid: \w%d", pont[id]);
new menu = menu_create(temp, "fomenu_h");
formatex(temp, charsmax(temp), "\yNyalóka %s", pont[id] >= 50 ? "\r[Elérhető]":"");
menu_additem(menu, temp, "0", 0)
formatex(temp, charsmax(temp), "\yFenyőfa %s", pont[id] >= 100 ? "\r[Elérhető]":"");
menu_additem(menu, temp, "1", 0)
formatex(temp, charsmax(temp), "\yKarácsonyi kés %s", pont[id] >= 200 ? "\r[Elérhető]":"");
menu_additem(menu, temp, "2", 0)
formatex(temp, charsmax(temp), "\yNyalóka kés %s", pont[id] >= 350 ? "\r[Elérhető]":"");
menu_additem(menu, temp, "3", 0)
formatex(temp, charsmax(temp), "\yJég kés %s", pont[id] >= 500 ? "\r[Elérhető]":"");
menu_additem(menu, temp, "4", 0)
formatex(temp, charsmax(temp), "\yXMAS kés %s", pont[id] >= 600 ? "\r[Elérhető]":"");
menu_additem(menu, temp, "5", 0)
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
menu_display(id, menu, 0)
}
public fomenu_h(id, menu, item) {
if( item == MENU_EXIT ) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
switch(item)
{
case 0: {
if(pont[id] >= 50) {
kes[id] = 1
ChatColor(id, "^4[%s]^1 Aktiváltad az első kést!", PREFIX)
}
else {
ChatColor(id, "^4[%s]^1 MĂ©g ^3%d ^1pontot kell szerezned!", PREFIX, 50-pont[id])
}
}
case 1: {
if(pont[id] >= 100) {
kes[id] = 2
ChatColor(id, "^4[%s]^1 Aktiváltad a második kést!", PREFIX)
}
else {
ChatColor(id, "^4[%s]^1 MĂ©g^3 %d ^1pontot kell szerezned!", PREFIX, 100-pont[id])
}
}
case 2: {
if(pont[id] >= 200) {
kes[id] = 3
ChatColor(id, "^4[%s]^1 Aktiváltad a harmadik kést!", PREFIX)
}
else {
ChatColor(id, "^4[%s]^1 MĂ©g^3 %d ^1pontot kell szerezned!", PREFIX, 200-pont[id])
}
}
case 3: {
if(pont[id] >= 350) {
kes[id] = 4
ChatColor(id, "^4[%s]^1 Aktiváltad a negyedik kést!", PREFIX)
}
else {
ChatColor(id, "^4[%s]^1 MĂ©g^3 %d ^1pontot kell szerezned!", PREFIX, 350-pont[id])
}
}
case 4: {
if(pont[id] >= 500) {
kes[id] = 5
ChatColor(id, "^4[%s]^1 Aktiváltad a ötödik kést!", PREFIX)
}
else {
ChatColor(id, "^4[%s]^1 MĂ©g^3 %d ^1pontot kell szerezned!", PREFIX, 500-pont[id])
}
}
case 5: {
if(pont[id] >= 600) {
kes[id] = 6
ChatColor(id, "^4[%s]^1 Aktiváltad a hatodik kést!", PREFIX)
}
else {
ChatColor(id, "^4[%s]^1 MĂ©g^3 %d ^1pontot kell szerezned!", PREFIX, 600-pont[id])
}
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public adas(id)
{
if (get_user_flags(id) & ADMIN_IMMUNITY)
{
new menu = menu_create("\r[BS] \wPont Adás \d[\y 100 pont\d ]", "menu_handler")
new players[32], pnum, tempid
new szName[32], szTempid[10]
get_players(players, pnum)
for( new i; i<pnum; i++ )
{
tempid = players[i];
get_user_name(tempid, szName, charsmax(szName))
num_to_str(tempid, szTempid, charsmax(szTempid))
menu_additem(menu, szName, szTempid, 0)
}
menu_display(id, menu, 0)
}
else
{
ChatColor(id, "^4[Információ]^1 Sajnálom, nincs jogod használni ezt a parancsot!")
}
}
public menu_handler(id, menu, item)
{
if( item == MENU_EXIT )
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new tempid = str_to_num(data);
if( is_user_alive(tempid) )
{
pont[tempid] += 100
}
client_cmd(id,"pont_adas")
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public client_disconnect(id) {
mentes(id)
pont[id] = 0;
kes[id] = 0;
}
public client_authorized(id) {
betoltes(id)
}
mentes(id) {
new vaultkey[32], vaultdata[256];
get_user_name(id, vaultkey, charsmax(vaultkey));
format(vaultdata, charsmax(vaultdata), "%i %i", pont[id], kes[id])
nvault_set(vault, vaultkey, vaultdata)
}
betoltes(id) {
new vaultkey[32], vaultdata[256];
get_user_name(id, vaultkey, charsmax(vaultkey));
if(nvault_get(vault, vaultkey, vaultdata, charsmax(vaultdata))) {
new pontok[8], kesvalaszto[8];
parse(vaultdata, pontok, charsmax(pontok), kesvalaszto, charsmax(kesvalaszto));
pont[id] = str_to_num(pontok);
kes[id] = str_to_num(kesvalaszto);
}
}
public plugin_end() {
nvault_close(vault);
}
stock ChatColor(const id, const szMessage[], any:...) {
static pnum, players[32], szMsg[190], IdMsg;
vformat(szMsg, charsmax(szMsg), szMessage, 3);
if(!IdMsg) IdMsg = get_user_msgid("SayText");
if(id) {
if(!is_user_connected(id)) return;
players[0] = id;
pnum = 1;
}
else get_players(players, pnum, "ch");
for(new i; i < pnum; i++) {
message_begin(MSG_ONE, IdMsg, .player = players[i]);
write_byte(players[i]);
write_string(szMsg);
message_end();
}
}