Код за потвърждение: Избери целия код
#include <amxmisc>
#include <fakemeta>
#pragma compress 1
#pragma semicolon 1
#if AMXX_VERSION_NUM < 182
#assert AMX Mod X v1.8.2 or later library required!
#endif
//offsets
const m_iMenu = 205;
const Menu_OFF = 0;
const Menu_ChooseAppearance = 3;
new const Version[] = "1.0.4s-dev",
Build = 98,
Date[] = "10.12.2016",
PluginName[] = "ROM-Protect",
CfgFile[] = "addons/amxmodx/configs/albania-bugfix.cfg",
LangFile[] = "addons/amxmodx/data/lang/albania-bugfix.txt",
IniFile[] = "addons/amxmodx/configs/albania-bugfix.ini",
LangType[] = "%L",
NoLogInfo = -1;
enum INFO
{
INFO_NAME,
INFO_IP,
INFO_AUTHID
};
enum
{
FM_TEAM_T = 1,
FM_TEAM_CT,
FM_TEAM_SPECTATOR
};
enum _:AdminLogin
{
LoginPass[32],
LoginAccess[32],
LoginFlag[6]
}
#if !defined MAX_PLAYERS
#define MAX_PLAYERS 32
#endif
#if AMXX_VERSION_NUM < 183
#define MAX_NAME_LENGTH 32
new AdminNum;
new bool:IsFlooding[MAX_PLAYERS+1];
new Float:Flooding[MAX_PLAYERS+1] = {0.0, ...},
Flood[MAX_PLAYERS+1] = {0, ...};
enum _:Colors
{
DontChange,
Red,
Blue,
Grey
}
#endif
new Counter[MAX_PLAYERS+1], LogFile[128], ClSaidSameTh_Count[MAX_PLAYERS+1],
bool:CorrectName[MAX_PLAYERS+1], bool:IsAdmin[MAX_PLAYERS+1], bool:FirstMsg[MAX_PLAYERS+1],
bool:Gag[MAX_PLAYERS+1], bool:UnBlockedChat[MAX_PLAYERS+1];
new LastPass[MAX_PLAYERS+1][32], Capcha[MAX_PLAYERS+1][8];
new Trie:LoginName, Trie:DefaultRes;
new PreviousMessage[MAX_PLAYERS+1][192];
new bool:IsLangUsed, bool:AdminsReloaded;
new const AllBasicOnChatCommads[][] =
{
"amx_say", "amx_csay", "amx_psay", "amx_tsay", "amx_chat", "say_team",
"say", "amx_gag", "amx_kick", "amx_ban", "amx_banip", "amx_nick", "amx_rcon"
};
new const AllAutobuyCommands[][] =
{
"cl_autobuy",
"cl_rebuy",
"cl_setautobuy",
"cl_setrebuy"
};
enum _:AllCvars
{
autobuy_bug,
utf8_bom,
Tag,
cmd_bug,
spec_bug,
fake_players,
fake_players_limit,
fake_players_type,
fake_players_punish,
#if AMXX_VERSION_NUM < 183
admin_chat_flood,
admin_chat_flood_time,
#endif
advertise,
advertise_time,
delete_custom_hpk,
delete_vault,
plug_warn,
plug_log,
admin_login,
admin_login_file,
admin_login_debug,
color_bug,
motdfile,
anti_pause,
anti_ban_class,
info,
xfakeplayer_spam,
xfakeplayer_spam_maxchars,
xfakeplayer_spam_maxsais,
xfakeplayer_spam_type,
xfakeplayer_spam_punish,
xfakeplayer_spam_capcha,
xfakeplayer_spam_capcha_word,
protcvars,
console_say
};
new const CvarName[AllCvars][] =
{
"al_autobuy_bug",
"al_utf8_bom",
"al_tag",
"al_cmd_bug",
"al_spec_bug",
"al_fake_players",
"al_fake_players_limit",
"al_fake_players_type",
"al_fake_players_punish",
#if AMXX_VERSION_NUM < 183
"al_admin_chat_flood",
"al_admin_chat_flood_time",
#endif
"al_advertise",
"al_advertise_time",
"al_delete_custom_hpk",
"al_delete_vault",
"al_warn",
"al_log",
"al_admin_login",
"al_admin_login_file",
"al_admin_login_debug",
"al_color_bug",
"al_motdfile",
"al_anti_pause",
"al_anti_ban_class",
"al_give_info",
"al_xfakeplayer_spam",
"al_xfakeplayer_spam_maxchars",
"al_xfakeplayer_spam_maxsais",
"al_xfakeplayer_spam_type",
"al_xfakeplayer_spam_punish",
"al_xfakeplayer_spam_capcha",
"al_xfakeplayer_spam_capcha_word",
"al_prot_cvars",
"al_console_say"
};
#if AMXX_VERSION_NUM >= 183
enum _:CvarRange
{
hasMinValue,
minValue,
hasMaxValue,
maxValue
}
new const CvarLimits[AllCvars][CvarRange] =
{
{ 1, 0, 1, 1 }, // al_autobuy_bug
{ 1, 0, 1, 1 }, // al_utf8_bom
{ 0, 0, 0, 0 }, // al_tag
{ 1, 0, 1, 1 }, // al_cmd_bug
{ 1, 0, 1, 1 }, // al_spec_bug
{ 1, 0, 1, 1 }, // al_fake_players
{ 1, 3, 1, 10 }, // al_fake_players_limit
{ 1, 0, 1, 1 }, // al_fake_players_type
{ 1, 5, 1, 10080 }, // al_fake_players_punish
{ 1, 0, 1, 1 }, // al_advertise
{ 1, 30, 1, 480 }, // al_advertise_time
{ 1, 0, 1, 1 }, // al_delete_custom_hpk
{ 1, 0, 1, 2 }, // al_delete_vault
{ 1, 0, 1, 1 }, // al_warn
{ 1, 0, 1, 1 }, // al_log
{ 1, 0, 1, 1 }, // al_admin_login
{ 0, 0, 0, 0 }, // al_admin_login_file
{ 1, 0, 1, 1 }, // al_admin_login_debug
{ 1, 0, 1, 1 }, // al_color_bug
{ 1, 0, 1, 1 }, // al_motdfile
{ 1, 0, 1, 1 }, // al_anti_pause
{ 1, 0, 1, 4 }, // al_anti_ban_class
{ 1, 0, 1, 1 }, // al_give_info
{ 1, 0, 1, 2 }, // al_xfakeplayer_spam
{ 1, 5, 1, 15 }, // al_xfakeplayer_spam_maxchars
{ 1, 3, 0, 0 }, // al_xfakeplayer_spam_maxsais
{ 1, 0, 1, 2 }, // al_xfakeplayer_spam_type
{ 1, 5, 1, 10080 }, // al_xfakeplayer_spam_punish
{ 1, 0, 1, 1 }, // al_xfakeplayer_spam_capcha
{ 0, 0, 0, 0 }, // al_xfakeplayer_spam_capcha_word
{ 1, 0, 1, 1 }, // al_prot_cvars
{ 1, 0, 1, 1 } // al_console_say
};
#endif
new const CvarValue[AllCvars][] =
{
"1",
"1",
"*ALBANIA-Protect",
"1",
"1",
"1",
"5",
"1",
"10",
#if AMXX_VERSION_NUM < 183
"1",
"0.75",
#endif
"1",
"120",
"1",
"1",
"1",
"1",
"1",
"users_login.ini",
"0",
"1",
"1",
"1",
"2",
"1",
"1",
"12",
"10",
"2",
"5",
"0",
"/chat",
"1",
"1"
};
new PluginCvar[AllCvars];
public plugin_precache()
{
registersPrecache();
new CurentDate[15];
get_localinfo("amxx_logs", LogFile, charsmax(LogFile));
format(LogFile, charsmax(LogFile), "%s/%s", LogFile, PluginName);
if ( !dir_exists(LogFile) )
{
mkdir(LogFile);
}
get_time("%d-%m-%Y", CurentDate, charsmax(CurentDate));
format(LogFile, charsmax(LogFile), "%s/%s_%s.log", LogFile, PluginName, CurentDate);
if ( !file_exists(LogFile) )
{
write_file(LogFile, "*Ketu ruhen te gjithe aktivitet e dyshimta qe jane zbuluar nga Albania BugFix.^n^n", -1);
}
if ( file_exists(CfgFile) )
{
server_cmd("exec %s", CfgFile);
}
set_task(5.0, "checkLang");
set_task(10.0, "checkLangFile");
set_task(15.0, "checkCfg");
}
public checkCfg()
{
if ( !file_exists(CfgFile) )
{
WriteCfg(false);
}
else
{
new FilePointer = fopen(CfgFile, "rt");
if ( !FilePointer )
{
return;
}
new Text[121], CurrentVersion[64], bool:IsCurrentVersionUsed;
formatex(CurrentVersion, charsmax(CurrentVersion), "Verzioni : %s. Modeli : %d. Data Verzionit : %s.", Version, Build, Date);
while ( !feof(FilePointer) )
{
fgets(FilePointer, Text, charsmax(Text));
if ( containi(Text, CurrentVersion) != -1 )
{
IsCurrentVersionUsed = true;
break;
}
}
fclose(FilePointer);
if ( !IsCurrentVersionUsed )
{
WriteCfg(true);
if ( getInteger(PluginCvar[plug_log]) == 1 )
{
new CvarString[32];
getString(PluginCvar[Tag], CvarString, charsmax(CvarString));
logCommand(NoLogInfo, LangType, LANG_SERVER, "AL_UPDATE_CFG", CvarString);
}
}
}
}
public checkLang()
{
if ( !file_exists(LangFile) )
{
WriteLang(false);
}
else
{
IsLangUsed = false;
new FilePointer = fopen(LangFile, "rt");
if ( !FilePointer )
{
return;
}
new Text[121], CurrentVersion[64], bool:IsCurrentVersionUsed;
formatex(CurrentVersion, charsmax(CurrentVersion), "Verzioni : %s. Modeli : %d. Data Verzionit : %s.", Version, Build, Date);
while ( !feof(FilePointer) )
{
fgets(FilePointer, Text, charsmax(Text));
if ( contain(Text, CurrentVersion) != -1 )
{
IsCurrentVersionUsed = true;
break;
}
}
fclose(FilePointer);
if ( !IsCurrentVersionUsed )
{
register_dictionary("albania-bugfix.txt");
IsLangUsed = true;
if ( getInteger(PluginCvar[plug_log]) == 1 )
{
new CvarString[32];
getString(PluginCvar[Tag], CvarString, charsmax(CvarString));
logCommand(NoLogInfo, LangType, LANG_SERVER, "AL_UPDATE_LANG", CvarString);
}
WriteLang(true);
}
}
}
public checkLangFile()
{
if (!IsLangUsed)
{
register_dictionary("albania-bugfix.txt");
}
}
public plugin_init()
{
registersInit();
if ( getInteger(PluginCvar[advertise]) == 1 )
{
set_task(getFloat(PluginCvar[advertise_time]), "showAdvertise", _, _, _, "b", 0);
}
if ( getInteger(PluginCvar[utf8_bom]) == 1 )
{
DefaultRes = TrieCreate();
TrieSetCell(DefaultRes, "de_storm.res", 1);
TrieSetCell(DefaultRes, "default.res", 1);
set_task(10.0, "cleanResFiles");
}
public client_connect(Index)
{
if (getInteger(PluginCvar[cmd_bug]) == 1)
{
new Name[MAX_NAME_LENGTH];
get_user_name(Index, Name, charsmax(Name));
stringFilter(Name, charsmax(Name));
set_user_info(Index, "name", Name);
}
}
public client_authorized(Index)
{
new CvarString[32];
if (getInteger(PluginCvar[fake_players]) == 1)
{
if ( clientUseSteamid(Index) )
{
query_client_cvar(Index, "fps_max", "checkBot");
}
new Players[MAX_PLAYERS], PlayersNum, Address[32], Address2[32];
get_players(Players, PlayersNum, "c");
for (new i = 0; i < PlayersNum; ++i)
{
get_user_ip(Index, Address, charsmax(Address), 1);
get_user_ip(Players[i], Address2, charsmax(Address2), 1);
if ( equal(Address, Address2) && !is_user_bot(Index) )
{
if ( ++Counter[Index] > getInteger(PluginCvar[fake_players_limit]) )
{
getString(PluginCvar[Tag], CvarString, charsmax(CvarString));
switch ( getInteger(PluginCvar[fake_players_type]) )
{
case 0:
{
new Limit[8];
num_to_str(getInteger(PluginCvar[fake_players_limit]), Limit, charsmax(Limit));
console_print(Index, LangType, LANG_PLAYER, "AL_FAKE_PLAYERS_KICK", CvarString, Limit);
server_cmd("kick #%d ^"Ju jeni larguar nga serveri. Shiko console.^"", get_user_userid(Index));
}
case 1:
{
new Punish[8];
num_to_str(getInteger(PluginCvar[fake_players_punish]), Punish, charsmax(Punish));
server_cmd("addip ^"%s^" ^"%s^";wait;writeip", Punish, Address);
if ( getInteger(PluginCvar[plug_warn]) == 1 )
{
new CvarTag[32];
copy(CvarTag, charsmax(CvarTag), CvarString);
#if AMXX_VERSION_NUM < 183
client_print_color(0, Grey, LangType, LANG_PLAYER, "AL_FAKE_PLAYERS", "^3", CvarTag, "^4", Address);
client_print_color(0, Grey, LangType, LANG_PLAYER, "AL_FAKE_PLAYERS_PUNISH", "^3", CvarTag, "^4", Punish);
#else
client_print_color(0, print_team_grey, LangType, LANG_PLAYER, "AL_FAKE_PLAYERS", CvarTag, Address);
client_print_color(0, print_team_grey, LangType, LANG_PLAYER, "AL_FAKE_PLAYERS_PUNISH", CvarTag, Punish);
#endif
}
if ( getInteger(PluginCvar[plug_log]) == 1 )
{
logCommand(NoLogInfo, LangType, LANG_SERVER, "AL_FAKE_PLAYERS_LOG", CvarString, Address);
}
}
}
break;
}
}
}
}
switch ( getInteger(PluginCvar[xfakeplayer_spam]))
{
case 1:
{
FirstMsg[Index] = true;
Gag[Index] = false;
}
case 2:
{
if ( getInteger(PluginCvar[xfakeplayer_spam_capcha]) == 1 )
{
new const AllChars[] =
{
'A','B','C','D','E','F','G','H',
'I','J','K','L','M','N','O','P',
'Q','R','S','T','U','V','W','X',
'Y','Z','a','b','c','d','e','f',
'g','h','i','j','k','l','m','n',
'o','p','q','r','s','t','u','v',
'w','x','y','z','0','1','2','3',
'4','5','6','7','8','9'
};
const MatrixSize = sizeof AllChars;
formatex(Capcha[Index], charsmax(Capcha[]), "%c%c%c%c", AllChars[random(MatrixSize)], AllChars[random(MatrixSize)], AllChars[random(MatrixSize)], AllChars[random(MatrixSize)]);
}
else
{
getString(PluginCvar[xfakeplayer_spam_capcha_word], CvarString, charsmax(CvarString));
copy(Capcha[Index], charsmax(Capcha[]), CvarString);
}
}
}
}
#if AMXX_VERSION_NUM < 183
public client_disconnect(Index)
#else
public client_disconnected(Index)
#endif
{
if ( getInteger(PluginCvar[fake_players]) == 1 )
{
Counter[Index] = 0;
}
if ( getInteger(PluginCvar[xfakeplayer_spam]) == 1 )
{
ClSaidSameTh_Count[Index] = 0;
}
else
{
UnBlockedChat[Index] = false;
}
if ( IsAdmin[Index] )
{
IsAdmin[Index] = false;
remove_user_flags(Index);
}
}
public plugin_end()
{
switch ( getInteger(PluginCvar[delete_vault]) != 0 )
{
case 1:
{
write_file(getVaultDir(), "server_language en", -1);
}
case 2:
{
write_file(getVaultDir(), "server_language al", -1);
}
}
if ( getInteger(PluginCvar[delete_custom_hpk]) == 1 )
{
new BaseDir[] = "/", DirPointer, File[32];
DirPointer = open_dir(BaseDir, "", 0);
while ( next_file(DirPointer, File, charsmax(File)) )
{
if ( File[0] == '.' )
{
continue;
}
if ( containi( File, "custom.hpk" ) != -1 )
{
delete_file(File);
break;
}
}
close_dir(DirPointer);
}
}
public client_infochanged(Index)
{
if ( !is_user_connected(Index) )
{
return;
}
new CmdBugCvarValue = getInteger(PluginCvar[cmd_bug]), AdminLoginCvarValue = getInteger(PluginCvar[admin_login]);
if ( CmdBugCvarValue == 1 || AdminLoginCvarValue == 1)
{
new NewName[MAX_NAME_LENGTH], OldName[MAX_NAME_LENGTH];
get_user_name(Index, OldName, charsmax(OldName));
get_user_info(Index, "name", NewName, charsmax(NewName));
if (equali(NewName, OldName))
{
return;
}
if ( CmdBugCvarValue == 1 )
{
stringFilter(NewName, charsmax(NewName));
set_user_info(Index, "name", NewName);
}
if ( AdminLoginCvarValue == 1 && IsAdmin[Index] )
{
IsAdmin[Index] = false;
remove_user_flags(Index);
}
}
return;
}
public plugin_pause()
{
if (getInteger(PluginCvar[anti_pause]) == 1)
{
new PluginName[32], CvarString[32];
getString(PluginCvar[Tag], CvarString, charsmax(CvarString));
if (getInteger(PluginCvar[plug_warn]) == 1)
{
#if AMXX_VERSION_NUM < 183
client_print_color(0, Grey, LangType, LANG_PLAYER, "AL_PLUGIN_PAUSE", "^3", CvarString, "^4");
#else
client_print_color(0, print_team_grey, LangType, LANG_PLAYER, "AL_PLUGIN_PAUSE", CvarString);
#endif
}
if (getInteger(PluginCvar[plug_log]) == 1)
{
logCommand(NoLogInfo, LangType, LANG_SERVER, "AL_PLUGIN_PAUSE_LOG", CvarString, CvarString);
}
get_plugin(-1, PluginName, charsmax(PluginName));
server_cmd("amxx unpause %s", PluginName);
}
}
public cmdPass(Index)
{
if ( getInteger(PluginCvar[admin_login]) != 1 )
{
return PLUGIN_HANDLED;
}
new Name[MAX_NAME_LENGTH], Password[32], CvarString[32];
get_user_name(Index, Name, charsmax(Name));
read_argv(1, Password, charsmax(Password));
remove_quotes(Password);
getString(PluginCvar[Tag], CvarString, charsmax(CvarString));
if (!Password[0])
{
#if AMXX_VERSION_NUM < 183
client_print_color(Index, Grey, LangType, Index, "AL_ADMIN_WITHOUT_PASS", "^3", CvarString, "^4");
#else
client_print_color(Index, print_team_grey, LangType, Index, "AL_ADMIN_WITHOUT_PASS", CvarString);
#endif
console_print(Index, LangType, Index, "AL_ADMIN_WITHOUT_PASS_PRINT", CvarString);
return PLUGIN_HANDLED;
}
loadAdminLogin();
IsAdmin[Index] = false;
if ( !getAccess(Index, Password, charsmax(Password)) )
{
return PLUGIN_HANDLED;
}
if (!IsAdmin[Index])
{
LastPass[Index][0] = EOS;
if (!CorrectName[Index])
{
#if AMXX_VERSION_NUM < 183
client_print_color(Index, Grey, LangType, Index, "AL_ADMIN_WRONG_NAME", "^3", CvarString, "^4");
#else
client_print_color(Index, print_team_grey, LangType, Index, "AL_ADMIN_WRONG_NAME", CvarString);
#endif
console_print(Index, LangType, Index, "AL_ADMIN_WRONG_NAME_PRINT", CvarString);
}
else
{
#if AMXX_VERSION_NUM < 183
client_print_color(Index, Grey, LangType, Index, "AL_ADMIN_WRONG_PASS", "^3", CvarString, "^4");
#else
client_print_color(Index, print_team_grey, LangType, Index, "AL_ADMIN_WRONG_PASS", CvarString);
#endif
console_print(Index, LangType, Index, "AL_ADMIN_WRONG_PASS_PRINT", CvarString);
}
}
else
{
if ( equal(LastPass[Index], Password) )
{
#if AMXX_VERSION_NUM < 183
client_print_color(Index, Grey, LangType, Index, "AL_ADMIN_ALREADY_LOADED", "^3", CvarString, "^4");
#else
client_print_color(Index, print_team_grey, LangType, Index, "AL_ADMIN_ALREADY_LOADED", CvarString);
#endif
console_print(Index, LangType, Index, "AL_ADMIN_ALREADY_LOADED_PRINT", CvarString);
}
else
{
#if AMXX_VERSION_NUM < 183
client_print_color(Index, Grey, LangType, Index, "AL_ADMIN_LOADED", "^3", CvarString, "^4");
#else
client_print_color(Index, print_team_grey, LangType, Index, "AL_ADMIN_LOADED", CvarString);
#endif
console_print(Index, LangType, Index, "AL_ADMIN_LOADED_PRINT", CvarString);
IsAdmin[Index] = true;
}
}
return PLUGIN_HANDLED;
}
#if AMXX_VERSION_NUM < 183
public hookAdminChat(Index)
{
new Said[2];
read_argv(1, Said, charsmax(Said));
if (Said[0] != '@')
{
return PLUGIN_CONTINUE;
}
new Float:maxChat = get_pcvar_float(PluginCvar[admin_chat_flood_time]);
if (maxChat && getInteger(PluginCvar[admin_chat_flood]) == 1)
{
new Float:NexTime = get_gametime();
if (Flooding[Index] > NexTime)
{
if (Flood[Index] >= 3)
{
IsFlooding[Index] = true;
set_task(1.0, "showAdminChatFloodWarning", Index);
Flooding[Index] = NexTime + maxChat + 3.0;
return PLUGIN_HANDLED;
}
++Flood[Index];
}
else
{
if (Flood[Index])
{
--Flood[Index];
}
}
Flooding[Index] = NexTime + maxChat;
}
return PLUGIN_CONTINUE;
}
#endif
#if AMXX_VERSION_NUM < 183
public showAdminChatFloodWarning(Index)
{
if ( IsFlooding[Index] )
{
new CvarString[32];
getString(PluginCvar[Tag], CvarString, charsmax(CvarString));
if ( getInteger(PluginCvar[plug_warn]) == 1 )
{
client_print_color(Index, Grey, LangType, Index, "AL_ADMIN_CHAT_FLOOD", "^3", CvarString, "^4");
}
if ( getInteger(PluginCvar[plug_log]) == 1 )
{
logCommand(Index, LangType, LANG_SERVER, "AL_ADMIN_CHAT_FLOOD_LOG", CvarString);
}
IsFlooding[Index] = false;
}
}
#endif
public showAdvertise()
{
new CvarString[32];
getString(PluginCvar[Tag], CvarString, charsmax(CvarString));
#if AMXX_VERSION_NUM < 183
client_print_color(0, Grey, LangType, LANG_PLAYER, "AL_ADVERTISE", "^3", CvarString, "^4", "^3", PluginName, "^4", "^3", Version, "^4");
#else
client_print_color(0, print_team_grey, LangType, LANG_PLAYER, "AL_ADVERTISE", CvarString, PluginName, Version);
#endif
}
public cleanResFiles()
{
new MapsDir[] = "maps";
new const ResExt[] = ".res";
new ResFile[64], Len;
new DirPointer = open_dir(MapsDir, ResFile, charsmax(ResFile));
if ( !DirPointer )
{
return;
}
new FullPathFileName[128];
do
{
Len = strlen(ResFile);
if ( Len > 4 && equali(ResFile[Len-4], ResExt) )
{
if ( TrieKeyExists(DefaultRes, ResFile) )
{
continue;
}
formatex(FullPathFileName, charsmax(FullPathFileName), "%s/%s", MapsDir, ResFile);
write_file(FullPathFileName, "/////////////////////////////////////////////////////////////^n", 0);
}
}
while ( next_file(DirPointer, ResFile, charsmax(ResFile)) );
close_dir(DirPointer);
}
public reloadLogin(Index, level, cid)
{
AdminsReloaded = true;
set_task(1.0, "reloadDelay");
}
public client_command(Index)
{
if (getInteger(PluginCvar[spec_bug]) == 1)
{
new Command[15];
read_argv(0, Command, charsmax(Command));
if (equali(Command, "joinclass") || (equali(Command, "menuselect") && get_pdata_int(Index, m_iMenu) == Menu_ChooseAppearance))
{
if (get_user_team(Index) == 3)
{
set_pdata_int(Index, m_iMenu, Menu_OFF);
engclient_cmd(Index, "jointeam", "6");
return PLUGIN_HANDLED;
}
}
}
if (AdminsReloaded)
{
reloadDelay();
}
return PLUGIN_CONTINUE;
}
public reloadDelay()
{
if (!AdminsReloaded)
{
return;
}
new Players[MAX_PLAYERS], PlayersNum;
get_players(Players, PlayersNum, "ch");
for (new i = 0; i < PlayersNum; ++i)
{
if ( IsAdmin[Players[i]] )
{
getAccess(Players[i], LastPass[Players[i]], charsmax(LastPass[]));
}
}
AdminsReloaded = false;
}
public cvarFunc(Index)
{
if ( !is_user_admin(Index) )
{
return PLUGIN_CONTINUE;
}
if ( getInteger(PluginCvar[motdfile]) == 1 )
{
new Cvar[32], Value[32], CvarString[32];
getString(PluginCvar[Tag], CvarString, charsmax(CvarString));
read_argv(1, Cvar, charsmax(Cvar));
read_argv(2, Value, charsmax(Value));
if ( equali(Cvar, "motdfile") && contain(Value, ".ini") != -1 )
{
if ( getInteger(PluginCvar[plug_warn]) == 1 )
{
console_print(Index, LangType, Index, "AL_MOTDFILE", CvarString);
}
if ( getInteger(PluginCvar[plug_log]) == 1 )
{
logCommand(Index, LangType, LANG_SERVER, "AL_MOTDFILE_LOG", CvarString);
}
return PLUGIN_HANDLED;
}
}
if ( getInteger(PluginCvar[protcvars]) == 1 )
{
new Command[32], CvarString[32];
getString(PluginCvar[Tag], CvarString, charsmax(CvarString));
read_argv(1, Command, charsmax(Command));
if ( containi(Command, "al_") != -1 )
{
if ( getInteger(PluginCvar[plug_warn]) == 1 )
{
console_print(Index, LangType, Index, "AL_PROTCVARS", CvarString);
}
if ( getInteger(PluginCvar[plug_log]) == 1 )
{
logCommand(Index, LangType, LANG_SERVER, "AL_PROTCVARS_LOG", CvarString);
}
return PLUGIN_HANDLED;
}
}
return PLUGIN_CONTINUE;
}
public rconFunc(Index)
{
if ( !is_user_admin(Index) )
{
return PLUGIN_CONTINUE;
}
if ( getInteger(PluginCvar[motdfile]) == 1 )
{
new Command[32], CvarString[32];
getString(PluginCvar[Tag], CvarString, charsmax(CvarString));
read_args(Command, charsmax(Command));
if ( containi(Command, "motdfile") && contain(Command, ".ini") != -1 )
{
if ( getInteger(PluginCvar[plug_warn]) == 1 )
{
console_print(Index, LangType, Index, "AL_MOTDFILE", CvarString);
}
if ( getInteger(PluginCvar[plug_log]) == 1 )
{
logCommand(Index, LangType, LANG_SERVER, "AL_MOTDFILE_LOG", CvarString);
}
return PLUGIN_HANDLED;
}
}
if ( getInteger(PluginCvar[protcvars]) == 1 )
{
new Command[32], CvarString[32];
getString(PluginCvar[Tag], CvarString, charsmax(CvarString));
read_args(Command, charsmax(Command));
if ( !equali(Command, "al_info") && containi(Command, "al_") != -1 )
{
if ( getInteger(PluginCvar[plug_warn]) == 1 )
{
console_print(Index, LangType, Index, "AL_PROTCVARS", CvarString);
}
if ( getInteger(PluginCvar[plug_log]) == 1 )
{
logCommand(Index, LangType, LANG_SERVER, "AL_PROTCVARS_LOG", CvarString);
}
return PLUGIN_HANDLED;
}
}
return PLUGIN_CONTINUE;
}
public hookBanClassCommand(Index)
{
if ( !is_user_admin(Index) )
{
return PLUGIN_CONTINUE;
}
new Value = getInteger(PluginCvar[anti_ban_class]);
if ( Value > 0 )
{
new Ip[32], IpNum[4][3], NumStr[1];
read_argv(1, Ip, charsmax(Ip));
if ( containi( Ip, "STEAM") != -1 || containi( Ip, "VALVE") != -1 )
{
return PLUGIN_CONTINUE;
}
for (new i = 0; i < 4; ++i)
{
split(Ip, IpNum[i], charsmax(IpNum[]), Ip, charsmax(Ip), ".");
}
Value = getInteger(PluginCvar[anti_ban_class]);
if ( Value > 4 )
{
Value = 4;
}
num_to_str(Value, NumStr, charsmax(NumStr));
new CvarString[32];
getString(PluginCvar[Tag], CvarString, charsmax(CvarString));
switch (Value)
{
case 1:
{
if ( str_to_num(IpNum[0]) == 0 || str_to_num(IpNum[1]) == 0 || str_to_num(IpNum[2]) == 0 )
{
if (getInteger(PluginCvar[plug_warn]) == 1)
{
console_print(Index, LangType, Index, "AL_ANTI_BAN_CLASS", CvarString);
}
if (getInteger(PluginCvar[plug_log]) == 1)
{
logCommand(Index, LangType, LANG_SERVER, "AL_ANTI_ANY_BAN_CLASS_LOG", CvarString);
}
return PLUGIN_HANDLED;
}
}
case 2:
{
if ( str_to_num(IpNum[0]) == 0 || str_to_num(IpNum[1]) == 0 )
{
if (getInteger(PluginCvar[plug_warn]) == 1)
{
console_print(Index, LangType, Index, "AL_ANTI_BAN_CLASS", CvarString);
}
if (getInteger(PluginCvar[plug_log]) == 1)
{
logCommand(Index, LangType, LANG_SERVER, "AL_ANTI_SOME_BAN_CLASS_LOG", CvarString, NumStr);
}
return PLUGIN_HANDLED;
}
}
case 3:
{
if ( str_to_num(IpNum[0]) == 0 )
{
if (getInteger(PluginCvar[plug_warn]) == 1)
{
console_print(Index, LangType, Index, "AL_ANTI_BAN_CLASS", CvarString);
}
if (getInteger(PluginCvar[plug_log]) == 1)
{
logCommand(Index, LangType, LANG_SERVER, "AL_ANTI_SOME_BAN_CLASS_LOG", CvarString, NumStr);
}
return PLUGIN_HANDLED;
}
}
default:
{
if (getInteger(PluginCvar[plug_warn]) == 1)
{
console_print(Index, LangType, Index, "AL_ANTI_BAN_CLASS", CvarString);
}
if (getInteger(PluginCvar[plug_log]) == 1)
{
logCommand(Index, LangType, LANG_SERVER, "AL_ANTI_SOME_BAN_CLASS_LOG", CvarString, NumStr);
}
return PLUGIN_HANDLED;
}
}
}
return PLUGIN_CONTINUE;
}
public hookBasicOnChatCommand(Index)
{
new ColorBugCvarValue = getInteger(PluginCvar[color_bug]), CmdBugCvarValue = getInteger(PluginCvar[cmd_bug]);
if ( CmdBugCvarValue == 1 || ColorBugCvarValue == 1 )
{
new Said[192], bool:IsUsedCmdBug[MAX_PLAYERS+1], bool:IsUsedColorBug[MAX_PLAYERS+1];
read_args(Said, charsmax(Said));
for (new i = 0; i < sizeof Said ; ++i)
{
if ( CmdBugCvarValue == 1 && (Said[i] == '#' && isalpha(Said[i+1])) || (Said[i] == '%' && Said[i+1] == 's') )
{
IsUsedCmdBug[Index] = true;
break;
}
if ( ColorBugCvarValue == 1 )
{
if ( Said[i] == '' || Said[i] == '' || Said[i] == '' )
{
IsUsedColorBug[Index] = true;
break;
}
}
}
new WarnCvarValue = getInteger(PluginCvar[plug_warn]), LogCvarValue = getInteger(PluginCvar[plug_log]), CvarString[32];
getString(PluginCvar[Tag], CvarString, charsmax(CvarString));
if ( IsUsedCmdBug[Index] )
{
if ( WarnCvarValue == 1 )
{
new CvarTag[32];
copy(CvarTag, charsmax(CvarTag), CvarString);
#if AMXX_VERSION_NUM < 183
client_print_color( Index, Grey, LangType, Index, "AL_CMD_BUG", "^3", CvarTag, "^4");
#else
client_print_color( Index, print_team_grey, LangType, Index, "AL_CMD_BUG", CvarTag);
#endif
console_print(Index, LangType, Index, "AL_CMD_BUG_PRINT", CvarTag);
}
if ( LogCvarValue == 1 )
{
logCommand(Index, LangType, LANG_SERVER, "AL_CMD_BUG_LOG", CvarString);
}
IsUsedCmdBug[Index] = false;
return PLUGIN_HANDLED;
}
if ( IsUsedColorBug[Index] )
{
if ( WarnCvarValue == 1 )
{
#if AMXX_VERSION_NUM < 183
client_print_color( Index, Grey, LangType, Index, "AL_COLOR_BUG", "^3", CvarString, "^4");
#else
client_print_color( Index, print_team_grey, LangType, Index, "AL_COLOR_BUG", CvarString );
#endif
}
if ( LogCvarValue == 1 )
{
logCommand(Index, LangType, LANG_SERVER, "AL_COLOR_BUG_LOG", CvarString);
}
IsUsedColorBug[Index] = false;
return PLUGIN_HANDLED;
}
}
return PLUGIN_CONTINUE;
}
public checkBot(Index, const Var[], const Value[])
{
if ( equal(Var, "fps_max") && Value[0] == 'B' )
{
new CvarString[32];
getString(PluginCvar[Tag], CvarString, charsmax(CvarString));
if ( getInteger(PluginCvar[plug_log]) == 1 )
{
logCommand(Index, LangType, LANG_SERVER, "AL_FAKE_PLAYERS_DETECT_LOG", CvarString);
}
console_print(Index, LangType, Index, "AL_FAKE_PLAYERS_DETECT", CvarString);
server_cmd("kick #%d ^"Ju jeni larguar nga serveri. Shiko ne console.^"", get_user_userid(Index));
}
}
public CheckAutobuyBug(Index)
{
new Command[512];
new Count = read_argc();
for (new i = 1; i <= Count; ++i)
{
read_argv(i, Command, charsmax(Command));
if ( getInteger(PluginCvar[autobuy_bug]) == 1 )
{
new CvarString[32];
getString(PluginCvar[Tag], CvarString, charsmax(CvarString));
if ( checkLong(Command, charsmax(Command)) )
{
if ( getInteger(PluginCvar[plug_warn]) == 1 )
{
#if AMXX_VERSION_NUM < 183
client_print_color( Index, Grey, LangType, Index, "AL_AUTOBUY", "^3", CvarString, "^4");
#else
client_print_color( Index, print_team_grey, LangType, Index, "AL_AUTOBUY", CvarString);
#endif
}
if ( getInteger( PluginCvar[plug_log] ) == 1 )
{
logCommand(Index, LangType, LANG_SERVER, "AL_AUTOBUY_LOG", CvarString);
}
return PLUGIN_HANDLED;
}
}
}
return PLUGIN_CONTINUE;
}
public giveClientInfo(Index)
{
if ( getInteger(PluginCvar[info]) != 1 )
{
return PLUGIN_HANDLED;
}
console_print(Index, "^n^n^nVerzioni : %s. Modeli : %d. Data Verzionit : %s.", Version, Build, Date);
#if AMXX_VERSION_NUM >= 183
console_print(Index, "Autor : VrînceanAlex.lüxor. Comunitatea : FioriGinal.Ro" );
#else
console_print(Index, "Autor : VrînceanAlex.lüxor. Comunitatea : FioriGinal.Ro" );
#endif
console_print(Index, ""Link oficial : http://forum.fioriginal.ro/amxmodx-plugins-pluginuri/rom-protect-anti-IsFlooding-bug-fix-t28292.html");
console_print(Index, "Autor : VrînceanAlex.lüxor. Comunitatea : FioriGinal.Ro.^n^n^n");
return PLUGIN_HANDLED;
}
public giveServerInfo(Index)
{
if ( getInteger(PluginCvar[info]) != 1 )
{
return PLUGIN_HANDLED;
}
server_print("^n^n^nVerzioni : %s. Modeli : %d. Data Verzionit : %s.", Version, Build, Date);
server_print("Autor : VrînceanAlex.lüxor. Comunitatea : FioriGinal.Ro" );
server_print("Link zyrtar : "Link oficial : http://forum.fioriginal.ro/amxmodx-plugins-pluginuri/rom-protect-anti-IsFlooding-bug-fix-t28292.html");
server_print("Autor : VrînceanAlex.lüxor. Comunitatea : FioriGinal.Ro.");
server_print("Deshironi ndihme : "Link oficial : http://forum.fioriginal.ro/amxmodx-plugins-pluginuri/rom-protect-anti-IsFlooding-bug-fix-t28292.html ^n");
server_print("Ky plugin eshte i lire ndalohet keqperdorimi tij.");
server_print("Plugin eshte krijuar ti ndihmoj serverat per siguri dhe mos te kene probleme te kesaj natyre.");
server_print("Modifikimi i skedarit mund te behet nga te gjithe per ne gjuhen e tyre.");
server_print("Copyright 2020-2025");
return PLUGIN_HANDLED;
}
public hookChat(Index)
{
new Said[192];
read_args(Said, charsmax(Said));
if ( getInteger(PluginCvar[console_say]) && checkForBinds(Index, Said) == PLUGIN_HANDLED)
{
return PLUGIN_HANDLED;
}
if (hookForXFakePlayerSpam(Index, Said) == PLUGIN_HANDLED)
{
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
checkForBinds(Index, Said[])
{
if(Said[0] != '^"')
{
static Trie:SafeCommands;
if (SafeCommands == Invalid_Trie)
{
SafeCommands = TrieCreate();
if (!file_exists(IniFile))
{
write_file(IniFile, "//Ketu do te shtohen komandat e chat te sigurta, njera pas tjetres :^n", 0);
return PLUGIN_CONTINUE;
}
else
{
new FilePointer = fopen(IniFile, "rt");
if (!FilePointer)
{
return PLUGIN_CONTINUE;
}
new Text[121];
while (!feof(FilePointer))
{
fgets(FilePointer, Text, charsmax(Text));
trim(Text);
if ((Text[0] == ';') || !Text[0] || ((Text[0] == '/') && (Text[1] == '/')))
{
continue;
}
strtolower(Text);
TrieSetCell(SafeCommands, Text, 0);
}
fclose(FilePointer);
}
goto Valid;
}
else
{
Valid:
strtolower(Said);
if (TrieKeyExists(SafeCommands, Said))
{
return PLUGIN_CONTINUE;
}
new CvarString[32];
getString(PluginCvar[Tag], CvarString, charsmax(CvarString));
#if AMXX_VERSION_NUM < 183
client_print_color(Index, Grey, LangType, LANG_PLAYER, "AL_BIND_SPAM", "^3", CvarString, "^4");
#else
client_print_color(Index, print_team_grey, LangType, LANG_PLAYER, "AL_BIND_SPAM", CvarString);
#endif
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
return PLUGIN_CONTINUE;
}
hookForXFakePlayerSpam(Index, Said[])
{
new xFakePlayerCvarValue = getInteger(PluginCvar[xfakeplayer_spam]), CvarString[32];
if (is_user_admin(Index))
{
if ( FirstMsg[Index] && xFakePlayerCvarValue == 1 )
{
FirstMsg[Index] = false;
}
return PLUGIN_CONTINUE;
}
getString(PluginCvar[Tag], CvarString, charsmax(CvarString));
switch( xFakePlayerCvarValue )
{
case 1 :
{
if (Gag[Index])
{
return PLUGIN_HANDLED;
}
remove_quotes(Said);
if ( strlen(Said) <= getInteger(PluginCvar[xfakeplayer_spam_maxchars])+1 )
{
if ( FirstMsg[Index] )
{
FirstMsg[Index] = false;
}
return PLUGIN_CONTINUE;
}
else
{
if ( FirstMsg[Index] )
{
FirstMsg[Index] = false;
ClSaidSameTh_Count[Index]++;
copy(PreviousMessage[Index], charsmax(PreviousMessage[]), Said);
return PLUGIN_HANDLED;
}
}
if ( ClSaidSameTh_Count[Index]++ > 0 )
{
if ( equal(Said, PreviousMessage[Index]) )
{
if ( getInteger(PluginCvar[plug_warn]) == 1 )
{
#if AMXX_VERSION_NUM < 183
client_print_color(Index, Grey, LangType, LANG_PLAYER, "AL_XFAKE_PLAYERS_SPAM_WARN", "^3", CvarString, "^4");
#else
client_print_color(Index, print_team_grey, LangType, LANG_PLAYER, "AL_XFAKE_PLAYERS_SPAM_WARN", CvarString);
#endif
}
if ( ClSaidSameTh_Count[Index] >= getInteger(PluginCvar[xfakeplayer_spam_maxsais]) )
{
new Address[32];
get_user_ip(Index, Address, charsmax(Address), 1);
switch ( getInteger(PluginCvar[xfakeplayer_spam_type]) )
{
case 0 :
{
#if AMXX_VERSION_NUM < 183
client_print_color(Index, Grey, LangType, LANG_PLAYER, "AL_XFAKE_PLAYERS_SPAM_GAG", "^3", CvarString, "^4");
#else
client_print_color(Index, print_team_grey, LangType, LANG_PLAYER, "AL_XFAKE_PLAYERS_SPAM_GAG", CvarString);
#endif
Gag[Index] = true;
return PLUGIN_HANDLED;
}
case 1 :
{
if ( getInteger(PluginCvar[plug_warn]) == 1 )
{
console_print(Index, LangType, Index, "AL_XFAKE_PLAYERS_SPAM_KICK", CvarString);
server_cmd("kick #%d ^"Ju u larguat nga serveri. Shiko ne console.^"", get_user_userid(Index));
}
else
{
server_cmd("kick #%d", get_user_userid(Index));
}
}
default :
{
new Punish[8];
num_to_str(getInteger(PluginCvar[xfakeplayer_spam_punish]), Punish, charsmax(Punish));
if ( getInteger(PluginCvar[plug_warn]) == 1 )
{
new CvarTag[32];
copy(CvarTag, charsmax(CvarTag), CvarString);
#if AMXX_VERSION_NUM < 183
client_print_color(0, Grey, LangType, LANG_PLAYER, "AL_XFAKE_PLAYERS_SPAM", "^3", CvarTag, "^4", Address);
client_print_color(0, Grey, LangType, LANG_PLAYER, "AL_XFAKE_PLAYERS_SPAM_PUNISH", "^3", CvarTag, "^4", Punish);
#else
client_print_color(0, print_team_grey, LangType, LANG_PLAYER, "AL_XFAKE_PLAYERS_SPAM", CvarTag, Address);
client_print_color(0, print_team_grey, LangType, LANG_PLAYER, "AL_XFAKE_PLAYERS_SPAM_PUNISH", CvarTag, Punish);
#endif
console_print(Index, LangType, Index, "AL_XFAKE_PLAYERS_SPAM_BAN", CvarString, Punish);
}
server_cmd("addip ^"%s^" ^"%s^";wait;writeip", Punish, Address);
}
}
if ( getInteger(PluginCvar[plug_log]) == 1 )
{
logCommand(NoLogInfo, LangType, LANG_SERVER, "AL_XFAKE_PLAYERS_SPAM_LOG", CvarString, Address);
}
}
return PLUGIN_HANDLED;
}
else
{
ClSaidSameTh_Count[Index] = 0;
}
}
}
case 2:
{
remove_quotes(Said);
if ( !UnBlockedChat[Index] )
{
if (equal(Said, Capcha[Index]))
{
UnBlockedChat[Index] = true;
#if AMXX_VERSION_NUM < 183
client_print_color(Index, Grey, LangType, LANG_PLAYER, "AL_XFAKE_PLAYERS_ALLOW_USE_CHAT", "^3", CvarString, "^4");
#else
client_print_color(Index, print_team_grey, LangType, LANG_PLAYER, "AL_XFAKE_PLAYERS_ALLOW_USE_CHAT", CvarString);
#endif
return PLUGIN_HANDLED;
}
else
{
#if AMXX_VERSION_NUM < 183
client_print_color(Index, Grey, LangType, LANG_PLAYER, "AL_XFAKE_PLAYERS_CAPCHA", "^3", CvarString, "^4", "^3", Capcha[Index], "^4");
#else
client_print_color(Index, print_team_grey, LangType, LANG_PLAYER, "AL_XFAKE_PLAYERS_CAPCHA", CvarString, Capcha[Index]);
#endif
return PLUGIN_HANDLED;
}
}
}
default :
{
return PLUGIN_CONTINUE;
}
}
return PLUGIN_CONTINUE;
}
public delayforSavingLastPass(UserPass[], Index)
{
copy(LastPass[Index], charsmax(LastPass[]), UserPass);
}
bool:getAccess(Index, UserPass[], len)
{
new UserName[MAX_NAME_LENGTH], CvarString[32];
get_user_name(Index, UserName, charsmax(UserName));
if (!(get_user_flags(Index) & ADMIN_RESERVATION))
{
getString(PluginCvar[Tag], CvarString, charsmax(CvarString));
#if AMXX_VERSION_NUM < 183
client_print_color(Index, Grey, LangType, LANG_PLAYER, "AL_ADMIN_HASNT_SLOT", "^3", CvarString, "^4");
#else
client_print_color(Index, print_team_grey, LangType, LANG_PLAYER, "AL_ADMIN_HASNT_SLOT", CvarString);
#endif
return false;
}
strtolower(UserName);
#if AMXX_VERSION_NUM < 183
for (new i = 0; i < AdminNum; ++i)
#else
for (new i = 0; i < TrieGetSize(LoginName); ++i)
#endif
{
if ( TrieKeyExists(LoginName, UserName) )
{
CorrectName[Index] = true;
}
else
{
CorrectName[Index] = false;
continue;
}
new TempData[AdminLogin];
TrieGetArray(LoginName, UserName, TempData, charsmax(TempData));
if ( equal(TempData[LoginFlag], "f") && CorrectName[Index] )
{
if ( equal(TempData[LoginPass], UserPass) || IsAdmin[Index] )
{
new Access = read_flags(TempData[LoginAccess]);
remove_user_flags(Index);
set_user_flags(Index, Access);
IsAdmin[Index] = true;
set_task(0.1, "delayforSavingLastPass", Index, UserPass, len);
}
break;
}
}
return true;
}
public loadAdminLogin()
{
new Path[64], CvarString[32];
get_localinfo("amxx_configsdir", Path, charsmax(Path));
getString(PluginCvar[admin_login_file], CvarString, charsmax(CvarString));
format(Path, charsmax(Path), "%s/%s", Path, CvarString);
if ( !file_exists(Path) )
{
new FilePointer = fopen(Path, "wt");
if ( !FilePointer )
{
return;
}
if ( getInteger(PluginCvar[plug_log]) == 1 )
{
getString(PluginCvar[Tag], CvarString, charsmax(CvarString));
logCommand(NoLogInfo, LangType, LANG_SERVER, "AL_FILE_NOT_FOUND", CvarString, Path);
}
fputs(FilePointer, "; Ketu do te shenohen adminat e sigurt.^n");
fputs(FilePointer, "; Shembull shtimi adminit : ^"emri^" ^"fjalekalimi^" ^"akceset^" ^"f^"^n");
fclose(FilePointer);
}
else
{
new FilePointer = fopen(Path, "rt");
if ( !FilePointer )
{
return;
}
if (LoginName == Invalid_Trie)
{
LoginName = TrieCreate();
}
TrieClear(LoginName);
#if AMXX_VERSION_NUM < 183
AdminNum = 0;
#endif
new Text[121], Name[MAX_NAME_LENGTH], Password[32], Access[26], Flags[6], TempData[AdminLogin];
while (!feof(FilePointer))
{
fgets(FilePointer, Text, charsmax(Text));
trim(Text);
if ( (Text[0] == ';') || !Text[0] || ((Text[0] == '/') && (Text[1] == '/')) )
{
continue;
}
if (parse(Text, Name, charsmax(Name), TempData[LoginPass], charsmax(TempData[LoginPass]),
TempData[LoginAccess], charsmax(TempData[LoginAccess]), TempData[LoginFlag], charsmax(TempData[LoginFlag])) != 4)
{
continue;
}
strtolower(Name);
TrieSetArray(LoginName, Name, TempData, charsmax(TempData));
#if AMXX_VERSION_NUM < 183
++AdminNum;
#endif
if (getInteger(PluginCvar[admin_login_debug]) == 1)
{
server_print(LangType, LANG_SERVER, "AL_ADMIN_DEBUG", Name, Password, Access, Flags);
}
}
fclose(FilePointer);
}
}
logCommand(Index, const StandardMessage[], any:...)
{
new LogMessage[256], Time[32], MapName[64];
get_time(" %H:%M:%S ", Time, charsmax(Time));
vformat(LogMessage, charsmax(LogMessage), StandardMessage, 3);
get_mapname(MapName, charsmax(MapName));
format(LogMessage, charsmax(LogMessage), "L %s|%s| %s", Time, MapName, LogMessage);
if (Index != NoLogInfo)
{
new String[32];
get_user_name(Index, String, charsmax(String));
#if AMXX_VERSION_NUM < 183
replace_all(LogMessage, charsmax(LogMessage), "$name$", String);
#else
replace_string(LogMessage, charsmax(LogMessage), "$name$", String);
#endif
get_user_ip(Index, String, charsmax(String), any:true);
#if AMXX_VERSION_NUM < 183
replace_all(LogMessage, charsmax(LogMessage), "$ip$", String);
#else
replace_string(LogMessage, charsmax(LogMessage), "$ip$", String);
#endif
if (Index)
{
get_user_authid(Index, String, charsmax(String));
}
else
{
copy(String, charsmax(String), "SERVER");
}
#if AMXX_VERSION_NUM < 183
replace_all(LogMessage, charsmax(LogMessage), "$authid$", String);
#else
replace_string(LogMessage, charsmax(LogMessage), "$authid$", String);
#endif
}
server_print(LogMessage);
write_file(LogFile, LogMessage, -1);
}
getString(Cvar, Buffer[], Len)
{
get_pcvar_string(Cvar, Buffer, Len);
}
getInteger(Cvar)
{
return get_pcvar_num(Cvar);
}
Float:getFloat(Cvar)
{
return get_pcvar_float(Cvar);
}
registersPrecache()
{
if (getHldsVersion() < 6027)
{
#if AMXX_VERSION_NUM >= 183
PluginCvar[autobuy_bug] = create_cvar("al_autobuy_bug" ,"1", _, _, true, 0.0, true, 1.0);
PluginCvar[utf8_bom] = create_cvar("al_utf8_bom", "0", _, _, true, 0.0, true, 1.0);
#else
PluginCvar[autobuy_bug] = register_cvar("al_autobuy_bug", "1");
PluginCvar[utf8_bom] = register_cvar("al_utf8_bom", "0");
#endif
}
else
{
#if AMXX_VERSION_NUM >= 183
PluginCvar[autobuy_bug] = create_cvar("al_autobuy_bug" ,"0", _, _, true, 0.0, true, 1.0);
PluginCvar[utf8_bom] = create_cvar("al_utf8_bom", "1", _, _, true, 0.0, true, 1.0);
#else
PluginCvar[autobuy_bug] = register_cvar("al_autobuy_bug", "0");
PluginCvar[utf8_bom] = register_cvar("al_utf8_bom", "1");
#endif
}
for (new i = 2; i < AllCvars; i++)
{
#if AMXX_VERSION_NUM >= 183
PluginCvar[i] = create_cvar(CvarName[i] ,CvarValue[i], _, _, bool:CvarLimits[i][hasMinValue], float(CvarLimits[i][minValue]),
bool:CvarLimits[i][hasMaxValue], float(CvarLimits[i][maxValue]));
#else
PluginCvar[i] = register_cvar(CvarName[i] ,CvarValue[i]);
#endif
}
}
registersInit()
{
register_plugin(PluginName, Version, "lspublic.com");
register_cvar("AL_BugFix", Version, FCVAR_SERVER | FCVAR_SPONLY);
register_clcmd("say", "hookChat");
register_clcmd("say_team", "hookChat");
for (new i = 0; i < sizeof AllBasicOnChatCommads; ++i)
{
register_concmd(AllBasicOnChatCommads[i], "hookBasicOnChatCommand");
}
#if AMXX_VERSION_NUM < 183
register_clcmd("say_team", "hookAdminChat");
#endif
if (getHldsVersion() < 6027)
{
for (new i = 0; i < sizeof AllAutobuyCommands; ++i)
{
register_clcmd(AllAutobuyCommands[i], "CheckAutobuyBug");
}
}
if ( find_plugin_byfile("advanced_bans.amxx") != -1 )
register_concmd("amx_addban", "hookBanClassCommand");
register_concmd("amx_reloadadmins", "reloadLogin");
register_concmd("amx_cvar", "cvarFunc");
register_clcmd("amx_rcon", "rconFunc");
register_clcmd("login", "cmdPass");
register_clcmd("al_info", "giveClientInfo");
register_srvcmd("al_info", "giveServerInfo");
}
public stringFilter(String[], Len)
{
for (new i = 0; String[i] != 0; ++i)
{
if ((String[i] == '#' || String[i] == '+') && isalpha(String[i+1]))
{
format(String[i+1], Len, " %s", String[i+1]);
}
}
}
bool:clientUseSteamid(Index)
{
new AuthID[35];
get_user_authid(Index, AuthID, charsmax(AuthID) );
return (contain(AuthID , ":") != -1 && containi(AuthID , "STEAM") != -1) ? true : false;
}
getHldsVersion()
{
new VersionPonter, VersionString[24], Pos;
new const VersionSizeNum = 4;
VersionPonter = get_cvar_pointer("sv_version");
get_pcvar_string(VersionPonter, VersionString, charsmax(VersionString));
Pos = strlen(VersionString) - VersionSizeNum;
format(VersionString, VersionSizeNum, "%s", VersionString[Pos]);
return str_to_num(VersionString);
}
bool:checkLong(cCommand[], Len)
{
new mCommand[512];
while (strlen(mCommand))
{
strtok(cCommand, mCommand, charsmax(mCommand), cCommand, Len , ' ', 1);
if ( strlen( mCommand ) > 31 )
{
return true;
}
}
return false;
}
getVaultDir()
{
new BaseDir[128];
get_basedir(BaseDir, charsmax(BaseDir));
format(BaseDir, charsmax(BaseDir), "%s/data/vault.ini", BaseDir);
if ( file_exists(BaseDir) )
{
delete_file(BaseDir);
}
return BaseDir;
}
WriteCfg( bool:exist )
{
new FilePointer = fopen(CfgFile, "wt"), CvarString[32];
if ( !FilePointer )
{
return;
}
writeSignature(FilePointer);
fputs(FilePointer, "// Kontrolloni nese CFG jane ekzekutuar me sukses.^n");
fputs(FilePointer, "echo ^"*ALBANIA-Protect : Skedari albania-bugfix.cfg eshte gjetur. Ka filluar te mbroj serverin.^"^n^n");
fputs(FilePointer, "// Cvar : al_cmd_bug^n");
fputs(FilePointer, "// Fund : Shiko biseden dhe gjeni problemet ^"client overflow^" te cilat demtojn lojtaret.^n");
fputs(FilePointer, "// Ndikim : Serveri nuk merr asgje, por lojtaret po ^"quit^" pavaresisht se qfare klienti perdor serveri mbet i zbrazet.^n");
fputs(FilePointer, "// Nota : -^n");
fputs(FilePointer, "// Perditesim : Verzioni 5.0-AL&RKS, plugin mbron serverin nga bug cmd '#'. Plugin po bllokon tani '#' dhe '%' ne chat dhe '#' ne emer.^n");
fputs(FilePointer, "// Perditesim : Verzioni 5.0-AL&RKS, plugini behet me e zgjuar, dhe vetem do te bllokoje perdorimet e mundshme te ketij problemi, pra karakteret '#' si '%' mund te perdoren por jo ne te gjitha rastet.^n");
fputs(FilePointer, "// Perditesim : Verzioni 5.0-AL&RKS, plugin largon gabim nga karakteret '+' ne emer, ky qe perpiqet te ngaterroje lojtaret ose administratoret (emri i lojtarit nuk shfaqet ne menute).^n");
fputs(FilePointer, "// Perditesim : Verzioni 5.0-AL&RKS, Plugini kontrollon gjithashtu komandat themelore qq mund te japin mesazhe chat (sh: amx_say, amx_psay, etc.), eshte e pranishme ne gjitha komandat adminchat.amxx.^n");
fputs(FilePointer, "// Perditesim : Verzioni 5.0-AL&RKS, plugini behet me e bute me lojtaret dhe nuk do te zevendesoje me karakteret '#' si '+' me nje hapesire ne emer, por do te vendose nje hapesire pas tyre.^n");
fputs(FilePointer, "// Vlera 0: Funksioni eshte i çaktivizuar.^n");
fputs(FilePointer, "// Vlera 1: Sulmet jane te bllokuara. [Default]^n");
if (exist)
{
fprintf(FilePointer, "al_cmd_bug ^"%d^"^n^n", getInteger(PluginCvar[cmd_bug]));
}
else
{
fputs(FilePointer, "al_cmd_bug ^"1^"^n^n");
}
fputs(FilePointer, "// Cvar : al_spec_bug^n");
fputs(FilePointer, "// Fund : Ndiqni aktivitetin e lojtareve dhe ndaloni se ndryshuari ekipin te spektatori nese ata kane hapur zgjedhjen e menuse se modelit, per te ndaluar specifikimin.^n");
fputs(FilePointer, "// Ndikim : Serveri fiket nese ju e pranoni kete Bug.^n");
fputs(FilePointer, "// Perditesim : Duke filluar me versionin 5.0-AL&RKS, shtojca nuk ben gabime, keshtu qe nuk do te behen zbulime false.^n");
fputs(FilePointer, "// Vlera 0: Funksioni eshte i çaktivizuar.^n");
fputs(FilePointer, "// Vlera 1: Sulmet jane te bllokuara. [Default]^n");
if (exist)
{
fprintf(FilePointer, "al_spec_bug ^"%d^"^n^n", getInteger(PluginCvar[spec_bug]));
}
else
{
fputs(FilePointer, "al_spec_bug ^"1^"^n^n");
}
#if AMXX_VERSION_NUM < 183
fputs(FilePointer, "// Cvar : al_admin_chat_flood^n");
fputs(FilePointer, "// Fund : Ndiqni aktivitetin e lojtareve qe perdorin biseden e administratorit, nese njerezit perpiqen te permbytin kete bisede ata jane te detyruar.^n");
fputs(FilePointer, "// Ndikim : Serveri nuk vuan nga asgje, vetem nese ^"admin chat^"(U@) une jame larguar per shkak : ^"Reliable channel overflowed^".^n");
fputs(FilePointer, "// Nota : Kjo veçori eshte e disponueshme vetem per serveret me AMXX 1.8.1 ose AMXX 1.8.2 .^n");
fputs(FilePointer, "// Vlera 0: Funksioni eshte i çaktivizuar.^n");
fputs(FilePointer, "// Vlera 1: Sulmet jane te bllokuara. [Default]^n");
if (exist)
{
fprintf(FilePointer, "al_admin_chat_flood ^"%d^"^n", getInteger(PluginCvar[admin_chat_flood]));
}
else
{
fputs(FilePointer, "al_admin_chat_flood ^"1^"^n^n");
}
fputs(FilePointer, "// Cvar : al_admin_chat_flood_time (Aktivizohe vetem nese ^"al_admin_chat_flood^" eshte vendosur ne 1)^n");
fputs(FilePointer, "// Perdorimi : Kufizon kohen maksimale te dergimit te disa mesazheve nga i njejti klient ne biseden e administratorit, duke bllokuar keshtu sulmet e tipit. ^"chat overflow^".^n");
fputs(FilePointer, "// Nota : Rekomandohet te mos ndryshoni vleren standarde te cvares, ne menyre qe mbrojtja te funksionoje siç duhet.^n");
if (exist)
{
fprintf(FilePointer, "al_admin_chat_flood_time ^"%.2f^"^n", getFloat(PluginCvar[admin_chat_flood_time]));
}
else
{
fputs(FilePointer, "al_admin_chat_flood_time ^"0.75^"^n^n");
}
#endif
fputs(FilePointer, "// Cvar : al_autobuy_bug^n");
fputs(FilePointer, "// Fund : Ndiqni komandat autobuy / rebuy, dhe nese behen dyshues, ato ndalen.^n");
fputs(FilePointer, "// Ndikimi : Serveri rrezohet nese ju e pranoni kete gabim ose Bug.^n");
fputs(FilePointer, "// Nota : Serveret e motorit HLDS 6xxx nuk jane me te prekshem nga ky problem.^n");
fputs(FilePointer, "// Vlera 0: Funksioni eshte i çaktivizuar.^n");
fputs(FilePointer, "// Vlera 1: Sulmet jane te bllokuara. [Default]^n");
if (exist)
{
fprintf(FilePointer, "al_autobuy_bug ^"%d^"^n^n", getInteger(PluginCvar[autobuy_bug]));
}
else
{
if (getHldsVersion() < 6027)
{
fputs(FilePointer, "al_autobuy_bug ^"1^"^n^n");
}
else
{
fputs(FilePointer, "al_autobuy_bug ^"0^"^n^n");
}
}
fputs(FilePointer, "// Cvar : al_fake_players^n");
fputs(FilePointer, "// Fund : Ajo gjurmon njerezit e lidhur me serverin dhe nderhyn kur numri i njerezve me te njejtin IP tejkalon ate te vendosur ne kuadratin al_fake_players_limit.^n");
fputs(FilePointer, "// Ndikimi : Serveri mund te mbahet ne vend (bota qe pret qe keta lojtare te vdesin, por ata nuk do te bejne), dhe lojtaret e vdekur do te lene serverin.^n");
fputs(FilePointer, "// Nota : Nese ka disa njerez qe ndajne te njejten lidhje interneti, ato mund të ndalohen (N minuta), ne kete rast ngrini : al_fake_players_limit ose ndalet al_fake_players.^n");
fputs(FilePointer, "// Vlera 0: Funksioni eshte i çaktivizuar.^n");
fputs(FilePointer, "// Vlera 1: Sulmet jane te bllokuara, keni marre banned 30 min. [Default]^n");
if (exist)
{
fprintf(FilePointer, "al_fake_players ^"%d^"^n^n", getInteger(PluginCvar[fake_players]));
}
else
{
fputs(FilePointer, "al_fake_players ^"1^"^n^n");
}
fputs(FilePointer, "// Cvar : al_fake_players_limit (Aktivizohet vetem kur eshte cvar ^"al_fake_players^" ne 1)^n");
fputs(FilePointer, "// Perdorimi : Kufizon numrin maksimal te njerezve ne te njejten IP, duke bllokuar keshtu sulmet e lojtareve te rreme.^n");
fputs(FilePointer, "// Nota : Rekomandohet te mos jete me e ulet se vlera ^"3^".^n");
if (exist)
{
fprintf(FilePointer, "al_fake_players_limit ^"%d^"^n^n", getInteger(PluginCvar[fake_players_limit]));
}
else
{
fputs(FilePointer, "al_fake_players_limit ^"5^"^n^n");
}
fputs(FilePointer, "// Cvar : al_fake_players_type (Aktivizohet vetem kur eshte cvar ^"al_fake_players^" ne 1)^n");
fputs(FilePointer, "// Perdorimi : Zgjedhni llojin e mbrojtjes ndaj lojtareve te rreme.^n");
fputs(FilePointer, "// Nota : Nese ka shum lojtare me te njejten IP, vendosni nje limit ^"1^".^n");
fputs(FilePointer, "// Vlera 0: Nese ka shum lojtar me te njejten IP, lojtari ri do te largohet automatikisht nga serveri.^n");
fputs(FilePointer, "// Vlera 1: Nese ka shum lojtar me te njejten IP, lojtari ri do te merr banned. [Default]^n");
if (exist)
{
fprintf(FilePointer, "al_fake_players_type ^"%d^"^n^n", getInteger(PluginCvar[fake_players_type]));
}
else
{
fputs(FilePointer, "al_fake_players_type ^"1^"^n^n");
}
fputs(FilePointer, "// Cvar : al_fake_players_punish Aktivizohet kur eshte cvar ^"al_fake_players_type^" tek 1)^n");
fputs(FilePointer, "// Perdorimi : Ajo bllokon IP-ne e sulmuesit per nje periudhe kohe, te matur ne minuta.^n");
fputs(FilePointer, "// Nota : Ne ju rekomandojme qe te mos vendosni nje vlere shume te larte, sepse ne rast te nje zbulimi te pasakte, lojtaret e servereve mund te duhet te vuajne.^n");
if (exist)
{
fprintf(FilePointer, "al_fake_players_punish ^"%d^"^n^n", getInteger(PluginCvar[fake_players_punish]));
}
else
{
fputs(FilePointer, "al_fake_players_punish ^"10^"^n^n");
}
fputs(FilePointer, "// Cvar : al_delete_custom_hpk");
fputs(FilePointer, "// Fund : Ne fund te qdo harte skedari custom.hpk do te fshihet.^n");
fputs(FilePointer, "// Ndikimi : Serveri mund te pesoj problemi kur nderrohet harta, mund te zgjate deri 60 sekonda.^n");
fputs(FilePointer, "// Nota : Gabim ^"GABIM: nuk mund te hapet custom.hpk^" mund te injorohet sepse nuk ndikon ne server asgje.^n");
fputs(FilePointer, "// Vlera 0: Funksioni eshte qaktivizuar.^n");
fputs(FilePointer, "// Vlera 1: Skedari fshihet. [Default]^n");
if (exist)
{
fprintf(FilePointer, "al_delete_custom_hpk ^"%d^"^n^n", getInteger(PluginCvar[delete_custom_hpk]));
}
else
{
fputs(FilePointer, "al_delete_custom_hpk ^"1^"^n^n");
}
fputs(FilePointer, "// Cvar : al_delete_vault^n");
fputs(FilePointer, "// Fund : Ne fund te qdo harte skedari vault.ini do te fshihet.^n");
fputs(FilePointer, "// Ndikimi : Serveri mund te pesoj problemi kur nderrohet harta, mund te zgjate deri 60 sekonda.^n");
fputs(FilePointer, "// Nota : Nese ruani te dhena ne kete skedar (^"vault.ini^"), vendos cvar ne vleren ^"0^".^n");
fputs(FilePointer, "// Vlera 0: Funksioni eshte i ndalur.^n");
fputs(FilePointer, "// Vlera 1: Skedari fshihet dhe vendoset ^"server_language en^" ne vault.ini. [Default]^n");
fputs(FilePointer, "// Vlera 2: Skedari fshihet dhe vendoset ^"server_language ro^" ne vault.ini.^n");
if (exist)
{
fprintf(FilePointer, "al_delete_vault ^"%d^"^n^n", getInteger(PluginCvar[delete_vault]));
}
else
{
fputs(FilePointer, "al_delete_vault ^"1^"^n^n");
}
fputs(FilePointer, "// Cvar : al_advertise^n");
fputs(FilePointer, "// Efekti : Shfaq mesazhin ku tregon se serveri juaj mbrohet nga Albania-BugFix.^n");
fputs(FilePointer, "// Nota : Mesazhi mund te modifikohet tek skedari LANG. (^"data/lang/albania-bugfix.txt^")^n");
fputs(FilePointer, "// Vlera 0: Mesazhi nuk do te shfaqet.^n");
fputs(FilePointer, "// Vlera 1: Mesazhi do te jete aktiv dhe do te shfaqet. [Default]^n");
if (exist)
{
fprintf(FilePointer, "al_advertise ^"%d^"^n^n", getInteger(PluginCvar[advertise]));
}
else
{
fputs(FilePointer, "al_advertise ^"1^"^n^n");
}
fputs(FilePointer, "// Cvar : al_advertise_time (Aktivizohet kur cvar eshte ^"al_advertise^" tek 1)^n");
fputs(FilePointer, "// Perdorimi : Vendos mesazhi te shfaqe nje here ne N sekonda.^n");
fputs(FilePointer, "// Nota : Rekomandohet te vendoset qdo 3-4 minutat sepse shpesh mundet me kriju probleme pra spam.^n");
if (exist)
{
fprintf(FilePointer, "al_advertise_time ^"%d^"^n^n", getInteger(PluginCvar[advertise_time]));
}
else
{
fputs(FilePointer, "al_advertise_time ^"120^"^n^n");
}
fputs(FilePointer, "// Cvar : al_warn^n");
fputs(FilePointer, "// Efekti : Shfaq mesazhet qe njoftojne klientet duke u perpjekur te prishin aktivitetin normal te serverit.^n");
fputs(FilePointer, "// Nota : Mesazhi mund te modifikohet tek skedari LANG. (^"data/lang/albania-bugfix.txt^")^n");
fputs(FilePointer, "// Vlera 0: Mesazhi eshte qaktivizuar.^n");
fputs(FilePointer, "// Vlera 1: Mesazhi eshte aktiv dhe do te shfaqet. [Default]^n");
if (exist)
{
fprintf(FilePointer, "al_warn ^"%d^"^n^n", getInteger(PluginCvar[plug_warn]));
}
else
{
fputs(FilePointer, "al_warn ^"1^"^n^n");
}
fputs(FilePointer, "// Cvar : al_log");
fputs(FilePointer, "// Efekti : Lejon plugini te regjistroj aktivitetin e saj ne server pjes pjes.^n");
fputs(FilePointer, "// Nota : Nese fillon kjo do te shfaqet edhe tek consola tek klienti.^n");
fputs(FilePointer, "// Vlera 0: Funksioni eshte qaktivizuar.^n");
fputs(FilePointer, "// Vlera 1: Funksioni eshte aktiv.^n");
if (exist)
{
fprintf(FilePointer, "al_log ^"%d^"^n^n", getInteger(PluginCvar[plug_log]));
}
else
{
fputs(FilePointer, "al_log ^"1^"^n^n");
}
fputs(FilePointer, "// Cvar : al_admi_login");
fputs(FilePointer, "// Fund : Lejon vertetimin e administratoreve me komande ^ "fjalekalimin hyrese ^" ne tastiere (nuk kerkon setinfo)^n");
fputs(FilePointer, "// Ndikimi : Fjalekalimet e administratorit jane shume te lehta per tu vjedhur, mjafton te futesh vetem ne nje server dhe fjalekalimi yt nuk eshte me i sigurt.^n");
fputs(FilePointer, "// Nota : Adminat shtohen normalisht ^"emri^" ^"fjalekalimi^" ^"akceset^" ^"f^".^n");
fputs(FilePointer, "// Perditesimi : Duke filluar me versionin 5.0-AL-RKS, komanda ne chat! Hyrja ose / hyrja zhduket sepse nuk eshte perdorur.^n");
fputs(FilePointer, "// Vlera 0: Funksioni eshte qaktivizuar.^n");
fputs(FilePointer, "// Vlera 1: Funksioni eshte aktiv. [Default]^n");
if (exist)
{
fprintf(FilePointer, "al_admin_login ^"%d^"^n^n", getInteger(PluginCvar[admin_login]));
}
else
{
fputs(FilePointer, "al_admin_login ^"1^"^n^n");
}
fputs(FilePointer, "// Cvar : al_admin_login_file (Aktivizohet kur cvar eshte ^"al_admin_login^" tek 1)^n");
fputs(FilePointer, "// Efekti : Zgjedhni skedarin nga i cili admini lexon listen akceseve ^"f^"^n");
fputs(FilePointer, "// Nota : Preferohet te mos mbivendoset me skedarin e administratoreve "normale", perndryshe disa prej administratoreve te mbrojtur mund te ngarkohen nga shtojca themelore, duke krijuar bezdi..^n");
if (exist)
{
getString(PluginCvar[admin_login_file], CvarString, charsmax(CvarString));
fprintf(FilePointer, "al_admin_login_file ^"%s^"^n^n", CvarString);
}
else
{
fputs(FilePointer, "al_admin_login_file ^"users_login.ini^"^n^n");
}
fputs(FilePointer, "// Cvar : al_admin_login_debug (Aktivizohet kur cvar eshte ^"al_admin_login^" tek 1)^n");
fputs(FilePointer, "// Efekti : Nese administratori nuk ngarkon sakte, ai do te shtype ne tastieren e serverit argumentet e leximit (emri - fjalekalimi - hyrja - flamuri).^n");
fputs(FilePointer, "// Nota : Nese funksioni eshte filluar, ai mund te krijoje vonese, qellimi i tij eshte vetem te kontrolloni nese administratori eshte vendosur sakte.^n");
fputs(FilePointer, "// Vlera 0: Funksioni eshte qaktivizuar. [Default]^n");
fputs(FilePointer, "// Vlera 1: Argumentet do te shkruhen ne console.^n");
if (exist)
{
fprintf(FilePointer, "al_admin_login_debug ^"%d^"^n^n", getInteger(PluginCvar[admin_login_debug]));
}
else
{
fputs(FilePointer, "al_admin_login_debug ^"0^"^n^n");
}
fputs(FilePointer, "// Cvar : al_utf8_bom^n");
fputs(FilePointer, "// Fund : Kontrolloni secilen skedar .res ne harta, dhe nese gjen gjurme UTF8-BOM, do t'i heqe ato.^n");
fputs(FilePointer, "// Ndikimi : Serveri eshte prish : Host_Error: PF_precache_generic_I: Bad string.^n");
fputs(FilePointer, "// Nota : Gabimi shfaqet vetem tek HLDS 6***.^n");
fputs(FilePointer, "// Vlera 0: Funksioni eshte qaktivizuar.^n");
fputs(FilePointer, "// Vlera 1: Dosja eshte dekontaminuar. [Default]^n");
if (exist)
{
fprintf(FilePointer, "al_utf8_bom ^"%d^"^n^n", getInteger(PluginCvar[utf8_bom]));
}
else
{
if (getHldsVersion() >= 6027)
{
fputs(FilePointer, "al_utf8_bom ^"1^"^n^n");
}
else
{
fputs(FilePointer, "al_utf8_bom ^"0^"^n^n");
}
}
fputs(FilePointer, "// Cvar : al_tag^n");
fputs(FilePointer, "// Perdorimi : Vendosni etiketen. (Emri tij)^n");
fputs(FilePointer, "// Nota : Mundesisht emri i etiketes nuk duhet te kaloje 32 karaktere, perndryshe nuk do te shfaqet siç duhet ne chat.^n");
fputs(FilePointer, "// Perditesimi : Ne verzionin e ri, plugini ju mundeson shum gjera te mira.^n");
if (exist)
{
getString(PluginCvar[Tag], CvarString, charsmax(CvarString));
fprintf(FilePointer, "al_tag ^"%s^"^n^n", CvarString);
}
else
{
fputs(FilePointer, "al_tag ^"*ALBANIA-Protect^"^n^n");
}
fputs(FilePointer, "// Cvar : al_color_bug^n");
fputs(FilePointer, "// Fund : Ndiqni biseden dhe vendosni per te metat me ngjyra qe paralajmerojnë lojtaret dhe administratoret.^n");
fputs(FilePointer, "// Ndikimi : Serveri nuk veren asgje, por lojtaret ose administratoret do te alarmohen per ngjyrat e perdorura nga nje prej klienteve.^n");
fputs(FilePointer, "// Nota : Nese nuk ndikoheni nga ky bug, rekomandohet te nderpritet funksioni.^n");
fputs(FilePointer, "// Vlera 0: Funksioni eshte qaktivizuar.^n");
fputs(FilePointer, "// Vlera 1: Bug eshte bllokuar. [Default]^n");
if (exist)
{
fprintf(FilePointer, "al_color_bug ^"%d^"^n^n", getInteger(PluginCvar[color_bug]));
}
else
{
fputs(FilePointer, "al_color_bug ^"1^"^n^n");
}
fputs(FilePointer, "// Cvar : al_motdfile^n");
fputs(FilePointer, "// Fund : Gjurmon veprimtarine e administratoreve permes komandes amx_cvar dhe perpiqet te ndaloje modifikimin e motorit cvar ne nje skedar .ini.^n");
fputs(FilePointer, "// Ndikimi : Serveri nuk vjedh asgje, por administratori qe perdor kete shfrytezim mund tëe vjedhe te dhena te rendesishme nga serveri, siç eshte lista e administratoreve, lista e pluginsave, etj..^n");
fputs(FilePointer, "// Nota : Se shpejti, do te perdoret nje algoritem shume me i mire dhe me i drejte, por vetem per AMXX 1.8.3 .^n");
fputs(FilePointer, "// Perditesimi : Ne verzionin e ri plugin do te ndaloje vjedhjen e amx_rcon.^n");
fputs(FilePointer, "// Vlera 0: Funksioni eshte qaktivizuar.^n");
fputs(FilePointer, "// Vlera 1: Bug eshte bllokuar. [Default]^n");
if (exist)
{
fprintf(FilePointer, "al_motdfile ^"%d^"^n^n", getInteger(PluginCvar[motdfile]));
}
else
{
fputs(FilePointer, "al_motdfile ^"1^"^n^n");
}
fputs(FilePointer, "// Cvar : al_anti_pause^n");
fputs(FilePointer, "// Fund : Nga kjo rrjedh se plugini i mbrojtjes ^ "ALBANIA-Protect ^" nuk mund te hidhet ne prishje nga nje sulmues.^n");
fputs(FilePointer, "// Ndikimi : Serveri nuk mbrohet me nga plugini, i cili eshte e ekspozuar ndaj shfrytezimeve te shumta.^n");
fputs(FilePointer, "// Nota : Nese doni te çaktivizoni pluginin, rekomandohet qe ta vendosni kete vlere ne ^"0^".^n");
fputs(FilePointer, "// Vlera 0: Funksioni eshte qaktivizuar.^n");
fputs(FilePointer, "// Vlera 1: Bug eshte bllokuar. [Default]^n");
if (exist)
{
fprintf(FilePointer, "al_anti_pause ^"%d^"^n^n", getInteger(PluginCvar[anti_pause]));
}
else
{
fputs(FilePointer, "al_anti_pause ^"1^"^n^n");
}
fputs(FilePointer, "// Cvar : al_anti_ban_class^n");
fputs(FilePointer, "// Fund : Ndiqni aktivitetin e fillimit te amx_addban, ne menyre qe te mos ndaloni shume klasa ip.^n");
fputs(FilePointer, "// Ndikimi : Serveri nuk vuan nga asgje, por nese ka para ne klase, shume lojtare nuk do te jene ne gjendje te lidhen me serverin.^n");
fputs(FilePointer, "// Nota : Funksioni ndjek vetem komanden amx_addban.^n");
fputs(FilePointer, "// Vlera 0: Funksioni eshte qaktivizuar.^n");
fputs(FilePointer, "// Vlera 1: Funksioni do te bllokoje komanden nese zbulon ndalimin ne nje klase IP.^n");
fputs(FilePointer, "// Vlera 2: Funksioni do te bllokoje komanden nese zbulon ndalimin ne dy klase IP. [Default]^n");
fputs(FilePointer, "// Vlera 3: Funksioni do te bllokoje komanden nese zbulon ndalimin ne tre klase IP.^n");
fputs(FilePointer, "// Vlera 4: Funksioni do te bllokoje komanden nese zbulon ndalimin ne kater klase IP.^n");
if (exist)
{
fprintf(FilePointer, "al_anti_ban_class ^"%d^"^n^n", getInteger(PluginCvar[anti_ban_class]));
}
else
{
fputs(FilePointer, "al_anti_ban_class ^"2^"^n^n");
}
fputs(FilePointer, "// Cvar : al_give_info^n");
fputs(FilePointer, "// Fund : Serveri do t'i dergoje informacion perdoruesit ne lidhje me pluginin.^n");
fputs(FilePointer, "// Ndikimi : Kur dikush shkruan ^ "al_info ^" ne tastiere, informacioni do te dorezohet (gjithashtu ne tastiere).^n");
fputs(FilePointer, "// Nota : Nese mesazhi transmetohet permes tastieres se serverit, ai do te marre disa informacione shtese.^n");
fputs(FilePointer, "// Vlera 0: Funksioni eshte qaktivizuar.^n");
fputs(FilePointer, "// Vlera 1: Funksioni eshte aktiv. [Default]^n");
if (exist)
{
fprintf(FilePointer, "al_give_info ^"%d^"^n^n", getInteger(PluginCvar[info]));
}
else
{
fputs(FilePointer, "al_give_info ^"1^"^n^n");
}
fputs(FilePointer, "// Cvar : al_xfakeplayer_spam^n");
fputs(FilePointer, "// Fund : Ajo bllokon sulme te mundshme , te cilat synojne te reklamojne servere te caktuar ne 2 menyra.^n");
fputs(FilePointer, "// Ndikimi : Bots reklamojne ne serverat e tjere, duke merzitur lojtaret / stafin e serverit.^n");
fputs(FilePointer, "// Nota : Nese nje lojtar shkruan mesazhin e pare me te gjate se karakteret N (N = vlera e cvar al_xfakeplayer_spam_maxchars), ai do te bllokohet nga plugini. (Nese shtojca ka vleren 1)^n");
fputs(FilePointer, "// Vlera 0: Funksioni eshte qaktivizuar.^n");
fputs(FilePointer, "// Vlera 1: Plugini do te mbroje serverin tuaj duke ndaluar fjalet e para ne chat, duke ndjekur theniet e keqija nese ato jane te njejta, do ta ndeshkoje ate klient (Perdorni kutite me poshte) [Default]^n");
fputs(FilePointer, "// Vlera 2: Plugini do te ndaloje çdo klient te shkruaje ne bisede derisa te fute nje kod capcha ne bisede. (kodi parazgjedhur ose kodi i rastit, kjo eshte e vendosur ne cv al_xfakeplayer_spam_capcha)^n");
if (exist)
{
fprintf(FilePointer, "al_xfakeplayer_spam ^"%d^"^n^n", getInteger(PluginCvar[xfakeplayer_spam]));
}
else
{
fputs(FilePointer, "al_xfakeplayer_spam ^"1^"^n^n");
}
fputs(FilePointer, "// Cvar : al_xfakeplayer_spam_maxchars (Aktivizohet kur cvar eshte ^"al_xfakeplayer_spam^" tek 1)^n");
fputs(FilePointer, "// Perdorimi : Zgjidhni numrin maksimal te karaktereve qe nje lojtar mund te shkruaj ne menyre qe te mos kontrollohet dhe anulohet.^n");
fputs(FilePointer, "// Nota : Vemendje, numri i karaktereve nuk duhet te kaloje 15 karaktere, perndryshe mbrojtja do te jete e panevojshme.^n");
fputs(FilePointer, "// Vlera 0: Funksioni eshte qaktivizuar.^n");
fputs(FilePointer, "// Vlera 1: Funksioni eshte aktivizuar. [Default]^n");
if (exist)
{
fprintf(FilePointer, "al_xfakeplayer_spam_maxchars ^"%d^"^n^n", getInteger(PluginCvar[xfakeplayer_spam_maxchars]));
}
else
{
fputs(FilePointer, "al_xfakeplayer_spam_maxchars ^"12^"^n^n");
}
fputs(FilePointer, "// Cvar : al_xfakeplayer_spam_maxsais (Aktivizohet kur cvar eshte ^"al_xfakeplayer_spam^" tek 1)^n");
fputs(FilePointer, "// Perdorimi : Zgjidhni numrin e mesazheve identike te derguara derisa IP te marre banned.^n");
fputs(FilePointer, "// Nota : Vemendje, numri i mesazheve identike te derguara nuk duhet te jete me pak se 3, perndryshe mbrojtja mund te ndaloje disa lojtare.^n");
if (exist)
{
fprintf(FilePointer, "al_xfakeplayer_spam_maxsais ^"%d^"^n^n", getInteger(PluginCvar[xfakeplayer_spam_maxsais]));
}
else
{
fputs(FilePointer, "al_xfakeplayer_spam_maxsais ^"10^"^n^n");
}
fputs(FilePointer, "// Cvar : al_xfakeplayer_spam_type (Aktivizohet kur cvar eshte ^"al_xfakeplayer_spam^" tek 1)^n");
fputs(FilePointer, "// Perdorimi : Zgjedhni llojin e mbrojtjes ndaj xfake-player.^n");
fputs(FilePointer, "// Nota : Vemendje, nese cvar eshte vendosur ne ^ "0 ^", xfake-player do te vazhdoje te mbetet ne server.^n");
fputs(FilePointer, "// Vlera 0: Lojtari nuk mund te flas.^n");
fputs(FilePointer, "// Vlera 1: Lojtari do te largohet nga serveri.^n");
fputs(FilePointer, "// Vlera 2: Lojtari do te marr banned per vleren e vendosur tek cvar al_xfakeplayer_spam_punish. [Default]^n");
if (exist)
{
fprintf(FilePointer, "al_xfakeplayer_spam_type ^"%d^"^n^n", getInteger(PluginCvar[xfakeplayer_spam_type]));
}
else
{
fputs(FilePointer, "al_xfakeplayer_spam_type ^"2^"^n^n");
}
fputs(FilePointer, "// Cvar : al_xfakeplayer_spam_punish (Aktivizohet kur cvar eshte ^"al_xfakeplayer_spam_type^" tek 2)^n");
fputs(FilePointer, "// Perdorimi : Ajo bllokon IP-ne e sulmuesit per nje periudhe kohe, te matur ne minuta.^n");
fputs(FilePointer, "// Nota : Rekomandohet te mos vendosni nje vlere shume te larte per kete varg, ne rast te zbulimit te rreme, lojtari mund te vuaje.^n");
if (exist)
{
fprintf(FilePointer, "al_xfakeplayer_spam_punish ^"%d^"^n^n", getInteger(PluginCvar[xfakeplayer_spam_punish]));
}
else
{
fputs(FilePointer, "al_xfakeplayer_spam_punish ^"5^"^n^n");
}
fputs(FilePointer, "// Cvar : al_xfakeplayer_spam_capcha (Aktivizohet kur cvar eshte ^"al_xfakeplayer_spam_type^" tek 2)^n");
fputs(FilePointer, "// Perdorimi : Mos lejoni qe klientet ne server te perdorin biseden derisa te shkruajne nje kod specifik ne chat.^n");
fputs(FilePointer, "// Nota : Nese keni nje server me shume kliente te huaj, vlera rekomandohet te jete 0.^n");
fputs(FilePointer, "// Vlera 0: Biseda do te zhbllokohet nga nje kod i paracaktuar. (ne vargun al_xfakeplayer_spam_capcha_word) [Default]^n");
fputs(FilePointer, "// Vlera 1: Biseda do te zhbllokohet nga nje kod i rastesishem.^n");
if (exist)
{
fprintf(FilePointer, "al_xfakeplayer_spam_capcha ^"%d^"^n^n", getInteger(PluginCvar[xfakeplayer_spam_capcha]));
}
else
{
fputs(FilePointer, "al_xfakeplayer_spam_capcha ^"0^"^n^n");
}
fputs(FilePointer, "// Cvar : al_xfakeplayer_spam_capcha_word (Aktivizohet kur cvar eshte ^"al_xfakeplayer_spam_capcha^" tek 0)^n");
fputs(FilePointer, "// Perdorimi : Vendosni nje kod te paracaktuar dhe duke shkruar kodin ne bisede nga klienti, ^n");
fputs(FilePointer, "// Nota : Mundesisht kodi nuk permban shume karaktere, disa kliente urrejne te shkruajne kode te gjata mbi 5 karaktere.^n");
fputs(FilePointer, "// Perditesimi : Tek verzioni ri ju mund te gjeni shum gjera te nevojshme per serverin tuaj.^n");
if (exist)
{
getString(PluginCvar[xfakeplayer_spam_capcha_word], CvarString, charsmax(CvarString));
fprintf(FilePointer, "al_xfakeplayer_spam_capcha_word ^"%s^"^n^n", CvarString);
}
else
{
fputs(FilePointer, "al_xfakeplayer_spam_capcha_word ^"/chat^"^n^n");
}
fputs(FilePointer, "// Cvar : al_prot_cvars^n");
fputs(FilePointer, "// Fund : Parandalon kuartet nga ndryshimi i kesaj plugini. Lejimi i tyre te ndryshon vetem nga tastiera e serverit ose nga konfiguruesi.^n");
fputs(FilePointer, "// Ndikimi : Mbrojtja mund te preket dhe te humb serveri sigurimin.^n");
fputs(FilePointer, "// Nota : Nese doni te ndryshoni vlerat ne hyrje te administratorit, cvar do te duhet te vendoset ne vleren ^"0^".^n");
fputs(FilePointer, "// Vlera 0: Funksioni eshte qaktivizuar.^n");
fputs(FilePointer, "// Vlera 1: Funksioni eshte aktiv. [Default]^n");
if (exist)
{
fprintf(FilePointer, "al_prot_cvars ^"%d^"^n^n", getInteger(PluginCvar[protcvars]));
}
else
{
fputs(FilePointer, "al_prot_cvars ^"1^"^n^n");
}
fputs(FilePointer, "// Cvar : al_console_say^n");
fputs(FilePointer, "// Fund : Ajo parandalon dergimin e mesazheve nga tastiera, duke bllokuar keshtu lidhjet.^n");
fputs(FilePointer, "// Ndikimi : Ndalon spam dhe disa reklama tjera.^n");
fputs(FilePointer, "// Nota : Nese doni te shtoni fjale qe perfaqesojne perjashtime per kete funksion, fjalet duhet te shkruhen ne skedarin "albania-bugfix.ini^".^n");
fputs(FilePointer, "// Nota : Kjo mbrojtje nuk eshte perfekte mirepo nje filtrim sado pak per te ju ndihmuar ;).");
fputs(FilePointer, "// Vlera 0: Funksioni eshte qaktivizuar.^n");
fputs(FilePointer, "// Vlera 1: Funksioni eshte aktiv. [Default]^n");
if (exist)
{
fprintf(FilePointer, "al_console_say ^"%d^"^n^n", getInteger(PluginCvar[console_say]));
}
else
{
fputs(FilePointer, "al_console_say ^"1^"^n^n");
}
fclose(FilePointer);
}
WriteLang( bool:exist )
{
if (exist)
{
new Line[512], FilePointer = fopen(LangFile, "wt");
if ( !FilePointer )
{
return;
}
#if AMXX_VERSION_NUM < 183
writeSignature(FilePointer);
#else
writeSignature(FilePointer, true);
#endif
fputs(FilePointer, "[en]^n^n");
formatex(Line, charsmax(Line), "AL_UPDATE_CFG = %L^n", LANG_SERVER, "AL_UPDATE_CFG", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_UPDATE_CFG = %s : Perditesova skedarin CFG: albania-bugfix.cfg.^n");
}
else
{
fputs(FilePointer, Line);
}
formatex(Line, charsmax(Line), "AL_UPDATE_LANG = %L^n", LANG_SERVER, "AL_UPDATE_LANG", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_UPDATE_LANG = %s : Ne kemi aktualizuar skedarin LANG: albania-bugfix.txt.^n");
}
else
{
fputs(FilePointer, Line);
}
#if AMXX_VERSION_NUM < 183
formatex(Line, charsmax(Line), "AL_FAKE_PLAYERS = %L^n", LANG_SERVER, "AL_FAKE_PLAYERS", "^%s", "^%s", "^%s", "^%s");
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_FAKE_PLAYERS = %s%s : %sNe kemi verejtur shum njerez me te njejten IP : %s .^n");
}
else
{
fputs(FilePointer, Line);
}
formatex(Line, charsmax(Line), "AL_FAKE_PLAYERS_PUNISH = %L^n", LANG_SERVER, "AL_FAKE_PLAYERS_PUNISH", "^%s", "^%s", "^%s", "^%s");
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_FAKE_PLAYERS_PUNISH = %s%s : %s IP morri banned %s minuta per te mos ndikuar ne loje.^n");
}
else
{
fputs(FilePointer, Line);
}
#else
formatex(Line, charsmax(Line), "AL_FAKE_PLAYERS = %L^n", LANG_SERVER, "AL_FAKE_PLAYERS", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_FAKE_PLAYERS = ^^3%s : ^^4Ne kemi verejtur shum njerez me te njejten IP : %s .^n");
}
else
{
fputs(FilePointer, Line);
}
formatex(Line, charsmax(Line), "AL_FAKE_PLAYERS_PUNISH = %L^n", LANG_SERVER, "AL_FAKE_PLAYERS_PUNISH", "^%s", "^%s");
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_FAKE_PLAYERS_PUNISH = ^^3%s : ^^4IP morri banned %s minuta per te mos ndikuar ne loje.^n");
}
else
{
fputs(FilePointer, Line);
}
#endif
formatex(Line, charsmax(Line), "AL_FAKE_PLAYERS_LOG = %L^n", LANG_SERVER, "AL_FAKE_PLAYERS_LOG", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_FAKE_PLAYERS_LOG = %s : Eshte zbuluar nje sulm ^"xFake-Players^" nga IP-te : %s .^n");
}
else
{
fputs(FilePointer, Line);
}
formatex(Line, charsmax(Line), "AL_FAKE_PLAYERS_KICK = %L^n", LANG_SERVER, "AL_FAKE_PLAYERS_KICK", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_FAKE_PLAYERS_KICK = %s : Ju nuk mund te regjistroheni ne server, pasi ka akoma %s lojtar me te njejten IP si tuajat.^n");
}
else
{
fputs(FilePointer, Line);
}
formatex(Line, charsmax(Line), "AL_FAKE_PLAYERS_DETECT = %L^n", LANG_SERVER, "AL_FAKE_PLAYERS_DETECT", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_FAKE_PLAYERS_DETECT = %s : Ju jeni larguar sepse jeni nje klient i rreme. Ju lutemi perdorni nje Steam tjeter.^n");
}
else
{
fputs(FilePointer, Line);
}
formatex(Line, charsmax(Line), "AL_FAKE_PLAYERS_DETECT_LOG = %L^n", LANG_SERVER, "AL_FAKE_PLAYERS_DETECT_LOG", "^%s", "^%s", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_FAKE_PLAYERS_DETECT_LOG = %s : Eshte zbuluar ^"$name$^" [ $authid$ | $ip$ ] si i dyshuar per ^"xFake-Players^" ose ^"xSpammer^".^n");
}
else
{
fputs(FilePointer, Line);
}
#if AMXX_VERSION_NUM < 183
formatex(Line, charsmax(Line), "AL_PLUGIN_PAUSE = %L^n", LANG_SERVER, "AL_PLUGIN_PAUSE", "^%s", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_PLUGIN_PAUSE = %s%s : %sNa vjen keq, por per ndonje arsye, ky plugin nuk mund te ndalet/pauzohet.^n");
}
else
{
fputs(FilePointer, Line);
}
#else
formatex(Line, charsmax(Line), "AL_PLUGIN_PAUSE = %L^n", LANG_SERVER, "AL_PLUGIN_PAUSE", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_PLUGIN_PAUSE = ^^3%s : ^^4Na vjen keq, por per ndonje arsye, ky plugin nuk mund te ndalet/pauzohet.^n");
}
else
{
fputs(FilePointer, Line);
}
#endif
formatex(Line, charsmax(Line), "AL_PLUGIN_PAUSE_LOG = %L^n", LANG_SERVER, "AL_PLUGIN_PAUSE_LOG", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_PLUGIN_PAUSE_LOG = %s : Eshte bere nje perpjekje per te ndaluar pluginin e mbrojtjes %s. Operacioni u bllokua.^n");
}
else
{
fputs(FilePointer, Line);
}
#if AMXX_VERSION_NUM < 183
formatex(Line, charsmax(Line), "AL_ADMIN_WRONG_NAME = %L^n", LANG_SERVER, "AL_ADMIN_WRONG_NAME", "^%s", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_ADMIN_WRONG_NAME = %s%s : %sAsnje administrator nuk e gjeti kete pseudonim.^n");
}
else
{
fputs(FilePointer, Line);
}
#else
formatex(Line, charsmax(Line), "AL_ADMIN_WRONG_NAME = %L^n", LANG_SERVER, "AL_ADMIN_WRONG_NAME", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_ADMIN_WRONG_NAME = ^^3%s : ^^4Asnje administrator nuk e gjeti kete pseudonim.^n");
}
else
{
fputs(FilePointer, Line);
}
#endif
formatex(Line, charsmax(Line), "AL_ADMIN_WRONG_NAME_PRINT = %L^n", LANG_SERVER, "AL_ADMIN_WRONG_NAME_PRINT", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_ADMIN_WRONG_NAME_PRINT = %s : Asnje administrator nuk e gjeti kete pseudonim.^n");
}
else
{
fputs(FilePointer, Line);
}
#if AMXX_VERSION_NUM < 183
formatex(Line, charsmax(Line), "AL_ADMIN_WRONG_PASS = %L^n", LANG_SERVER, "AL_ADMIN_WRONG_PASS", "^%s", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_ADMIN_WRONG_PASS = %s%s : %s Fjalekalimi qe keni shkruar nuk eshte i sakte.^n");
}
else
{
fputs(FilePointer, Line);
}
#else
formatex(Line, charsmax(Line), "AL_ADMIN_WRONG_PASS = %L^n", LANG_SERVER, "AL_ADMIN_WRONG_PASS", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_ADMIN_WRONG_PASS = ^^3%s : ^^4Fjalekalimi qe keni shkruar nuk eshte i sakte.^n");
}
else
{
fputs(FilePointer, Line);
}
#endif
formatex(Line, charsmax(Line), "AL_ADMIN_WRONG_PASS_PRINT = %L^n", LANG_SERVER, "AL_ADMIN_WRONG_PASS_PRINT", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_ADMIN_WRONG_PASS_PRINT = %s : Fjalekalimi qe keni shkruar nuk eshte i sakte.^n");
}
else
{
fputs(FilePointer, Line);
}
#if AMXX_VERSION_NUM < 183
formatex(Line, charsmax(Line), "AL_ADMIN_LOADED = %L^n", LANG_SERVER, "AL_ADMIN_LOADED", "^%s", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_ADMIN_LOADED = %s%s : %sAdministratori juaj eshte ngarkuar.^n");
}
else
{
fputs(FilePointer, Line);
}
#else
formatex(Line, charsmax(Line), "AL_ADMIN_LOADED = %L^n", LANG_SERVER, "AL_ADMIN_LOADED", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_ADMIN_LOADED = ^^3%s : ^^4Administratori juaj eshte ngarkuar.^n");
}
else
{
fputs(FilePointer, Line);
}
#endif
formatex(Line, charsmax(Line), "AL_ADMIN_LOADED_PRINT = %L^n", LANG_SERVER, "AL_ADMIN_LOADED_PRINT", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_ADMIN_LOADED_PRINT = %s : Administratori juaj eshte ngarkuar.^n");
}
else
{
fputs(FilePointer, Line);
}
#if AMXX_VERSION_NUM < 183
formatex(Line, charsmax(Line), "AL_ADMIN_ALREADY_LOADED = %L^n", LANG_SERVER, "AL_ADMIN_ALREADY_LOADED", "^%s", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_ADMIN_ALREADY_LOADED = %s%s : %sAdministratori juaj eshte i ngarkuar tashme.^n");
}
else
{
fputs(FilePointer, Line);
}
#else
formatex(Line, charsmax(Line), "AL_ADMIN_ALREADY_LOADED = %L^n", LANG_SERVER, "AL_ADMIN_ALREADY_LOADED", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_ADMIN_ALREADY_LOADED = ^^3%s : ^^4Administratori juaj eshte i ngarkuar tashme.^n");
}
else
{
fputs(FilePointer, Line);
}
#endif
formatex(Line, charsmax(Line), "AL_ADMIN_ALREADY_LOADED_PRINT = %L^n", LANG_SERVER, "AL_ADMIN_ALREADY_LOADED_PRINT", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_ADMIN_ALREADY_LOADED_PRINT = %s : Administratori juaj eshte i ngarkuar tashme.^n");
}
else
{
fputs(FilePointer, Line);
}
#if AMXX_VERSION_NUM < 183
formatex(Line, charsmax(Line), "AL_ADMIN_WITHOUT_PASS = %L^n", LANG_SERVER, "AL_ADMIN_WITHOUT_PASS", "^%s", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_ADMIN_WITHOUT_PASS = %s%s : %sJu nuk keni futur nje fjalekalim, komanda eshte shkruar ne tastiere si me poshte: kyqja ^"fjalekalimi juaj^".^n");
}
else
{
fputs(FilePointer, Line);
}
#else
formatex(Line, charsmax(Line), "AL_ADMIN_WITHOUT_PASS = %L^n", LANG_SERVER, "AL_ADMIN_WITHOUT_PASS", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_ADMIN_WITHOUT_PASS = ^^3%s : ^^4Ju nuk keni futur nje fjalekalim, komanda eshte shkruar ne tastiere si me poshte: kyqja ^"fjalekalimi juaj^".^n");
}
else
{
fputs(FilePointer, Line);
}
#endif
#if AMXX_VERSION_NUM < 183
formatex(Line, charsmax(Line), "AL_ADMIN_HASNT_SLOT = %L^n", LANG_SERVER, "AL_ADMIN_HASNT_SLOT", "^%s", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_ADMIN_HASNT_SLOT = %s%s : %sJu nuk mund te ngarkoni administratorin tuaj nese nuk keni nje vend.^n");
}
else
{
fputs(FilePointer, Line);
}
#else
formatex(Line, charsmax(Line), "AL_ADMIN_HASNT_SLOT = %L^n", LANG_SERVER, "AL_ADMIN_HASNT_SLOT", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_ADMIN_HASNT_SLOT = ^^3%s : ^^4Ju nuk mund te ngarkoni administratorin tuaj nese nuk keni nje vend.^n");
}
else
{
fputs(FilePointer, Line);
}
#endif
formatex(Line, charsmax(Line), "AL_ADMIN_WITHOUT_PASS_PRINT = %L^n", LANG_SERVER, "AL_ADMIN_WITHOUT_PASS_PRINT", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_ADMIN_WITHOUT_PASS_PRINT = %s : Ju nuk keni futur nje fjalekalim, komanda eshte shkruar ne tastiere si me poshte: kyqja ^"fjalekalimi juaj^".^n");
}
else
{
fputs(FilePointer, Line);
}
#if AMXX_VERSION_NUM < 183
formatex(Line, charsmax(Line), "AL_CMD_BUG = %L^n", LANG_SERVER, "AL_CMD_BUG", "^%s", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_CMD_BUG = %s%s : %sKarakteret e ndaluara jane verejtur ne tekstin qe keni derguar. Mesazhi juaj eshte fshire.^n");
}
else
{
fputs(FilePointer, Line);
}
#else
formatex(Line, charsmax(Line), "AL_CMD_BUG = %L^n", LANG_SERVER, "AL_CMD_BUG", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_CMD_BUG = ^^3%s : ^^4Karakteret e ndaluara jane verejtur ne tekstin qe keni derguar. Mesazhi juaj eshte fshire.^n");
}
else
{
fputs(FilePointer, Line);
}
#endif
formatex(Line, charsmax(Line), "AL_CMD_BUG_LOG = %L^n", LANG_SERVER, "AL_CMD_BUG_LOG", "^%s", "^%s", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_CMD_BUG_LOG = %s : Eshte zbuluar ^"$name$^" [ $authid$ | $ip$ ] duke perpjekur te perdorte ^"CMD_BUG^" te demtoj funksionimin serverit.^n");
}
else
{
fputs(FilePointer, Line);
}
formatex(Line, charsmax(Line), "AL_CMD_BUG_PRINT = %L^n", LANG_SERVER, "AL_CMD_BUG_PRINT", "^%s");
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_CMD_BUG_PRINT = %s : Karakteret e ndaluara jane verejtur ne tekstin qe keni derguar. Mesazhi juaj eshte fshire.^n");
}
else
{
fputs(FilePointer, Line);
}
#if AMXX_VERSION_NUM < 183
formatex(Line, charsmax(Line), "AL_COLOR_BUG = %L^n", LANG_SERVER, "AL_COLOR_BUG", "^%s", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_COLOR_BUG = %s%s : %sKarakteret e ndaluara jane verejtur ne tekstin qe keni derguar. Mesazhi juaj eshte fshire.^n");
}
else
{
fputs(FilePointer, Line);
}
#else
formatex(Line, charsmax(Line), "AL_COLOR_BUG = %L^n", LANG_SERVER, "AL_COLOR_BUG", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_COLOR_BUG = ^^3%s : ^^4Karakteret e ndaluara jane verejtur ne tekstin qe keni derguar. Mesazhi juaj eshte fshire.^n");
}
else
{
fputs(FilePointer, Line);
}
#endif
formatex(Line, charsmax(Line), "AL_COLOR_BUG_LOG = %L^n", LANG_SERVER, "AL_COLOR_BUG_LOG", "^%s", "^%s", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_COLOR_BUG_LOG = %s : Eshte zbuluar ^"$name$^" [ $authid$ | $ip$ ] duke perpjekur te perdorte ^"COLOR_BUG^" per te paralajmeruar lojtaret dhe adminet.^n");
}
else
{
fputs(FilePointer, Line);
}
formatex(Line, charsmax(Line), "AL_COLOR_BUG_PRINT = %L^n", LANG_SERVER, "AL_COLOR_BUG_PRINT", "^%s");
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_COLOR_BUG_PRINT = %s : Karakteret e ndaluara jane verejtur ne tekstin qe keni derguar. Mesazhi juaj eshte fshire.^n");
}
else
{
fputs(FilePointer, Line);
}
#if AMXX_VERSION_NUM < 183
formatex(Line, charsmax(Line), "AL_SPEC_BUG = %L^n", LANG_SERVER, "AL_SPEC_BUG", "^%s", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_SPEC_BUG = %s%s : %sJu bete nje veprim te dyshimte, keshtu qe une ju transferova te ekipi i meparshem.^n");
}
else
{
fputs(FilePointer, Line);
}
#else
formatex(Line, charsmax(Line), "AL_SPEC_BUG = %L^n", LANG_SERVER, "AL_SPEC_BUG", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_SPEC_BUG = ^^3%s : ^^4Ju bete nje veprim te dyshimte, keshtu qe une ju transferova te ekipi i meparshem.^n");
}
else
{
fputs(FilePointer, Line);
}
#endif
formatex(Line, charsmax(Line), "AL_SPEC_BUG_LOG = %L^n", LANG_SERVER, "AL_SPEC_BUG_LOG", "^%s", "^%s", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_SPEC_BUG_LOG = %s : Eshte zbuluar ^"$name$^" [ $authid$ | $ip$ ] duke perpjekur te perdorte ^"SPEC_BUG^" per te demtuar funksionimin serverit.^n");
}
else
{
fputs(FilePointer, Line);
}
#if AMXX_VERSION_NUM < 183
formatex(Line, charsmax(Line), "AL_ADMIN_CHAT_FLOOD = %L^n", LANG_SERVER, "AL_ADMIN_CHAT_FLOOD", "^%s", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_ADMIN_CHAT_FLOOD = %s%s : %sNje bisede e vogel Flooding u mor nga ju. Mesazhet qe ju dergoni do te filtrohen.^n");
}
else
{
fputs(FilePointer, Line);
}
formatex(Line, charsmax(Line), "AL_ADMIN_CHAT_FLOOD_LOG = %L^n", LANG_SERVER, "AL_ADMIN_CHAT_FLOOD_LOG", "^%s", "^%s", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_ADMIN_CHAT_FLOOD_LOG = %s : Eshte zbuluar ^"$name$^" [ $authid$ | $ip$ ] duke perpjekur te perdorte ^"ADMIN_CHAT_FLOOD^" eshte larguar nga admini serverit.^n");
}
else
{
fputs(FilePointer, Line);
}
#endif
#if AMXX_VERSION_NUM < 183
formatex(Line, charsmax(Line), "AL_AUTOBUY = %L^n", LANG_SERVER, "AL_AUTOBUY", "^%s", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_AUTOBUY = %s%s : %sKomanda qe keni derguar ka vlera te dyshimta, keshtu qe une e bllokova.^n");
}
else
{
fputs(FilePointer, Line);
}
#else
formatex(Line, charsmax(Line), "AL_AUTOBUY = %L^n", LANG_SERVER, "AL_AUTOBUY", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_AUTOBUY = ^^3%s : ^^4Komanda qe keni derguar ka vlera te dyshimta, keshtu qe une e bllokova.^n");
}
else
{
fputs(FilePointer, Line);
}
#endif
formatex(Line, charsmax(Line), "AL_AUTOBUY_LOG = %L^n", LANG_SERVER, "AL_AUTOBUY_LOG", "^%s", "^%s", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_AUTOBUY_LOG = %s : Eshte zbuluar ^"$name$^" [ $authid$ | $ip$ ] duke perpjekur te perdorte ^"AUTOBUY_BUG^" per te demtuar funksionimin e serverit.^n");
}
else
{
fputs(FilePointer, Line);
}
formatex(Line, charsmax(Line), "AL_FILE_NOT_FOUND = %L^n", LANG_SERVER, "AL_FILE_NOT_FOUND", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_FILE_NOT_FOUND = %s : Dosja %s nuk ekziston.^n");
}
else
{
fputs(FilePointer, Line);
}
formatex(Line, charsmax(Line), "AL_ADMIN_DEBUG = %L^n", LANG_SERVER, "AL_ADMIN_DEBUG", "^%s", "^%s", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_ADMIN_DEBUG = Emri : %s - Fjalekalimi : %s - Akceset : %s - Flag : %s^n");
}
else
{
fputs(FilePointer, Line);
}
formatex(Line, charsmax(Line), "AL_MOTDFILE = %L^n", LANG_SERVER, "AL_MOTDFILE", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_MOTDFILE = %s : Nje mase e dyshimte u zbulua nga ana juaj, porosia juaj u bllokua.^n");
}
else
{
fputs(FilePointer, Line);
}
formatex(Line, charsmax(Line), "AL_MOTDFILE_LOG = %L^n", LANG_SERVER, "AL_MOTDFILE_LOG", "^%s", "^%s", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_MOTDFILE_LOG = %s : Eshte zbuluar ^"$name$^" [ $authid$ | $ip$ ] duke u perpjekur te perdorte ^"motdfile^" per te vjedhur informacione nga serveri.^n");
}
else
{
fputs(FilePointer, Line);
}
#if AMXX_VERSION_NUM < 183
formatex(Line, charsmax(Line), "AL_ADVERTISE = %L^n", LANG_SERVER, "AL_ADVERTISE", "^%s", "^%s", "^%s", "^%s", "^%s", "^%s", "^%s", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_ADVERTISE = %s%s :%s Ky server kontrollohet dhe mbrohet nga %s%s%s verzioni %s%s%s .^n");
}
else
{
fputs(FilePointer, Line);
}
#else
formatex(Line, charsmax(Line), "AL_ADVERTISE = %L^n", LANG_SERVER, "AL_ADVERTISE", "^%s", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_ADVERTISE = ^^4%s :^^1 Ky server kontrollohet dhe mbrohet nga ^^4%s^^1 verzioni ^^4%s^^1 .^n");
}
else
{
fputs(FilePointer, Line);
}
#endif
formatex(Line, charsmax(Line), "AL_ANTI_BAN_CLASS = %L^n", LANG_SERVER, "AL_ANTI_BAN_CLASS", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_ANTI_BAN_CLASS = %s : Shume ndalime u zbuluan ne klasen IP, porosia juaj u bllokua.^n");
}
else
{
fputs(FilePointer, Line);
}
formatex(Line, charsmax(Line), "AL_ANTI_ANY_BAN_CLASS_LOG = %L^n", LANG_SERVER, "AL_ANTI_ANY_BAN_CLASS_LOG", "^%s", "^%s", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_ANTI_ANY_BAN_CLASS_LOG = %s : Eshte zbuluar ^"$name$^" [ $authid$ | $ip$ ] duke u perpjekur te banned IP.^n");
}
else
{
fputs(FilePointer, Line);
}
formatex(Line, charsmax(Line), "AL_ANTI_SOME_BAN_CLASS_LOG = %L^n", LANG_SERVER, "AL_ANTI_SOME_BAN_CLASS_LOG", "^%s", "^%s", "^%s", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, Line);
}
else
{
fputs(FilePointer, "AL_ANTI_SOME_BAN_CLASS_LOG = %s : Eshte zbuluar ^"$name$^" [ $authid$ | $ip$ ] duke u perpjekur te banned %s klasen IP.^n");
}
formatex(Line, charsmax(Line), "AL_AUTO_UPDATE_SUCCEED = %L^n", LANG_SERVER, "AL_AUTO_UPDATE_SUCCEED", "^%s");
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_AUTO_UPDATE_SUCCEED = %s : Plugini u perditesua automatikisht.^n");
}
else
{
fputs(FilePointer, Line);
}
formatex(Line, charsmax(Line), "AL_AUTO_UPDATE_FAILED = %L^n", LANG_SERVER, "AL_AUTO_UPDATE_FAILED", "^%s");
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_AUTO_UPDATE_FAILED = %s : Gabim ne shkarkim ndodhi, plugini nuk mund te perditesohej.^n");
}
else
{
fputs(FilePointer, Line);
}
#if AMXX_VERSION_NUM < 183
formatex(Line, charsmax(Line), "AL_XFAKE_PLAYERS_SPAM_WARN = %L^n", LANG_SERVER, "AL_XFAKE_PLAYERS_SPAM_WARN", "^%s", "^%s", "^%s");
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_XFAKE_PLAYERS_SPAM_WARN = %s%s : %sMesazhi juaj eshte fshire per te hequr nje perpjekje ^"BOT SPAM^".^n");
}
else
{
fputs(FilePointer, Line);
}
#else
formatex(Line, charsmax(Line), "AL_XFAKE_PLAYERS_SPAM_WARN = %L^n", LANG_SERVER, "AL_XFAKE_PLAYERS_SPAM_WARN", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_XFAKE_PLAYERS_SPAM_WARN = ^^3%s : ^^4Mesazhi juaj eshte fshire per te hequr nje perpjekje ^"BOT SPAM^".^n");
}
else
{
fputs(FilePointer, Line);
}
#endif
#if AMXX_VERSION_NUM < 183
formatex(Line, charsmax(Line), "AL_XFAKE_PLAYERS_SPAM = %L^n", LANG_SERVER, "AL_XFAKE_PLAYERS_SPAM", "^%s", "^%s", "^%s", "^%s");
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_XFAKE_PLAYERS_SPAM = %s%s : %sEshte bere perpjekje per ^"BOT SPAM^" nga IP : %s .^n");
}
else
{
fputs(FilePointer, Line);
}
formatex(Line, charsmax(Line), "AL_XFAKE_PLAYERS_SPAM_PUNISH = %L^n", LANG_SERVER, "AL_XFAKE_PLAYERS_SPAM_PUNISH", "^%s", "^%s", "^%s", "^%s");
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_XFAKE_PLAYERS_SPAM_PUNISH = %s%s : %sIP morri banned %s minuta per te mos ndikuar ne loje.^n");
}
else
{
fputs(FilePointer, Line);
}
#else
formatex(Line, charsmax(Line), "AL_XFAKE_PLAYERS_SPAM = %L^n", LANG_SERVER, "AL_XFAKE_PLAYERS_SPAM", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_XFAKE_PLAYERS_SPAM = ^^3%s : ^^4Eshte bere perpjekje per ^"BOT SPAM^" nga IP : %s .^n");
}
else
{
fputs(FilePointer, Line);
}
formatex(Line, charsmax(Line), "AL_XFAKE_PLAYERS_SPAM_PUNISH = %L^n", LANG_SERVER, "AL_XFAKE_PLAYERS_SPAM_PUNISH", "^%s", "^%s");
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_XFAKE_PLAYERS_SPAM_PUNISH = ^^3%s : ^^4IP morri banned %s minuta per te mos ndikuar ne loje.^n");
}
else
{
fputs(FilePointer, Line);
}
#endif
formatex(Line, charsmax(Line), "AL_XFAKE_PLAYERS_SPAM_BAN = %L^n", LANG_SERVER, "AL_XFAKE_PLAYERS_SPAM_BAN", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_XFAKE_PLAYERS_SPAM_BAN = %s : Ju u zbuluat si nje bot xfake_player, keshtu qe ju morret banned per %s minuta.^n");
}
else
{
fputs(FilePointer, Line);
}
formatex(Line, charsmax(Line), "AL_XFAKE_PLAYERS_SPAM_KICK = %L^n", LANG_SERVER, "AL_XFAKE_PLAYERS_SPAM_KICK", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_XFAKE_PLAYERS_SPAM_KICK = %s : Eshte zbuluar per perdorim xfake_player, tani eshte larguar nga serveri.^n");
}
else
{
fputs(FilePointer, Line);
}
#if AMXX_VERSION_NUM < 183
formatex(Line, charsmax(Line), "AL_XFAKE_PLAYERS_SPAM_GAG = %L^n", LANG_SERVER, "AL_XFAKE_PLAYERS_SPAM_GAG", "^%s", "^%s", "^%s");
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_XFAKE_PLAYERS_SPAM_GAG = %s%s : %sJu jeni zbuluar si nje bot xfake_player, nuk do te keni me mundesi te perdorni chat derisa te rilidhni.^n");
}
else
{
fputs(FilePointer, Line);
}
#else
formatex(Line, charsmax(Line), "AL_XFAKE_PLAYERS_SPAM_GAG = %L^n", LANG_SERVER, "AL_XFAKE_PLAYERS_SPAM_GAG", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_XFAKE_PLAYERS_SPAM_GAG = ^^3%s : ^^4Ju jeni zbuluar si nje bot xfake_player, nuk do te keni me mundesi te perdorni chat derisa te rilidhni.^n");
}
else
{
fputs(FilePointer, Line);
}
#endif
formatex(Line, charsmax(Line), "AL_XFAKE_PLAYERS_SPAM_LOG = %L^n", LANG_SERVER, "AL_XFAKE_PLAYERS_SPAM_LOG", "^%s", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_XFAKE_PLAYERS_SPAM_LOG = %s : Eshte zbuluar nje ^"BOT SPAM^" tek IP : %s .^n");
}
else
{
fputs(FilePointer, Line);
}
#if AMXX_VERSION_NUM < 183
formatex(Line, charsmax(Line), "AL_XFAKE_PLAYERS_ALLOW_USE_CHAT = %L^n", LANG_SERVER, "AL_XFAKE_PLAYERS_ALLOW_USE_CHAT", "^%s", "^%s", "^%s");
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_XFAKE_PLAYERS_ALLOW_USE_CHAT = %s%s : %sJu e futet capcha sakte, tani do te keni mundesi te perdorni biseden.^n");
}
else
{
fputs(FilePointer, Line);
}
#else
formatex(Line, charsmax(Line), "AL_XFAKE_PLAYERS_ALLOW_USE_CHAT = %L^n", LANG_SERVER, "AL_XFAKE_PLAYERS_ALLOW_USE_CHAT", "^%s" );
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_XFAKE_PLAYERS_ALLOW_USE_CHAT = ^^3%s : ^^4Ju e futet capcha sakte, tani do te keni mundesi te perdorni biseden.^n");
}
else
{
fputs(FilePointer, Line);
}
#endif
#if AMXX_VERSION_NUM < 183
formatex(Line, charsmax(Line), "AL_XFAKE_PLAYERS_CAPCHA = %L^n", LANG_SERVER, "AL_XFAKE_PLAYERS_CAPCHA", "^%s", "^%s", "^%s", "^%s", "^%s", "^%s");
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_XFAKE_PLAYERS_CAPCHA = %s%s : %sPer te perdorur biseden shkruajeni kodin vijues : %s%s%s.^n");
}
else
{
fputs(FilePointer, Line);
}
#else
formatex(Line, charsmax(Line), "AL_XFAKE_PLAYERS_CAPCHA = %L^n", LANG_SERVER, "AL_XFAKE_PLAYERS_CAPCHA", "^%s", "^%s");
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_XFAKE_PLAYERS_CAPCHA = ^^3%s : ^^4Per te perdorur biseden shkruajeni kodin vijues : ^^3%s^^4.^n");
}
else
{
fputs(FilePointer, Line);
}
#endif
#if AMXX_VERSION_NUM < 183
formatex(Line, charsmax(Line), "AL_BIND_SPAM = %L^n", LANG_SERVER, "AL_BIND_SPAM", "^%s", "^%s", "^%s");
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_BIND_SPAM = %s%s : %sNuk ju lejohet te dergoni mesazhe permes consoles !^n");
}
else
{
fputs(FilePointer, Line);
}
#else
formatex(Line, charsmax(Line), "AL_BIND_SPAM = %L^n", LANG_SERVER, "AL_BIND_SPAM", "^%s");
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_BIND_SPAM = ^^3%s : ^^4Nuk ju lejohet te dergoni mesazhe permes consoles !.^n");
}
else
{
fputs(FilePointer, Line);
}
#endif
formatex(Line, charsmax(Line), "AL_PROTCVARS = %L^n", LANG_SERVER, "AL_PROTCVARS", "^%s");
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_PROTCVARS = %s : Kopjet e cvar dhe gjerat tjera jane te ndaluar nuk mund te vjedhen.^n");
}
else
{
fputs(FilePointer, Line);
}
formatex(Line, charsmax(Line), "AL_PROTCVARS_LOG = %L^n", LANG_SERVER, "AL_PROTCVARS_LOG", "^%s", "^%s", "^%s", "^%s");
if ( contain(Line, "ML_NOTFOUND") != -1 )
{
fputs(FilePointer, "AL_PROTCVARS_LOG = %s : Eshte zbuluar ^"$name$^" [ $authid$ | $ip$ ] qe u perpoqen te ndryshojne kuartet e pluginit se rezerves, keto mund te ndryshohen vetem nga skedari i konfigurimit.^n");
}
else
{
fputs(FilePointer, Line);
}
fclose(FilePointer);
}
else
{
new FilePointer = fopen(LangFile, "wt");
if ( !FilePointer )
{
return;
}
#if AMXX_VERSION_NUM < 183
writeSignature(FilePointer);
#else
writeSignature(FilePointer, true);
#endif
fputs(FilePointer, "[en]^n^n");
fputs(FilePointer, "AL_UPDATE_CFG = %s : Perditesoni te dhenat tek CFG : albania-bugfix.cfg.^n");
fputs(FilePointer, "AL_UPDATE_LANG = %s : Perditesoni gjuhen tek : albania-bugfix.txt.^n");
#if AMXX_VERSION_NUM < 183
fputs(FilePointer, "AL_FAKE_PLAYERS = %s%s : %sNe kemi verejtur shum lojtar ne IP : %s .^n");
fputs(FilePointer, "AL_FAKE_PLAYERS_PUNISH = %s%s : %sIP morri banned per %s minuta per te mos ndikuar ne loje.^n");
#else
fputs(FilePointer, "AL_FAKE_PLAYERS = ^^3%s : ^^4Ne kemi verejtur shum lojtar ne IP : %s .^n");
fputs(FilePointer, "AL_FAKE_PLAYERS_PUNISH = ^^3%s :^^4 IP morri banned per %s minuta per te mos ndikuar ne loje.^n");
#endif
fputs(FilePointer, "AL_FAKE_PLAYERS_LOG = %s : Eshte zbuluar nje sulm ^"xFake-Players^" nga IP : %s .^n");
fputs(FilePointer, "AL_FAKE_PLAYERS_KICK = %s : Ju nuk mund te regjistrohi ne server, sepse ka akoma lojtar %s qe perdorin IP sikurse tuajat.^n");
fputs(FilePointer, "AL_FAKE_PLAYERS_DETECT = %s : Ju jeni larguar nga serveri sepse jeni lojtar i rrem, perdorni ndonje Steam Origjinal.^n");
fputs(FilePointer, "AL_FAKE_PLAYERS_DETECT_LOG = %s : Eshte zbuluar ^"$name$^" [ $authid$ | $ip$ ] si i dyshuar per ^"xFake-Players^" ose si ^"xSpammer^".^n");
#if AMXX_VERSION_NUM < 183
fputs(FilePointer, "AL_PLUGIN_PAUSE = %s%s : %sNa vjen keq, pa ndonje arsye ky plugin nuk mund te ndalet.^n");
#else
fputs(FilePointer, "AL_PLUGIN_PAUSE = ^^3%s : ^^4Na vjen keq, pa ndonje arsye ky plugin nuk mund te ndalet.^n");
#endif
fputs(FilePointer, "AL_PLUGIN_PAUSE_LOG = %s : Beri perpjekje per te ndaluar pluginin %s. Operacioni eshte bllokuar.^n");
#if AMXX_VERSION_NUM < 183
fputs(FilePointer, "AL_ADMIN_WRONG_NAME = %s%s : %sAsnje admin nuk eshte gjetur me kete pseudonim.^n");
#else
fputs(FilePointer, "AL_ADMIN_WRONG_NAME = ^^3%s : ^^4Asnje admin nuk eshte gjetur me kete pseudonim.^n");
#endif
fputs(FilePointer, "AL_ADMIN_WRONG_NAME_PRINT = %s : Asnje admin nuk eshte gjetur me kete pseudonim.^n");
#if AMXX_VERSION_NUM < 183
fputs(FilePointer, "AL_ADMIN_WRONG_PASS = %s%s : %sFjalekalimi qe keni shkruar nuk eshte i sakte.^n");
#else
fputs(FilePointer, "AL_ADMIN_WRONG_PASS = ^^3%s : ^^4Fjalekalimi qe keni shkruar nuk eshte i sakte.^n");
#endif
fputs(FilePointer, "AL_ADMIN_WRONG_PASS_PRINT = %s : Fjalekalimi qe keni shkruar nuk eshte i sakte.^n");
#if AMXX_VERSION_NUM < 183
fputs(FilePointer, "AL_ADMIN_LOADED = %s%s : %sAdmini juaj eshte ngarkuar.^n");
#else
fputs(FilePointer, "AL_ADMIN_LOADED = ^^3%s : ^^4Admini juaj eshte ngarkuar.^n");
#endif
fputs(FilePointer, "AL_ADMIN_LOADED_PRINT = %s : Admini juaj eshte ngarkuar.^n");
#if AMXX_VERSION_NUM < 183
fputs(FilePointer, "AL_ADMIN_ALREADY_LOADED = %s%s : %sAdmini juaj eshte ngarkuar tashme.^n");
#else
fputs(FilePointer, "AL_ADMIN_ALREADY_LOADED = ^^3%s : ^^4Admini juaj eshte ngarkuar tashme.^n");
#endif
fputs(FilePointer, "AL_ADMIN_ALREADY_LOADED_PRINT = %s : Admini juaj eshte ngarkuar tashme.^n");
#if AMXX_VERSION_NUM < 183
fputs(FilePointer, "AL_ADMIN_WITHOUT_PASS = %s%s : %sJu nuk keni shkruar ndonje fjalekalim, komanda eshte futur si kjo : kyqja ^"fjalekalimi juaj^".^n");
#else
fputs(FilePointer, "AL_ADMIN_WITHOUT_PASS = ^^3%s : ^^4Ju nuk keni shkruar ndonje fjalekalim, komanda eshte futur si kjo : kyqja ^"fjalekalimi juaj^".^n");
#endif
#if AMXX_VERSION_NUM < 183
fputs(FilePointer, "AL_ADMIN_HASNT_SLOT = %s%s : %sJu nuk mund te ngarkoni adminin tuaj nese nuk keni ndonje vend.^n");
#else
fputs(FilePointer, "AL_ADMIN_HASNT_SLOT = ^^3%s : ^^4Ju nuk mund te ngarkoni adminin tuaj nese nuk keni ndonje vend.^n");
#endif
fputs(FilePointer, "AL_ADMIN_WITHOUT_PASS_PRINT = %s : Ju nuk keni shkruar ndonje fjalekalim, komanda eshte futur si kjo : kyqja ^"fjalekalimi juaj^".^n");
#if AMXX_VERSION_NUM < 183
fputs(FilePointer, "AL_CMD_BUG = %s%s : %sKaraktere te dyshimta u vezhguan ne tekstin qe derguat. Mesazhi juaj eshte fshire.^n");
#else
fputs(FilePointer, "AL_CMD_BUG = ^^3%s : ^^4Karaktere te dyshimta u vezhguan ne tekstin qe derguat. Mesazhi juaj eshte fshire.^n");
#endif
fputs(FilePointer, "AL_CMD_BUG_LOG = %s : Eshte zbuluar ^"$name$^" [ $authid$ | $ip$ ] eshte perpjekur te perdorte ^"CMD_BUG^" per te demtuar funksionimin e serverit.^n");
fputs(FilePointer, "AL_CMD_BUG_PRINT = %s : Karaktere te dyshimta u vezhguan ne tekstin qe derguat. Mesazhi juaj eshte fshire.^n");
#if AMXX_VERSION_NUM < 183
fputs(FilePointer, "AL_COLOR_BUG = %s%s : %sKaraktere te dyshimta u vezhguan ne tekstin qe derguat. Mesazhi juaj eshte fshire.^n");
#else
fputs(FilePointer, "AL_COLOR_BUG = ^^3%s : ^^4Karaktere te dyshimta u vezhguan ne tekstin qe derguat. Mesazhi juaj eshte fshire.^n");
#endif
fputs(FilePointer, "AL_COLOR_BUG_LOG = %s : Eshte zbuluar ^"$name$^" [ $authid$ | $ip$ ] eshte perpjekur te perdorte ^"COLOR_BUG^" per te paralajmeruar lojtaret dhe adminat.^n");
fputs(FilePointer, "AL_COLOR_BUG_PRINT = %s : Karaktere te dyshimta u vezhguan ne tekstin qe derguat. Mesazhi juaj eshte fshire.^n");
#if AMXX_VERSION_NUM < 183
fputs(FilePointer, "AL_SPEC_BUG = %s%s : %sJu keni bere nje veprim te dyshimt dhe ju derguam te ekipi meparshem.^n");
#else
fputs(FilePointer, "AL_SPEC_BUG = ^^3%s : ^^4Ju keni bere nje veprim te dyshimt dhe ju derguam te ekipi meparshem.^n");
#endif
fputs(FilePointer, "AL_SPEC_BUG_LOG = %s : Eshte zbuluar ^"$name$^" [ $authid$ | $ip$ ] eshte perpjekur te perdorte ^"SPEC_BUG^" per te demtuar funksionimin e serverit.^n");
#if AMXX_VERSION_NUM < 183
fputs(FilePointer, "AL_ADMIN_CHAT_FLOOD = %s%s : %sNje bised eshte dyshuar si Flooding nga ju. Mesazhet nga ju do te filtrohen.^n");
fputs(FilePointer, "AL_ADMIN_CHAT_FLOOD_LOG = %s : Eshte zbuluar ^"$name$^" [ $authid$ | $ip$ ] eshte perpjekur te perdorte ^"ADMIN_CHAT_FLOOD^" per te fshire adminat nga serveri.^n");
#endif
#if AMXX_VERSION_NUM < 183
fputs(FilePointer, "AL_AUTOBUY = %s%s : %sKomandat qe derguat jane te dyshimta dhe jane bllokuar.^n");
#else
fputs(FilePointer, "AL_AUTOBUY = ^^3%s : ^^4Komandat qe derguat jane te dyshimta dhe jane bllokuar.^n");
#endif
fputs(FilePointer, "AL_AUTOBUY_LOG = %s : Eshte zbuluar ^"$name$^" [ $authid$ | $ip$ ] eshte perpjekur te perdorte ^"AUTOBUY_BUG^" per te prishur funksionimin e serverit.^n");
fputs(FilePointer, "AL_FILE_NOT_FOUND = %s : Skedari %s nuk ekziston.^n");
fputs(FilePointer, "AL_ADMIN_DEBUG = Emri : %s - Fjalekalimi : %s - Akceset : %s - Flamujt : %s^n");
fputs(FilePointer, "AL_MOTDFILE = %s : Disa informacione te dyshimta jane zbuluar nga ju, komanda juaj eshte ndaluar.^n");
fputs(FilePointer, "AL_MOTDFILE_LOG = %s : Eshte zbuluar ^"$name$^" [ $authid$ | $ip$ ] eshte perpjekur te perdorte ^"motdfile^" per te keqperdorur kete server.^n");
#if AMXX_VERSION_NUM < 183
fputs(FilePointer, "AL_ADVERTISE = %s%s :%s Serveri kontrollohet dhe mbrohet nga plugini %s%s%s verzioni %s%s%s .^n");
#else
fputs(FilePointer, "AL_ADVERTISE = ^^4%s :^^1 Serveri kontrollohet dhe mbrohet nga plugini ^^4%s^^1 verzioni ^^4%s^^1 .^n");
#endif
fputs(FilePointer, "AL_ANTI_BAN_CLASS = %s : Shum bannede u zbuluan ne IP, komanda juaj eshte ndaluar.^n");
fputs(FilePointer, "AL_ANTI_ANY_BAN_CLASS_LOG = %s : Eshte zbuluar ^"$name$^" [ $authid$ | $ip$ ] eshte perpjekur te ndalonte IP.^n");
fputs(FilePointer, "AL_ANTI_SOME_BAN_CLASS_LOG = %s : Eshte zbuluar ^"$name$^" [ $authid$ | $ip$ ] eshte perpjekur te ndalonte me shum se %s klasa IP.^n");
fputs(FilePointer, "AL_AUTO_UPDATE_SUCCEED = %s : Plugin plotesohet automatikisht.^n");
fputs(FilePointer, "AL_AUTO_UPDATE_FAILED = %s : Gabim ne shkarkim ndodhi dhe plugini nuk mund te perditesohej.^n");
#if AMXX_VERSION_NUM < 183
fputs(FilePointer, "AL_XFAKE_PLAYERS_SPAM_WARN = %s%s : %sMesazhi juaj eshte fshire per te hequr perpjekjen ^"BOT SPAM^".^n");
#else
fputs(FilePointer, "AL_XFAKE_PLAYERS_SPAM_WARN = ^^3%s : ^^4Mesazhi juaj eshte fshire per te hequr perpjekjen ^"BOT SPAM^".^n");
#endif
#if AMXX_VERSION_NUM < 183
fputs(FilePointer, "AL_XFAKE_PLAYERS_SPAM = %s%s : %sBeri perpjekje per ^"BOT SPAM^" nga IP : %s .^n");
fputs(FilePointer, "AL_XFAKE_PLAYERS_SPAM_PUNISH = %s%s : %sIIP morri banned per %s minuta per te mos ndikuar ne loje.^n");
#else
fputs(FilePointer, "AL_XFAKE_PLAYERS_SPAM = ^^3%s : ^^4Beri perpjekje per ^"BOT SPAM^" nga IP : %s .^n");
fputs(FilePointer, "AL_XFAKE_PLAYERS_SPAM_PUNISH = ^^3%s : ^^4IP morri banned per %s minuta per te mos ndikuar ne loje.^n");
#endif
fputs(FilePointer, "AL_XFAKE_PLAYERS_SPAM_BAN = %s : Ju jeni zbuluar si nje xfake-lojtar dhe tani do te merrni banned per %s minuta.^n");
fputs(FilePointer,"AL_XFAKE_PLAYERS_SPAM_KICK = %s : Ju jeni zbuluar si nje xfake-lojtar dhe tani do te largoheni nga serveri.^n");
#if AMXX_VERSION_NUM < 183
fputs(FilePointer, "AL_XFAKE_PLAYERS_SPAM_GAG = %s%s : %sJu jeni zbuluar si xfake lojtar, nuk mund te perdorni chatin deri ne rikonektim.^n");
#else
fputs(FilePointer, "AL_XFAKE_PLAYERS_SPAM_GAG = ^^3%s : ^^4Ju jeni zbuluar si xfake lojtar, nuk mund te perdorni chatin deri ne rikonektim.^n");
#endif
fputs(FilePointer, "AL_XFAKE_PLAYERS_SPAM_LOG = %s : Eshte zbuluar nje sulme ^"BOT SPAM^" nga IP-te : %s .^n");
#if AMXX_VERSION_NUM < 183
fputs(FilePointer, "AL_XFAKE_PLAYERS_ALLOW_USE_CHAT = %s%s : %sJu e futet kodin sakte, tani mund ta perdorni chat.^n");
#else
fputs(FilePointer, "AL_XFAKE_PLAYERS_ALLOW_USE_CHAT = ^^3%s : ^^4Ju e futet kodin sakte, tani mund ta perdorni chat.^n");
#endif
#if AMXX_VERSION_NUM < 183
fputs(FilePointer, "AL_XFAKE_PLAYERS_CAPCHA = %s%s : %sPer te perdorur chatin shkruani kodin vijues : %s%s%s.^n");
#else
fputs(FilePointer, "AL_XFAKE_PLAYERS_CAPCHA = ^^3%s : ^^4Per te perdorur chatin shkruani kodin vijues : ^^3%s^^4.^n");
#endif
fputs(FilePointer, "AL_PROTCVARS = %s : Kopjet e shtojces jane te mbrojtura nuk do te funksionoje.^n");
fputs(FilePointer, "AL_PROTCVARS_LOG = %s : Eshte zbuluar ^"$name$^" [ $authid$ | $ip$ ] te ndryshoj te dhenat e disa informacioneve keto mund te ndryshohen vetem nga skedari kryesor.^n");
#if AMXX_VERSION_NUM < 183
fputs(FilePointer, "AL_BIND_SPAM = %s%s : %sNuk mund te dergoni mesazh permes console !.^n");
#else
fputs(FilePointer, "AL_BIND_SPAM = ^^3%s : ^^4Nuk mund te dergoni mesazhe permes console !^n");
#endif
fclose(FilePointer);
}
register_dictionary("albania-bugfix.txt");
IsLangUsed = true;
}
#if AMXX_VERSION_NUM < 183
writeSignature(FilePointer)
#else
writeSignature(FilePointer, bool:isLangFile = false)
#endif
{
fputs(FilePointer, "// *ALBANIA System BugFix");
fputs(FilePointer, "// Plugin per Anti-Flooding/Bug-fix mbrojtje te serverit. ^n");
fprintf(FilePointer, "// Verzioni : %s. Modeli : %d. Data Verzionit : %s.^n", Version, Build, Date);
fputs(FilePointer, "// Autor : VrînceanAlex.lüxor. Comunitatea : FioriGinal.Ro^n");
fputs(FilePointer, "// Nese keni nevoj per ndihme pyeti tek - luxor^n");
fputs(FilePointer, "// Link forum :"Link oficial : http://forum.fioriginal.ro/amxmodx-plugins-pluginuri/rom-protect-anti-IsFlooding-bug-fix-t28292.html^n");
fputs(FilePointer, "// Link kodit : "Link oficial : http://forum.fioriginal.ro/amxmodx-plugins-pluginuri/rom-protect-anti-IsFlooding-bug-fix-t28292.html^n");
#if AMXX_VERSION_NUM >= 183
if ( isLangFile )
{
fputs(FilePointer, "^n// Ngjyrat : ^^1 - Ngjyra zgjedhur nga lojtari.^n");
fputs(FilePointer, "// ^^3 - Ngjyra Gri.^n");
fputs(FilePointer, "// ^^4 - Ngjyra Jeshile.^n");
}
#endif
fputs(FilePointer, "^n^n^n");
}
#if AMXX_VERSION_NUM < 183
// header client_print_color.inc
stock const g_szTeamName[Colors][] =
{
"UNASSIGNED",
"TERRORIST",
"CT",
"SPECTATOR"
};
stock client_print_color(Index, iColor=DontChange, const szMsg[], any:...)
{
// check if Index is different from 0
if( Index && !is_user_connected(Index) )
{
return 0;
}
if( iColor > Grey )
{
iColor = DontChange;
}
new szMessage[192];
if( iColor == DontChange )
{
szMessage[0] = 0x04;
}
else
{
szMessage[0] = 0x03;
}
new iParams = numargs();
// Specific player code
if(Index)
{
if( iParams == 3 )
{
copy(szMessage[1], charsmax(szMessage)-1, szMsg);
}
else
{
vformat(szMessage[1], charsmax(szMessage)-1, szMsg, 4);
}
if( iColor )
{
new szTeam[11]; // store current team so we can restore it
get_user_team(Index, szTeam, charsmax(szTeam));
// set Index TeamInfo in consequence
// so SayText msg gonna show the right color
Send_TeamInfo(Index, Index, g_szTeamName[iColor]);
// Send the message
Send_SayText(Index, Index, szMessage);
// restore TeamInfo
Send_TeamInfo(Index, Index, szTeam);
}
else
{
Send_SayText(Index, Index, szMessage);
}
}
// Send message to all players
else
{
// Figure out if at least 1 player is connected
// so we don't send useless message if not
// and we gonna use that player as team reference (aka SayText message sender) for color change
new iPlayers[32], iNum;
get_players(iPlayers, iNum, "ch");
if( !iNum )
{
return 0;
}
new iFool = iPlayers[0];
new iMlNumber, i, j;
new Array:aStoreML = ArrayCreate();
if( iParams >= 5 ) // ML can be used
{
for(j=4; j<iParams; j++)
{
// retrieve original param value and check if it's LANG_PLAYER value
if( getarg(j) == LANG_PLAYER )
{
i=0;
// as LANG_PLAYER == -1, check if next parm string is a registered language translation
while( ( szMessage[ i ] = getarg( j + 1, i++ ) ) ) {}
if( GetLangTransKey(szMessage) != TransKey_Bad )
{
// Store that arg as LANG_PLAYER so we can alter it later
ArrayPushCell(aStoreML, j++);
// Update ML array saire so we'll know 1st if ML is used,
// 2nd how many args we have to alterate
iMlNumber++;
}
}
}
}
// If arraysize == 0, ML is not used
// we can only send 1 MSG_BROADCAST message
if( !iMlNumber )
{
if( iParams == 3 )
{
copy(szMessage[1], charsmax(szMessage)-1, szMsg);
}
else
{
vformat(szMessage[1], charsmax(szMessage)-1, szMsg, 4);
}
if( iColor )
{
new szTeam[11];
get_user_team(iFool, szTeam, charsmax(szTeam));
Send_TeamInfo(0, iFool, g_szTeamName[iColor]);
Send_SayText(0, iFool, szMessage);
Send_TeamInfo(0, iFool, szTeam);
}
else
{
Send_SayText(0, iFool, szMessage);
}
}
// ML is used, we need to loop through all players,
// format text and send a MSG_ONE_UNRELIABLE SayText message
else
{
new szTeam[11], szFakeTeam[10];
if( iColor )
{
get_user_team(iFool, szTeam, charsmax(szTeam));
copy(szFakeTeam, charsmax(szFakeTeam), g_szTeamName[iColor]);
}
for( i = 0; i < iNum; i++ )
{
Index = iPlayers[i];
for(j=0; j<iMlNumber; j++)
{
// Set all LANG_PLAYER args to player index ( = Index )
// so we can format the text for that specific player
setarg(ArrayGetCell(aStoreML, j), _, Index);
}
// format string for specific player
vformat(szMessage[1], charsmax(szMessage)-1, szMsg, 4);
if( iColor )
{
Send_TeamInfo(Index, iFool, szFakeTeam);
Send_SayText(Index, iFool, szMessage);
Send_TeamInfo(Index, iFool, szTeam);
}
else
{
Send_SayText(Index, iFool, szMessage);
}
}
ArrayDestroy(aStoreML);
}
}
return 1;
}
stock Send_TeamInfo(iReceiver, iPlayerId, szTeam[])
{
static iTeamInfo = 0;
if( !iTeamInfo )
{
iTeamInfo = get_user_msgid("TeamInfo");
}
message_begin(iReceiver ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, iTeamInfo, .player=iReceiver);
write_byte(iPlayerId);
write_string(szTeam);
message_end();
}
stock Send_SayText(iReceiver, iPlayerId, szMessage[])
{
static iSayText = 0;
if( !iSayText )
{
iSayText = get_user_msgid("SayText");
}
message_begin(iReceiver ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, iSayText, .player=iReceiver);
write_byte(iPlayerId);
write_string(szMessage);
message_end();
}
stock register_dictionary_colored(const filename[])
{
if( !register_dictionary(filename) )
{
return 0;
}
new szFileName[256];
get_localinfo("amxx_datadir", szFileName, charsmax(szFileName));
format(szFileName, charsmax(szFileName), "%s/lang/%s", szFileName, filename);
new fp = fopen(szFileName, "rt");
if( !fp )
{
log_amx("Deshtoi te hapet %s", szFileName);
return 0;
}
new szBuffer[512], szLang[3], szKey[64], szTranslation[256], TransKey:iKey;
while( !feof(fp) )
{
fgets(fp, szBuffer, charsmax(szBuffer));
trim(szBuffer);
if( szBuffer[0] == '[' )
{
strtok(szBuffer[1], szLang, charsmax(szLang), szBuffer, 1, ']');
}
else if( szBuffer[0] )
{
strbreak(szBuffer, szKey, charsmax(szKey), szTranslation, charsmax(szTranslation));
iKey = GetLangTransKey(szKey);
if( iKey != TransKey_Bad )
{
while( replace(szTranslation, charsmax(szTranslation), "!g", "^4") ){}
while( replace(szTranslation, charsmax(szTranslation), "!t", "^3") ){}
while( replace(szTranslation, charsmax(szTranslation), "!n", "^1") ){}
AddTranslation(szLang, iKey, szTranslation[2]);
}
}
}
fclose(fp);
return 1;
}
#endif
[/code[