Проблем със calladmin плъгина

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
Bartian
Извън линия
Потребител
Потребител
Мнения: 280
Регистриран на: 01 Сеп 2018, 14:43
Се отблагодари: 65 пъти
Получена благодарност: 78 пъти

Проблем със calladmin плъгина

Мнение от Bartian » 11 Дек 2018, 17:56

Здравейте имам проблем със calladmin плъгина , проблема е там, че не записва даните в тхт файла и ако може съобщенията да са видими само за админите тоест, като докладваш някой текст да не се появява пред всички играчи.

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <amxmisc>
#include <colorchat>

new pPrefix
new pShowmsg

public plugin_init() {
   register_plugin("CallAdmin","3.1","MAD.XayC & Edited: South Division / Ivan Baby ;*<3 (With Log File)")

   pPrefix = register_cvar("ca_prefix","AMXX")
   pShowmsg = register_cvar("ca_showmsg","1")
   register_clcmd("say","HookSay")
   register_clcmd("say_team","HookSay")
}

public HookSay(id) { 
   new nick[32],ip[16],cvarstring[64],srvname[32],authid[33]

   static szText[256]
   read_args(szText,255)
   remove_quotes(szText)

   get_cvar_string("hostname",srvname,31)
   get_user_name(id,nick,31) 
   get_user_authid(id,authid,32)
   get_user_ip(id,ip,15,1) 
   get_pcvar_string(pPrefix,cvarstring,63)


        if(equali(szText,"/calladmin ",10) && szText[10]) {
         while( replace( szText[ 10 ], charsmax( szText ), "  ", " ") || equal( szText[ 10 ] ," " ) )
            {
			
                ColorChat(0,RED,"[%s] ^1You cannot call an admin without a reason for it!",cvarstring)
                return PLUGIN_HANDLED
            }
 
         switch(get_pcvar_num(pShowmsg)) {
            case 1: { ColorChat(0,RED,"[%s] ^4%s ^1has just called an admin. Reason:^4%s",cvarstring,nick,szText[10]); }
            case 2: { ColorChat(id,RED,"[%s] ^1You have just called an admin. Reason:^4%s",cvarstring,szText[10]); }
            case 3: { for(new i=1; i<get_maxplayers(); i++) { 
                  if(is_user_admin(i)) {
                     ColorChat(i,RED,"[%s] ^4%s ^1has just called an admin. Reason:^4%s",cvarstring,nick,szText[10])
                  }
               }
            }
         }

		 
		log_to_file("calladmin.txt","%s Reported %s - IP:%s^n",nick,szText[10],ip)
		 
		 
         return PLUGIN_HANDLED
 }
      if(equal(szText,"/calladmin",10)) {
         PlayersMenu(id)
         return PLUGIN_HANDLED
      }
   

   return PLUGIN_CONTINUE
}

public PlayersMenu(id) {
   new menu = menu_create("\rPlayers Menu:", "players_handler")
   new players[32], pnum, tempid
   new szName[32], szTempid[10]
   get_players(players, pnum)
   for( new i; i<pnum; i++ ) {
      tempid = players[i]
      get_user_name(tempid, szName, 31)
      num_to_str(tempid, szTempid, 9)
      menu_additem(menu, szName, szTempid, 0)
   }
   menu_display(id, menu, 0)
}
public players_handler(id, menu, item) {
   if(item == MENU_EXIT) 
      return PLUGIN_HANDLED
   new data[6], iName[64]
   new access, callback
   menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
   new tempid = str_to_num(data)   
   new namex[32]
   get_user_name(tempid,namex,31)
   new szArg[32]
   read_args(szArg,32)
   remove_quotes( szArg)
   client_cmd(id,"messagemode ^"say /calladmin %s^"",namex)
   return PLUGIN_HANDLED
}
Думата "хакер" е неправилно използвана в смисъл на "компютърен хакер" от някои журналисти. Ние, хакерите, отказваме да приемем това тълкуване и продължаваме да означаваме с него смисъла на "някой, който обича да го програмира и да го ползва". Изображение

Аватар
iNvision.
Извън линия
Потребител
Потребител
Мнения: 12
Регистриран на: 09 Дек 2018, 20:04
Получена благодарност: 1 път

Проблем със calladmin плъгина

Мнение от iNvision. » 11 Дек 2018, 21:21

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <sqlx>
#include <regex>
#include <WPMGPrintChatColor>

#define COOL_DOWN 1200.0
#define ADMIN_FLAG ADMIN_SLAY

new const g_szIPPattern[] = "([0-9].*[*].*[1-9][0-9].*[*].*[0-9]{2}.*[*].*[0-9])" ;
new const g_szDomainPattern[] = "[a-zA-Z0-9\-\.]+\.(com|org|net|bg|info|COM|ORG|NET|BG|INFO)";

new Regex:g_CompiledIPPattern, Regex:g_CompiledDomainPattern;

new const g_szCreateDbQuery[] = "CREATE TABLE IF NOT EXISTS `call_admin` (`id` INT(12) NOT NULL AUTO_INCREMENT PRIMARY KEY ,`nick` VARCHAR(30) NOT NULL ,`report` VARCHAR(255) NOT NULL ,`date` VARCHAR(10) NOT NULL ,`time` VARCHAR(10) NOT NULL ,`ip` VARCHAR(16) NOT NULL ,`server` VARCHAR(30) NOT NULL)"
new const g_szInsertInDbQuery[] = "INSERT INTO `call_admin` (nick,ip,report,date,time,server) VALUES ('%s','%s','%s','%s','%s','%s')"

new Handle:g_SqlConnection

new Float:g_flLastCall = -COOL_DOWN;

new g_szHostName[32];

public plugin_init() 
{
	register_plugin("CallAdmin", "1.1", "TheRedShoko @ AMXX-BG.info");

	register_cvar("calladmin_version", "1.1", FCVAR_SERVER|FCVAR_SPONLY);

	register_clcmd("say","HookSay");
	register_clcmd("say_team","HookSay");
	
	g_CompiledDomainPattern = regex_compile(g_szDomainPattern, .flags = "s");
	g_CompiledIPPattern = regex_compile(g_szIPPattern, .flags = "s");
	
	get_cvar_string("hostname", g_szHostName, charsmax(g_szHostName))
}

public plugin_cfg() 
{
	new szHost[32], szUser[32], szPass[32], szDb[32];
	get_cvar_string("amx_sql_host", szHost, charsmax(szHost))
	get_cvar_string("amx_sql_user", szUser, charsmax(szUser))
	get_cvar_string("amx_sql_pass", szPass, charsmax(szPass))
	get_cvar_string("amx_sql_db", szDb, charsmax(szDb))
	
	g_SqlConnection = SQL_MakeDbTuple(szHost, szUser, szPass, szDb)

	SQL_ThreadQuery(g_SqlConnection, "QueryCreateTable", g_szCreateDbQuery)
} 

public HookSay(id) 
{ 
	static szTime[16], szDate[16], szName[32], szIP[16];
	
	static szText[128], szCommand[16], szReport[96];
	copy(szReport, charsmax(szReport), "");
	
	read_args(szText, charsmax(szText))
	remove_quotes(szText)
	argbreak(szText, szCommand, charsmax(szCommand), szReport, charsmax(szReport));

	if (equali(szCommand, "/calladmin"))
	{
		if (strlen(szReport) == 0)
		{
			PrintChatColor(id, PRINT_COLOR_GREY, "!g[!tCallAdmin!g]!y Syntax:!g /calladmin !t<reason>");
			return PLUGIN_HANDLED;
		}
		
		if (get_gametime() - g_flLastCall < COOL_DOWN)
		{
			PrintChatColor(id, PRINT_COLOR_GREY, "!g[!tCallAdmin!g]!y Please wait!t %.f!y more seconds before using!g /calladmin!y!", COOL_DOWN - (get_gametime() - g_flLastCall));
			return PLUGIN_HANDLED;
		}
		
		if (AreThereOnlineAdmins())
		{
			PrintChatColor(id, PRINT_COLOR_GREY, "!g[!tCallAdmin!g]!y There are admins online! Complain to them instead of using calladmin!");
			return PLUGIN_HANDLED;
		}
		
		if (regex_match_c(szReport, g_CompiledDomainPattern) > 0 || regex_match_all_c(szReport, g_CompiledIPPattern) > 0)
		{
			PrintChatColor(id, PRINT_COLOR_GREY, "!g[!tCallAdmin!g]!y Advertising is not allowed!");
			return PLUGIN_HANDLED;
		}
		
		get_user_name(id, szName, charsmax(szName))
		get_user_ip(id, szIP, charsmax(szIP) ,1) 
		get_time("%d.%m.%Y", szDate, charsmax(szDate)) 
		get_time("%H:%M:%S", szTime, charsmax(szTime))
		
		PrintChatColor(0, PRINT_COLOR_GREY, "!g[!tCallAdmin!g]!g %s!y called an admin. Reason:!t %s", szName, szReport);

		static szQuery[512];
		formatex(szQuery, charsmax(szQuery), g_szInsertInDbQuery, szName, szIP, szReport, szDate, szTime, g_szHostName);
		SQL_ThreadQuery(g_SqlConnection, "QueryCreateTable", szQuery);
		
		g_flLastCall = get_gametime();
		
		return PLUGIN_HANDLED
	}

	return PLUGIN_CONTINUE
}

bool:AreThereOnlineAdmins()
{
	static iPlayers[MAX_PLAYERS], iPlayersNum;
	get_players(iPlayers, iPlayersNum);
	
	for (new i = 0; i < iPlayersNum; i++)
	{
		if (get_user_flags(iPlayers[i]) & ADMIN_FLAG)
		{
			return true;
		}
	}
	
	return false;
}

public plugin_end() 
{ 
	SQL_FreeHandle(g_SqlConnection);
	
	regex_free(g_CompiledDomainPattern);
	regex_free(g_CompiledIPPattern);
}

public QueryCreateTable(iFailState,Handle:hQuery,szError[],iError,iData[],iDataSize,Float:flQueueTime)
{
	switch(iFailState) 
	{
		case TQUERY_CONNECT_FAILED: 	log_amx("Failed to connect to database (%i): %s", iError, szError); 
		case TQUERY_QUERY_FAILED: 	log_amx("Error on query for QueryCreateTable() (%i): %s", iError, szError);
	}
}

Аватар
Bartian
Извън линия
Потребител
Потребител
Мнения: 280
Регистриран на: 01 Сеп 2018, 14:43
Се отблагодари: 65 пъти
Получена благодарност: 78 пъти

Проблем със calladmin плъгина

Мнение от Bartian » 11 Дек 2018, 22:16

Проблем със комплилирането: https://dox.abv.bg/download?id=9e9b138aab

Добавено преди 40 минути 21 секунди:
Оправих се , може да заклювате темата,Благодаря!
Думата "хакер" е неправилно използвана в смисъл на "компютърен хакер" от някои журналисти. Ние, хакерите, отказваме да приемем това тълкуване и продължаваме да означаваме с него смисъла на "някой, който обича да го програмира и да го ползва". Изображение

Заключено
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: Semrush [Bot] и 15 госта