/* Plugin generated by AMXX-Studio */
/*Usp menu fixelt verzio*/
#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#include <fakemeta>
#include <hamsandwich>
#define PLUGIN "USPMenu"
#define VERSION "2.0"
#define AUTHOR "---"
#define EzIttATulajdonosJogaK ADMIN_LEVEL_A //Tulajdonosnak a JOGA
new pont[33]
new usp[33]
new prefix[] = "USP"
new filename[128];
//--------------------------------------------------------------------------------------------------
public AddolasiTema(id)
{
if(get_user_flags(id) & EzIttATulajdonosJogaK) //Tulaj Joga
{
pont[id] += 350; //Annak adunk 350 Pontot aki beirja
ColorChat(id, GREEN, "AddoltálMagadnakTeeCsóóóóróóó"); //ezt írd át XD
}
}
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /usp", "uspmenu")
register_clcmd("chooseteam", "uspmenu")
register_clcmd("say /pont", "pontokchat")
register_clcmd("say /addolaslevel100", "AddolasiTema") //addolas chat | /addolaslevel100
register_event("CurWeapon", "fegyvervaltas", "be", "1=1")
register_event("DeathMsg", "halal", "a")
get_localinfo("amxx_configsdir", filename, charsmax(filename))
format(filename, charsmax(filename), "%s/uspmentes.ini", filename)
}
public halal(){
new killer = read_data(1)
new victim = read_data(2)
if(killer == victim)
{
return PLUGIN_HANDLED
}
pont[killer]++
return PLUGIN_HANDLED
}
public pontokchat(id)
{
ColorChat(id, GREEN, "USP^3»^1 Pontjaid száma:^3 %i", pont[id])
}
public uspmenu(id)
{
new cim[121]
new szCim[512]
formatex(cim, charsmax(cim), "\rUSP\w menü^n\rPontok:\w%i^n\rOldal:\w", pont[id])
new menu = menu_create(cim, "usp_handler");
menu_additem(menu, "\rAlap USP \y [1]\w [Megszerezve]", "1", 0);
if(pont[id] < 25)
{
formatex(szCim, charsmax(szCim), "\dUSP 2 \y(+1.2x DMG) \r [2] \y[%i/25 pont]", pont[id])
menu_additem(menu, szCim, "2",0)
}
else
menu_additem(menu, "\rUSP 2 \y(+1.2x DMG)\d [2]\w [Megszerezve]", "2",0)
if(pont[id] < 50)
{
formatex(szCim, charsmax(szCim), "\dUSP 3 \y(+1.4x DMG) \r [3] \y[%i/50 pont]", pont[id])
menu_additem(menu, szCim, "3",0)
}
else
menu_additem(menu, "\rUSP 3\y(+1.4x DMG)\d [3]\w [Megszerezve]", "3", 0);
if(pont[id] < 75)
{
formatex(szCim, charsmax(szCim), "\dUSP 4 \y(+1.5x DMG) \r [4] \y[%i/75 pont]", pont[id])
menu_additem(menu, szCim, "4",0)
}
else
menu_additem(menu, "\rUSP 4 \y(+1.5x DMG)\d [4]\w [Megszerezve]", "4",0)
if(pont[id] < 100)
{
formatex(szCim, charsmax(szCim), "\dUSP 5 \y(+1.6x DMG) \r [5] \y[%i/100 pont]", pont[id])
menu_additem(menu, szCim, "4",0)
}
else
menu_additem(menu, "\rUSP 5 \y(+1.6x DMG)\d [5]\w [Megszerezve]", "5", 0);
if(pont[id] < 150)
{
formatex(szCim, charsmax(szCim), "\dUSP 6\y(+1.8x DMG) \r [6] \y[%i/150 pont]", pont[id])
menu_additem(menu, szCim, "6",0)
}
else
menu_additem(menu, "\rUSP 6 \y(+1.8x DMG) \r [6]\w [Megszerezve]", "6",0)
if(pont[id] < 200)
{
formatex(szCim, charsmax(szCim), "\dUSP 7 \y(+2x DMG)\r[7] \y[%i/200 pont]", pont[id])
menu_additem(menu, szCim, "7",0)
}
else
menu_additem(menu, "\rUSP 7\y(+2x DMG)\d[7]\w [Megszerezve]", "7", 0);
if(pont[id] < 300)
{
formatex(szCim, charsmax(szCim), "\dUSP 8 \y(+2.4x DMG) \r[8] \y[%i/300 pont]", pont[id])
menu_additem(menu, szCim, "8",0)
}
else
menu_additem(menu, "\rUSP 8 \y(+2.4x DMG) \r[8]\w [Megszerezve]", "8", 0);
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_setprop(menu, MPROP_BACKNAME, "Előző");
menu_setprop(menu, MPROP_NEXTNAME, "Következő");
menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
menu_display(id, menu, 0);
return PLUGIN_HANDLED;
}
public usp_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_cancel(id);
return PLUGIN_HANDLED;
}
new command[6], name[64], access, callback;
menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
switch(item)
{
case 0:{
if(pont[id] >= 0)
{
usp[id] = 1
ColorChat(id, GREEN, "%s^3»^1 Sikeresen kiválasztottad a(z)^3 USP 1^1-et!", prefix)
}
else
{
ColorChat(id, GREEN, "%s^3»^1 A(z)^3 USP 2^1-ig hátravan még^3 %i^1 pont!", prefix, 0-pont[id])
}
}
case 1:{
if(pont[id] >= 25)
{
usp[id] = 2
ColorChat(id, GREEN, "%s^3»^1 Sikeresen kiválasztottad a(z)^3 USP 2^1-őt!", prefix)
}
else
{
ColorChat(id, GREEN, "%s^3»^1 A(z)^3 USP 2^1-ig hátravan még^3 %i^1 pont!", prefix, 25-pont[id])
}
}
case 2:{
if(pont[id] >= 50)
{
usp[id] = 3
ColorChat(id, GREEN, "%s^3»^1 Sikeresen kiválasztottad a(z)^3 USP 3^1-mat!", prefix)
}
else
{
ColorChat(id, GREEN, "%s^3»^1 A(z)^3 USP 3^1-ig hátravan még^3 %i^1 pont!", prefix, 50-pont[id])
}
}
case 3:{
if(pont[id] >= 75)
{
usp[id] = 4
ColorChat(id, GREEN, "%s^3»^1 Sikeresen kiválasztottad a(z)^3 USP 4^1-et!", prefix)
}
else
{
ColorChat(id, GREEN, "%s^3»^1 A(z)^3 USP 4^1-ig hátravan még^3 %i^1 pont!", prefix, 75-pont[id])
}
}
case 4:{
if(pont[id] >= 100)
{
usp[id] = 5
ColorChat(id, GREEN, "%s^3»^1 Sikeresen kiválasztottad a(z)^3 USP 5^1-öt!", prefix)
}
else
{
ColorChat(id, GREEN, "%s^3»^1 A(z)^3 USP 5^1-ig hátravan még^3 %i^1 pont!", prefix, 100-pont[id])
}
}
case 5:{
if(pont[id] >= 150)
{
usp[id] = 6
ColorChat(id, GREEN, "%s^3»^1 Sikeresen kiválasztottad a(z)^3 USP 6^1-ot!", prefix)
}
else
{
ColorChat(id, GREEN, "%s^3»^1 A(z)^3 USP 6^1-ig hátravan még^3 %i^1 pont!", prefix, 150-pont[id])
}
}
case 6:{
if(pont[id] >= 200)
{
usp[id] = 7
ColorChat(id, GREEN, "%s^3»^1 Sikeresen kiválasztottad a(z)^3 USP 7^1-et!", prefix)
}
else
{
ColorChat(id, GREEN, "%s^3»^1 A(z)^3 USP 7^1-ig hátravan még^3 %i^1 pont!", prefix, 200-pont[id])
}
}
case 7:{
if(pont[id] >= 300)
{
usp[id] = 8
ColorChat(id, GREEN, "%s^3»^1 Sikeresen kiválasztottad a(z)^3 USP 8^1-at!", prefix)
}
else
{
ColorChat(id, GREEN, "%s^3»^1 A(z)^3 USP 8^1-ig hátravan még %i pont!", prefix, 300-pont[id])
}
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public plugin_precache()
{
precache_model("models/uspmenu/v_usp_1.mdl")
precache_model("models/uspmenu/v_usp_2.mdl")
precache_model("models/uspmenu/v_usp_3.mdl")
precache_model("models/uspmenu/v_usp_4.mdl")
precache_model("models/uspmenu/v_usp_5.mdl")
precache_model("models/uspmenu/v_usp_6.mdl")
precache_model("models/uspmenu/v_usp_7.mdl")
precache_model("models/uspmenu/v_usp_8.mdl")
}
public fegyvervaltas(id , victim, inflictor, attacker, Float:damage )
{
new weapon = get_user_weapon(id)
if(is_user_alive(attacker) && is_user_alive(victim))
{
if(usp[id] == 1 && weapon == CSW_USP)
{
set_pev(id, pev_viewmodel2, "models/uspmenu/v_usp_1.mdl")
SetHamParamFloat(4, damage * 1.2)
}
if(usp[id] == 2 && weapon == CSW_USP)
{
set_pev(id, pev_viewmodel2, "models/uspmenu/v_usp_2.mdl")
SetHamParamFloat(4, damage * 1.4)
}
if(usp[id] == 3 && weapon == CSW_USP)
{
set_pev(id, pev_viewmodel2, "models/uspmenu/v_usp_3.mdl")
SetHamParamFloat(4, damage * 1.5)
}
if(usp[id] == 4 && weapon == CSW_USP)
{
set_pev(id, pev_viewmodel2, "models/uspmenu/v_usp_4.mdl")
SetHamParamFloat(4, damage * 1.6)
}
if(usp[id] == 5 && weapon == CSW_USP)
{
set_pev(id, pev_viewmodel2, "models/uspmenu/v_usp_5.mdl")
SetHamParamFloat(4, damage * 1.8)
}
if(usp[id] == 6 && weapon == CSW_USP)
{
set_pev(id, pev_viewmodel2, "models/uspmenu/v_usp_6.mdl")
SetHamParamFloat(4, damage * 2.0)
}
if(usp[id] == 7 && weapon == CSW_USP)
{
set_pev(id, pev_viewmodel2, "models/uspmenu/v_usp_7.mdl")
SetHamParamFloat(4, damage * 2.4)
}
if(usp[id] == 8 && weapon == CSW_USP)
{
set_pev(id, pev_viewmodel2, "models/uspmenu/v_usp_8.mdl")
SetHamParamFloat(4, damage * 2.8)
}
}
}
stock get_data(const key[], data[], len) {
new vault = fopen(filename, "rt");
new _data[512], _key[64];
while( !feof(vault) ) {
fgets(vault, _data, charsmax(_data));
parse(_data, _key, charsmax(_key), data, len);
if( equal(_key, key) ) {
fclose(vault);
return 1;
}
}
fclose(vault);
copy(data, len, "");
return 0;
}
stock set_data(const key[], const data[]) {
static const temp_vault_name[] = "set_data.txt";
new file = fopen(temp_vault_name, "wt");
new vault = fopen(filename, "rt");
new _data[512], _key[64], _other[32];
new bool:replaced = false;
while( !feof(vault) ) {
fgets(vault, _data, charsmax(_data));
parse(_data, _key, charsmax(_key), _other, charsmax(_other));
if( equal(_key, key) && !replaced ) {
fprintf(file, "^"%s^" ^"%s^"^n", key, data);
replaced = true;
}
else {
fputs(file, _data);
}
}
if( !replaced ) {
fprintf(file, "^"%s^" ^"%s^"^n", key, data);
}
fclose(file);
fclose(vault);
delete_file(filename);
while( !rename_file(temp_vault_name, filename, 1) ) { }
//delete_file(temp_vault_name);
}
public client_disconnect(id) {
if(!is_user_bot(id) && !is_user_hltv(id)) {
save(id);
}
}
public save(id) {
new szData[128];
new steamid[32]; get_user_authid(id, steamid, charsmax(steamid));
if(contain(steamid, "_ID_LAN") != -1) get_user_ip(id, steamid, charsmax(steamid), 1);
formatex(szData, charsmax(szData), "%i %i", usp[id], pont[id]);
set_data(steamid, szData)
}
public client_authorized(id) {
if(!is_user_bot(id) && !is_user_hltv(id)) {
load(id);
}
}
public load(id) {
new szData[128];
new steamid[32]; get_user_authid(id, steamid, charsmax(steamid));
if(contain(steamid, "_ID_LAN") != -1) get_user_ip(id, steamid, charsmax(steamid), 1);
if(get_data(steamid, szData, charsmax(szData))) {
new valami[32], valami2[32];
parse(szData, valami, charsmax(valami), valami2, charsmax(valami2));
usp[id] = str_to_num(valami)
pont[id] = str_to_num(valami2)
}
}