Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Top Awards Нужно доделать)

Статус пользователя qpi3ik
сообщение 5.10.2014, 12:42
Сообщение #1


Стаж: 12 лет

Сообщений: 621
Благодарностей: 78
Полезность: 12

Доброе время суток уважаемые скриптеры. Есть плагин Top Awards который выдает флаги за топовые места. Так как у меня на сервере за топ-1 флаг t то есть випка.
Хотелось бы как то защитить игрока в топ-1 что бы не кто не смог сменить ник на его и бегать с випкой.
Возможно ли сделать так что бы если попадаешь в топ-1 например и тебе автоматом вылазила менюшка для создания пароля. Что бы при заходе за команду потом у него спрашивался пароль, если не правильно ввел какило.

Вот исходник:

Код:
/*
* 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", "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()
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Bloo
сообщение 5.10.2014, 12:44
Сообщение #2


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

qpi3ik, зачем вести статистику по нику? Чем SteamID не устраивает?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя qpi3ik
сообщение 5.10.2014, 12:49
Сообщение #3


Стаж: 12 лет

Сообщений: 621
Благодарностей: 78
Полезность: 12

Цитата(Bloo @ 5.10.2014, 13:44) *
qpi3ik, зачем вести статистику по нику? Чем SteamID не устраивает?


А можно тогда сделать что бы плагин проверял на SteamID топ игрока?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя f1nik
сообщение 5.10.2014, 12:58
Сообщение #4


Иконка группы

Стаж: 15 лет

Сообщений: 1862
Благодарностей: 932
Полезность: 1010

qpi3ik,
Плагин берет данные из топа, ему не важно что там стимИд или ник, топ 1 и все, значит такой то флаг.
Ведите статистику по стиИД и все, плагин тут не причем
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя KaJIbIBaH
сообщение 5.10.2014, 13:53
Сообщение #5


Стаж: 19 лет

Сообщений: 151
Благодарностей: 142
Полезность: 929

Только, прежде, чем переводить статистику на SteamID, нужно убедиться, что предприняты меры по защите определённых аккаунтов от подмены SteamID.
Иначе SteamID угонят так же просто, как ник.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 3 раз
   + Цитировать сообщение
Статус пользователя tribbiani
сообщение 26.8.2015, 1:04
Сообщение #6
Стаж: 12 лет

Сообщений: 186
Благодарностей: 88
Полезность: 270

Есть у кого готовый скомпиленный плагин или что то на подобии этого плагина? Покупать у скальпеля нет желания, тем более без исходника. Или может была новая версия? Буду признателен.

Отредактировал: tribbiani, - 26.8.2015, 1:06
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: