Annyi a baj vele, hogy Team_say-ben nem írja normálisan+ nem /rank-ra megy valaki segíthetne igazán
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <nvault>
#define PLUGIN "joXxa.Hus Rangok"
#define VERSION "1.0"
#define AUTHOR "6lmasok es qKKKJ;>"
#define ACCESS_LEVEL ADMIN_CHAT
#define ADMIN_LISTEN ADMIN_CHAT
new message[192]
new g_vault
new olesek[33]
new szint[33]
new strName[191]
new strText[191]
new alive[11]
new sayText
new teamInfo
new maxPlayers
#define ASD 17
new const szamok[ASD] = {
20,
100,
200,
300,
500,
600,
750,
900,
1200,
1400,
1700,
2000,
2500,
3100,
3700,
4500,
5500
}
new const rangok[ASD+1][] = {
"Silver 1",
"Silver 2",
"Silver 3",
"Silver 4",
"Silver Elite",
"Silver Elite Mester",
"Nova 1",
"Nova 2",
"Nova 3",
"Nova Mester ",
"Kala",
"Kala 2",
"Dupla Kala",
"Seriff",
"Sas",
"Sas Mester",
"Supreme",
"Global Elite"
}
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /rang", "hud")
register_clcmd ("say", "hook_say")
register_clcmd ("say_team", "hook_teamsay")
register_event("DeathMsg", "halal", "a")
g_vault = nvault_open("namerang")
sayText = get_user_msgid ("SayText")
teamInfo = get_user_msgid ("TeamInfo")
maxPlayers = get_maxplayers()
set_task(180.0, "KorUzenet", 0, _, _, "b")
register_message (sayText, "avoid_duplicated")
}
public avoid_duplicated (msgId, msgDest, receiver)
{
return PLUGIN_HANDLED
}
public KorUzenet()
{
client_print(0, print_chat, "Ird be /rang hogy megnezd meg mennyi oles kell a kovetkezo prefixhez (by:[F]orce*)")
return PLUGIN_HANDLED;
}
public hud(id)
{
if(szint[id] != ASD+1)
{
client_print(id, print_chat, "Rangod: %s | Olesek: %d | Kell meg: %d",rangok[szint[id]], olesek[id],szamok[szint[id]]-olesek[id] )
}
else
{
client_print(id, print_chat, "Rangod: %s | Olesek: %d | Kell meg: 0",rangok[szint[id]], olesek[id])
}
}
public hook_say(id)
{
read_args (message, 191)
remove_quotes (message)
if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, "")) // Ignores Admin Hud Messages, Admin Slash commands,
return PLUGIN_CONTINUE
new name[32]
get_user_name (id, name, 31)
new isAlive
if (is_user_alive (id))
{
isAlive = 1
alive = ""
}
else
{
isAlive = 0
alive = "^1*HALOTT* "
}
static color[10]
if(get_user_flags(id)&ADMIN_CVAR)
{
get_user_team (id, color, 9)
format (strName, 191, "%s^4[TULAJ][%s] ^3%s:", alive, rangok[szint[id]], name)
format (strText, 191, "^4%s", message)
}
else if(get_user_flags(id)&ADMIN_MAP)
{
get_user_team (id, color, 9)
format (strName, 191, "%s^4[ADMIN][%s] ^3%s:", alive, rangok[szint[id]], name)
format (strText, 191, "^4%s", message)
}
else if(get_user_flags(id)&ADMIN_MENU)
{
get_user_team (id, color, 9)
format (strName, 191, "%s^4[VIP][%s] ^3%s:", alive, rangok[szint[id]], name)
format (strText, 191, "^4%s", message)
}
else if(get_user_flags(id)&ADMIN_USER)
{
get_user_team (id, color, 9)
format (strName, 191, "%s^4[%s] ^3%s:",alive, rangok[szint[id]], name)
format (strText, 191, "%s", message)
}
format (message, 191, "%s ^1%s", strName, strText)
sendMessage (color, isAlive)
return PLUGIN_CONTINUE
}
public hook_teamsay(id)
{
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, "Nezo")
}
read_args (message, 191)
remove_quotes (message)
if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, ""))
return PLUGIN_CONTINUE
new isAlive
if (is_user_alive (id))
{
isAlive = 1
alive = ""
}
else
{
isAlive = 0
alive = "^1*HALOTT* "
}
new name[32]
get_user_name (id, name, 31)
static color[10]
if(get_user_flags(id)&ADMIN_LEVEL_G)
{
get_user_team (id, color, 9)
format (strName, 191, "%s(%s)^4[TULAJ][%s] ^3%s:",alive , playerTeamName, rangok[szint[id]], name)
format (strText, 191, "^4%s", message)
}
else if(get_user_flags(id)&ADMIN_LEVEL_B)
{
get_user_team (id, color, 9)
format (strName, 191, "%s(%s)^4[ADMIN][%s] ^3%s:",alive , playerTeamName, rangok[szint[id]], name)
format (strText, 191, "^4%s", message)
}
else if(get_user_flags(id)&ADMIN_KICK)
{
get_user_team (id, color, 9)
format (strName, 191, "%s(%s)^4[VIP][%s] ^3%s:",alive , playerTeamName, rangok[szint[id]], name)
format (strText, 191, "^4%s", message)
}
else if(get_user_flags(id)&ADMIN_USER)
{
get_user_team (id, color, 9)
format (strName, 191, "%s(%s)^4[%s] ^3%s:",alive ,playerTeamName, rangok[szint[id]], name)
format (strText, 191, "%s", message)
}
format (message, 191, "%s ^1%s", strName, strText)
sendTeamMessage (color,isAlive, playerTeam)
return PLUGIN_CONTINUE
}
public sendMessage (color[], alive)
{
new teamName[10]
for (new player = 1; player < maxPlayers; player++)
{
if (!is_user_connected(player))
continue
if (alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_user_flags(player) & ADMIN_LISTEN)
{
get_user_team (player, teamName, 9)
changeTeamInfo (player, color)
writeMessage (player, message)
changeTeamInfo (player, teamName)
}
}
}
public sendTeamMessage (color[], alive, playerTeam)
{
new teamName[10]
for (new player = 1; player < maxPlayers; player++)
{
if (!is_user_connected(player))
continue
if (get_user_team(player) == playerTeam || get_user_flags(player) & ADMIN_LISTEN)
{
if (alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_user_flags(player) & ADMIN_LISTEN)
{
get_user_team (player, teamName, 9)
changeTeamInfo (player, color)
writeMessage (player, message)
changeTeamInfo (player, teamName)
}
}
}
}
public changeTeamInfo (player, team[])
{
message_begin (MSG_ONE, teamInfo, _, player)
write_byte (player)
write_string (team)
message_end()
}
public writeMessage (player, message[])
{
message_begin (MSG_ONE, sayText, {0, 0, 0}, player)
write_byte (player)
write_string (message)
message_end ()
}
stock bool:is_user_steam(id)
{
static dp_pointer;
if (dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
{
server_cmd("dp_clientinfo %d", id);
server_exec();
return (get_pcvar_num(dp_pointer) == 2) ? true : false;
}
return false;
}
public halal()
{
new killer = read_data(1)
new victim = read_data(2)
if(killer != victim)
olesek[killer]++
while(olesek[killer] >= szamok[szint[killer]])
{
szint[killer]++
}
}
public Mentes(id)
{
new name[32]
get_user_name(id, name, 31)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-rang", name)
format(vaultdata,255,"%i#%i#",olesek[id],szint[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-rang", name)
format(vaultdata,255,"%i#%i#",olesek[id],szint[id])
nvault_get(g_vault,vaultkey,vaultdata,255)
replace_all(vaultdata, 255, "#", " ")
new oles[32], level[32]
parse(vaultdata, oles, 31, level, 31)
olesek[id] = str_to_num(oles)
szint[id] = str_to_num(level)
return PLUGIN_CONTINUE
}
public client_disconnect(id)
{
Mentes(id)
}
public client_connect(id)
{
Betoltes(id)
}