[attachment=22708][attachment=22708][attachment=22708]
[attachment=22708]
csduragında calısıyordu x bir firmadan sunucu acıldı cs duragının amx 1.9 kullandıgını aldıgımız yerın amx 1.10 kullandıklarını soyledıler
özetle ektekı plugını amx 1.10a gore yapılıcak tesekkürler simdiden
Konu
(27-12-2025, 00:53)rexluca Adlı Kullanıcıdan Alıntı:hata ne ?(27-12-2025, 00:33)-.RuFF Adlı Kullanıcıdan Alıntı: Hatalı olan ne eklentiyi paylaş bakalımpaylastım hocam
"Website ve Ücretli eklenti için ulaşabilirsiniz."
(27-12-2025, 00:59)rexluca Adlı Kullanıcıdan Alıntı: hata yok calısmıyor amaDeneyebilirsin;
Kod:
/* Sublime AMXX Editor v3.2 - Cleaned & Optimized */
#include <amxmodx>
#include <reapi>
#include <regex>
#include <nvault>
#pragma semicolon 1
#define MAX_RUTBE 22
new const szCheckTag[] = "PROF";
new const szRegenerateTag[] = "^x04PROF^x01@^x03";
new const sChatSay[] = "^x01{DEAD}^x03[^x04{LEVEL}^x03] ^x04{TAG} ^x03{NAME}^x01: {FLAG}{MESSAGE}";
new const ChatTag[] = "^1[ ^3- ^4ASKERI RUTBE SISTEMI ^3- ^1]";
new const sLevelSystem[][][] = {
{"Er", 0},
{"Onbasi", 10},
{"Uz.Onb.", 50},
{"Uz.Cvs.", 100},
{"Asb. Cvs", 200},
{"Asb. Kd. Cvs", 300},
{"Asb. Ucvs", 400},
{"Asb. Kd. Ucvs", 500},
{"Asb. Bcvs", 700},
{"Asb. Kd. Bcvs", 900},
{"Astegmen", 1000},
{"Tegmen", 2000},
{"Ustegmen", 4000},
{"Yuzbasi", 8000},
{"Binbasi", 18000},
{"Yarbay", 33000},
{"Albay", 53000},
{"Tuggeneral", 83000},
{"Tumgeneral", 123000},
{"Korgeneral", 173000},
{"Orgeneral", 223000},
{"Genelkurmay Baskani", 303000},
{"Maresal", 403000}
};
new const szAdminTags[][][] = {
{"a"," K"},
{"t"," CAPTAN"},
{"l"," YONETIM"},
{"o"," E-ADMIN"},
{"s"," ADMIN"},
{"r"," SLOT"}
};
enum _: Variables {
Exp,
Level,
bool:Spamming
}
new Vars[MAX_PLAYERS+1][Variables], iCvars[5], iSayText, iTeamInfo, iVault, szUserAdminTag[MAX_PLAYERS+1][64], iUserYetkili[MAX_PLAYERS+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() return Vars[get_param(1)][Exp];
@ALS_GULV() return Vars[get_param(1)][Level];
@ALS_GMLV() return (sizeof(sLevelSystem)-1);
@ALS_SUEX() {
new nPlayerID = get_param(1), nAmount = get_param(2);
new iMaxLevel = (sizeof(sLevelSystem)-1);
if(nAmount >= sLevelSystem[iMaxLevel][1][0]) {
Vars[nPlayerID][Level] = iMaxLevel;
Vars[nPlayerID][Exp] = sLevelSystem[iMaxLevel][1][0];
} else {
Vars[nPlayerID][Exp] = nAmount;
for(new i=iMaxLevel; i >= 0; i--) {
if(nAmount >= sLevelSystem[i][1][0]) {
Vars[nPlayerID][Level] = i;
break;
}
}
}
return PLUGIN_CONTINUE;
}
@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];
}
return PLUGIN_CONTINUE;
}
public plugin_cfg() iVault = nvault_open("ALS_V4");
public plugin_end() nvault_close(iVault);
public plugin_init() {
register_plugin("Advanced Level System", "1.3", "PawNod'");
register_concmd("amx_give_level","@GiveLevel",ADMIN_IMMUNITY,"<isim> <miktar>");
register_clcmd("say","@Hook_Say");
register_clcmd("say /rutbe","@Sonraki_Rutbe");
register_clcmd("say /rutbeler","@ToplamRutbe");
RegisterHookChain(RG_CBasePlayer_Killed, "@IsKilled", .post = true);
iSayText = get_user_msgid("SayText");
iTeamInfo = get_user_msgid("TeamInfo");
Cvars();
}
@Sonraki_Rutbe(const iPlayer) {
new iMaxLevel = (sizeof(sLevelSystem)-1);
if(Vars[iPlayer][Level] < iMaxLevel) {
client_print_color(iPlayer, iPlayer, "Siradaki rutbeniz ^4(%s) ^1Almaniz gereken kill: ^3(%i)", sLevelSystem[Vars[iPlayer][Level]+1][0][0], sLevelSystem[Vars[iPlayer][Level]+1][1][0]-Vars[iPlayer][Exp]);
client_print_color(iPlayer, iPlayer, "Mevcut Kill: ^3%i | ^1Hedef Sayi: ^3%i!", Vars[iPlayer][Exp], sLevelSystem[Vars[iPlayer][Level]+1][1][0]);
} else {
client_print_color(iPlayer, iPlayer, "Maksimum rutbeye ulastiniz ^4(%s)^1!", sLevelSystem[Vars[iPlayer][Level]][0][0]);
}
}
@ToplamRutbe(const iPlayer) {
new szMotd[2048], iPos;
// Arkaplan siyah (#000), yazilar beyaz (#FFF) yapildi.
iPos = format(szMotd, charsmax(szMotd),"<body bgcolor=#000000 style='color:#FFFFFF; font-family:sans-serif;'><center><table width=90%% border=0 style='text-align:center; border:1px solid #444;'>");
iPos += format(szMotd[iPos], charsmax(szMotd)-iPos,"<tr bgcolor=#222222 style='font-weight:bold;'><td>#</td><td>Rutbe Ismi</td><td>Toplam Kill</td></tr>");
for(new i = 0; i < sizeof sLevelSystem; i++) {
// Satir aralarina hafif renk farki eklendi (okunabilirlik icin)
iPos += format(szMotd[iPos], charsmax(szMotd)-iPos,"<tr bgcolor=%s><td>%d</td><td>%s</td><td>%d</td></tr>", (i % 2 == 0) ? "#111111" : "#181818", i+1, sLevelSystem[i][0][0], sLevelSystem[i][1][0]);
}
iPos += format(szMotd[iPos], charsmax(szMotd)-iPos,"</table></center></body>");
show_motd(iPlayer, szMotd, "Rutbe Listesi");
}
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","1"), iCvars[4]);
}
@GiveLevel(const iPlayer, const iLevelFlags, const iCid) {
if(!(get_user_flags(iPlayer) & ADMIN_IMMUNITY)) return PLUGIN_HANDLED;
new iStringName[32], iStringAmount[10];
read_argv(1, iStringName, charsmax(iStringName));
read_argv(2, iStringAmount, charsmax(iStringAmount));
new iAmmount = str_to_num(iStringAmount);
new iMaxLevel = (sizeof(sLevelSystem)-1);
if(iStringName[0] == '@') {
new iPlayers[32], iPlayerNum, iTemp;
get_players(iPlayers, iPlayerNum, "ch");
for(new i = 0; i < iPlayerNum; i++) {
iTemp = iPlayers[i];
Vars[iTemp][Level] = min(iMaxLevel, Vars[iTemp][Level] + iAmmount);
Vars[iTemp][Exp] = sLevelSystem[Vars[iTemp][Level]][1][0];
new sAuth[32]; get_user_authid(iTemp, sAuth, charsmax(sAuth));
sSetIntData("%s>Exp", Vars[iTemp][Exp], sAuth);
sSetIntData("%s>Level", Vars[iTemp][Level], sAuth);
}
client_print_color(0, 0, "%s Admin ^4%n ^1herkese ^4%i Level ^1verdi!", ChatTag, iPlayer, iAmmount);
return PLUGIN_HANDLED;
}
new iTarget = find_player("bl", iStringName);
if(iTarget) {
Vars[iTarget][Level] = min(iMaxLevel, Vars[iTarget][Level] + iAmmount);
Vars[iTarget][Exp] = sLevelSystem[Vars[iTarget][Level]][1][0];
new sAuth[32]; get_user_authid(iTarget, sAuth, charsmax(sAuth));
sSetIntData("%s>Exp", Vars[iTarget][Exp], sAuth);
sSetIntData("%s>Level", Vars[iTarget][Level], sAuth);
client_print_color(0, 0, "%s Admin ^4%n, ^3%n ^1kisisine ^4%i Level ^1verdi!", ChatTag, iPlayer, iTarget, iAmmount);
}
return PLUGIN_HANDLED;
}
@Hook_Say(const iPlayer) {
if(iCvars[4] == 0) return PLUGIN_CONTINUE;
new iMessage[191];
read_args(iMessage, charsmax(iMessage));
remove_quotes(iMessage);
if(!iMessage[0] || iMessage[0] == '@' || iMessage[0] == '/' || iMessage[0] == '!') return PLUGIN_CONTINUE;
// Reklam Filtresi
new ret, szError[128], Regex:iSayCheck = regex_compile("[0-9]{5,}", ret, szError, 127);
if(regex_match_c(iMessage, iSayCheck, ret)) {
client_print_color(iPlayer, iPlayer, "^4[HATA] ^1Mesajinizda cok fazla rakam var, reklam engellendi!");
regex_free(iSayCheck);
return PLUGIN_HANDLED;
}
regex_free(iSayCheck);
new sNewData[191], szTagData[128], iColor[10];
get_user_team(iPlayer, iColor, charsmax(iColor));
copy(sNewData, charsmax(sNewData), sChatSay);
if(iUserYetkili[iPlayer]) formatex(szTagData, 127, "^x04[^x03%s^x04]", szUserAdminTag[iPlayer]);
else szTagData = "";
replace_all(sNewData, charsmax(sNewData), "{TAG}", szTagData);
replace_all(sNewData, charsmax(sNewData), "{DEAD}", is_user_alive(iPlayer) ? "" : "(OLU) ");
replace_all(sNewData, charsmax(sNewData), "{LEVEL}", sLevelSystem[Vars[iPlayer][Level]][0][0]);
replace_all(sNewData, charsmax(sNewData), "{NAME}", fmt("^x03%n", iPlayer));
replace_all(sNewData, charsmax(sNewData), "{FLAG}", (get_user_flags(iPlayer) & ADMIN_RESERVATION) ? "^x04" : "^x01");
replace_all(sNewData, charsmax(sNewData), "{MESSAGE}", iMessage);
@sendMessage(iColor, is_user_alive(iPlayer), sNewData);
return PLUGIN_HANDLED;
}
@IsKilled(const iVictim, const iAttacker) {
if(!is_user_connected(iAttacker) || iVictim == iAttacker) return;
new iExpGained = (iCvars[0] == 0) ? random_num(iCvars[1], iCvars[2]) : iCvars[0];
new iMaxLevel = (sizeof(sLevelSystem)-1);
if(Vars[iAttacker][Level] < iMaxLevel) {
Vars[iAttacker][Exp] += iExpGained;
new sAuth[32]; get_user_authid(iAttacker, sAuth, charsmax(sAuth));
sSetIntData("%s>Exp", Vars[iAttacker][Exp], sAuth);
if(Vars[iAttacker][Exp] >= sLevelSystem[Vars[iAttacker][Level] + 1][1][0]) {
Vars[iAttacker][Level]++;
client_print_color(iAttacker, iAttacker, "%s ^1Basarili bir sekilde ^4Rutbe Atladiniz^1! Yeni Rutbe: ^4%s", ChatTag, sLevelSystem[Vars[iAttacker][Level]][0][0]);
sSetIntData("%s>Level", Vars[iAttacker][Level], sAuth);
}
}
}
public client_putinserver(iPlayer) {
new sAuth[32]; get_user_authid(iPlayer, sAuth, charsmax(sAuth));
Vars[iPlayer][Exp] = sGetIntData("%s>Exp", sAuth);
Vars[iPlayer][Level] = sGetIntData("%s>Level", sAuth);
iUserYetkili[iPlayer] = 0;
for(new i = 0; i < sizeof(szAdminTags); i++) {
if(get_user_flags(iPlayer) & read_flags(szAdminTags[i][0][0])) {
copy(szUserAdminTag[iPlayer], 63, szAdminTags[i][1][0]);
iUserYetkili[iPlayer] = 1;
break;
}
}
}
@sendMessage(const color[], const alive, const message[]) {
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_BAN)) {
new teamName[10]; 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, _, player);
write_byte(player); write_string(message); message_end();
}
stock sGetIntData(const sKey[], any:...){
new sFixedData[128]; vformat(sFixedData, 127, sKey, 2);
return nvault_get(iVault, sFixedData);
}
stock sSetIntData(const sKey[], const iData, any:...){
new sFixedData[128], sNTS[12]; vformat(sFixedData, 127, sKey, 3);
num_to_str(iData, sNTS, 11); nvault_set(iVault, sFixedData, sNTS);
} "Website ve Ücretli eklenti için ulaşabilirsiniz."
Son Düzenleme: 27-12-2025, 01:29, Düzenleyen: -.RuFF.
elıne saglık tesekkür ederim bir sorun var sadece steam yazmıyor sadece yanda nonsteamdada useryazması gerekiyor
(27-12-2025, 01:11)rexluca Adlı Kullanıcıdan Alıntı: elıne saglık tesekkür ederim bir sorun var sadece steam yazmıyor sadece yanda nonsteamdada useryazması gerekiyorDemek istedğin steam ve / non-steam veya user de olsa [user] mi yazsın?
"Website ve Ücretli eklenti için ulaşabilirsiniz."
Yok yetkılerın yanında örnek suan YONETIM VARYA onun onunde kullanıcı steamsa steam YONETICI non steamsa sadece YONETICI eger yetkısı yoksa swde STEAM USER non steamsa USER yazsın
Son Düzenleme: 27-12-2025, 01:33, Düzenleyen: rexluca.
(27-12-2025, 01:32)rexluca Adlı Kullanıcıdan Alıntı: Yok yetkılerın yanında örnek suan YONETIM VARYA onun onunde kullanıcı steamsa steam YONETICI non steamsa sadece YONETICI eger yetkısı yoksa swde STEAM USER non steamsa USER yazsınDene;
Kod:
/* Sublime AMXX Editor v3.2 - Cleaned & Optimized */
#include <amxmodx>
#include <reapi>
#include <regex>
#include <nvault>
#pragma semicolon 1
#define MAX_RUTBE 22
new const sChatSay[] = "^x01{DEAD}^x03[^x04{LEVEL}^x03] ^x04{TAG} ^x03{NAME}^x01: {FLAG}{MESSAGE}";
new const ChatTag[] = "^1[ ^3- ^4ASKERI RUTBE SISTEMI ^3- ^1]";
new const sLevelSystem[][][] = {
{"Er", 0}, {"Onbasi", 10}, {"Uz.Onb.", 50}, {"Uz.Cvs.", 100}, {"Asb. Cvs", 200},
{"Asb. Kd. Cvs", 300}, {"Asb. Ucvs", 400}, {"Asb. Kd. Ucvs", 500}, {"Asb. Bcvs", 700},
{"Asb. Kd. Bcvs", 900}, {"Astegmen", 1000}, {"Tegmen", 2000}, {"Ustegmen", 4000},
{"Yuzbasi", 8000}, {"Binbasi", 18000}, {"Yarbay", 33000}, {"Albay", 53000},
{"Tuggeneral", 83000}, {"Tumgeneral", 123000}, {"Korgeneral", 173000},
{"Orgeneral", 223000}, {"Genelkurmay Baskani", 303000}, {"Maresal", 403000}
};
new const szAdminTags[][][] = {
{"a","K"}, {"t","CAPTAN"}, {"l","YONETIM"}, {"o","E-ADMIN"}, {"s","ADMIN"}, {"r","SLOT"}
};
enum _: Variables {
Exp,
Level,
bool:Spamming
}
new Vars[MAX_PLAYERS+1][Variables], iCvars[5], iSayText, iTeamInfo, iVault;
new szUserAdminTag[MAX_PLAYERS+1][64], bool:is_user_steam[MAX_PLAYERS+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() return Vars[get_param(1)][Exp];
@ALS_GULV() return Vars[get_param(1)][Level];
@ALS_GMLV() return (sizeof(sLevelSystem)-1);
@ALS_SUEX() {
new nPlayerID = get_param(1), nAmount = get_param(2);
new iMaxLevel = (sizeof(sLevelSystem)-1);
Vars[nPlayerID][Exp] = clamp(nAmount, 0, sLevelSystem[iMaxLevel][1][0]);
for(new i=iMaxLevel; i >= 0; i--) {
if(Vars[nPlayerID][Exp] >= sLevelSystem[i][1][0]) {
Vars[nPlayerID][Level] = i;
break;
}
}
return PLUGIN_CONTINUE;
}
@ALS_SULV() {
new nPlayerID = get_param(1), nAmount = get_param(2);
new iMaxLevel = (sizeof(sLevelSystem)-1);
Vars[nPlayerID][Level] = clamp(nAmount, 0, iMaxLevel);
Vars[nPlayerID][Exp] = sLevelSystem[Vars[nPlayerID][Level]][1][0];
return PLUGIN_CONTINUE;
}
public plugin_cfg() iVault = nvault_open("ALS_V4");
public plugin_end() nvault_close(iVault);
public plugin_init() {
register_plugin("Advanced Level System", "1.4", "PawNod'");
register_concmd("amx_give_level","@GiveLevel",ADMIN_IMMUNITY,"<isim> <miktar>");
register_clcmd("say","@Hook_Say");
register_clcmd("say /rutbe","@Sonraki_Rutbe");
register_clcmd("say /rutbeler","@ToplamRutbe");
RegisterHookChain(RG_CBasePlayer_Killed, "@IsKilled", .post = true);
iSayText = get_user_msgid("SayText");
iTeamInfo = get_user_msgid("TeamInfo");
Cvars();
}
@Sonraki_Rutbe(const iPlayer) {
new iMaxLevel = (sizeof(sLevelSystem)-1);
if(Vars[iPlayer][Level] < iMaxLevel) {
client_print_color(iPlayer, iPlayer, "Siradaki rutbeniz ^4(%s) ^1Almaniz gereken kill: ^3(%i)", sLevelSystem[Vars[iPlayer][Level]+1][0][0], sLevelSystem[Vars[iPlayer][Level]+1][1][0]-Vars[iPlayer][Exp]);
} else {
client_print_color(iPlayer, iPlayer, "Maksimum rutbeye ulastiniz ^4(%s)^1!", sLevelSystem[Vars[iPlayer][Level]][0][0]);
}
}
@ToplamRutbe(const iPlayer) {
new szMotd[2048], iPos;
iPos = format(szMotd, charsmax(szMotd),"<body bgcolor=#000000 style='color:#FFFFFF; font-family:sans-serif;'><center><table width=90%% border=0 style='text-align:center; border:1px solid #444;'>");
iPos += format(szMotd[iPos], charsmax(szMotd)-iPos,"<tr bgcolor=#222222 style='font-weight:bold;'><td>#</td><td>Rutbe Ismi</td><td>Toplam Kill</td></tr>");
for(new i = 0; i < sizeof sLevelSystem; i++) {
iPos += format(szMotd[iPos], charsmax(szMotd)-iPos,"<tr bgcolor=%s><td>%d</td><td>%s</td><td>%d</td></tr>", (i % 2 == 0) ? "#111111" : "#181818", i+1, sLevelSystem[i][0][0], sLevelSystem[i][1][0]);
}
iPos += format(szMotd[iPos], charsmax(szMotd)-iPos,"</table></center></body>");
show_motd(iPlayer, szMotd, "Rutbe Listesi");
}
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","1"), iCvars[4]);
}
@GiveLevel(const iPlayer, const iLevelFlags, const iCid) {
if(!(get_user_flags(iPlayer) & ADMIN_IMMUNITY)) return PLUGIN_HANDLED;
new iStringName[32], iStringAmount[10];
read_argv(1, iStringName, 31); read_argv(2, iStringAmount, 9);
new iAmmount = str_to_num(iStringAmount), iMaxLevel = (sizeof(sLevelSystem)-1);
if(iStringName[0] == '@') {
new iPlayers[32], iPlayerNum, iTemp;
get_players(iPlayers, iPlayerNum, "ch");
for(new i = 0; i < iPlayerNum; i++) {
iTemp = iPlayers[i];
Vars[iTemp][Level] = min(iMaxLevel, Vars[iTemp][Level] + iAmmount);
Vars[iTemp][Exp] = sLevelSystem[Vars[iTemp][Level]][1][0];
new sAuth[32]; get_user_authid(iTemp, sAuth, 31);
sSetIntData("%s>Exp", Vars[iTemp][Exp], sAuth);
sSetIntData("%s>Level", Vars[iTemp][Level], sAuth);
}
client_print_color(0, 0, "%s Admin ^4%n ^1herkese ^4%i Level ^1verdi!", ChatTag, iPlayer, iAmmount);
return PLUGIN_HANDLED;
}
new iTarget = find_player("bl", iStringName);
if(iTarget) {
Vars[iTarget][Level] = min(iMaxLevel, Vars[iTarget][Level] + iAmmount);
Vars[iTarget][Exp] = sLevelSystem[Vars[iTarget][Level]][1][0];
new sAuth[32]; get_user_authid(iTarget, sAuth, 31);
sSetIntData("%s>Exp", Vars[iTarget][Exp], sAuth);
sSetIntData("%s>Level", Vars[iTarget][Level], sAuth);
client_print_color(0, 0, "%s Admin ^4%n, ^3%n ^1kisisine ^4%i Level ^1verdi!", ChatTag, iPlayer, iTarget, iAmmount);
}
return PLUGIN_HANDLED;
}
@Hook_Say(const iPlayer) {
if(iCvars[4] == 0) return PLUGIN_CONTINUE;
new iMessage[191]; read_args(iMessage, 190); remove_quotes(iMessage);
if(!iMessage[0] || iMessage[0] == '@' || iMessage[0] == '/' || iMessage[0] == '!') return PLUGIN_CONTINUE;
new ret, szError[128], Regex:iSayCheck = regex_compile("[0-9]{5,}", ret, szError, 127);
if(regex_match_c(iMessage, iSayCheck, ret)) {
client_print_color(iPlayer, iPlayer, "^4[HATA] ^1Mesajinizda cok fazla rakam var!");
regex_free(iSayCheck); return PLUGIN_HANDLED;
}
regex_free(iSayCheck);
new sNewData[191], szTagData[128], iColor[10];
get_user_team(iPlayer, iColor, 9);
copy(sNewData, 190, sChatSay);
// TAG EDİT BÖLÜMÜ
if(is_user_steam[iPlayer]) {
formatex(szTagData, 127, "^x04[Steam] ^x03[%s]", szUserAdminTag[iPlayer]);
} else {
formatex(szTagData, 127, "^x03[%s]", szUserAdminTag[iPlayer]);
}
replace_all(sNewData, 190, "{TAG}", szTagData);
replace_all(sNewData, 190, "{DEAD}", is_user_alive(iPlayer) ? "" : "(OLU) ");
replace_all(sNewData, 190, "{LEVEL}", sLevelSystem[Vars[iPlayer][Level]][0][0]);
replace_all(sNewData, 190, "{NAME}", fmt("^x03%n", iPlayer));
replace_all(sNewData, 190, "{FLAG}", (get_user_flags(iPlayer) & ADMIN_RESERVATION) ? "^x04" : "^x01");
replace_all(sNewData, 190, "{MESSAGE}", iMessage);
@sendMessage(iColor, is_user_alive(iPlayer), sNewData);
return PLUGIN_HANDLED;
}
@IsKilled(const iVictim, const iAttacker) {
if(!is_user_connected(iAttacker) || iVictim == iAttacker) return;
new iExpGained = (iCvars[0] == 0) ? random_num(iCvars[1], iCvars[2]) : iCvars[0];
new iMaxLevel = (sizeof(sLevelSystem)-1);
if(Vars[iAttacker][Level] < iMaxLevel) {
Vars[iAttacker][Exp] += iExpGained;
new sAuth[32]; get_user_authid(iAttacker, sAuth, 31);
sSetIntData("%s>Exp", Vars[iAttacker][Exp], sAuth);
if(Vars[iAttacker][Exp] >= sLevelSystem[Vars[iAttacker][Level] + 1][1][0]) {
Vars[iAttacker][Level]++;
client_print_color(iAttacker, iAttacker, "%s ^1Basarili bir sekilde ^4Rutbe Atladiniz^1!", ChatTag);
sSetIntData("%s>Level", Vars[iAttacker][Level], sAuth);
}
}
}
public client_putinserver(iPlayer) {
new sAuth[32]; get_user_authid(iPlayer, sAuth, 31);
Vars[iPlayer][Exp] = sGetIntData("%s>Exp", sAuth);
Vars[iPlayer][Level] = sGetIntData("%s>Level", sAuth);
// Steam Kontrolü
is_user_steam[iPlayer] = (containi(sAuth, "STEAM_0:") != -1);
new bool:has_tag = false;
for(new i = 0; i < sizeof(szAdminTags); i++) {
if(get_user_flags(iPlayer) & read_flags(szAdminTags[i][0][0])) {
copy(szUserAdminTag[iPlayer], 63, szAdminTags[i][1][0]);
// Baştaki boşluğu temizle (CAPTAN -> CAPTAN)
if(szUserAdminTag[iPlayer][0] == ' ') {
copy(szUserAdminTag[iPlayer], 63, szUserAdminTag[iPlayer][1]);
}
has_tag = true;
break;
}
}
if(!has_tag) {
copy(szUserAdminTag[iPlayer], 63, "USER");
}
}
@sendMessage(const color[], const alive, const message[]) {
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_BAN)) {
new teamName[10]; 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, _, player);
write_byte(player); write_string(message); message_end();
}
stock sGetIntData(const sKey[], any:...){
new sFixedData[128]; vformat(sFixedData, 127, sKey, 2);
return nvault_get(iVault, sFixedData);
}
stock sSetIntData(const sKey[], const iData, any:...){
new sFixedData[128], sNTS[12]; vformat(sFixedData, 127, sKey, 3);
num_to_str(iData, sNTS, 11); nvault_set(iVault, sFixedData, sNTS);
} "Website ve Ücretli eklenti için ulaşabilirsiniz."
)

