/* Sublime AMXX Editor v3.2 */
#include <amxmodx>
#include <reapi>
#include <regex>
#include <nvault>
#pragma semicolon 1
new const sPlayers[] = "addons/amxmodx/configs/ap_prefixes.ini";
new const sChatSay[] = "^x01{DEAD}^x03[^x04{LEVEL}^x03] {VIP}^x04{PREFIX}^x03 {NAME}^x01: {FLAG}{MESSAGE}";
new const ChatTag[] = "^1[ ^3- ^4VESSELAM^3- ^1]";
new const sLevelSystem[][][] = {
{ "ER", 0 }, // 0
{ "ONBASI", 15 }, // 1
{ "CAVUS", 30 }, // 2
{ "USTCAVUS", 100 }, // 3
{ "BASCAVUS", 200 }, // 4
{ "KDEMLI BASCAVUS", 550 }, // 5
{ "ASTSUBAY", 800 }, // 6
{ "USTASTSUBAY", 1250 }, // 7
{ "BASASTSUBAY", 2000 }, // 8
{ "TEGMEN", 2500 }, // 9
{ "USTEGMEN", 3000 }, // 10
{ "YUZBASI", 3500 }, // 11
{ "BINBASI", 4000 }, // 12
{ "YARBAY", 4500 }, // 13
{ "ALBAY", 5000 }, // 14
{ "TUGGENERAL", 5750 }, // 15
{ "TUMGENERAL", 6500 }, // 16
{ "KORGENERAL", 7000 }, // 17
{ "ORGENERAL", 10000 }, // 18
{ "MARESAL", 15000 }, // 19
{ "BASKOMUTAN", 20000 }, // 20
{ "GAZI", 30000 }, // 21
};
new g_iCurrentColor;
new const g_iYellowColor[3] = {0, 255, 0};
native checkprefix(id);
new const Knifes[][][] = {
{ "Knife Adı", "mdl dosyası", 0 }, // Knife adı, alabilecek rank.
{ "Vesselam Knife", "models/bicak/v_knifef.mdl", 0 },
{ "Talon", "models/bicak/v_talon.mdl", 2 },
{ "Karambit", "models/bicak/v_karambit.mdl", 3 },
{ "Cekic", "models/vesselammodels/cekic.mdl", 4 },
{ "Seker", "models/vesselammodels/seker.mdl", 5 },
{ "Klavye", "models/vesselammodels/klavye.mdl", 10 },
{ "Classic", "models/bicak/v_knife_classic.mdl", 14 },
{ "Altin", "models/vesselammodels/altin.mdl", 21 }
};
enum _: Variables {
Exp,
Level
}
new Vars[MAX_PLAYERS + 1][Variables], iCvars[5], iSayText, iTeamInfo, iVault, iSyncHud, ActiveKnife[MAX_PLAYERS + 1];
public plugin_precache() {
for (new i = 1; i < sizeof(Knifes); i++) {
precache_model(Knifes[i][1]);
}
}
public plugin_natives() {
register_native("ALS_GetUserExp", "@ALS_GUEX");
register_native("ALS_SetUserExp", "@ALS_SUEX");
register_native("ALS_GetUserLevel", "@ALS_GULV");
register_native("ALS_SetUserLevel", "@ALS_SULV");
register_native("ALS_GetMaxLevel", "@ALS_GMLV");
}
@ALS_GUEX() {
new nPlayerID = get_param(1);
return Vars[nPlayerID][Exp];
}
@ALS_SUEX() {
new nPlayerID = get_param(1), nAmount = get_param(2);
new iMaxLevel = (sizeof(sLevelSystem) - 1);
new iMaxExp = sLevelSystem[iMaxLevel][1][0];
if (nAmount >= iMaxExp) {
Vars[nPlayerID][Level] = iMaxLevel;
Vars[nPlayerID][Exp] = iMaxExp;
} else {
Vars[nPlayerID][Exp] = nAmount;
for (new i = 0; i < sizeof(sLevelSystem); i++) {
if (nAmount >= sLevelSystem[i][1][0]) {
Vars[nPlayerID][Level] = i;
} else {
break;
}
}
}
new sSteamID[33];
get_user_authid(nPlayerID, sSteamID, 32);
sSetIntData("%s>Exp", Vars[nPlayerID][Exp], sSteamID);
sSetIntData("%s>Level", Vars[nPlayerID][Level], sSteamID);
log_amx("Set Exp for %s: Exp=%d, Level=%d", sSteamID, Vars[nPlayerID][Exp], Vars[nPlayerID][Level]);
return PLUGIN_CONTINUE;
}
@ALS_GULV() {
new nPlayerID = get_param(1);
return Vars[nPlayerID][Level];
}
@ALS_SULV() {
new nPlayerID = get_param(1), nAmount = get_param(2);
new iMaxLevel = (sizeof(sLevelSystem) - 1);
if (nAmount >= iMaxLevel) {
Vars[nPlayerID][Level] = iMaxLevel;
Vars[nPlayerID][Exp] = sLevelSystem[iMaxLevel][1][0];
} else {
Vars[nPlayerID][Level] = nAmount;
Vars[nPlayerID][Exp] = sLevelSystem[nAmount][1][0];
}
new sSteamID[33];
get_user_authid(nPlayerID, sSteamID, 32);
sSetIntData("%s>Exp", Vars[nPlayerID][Exp], sSteamID);
sSetIntData("%s>Level", Vars[nPlayerID][Level], sSteamID);
log_amx("Set Level for %s: Exp=%d, Level=%d", sSteamID, Vars[nPlayerID][Exp], Vars[nPlayerID][Level]);
return PLUGIN_CONTINUE;
}
@ALS_GMLV() {
return (sizeof(sLevelSystem) - 1);
}
public plugin_cfg() {
iVault = nvault_open("ALS_V1");
if (iVault == INVALID_HANDLE) {
log_amx("Failed to open vault ALS_V1");
}
}
public plugin_init() {
register_plugin("Advanced Level System", "1.0", "PawNod', Maravilha+MikeField");
register_concmd("amx_give_level", "@GiveLevel", ADMIN_RCON, "<isim> <miktar>, belirlenen kisiye level verir");
register_clcmd("say", "@HookSay");
RegisterHookChain(RG_CBasePlayer_Killed, "@IsKilled", .post = true);
RegisterHookChain(RG_CBasePlayerWeapon_DefaultDeploy, "@CBasePlayerWeapon_DefaultDeploy_Pre", .post = false);
iSayText = get_user_msgid("SayText");
iTeamInfo = get_user_msgid("TeamInfo");
Cvars();
register_clcmd("say /rutbe", "RutbeInformation");
register_clcmd("say !rutbe", "RutbeInformation");
register_clcmd("say .rutbe", "RutbeInformation");
register_clcmd("say /rütbe", "RutbeInformation");
register_clcmd("say !rütbe", "RutbeInformation");
register_clcmd("say .rütbe", "RutbeInformation");
register_clcmd("say /bicak", "@anamenu");
register_clcmd("say !rutbebic", "@anamenu");
register_clcmd("say .rutbebic", "@anamenu");
register_clcmd("say /rutbebicak", "@anamenu");
register_clcmd("say !rutbebicak", "@anamenu");
register_clcmd("say .rutbebicak", "@anamenu");
iSyncHud = CreateHudSyncObj();
if (!file_exists(sPlayers)) {
log_amx("%s Dosya Bulunamadi.", sPlayers);
}
set_task(1.0, "ChangeColors", 123123, _, _, "b");
}
public ChangeColors() {
g_iCurrentColor = (g_iCurrentColor + 1) % 5;
new players[32], num;
get_players(players, num, "ch");
for(new i = 0; i < num; i++) {
ShowHudMessage(players[i] + 125721);
}
}
@CBasePlayerWeapon_DefaultDeploy_Pre(const pEntity, szViewModel[], szWeaponModel[], iAnim, szAnimExt[], skiplocal) {
if (get_member(pEntity, m_iId) != WEAPON_KNIFE) {
return;
}
new pPlayer = get_member(pEntity, m_pPlayer);
if (ActiveKnife[pPlayer] > 0) {
SetHookChainArg(2, ATYPE_STRING, Knifes[ActiveKnife[pPlayer]][1]);
}
}
@anamenu(const id) {
new menu = menu_create(fmt("\dVESSELAM\w| \yBıçak Menüsü"), "@anamenu_devam");
for (new i = 1; i < sizeof(Knifes); i++) {
menu_additem(menu, fmt("\dVESSELAM\w| \y%s \d(%s)", Knifes[i][0], sLevelSystem[Knifes[i][2][0]][0]), fmt("%d", i));
}
menu_display(id, menu);
}
@anamenu_devam(const id, const menu, const item) {
if (item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6];
menu_item_getinfo(menu, item, _, data, charsmax(data));
new key = str_to_num(data);
if (Vars[id][Level] < Knifes[key][2][0]) {
client_print_color(id, id, "%s ^4Bu bıçak modelini almak için rütbeniz yeterli değil^1!", ChatTag);
return PLUGIN_HANDLED;
}
ActiveKnife[id] = key;
rg_remove_item(id, "weapon_knife");
rg_give_item(id, "weapon_knife");
menu_destroy(menu);
return PLUGIN_HANDLED;
}
Cvars() {
bind_pcvar_num(create_cvar("ALS_Give_Exp", "1"), iCvars[0]);
bind_pcvar_num(create_cvar("ALS_Give_Min_Exp", "20"), iCvars[1]);
bind_pcvar_num(create_cvar("ALS_Give_Max_Exp", "70"), iCvars[2]);
bind_pcvar_num(create_cvar("ALS_Chat", "1"), iCvars[3]);
bind_pcvar_num(create_cvar("ALS_Chat_Messages", "0"), iCvars[4]);
}
@GiveLevel(const iPlayer, const iLVL, const iCid) {
if (~get_user_flags(iPlayer) & ADMIN_RCON)
return PLUGIN_HANDLED;
new iStringName[18], iStringAmount[18];
read_argv(1, iStringName, 17);
read_argv(2, iStringAmount, 17);
new iAmmount = str_to_num(iStringAmount);
new iMaxLevel = (sizeof(sLevelSystem) - 1);
new iMaxExp = sLevelSystem[iMaxLevel][1][0];
if (iStringName[0] == '@') {
new iPlayers[32], iPlayerNum, iPlayerad;
switch (iStringName[1]) {
case 't', 'T': {
get_players(iPlayers, iPlayerNum, "ae", "TERRORIST");
client_print_color(0, 0, "^4[ ^3%n ^4] ^1adli admin ^4[ ^3Zombiler ^4] ^1'e ^4[ ^3%i Exp ^4] ^1verdi^4.", iPlayer, iAmmount);
}
case 'c', 'C': {
get_players(iPlayers, iPlayerNum, "ae", "CT");
client_print_color(0, 0, "^4[ ^3%n ^4] ^1adli admin ^4[ ^3Insanlar ^4] ^1'a ^4[ ^3%i Exp ^4] ^1verdi^4.", iPlayer, iAmmount);
}
case 'a', 'A': {
get_players(iPlayers, iPlayerNum, "a");
client_print_color(0, 0, "^4[ ^3%n ^4] ^1adli admin ^4[ ^3Herkes ^4] ^1'e ^4[ ^3%i Exp ^4] ^1verdi^4.", iPlayer, iAmmount);
}
default: {
get_players(iPlayers, iPlayerNum, "a");
client_print_color(0, 0, "^4[ ^3%n ^4] ^1adli admin ^4[ ^3Herkes ^4] ^1'e ^4[ ^3%i Exp ^4] ^1verdi^4.", iPlayer, iAmmount);
}
}
for (new i = 0; i < iPlayerNum; i++) {
iPlayerad = iPlayers[i];
Vars[iPlayerad][Exp] += iAmmount;
if (Vars[iPlayerad][Exp] >= iMaxExp) {
Vars[iPlayerad][Exp] = iMaxExp;
Vars[iPlayerad][Level] = iMaxLevel;
} else {
while (Vars[iPlayerad][Exp] >= sLevelSystem[Vars[iPlayerad][Level] + 1][1][0] && Vars[iPlayerad][Level] < iMaxLevel) {
Vars[iPlayerad][Level]++;
}
}
new sSteamID[33];
get_user_authid(iPlayerad, sSteamID, 32);
sSetIntData("%s>Exp", Vars[iPlayerad][Exp], sSteamID);
sSetIntData("%s>Level", Vars[iPlayerad][Level], sSteamID);
log_amx("GiveLevel (Team): %s, Exp=%d, Level=%d", sSteamID, Vars[iPlayerad][Exp], Vars[iPlayerad][Level]);
}
return PLUGIN_HANDLED;
}
new iUID = find_player("bl", iStringName);
if (!iUID) {
client_print_color(iPlayer, iPlayer, "^4Oyuncu bulunamadi!");
return PLUGIN_HANDLED;
}
Vars[iUID][Exp] += iAmmount;
if (Vars[iUID][Exp] >= iMaxExp) {
Vars[iUID][Exp] = iMaxExp;
Vars[iUID][Level] = iMaxLevel;
} else {
while (Vars[iUID][Exp] >= sLevelSystem[Vars[iUID][Level] + 1][1][0] && Vars[iUID][Level] < iMaxLevel) {
Vars[iUID][Level]++;
}
}
new sSteamID[33];
get_user_authid(iUID, sSteamID, 32);
sSetIntData("%s>Exp", Vars[iUID][Exp], sSteamID);
sSetIntData("%s>Level", Vars[iUID][Level], sSteamID);
log_amx("GiveLevel (Individual): %s, Exp=%d, Level=%d", sSteamID, Vars[iUID][Exp], Vars[iUID][Level]);
client_print_color(0, 0, "^4[ ^3%n ^4] ^1adli admin ^4[ ^3%n ^4] ^1adli kisiye ^4[ ^3%i Exp ^4] ^1verdi^4.", iPlayer, iUID, iAmmount);
return PLUGIN_HANDLED;
}
@HookSay(const iPlayer) {
new iMessage[312];
read_args(iMessage, charsmax(iMessage));
remove_quotes(iMessage);
if (!iCvars[3])
return PLUGIN_CONTINUE;
if (iMessage[0] == '@' || iMessage[0] == '.' || iMessage[0] == '/' || iMessage[0] == '!' || equal(iMessage, ""))
return PLUGIN_CONTINUE;
new sNewData[128], iColor[10];
copy(sNewData, charsmax(sNewData), sChatSay);
get_user_team(iPlayer, iColor, charsmax(iColor));
new prefix[32];
GetPrefixForPlayer(fmt("%n", iPlayer), prefix);
new flags = get_user_flags(iPlayer);
new szTag[32] = "";
if (flags & ADMIN_RCON) {
formatex(szTag, charsmax(szTag), "^x04[Kurucu] ");
} else if (flags & ADMIN_BAN) {
formatex(szTag, charsmax(szTag), "^x04[ADMIN] ");
} else if (flags & ADMIN_KICK) {
formatex(szTag, charsmax(szTag), "^x04[SLOT] ");
} else if (flags & ADMIN_RESERVATION) {
formatex(szTag, charsmax(szTag), "^x04[VIP] ");
}
replace_all(sNewData, charsmax(sNewData), "{VIP}", szTag);
is_user_alive(iPlayer) ? (replace_all(sNewData, charsmax(sNewData), "{DEAD}", "")) : (replace_all(sNewData, charsmax(sNewData), "{DEAD}", "(x) "));
replace_all(sNewData, charsmax(sNewData), "{FLAG}", get_user_flags(iPlayer) & ADMIN_RESERVATION ? "^x04" : "^x01");
replace_all(sNewData, charsmax(sNewData), "{LEVEL}", sLevelSystem[Vars[iPlayer][Level]][0][0]);
replace_all(sNewData, charsmax(sNewData), "{PREFIX}", prefix);
replace_all(sNewData, charsmax(sNewData), "{NAME}", fmt("%n", iPlayer));
replace_all(sNewData, charsmax(sNewData), "{MESSAGE}", iMessage);
@sendMessage(iColor, is_user_alive(iPlayer) ? 1 : 0, sNewData);
return PLUGIN_HANDLED;
}
@IsKilled(const iVictim, const iAttacker) {
if (!is_user_connected(iAttacker) || iVictim == iAttacker) return;
new exp_to_add = (iCvars[0] == 0) ? random_num(iCvars[1], iCvars[2]) : iCvars[0];
if (LevelChecker(iAttacker, false, exp_to_add)) {
Vars[iAttacker][Exp] += exp_to_add;
new sSteamID[33];
get_user_authid(iAttacker, sSteamID, 32);
sSetIntData("%s>Exp", Vars[iAttacker][Exp], sSteamID);
log_amx("Exp added for %s: Exp=%d, Level=%d", sSteamID, Vars[iAttacker][Exp], Vars[iAttacker][Level]);
ShowHudMessage(iAttacker + 125721);
}
if (LevelChecker(iAttacker, true, 0)) {
@LevelUp(iAttacker);
}
}
@LevelUp(const iPlayer) {
Vars[iPlayer][Level]++;
client_print_color(iPlayer, iPlayer, "%s ^1Basarili bir sekilde ^4Level Atladiniz^1!", ChatTag);
new sSteamID[33];
get_user_authid(iPlayer, sSteamID, 32);
sSetIntData("%s>Level", Vars[iPlayer][Level], sSteamID);
log_amx("Level up for %s: Exp=%d, Level=%d", sSteamID, Vars[iPlayer][Exp], Vars[iPlayer][Level]);
}
public client_putinserver(iPlayer) {
new sSteamID[33];
get_user_authid(iPlayer, sSteamID, 32);
Vars[iPlayer][Exp] = sGetIntData("%s>Exp", sSteamID);
Vars[iPlayer][Level] = sGetIntData("%s>Level", sSteamID);
new iMaxLevel = (sizeof(sLevelSystem) - 1);
new iMaxExp = sLevelSystem[iMaxLevel][1][0];
if (Vars[iPlayer][Level] < 0 || Vars[iPlayer][Level] >= sizeof(sLevelSystem)) {
Vars[iPlayer][Level] = 0;
Vars[iPlayer][Exp] = 0;
} else if (Vars[iPlayer][Exp] < 0 || Vars[iPlayer][Exp] > iMaxExp) {
Vars[iPlayer][Exp] = sLevelSystem[Vars[iPlayer][Level]][1][0];
}
for (new i = 0; i < sizeof(sLevelSystem); i++) {
if (Vars[iPlayer][Exp] >= sLevelSystem[i][1][0]) {
Vars[iPlayer][Level] = i;
} else {
break;
}
}
sSetIntData("%s>Exp", Vars[iPlayer][Exp], sSteamID);
sSetIntData("%s>Level", Vars[iPlayer][Level], sSteamID);
log_amx("Player %s connected: Exp=%d, Level=%d", sSteamID, Vars[iPlayer][Exp], Vars[iPlayer][Level]);
set_task(3.0, "ChatReklami", iPlayer);
set_task(1.0, "ShowHudMessage", iPlayer + 125721, .flags = "b");
}
public ShowHudMessage(Taskid) {
new id = Taskid - 125721;
if (!is_user_connected(id)) return;
new playerName[32];
get_user_name(id, playerName, sizeof(playerName));
set_hudmessage(
g_iYellowColor[0],
g_iYellowColor[1],
g_iYellowColor[2],
0.85,
0.75,
0,
0.0,
1.0,
0.0,
0.0,
iSyncHud
);
new levelName[32];
copy(levelName, sizeof(levelName), sLevelSystem[Vars[id][Level]][0][0]);
if (Vars[id][Level] < (sizeof(sLevelSystem) - 1)) {
ShowSyncHudMsg(id, iSyncHud, "[Rutben: %s]^n[Frag: %i/%i]",
levelName,
Vars[id][Exp],
sLevelSystem[Vars[id][Level] + 1][1][0]
);
} else {
ShowSyncHudMsg(id, iSyncHud, "[Rutben: %s]^n[Frag: %i/MAX]",
levelName,
Vars[id][Exp]
);
}
}
public ChatReklami(id) {
if (is_user_connected(id)) {
client_print_color(id, id, "%s ^4Servera hosgeldiniz, serverda [RUTBE BICAK] sistemi vardir!^1!", ChatTag);
if (Vars[id][Level] < (sizeof(sLevelSystem) - 1)) {
client_print_color(id, id, "%s ^4/bicak yazarak ^4sistemi acabilirsiniz!^1!", ChatTag);
}
}
}
public plugin_end() {
new players[32], num;
get_players(players, num, "ch");
for (new i = 0; i < num; i++) {
new id = players[i];
new sSteamID[33];
get_user_authid(id, sSteamID, 32);
sSetIntData("%s>Exp", Vars[id][Exp], sSteamID);
sSetIntData("%s>Level", Vars[id][Level], sSteamID);
log_amx("Plugin end - Saved for %s: Exp=%d, Level=%d", sSteamID, Vars[id][Exp], Vars[id][Level]);
}
nvault_close(iVault);
}
public client_disconnected(iPlayer) {
remove_task(iPlayer + 125721);
new sSteamID[33];
get_user_authid(iPlayer, sSteamID, 32);
sSetIntData("%s>Exp", Vars[iPlayer][Exp], sSteamID);
sSetIntData("%s>Level", Vars[iPlayer][Level], sSteamID);
log_amx("Player %s disconnected: Exp=%d, Level=%d", sSteamID, Vars[iPlayer][Exp], Vars[iPlayer][Level]);
Vars[iPlayer][Exp] = 0;
Vars[iPlayer][Level] = 0;
}
bool:LevelChecker(const iPlayer, const bool:IsExp, const iExpAmout) {
new iMaxExp, iMaxLevel;
iMaxLevel = (sizeof(sLevelSystem) - 1);
iMaxExp = sLevelSystem[iMaxLevel][1][0];
if (IsExp) {
if (Vars[iPlayer][Exp] >= iMaxExp) {
Vars[iPlayer][Level] = iMaxLevel;
return false;
}
if (Vars[iPlayer][Exp] < sLevelSystem[Vars[iPlayer][Level] + 1][1][0])
return false;
if (Vars[iPlayer][Level] >= iMaxLevel) {
Vars[iPlayer][Level] = iMaxLevel;
return false;
}
} else {
if (Vars[iPlayer][Exp] + iExpAmout >= iMaxExp) {
Vars[iPlayer][Exp] = iMaxExp;
Vars[iPlayer][Level] = iMaxLevel;
new sSteamID[33];
get_user_authid(iPlayer, sSteamID, 32);
sSetIntData("%s>Exp", Vars[iPlayer][Exp], sSteamID);
sSetIntData("%s>Level", Vars[iPlayer][Level], sSteamID);
return false;
}
}
return true;
}
@sendMessage(const color[], const alive, const message[]) {
new teamName[10];
for (new player = 1; player <= MaxClients; player++) {
if (!is_user_connected(player))
continue;
if (alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_user_flags(player) & ADMIN_LEVEL_C) {
get_user_team(player, teamName, 9);
@changeTeamInfo(player, color);
@writeMessage(player, message);
@changeTeamInfo(player, teamName);
}
}
}
@changeTeamInfo(const player, const team[]) {
message_begin(MSG_ONE, iTeamInfo, _, player);
write_byte(player);
write_string(team);
message_end();
}
@writeMessage(const player, const message[]) {
message_begin(MSG_ONE, iSayText, { 0, 0, 0 }, player);
write_byte(player);
write_string(message);
message_end();
}
stock sGetIntData(const sKey[], any:...) {
new sFixedData[128];
vformat(sFixedData, 127, sKey, 2);
new value = nvault_get(iVault, sFixedData);
log_amx("Loaded from vault: %s = %d", sFixedData, value);
return value;
}
stock sSetIntData(const sKey[], const iData, any:...) {
new sFixedData[128], sNTS[48];
vformat(sFixedData, 127, sKey, 3);
num_to_str(iData, sNTS, 47);
nvault_set(iVault, sFixedData, sNTS);
log_amx("Saved to vault: %s = %d", sFixedData, iData);
}
public RutbeInformation(Player) {
new Arg[2126], Num;
Num += formatex(Arg[Num], 2126 - Num, "<meta charset=UTF-8><style>body{background:#000;font-family:Arial}th{border-left:1px solid #FF0000;border-top:1px solid #FF0000}table{background:#000;font-size:11px;color:#FFF;border-right:1px solid #FF0000;border-bottom:1px solid #FF0000;padding:3px}h2,h3{color:#FFF}#c{background:#FF9B00;color:#000}img{height:10px;background:#00E930;margin:0 3px}#r{height:10px;background:#B6423C}#clr{background:none;color:#FFF;font-size:20px;border:0} .powered{color:#FF0000}</style>");
Num += formatex(Arg[Num], 2126 - Num, "<body><table width=100%% border=0 align=center cellpadding=0 cellspacing=1>");
Num += formatex(Arg[Num], 2126 - Num, "<tr><th>#<th>Rütbe Adı<th>Gereken Kill</tr>");
for (new i = 1; i < sizeof(sLevelSystem); i++) {
Num += formatex(Arg[Num], 2126 - Num, "<tr><th>%i<th>%s<th>%d</tr>", i, sLevelSystem[i][0][0], sLevelSystem[i][1][0]);
}
Num += formatex(Arg[Num], 2126 - Num, "</table><br><center class='powered'>Powered By
WWW.VESSELAM.COM.TR</center>");
show_motd(Player, Arg, "Rütbe Bilgilendirmesi");
}
stock GetPrefixForPlayer(const playerName[], output[]) {
new line[128], part1[32], part2[32], part3[32];
new file = fopen(sPlayers, "r");
if (file == INVALID_HANDLE) {
server_print("Dosya açılamadı: %s", sPlayers);
return 0;
}
while (fgets(file, line, sizeof(line))) {
parse(line, part1, sizeof(part1), part2, sizeof(part2), part3, sizeof(part3));
if (equali(part2, playerName)) {
copy(output, 32, part3);
fclose(file);
return 1;
}
}
copy(output, 32, "");
fclose(file);
return 0;
}