[Rezolvat]Modificare Rank System

In acest subforum puteti cere modificari necesare ale pluginurilor .
Forum rules
Image


Aveti grija cand creati un topic puneti la titlu [Modificare] Nume plugin.
Nu aveti voie sa cereti modificarea mai multor plugin-uri intr-un singur topic.
Locked
User avatar
Ilegend1996
Membru
Membru
Posts: 14
Joined: 5 years ago
Has thanked: 0
Been thanked: 0
Status: Offline

5 years ago

Buna Seara , as avea o rugaminte am modificat acest sma din cel original si cel original nu merge copilat .
#include <amxmodx>
#include <fvault>
#include <cstrike>
#include <wm_play>

#define maxranks 15
#define maxlevels 50

#define xPrefix "XP System"

#define RANKS_Silver I 0
#define RANKS_Silver II 1
#define RANKS_Silver III 2
#define RANKS_Silver Elite 3
#define RANKS_Silver Elite Master 4
#define RANKS_Gold Nova I 5
#define RANKS_Gold Nova II 6
#define RANKS_Gold Nova Master 7
#define RANKS_Master Guardian I 8
#define RANKS_Master Guardian II 9
#define RANKS_Master Guardian Elite 10
#define RANKS_Distinguished Master Guardian 11
#define RANKS_Legendary Eagle 12
#define RANKS_Supreme Master First Class 13
#define RANKS_The Global Elite 14

new const VERSION[] = "1.1"

new SzMaxPlayers, SzSayText;
new playerPrefix,rankLevelBonus,rankSaveType;

new const db_save[] = "cs_rank_system"

new level[33], xp[33], rank[33], g_status_sync

new SzGTeam[3][] = {
"Spectator",
"Terrorist",
"Counter-Terrorist"
}

new const xp_num[maxlevels+1] =
{
15, 70, 150, 250, 350, 450, 550, 650, 750, 850, 950, 1050, 1150, 1250, 1350, 1450, 1550, 1650,
1750, 1850, 1950, 2050, 2150, 2250, 2350, 2450, 2550,2650, 2750, 2850, 2950, 3050, 3150, 3250, 3350, 3450, 3550, 3650,
3750, 3850, 3950, 4050, 4150, 4250, 4350, 4450, 4550, 4650, 4750, 5000
}

new const ranks_names[maxranks][]=
{
"Silver I",
"Silver II",
"Silver III",
"Silver Elite",
"Silver Elite Master",
"Gold Nova I",
"Gold Nova II",
"Gold Nova Master",
"Master Guardian I",
"Master Guardian II",
"Master Guardian Elite",
"Distinguished Master Guardian",
"Legendary Eagle",
"Supreme Master First Class",
"The Global Elite"
}

public plugin_init()
{
register_plugin("XP + LEVEL + RANK SYSTEM", VERSION, AUTHOR)

// system of xp+lvl+rank
playerPrefix = register_cvar("Player Prefix", "1") //1-Prefix by RANK, 2-Prefix by LEVEL
rankLevelBonus = register_cvar("Level Up Bonus", "10000") // Amount of money when passing level.
rankSaveType = register_cvar("XP Save Type", "2") // 1 - IP || 2 - Nick || 3 - SteamID

register_cvar("XPLvlRankSystem", VERSION, FCVAR_SERVER | FCVAR_SPONLY ) //Search for variable on Gametracker.com

register_event("StatusValue", "showStatus", "be", "1=2", "2!0")
register_event("StatusValue", "hideStatus", "be", "1=1", "2=0")

register_clcmd("say", "hook_say");
register_clcmd("say_team", "hook_say_team");

register_dictionary("cs_rank_system.txt");

SzSayText = get_user_msgid ("SayText");
SzMaxPlayers = get_maxplayers();

register_message(SzSayText, "MsgDuplicate");

g_status_sync = CreateHudSyncObj()
}

/*----------------------------------------------------------------------------------------------------------------
-HUD OF THE GAME
----------------------------------------------------------------------------------------------------------------*/
public hud_status(id)
{
if(!is_user_alive(id) || !is_user_connected(id) )
return;
if(level[id] >= maxlevels)
{
static r, g, b; r = random_num(0, 255), g = random_num(0, 255), b = random_num(0, 255);
set_hudmessage(r, g, b, 0.80, -1.0, 0, 1.0, 1.1, 0.0, 0.0, -1)
show_hudmessage(id,"» Level: %d/%d^n» Rank: %s^n» XP: %d/%d", level[id], maxlevels, ranks_names[rank[id]], xp[id], xp[id])
}
else
{
set_hudmessage(255, 255, 255, 0.80, -1.0, 0, 1.0, 1.1, 0.0, 0.0, -1)
show_hudmessage(id,"» Level: %d/%d^n» Rank: %s^n» XP: %d/%d", level[id], maxlevels, ranks_names[rank[id]], xp[id], xp_num[level[id]])
}
}

/*----------------------------------------------------------------------------------------------------------------
-CHAT PREFIX
----------------------------------------------------------------------------------------------------------------*/
public MsgDuplicate(id){ return PLUGIN_HANDLED; }

public hook_say(id)
{
new SzMessages[192], SzName[32];
new SzAlive = is_user_alive(id);

read_args(SzMessages, 191);
remove_quotes(SzMessages);
get_user_name(id, SzName, 31);

if(!is_valid_msg(SzMessages))
return PLUGIN_CONTINUE;

switch(get_pcvar_num(playerPrefix))
{
case 1 :(SzAlive ? format(SzMessages, 191, "^4[%s] ^3%s : ^1%s", ranks_names[rank[id]], SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^4[%s] ^3%s : ^1%s", ranks_names[rank[id]], SzName, SzMessages));
case 2 :(SzAlive ? format(SzMessages, 191, "^4[Level %d] ^3%s : ^1%s", level[id], SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^4[Level %d] ^3%s : ^1%s", level[id], SzName, SzMessages));
}

for(new i = 1; i <= SzMaxPlayers; i++)
{
if(!is_user_connected(i))
continue;

message_begin(MSG_ONE, get_user_msgid("SayText"), {0, 0, 0}, i);
write_byte(id);
write_string(SzMessages);
message_end();
}

return PLUGIN_CONTINUE;
}

public hook_say_team(id)
{
new SzMessages[192], SzName[32];
new SzAlive = is_user_alive(id);
new SzGetTeam = get_user_team(id);

read_args(SzMessages, 191);
remove_quotes(SzMessages);
get_user_name(id, SzName, 31);

if(!is_valid_msg(SzMessages))
return PLUGIN_CONTINUE;

switch(get_pcvar_num(playerPrefix))
{
case 1 : (SzAlive ? format(SzMessages, 191, "^1(%s) ^4[%s] ^3%s : ^1%s", SzGTeam[SzGetTeam], ranks_names[rank[id]], SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^1(%s) ^4[%s] ^3%s : ^1%s", SzGTeam[SzGetTeam], ranks_names[rank[id]], SzName, SzMessages));
case 2 : (SzAlive ? format(SzMessages, 191, "^1(%s) ^4[Level %d] ^3%s : ^1%s", SzGTeam[SzGetTeam], level[id], SzName, SzMessages) : format(SzMessages, 191, "^1*DEAD* ^1(%s) ^4[Level %d] ^3%s : ^1%s", SzGTeam[SzGetTeam], level[id], SzName, SzMessages));
}

for(new i = 1; i <= SzMaxPlayers; i++)
{
if(!is_user_connected(i))
continue;

if(get_user_team(i) != SzGetTeam)
continue;

message_begin(MSG_ONE, get_user_msgid("SayText"), {0, 0, 0}, i);
write_byte(id);
write_string(SzMessages);
message_end();
}

return PLUGIN_CONTINUE;
}

bool:is_valid_msg(const SzMessages[])
{
if( SzMessages[0] == '@'
|| !strlen(SzMessages)){ return false; }
return true;
}

/*----------------------------------------------------------------------------------------------------------------
-EVENT TO ADD XP
----------------------------------------------------------------------------------------------------------------*/

public client_death(killer, victim, weapon, hitplace)
{
new victim_name[32]
get_user_name(victim, victim_name, charsmax(victim_name))

new killer_team = get_user_team(killer)
new victim_team = get_user_team(victim)

//NORMAL KILL
if((killer != victim) && !(killer_team == victim_team) && !(hitplace == HIT_HEAD) && !(weapon == CSW_HEGRENADE) && !(weapon == CSW_KNIFE))
{
xp[killer]++
client_print_color(killer, "!g[%s] %L", xPrefix, LANG_PLAYER, "MSG_NORMAL_KILL", victim_name)
}

//HEADSHOT
if(hitplace == HIT_HEAD && !(weapon == CSW_KNIFE) && !(killer_team == victim_team))
{
xp[killer]+=3
client_print_color(killer, "!g[%s] %L", xPrefix, LANG_PLAYER, "MSG_HEADSHOT_KILL", victim_name)
}

//KNIFE KILL
if(weapon == CSW_KNIFE && !(hitplace == HIT_HEAD) && !(killer_team == victim_team))
{
xp[killer]+=5
client_print_color(killer, "!g[%s] %L", xPrefix, LANG_PLAYER, "MSG_KNIFE_KILL", victim_name)
}

//KNIFE + HEADSHOT
if(weapon == CSW_KNIFE && (hitplace == HIT_HEAD) && !(killer_team == victim_team))
{
xp[killer]+=7
client_print_color(killer, "!g[%s] %L", xPrefix, LANG_PLAYER, "MSG_KNIFE_HEAD_KILL", victim_name)
}

//GRENADE KILL
if(weapon == CSW_HEGRENADE && (killer != victim) && !(killer_team == victim_team))
{
xp[killer]+=5
client_print_color(killer, "!g[%s] %L", xPrefix, LANG_PLAYER, "MSG_GRENADE_KILL", victim_name)
}

//SUICIDE
if(killer == victim)
{
xp[killer]-=2
client_print_color(killer, "!g[%s] %L", xPrefix, LANG_PLAYER, "MSG_SUICIDE")
}

//TEAM KILL
if(killer != victim && (killer_team == victim_team))
{
xp[killer]-=10
client_print_color(killer, "!g[%s] %L", xPrefix, LANG_PLAYER, "MSG_TEAM_KILL")
}

check_level(killer, 1)
save_data(killer)
}


/*----------------------------------------------------------------------------------------------------------------
-CHECK LEVEL OF ADD ++
----------------------------------------------------------------------------------------------------------------*/
public check_level(id, sound)
{
if(!is_user_connected(id))
return PLUGIN_HANDLED;

new name[32]; get_user_name(id, name, 31)

if(level[id] < maxlevels)
{
while(xp[id] >= xp_num[level[id]])
{
level[id]++

if(sound)
{
if(level[id] == maxlevels)
{
client_print_color(id, "!g[%s] %L", xPrefix, LANG_PLAYER, "MSG_MAXLVL_ID", level[id])
client_print_color(0, "!g[%s] %L",xPrefix, LANG_PLAYER, "MSG_MAXLVL_ALL", name, level[id])

client_cmd(0, "spk ambience/wolfhowl02.wav")

return PLUGIN_HANDLED
}

client_print_color(id,"!g[%s] %L",xPrefix,LANG_PLAYER, "MSG_RAISE_LEVEL_ID", get_pcvar_num(rankLevelBonus))
client_print_color(0, "!g[%s] %L",xPrefix,LANG_PLAYER, "MSG_RAISE_LEVEL_ALL", name, get_pcvar_num(rankLevelBonus))
cs_set_user_money(id, cs_get_user_money(id) + get_pcvar_num(rankLevelBonus))

client_cmd(0, "spk ambience/lv_fruit1.wav")

set_ranks(id)
}
}
}

// Bug Preventions... (Back to top)
if(level[id] == maxlevels && xp[id] > xp_num[level[id]-1])
{
xp[id] = xp_num[level[id]-1]
save_data(id)
}

if(level[id] >= maxlevels)
{
level[id] = maxlevels
xp[id] = xp_num[level[id]-1]
save_data(id)
}

return PLUGIN_HANDLED
}

/*----------------------------------------------------------------------------------------------------------------
-SET THE RANK POSITION
----------------------------------------------------------------------------------------------------------------*/
public set_ranks(id)
{
if(level[id] <= 2) rank[id] = RANKS_Silver I
if(level[id] >= 2) rank[id] = RANKS_Silver II
if(level[id] >= 5) rank[id] = RANKS_Silver III
if(level[id] >= 8) rank[id] = RANKS_Silver Elite
if(level[id] >= 11) rank[id] = RANKS_Silver Elite Master
if(level[id] >= 14) rank[id] = RANKS_Gold Nova I
if(level[id] >= 17) rank[id] = RANKS_Gold Nova II
if(level[id] >= 20) rank[id] = RANKS_Gold Nova Master
if(level[id] >= 23) rank[id] = RANKS_Master Guardian I
if(level[id] >= 26) rank[id] = RANKS_Master Guardian II
if(level[id] >= 29) rank[id] = RANKS_Master Guardian Elite
if(level[id] >= 32) rank[id] = RANKS_Distinguished Master Guardian
if(level[id] >= 33) rank[id] = RANKS_Legendary Eagle
if(level[id] >= 36) rank[id] = RANKS_Supreme Master First Class
if(level[id] >= 43) rank[id] = RANKS_The Global Elite

}

/*----------------------------------------------------------------------------------------------------------------
-SAVE LEVEL, XP AND RANK
----------------------------------------------------------------------------------------------------------------*/
public save_data(id)
{
if(!is_user_connected(id))
return PLUGIN_HANDLED;

new auth[40], data[50]

switch(get_pcvar_num(rankSaveType))
{
case 1: get_user_ip(id, auth, charsmax(auth), 1)
case 2: get_user_name(id, auth, charsmax(auth))
case 3: get_user_authid(id, auth, charsmax(auth))
}

formatex(data, charsmax(data), "%d %d", level[id], xp[id])

fvault_pset_data(db_save, auth, data)

return PLUGIN_HANDLED;
}

/*----------------------------------------------------------------------------------------------------------------
-LOAD DATA
----------------------------------------------------------------------------------------------------------------*/

public client_authorized(id)
{
new auth[40], data[50], x1[10], x2[10]

switch(get_pcvar_num(rankSaveType))
{
case 1: get_user_ip(id, auth, charsmax(auth), 1)
case 2: get_user_name(id, auth, charsmax(auth))
case 3: get_user_authid(id, auth, charsmax(auth))
}

fvault_get_data(db_save, auth, data, charsmax(data))
parse(data, x1, charsmax(x1), x2, charsmax(x2))

level[id] = str_to_num(x1)
xp[id] = str_to_num(x2)

set_task(2.0, "set_ranks", id)
check_level(id, 0)

set_task(1.1, "hud_status", id, _, _, "b")
}

/*----------------------------------------------------------------------------------------------------------------
-SHOW XP BY LOOKING AT THE PERSON
----------------------------------------------------------------------------------------------------------------*/

public showStatus(id)
{
if(!is_user_bot(id) && is_user_connected(id))
{
new name[32], pid = read_data(2)

get_user_name(pid, name, 31)

new xxx = get_user_team(id)
new xxx2 = get_user_team(pid)

static r, g, b;
r = random_num(0, 255), g = random_num(0, 255), b = random_num(0, 255);

if (xxx == xxx2) // friend
{
set_hudmessage(r, g, b, -1.0, 0.60, 1, 0.01, 3.0, 0.01, 0.01, -1)
ShowSyncHudMsg(id, g_status_sync, "Name: %s^nRank: %s^nLevel: %d^nXP: %d/%d", name, ranks_names[rank[pid]], level[pid], xp[pid], xp_num[level[pid]])
}
}
}

public hideStatus(id)
{
ClearSyncHud(id, g_status_sync)
}
User avatar
csf! #weed
Membru
Membru
Posts: 361
Joined: 7 years ago
Location: Croatia , CUVÂNT CENZURAT
Has thanked: 0
Been thanked: 0
Zodiac:
Age: 29
Contact:
Status: Offline

5 years ago

Eroarea pe care ti-o da cand incerci sa-l compilezi ?
STEAM SECUNDAR
Image


ALL RESPECT FOR WEED!
Image
User avatar
Rusu Radu
Moderator
Moderator
Posts: 2017
Joined: 8 years ago
Location: Dozer
Has thanked: 21 times
Been thanked: 7 times
Zodiac:
Age: 24
Contact:
Status: Offline
Jamaica

5 years ago

[downlink][Please login or register to view this link][/downlink]

Code: Select all

https://www53.zippyshare.com/v/MNZA2Nr6/file.html


Să îmi spui dacă îţi funcţionează !
Viaţa însăşi este magie, iar dacă nu crezi asta, măcar încearcă să o trăieşti ca pe ceva magic.


©Rusu Radu

2024 CSGAMERS IS HERE
User avatar
Ilegend1996
Membru
Membru
Posts: 14
Joined: 5 years ago
Has thanked: 0
Been thanked: 0
Status: Offline

5 years ago

Merge Ms !
Locked

Return to “Modificare plugin”