#include <amxmodx>
#include <fakemeta>
#include <nvault>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#define PLUGIN "Unlocker"
#define VERSION "1.0"
#define AUTHOR "DeRoiD"
new fegyver_ak47[33],fegyver_m4a1[33],fegyver_famas[33],fegyver_tmp[33],fegyver_awp[33],pont[33]
new fejloves, oles
new csapat_menu, kijelzo, spawn_elohoz
new ak47_ar,m4a1_ar, famas_ar, tmp_ar, awp_ar
new szerver_prefix[] = "[DeRoiD's Unlocker]"
new unlocker_vault, name[33][32]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /unlocker","unlockmenu")
register_clcmd("say_team /unlocker","unlockmenu")
register_event("DeathMsg","halal","a")
RegisterHam(Ham_Spawn, "player", "ujraeledes", 0)
unlocker_vault = nvault_open("UnlockerV1")
fejloves = register_cvar("oles_fejlovessel","3")
oles = register_cvar("oles_sima","2")
csapat_menu = register_cvar("csapat_menu","0") //Akiknek megjelenik a menu!0=Mindenki/1=CT/2=TE
kijelzo = register_cvar("kijelzo","1") //Ahol mutatja a pontokat !0=Menuben/1=HUD
spawn_elohoz = register_cvar("elohoz","1") // Ujraeledesnel mutassa a menut? 1=Igen / 0=Nem
tmp_ar = register_cvar("tmp_ara","0")
famas_ar = register_cvar("famas_ara","47")
ak47_ar = register_cvar("ak47_ara","89")
m4a1_ar = register_cvar("m4a1_ara","147")
awp_ar = register_cvar("awp_ara","302")
if(get_pcvar_num(kijelzo) == 1){
set_task(2.0, "kijelzo_hud", 0, _, _, "b")
}
}
public ujraeledes(id){
if(!is_user_alive(id)){
if(get_pcvar_num(spawn_elohoz) == 1){
unlockmenu(id)
}
else if(get_pcvar_num(spawn_elohoz) == 0){
client_print(id,print_chat,"")
}
}
}
public halal() {
new killer = read_data(1)
new victim = read_data(2)
new headshot = read_data(3)
if(killer == victim) {
return PLUGIN_HANDLED
}
if(headshot) {
pont[killer] += get_pcvar_num(fejloves)
client_print(killer,print_chat,"%s +%d Pont (Headshot)",szerver_prefix,get_pcvar_num(fejloves))
}
else
{
pont[killer] += get_pcvar_num(oles)
client_print(killer,print_chat,"%s +%d Pont",szerver_prefix,get_pcvar_num(oles))
}
return PLUGIN_HANDLED
}
public unlockmenu(id) {
new menu_cim[121],egy[121],ketto[121],harom[121],negy[121],ot[121]
if(get_pcvar_num(kijelzo) == 0){
format(menu_cim,charsmax(menu_cim),"\w%s \rUnlocker^n\yPont : \r%i",szerver_prefix,pont[id])
}
else
if(get_pcvar_num(kijelzo) == 1){
format(menu_cim,charsmax(menu_cim),"\w%s \rUnlocker^n",szerver_prefix)
}
format(egy,charsmax(egy),"\dTMP - Locked \y[\w%i \rPont\y]",get_pcvar_num(tmp_ar))
format(ketto,charsmax(ketto),"\dFAMAS - Locked \y[\w%i \rPont\y]",get_pcvar_num(famas_ar))
format(harom,charsmax(harom),"\dAK47 - Locked \y[\w%i \rPont\y]",get_pcvar_num(ak47_ar))
format(negy,charsmax(negy),"\dM4A1 - Locked \y[\w%i \rPont\y]",get_pcvar_num(m4a1_ar))
format(ot,charsmax(ot),"\dAWP - Locked \y[\w%i \rPont\y]",get_pcvar_num(awp_ar))
new menu = menu_create(menu_cim,"unlockmenu_handler")
if(fegyver_tmp[id] == 1) {
menu_additem(menu,"\rTMP \w- \yUnlocked","1",0)
}
else if(fegyver_tmp[id] == 0) {
menu_additem(menu,egy,"6",0)
}
if(fegyver_famas[id] == 1) {
menu_additem(menu,"\rFAMAS \w- \yUnlocked","2",0)
}
else if(fegyver_famas[id] == 0) {
menu_additem(menu,ketto,"7",0)
}
if(fegyver_ak47[id] == 1) {
menu_additem(menu,"\rAK47 \w- \yUnlocked","3",0)
}
else if(fegyver_ak47[id] == 0) {
menu_additem(menu,harom,"8",0)
}
if(fegyver_m4a1[id] == 1) {
menu_additem(menu,"\rM4A1 \w- \yUnlocked","4",0)
}
else if(fegyver_m4a1[id] == 0) {
menu_additem(menu,negy,"9",0)
}
if(fegyver_awp[id] == 1) {
menu_additem(menu,"\rAWP \w- \yUnlocked","5",0)
}
else if(fegyver_awp[id] == 0) {
menu_additem(menu,ot,"10",0)
}
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
if(get_pcvar_num(csapat_menu) == 0){
menu_display(id, menu, 0);
}
else if(cs_get_user_team(id) == CS_TEAM_CT && get_pcvar_num(csapat_menu) == 1){
menu_display(id, menu, 0);
}
else if(cs_get_user_team(id) == CS_TEAM_T && get_pcvar_num(csapat_menu) == 2){
menu_display(id, menu, 0);
}
}
public unlockmenu_handler(id,menu,item) {
if(item == MENU_EXIT) {
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[9], szName[64], szam1[33], szam2[33], szam3[33], szam4[33], szam5[33]
szam1[id] = get_pcvar_num(tmp_ar) - pont[id]
szam2[id] = get_pcvar_num(famas_ar) - pont[id]
szam3[id] = get_pcvar_num(ak47_ar) - pont[id]
szam4[id] = get_pcvar_num(m4a1_ar) - pont[id]
szam5[id] = get_pcvar_num(awp_ar) - pont[id]
new access, callback
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
new key = str_to_num(data)
switch(key)
{
// Ha mar unlockolva vannak a fegyverek
case 1:{
strip_user_weapons(id)
give_item(id, "weapon_tmp")
cs_set_user_bpammo(id, CSW_TMP, 120)
client_print(id,print_chat,"%s Sikeres valasztas!",szerver_prefix)
masodlagos(id)
}
case 2:{
strip_user_weapons(id)
give_item(id, "weapon_famas")
cs_set_user_bpammo(id, CSW_FAMAS, 90)
client_print(id,print_chat,"%s Sikeres valasztas!",szerver_prefix)
masodlagos(id)
}
case 3:{
strip_user_weapons(id)
give_item(id, "weapon_ak47")
cs_set_user_bpammo(id, CSW_AK47, 90)
client_print(id,print_chat,"%s Sikeres valasztas!",szerver_prefix)
masodlagos(id)
}
case 4:{
strip_user_weapons(id)
give_item(id, "weapon_m4a1")
cs_set_user_bpammo(id, CSW_M4A1, 90)
client_print(id,print_chat,"%s Sikeres valasztas!",szerver_prefix)
masodlagos(id)
}
case 5:{
strip_user_weapons(id)
give_item(id, "weapon_awp")
cs_set_user_bpammo(id, CSW_AWP, 30)
client_print(id,print_chat,"%s Sikeres valasztas!",szerver_prefix)
masodlagos(id)
}
// Ha nincs unlockolva!
case 6:{
if(pont[id] >= get_pcvar_num(tmp_ar)){
fegyver_tmp[id] = 1
pont[id] -= get_pcvar_num(tmp_ar)
client_print(id,print_chat,"%s Sikeres vasarlas!",szerver_prefix)
unlockmenu(id)
client_cmd(id, "spk ^"buttons/lightswitch2^"")
}
else
{
client_print(id,print_chat,"%s Nincs eleg pontod, kell meg %d!",szerver_prefix,szam1[id])
client_cmd(id, "spk ^"buttons/latchunlocked2^"")
}
}
case 7:{
if(pont[id] >= get_pcvar_num(famas_ar)){
fegyver_famas[id] = 1
pont[id] -= get_pcvar_num(famas_ar)
client_print(id,print_chat,"%s Sikeres vasarlas!",szerver_prefix)
unlockmenu(id)
client_cmd(id, "spk ^"buttons/lightswitch2^"")
}
else
{
client_print(id,print_chat,"%s Nincs eleg pontod, kell meg %d!",szerver_prefix,szam2[id])
client_cmd(id, "spk ^"buttons/latchunlocked2^"")
}
}
case 8:{
if(pont[id] >= get_pcvar_num(ak47_ar)){
fegyver_ak47[id] = 1
pont[id] -= get_pcvar_num(ak47_ar)
client_print(id,print_chat,"%s Sikeres vasarlas!",szerver_prefix)
unlockmenu(id)
client_cmd(id, "spk ^"buttons/lightswitch2^"")
}
else
{
client_print(id,print_chat,"%s Nincs eleg pontod, kell meg %d!",szerver_prefix,szam3[id])
client_cmd(id, "spk ^"buttons/latchunlocked2^"")
}
}
case 9:{
if(pont[id] >= get_pcvar_num(m4a1_ar)){
fegyver_m4a1[id] = 1
pont[id] -= get_pcvar_num(m4a1_ar)
client_print(id,print_chat,"%s Sikeres vasarlas!",szerver_prefix)
unlockmenu(id)
client_cmd(id, "spk ^"buttons/lightswitch2^"")
}
else
{
client_print(id,print_chat,"%s Nincs eleg pontod, kell meg %d!",szerver_prefix,szam4[id])
client_cmd(id, "spk ^"buttons/latchunlocked2^"")
}
}
case 10:{
if(pont[id] >= get_pcvar_num(awp_ar)){
fegyver_awp[id] = 1
pont[id] -= get_pcvar_num(awp_ar)
client_print(id,print_chat,"%s Sikeres vasarlas!",szerver_prefix)
unlockmenu(id)
client_cmd(id, "spk ^"buttons/lightswitch2^"")
}
else
{
client_print(id,print_chat,"%s Nincs eleg pontod, kell meg %d!",szerver_prefix,szam5[id])
client_cmd(id, "spk ^"buttons/latchunlocked2^"")
}
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public masodlagos(id) {
give_item(id, "weapon_knife")
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
}
public kijelzo_hud(){
new players[32], num, id
get_players(players, num)
for(new i; i < num; i++)
{
id = players[id]
set_hudmessage(255, 255, 255, -1.0, 0.0, 0, 6.0, 12.0)
show_hudmessage(id, "%s Pontjaid : %d",szerver_prefix, pont[id])
}
}
public client_disconnect(id)
{
mentes(id)
}
public client_connect(id)
{
get_user_name(id, name[id], 31)
betoltes(id)
}
public mentes(id)
{
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-PONTOK", name[id])
format(vaultdata,255,"%i#%i#%i#%i#%i#%i",pont[id], fegyver_tmp[id],
fegyver_famas[id], fegyver_ak47[id], fegyver_m4a1[id], fegyver_awp[id])
nvault_set(unlocker_vault,vaultkey,vaultdata)
return PLUGIN_CONTINUE
}
public betoltes(id)
{
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-PONTOK", name[id])
format(vaultdata,255,"%i#%i#%i#%i#%i#%i",pont[id], fegyver_tmp[id],
fegyver_famas[id], fegyver_ak47[id], fegyver_m4a1[id], fegyver_awp[id])
nvault_get(unlocker_vault,vaultkey,vaultdata,255)
replace_all(vaultdata, 255, "#", " ")
new a1[32], a2[32], a3[32], a4[32], a5[32], a6[32]
parse(vaultdata, a1, 31, a2, 31, a3, 31, a4, 31, a5, 31, a6, 31)
pont[id] = str_to_num(a1)
fegyver_tmp[id] = str_to_num(a2)
fegyver_famas[id] = str_to_num(a3)
fegyver_ak47[id] = str_to_num(a4)
fegyver_m4a1[id] = str_to_num(a5)
fegyver_awp[id] = str_to_num(a6)
return PLUGIN_CONTINUE;
}