#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <hamsandwich>
#include <nvault>
#include <colorchat>
#define PLUGIN "Pontrendszer"
#define VERSION "1.0"
#define AUTHOR "crazy"
#define DROG_SEBESSEG 600.0
new message[192]
new nev[32]
new Temp[192]
static color[10]
new g_vault
new olesek[33]
new szint[33]
new pontok[33]
new name[33][32]
new killp, killhsp
new ajandek1, ajandek2, ajandek3
enum shopitems
{
KESEK,
USPK,
GRANATPACK,
SEBESSEG,
UJRAELEDES,
HOHP,
M4A1,
AK47
};
new cvar_bolt[shopitems]
new bool:activ_sebesseg[33]
new bool:activ_lathatatlan[33]
new bool:activ_onehit[33]
new bool:activ_halhatatlan[33]
#define MAX_SHOP_ITEM 9
#define ASD 13
//Ha az ASD értéke 15 akkor a szamoknal 15 szám a rangoknál 16 szöveg
new const szamok[ASD] = {
2,
4,
6,
10,
15,
20,
26,
33,
39,
47,
67,
79,
100
}
new const rangok[ASD+1][] = {
"Nokedli",
"Bot",
"Kezdő",
"HaladĂł",
"HĂłember",
"Ă–rult",
"LoL",
"Aimos",
"Mester",
"NagyMester",
"Predátor",
"LegenD",
"FĂ©lIsten",
"Isten"
}
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
killp = register_cvar("pont_kill", "4")
killhsp = register_cvar("pont_killhs", "8")
ajandek1 = register_cvar("pont_ajandek1", "5")
ajandek2 = register_cvar("pont_ajandek2", "10")
ajandek3 = register_cvar("pont_ajandek3", "30")
register_clcmd("say", "sayhook")
register_clcmd("say_team", "tshook")
register_clcmd("team_say /adas", "adas")
register_clcmd("say /adas", "adas")
register_clcmd("pont_adas", "adas")
register_clcmd("team_say /shop", "Shop")
register_clcmd("say /shop", "Shop")
register_clcmd("team_say /bolt", "Shop")
register_clcmd("say /bolt", "Shop")
cvar_bolt[KESEK] = register_cvar("bolt_1", "0")
cvar_bolt[USPK] = register_cvar("bolt_2", "0")
cvar_bolt[GRANATPACK] = register_cvar("bolt_3", "10")
cvar_bolt[SEBESSEG] = register_cvar("bolt_4", "5")
cvar_bolt[UJRAELEDES] = register_cvar("bolt_5", "10")
cvar_bolt[HOHP] = register_cvar("bolt_6", "15")
cvar_bolt[M4A1] = register_cvar("bolt_7", "15")
cvar_bolt[AK47] = register_cvar("bolt_8", "15")
g_vault = nvault_open("allin")
RegisterHam(Ham_Killed, "player", "fw_player_killed", 1)
RegisterHam(Ham_TakeDamage, "player", "fw_player_damage", 0)
RegisterHam(Ham_Spawn, "player", "fw_player_spawn", 0)
RegisterHam(Ham_Spawn, "player", "fw_player_spawn_post", 1)
register_event("CurWeapon", "Event_Change_Weapon", "be", "1=1")
register_event("DeathMsg", "halal", "a")
new itemszam = (_:shopitems)
if(MAX_SHOP_ITEM != itemszam)
{
set_fail_state("Valamit elrontottal. A shopitems tombben es a shop_item_names tombben nem ugyanannyi elem van")
}
}
public sayhook(id)
{
read_args (message, 191)
remove_quotes (message)
if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, ""))
{
return PLUGIN_CONTINUE
}
get_user_name(id, nev, 31)
if(is_user_admin(id))
{
if(is_user_alive(id)) {
get_user_team(id, color, 9)
formatex(Temp, 191, "^x04%s ^x03%s^x04: %s", rangok[szint[id]], nev, message)
}
else {
get_user_team(id, color, 9)
formatex(Temp, 191, "^x04*Halott* %s ^x03%s^x04: %s", rangok[szint[id]], nev, message)
}
}else{
if(is_user_alive(id)) {
get_user_team(id, color, 9)
formatex(Temp, 191, "^x04%s ^x03%s^x01: %s", rangok[szint[id]], nev, message)
}
else {
get_user_team(id, color, 9)
formatex(Temp, 191, "^x04*Halott* %s ^x03%s^x01: %s", rangok[szint[id]], nev, message)
}
}
sendmessage(color)
return PLUGIN_HANDLED
}
public tshook(id)
{
read_args (message, 191)
remove_quotes (message)
if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, ""))
{
return PLUGIN_CONTINUE
}
get_user_name(id, nev, 31)
new playerTeam = get_user_team(id)
new playerTeamName[19]
switch (playerTeam)
{
case 1: {
copy (playerTeamName, 11, "*Terrorista*")
}
case 2: {
copy (playerTeamName, 18, "*Anti-Terrorista*")
}
default:
copy (playerTeamName, 9, "*Néző*")
}
if(is_user_admin(id))
{
if(is_user_alive(id))
{
get_user_team(id, color, 9)
formatex(Temp, 191, "^x03(%s) ^x04%s ^x03%s^x04: %s",playerTeamName, rangok[szint[id]], nev, message)
}
else
{
get_user_team(id, color, 9)
formatex(Temp, 191, "^x04*Halott* ^x03(%s) ^x04%s ^x03%s^x04: %s",playerTeamName, rangok[szint[id]], nev, message)
}
}else{
if(is_user_alive(id))
{
get_user_team(id, color, 9)
formatex(Temp, 191, "^x03(%s) ^x04%s ^x03%s^x01: %s",playerTeamName, rangok[szint[id]], nev, message)
}
else
{
get_user_team(id, color, 9)
formatex(Temp, 191, "^x04*Halott* ^x03(%s) ^x04%s ^x03%s^x01: %s",playerTeamName, rangok[szint[id]], nev, message)
}
}
sendtmessage(color, playerTeam)
return PLUGIN_HANDLED
}
public sendmessage(color[])
{
new teamName[10]
for(new player = 1; player < get_maxplayers(); player++)
{
get_user_team (player, teamName, 9)
teamf (player, color)
elkuldes(player, Temp)
teamf(player, teamName)
}
}
public sendtmessage(color[], playerTeam)
{
new teamName[10]
for (new player = 1; player < get_maxplayers(); player++)
{
if(get_user_team(player) == playerTeam)
{
get_user_team (player, teamName, 9)
elkuldes(player, Temp)
teamf (player, teamName)
teamf (player, color)
}
}
}
public teamf(player, team[])
{
message_begin(MSG_ONE, get_user_msgid("TeamInfo"), _, player)
write_byte(player)
write_string(team)
message_end()
}
public elkuldes(player, Temp[])
{
message_begin( MSG_ONE, get_user_msgid( "SayText" ), _, player)
write_byte( player )
write_string( Temp )
message_end()
}
public fw_player_killed(victim, attacker, shouldgib)
{
if(!is_user_connected(attacker) || !is_user_connected(victim) || attacker == victim)
return PLUGIN_CONTINUE;
if(get_pdata_int(victim, 75) == HIT_HEAD)
{
pontok[attacker] += get_pcvar_num(killhsp)
}
else
{
pontok[attacker] += get_pcvar_num(killp)
}
return PLUGIN_CONTINUE
}
public fw_player_damage(victim, inflictor, attacker, Float:damage, damage_type)
{
if(activ_onehit[attacker])
{
SetHamParamFloat(4, float(get_user_health(victim)+1))
}
if(activ_halhatatlan[victim])
{
return HAM_SUPERCEDE
}
return HAM_IGNORED
}
public fw_player_spawn(id)
{
activ_halhatatlan[id] = false
activ_onehit[id] = false
activ_sebesseg[id] = false
}
public fw_player_spawn_post(id)
{
if(activ_lathatatlan[id])
{
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255)
activ_lathatatlan[id] = false
}
}
public Event_Change_Weapon(id)
{
if(activ_sebesseg[id])
{
set_user_maxspeed(id, DROG_SEBESSEG)
}
return PLUGIN_CONTINUE
}
public Shop(id)//IGEN EZ ITT A MENU
{
formatex(Item, charsmax(Item),"\r.:[R]3\w[L][O]\yAD]:. \rDeathrun Bolt:^n\ySzinted:\r%s \w| \yKell még:\r%d \w| \yPontjaid:\r%d",rangok[szint[id]],szamok[szint[id]]-olesek[id],pontok[id] )
new Menu = menu_create(Item, "Shoph")
menu_additem(menu, "\wElso Menupont", "1", 0);
menu_additem(menu, "\wElso Menupont", "2", 0);
menu_additem(menu, "\wElso Menupont", "3", 0);
menu_additem(menu, "\wElso Menupont", "4", 0);
menu_additem(menu, "\wElso Menupont", "5", 0);
menu_additem(menu, "\wElso Menupont", "6", 0);
}
menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, Menu)
return PLUGIN_HANDLED
}
public Shoph(id, menu, item)
{
if( item == MENU_EXIT )
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
new key = str_to_num(data)
new elo = is_user_alive(id)
new ar[_:shopitems+1]
for(new i=1; i<_:shopitems+1; i++)
{
ar[i] = get_pcvar_num(cvar_bolt[shopitems:(i-1)])
}
switch(key)
{
case 1:
{
if (pontok[id] >= ar[key] && elo)
{
pontok[id] -= ar[key]
give_item(id, "weapon_flashbang")
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_smokegrenade")
ColorChat(id, RED, ".:[R]3^1[L][O]^4AD]:. ^1Gratulálunk, Sikeresen megkaptad a ^4gránátokat!")
}
else
{
ColorChat(id, RED, ".:[R]3^1[L][O]^4AD]:. ^1Sajnos, nincs elég ^4pontod")
}
}
case 2:
{
if (pontok[id] >= ar[key] && elo)
{
pontok[id] -= ar[key]
set_user_maxspeed(id, DROG_SEBESSEG)
activ_sebesseg[id] = true
ColorChat(id, RED, ".:[R]3^1[L][O]^4AD]:. ^1A ^4sebességed ^1gyorsitva lett!")
}
else
{
ColorChat(id, RED, ".:[R]3^1[L][O]^4AD]:. ^1Sajnos, nincs elég ^4pontod")
}
}
case 3:
{
if (pontok[id] >= ar[key] && !elo)
{
pontok[id] -= ar[key]
ExecuteHamB(Ham_CS_RoundRespawn, id)
ColorChat(id, RED, ".:[R]3^1[L][O]^4AD]:. ^1Gratulálunk, Sikeresen ^4Újraéledtél!")
}
else if(elo)
{
ColorChat(id, RED, ".:[R]3^1[L][O]^4AD]:. ^4Elők ^1nem használhatják!")
}
else
{
ColorChat(id, RED, ".:[R]3^1[L][O]^4AD]:. ^1Sajnos, nincs elég ^4pontod")
}
}
case 4:
{
if (pontok[id] >= ar[key] && elo)
{
pontok[id] -= ar[key]
set_user_health(id, get_user_health(id)+25)
ColorChat(id, RED, ".:[R]3^1[L][O]^4AD]:. ^1Gratulálunk, Sikeresen megkaptad az ^4életet!")
}
else
{
ColorChat(id, RED, ".:[R]3^1[L][O]^4AD]:. ^1Sajnos, nincs elég ^4pontod")
}
}
case 5:
{
if (pontok[id] >= ar[key] && elo)
{
pontok[id] -= ar[key];
give_item(id, "weapon_m4a1");
cs_set_user_bpammo(id, CSW_M4A1, 30);
ColorChat(id, RED, ".:[R]3^1[L][O]^4AD]:. ^1Gratulálunk, Sikeresen megkaptad az ^4M4A1-t!")
}
else
{
ColorChat(id, RED, ".:[R]3^1[L][O]^4AD]:. ^1Sajnos, nincs elég ^4pontod")
}
}
case 6:
{
if (pontok[id] >= ar[key] && elo)
{
pontok[id] -= ar[key]
give_item(id, "weapon_ak47");
cs_set_user_bpammo(id, CSW_AK47, 30);
ColorChat(id, RED, ".:[R]3^1[L][O]^4AD]:. ^1Gratulálunk, Sikeresen megkaptad az ^4AK47-t!")
}
else
{
ColorChat(id, RED, ".:[R]3^1[L][O]^4AD]:. ^1Sajnos, nincs elég ^4pontod")
}
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public mentes(id)
{
new name[32]
get_user_name(id, name, 31)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-allin", name)
format(vaultdata,255,"%i#%i#%i",olesek[id],szint[id], pontok[id])
nvault_set(g_vault,vaultkey,vaultdata)
return PLUGIN_CONTINUE
}
public betoltes(id)
{
new name[32]
get_user_name(id, name, 31)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-allin", name)
format(vaultdata,255,"%i#%i#%i",olesek[id],szint[id], pontok[id])
nvault_get(g_vault,vaultkey,vaultdata,255)
replace_all(vaultdata, 255, "#", " ")
new oles[32], level[32], pt[32]
parse(vaultdata, oles, 31, level, 31, pt, 31)
olesek[id] = str_to_num(oles)
szint[id] = str_to_num(level)
pontok[id] = str_to_num(pt)
return PLUGIN_CONTINUE
}
public client_disconnect(id)
{
mentes(id);
remove_task(id);
pontok[id] = 0;
activ_sebesseg[id] = false
}
public client_connect(id)
{
get_user_name(id, name[id], 31)
betoltes(id);
set_task(300.0, "ajandek_1",id)
set_task(900.0, "ajandek_2",id)
set_task(1800.0, "ajandek_3",id)
}
public adas(id)
{
if (get_user_flags(id) & ADMIN_KICK)
{
new menu = menu_create("\r.:[R]3\w[L][O]\yAD]:. \wKinek akarsz pontot adni?", "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
{
ColorChat(id, RED, "Sajnos nincs jogod hasznalni 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) )
{
pontok[tempid] += 10
}
client_cmd(id,"pont_adas")
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public ajandek_1(id)
{
new penz = get_pcvar_num(ajandek1);
ColorChat(id, RED, ".:[R]3^1[L][O]^4AD]:. ^3%d ^4pont ^1jár, mert itt vagy mar 5 perce!", penz)
pontok[id] += penz;
}
public ajandek_2(id)
{
new penz = get_pcvar_num(ajandek2);
ColorChat(id, RED, ".:[R]3^1[L][O]^4AD]:. ^3%d ^4pont ^1jár, mert itt vagy mar 10 perce!", penz)
pontok[id] += penz;
}
public ajandek_3(id)
{
new penz = get_pcvar_num(ajandek3);
ColorChat(id, RED, ".:[R]3^1[L][O]^4AD]:. ^3%d ^4pont ^1jár, mert itt vagy mar 30 perce!", penz)
pontok[id] += penz;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par }
*/