//*KÜLÖN KÖSZÖNET*//
//Alap plugin megírása: 6almasok
//HLMOD HUS Rangok: D3M0*~
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <fvault>
#define ADMINRANG ADMIN_KICK
new PLUGIN[] = "AWP Mód"
new VERSION[] = "1.0"
new AUTHOR[] = "KoKo"
new PREFIX[] = "AWP MÓD"
new awp[33]
new oles[33]
new switchbutton[33]
new ModelData[40][64], ModelNum, MaximumBtton
new message[192]
new nev[32]
new Temp[192]
static color[10]
new szint[33]
new File[] = "addons/amxmodx/configs/awp_mod_models.ini"
new szVaultName[] = "awp_mod_vault"
new need_kills[] = { 50, 100, 150, 200, 250, 300, 350, 400, 400, 500, 600, 700, 800 }
new fegyvernevek[13][] = { "Nincs","AWP | Raptor","AWP | Yellow Grid","AWP | American","AWP | Malaysia","AWP | Hope","AWP | Magma","AWP | Hawking","AWP | Green Line","AWP | Hyper Beast","AWP | Elf Ranger","AWP | Dragon Lore","AWP | Asiimov" }
new awp_menu_szoveg[][][] = {
{"AWP | Raptor \r[\yMEGSZEREZVE\r]", "\dAWP | Raptor \r[%i/%i \yÖlés\r]"},
{"AWP | Yellow Grid \r[\yMEGSZEREZVE\r]", "\dAWP | Yellow Grid \r[%i/%i \yÖlés\r]"},
{"AWP | American \r[\yMEGSZEREZVE\r]", "\dAWP | American \r[%i/%i \yÖlés\r]"},
{"AWP | Malaysia \r[\yMEGSZEREZVE\r]", "\dAWP | Malaysia \r[%i/%i \yÖlés\r]"},
{"AWP | Hope \r[\yMEGSZEREZVE\r]", "\dAWP | Hope \r[%i/%i \yÖlés\r]"},
{"AWP | Magma \r[\yMEGSZEREZVE\r]", "\dAWP | Magma \r[%i/%i \yÖlés\r]"},
{"AWP | Hawking \r[\yMEGSZEREZVE\r]", "\dAWP | Hawking \r[%i/%i \yÖlés\r]"},
{"AWP | Green Line \r[\yMEGSZEREZVE\r]", "\dAWP | Green Line \r[%i/%i \yÖlés\r]"},
{"AWP | Hyper Beast \r[\yMEGSZEREZVE\r]", "\dAWP | Hyper Beast \r[%i/%i \yÖlés\r]"},
{"AWP | Elf Ranger \r[\yMEGSZEREZVE\r]", "\dAWP | Elf Ranger \r[%i/%i \yÖlés\r]"},
{"AWP | Dragon Lore \r[\yMEGSZEREZVE\r]", "\dAWP | Dragon Lore \r[%i/%i \yÖlés\r]"},
{"AWP | Asiimov \r[\yMEGSZEREZVE\r]", "\dAWP | Asiimov \r[%i/%i \yÖlés\r]"}
}
new oles_szamok[12] = {
50,
100,
150,
200,
250,
300,
350,
400,
500,
600,
700,
800
}
new rangok[13][] = {
"Újonc",
"Lelkes",
"Tag",
"Beavatott",
"Tud valamit",
"Fanatikus",
"Senior Tag",
"Jómunkásember",
"Nagyúr",
"Félisten",
"Östag",
"Veterán",
"Őskövület"
}
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
//EVENT
register_event("CurWeapon", "fegyver_valtas", "be", "1=1")
register_event("DeathMsg","halal","a")
//CVAROK
register_cvar("hud_info", "1");
//PARANCSOK
register_clcmd("say /awp", "awp_menu")
register_clcmd("say_team /awp", "awp_menu")
register_clcmd("say", "sayhook")
register_clcmd("say_team", "tshook")
//EGYÉB
RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
set_task(60.0, "hirdetes", 0, "", 0, "b", 0)
set_task(0.5, "hud_informacio", 0, _, _, "b")
register_impulse(201, "awp_menu")
LoadModel();
}
public hirdetes()
{
ChatColor(0, "^4[%s] ^1A szerveren jelenleg ^3AWP Mód ^1fut. Menü elérése: ^3/awp", PREFIX)
}
public player_spawn(id)
{
strip_user_weapons(id);
give_item(id, "weapon_awp")
give_item(id, "weapon_knife")
give_item(id, "item_assaultsuit")
cs_set_user_money(id, 0, 0)
cs_set_user_bpammo(id, CSW_AWP, 30)
}
public halal()
{
new killer = read_data(1)
new victim = read_data(2)
if(killer != victim)
oles[killer]++
while(oles[killer] >= oles_szamok[szint[killer]])
{
szint[killer]++
}
}
public plugin_precache()
{
new Len, btton[196], Data[64], Letoltes[40][64];
MaximumBtton = file_size(File, 1);
for(new Num = 0; Num < MaximumBtton; Num++)
{
read_file(File, Num, btton, 196, Len);
parse(btton, Data, 63);
remove_quotes(btton);
if(btton[0] == ';')
{
continue;
}
remove_quotes(Data);
format(Letoltes[Num], 63, "%s", Data);
precache_model(Letoltes[Num]);
}
RegisterHam(Ham_Spawn,"func_buyzone","vasarlas_zona")
}
public vasarlas_zona(id)
{
return HAM_SUPERCEDE;
}
public LoadModel()
{
new Len, btton[196], Data[64];
MaximumBtton = file_size(File, 1);
for(new Num; Num < MaximumBtton; Num++)
{
ModelNum++;
read_file(File, Num, btton, 196, Len);
parse(btton, Data, 63);
remove_quotes(btton);
if(btton[0] == ';')
{
continue;
}
remove_quotes(Data);
format(ModelData[ModelNum], 63, "%s", Data);
}
}
public fegyver_valtas(id)
{
if(!is_user_alive(id) || !is_user_connected(id) || id < 1 || id > 32 || switchbutton[id] == 1)
return
new fegyver = get_user_weapon(id)
if(awp[id] == 1){
if(fegyver == CSW_AWP)set_pev(id, pev_viewmodel2, ModelData[1]) //AWP | Raptor
}
else if(awp[id] == 2){
if(fegyver == CSW_AWP)set_pev(id, pev_viewmodel2, ModelData[2]) //AWP | Yellow Grid
}
else if(awp[id] == 3){
if(fegyver == CSW_AWP)set_pev(id, pev_viewmodel2, ModelData[3]) //AWP | American
}
else if(awp[id] == 4){
if(fegyver == CSW_AWP)set_pev(id, pev_viewmodel2, ModelData[4]) //AWP | Malaysia
}
else if(awp[id] == 5){
if(fegyver == CSW_AWP)set_pev(id, pev_viewmodel2, ModelData[5]) //AWP | Hope
}
else if(awp[id] == 6){
if(fegyver == CSW_AWP)set_pev(id, pev_viewmodel2, ModelData[6]) //AWP | Magma
}
else if(awp[id] == 7){
if(fegyver == CSW_AWP)set_pev(id, pev_viewmodel2, ModelData[7]) //AWP | Hawking
}
else if(awp[id] == 8){
if(fegyver == CSW_AWP)set_pev(id, pev_viewmodel2, ModelData[8]) //AWP | Green Line
}
else if(awp[id] == 9){
if(fegyver == CSW_AWP)set_pev(id, pev_viewmodel2, ModelData[9]) //AWP | Hyper Beast
}
else if(awp[id] == 10){
if(fegyver == CSW_AWP)set_pev(id, pev_viewmodel2, ModelData[10]) //AWP | Elf Ranger
}
else if(awp[id] == 11){
if(fegyver == CSW_AWP)set_pev(id, pev_viewmodel2, ModelData[11]) //AWP | Dragon Lore
}
else if(awp[id] == 12){
if(fegyver == CSW_AWP)set_pev(id, pev_viewmodel2, ModelData[12]) //AWP | Asiimov
}
}
public awp_menu(id)
{
new String[96]
format(String, charsmax(String), "\rA\yW\wP \d| \wFegyver Skinek^n\wRang: \y%s \d| \wÖlések: \y%d^n\w", rangok[szint[id]], oles[id])
new menu = menu_create(String, "awp_menu_handler" )
format(String, charsmax(String), oles[id] >= need_kills[0] ? (awp_menu_szoveg[0][0]):(awp_menu_szoveg[0][1]), oles[id], need_kills[0]);
menu_additem(menu, String, "0" );
formatex(String, charsmax(String), oles[id] >= need_kills[1] ? (awp_menu_szoveg[1][0]):(awp_menu_szoveg[1][1]), oles[id], need_kills[1]);
menu_additem(menu, String, "1");
formatex(String, charsmax(String), oles[id] >= need_kills[2] ? (awp_menu_szoveg[2][0]):(awp_menu_szoveg[2][1]), oles[id], need_kills[2]);
menu_additem(menu, String, "2");
format(String, charsmax(String), oles[id] >= need_kills[3] ? (awp_menu_szoveg[3][0]):(awp_menu_szoveg[3][1]), oles[id], need_kills[3]);
menu_additem(menu, String, "3");
formatex(String, charsmax(String), oles[id] >= need_kills[4] ? (awp_menu_szoveg[4][0]):(awp_menu_szoveg[4][1]), oles[id], need_kills[4]);
menu_additem(menu, String, "4");
format(String, charsmax(String), oles[id] >= need_kills[5] ? (awp_menu_szoveg[5][0]):(awp_menu_szoveg[5][1]), oles[id], need_kills[5]);
menu_additem(menu, String, "5" );
format(String, charsmax(String), oles[id] >= need_kills[6] ? (awp_menu_szoveg[6][0]):(awp_menu_szoveg[6][1]), oles[id], need_kills[6]);
menu_additem(menu, String, "6" );
format(String, charsmax(String), oles[id] >= need_kills[7] ? (awp_menu_szoveg[7][0]):(awp_menu_szoveg[7][1]), oles[id], need_kills[7]);
menu_additem(menu, String, "7" );
format(String, charsmax(String), oles[id] >= need_kills[8] ? (awp_menu_szoveg[8][0]):(awp_menu_szoveg[8][1]), oles[id], need_kills[8]);
menu_additem(menu, String, "8" );
format(String, charsmax(String), oles[id] >= need_kills[9] ? (awp_menu_szoveg[9][0]):(awp_menu_szoveg[9][1]), oles[id], need_kills[9]);
menu_additem(menu, String, "9" );
format(String, charsmax(String), oles[id] >= need_kills[10] ? (awp_menu_szoveg[10][0]):(awp_menu_szoveg[10][1]), oles[id], need_kills[10]);
menu_additem(menu, String, "10" );
format(String, charsmax(String), oles[id] >= need_kills[11] ? (awp_menu_szoveg[11][0]):(awp_menu_szoveg[11][1]), oles[id], need_kills[11]);
menu_additem(menu, String, "11" );
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_setprop(menu, MPROP_BACKNAME, "Vissza");
menu_setprop(menu, MPROP_NEXTNAME, "Tovább");
menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
menu_display(id, menu, 0);
return PLUGIN_HANDLED;
}
public awp_menu_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
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(oles[id] >= need_kills[0])
{
awp[id] = 1
ChatColor(id, "^4[%s] ^1Sikeresen kiválasztottad az ^3AWP | Raptor^1-t!", PREFIX)
}
else
{
ChatColor(id, "^4[%s] ^1Sajnálom, nincs elegendő ölésed az ^3AWP | Raptor ^1kiválasztásához!", PREFIX)
}
}
case 1:
{
if(oles[id] >= need_kills[1])
{
awp[id] = 2
ChatColor(id, "^4[%s] ^1Sikeresen kiválasztottad az ^3AWP | Yellow Grid^1-et!", PREFIX)
}
else
{
ChatColor(id, "^4[%s] ^1Sajnálom, nincs elegendő ölésed az ^3AWP | Yellow Grid ^1kiválasztásához!", PREFIX)
}
}
case 2:
{
if(oles[id] >= need_kills[3])
{
awp[id] = 3
ChatColor(id, "^4[%s] ^1Sikeresen kiválasztottad az ^3AWP | American^1-t!", PREFIX)
}
else
{
ChatColor(id, "^4[%s] ^1Sajnálom, nincs elegendő ölésed az ^3AWP | American ^1kiválasztásához!", PREFIX)
}
}
case 3:
{
if(oles[id] >= need_kills[4])
{
awp[id] = 4
ChatColor(id, "^4[%s] ^1Sikeresen kiválasztottad az ^3AWP | Malaysia^1-t!", PREFIX)
}
else
{
ChatColor(id, "^4[%s] ^1Sajnálom, nincs elegendő ölésed az ^3AWP | Malaysia ^1kiválasztásához!", PREFIX)
}
}
case 4:
{
if(oles[id] >= need_kills[5])
{
awp[id] = 5
ChatColor(id, "^4[%s] ^1Sikeresen kiválasztottad az ^3AWP | Hope^1-t!", PREFIX)
}
else
{
ChatColor(id, "^4[%s] ^1Sajnálom, nincs elegendő ölésed az ^3AWP | Hope ^1kiválasztásához!", PREFIX)
}
}
case 5:
{
if(oles[id] >= need_kills[6])
{
awp[id] = 6
ChatColor(id, "^4[%s] ^1Sikeresen kiválasztottad az ^3AWP | Magma^1-t!", PREFIX)
}
else
{
ChatColor(id, "^4[%s] ^1Sajnálom, nincs elegendő ölésed az ^3AWP | Magma ^1kiválasztásához!", PREFIX)
}
}
case 6:
{
if(oles[id] >= need_kills[7])
{
awp[id] = 7
ChatColor(id, "^4[%s] ^1Sikeresen kiválasztottad az ^3AWP | Hawking^1-t!", PREFIX)
}
else
{
ChatColor(id, "^4[%s] ^1Sajnálom, nincs elegendő ölésed az ^3AWP | Hawking ^1kiválasztásához!", PREFIX)
}
}
case 7:
{
if(oles[id] >= need_kills[8])
{
awp[id] = 8
ChatColor(id, "^4[%s] ^1Sikeresen kiválasztottad az ^3AWP | Green Line^1-t!", PREFIX)
}
else
{
ChatColor(id, "^4[%s] ^1Sajnálom, nincs elegendő ölésed az ^3AWP | Green Line ^1kiválasztásához!", PREFIX)
}
}
case 8:
{
if(oles[id] >= need_kills[9])
{
awp[id] = 9
ChatColor(id, "^4[%s] ^1Sikeresen kiválasztottad az ^3AWP | Hyper Beast^1-ot!", PREFIX)
}
else
{
ChatColor(id, "^4[%s] ^1Sajnálom, nincs elegendő ölésed az ^3AWP | Hyper Beast ^1kiválasztásához!", PREFIX)
}
}
case 9:
{
if(oles[id] >= need_kills[10])
{
awp[id] = 10
ChatColor(id, "^4[%s] ^1Sikeresen kiválasztottad az ^3AWP | Elf Ranger^1-t!", PREFIX)
}
else
{
ChatColor(id, "^4[%s] ^1Sajnálom, nincs elegendő ölésed az ^3AWP | Elf Ranger ^1kiválasztásához!", PREFIX)
}
}
case 10:
{
if(oles[id] >= need_kills[11])
{
awp[id] = 11
ChatColor(id, "^4[%s] ^1Sikeresen kiválasztottad az ^3AWP | Dragon Lore^1-t!", PREFIX)
}
else
{
ChatColor(id, "^4[%s] ^1Sajnálom, nincs elegendő ölésed az ^3AWP | Dragon Lore ^1kiválasztásához!", PREFIX)
}
}
case 11:
{
if(oles[id] >= need_kills[12])
{
awp[id] = 12
ChatColor(id, "^4[%s] ^1Sikeresen kiválasztottad az ^3AWP | Asiimov^1-t!", PREFIX)
}
else
{
ChatColor(id, "^4[%s] ^1Sajnálom, nincs elegendő ölésed az ^3AWP | Asiimov ^1kiválasztásához!", PREFIX)
}
}
}
return PLUGIN_HANDLED;
}
public hud_informacio()
{
if(!get_cvar_num("hud_info"))
return PLUGIN_HANDLED;
static id
for(id = 1; id <= get_maxplayers(); id++)
{
if(is_user_alive(id))
{
set_hudmessage(0, 127, 255, 0.01, 0.20, 0, 6.0, 1.0)
show_hudmessage(id, "[Rang: %s]^n[Öléseid: %i]^n[Kiválasztott Fegyver: %s]", rangok[szint[id]], oles[id], fegyvernevek[awp[id]])
}
}
return PLUGIN_HANDLED;
}
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_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, "^x03*Halott* x04[%s] ^x03%s^x01: %s", rangok[szint[id]], nev, message)
}
if(get_user_flags(id) & ADMINRANG)
{
if(is_user_alive(id))
{
get_user_team(id, color, 9)
formatex(Temp, 191, "^x04[ADMIN] [%s] ^x03%s^x04: %s", rangok[szint[id]], nev, message)
}
else
{
get_user_team(id, color, 9)
formatex(Temp, 191, "^x03*Halott* ^x04[ADMIN] [%s] ^x03%s^x04: %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_alive(id))
{
get_user_team(id, color, 9)
formatex(Temp, 191, "^x04(%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)
}
if(get_user_flags(id) & ADMINRANG)
{
if(is_user_alive(id))
{
get_user_team(id, color, 9)
formatex(Temp, 191, "^x04(%s) ^x04[ADMIN] [%s] ^x03%s^x04: %s",playerTeamName, rangok[szint[id]], nev, message)
}
else
{
get_user_team(id, color, 9)
formatex(Temp, 191, "^x01*Halott* ^x04[ADMIN] ^x03(%s) ^x04[%s] ^x03%s^x04: %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()
}
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, "c");
for(new i; i < pnum; i++)
{
message_begin(MSG_ONE, IdMsg, .player = players[i]);
write_byte(players[i]);
write_string(szMsg);
message_end();
}
}
public client_disconnect(id)
{
if(is_user_bot(id)) return;
save(id);
}
public client_putinserver( id )
{
if(is_user_bot(id)) return;
oles[id] = 0;
awp[id] = 0;
switchbutton[id] = 0;
szint[id] = 0;
load(id);
}
load(id) {
new szAuthid[32], szData[32];
get_user_name( id, szAuthid, charsmax(szAuthid));
new s1[16],s2[16],s3[16],s4[16]
fvault_get_data( szVaultName, szAuthid, szData, 31 );
parse( szData, s1, 15, s2, 15 , s3, 15, s4, 15 );
oles[id] = str_to_num(s1);
awp[id] = str_to_num(s2);
switchbutton[id] = str_to_num(s3);
szint[id] = str_to_num(s4);
}
save(id) {
new szAuthid[ 32 ], szData[ 32 ];
get_user_name( id, szAuthid, charsmax(szAuthid));
formatex( szData, 31, "%i %i %i %i", oles[id], awp[id], switchbutton[id], szint[id]);
fvault_set_data( szVaultName, szAuthid, szData );
}