Преработка на top_awards.amxx .

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
joro.f.
Извън линия
Потребител
Потребител
Мнения: 45
Регистриран на: 16 Авг 2017, 12:57
Местоположение: Никарагуа

Преработка на top_awards.amxx .

Мнение от joro.f. » 02 Яну 2018, 18:56

Може ли да се преработи посочения плъгин така , че всичко което плъгина "си прави" - да остане , но примерно освен това , че
попадналите от 1-во до 40-то място в Top-а играчи да получават някакви "флагове" (както е настроен сега примерно с cvar-и на флаг "o") , да има и
още една опция:
- попадналите от 41 до 100 място - да получават също възможност за флагове и екстри но на флаг "q"
Дано съм бил ясен какво точно ми трябва, че и аз все още на повечето неща се уча.

Благодаря !!!

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

/*
* Top Awards 10/22/2012
* 
* ѕлагин добавл¤ет флаг(и) TOPx игрокам
*  вары:
*  top_ranks - максимальный ранг, который может иметь игрок (конец TOPX)
*  top_flags - какие флаги добавл¤ютс¤
* 
* »гнорируютс¤ игроки с флагом IGNORE_FLAG (по умолчанию это флаг m) и игроки, уже имеющие ¬—≈ добавл¤емые флаги.
* ѕо¤сн¤юща¤ надпись игроку выводитс¤ цветным чатом.
* 
* Credits:
* - original plugin's authors SimonLogic & RoleX
* - c-s.net.ua users 3aB}{o3 & cs-portal for the idea and link
*/

#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", "50" )
	pFlags = register_cvar( "top_flags", "bciuo" )
}

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()
}

p.s. За сега този плъгин е тестван от мене, работи леко и без лаг или бъгове ! надявам се и след "преработка"(ако някой се захване изобщо) да е пак така ....Благодаря!

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

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

Кой е на линия

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