Страница 4 от 7

[INC] CromChat - a better ColorChat!

Публикувано на: 28 Яну 2018, 02:36
от User12
Успях да го направя , прилагам снимка на ефекта .
Изображение

[INC] CromChat - a better ColorChat!

Публикувано на: 11 Фев 2018, 19:30
от User12
Въпрос за библиотеката , имали начин да се добави друг цвят примерно cyan или пък purple в чата както е на hud съобщенията , или е невъзможно ?

[INC] CromChat - a better ColorChat!

Публикувано на: 11 Фев 2018, 20:36
от OciXCrom
Единствените възможни цветове за чата в CS 1.6 са тези в темата. Добавяне на други е невъзможно.

[INC] CromChat - a better ColorChat!

Публикувано на: 19 Фев 2018, 15:53
от LoShIaA
Как да заменя тази библиотека за цветни съобщения с твоята?

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

/*	Formatright © 2009, ConnorMcLeod

	Info Rank is free software;
	you can redistribute it and/or modify it under the terms of the
	GNU General Public License as published by the Free Software Foundation.

	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with Info Rank; if not, write to the
	Free Software Foundation, Inc., 59 Temple Place - Suite 330,
	Boston, MA 02111-1307, USA.
*/

/* Configuration */
#define ENABLED_BY_DEFAULT		1
#define NVAULT_MAX_DAYS_SAVE	30
/* DON'T CHANGE ANYTHING BELOW */

#include <amxmodx>
#include <csx>
#include <nvault>
#include <chatcolor>

#define VERSION "0.4.1"

#define MAX_PLAYERS 32
#define A_DAY_IN_SECONDS		86400 // 60 * 60 * 24

new g_iOldRank[MAX_PLAYERS+1]

new playerbitStatsEnabled
#define EnablePlayerStats(%0)		playerbitStatsEnabled |= 1<<(%0&31)
#define DisablePlayerStats(%0)		playerbitStatsEnabled &= ~(1<<(%0&31))
#define ArePlayerStatsEnabled(%0)	playerbitStatsEnabled & 1<<(%0&31)
#define TogglePlayerStats(%0)		playerbitStatsEnabled ^= 1<<(%0&31)

new playerbitDisplayStats
//#define DisplayStatsOnNextResetHUDEvent(%0)			playerbitDisplayStats |= 1<<(%0&31)
#define DontDisplayStatsOnNextResetHUDEvent(%0)		playerbitDisplayStats &= ~(1<<(%0&31))
#define ShouldDisplayStatsOnNextResetHUDEvent(%0)	playerbitDisplayStats & 1<<(%0&31)

new g_iEnabledByDefault = ENABLED_BY_DEFAULT
new g_iNvault
new g_pCvarInfoRank

public plugin_init()
{
	register_plugin("Info Rank", VERSION, "ConnorMcLeod")
	register_dictionary("inforank.txt")

	g_pCvarInfoRank = register_cvar("amx_inforank", "1")

	register_event("HLTV", "Event_HLTV_New_Round", "a", "1=0", "2=0")
	register_event("ResetHUD", "Event_ResetHUD", "b")

	register_clcmd("say /inforank", "ClientCommand_InfoRank", 0, "- enable/disable info rank messages")
	register_clcmd("say_team /inforank", "ClientCommand_InfoRank", 0, "- enable/disable info rank messages")

	g_iNvault = nvault_open("inforank")
	nvault_prune(g_iNvault, 0, get_systime(-(A_DAY_IN_SECONDS * NVAULT_MAX_DAYS_SAVE)) )
}

public client_authorized(id)
{
	new szSteamId[32]
	get_user_authid(id, szSteamId, charsmax(szSteamId))
	if( szSteamId[0] == 'S' ) // skip bots
	{
		new mOsef[8]
		g_iOldRank[id] = get_user_stats(id, mOsef, mOsef)

		new szPlayerSettings[2]
		nvault_get(g_iNvault,szSteamId, szPlayerSettings, charsmax(szPlayerSettings))

		switch( szPlayerSettings[0] )
		{
			case '0':
			{
				DisablePlayerStats(id)
			}
			case '1':
			{
				EnablePlayerStats(id)
			}
			default:
			{
				if( g_iEnabledByDefault )
				{
					EnablePlayerStats(id)
				}
				else
				{
					DisablePlayerStats(id)
				}
			}
		}
	}
	else
	{
		DisablePlayerStats(id)
	}
}

public plugin_end()
{
	nvault_close(g_iNvault)
}

public Event_HLTV_New_Round()
{
	if( get_pcvar_num(g_pCvarInfoRank) )
	{
		playerbitDisplayStats = 0xFFFFFFFF // set everyone enabled
	}
}

public Event_ResetHUD(id)
{
	if( ShouldDisplayStatsOnNextResetHUDEvent(id) && ArePlayerStatsEnabled(id) )
	{
		DontDisplayStatsOnNextResetHUDEvent(id)
		set_task(0.3, "DisplayStats", id)
	}
}

public DisplayStats(id)
{
	if( is_user_connected(id) )
	{
		new mOsef[8], iRank, iOldRank
		iRank = get_user_stats(id, mOsef, mOsef)

		iOldRank = g_iOldRank[id]
		if( !iOldRank ) // First Spawn
		{
			iOldRank = iRank
		}
		g_iOldRank[id] = iRank

		new iDiff = iOldRank - iRank

		if(iDiff > 0)
		{
			client_print_color(id, id, "^4%L", id, "IR_GOOD", iDiff)	
		}
		else if(iDiff < 0)
		{
			client_print_color(id, Red, "^3%L", id, "IR_BAD", iDiff)
		}
		client_print_color(id, Grey, "^3%L", id, "IR_RANK", iRank, get_statsnum())
	}
}

public ClientCommand_InfoRank(id)
{
	if( get_pcvar_num(g_pCvarInfoRank) )
	{
		new szSteamId[32]
		get_user_authid(id, szSteamId, charsmax(szSteamId))
		TogglePlayerStats(id)
		if( ArePlayerStatsEnabled(id) )
		{
			nvault_set(g_iNvault, szSteamId, "1")
			client_print_color(id, id, "^4%L", id, "IR_ENABLE")
		}
		else
		{
			nvault_set(g_iNvault, szSteamId, "0")
			client_print_color(id, Red, "^3%L", id, "IR_DISABLE")
		}
	}
	return PLUGIN_CONTINUE
}
Това с какво да го заменя client_print_color? Пробвах няколко метода, но все ми дава грешка при компилация. Даже ще е добре самото оцветяване да става само през lang файла, защото гледам, че тук в кода има някви оцветявания.

[INC] CromChat - a better ColorChat!

Публикувано на: 19 Фев 2018, 16:09
от Fr0sTt
Вместо #include <chatcolor> , трябва да е #include <cromchat> и след това всички client_print_color{id, Grey, трябва да ги направиш CC_SendMessage(id, и да ги оцветиш по твой вкус - &x01, &x03, &x04, &x05, &x06, &x07

[INC] CromChat - a better ColorChat!

Публикувано на: 19 Фев 2018, 17:35
от LoShIaA
Така съм го направил, но не мога да хвана параметрите. Така ми даваше грешка:

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

CC_SendMessage(id, id, "^4%L", id, "IR_GOOD", iDiff)	

CC_SendMessage(id, Red, "^3%L", id, "IR_BAD", iDiff)
		
CC_SendMessage(id, Grey, "^3%L", id, "IR_RANK", iRank, get_statsnum())

CC_SendMessage(id, id, "^4%L", id, "IR_ENABLE")

CC_SendMessage(id, Red, "^3%L", id, "IR_DISABLE")
премахнах втория id и Red/Grey параметър:

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

CC_SendMessage(id,  "%L", id, "IR_GOOD", iDiff)	

CC_SendMessage(id,  "%L", id, "IR_BAD", iDiff)
		
CC_SendMessage(id, "%L", id, "IR_RANK", iRank, get_statsnum())

CC_SendMessage(id,  "%L", id, "IR_ENABLE")

CC_SendMessage(id,  "%L", id, "IR_DISABLE")
Сега съобщенията си излизат, но нещо не мога да си ги сменям от ланг файла. Използвам !g, !t и т.н.
Като се използва библиотеката те трябва ли някъде да се описват в кода?

[INC] CromChat - a better ColorChat!

Публикувано на: 19 Фев 2018, 17:43
от Fr0sTt
Пробвай така да ги оцветиш в ланга - &x01, &x03, &x04, &x05, &x06, &x07

[INC] CromChat - a better ColorChat!

Публикувано на: 19 Фев 2018, 17:52
от LoShIaA
Да, така работи и чак сега видях, че дадените групи се активират. Мислих, че тези основните са пуснати, а когато правиш собствена трябва да я активираш. Сложих #define CC_COLORS_TYPE CC_COLORS_SHORT преди
#include <cromchat> и сега всичко е нормално.

[INC] CromChat - a better ColorChat!

Публикувано на: 19 Фев 2018, 20:26
от OciXCrom
Правилно си направил, обаче имай предвид, че нямаше нужда да заместваш client_print_color с CC_SendMessage, тъй като библиотеката има поддръжка за тази функция и автоматично я превръща да ползва cromchat.

[INC] CromChat - a better ColorChat!

Публикувано на: 01 Мар 2018, 16:22
от OciXCrom
Изображение
  • Добавена е функция CC_GroupMessage с която можете да изпратите съобщение до определена група играчи, ползвайки същите флагове както при функцията get_players.