Добавяне на условие за "flag", към Top_awards.amxx

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
iv69
Извън линия
Потребител
Потребител
Мнения: 744
Регистриран на: 17 Мар 2018, 15:34
Се отблагодари: 214 пъти
Получена благодарност: 39 пъти

Добавяне на условие за "flag", към Top_awards.amxx

Мнение от iv69 » 10 Окт 2021, 20:31

Здравейте,
Може ли да се преработи този плъгин тъй че да дава флаг "t" , но само на ония играчи в сървъра които са с някакъв друг флаг ( примерно "r"), т.е. - да има проверка за играча когато влезе в топ-а и да получава новия флаг, ако притежава преди това друг, иначе - не.
Благодаря!

Плъгина:

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

#include <amxmodx>
#include <csstats>

#define IGNORE_FLAG ADMIN_LEVEL_A	/* flag "m" */

new pRanks, pFlags

public plugin_init() {
	register_plugin( "Top Awards", "0.11c", "Safety1st" )
	register_dictionary( "topawards.txt" )
	pRanks = register_cvar( "top_ranks", "10" )
	pFlags = register_cvar( "top_flags", "t" )
}

public client_putinserver(id) {
	set_task( 0.3, "CheckStats", id )	// we need to use delay otherwise we will get rank = 0
}

public CheckStats(id) {
	new iFlags = get_user_flags(id)
	new szAddFlags[16]
	get_pcvar_string( pFlags, szAddFlags, 15 )
	new iAddFlags  = read_flags(szAddFlags)

	if ( iFlags & IGNORE_FLAG || iFlags & iAddFlags == iAddFlags )
		// ignore player with IGNORE_FLAG or having all additional flags
		return

	new iRanks = get_pcvar_num(pRanks)
	if ( !iRanks )
		return

	new szStats[8], szBodyHits[8]
	new iRank = get_user_stats( id, szStats, szBodyHits )

	if ( iRank && iRank <= iRanks ) {
		// 1st check for safety. may be player not ranked at all yet
		set_user_flags( id, iFlags | iAddFlags )
		new data[2]
		data[0] = id
		data[1] = iRanks
		set_task( 5.0, "PrintMessage", _, data, 2 )
	}
}

public PrintMessage( data[2] ) {
	if ( !is_user_connected(data[0]) )
		return

	ColorPrint( data[0], "%L", data[0], "TOP_AWARDS", data[1] )
}

ColorPrint( iReceiver, const szRawMessage[ ], any:... ) {
	static iMsgSayText = 0
	if( !iMsgSayText )
		iMsgSayText = get_user_msgid( "SayText" )

	new szMessage[192]
	vformat( szMessage, charsmax(szMessage) - 1, szRawMessage, 3 )
	replace_all( szMessage, charsmax(szMessage) - 1, "!n", "^1" )
	replace_all( szMessage, charsmax(szMessage) - 1, "!t", "^3" )
	replace_all( szMessage, charsmax(szMessage) - 1, "!g", "^4" )
	if ( szMessage[0] != '^1' || szMessage[0] != '^3' || szMessage[0] != '^4' )
		format( szMessage, charsmax(szMessage) - 1, "^1%s", szMessage )	// we must set initial default color if it is not provided explicitly

	message_begin( MSG_ONE_UNRELIABLE, iMsgSayText, _, iReceiver )
	write_byte(iReceiver)	// use target player as sender to see colors at all (and his own team color for ^3)
	write_string(szMessage)
	message_end()
}

Аватар
Lethality
Извън линия
VHE Mapper
VHE Mapper
Мнения: 211
Регистриран на: 06 Яну 2020, 15:41
Местоположение: Германия
Се отблагодари: 34 пъти
Получена благодарност: 50 пъти
Обратна връзка:

Добавяне на условие за "flag", към Top_awards.amxx

Мнение от Lethality » 11 Окт 2021, 09:37

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

#define IGNORE_FLAG ADMIN_LEVEL_A	/* flag "m" */
Просто сменяш ADMIN_LEVEL_A на ADMIN_LEVEL_F ( flag "r" ) ? За да пропуска играчи с този флаг и да не им дава флага от "top_flags", "t" CVAR-a

Аватар
iv69
Извън линия
Потребител
Потребител
Мнения: 744
Регистриран на: 17 Мар 2018, 15:34
Се отблагодари: 214 пъти
Получена благодарност: 39 пъти

Добавяне на условие за "flag", към Top_awards.amxx

Мнение от iv69 » 11 Окт 2021, 16:29

Lethality написа: 11 Окт 2021, 09:37

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

#define IGNORE_FLAG ADMIN_LEVEL_A	/* flag "m" */
Просто сменяш ADMIN_LEVEL_A на ADMIN_LEVEL_F ( flag "r" ) ? За да пропуска играчи с този флаг и да не им дава флага от "top_flags", "t" CVAR-a
Не, не ... . Мисля, че не си ме разбрал добре. Аз искам ако може при влизане в топа(в случая е : "top_ranks", "10") от който и да е играч, просто на този играч да му се дава флаг( в случая: "top_flags", "t"), но само ако преди това е имал друг флаг освен дефолтния му: "z". В случая - произволно бях избрал флаг за резервиран слот: "б". Само това. Игнорирането на флаг на играчите не ме бърка или интересува.

Аватар
iv69
Извън линия
Потребител
Потребител
Мнения: 744
Регистриран на: 17 Мар 2018, 15:34
Се отблагодари: 214 пъти
Получена благодарност: 39 пъти

Добавяне на условие за "flag", към Top_awards.amxx

Мнение от iv69 » 11 Окт 2021, 16:42

Мдааа, намерих решение. Lethality ме наведе на една гениална мисъл как да си свържа топ-а с ник-а на играча и да не може друг играч да ползва този ник и ВИП-екстрите към флага от този топ NNN ...
Ключа и благодаря на Lethality.

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

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

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 12 госта