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

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

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

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

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

Поощрение игроков

Статус пользователя HolySaint
сообщение 19.9.2015, 16:47
Сообщение #1
Стаж: 10 лет

Сообщений: 2
Благодарностей: 1
Полезность: 0

Всем привет. Имеется плагин Top awards. Выдает VIP топ игрокам. В данном случае топ 5 получают VIP. Мне нужно как то переделать что бы из этих 5-ти VIP топ 1 игрок получил админку+vip.
Пробовал подключить оба плагина с разными флагами, но они перебивают друг друга, т.е тот который прописан выше перебивает тот что ниже.
Буду признателен за помощь.

Код:
/*
* Top Awards 10/22/2012
*
* ѕлагин добавл¤ет флаг(и) TOPx игрокам
*  вары:
* top_ranks - максимальный ранг, который может иметь игрок (конец TOPX)
* top_flags - какие флаги добавл¤ютс¤
*
* »гнорируютс¤ игроки с флагом IGNORE_FLAG (по умолчанию это флаг m) и игроки, уже имеющие ¬—≈ добавл¤емые флаги.
* ѕо¤сн¤юща¤ надпись игроку выводитс¤ HUD'ом рандомного цвета.
*
* 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>
#include <dhudmessage>

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

new pRanks, pFlags

public plugin_init() {
register_plugin( "Top Awards", "0.11h", "Safety1st" )
register_dictionary( "topawards.txt" )
pRanks = register_cvar( "top_ranks", "5" )
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

set_dhudmessage( random(200) + 25, random(200) + 25, random(200) + 25, -1.0, 0.75, 0, .fxtime = 2.0, .holdtime = 10.0 )
show_dhudmessage( data[0], "%L", data[0], "TOP_AWARDS", data[1] )
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя HolySaint
сообщение 20.9.2015, 5:18
Сообщение #2
Стаж: 10 лет

Сообщений: 2
Благодарностей: 1
Полезность: 0

Собрал из двух плагинов 1. Вроде работает как надо. Может кому пригодиться. Познания в языке Pawn нулевые так что прошу не судить, а может что и подсказать.
Код:
#include < amxmodx >
#include < fun >

#define MAX_ARM 400

new gMAXPLAYERS
new pFlags
new pFlagss

native get_user_stats(index, stats[8], bodyhits[8])
native cs_set_user_bpammo(index, weapon, amount)

public plugin_init()
{
register_plugin("TOP FIVE BONUS", "0.1", "fayting.ru")
register_logevent("round_start", 2, "0=World triggered", "1=Round_Start")
gMAXPLAYERS = get_maxplayers()
pFlags = register_cvar( "top_flags", "bcdefijmotu" )
pFlagss = register_cvar( "top_flagss", "t" )
}

public round_start()
{
for(new i; i <= gMAXPLAYERS; i++)
{
if(is_user_hltv(i) || is_user_bot(i) || !is_user_connected(i))
continue

new stats[8], bodyhits[8]
new pARM = get_user_armor(i)
new pTOP = get_user_stats(i, stats, bodyhits)

new iFlags = get_user_flags(i)
new szAddFlags[16]
get_pcvar_string( pFlags, szAddFlags, 15 )
new iAddFlags = read_flags(szAddFlags)

new iFlagss = get_user_flags(i)
new szAddFlagss[16]
get_pcvar_string( pFlagss, szAddFlagss, 15 )
new iAddFlagss = read_flags(szAddFlagss)

if(pTOP == 1)
{
if(pARM < MAX_ARM)
set_user_flags( i, iFlags | iAddFlags )
client_print(i, print_chat, "[TOP-БОНУС] Вы занимаете %d место в ранге, ваш бонус: админка + vip - получен.", pTOP)
}
if(pTOP == 2)
{
if(pARM < MAX_ARM)
set_user_flags( i, iFlagss | iAddFlagss )
client_print(i, print_chat, "[TOP-БОНУС] Вы занимаете %d место в ранге, ваш бонус: vip - получен.", pTOP)
}
if(pTOP == 3)
{
if(pARM < MAX_ARM)
set_user_flags( i, iFlagss | iAddFlagss )
client_print(i, print_chat, "[TOP-БОНУС] Вы занимаете %d место в ранге, ваш бонус: vip - получен.", pTOP)
}
if(pTOP == 4)
{
if(pARM < MAX_ARM)
set_user_flags( i, iFlagss | iAddFlagss )
client_print(i, print_chat, "[TOP-БОНУС] Вы занимаете %d место в ранге, ваш бонус: vip - получен.", pTOP)
}
if(pTOP == 5)
{
if(pARM < MAX_ARM)
set_user_flags( i, iFlagss | iAddFlagss )
client_print(i, print_chat, "[TOP-БОНУС] Вы занимаете %d место в ранге, ваш бонус: vip - получен.", pTOP)
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: