Заявки за rank system-и
- HuliganaKuncho
- Потребител
- Posts: 128
- Joined: 25 Aug 2012, 18:41
Заявки за rank system-и
Понеже никой модератор не се реши да отключи тази тема, създавам нова. Тук пускайте вашите заявки за rank system-и, ще се опитвам да ги изпълня възможно най-скоро. Нужно е да посочите максимално ясна информация, за да може заявката ви да бъде изпълнена.
- Invius
- V.I.P
- Posts: 433
- Joined: 01 May 2012, 14:26
- Discord username: illusion034
Re: Заявки за rank system-и
[NEW] - 0-25
[Soldier] - 25-50
[Kniffer] - 50-75
[Top Knifer] - 75-100
[Real Kniffer] - 100-150
[Pro Kniffer] - 150-200
[The Good Killer] - 200-250
[Striker] - 250-300
[God Of War] - 300-400
[Officer] - 400-500
[Danger Killer] - 500-600
[HNS Pro] - 600-700
[UNDEAD] - 700-800
[VIP] - 800-900
Ако може скобите [ ] да са в зелено, а ранговете new, soldier и.т.н да са според отбора.
[Soldier] - 25-50
[Kniffer] - 50-75
[Top Knifer] - 75-100
[Real Kniffer] - 100-150
[Pro Kniffer] - 150-200
[The Good Killer] - 200-250
[Striker] - 250-300
[God Of War] - 300-400
[Officer] - 400-500
[Danger Killer] - 500-600
[HNS Pro] - 600-700
[UNDEAD] - 700-800
[VIP] - 800-900
Ако може скобите [ ] да са в зелено, а ранговете new, soldier и.т.н да са според отбора.
- HuliganaKuncho
- Потребител
- Posts: 128
- Joined: 25 Aug 2012, 18:41
Re: Заявки за rank system-и
Code: Select all
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <chatcolor>
#include <fvault>
#define MaxLevels 13
#define IsPlayer(%1) (1 <= %1 <= g_iMaxPlayers)
new gMaxPlayers, gMsgSayText, syncObj, Level[33], eXP[33]
new ranks_hud, knife_xp, he_xp, hs_xp, kill_xp, kill_msg
new const g_vault_name[] = "levelsz";
new const Levels[MaxLevels] =
{
25,
50,
75,
100,
150,
200,
250,
300,
400,
500,
600,
700,
800
}
new const Prefix[MaxLevels +1][] =
{
"NEW",
"Soldier",
"Kniffer",
"Top Kniffer",
"Real Kniffer",
"Pro Kniffer",
"The Good Killer",
"Striker",
"God Of War",
"Officer",
"Danger Killer",
"HNS Pro",
"UNDEAD",
"VIP"
}
public plugin_init()
{
register_plugin("Ranks & XP mod", "1.0", "alt.nick")
register_event("DeathMsg","client_death","a")
register_clcmd("say", "hook_say")
register_clcmd("say_team", "hook_say")
register_clcmd("say /rank", "cmdRank")
register_clcmd("say_team /rank", "cmdRank")
register_clcmd("say /reset", "reset_xp")
register_clcmd("say_team /reset", "reset_xp")
ranks_hud = register_cvar("ranks_hud", "1") // Дали да се появява хъд при влизане в сървъра. Включено 1/0 Изключено
knife_xp = register_cvar("knife_xp", "1") // Колко ХР да дава за убийство с нож.
he_xp = register_cvar("he_xp", "1") // Колко ХР да дава за убийство с Granata (HE).
hs_xp = register_cvar("hs_xp", "1") // Колко ХР да дава за убийство с Headshot.
kill_xp = register_cvar("kill_xp", "1") // Колко ХР да дава за нормално убийство.
kill_msg = register_cvar("kill_msg", "1") // Дали да показва кой сте убили и колко ХР сте получили. Включено 1/0 Изключено
register_concmd ("amx_give_xp", "CmdAddXP", ADMIN_LEVEL_A, "<nick | ct | t | @all> <xp>")
gMaxPlayers = get_maxplayers()
gMsgSayText = get_user_msgid("SayText")
syncObj = CreateHudSyncObj()
fvault_load(g_vault_name)
}
public ShowHud(id)
{
set_hudmessage(142, 239, 39, -1.0, 0.01, 0, 6.0, 1.0, 0.0, 0.0, -1)
ShowSyncHudMsg(id, syncObj,"Rank: %s ^nXP: %i ^nLevel: %i", Prefix[Level[id]], eXP[id], Level[id])
}
public client_putinserver(id)
{
if(get_pcvar_num(ranks_hud) == 1)
set_task(1.0, "ShowHud", id, _, _, "b")
if(Level[id] < MaxLevels-1)
while(eXP[id] >= Levels[Level[id]])
Level[id] += 1
}
public client_death(killer, victim, weapon, hitgroup, TK)
{
if(killer == victim)
return PLUGIN_HANDLED
new Name[20]
get_user_name(victim, Name, 19)
new headshot = (hitgroup == HIT_HEAD) ? 1 : 0
if(get_user_team(killer) == 2 && killer != victim)
{
switch(weapon)
{
case CSW_HEGRENADE:
{
eXP[killer] += get_pcvar_num(he_xp)
CheckLevel(killer)
SaveData(killer)
if(get_pcvar_num(kill_msg) == 1)
client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 %d XP^1 poradi ubiistwoto s^4 HE^1 na ^3%s^1.", get_pcvar_num(he_xp), Name)
}
case CSW_KNIFE:
{
eXP[killer] += get_pcvar_num(knife_xp)
CheckLevel(killer)
SaveData(killer)
if(get_pcvar_num(kill_msg) == 1)
client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 %d XP^1 poradi ubiistwoto s^4 noj^1 na ^3%s^1.", get_pcvar_num(knife_xp) , Name)
}
}
if(headshot)
{
eXP[killer] += get_pcvar_num(hs_xp)
CheckLevel(killer)
SaveData(killer)
if(get_pcvar_num(kill_msg) == 1)
client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 2 XP^1 poradi ubiistwoto s^4 HS^1 na ^3%s^1.",get_pcvar_num(hs_xp), Name)
}
else
{
eXP[killer] += get_pcvar_num(kill_xp)
CheckLevel(killer)
SaveData(killer)
if(get_pcvar_num(kill_msg) == 1)
client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 1 XP^1 poradi ubiistwoto na ^3%s^1.", get_pcvar_num(kill_xp), Name)
}
}
CheckLevel(killer)
SaveData(killer)
return PLUGIN_CONTINUE
}
public CheckLevel(id)
{
if(Level[id] < MaxLevels-1)
while(eXP[id] >= Levels[Level[id]])
Level[id] += 1
}
public client_connect(id)
{
LoadData(id)
}
public client_disconnect(id)
{
SaveData(id)
eXP[id] = 0
Level[id] = 0
remove_task(id)
}
public reset_xp(id)
{
if(eXP[id] != 0)
{
Level[id] = 0
eXP[id] = 0
CheckLevel(id)
client_print_color(id, print_chat, "^4[Ranks]^1 Yspeshno nulirani washite^4 XP^1 i ^4Level^1.")
}
else
client_print_color(id, print_chat, "^4[Ranks]^1 Washite^4 XP^1 i ^4Level^1 weche sa nulirani.")
}
public cmdRank(id)
{
if(is_user_connected(id))
client_print_color(id, print_chat, "^4[Ranks]^1 Rank:^4 %s^1 | XP:^4 %d^1 | Level:^4 %d^1.", Prefix[Level[id]], eXP[id], Level[id])
}
public CmdAddXP (iPlayer, level, cid)
{
if(!cmd_access(iPlayer, level, cid, 3)) return PLUGIN_HANDLED;
new arg [32]
read_argv (1, arg, 31)
new AddXP [32]
read_argv (2, AddXP, charsmax (AddXP))
new XPtoGive = str_to_num (AddXP)
new AdminName [32]
new TargetName [32]
get_user_name (iPlayer, AdminName, charsmax (AdminName))
if(arg[0]=='@')
{
if(equali(arg[1],"All") || equali(arg[1],"ALL"))
{
new players[32], totalplayers, All
get_players(players, totalplayers)
for (new i = 0; i < totalplayers; i++)
{
All = players[i]
eXP[All] += XPtoGive
}
CheckLevel(All)
client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na vsichki ^3igrachi^1!", AdminName, XPtoGive)
}
else if(equali(arg[1],"T") || equali(arg[1],"t"))
{
new players[32], totalplayers, T
get_players(players, totalplayers)
for (new i = 0; i < totalplayers; i++)
{
if (get_user_team(players[i]) == 1)
{
T = players[i]
eXP[T] += XPtoGive
}
}
CheckLevel(T)
client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na vsichki ^3 Teroristi^1.", AdminName, XPtoGive)
}
else if(equali(arg[1],"CT") || equali(arg[1],"ct"))
{
new players[32], totalplayers, CT
get_players(players, totalplayers)
for(new i = 0; i < totalplayers; i++)
{
if(get_user_team(players[i]) == 2)
{
CT = players[i]
eXP[CT] += XPtoGive
}
}
CheckLevel(CT)
client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na wsichki ^3 Kontra-Teroristi^1!", AdminName, XPtoGive)
}
}
else
{
new iTarget = cmd_target(iPlayer, arg, 3)
get_user_name (iTarget, TargetName, charsmax (TargetName))
if(iTarget)
{
eXP[iTarget] += XPtoGive
CheckLevel(iTarget)
client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na^3 %s^1.", AdminName, XPtoGive, TargetName)
}
}
return PLUGIN_HANDLED
}
bool:IsValidMessage( szMessage[ ], iLen )
{
read_args( szMessage, iLen )
remove_quotes( szMessage )
new iPos, cChar
while( 0 <= ( cChar = szMessage[ iPos++ ] ) <= 255 )
{
if( cChar != ' ' && cChar != '%' )
{
return true
}
}
return false
}
public hook_say(id)
{
if(!is_user_connected(id))
return PLUGIN_HANDLED_MAIN
new szArgs[192]
if( !IsValidMessage(szArgs, charsmax(szArgs)))
return PLUGIN_HANDLED_MAIN
if(equal(szArgs,"")) return PLUGIN_HANDLED_MAIN
new szName[32]
get_user_name(id, szName, sizeof szName-1)
new alive = is_user_alive(id)
if(contain(szArgs,"@") >= 0)
return PLUGIN_HANDLED_MAIN
format(szArgs, 191, "^x04[^x03%s^x04] ^x03%s^x01 : %s", Prefix[Level[id]], szName, szArgs)
for(new i = 1; i <= gMaxPlayers; i++)
{
if(!is_user_connected(i))
continue
if(alive && is_user_alive(i))
{
message_begin(MSG_ONE, gMsgSayText, {0, 0, 0}, i)
write_byte(id)
write_string(szArgs)
message_end()
}
else if(!alive && !is_user_alive(i))
{
new format[192]
formatex(format,191,"^x01* DEAD %s",szArgs)
message_begin(MSG_ONE, gMsgSayText, {0, 0, 0}, i)
write_byte(id)
write_string(format)
message_end()
}
}
return PLUGIN_HANDLED_MAIN
}
public SaveData(id)
{
new name[32];
get_user_name(id,name,31);
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s", name);
format(vaultdata,255,"%i#%i#",eXP[id],Level[id]);
fvault_set_data(g_vault_name,vaultkey,vaultdata);
return PLUGIN_CONTINUE;
}
public LoadData(id)
{
new name[32];
get_user_name(id,name,31);
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s",name);
format(vaultdata,255,"%i#%i#",eXP[id],Level[id]);
fvault_get_data(g_vault_name,vaultkey,vaultdata,charsmax(vaultdata));
replace_all(vaultdata, 255, "#", " ");
new playerxp[32], playerlevel[32];
parse(vaultdata, playerxp, 31, playerlevel, 31);
eXP[id] = str_to_num(playerxp);
Level[id] = str_to_num(playerlevel);
return PLUGIN_CONTINUE;
}
ranks_hud "1" // Дали да се появява хъд при влизане в сървъра. Включено 1/0 Изключено
knife_xp "1" // Колко ХР да дава за убийство с нож.
he_xp "1" // Колко ХР да дава за убийство с Granata (HE).
hs_xp "1" // Колко ХР да дава за убийство с Headshot.
kill_xp "1" // Колко ХР да дава за нормално убийство.
kill_msg "1" // Дали да показва кой сте убили и колко ХР сте получили. Включено 1/0 Изключено
Команди:
/reset - рестартира хр-то и нивата
/rank - показва информация за ранга, нивото и хр-то
Нужни модули:
Code: Select all
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <chatcolor>
#include <fvault>
Code: Select all
new const Levels[MaxLevels] =
{
25,
50,
75,
100,
150,
200,
250,
300,
400,
500,
600,
700,
800
}
new const Prefix[MaxLevels +1][] =
{
"NEW",
"Soldier",
"Kniffer",
"Top Kniffer",
"Real Kniffer",
"Pro Kniffer",
"The Good Killer",
"Striker",
"God Of War",
"Officer",
"Danger Killer",
"HNS Pro",
"UNDEAD",
"VIP"
}
- Fuck-Support
- Потребител
- Posts: 65
- Joined: 19 Aug 2014, 22:01
- Skype: dimitar.speed
- CS Nick: BoSS ;]]
- Favorite version: CS: 1.6
- Location: Plovdiv
Re: Заявки за rank system-и
[NewBie] 0-15
[Killer] 15-50
[Mega Killer] 50-100
[Ultra Killer] 100-150
[Supernova] 150-200
[Ultimate] 200-300
[Kniffer] 300-400
[Freak] 400-500
[Pro] 500-550
[General] 550-600
[Terminator] 600-1000
Admin Prefix
[SMS Admin] - m
[Admin] - n
[Help Admin] - o
[Head Admin] - p
[Server Admin] - q
[V.I.P] - r
[Test Admin] - s
Да ми пише и admin prefix и rankа
Пример:[Head Admin] [Terminator] Nick : kfo staa
Префикс-зелен
Префикса на ранка да е в зелено
Име-Червено
Чат-Зелено
Името според отбора ако съм T червен ако CT син!
[Killer] 15-50
[Mega Killer] 50-100
[Ultra Killer] 100-150
[Supernova] 150-200
[Ultimate] 200-300
[Kniffer] 300-400
[Freak] 400-500
[Pro] 500-550
[General] 550-600
[Terminator] 600-1000
Admin Prefix
[SMS Admin] - m
[Admin] - n
[Help Admin] - o
[Head Admin] - p
[Server Admin] - q
[V.I.P] - r
[Test Admin] - s
Да ми пише и admin prefix и rankа
Пример:[Head Admin] [Terminator] Nick : kfo staa
Префикс-зелен
Префикса на ранка да е в зелено
Име-Червено
Чат-Зелено
Името според отбора ако съм T червен ако CT син!
- HuliganaKuncho
- Потребител
- Posts: 128
- Joined: 25 Aug 2012, 18:41
Re: Заявки за rank system-и
Code: Select all
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <chatcolor>
#include <fvault>
#define MaxLevels 10
#define IsPlayer(%1) (1 <= %1 <= g_iMaxPlayers)
#define ADMIN1 "SMS Admin"
#define ADMIN1_ACCESS ADMIN_LEVEL_A
#define ADMIN2 "Admin"
#define ADMIN2_ACCESS ADMIN_LEVEL_B
#define ADMIN3 "Help Admin"
#define ADMIN3_ACCESS ADMIN_LEVEL_C
#define ADMIN4 "Head Admin"
#define ADMIN4_ACCESS ADMIN_LEVEL_D
#define ADMIN5 "Server Admin"
#define ADMIN5_ACCESS ADMIN_LEVEL_E
#define ADMIN6 "V.I.P"
#define ADMIN6_ACCESS ADMIN_LEVEL_F
#define ADMIN7 "Test Admin"
#define ADMIN7_ACCESS ADMIN_LEVEL_G
new gMaxPlayers, gMsgSayText, syncObj, Level[33], eXP[33]
new ranks_hud, knife_xp, he_xp, hs_xp, kill_xp, kill_msg
new const g_vault_name[] = "levelsz";
new const Levels[MaxLevels] =
{
15,
50,
100,
150,
200,
300,
400,
500,
550,
600
}
new const Prefix[MaxLevels +1][] =
{
"NewBie",
"Killer",
"Mega Killer",
"Ultra Killer",
"Supernova",
"Ultimate",
"Kniffer",
"Freak",
"Pro",
"General",
"Terminator"
}
public plugin_init()
{
register_plugin("Ranks & XP mod", "1.0", "alt.nick")
register_event("DeathMsg","client_death","a")
register_clcmd("say", "hook_say")
register_clcmd("say_team", "hook_say")
register_clcmd("say /rank", "cmdRank")
register_clcmd("say_team /rank", "cmdRank")
register_clcmd("say /reset", "reset_xp")
register_clcmd("say_team /reset", "reset_xp")
ranks_hud = register_cvar("ranks_hud", "1") // Дали да се появява хъд при влизане в сървъра. Включено 1/0 Изключено
knife_xp = register_cvar("knife_xp", "1") // Колко ХР да дава за убийство с нож.
he_xp = register_cvar("he_xp", "1") // Колко ХР да дава за убийство с Granata (HE).
hs_xp = register_cvar("hs_xp", "1") // Колко ХР да дава за убийство с Headshot.
kill_xp = register_cvar("kill_xp", "1") // Колко ХР да дава за нормално убийство.
kill_msg = register_cvar("kill_msg", "1") // Дали да показва кой сте убили и колко ХР сте получили. Включено 1/0 Изключено
register_concmd ("amx_give_xp", "CmdAddXP", ADMIN_LEVEL_A, "<nick | ct | t | @all> <xp>")
gMaxPlayers = get_maxplayers()
gMsgSayText = get_user_msgid("SayText")
syncObj = CreateHudSyncObj()
fvault_load(g_vault_name)
}
public ShowHud(id)
{
set_hudmessage(142, 239, 39, -1.0, 0.01, 0, 6.0, 1.0, 0.0, 0.0, -1)
ShowSyncHudMsg(id, syncObj,"Rank: %s ^nXP: %i ^nLevel: %i", Prefix[Level[id]], eXP[id], Level[id])
}
public client_putinserver(id)
{
if(get_pcvar_num(ranks_hud) == 1)
set_task(1.0, "ShowHud", id, _, _, "b")
if(Level[id] < MaxLevels-1)
while(eXP[id] >= Levels[Level[id]])
Level[id] += 1
}
public client_death(killer, victim, weapon, hitgroup, TK)
{
if(killer == victim)
return PLUGIN_HANDLED
new Name[20]
get_user_name(victim, Name, 19)
new headshot = (hitgroup == HIT_HEAD) ? 1 : 0
if(get_user_team(killer) == 2 && killer != victim)
{
switch(weapon)
{
case CSW_HEGRENADE:
{
eXP[killer] += get_pcvar_num(he_xp)
CheckLevel(killer)
SaveData(killer)
if(get_pcvar_num(kill_msg) == 1)
client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 %d XP^1 poradi ubiistwoto s^4 HE^1 na ^3%s^1.", get_pcvar_num(he_xp), Name)
}
case CSW_KNIFE:
{
eXP[killer] += get_pcvar_num(knife_xp)
CheckLevel(killer)
SaveData(killer)
if(get_pcvar_num(kill_msg) == 1)
client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 %d XP^1 poradi ubiistwoto s^4 noj^1 na ^3%s^1.", get_pcvar_num(knife_xp) , Name)
}
}
if(headshot)
{
eXP[killer] += get_pcvar_num(hs_xp)
CheckLevel(killer)
SaveData(killer)
if(get_pcvar_num(kill_msg) == 1)
client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 2 XP^1 poradi ubiistwoto s^4 HS^1 na ^3%s^1.",get_pcvar_num(hs_xp), Name)
}
else
{
eXP[killer] += get_pcvar_num(kill_xp)
CheckLevel(killer)
SaveData(killer)
if(get_pcvar_num(kill_msg) == 1)
client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 1 XP^1 poradi ubiistwoto na ^3%s^1.", get_pcvar_num(kill_xp), Name)
}
}
CheckLevel(killer)
SaveData(killer)
return PLUGIN_CONTINUE
}
public CheckLevel(id)
{
if(Level[id] < MaxLevels-1)
while(eXP[id] >= Levels[Level[id]])
Level[id] += 1
}
public client_connect(id)
{
LoadData(id)
}
public client_disconnect(id)
{
SaveData(id)
eXP[id] = 0
Level[id] = 0
remove_task(id)
}
public reset_xp(id)
{
if(eXP[id] != 0)
{
Level[id] = 0
eXP[id] = 0
CheckLevel(id)
client_print_color(id, print_chat, "^4[Ranks]^1 Yspeshno nulirani washite^4 XP^1 i ^4Level^1.")
}
else
client_print_color(id, print_chat, "^4[Ranks]^1 Washite^4 XP^1 i ^4Level^1 weche sa nulirani.")
}
public cmdRank(id)
{
if(is_user_connected(id))
client_print_color(id, print_chat, "^4[Ranks]^1 Rank:^4 %s^1 | XP:^4 %d^1 | Level:^4 %d^1.", Prefix[Level[id]], eXP[id], Level[id])
}
public CmdAddXP (iPlayer, level, cid)
{
if(!cmd_access(iPlayer, level, cid, 3)) return PLUGIN_HANDLED;
new arg [32]
read_argv (1, arg, 31)
new AddXP [32]
read_argv (2, AddXP, charsmax (AddXP))
new XPtoGive = str_to_num (AddXP)
new AdminName [32]
new TargetName [32]
get_user_name (iPlayer, AdminName, charsmax (AdminName))
if(arg[0]=='@')
{
if(equali(arg[1],"All") || equali(arg[1],"ALL"))
{
new players[32], totalplayers, All
get_players(players, totalplayers)
for (new i = 0; i < totalplayers; i++)
{
All = players[i]
eXP[All] += XPtoGive
}
CheckLevel(All)
client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na vsichki ^3igrachi^1!", AdminName, XPtoGive)
}
else if(equali(arg[1],"T") || equali(arg[1],"t"))
{
new players[32], totalplayers, T
get_players(players, totalplayers)
for (new i = 0; i < totalplayers; i++)
{
if (get_user_team(players[i]) == 1)
{
T = players[i]
eXP[T] += XPtoGive
}
}
CheckLevel(T)
client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na vsichki ^3 Teroristi^1.", AdminName, XPtoGive)
}
else if(equali(arg[1],"CT") || equali(arg[1],"ct"))
{
new players[32], totalplayers, CT
get_players(players, totalplayers)
for(new i = 0; i < totalplayers; i++)
{
if(get_user_team(players[i]) == 2)
{
CT = players[i]
eXP[CT] += XPtoGive
}
}
CheckLevel(CT)
client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na wsichki ^3 Kontra-Teroristi^1!", AdminName, XPtoGive)
}
}
else
{
new iTarget = cmd_target(iPlayer, arg, 3)
get_user_name (iTarget, TargetName, charsmax (TargetName))
if(iTarget)
{
eXP[iTarget] += XPtoGive
CheckLevel(iTarget)
client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na^3 %s^1.", AdminName, XPtoGive, TargetName)
}
}
return PLUGIN_HANDLED
}
bool:IsValidMessage( szMessage[ ], iLen )
{
read_args( szMessage, iLen )
remove_quotes( szMessage )
new iPos, cChar
while( 0 <= ( cChar = szMessage[ iPos++ ] ) <= 255 )
{
if( cChar != ' ' && cChar != '%' )
{
return true
}
}
return false
}
public hook_say(id)
{
if(!is_user_connected(id))
return PLUGIN_HANDLED_MAIN
new szArgs[192]
if( !IsValidMessage(szArgs, charsmax(szArgs)))
return PLUGIN_HANDLED_MAIN
if(equal(szArgs,"")) return PLUGIN_HANDLED_MAIN
new szName[32]
get_user_name(id, szName, sizeof szName-1)
new alive = is_user_alive(id)
if(contain(szArgs,"@") >= 0)
return PLUGIN_HANDLED_MAIN
if(get_user_flags(id) & ADMIN1_ACCESS)
format(szArgs, 191,"^x04[%s] [%s] ^x03%s^x01 :^x04 %s", ADMIN1, Prefix[Level[id]], szName, szArgs)
else if(get_user_flags(id) & ADMIN2_ACCESS)
format(szArgs, 191, "^x04[%s] [%s] ^x03%s^x01 :^x04 %s", ADMIN2, Prefix[Level[id]], szName, szArgs)
else if(get_user_flags(id) & ADMIN3_ACCESS)
format(szArgs, 191, "^x04[%s] [%s] ^x03%s^x01 :^x04 %s", ADMIN3, Prefix[Level[id]], szName, szArgs)
else if(get_user_flags(id) & ADMIN4_ACCESS)
format(szArgs, 191, "^x04[%s] [%s] ^x03%s^x01 :^x04 %s", ADMIN4, Prefix[Level[id]], szName, szArgs)
else if(get_user_flags(id) & ADMIN5_ACCESS)
format(szArgs, 191, "^x04[%s] [%s] ^x03%s^x01 :^x04 %s", ADMIN5, Prefix[Level[id]], szName, szArgs)
else if(get_user_flags(id) & ADMIN6_ACCESS)
format(szArgs, 191, "^x04[%s] [%s] ^x03%s^x01 :^x04 %s", ADMIN6, Prefix[Level[id]], szName, szArgs)
else if(get_user_flags(id) & ADMIN7_ACCESS)
format(szArgs, 191, "^x04[%s] [%s] ^x03%s^x01 :^x04 %s", ADMIN7, Prefix[Level[id]], szName, szArgs)
else
format(szArgs, 191, "^x04[%s] ^x03%s^x01 : %s", Prefix[Level[id]], szName, szArgs)
for(new i = 1; i <= gMaxPlayers; i++)
{
if(!is_user_connected(i))
continue
if(alive && is_user_alive(i))
{
message_begin(MSG_ONE, gMsgSayText, {0, 0, 0}, i)
write_byte(id)
write_string(szArgs)
message_end()
}
else if(!alive && !is_user_alive(i))
{
new format[192]
formatex(format,191,"^x01* DEAD %s",szArgs)
message_begin(MSG_ONE, gMsgSayText, {0, 0, 0}, i)
write_byte(id)
write_string(format)
message_end()
}
}
return PLUGIN_HANDLED_MAIN
}
public SaveData(id)
{
new name[32];
get_user_name(id,name,31);
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s", name);
format(vaultdata,255,"%i#%i#",eXP[id],Level[id]);
fvault_set_data(g_vault_name,vaultkey,vaultdata);
return PLUGIN_CONTINUE;
}
public LoadData(id)
{
new name[32];
get_user_name(id,name,31);
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s",name);
format(vaultdata,255,"%i#%i#",eXP[id],Level[id]);
fvault_get_data(g_vault_name,vaultkey,vaultdata,charsmax(vaultdata));
replace_all(vaultdata, 255, "#", " ");
new playerxp[32], playerlevel[32];
parse(vaultdata, playerxp, 31, playerlevel, 31);
eXP[id] = str_to_num(playerxp);
Level[id] = str_to_num(playerlevel);
return PLUGIN_CONTINUE;
}
ranks_hud "1" // Дали да се появява хъд при влизане в сървъра. Включено 1/0 Изключено
knife_xp "1" // Колко ХР да дава за убийство с нож.
he_xp "1" // Колко ХР да дава за убийство с Granata (HE).
hs_xp "1" // Колко ХР да дава за убийство с Headshot.
kill_xp "1" // Колко ХР да дава за нормално убийство.
kill_msg "1" // Дали да показва кой сте убили и колко ХР сте получили. Включено 1/0 Изключено
Команди:
/reset - рестартира хр-то и нивата
/rank - показва информация за ранга, нивото и хр-то
Нужни модули:
Code: Select all
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <chatcolor>
#include <fvault>
Code: Select all
#define ADMIN1 "SMS Admin"
#define ADMIN1_ACCESS ADMIN_LEVEL_A
#define ADMIN2 "Admin"
#define ADMIN2_ACCESS ADMIN_LEVEL_B
#define ADMIN3 "Help Admin"
#define ADMIN3_ACCESS ADMIN_LEVEL_C
#define ADMIN4 "Head Admin"
#define ADMIN4_ACCESS ADMIN_LEVEL_D
#define ADMIN5 "Server Admin"
#define ADMIN5_ACCESS ADMIN_LEVEL_E
#define ADMIN6 "V.I.P"
#define ADMIN6_ACCESS ADMIN_LEVEL_F
#define ADMIN7 "Test Admin"
#define ADMIN7_ACCESS ADMIN_LEVEL_G
new const Levels[MaxLevels] =
{
15,
50,
100,
150,
200,
300,
400,
500,
550,
600
}
new const Prefix[MaxLevels +1][] =
{
"NewBie",
"Killer",
"Mega Killer",
"Ultra Killer",
"Supernova",
"Ultimate",
"Kniffer",
"Freak",
"Pro",
"General",
"Terminator"
}
Last edited by HuliganaKuncho on 23 Aug 2014, 08:59, edited 2 times in total.
- Fuck-Support
- Потребител
- Posts: 65
- Joined: 19 Aug 2014, 22:01
- Skype: dimitar.speed
- CS Nick: BoSS ;]]
- Favorite version: CS: 1.6
- Location: Plovdiv
Re: Заявки за rank system-и
Може ли amxx. Защото ми дава грешки като го правя от sma. към amxx.
Your plugin failed to compile! Read the errors below:
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team
/tmp/textvnADEe.sma(4) : fatal error 100: cannot read from file: "chatcolor"
Compilation aborted.
1 Error.
Your plugin failed to compile! Read the errors below:
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team
/tmp/textvnADEe.sma(4) : fatal error 100: cannot read from file: "chatcolor"
Compilation aborted.
1 Error.
- dullAnz
- Потребител
- Posts: 58
- Joined: 19 Jul 2013, 13:23
- Skype: stelt_2000
- Favorite version: CS: 1.6
- Steam Community ID: tripplestel
Re: Заявки за rank system-и
[Class #1 Jumper] 0-50
[Class #2 Jumper] 50-100
[Class #3 Jumper] 100-200
[Pro Jumper] 200-350
[Mega Jumper] 350-500
[SGS PRO] 500-800
[KZH HACK] 800-1100
[Ultimate Jumper] 1100-1400
[No flasherche] 1400-1900
[Mashina] 1900-2500
[E.C.C.C.C] 2500-3000
Admin Prefix
[Admin] - m
[Server Admin] - n
[Test Admin] - o
[SMS Admin] - p
[V.I.P USER] - q
[Class #2 Jumper] 50-100
[Class #3 Jumper] 100-200
[Pro Jumper] 200-350
[Mega Jumper] 350-500
[SGS PRO] 500-800
[KZH HACK] 800-1100
[Ultimate Jumper] 1100-1400
[No flasherche] 1400-1900
[Mashina] 1900-2500
[E.C.C.C.C] 2500-3000
Admin Prefix
[Admin] - m
[Server Admin] - n
[Test Admin] - o
[SMS Admin] - p
[V.I.P USER] - q
Ако може да не са така , а отделно . Цветовете ги направете както искате по ваш вкус .[Head Admin] [Terminator] Nick : kfo staa
- HuliganaKuncho
- Потребител
- Posts: 128
- Joined: 25 Aug 2012, 18:41
Re: Заявки за rank system-и
Заповядай: .amxxHead_Shot778 wrote:Може ли amxx. Защото ми дава грешки като го правя от sma. към amxx.
Your plugin failed to compile! Read the errors below:
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team
/tmp/textvnADEe.sma(4) : fatal error 100: cannot read from file: "chatcolor"
Compilation aborted.
1 Error.
dullAnz:
Code: Select all
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fvault>
#define MaxLevels 10
#define IsPlayer(%1) (1 <= %1 <= g_iMaxPlayers)
#define ADMIN1 "Admin"
#define ADMIN1_ACCESS ADMIN_LEVEL_A
#define ADMIN2 "Server Admin"
#define ADMIN2_ACCESS ADMIN_LEVEL_B
#define ADMIN3 "Test Admin"
#define ADMIN3_ACCESS ADMIN_LEVEL_C
#define ADMIN4 "SMS Admin"
#define ADMIN4_ACCESS ADMIN_LEVEL_D
#define ADMIN5 "V.I.P USER"
#define ADMIN5_ACCESS ADMIN_LEVEL_E
new gMaxPlayers, gMsgSayText, syncObj, Level[33], eXP[33]
new ranks_hud, knife_xp, he_xp, hs_xp, kill_xp, kill_msg
new const g_vault_name[] = "levelsz";
new const Levels[MaxLevels] =
{
50,
100,
200,
350,
500,
800,
1100,
1400,
1900,
2500
}
new const Prefix[MaxLevels +1][] =
{
"Class #1 Jumper",
"Class #2 Jumper",
"Class #3 Jumper",
"Pro Jumper",
"Mega Jumper",
"SGS PRO",
"KZH HACK",
"Ultimate Jumper",
"No flasherche",
"Mashina",
"E.C.C.C.C"
}
public plugin_init()
{
register_plugin("Ranks & XP mod", "1.0", "alt.nick")
register_event("DeathMsg","client_death","a")
register_clcmd("say", "hook_say")
register_clcmd("say_team", "hook_say")
register_clcmd("say /rank", "cmdRank")
register_clcmd("say_team /rank", "cmdRank")
register_clcmd("say /reset", "reset_xp")
register_clcmd("say_team /reset", "reset_xp")
ranks_hud = register_cvar("ranks_hud", "1") // Дали да се появява хъд при влизане в сървъра. Включено 1/0 Изключено
knife_xp = register_cvar("knife_xp", "1") // Колко ХР да дава за убийство с нож.
he_xp = register_cvar("he_xp", "1") // Колко ХР да дава за убийство с Granata (HE).
hs_xp = register_cvar("hs_xp", "1") // Колко ХР да дава за убийство с Headshot.
kill_xp = register_cvar("kill_xp", "1") // Колко ХР да дава за нормално убийство.
kill_msg = register_cvar("kill_msg", "1") // Дали да показва кой сте убили и колко ХР сте получили. Включено 1/0 Изключено
register_concmd ("amx_give_xp", "CmdAddXP", ADMIN_LEVEL_A, "<nick | ct | t | @all> <xp>")
gMaxPlayers = get_maxplayers()
gMsgSayText = get_user_msgid("SayText")
syncObj = CreateHudSyncObj()
fvault_load(g_vault_name)
}
public ShowHud(id)
{
set_hudmessage(142, 239, 39, -1.0, 0.01, 0, 6.0, 1.0, 0.0, 0.0, -1)
ShowSyncHudMsg(id, syncObj,"Rank: %s ^nXP: %i ^nLevel: %i", Prefix[Level[id]], eXP[id], Level[id])
}
public client_putinserver(id)
{
if(get_pcvar_num(ranks_hud) == 1)
set_task(1.0, "ShowHud", id, _, _, "b")
if(Level[id] < MaxLevels-1)
while(eXP[id] >= Levels[Level[id]])
Level[id] += 1
}
public client_death(killer, victim, weapon, hitgroup, TK)
{
if(killer == victim)
return PLUGIN_HANDLED
new Name[20]
get_user_name(victim, Name, 19)
new headshot = (hitgroup == HIT_HEAD) ? 1 : 0
if(get_user_team(killer) == 2 && killer != victim)
{
switch(weapon)
{
case CSW_HEGRENADE:
{
eXP[killer] += get_pcvar_num(he_xp)
CheckLevel(killer)
SaveData(killer)
if(get_pcvar_num(kill_msg) == 1)
client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 %d XP^1 poradi ubiistwoto s^4 HE^1 na ^3%s^1.", get_pcvar_num(he_xp), Name)
}
case CSW_KNIFE:
{
eXP[killer] += get_pcvar_num(knife_xp)
CheckLevel(killer)
SaveData(killer)
if(get_pcvar_num(kill_msg) == 1)
client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 %d XP^1 poradi ubiistwoto s^4 noj^1 na ^3%s^1.", get_pcvar_num(knife_xp) , Name)
}
}
if(headshot)
{
eXP[killer] += get_pcvar_num(hs_xp)
CheckLevel(killer)
SaveData(killer)
if(get_pcvar_num(kill_msg) == 1)
client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 2 XP^1 poradi ubiistwoto s^4 HS^1 na ^3%s^1.",get_pcvar_num(hs_xp), Name)
}
else
{
eXP[killer] += get_pcvar_num(kill_xp)
CheckLevel(killer)
SaveData(killer)
if(get_pcvar_num(kill_msg) == 1)
client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 1 XP^1 poradi ubiistwoto na ^3%s^1.", get_pcvar_num(kill_xp), Name)
}
}
CheckLevel(killer)
SaveData(killer)
return PLUGIN_CONTINUE
}
public CheckLevel(id)
{
if(Level[id] < MaxLevels-1)
while(eXP[id] >= Levels[Level[id]])
Level[id] += 1
}
public client_connect(id)
{
LoadData(id)
}
public client_disconnect(id)
{
SaveData(id)
eXP[id] = 0
Level[id] = 0
remove_task(id)
}
public reset_xp(id)
{
if(eXP[id] != 0)
{
Level[id] = 0
eXP[id] = 0
CheckLevel(id)
client_print_color(id, print_chat, "^4[Ranks]^1 Yspeshno nulirani washite^4 XP^1 i ^4Level^1.")
}
else
client_print_color(id, print_chat, "^4[Ranks]^1 Washite^4 XP^1 i ^4Level^1 weche sa nulirani.")
}
public cmdRank(id)
{
if(is_user_connected(id))
client_print_color(id, print_chat, "^4[Ranks]^1 Rank:^4 %s^1 | XP:^4 %d^1 | Level:^4 %d^1.", Prefix[Level[id]], eXP[id], Level[id])
}
public CmdAddXP (iPlayer, level, cid)
{
if(!cmd_access(iPlayer, level, cid, 3)) return PLUGIN_HANDLED;
new arg [32]
read_argv (1, arg, 31)
new AddXP [32]
read_argv (2, AddXP, charsmax (AddXP))
new XPtoGive = str_to_num (AddXP)
new AdminName [32]
new TargetName [32]
get_user_name (iPlayer, AdminName, charsmax (AdminName))
if(arg[0]=='@')
{
if(equali(arg[1],"All") || equali(arg[1],"ALL"))
{
new players[32], totalplayers, All
get_players(players, totalplayers)
for (new i = 0; i < totalplayers; i++)
{
All = players[i]
eXP[All] += XPtoGive
}
CheckLevel(All)
client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na vsichki ^3igrachi^1!", AdminName, XPtoGive)
}
else if(equali(arg[1],"T") || equali(arg[1],"t"))
{
new players[32], totalplayers, T
get_players(players, totalplayers)
for (new i = 0; i < totalplayers; i++)
{
if (get_user_team(players[i]) == 1)
{
T = players[i]
eXP[T] += XPtoGive
}
}
CheckLevel(T)
client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na vsichki ^3 Teroristi^1.", AdminName, XPtoGive)
}
else if(equali(arg[1],"CT") || equali(arg[1],"ct"))
{
new players[32], totalplayers, CT
get_players(players, totalplayers)
for(new i = 0; i < totalplayers; i++)
{
if(get_user_team(players[i]) == 2)
{
CT = players[i]
eXP[CT] += XPtoGive
}
}
CheckLevel(CT)
client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na wsichki ^3 Kontra-Teroristi^1!", AdminName, XPtoGive)
}
}
else
{
new iTarget = cmd_target(iPlayer, arg, 3)
get_user_name (iTarget, TargetName, charsmax (TargetName))
if(iTarget)
{
eXP[iTarget] += XPtoGive
CheckLevel(iTarget)
client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na^3 %s^1.", AdminName, XPtoGive, TargetName)
}
}
return PLUGIN_HANDLED
}
bool:IsValidMessage( szMessage[ ], iLen )
{
read_args( szMessage, iLen )
remove_quotes( szMessage )
new iPos, cChar
while( 0 <= ( cChar = szMessage[ iPos++ ] ) <= 255 )
{
if( cChar != ' ' && cChar != '%' )
{
return true
}
}
return false
}
public hook_say(id)
{
if(!is_user_connected(id))
return PLUGIN_HANDLED_MAIN
new szArgs[192]
if( !IsValidMessage(szArgs, charsmax(szArgs)))
return PLUGIN_HANDLED_MAIN
if(equal(szArgs,"")) return PLUGIN_HANDLED_MAIN
new szName[32]
get_user_name(id, szName, sizeof szName-1)
new alive = is_user_alive(id)
if(contain(szArgs,"@") >= 0)
return PLUGIN_HANDLED_MAIN
if(get_user_flags(id) & ADMIN1_ACCESS)
format(szArgs, 191,"^x04%s %s ^x03%s^x01 :^x04 %s", ADMIN1, Prefix[Level[id]], szName, szArgs)
else if(get_user_flags(id) & ADMIN2_ACCESS)
format(szArgs, 191, "^x04%s %s ^x03%s^x01 :^x04 %s", ADMIN2, Prefix[Level[id]], szName, szArgs)
else if(get_user_flags(id) & ADMIN3_ACCESS)
format(szArgs, 191, "^x04%s %s ^x03%s^x01 :^x04 %s", ADMIN3, Prefix[Level[id]], szName, szArgs)
else if(get_user_flags(id) & ADMIN4_ACCESS)
format(szArgs, 191, "^x04%s %s ^x03%s^x01 :^x04 %s", ADMIN4, Prefix[Level[id]], szName, szArgs)
else if(get_user_flags(id) & ADMIN5_ACCESS)
format(szArgs, 191, "^x04%s %s ^x03%s^x01 :^x04 %s", ADMIN5, Prefix[Level[id]], szName, szArgs)
else
format(szArgs, 191, "^x04%s ^x03%s^x01 : %s", Prefix[Level[id]], szName, szArgs)
for(new i = 1; i <= gMaxPlayers; i++)
{
if(!is_user_connected(i))
continue
if(alive && is_user_alive(i))
{
message_begin(MSG_ONE, gMsgSayText, {0, 0, 0}, i)
write_byte(id)
write_string(szArgs)
message_end()
}
else if(!alive && !is_user_alive(i))
{
new format[192]
formatex(format,191,"^x01* DEAD %s",szArgs)
message_begin(MSG_ONE, gMsgSayText, {0, 0, 0}, i)
write_byte(id)
write_string(format)
message_end()
}
}
return PLUGIN_HANDLED_MAIN
}
public SaveData(id)
{
new name[32];
get_user_name(id,name,31);
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s", name);
format(vaultdata,255,"%i#%i#",eXP[id],Level[id]);
fvault_set_data(g_vault_name,vaultkey,vaultdata);
return PLUGIN_CONTINUE;
}
public LoadData(id)
{
new name[32];
get_user_name(id,name,31);
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s",name);
format(vaultdata,255,"%i#%i#",eXP[id],Level[id]);
fvault_get_data(g_vault_name,vaultkey,vaultdata,charsmax(vaultdata));
replace_all(vaultdata, 255, "#", " ");
new playerxp[32], playerlevel[32];
parse(vaultdata, playerxp, 31, playerlevel, 31);
eXP[id] = str_to_num(playerxp);
Level[id] = str_to_num(playerlevel);
return PLUGIN_CONTINUE;
}
ranks_hud "1" // Дали да се появява хъд при влизане в сървъра. Включено 1/0 Изключено
knife_xp "1" // Колко ХР да дава за убийство с нож.
he_xp "1" // Колко ХР да дава за убийство с Granata (HE).
hs_xp "1" // Колко ХР да дава за убийство с Headshot.
kill_xp "1" // Колко ХР да дава за нормално убийство.
kill_msg "1" // Дали да показва кой сте убили и колко ХР сте получили. Включено 1/0 Изключено
Команди:
/reset - рестартира хр-то и нивата
/rank - показва информация за ранга, нивото и хр-то
Нужни модули:
Code: Select all
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <chatcolor>
#include <fvault>
Code: Select all
#define ADMIN1 "Admin"
#define ADMIN1_ACCESS ADMIN_LEVEL_A
#define ADMIN2 "Server Admin"
#define ADMIN2_ACCESS ADMIN_LEVEL_B
#define ADMIN3 "Test Admin"
#define ADMIN3_ACCESS ADMIN_LEVEL_C
#define ADMIN4 "SMS Admin"
#define ADMIN4_ACCESS ADMIN_LEVEL_D
#define ADMIN5 "V.I.P USER"
#define ADMIN5_ACCESS ADMIN_LEVEL_E
new const Levels[MaxLevels] =
{
50,
100,
200,
350,
500,
800,
1100,
1400,
1900,
2500
}
new const Prefix[MaxLevels +1][] =
{
"Class #1 Jumper",
"Class #2 Jumper",
"Class #3 Jumper",
"Pro Jumper",
"Mega Jumper",
"SGS PRO",
"KZH HACK",
"Ultimate Jumper",
"No flasherche",
"Mashina",
"E.C.C.C.C"
}
- dullAnz
- Потребител
- Posts: 58
- Joined: 19 Jul 2013, 13:23
- Skype: stelt_2000
- Favorite version: CS: 1.6
- Steam Community ID: tripplestel
Re: Заявки за rank system-и
Точно това не исках . Исках да са отделно в смисъл Admin nick : test и ако е на играч Jumper nick : test . и Искам да попитам . Когато напиша /reset , само моите неща ли се рестартират или на всички .
- HuliganaKuncho
- Потребител
- Posts: 128
- Joined: 25 Aug 2012, 18:41
Re: Заявки за rank system-и
Само твоите. Заповядай така, както го искаш:dullAnz wrote:Точно това не исках . Исках да са отделно в смисъл Admin nick : test и ако е на играч Jumper nick : test . и Искам да попитам . Когато напиша /reset , само моите неща ли се рестартират или на всички .
Code: Select all
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fvault>
#define MaxLevels 10
#define IsPlayer(%1) (1 <= %1 <= g_iMaxPlayers)
#define ADMIN1 "Admin"
#define ADMIN1_ACCESS ADMIN_LEVEL_A
#define ADMIN2 "Server Admin"
#define ADMIN2_ACCESS ADMIN_LEVEL_B
#define ADMIN3 "Test Admin"
#define ADMIN3_ACCESS ADMIN_LEVEL_C
#define ADMIN4 "SMS Admin"
#define ADMIN4_ACCESS ADMIN_LEVEL_D
#define ADMIN5 "V.I.P USER"
#define ADMIN5_ACCESS ADMIN_LEVEL_E
new gMaxPlayers, gMsgSayText, syncObj, Level[33], eXP[33]
new ranks_hud, knife_xp, he_xp, hs_xp, kill_xp, kill_msg
new const g_vault_name[] = "levelsz";
new const Levels[MaxLevels] =
{
50,
100,
200,
350,
500,
800,
1100,
1400,
1900,
2500
}
new const Prefix[MaxLevels +1][] =
{
"Class #1 Jumper",
"Class #2 Jumper",
"Class #3 Jumper",
"Pro Jumper",
"Mega Jumper",
"SGS PRO",
"KZH HACK",
"Ultimate Jumper",
"No flasherche",
"Mashina",
"E.C.C.C.C"
}
public plugin_init()
{
register_plugin("Ranks & XP mod", "1.0", "alt.nick")
register_event("DeathMsg","client_death","a")
register_clcmd("say", "hook_say")
register_clcmd("say_team", "hook_say")
register_clcmd("say /rank", "cmdRank")
register_clcmd("say_team /rank", "cmdRank")
register_clcmd("say /reset", "reset_xp")
register_clcmd("say_team /reset", "reset_xp")
ranks_hud = register_cvar("ranks_hud", "1") // Дали да се появява хъд при влизане в сървъра. Включено 1/0 Изключено
knife_xp = register_cvar("knife_xp", "1") // Колко ХР да дава за убийство с нож.
he_xp = register_cvar("he_xp", "1") // Колко ХР да дава за убийство с Granata (HE).
hs_xp = register_cvar("hs_xp", "1") // Колко ХР да дава за убийство с Headshot.
kill_xp = register_cvar("kill_xp", "1") // Колко ХР да дава за нормално убийство.
kill_msg = register_cvar("kill_msg", "1") // Дали да показва кой сте убили и колко ХР сте получили. Включено 1/0 Изключено
register_concmd ("amx_give_xp", "CmdAddXP", ADMIN_LEVEL_A, "<nick | ct | t | @all> <xp>")
gMaxPlayers = get_maxplayers()
gMsgSayText = get_user_msgid("SayText")
syncObj = CreateHudSyncObj()
fvault_load(g_vault_name)
}
public ShowHud(id)
{
set_hudmessage(142, 239, 39, -1.0, 0.01, 0, 6.0, 1.0, 0.0, 0.0, -1)
ShowSyncHudMsg(id, syncObj,"Rank: %s ^nXP: %i ^nLevel: %i", Prefix[Level[id]], eXP[id], Level[id])
}
public client_putinserver(id)
{
if(get_pcvar_num(ranks_hud) == 1)
set_task(1.0, "ShowHud", id, _, _, "b")
if(Level[id] < MaxLevels-1)
while(eXP[id] >= Levels[Level[id]])
Level[id] += 1
}
public client_death(killer, victim, weapon, hitgroup, TK)
{
if(killer == victim)
return PLUGIN_HANDLED
new Name[20]
get_user_name(victim, Name, 19)
new headshot = (hitgroup == HIT_HEAD) ? 1 : 0
if(get_user_team(killer) == 2 && killer != victim)
{
switch(weapon)
{
case CSW_HEGRENADE:
{
eXP[killer] += get_pcvar_num(he_xp)
CheckLevel(killer)
SaveData(killer)
if(get_pcvar_num(kill_msg) == 1)
client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 %d XP^1 poradi ubiistwoto s^4 HE^1 na ^3%s^1.", get_pcvar_num(he_xp), Name)
}
case CSW_KNIFE:
{
eXP[killer] += get_pcvar_num(knife_xp)
CheckLevel(killer)
SaveData(killer)
if(get_pcvar_num(kill_msg) == 1)
client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 %d XP^1 poradi ubiistwoto s^4 noj^1 na ^3%s^1.", get_pcvar_num(knife_xp) , Name)
}
}
if(headshot)
{
eXP[killer] += get_pcvar_num(hs_xp)
CheckLevel(killer)
SaveData(killer)
if(get_pcvar_num(kill_msg) == 1)
client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 2 XP^1 poradi ubiistwoto s^4 HS^1 na ^3%s^1.",get_pcvar_num(hs_xp), Name)
}
else
{
eXP[killer] += get_pcvar_num(kill_xp)
CheckLevel(killer)
SaveData(killer)
if(get_pcvar_num(kill_msg) == 1)
client_print_color(killer, print_chat, "^4[Ranks]^1 poluchihte^4 1 XP^1 poradi ubiistwoto na ^3%s^1.", get_pcvar_num(kill_xp), Name)
}
}
CheckLevel(killer)
SaveData(killer)
return PLUGIN_CONTINUE
}
public CheckLevel(id)
{
if(Level[id] < MaxLevels-1)
while(eXP[id] >= Levels[Level[id]])
Level[id] += 1
}
public client_connect(id)
{
LoadData(id)
}
public client_disconnect(id)
{
SaveData(id)
eXP[id] = 0
Level[id] = 0
remove_task(id)
}
public reset_xp(id)
{
if(eXP[id] != 0)
{
Level[id] = 0
eXP[id] = 0
CheckLevel(id)
client_print_color(id, print_chat, "^4[Ranks]^1 Yspeshno nulirani washite^4 XP^1 i ^4Level^1.")
}
else
client_print_color(id, print_chat, "^4[Ranks]^1 Washite^4 XP^1 i ^4Level^1 weche sa nulirani.")
}
public cmdRank(id)
{
if(is_user_connected(id))
client_print_color(id, print_chat, "^4[Ranks]^1 Rank:^4 %s^1 | XP:^4 %d^1 | Level:^4 %d^1.", Prefix[Level[id]], eXP[id], Level[id])
}
public CmdAddXP (iPlayer, level, cid)
{
if(!cmd_access(iPlayer, level, cid, 3)) return PLUGIN_HANDLED;
new arg [32]
read_argv (1, arg, 31)
new AddXP [32]
read_argv (2, AddXP, charsmax (AddXP))
new XPtoGive = str_to_num (AddXP)
new AdminName [32]
new TargetName [32]
get_user_name (iPlayer, AdminName, charsmax (AdminName))
if(arg[0]=='@')
{
if(equali(arg[1],"All") || equali(arg[1],"ALL"))
{
new players[32], totalplayers, All
get_players(players, totalplayers)
for (new i = 0; i < totalplayers; i++)
{
All = players[i]
eXP[All] += XPtoGive
}
CheckLevel(All)
client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na vsichki ^3igrachi^1!", AdminName, XPtoGive)
}
else if(equali(arg[1],"T") || equali(arg[1],"t"))
{
new players[32], totalplayers, T
get_players(players, totalplayers)
for (new i = 0; i < totalplayers; i++)
{
if (get_user_team(players[i]) == 1)
{
T = players[i]
eXP[T] += XPtoGive
}
}
CheckLevel(T)
client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na vsichki ^3 Teroristi^1.", AdminName, XPtoGive)
}
else if(equali(arg[1],"CT") || equali(arg[1],"ct"))
{
new players[32], totalplayers, CT
get_players(players, totalplayers)
for(new i = 0; i < totalplayers; i++)
{
if(get_user_team(players[i]) == 2)
{
CT = players[i]
eXP[CT] += XPtoGive
}
}
CheckLevel(CT)
client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na wsichki ^3 Kontra-Teroristi^1!", AdminName, XPtoGive)
}
}
else
{
new iTarget = cmd_target(iPlayer, arg, 3)
get_user_name (iTarget, TargetName, charsmax (TargetName))
if(iTarget)
{
eXP[iTarget] += XPtoGive
CheckLevel(iTarget)
client_print_color(0, print_chat, "^4[Ranks]^1 ^3%s^1 dade^3 %i^1 XP na^3 %s^1.", AdminName, XPtoGive, TargetName)
}
}
return PLUGIN_HANDLED
}
bool:IsValidMessage( szMessage[ ], iLen )
{
read_args( szMessage, iLen )
remove_quotes( szMessage )
new iPos, cChar
while( 0 <= ( cChar = szMessage[ iPos++ ] ) <= 255 )
{
if( cChar != ' ' && cChar != '%' )
{
return true
}
}
return false
}
public hook_say(id)
{
if(!is_user_connected(id))
return PLUGIN_HANDLED_MAIN
new szArgs[192]
if( !IsValidMessage(szArgs, charsmax(szArgs)))
return PLUGIN_HANDLED_MAIN
if(equal(szArgs,"")) return PLUGIN_HANDLED_MAIN
new szName[32]
get_user_name(id, szName, sizeof szName-1)
new alive = is_user_alive(id)
if(contain(szArgs,"@") >= 0)
return PLUGIN_HANDLED_MAIN
if(get_user_flags(id) & ADMIN1_ACCESS)
format(szArgs, 191,"^x04%s ^x03%s^x01 :^x04 %s", ADMIN1, szName, szArgs)
else if(get_user_flags(id) & ADMIN2_ACCESS)
format(szArgs, 191, "^x04%s ^x03%s^x01 :^x04 %s", ADMIN2, szName, szArgs)
else if(get_user_flags(id) & ADMIN3_ACCESS)
format(szArgs, 191, "^x04%s ^x03%s^x01 :^x04 %s", ADMIN3, szName, szArgs)
else if(get_user_flags(id) & ADMIN4_ACCESS)
format(szArgs, 191, "^x04%s %s ^x03%s^x01 :^x04 %s", ADMIN4, szName, szArgs)
else if(get_user_flags(id) & ADMIN5_ACCESS)
format(szArgs, 191, "^x04%s ^x03%s^x01 :^x04 %s", ADMIN5, szName, szArgs)
else
format(szArgs, 191, "^x04%s ^x03%s^x01 : %s", Prefix[Level[id]], szName, szArgs)
for(new i = 1; i <= gMaxPlayers; i++)
{
if(!is_user_connected(i))
continue
if(alive && is_user_alive(i))
{
message_begin(MSG_ONE, gMsgSayText, {0, 0, 0}, i)
write_byte(id)
write_string(szArgs)
message_end()
}
else if(!alive && !is_user_alive(i))
{
new format[192]
formatex(format,191,"^x01* DEAD %s",szArgs)
message_begin(MSG_ONE, gMsgSayText, {0, 0, 0}, i)
write_byte(id)
write_string(format)
message_end()
}
}
return PLUGIN_HANDLED_MAIN
}
public SaveData(id)
{
new name[32];
get_user_name(id,name,31);
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s", name);
format(vaultdata,255,"%i#%i#",eXP[id],Level[id]);
fvault_set_data(g_vault_name,vaultkey,vaultdata);
return PLUGIN_CONTINUE;
}
public LoadData(id)
{
new name[32];
get_user_name(id,name,31);
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s",name);
format(vaultdata,255,"%i#%i#",eXP[id],Level[id]);
fvault_get_data(g_vault_name,vaultkey,vaultdata,charsmax(vaultdata));
replace_all(vaultdata, 255, "#", " ");
new playerxp[32], playerlevel[32];
parse(vaultdata, playerxp, 31, playerlevel, 31);
eXP[id] = str_to_num(playerxp);
Level[id] = str_to_num(playerlevel);
return PLUGIN_CONTINUE;
}
- Fuck-Support
- Потребител
- Posts: 65
- Joined: 19 Aug 2014, 22:01
- Skype: dimitar.speed
- CS Nick: BoSS ;]]
- Favorite version: CS: 1.6
- Location: Plovdiv
Re: Заявки за rank system-и
Дава ми следната грешка!
AMXX Plugin "ranksystem.amxx" failed to load:Plugin used an unkwown functions <name client_print_color> - Check modules.ini
AMXX Plugin "ranksystem.amxx" failed to load:Plugin used an unkwown functions <name client_print_color> - Check modules.ini
- Flickercho
- Потребител
- Posts: 288
- Joined: 25 Dec 2013, 18:51
- Skype: -none-
- CS Nick: zEx |Flick3rR ;]]*
- Favorite version: CS: 1.6
- Location: Стара Загора, На покрива на 7-ми блок, кв. Железник
Re: Заявки за rank system-и
Трябва ти модула chatcolor. Moжеш да го изтеглиш от тук: https://forums.alliedmods.net/showthread.php?t=94960
Линкът към модула е преди прикачените файлове.
П.П.: Към автора, съветвам те да провериш дали версията на AMXModX е по-стара от 1.8.3 преди да включваш този модул, тъй като неговите функции са интегрирани в новата версия (1.8.3). За взимането на версията можеш да използваш натива get_amxx_verstring(szBuffer[], len).
Линкът към модула е преди прикачените файлове.
П.П.: Към автора, съветвам те да провериш дали версията на AMXModX е по-стара от 1.8.3 преди да включваш този модул, тъй като неговите функции са интегрирани в новата версия (1.8.3). За взимането на версията можеш да използваш натива get_amxx_verstring(szBuffer[], len).
- Fuck-Support
- Потребител
- Posts: 65
- Joined: 19 Aug 2014, 22:01
- Skype: dimitar.speed
- CS Nick: BoSS ;]]
- Favorite version: CS: 1.6
- Location: Plovdiv
Re: Заявки за rank system-и
Еми пак не става добавих го в modules после името в modules.ini не става..
- Invius
- V.I.P
- Posts: 433
- Joined: 01 May 2012, 14:26
- Discord username: illusion034
Re: Заявки за rank system-и
Може и с модул, може и без. Има си определен плъгин.
Това е плъгина.
Това е плъгина.
- Attachments
-
- colorchat.rar
- (8.59 KiB) Downloaded 381 times
- Fuck-Support
- Потребител
- Posts: 65
- Joined: 19 Aug 2014, 22:01
- Skype: dimitar.speed
- CS Nick: BoSS ;]]
- Favorite version: CS: 1.6
- Location: Plovdiv
Re: Заявки за rank system-и
Огромни Благодарности на mdfl. и HuliganaKuncho работи както исках МЕРСИ!
-- 23 Авг 2014, 16:33 --
Брат работи всичко супер само ,че при килл не дава XP и Level може ли да го направиш? направиш съм го на килл на дава 10 xp а стой на 0 и също така като сложа да съм Head Admin нямам Team Player? и не се сейфа!
-- 23 Авг 2014, 16:33 --
Брат работи всичко супер само ,че при килл не дава XP и Level може ли да го направиш? направиш съм го на килл на дава 10 xp а стой на 0 и също така като сложа да съм Head Admin нямам Team Player? и не се сейфа!