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

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

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

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

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

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

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

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

Проблема с плагином Top Awards

[РЕШЕНО]
Статус пользователя soob
сообщение 10.7.2016, 12:46
Сообщение #1
Стаж: 11 лет

Сообщений: 1106
Благодарностей: 383
Полезность: 520

Всем доброго времени суток!
Скачал плагин top awards от Safety1st
Установил плагин VIP_IDEAL Версия: 3.2.5
Выставил квары в исходнике top awards

Квары top awards
public plugin_init() {
register_plugin( "Top Awards", "0.11c", "Safety1st" )
register_dictionary( "topawards.txt" )
pRanks = register_cvar( "top_ranks", "5" )
pFlags = register_cvar( "top_flags", "t" )
}


Флаг доступа к VIP_IDEAL Версия: 3.2.5
#define PLUGIN "IDEAL VIP by Ba/lePa & Wikiname"
#define VERSION "3.2.5"
#define AUTHOR "Ba/lePa | Remake by Wikiname"

#define VIP_TAG (1<<2) // vip в таблицу
#define vip_flag ADMIN_LEVEL_H // флаг доступа
//#define EXP_SHOW // раскомментируйте чтобы показать срок


Проблема в том, что плагин фактически не работает. Пишет для ТОП3 игроков "Вы VIP игрок", но доступа до /vipmenu нет вообще.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя georgeml
сообщение 10.7.2016, 12:55
Сообщение #2
Стаж: 12 лет

Сообщений: 1467
Благодарностей: 439
Полезность: 423

soob, в вип-плагине флаги проверяются только при авторизации, видимо, а не в процессе игры
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MrLegiongame
сообщение 10.7.2016, 14:08
Сообщение #3
Стаж: 11 лет

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

soob,
Вы можете предоставить исходник с ним будет понятнее.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя soob
сообщение 10.7.2016, 14:35
Сообщение #4
Стаж: 11 лет

Сообщений: 1106
Благодарностей: 383
Полезность: 520

top_awards.sma
Код:
/*
* 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", "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

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


ideal_vip.sma
Код:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <dhudmessage>

#define PLUGIN "IDEAL VIP by Ba/lePa & Wikiname"
#define VERSION "3.2.5"
#define AUTHOR "Ba/lePa | Remake by Wikiname"

#define VIP_TAG (1<<2) // vip в таблицу
#define vip_flag ADMIN_LEVEL_H // флаг доступа
//#define EXP_SHOW // раскомментируйте чтобы показать срок випки

#define music // Если звук при входе админа не нужен, то поставьте // перед #define

#define MAX_TEXT_LENGTH 200
#define MAX_NAME_LENGTH 40

#pragma semicolon 1

new bool:g_bBlockMap;

new g_Round, g_iWeapon[33], g_iVip ;
new g_iPlayerBomb[33] = false;
new cvar_connect, Float: cvar_x, Float: cvar_y;
new cvar_prefix;
new cvar_round, cvar_open, cvar_show, cvar_chat, cvar_pistols, cvar_funk, cvar_tab;
new Float: cvar_health, Float: cvar_health_head, Float: cvar_health_max;
new cvar_money, cvar_money_head;
new cvar_music;
new cvar_awplimit;
#if defined EXP_SHOW
native admin_expired(index);
#endif
new vip_opened[33];
new g_iMaxPlayers = 0;
new msgSayText;
new g_iPistols[6] = {CSW_USP, CSW_GLOCK18, CSW_ELITE, CSW_FIVESEVEN, CSW_P228, CSW_DEAGLE};
new bool: g_Chosen[33] = false;

new string[32];

public plugin_precache(){
if(IsBlockMap())
{
g_bBlockMap = true;
return;
}

#if defined(music)
precache_sound("IDEAL_VIP/ideal_sound.wav");
#endif
}
public plugin_init(){
register_plugin(PLUGIN, VERSION, AUTHOR);

register_dictionary("ideal_vip.txt");

g_iMaxPlayers = get_maxplayers();

register_message(get_user_msgid( "ScoreAttrib" ), "msgScoreAttrib");

register_event("HLTV", "EventRoundStart", "a", "1=0", "2=0");
register_event("TextMsg", "EventRoundRestart", "a", "2=#Game_will_restart_in","2=#Game_Commencing");

RegisterHam(Ham_Killed, "player", "HamPlayerKilled_Post", 1);
RegisterHam(Ham_Spawn, "player", "HamSpawn_Post", 1);

register_clcmd("say /vipmenu", "MainMenu");
register_clcmd("say_team /vipmenu", "MainMenu");

register_clcmd("say /vip_menu", "MainMenu");
register_clcmd("say_team /vip_menu", "MainMenu");

register_clcmd("vipmenu", "MainMenu");

register_clcmd("say /vips", "vip_online");
register_clcmd("say_team /vips", "vip_online");

register_clcmd("say /adminka", "admin_motd");
register_clcmd("say_team /adminka", "admin_motd");

register_clcmd("say /vipka", "vip_motd");
register_clcmd("say_team /vipka", "vip_motd");

msgSayText = get_user_msgid("SayText");
}
public plugin_cfg(){
new szConfigDir[128];

cvar_round = get_pcvar_num(register_cvar("amx_vipround", "2"));
cvar_open = get_pcvar_num(register_cvar("amx_vipzaround", "2"));
cvar_show = get_pcvar_num(register_cvar("amx_vipshow","0"));
cvar_chat = get_pcvar_num(register_cvar("amx_chatshow", "0"));
cvar_pistols = get_pcvar_num(register_cvar("amx_vipautopistols", "1"));
cvar_funk = get_pcvar_num(register_cvar("amx_vipautoset", "1"));
cvar_health = get_pcvar_float(register_cvar("amx_viphealth", "5.0"));
cvar_health_head = get_pcvar_float(register_cvar("amx_viphealth_head", "10.0"));
cvar_health_max = get_pcvar_float(register_cvar("amx_viphealth_max", "120.0"));
cvar_money = get_pcvar_num(register_cvar("amx_vipmoney", "300"));
cvar_money_head = get_pcvar_num(register_cvar("amx_vipmoney_head", "500"));
cvar_tab = get_pcvar_num(register_cvar("amx_viptab", "1"));
cvar_connect = get_pcvar_num(register_cvar("amx_showconnect", "0"));
cvar_x = get_pcvar_float(register_cvar("amx_vipXcoord", "-1.0"));
cvar_y = get_pcvar_float(register_cvar("amx_vipYcoord", "0.6"));
cvar_prefix = register_cvar("amx_vip_prefix", "!g[!tVIP!g]");
#if defined(music)
cvar_music = get_pcvar_num(register_cvar("amx_vipMusic", "1"));
#endif
cvar_awplimit = get_pcvar_num(register_cvar("amx_awproundlimit", "3"));

get_pcvar_string(cvar_prefix, string, charsmax(string));


get_localinfo("amxx_configsdir", szConfigDir, charsmax(szConfigDir));

server_cmd("exec %s/ideal_vip.cfg", szConfigDir);
}

public admin_motd(id, level, cid){
if(!cmd_access(id, level, cid, 1))
return PLUGIN_CONTINUE;

show_motd(id, "adminka.txt", "Как купить админку");

return PLUGIN_CONTINUE;
}

public vip_motd(id, level, cid){
if(!cmd_access(id, level, cid, 1))
return PLUGIN_CONTINUE;

show_motd(id, "vipka.txt", "Как купить випку");

return PLUGIN_CONTINUE;
}

public client_putinserver(id){
g_iWeapon[id] = 0;

if(IsUserCool(id))
set_task(0.5, "vip_connect", id + 132);
}
public client_disconnect(id){
g_iWeapon[id] = 0;
g_Chosen[id] = false;
}

public vip_connect(TASKID){
new id = TASKID - 132;

#if defined(music)
if(cvar_music)
client_cmd(0, "spk IDEAL_VIP/ideal_sound.wav");
#endif

new name[32]; get_user_name(id, name, charsmax(name));

new g_iRed = random_num(1,255),g_iGreen = random_num(1,255),g_iBlue = random_num(1,255); //рандомные цвета для HUD и DHUD

switch(cvar_connect)
{
case 1:
{
ChatColor(0, "%L", id, "VIP_CONNECT", string, name);
}
case 2:
{
set_hudmessage(g_iRed, g_iGreen, g_iBlue, cvar_x, cvar_y, 0, 0.0, 6.0, 0.0, 0.0, -1);
if(get_user_flags(id) & ADMIN_BAN)
show_hudmessage(0, "%L", id, "VIP_CONNECT2", name);
else
show_hudmessage(0, "%L", id, "VIP_CONNECT2", name);
}
case 3:
{
set_dhudmessage(g_iRed, g_iGreen, g_iBlue, cvar_x, cvar_y, 1, 0.0, 6.0, 0.0, 0.0, false);
if(get_user_flags(id) & ADMIN_BAN)
show_dhudmessage(0, "%L", id, "VIP_CONNECT2", name);
else
show_dhudmessage(0, "%L", id, "VIP_CONNECT1", name);
}
case 4:
{
ChatColor(0, "%L", id, "VIP_CONNECT", string, name);

set_hudmessage(g_iRed, g_iGreen, g_iBlue, cvar_x, cvar_y, 1, 0.0, 6.0, 0.0, 0.0, -1);
show_hudmessage(0, "%L", id, "VIP_CONNECT1", name);
}
case 5:
{
ChatColor(0, "%L", id, "VIP_CONNECT", string, name);

set_dhudmessage(g_iRed, g_iGreen, g_iBlue, cvar_x, cvar_y, 1, 0.0, 6.0, 0.0, 0.0, false);
show_dhudmessage(0, "%L", id, "VIP_CONNECT1", name);
}
}
}

public EventRoundStart() g_Round++;
public EventRoundRestart() g_Round = 0;


public HamSpawn_Post(id){
g_iPlayerBomb[id] = false;
vip_opened[id] = 0;

if(!g_bBlockMap)
{
if(IsUserCool(id))
{
if(g_Round == 0) FirstMenu(id);

if(is_user_alive(id))
{
if(cvar_funk == 1) task_funk(id);

if(cvar_show == 1 && g_Round >= cvar_round) MainMenu(id);
}
}
}
}
public HamPlayerKilled_Post(iVictim, iKiller, corpse){
static const m_LastHitGroup = 75;
if(!g_bBlockMap)
{
if(IsUserCool(iVictim))
if(!g_Chosen[iVictim])
set_task(1.0, "FirstMenu", iVictim);
}
if(IsUserCool(iKiller))
{
if(is_user_alive(iKiller))
{
if( get_pdata_int( iVictim, m_LastHitGroup ) == HIT_HEAD)
{
set_pev(iKiller, pev_health, pev(iKiller, pev_health) + cvar_health_head);
if(get_user_health(iKiller) > cvar_health_max)
set_pev(iKiller, pev_health, cvar_health_max);
cs_set_user_money(iKiller, cs_get_user_money(iKiller) + cvar_money_head);
}
else
{
set_pev(iKiller, pev_health, pev(iKiller, pev_health) + cvar_health);
if(pev(iKiller, pev_health) > cvar_health_max)
set_pev(iKiller, pev_health, cvar_health_max);
cs_set_user_money(iKiller, cs_get_user_money(iKiller) + cvar_money);
}
}
}
}

GiveDefaultItems( id, secondary_weapon, strip_and_task = 1 ) {
if( strip_and_task ) {
fm_strip_user_weapons(id);
task_funk(id);
}

switch( secondary_weapon ) {
case 0: {
FirstMenu(id);
}
case 1: {
fm_give_item(id, "weapon_deagle");
cs_set_user_bpammo(id, CSW_DEAGLE, 35);
}
case 2: {
fm_give_item(id, "weapon_usp");
cs_set_user_bpammo(id, CSW_USP, 100);
}
case 3: {
fm_give_item(id, "weapon_glock18");
cs_set_user_bpammo(id, CSW_GLOCK18, 120);
}
}
}

public task_funk(id){
fm_give_item(id, "weapon_knife");
fm_give_item(id, "item_thighpack");
fm_give_item(id, "weapon_hegrenade");
fm_give_item(id, "weapon_flashbang");
fm_give_item(id, "weapon_flashbang");
fm_give_item(id, "weapon_smokegrenade");
fm_give_item(id, "item_assaultsuit");

if(g_iPlayerBomb[id])
{
fm_give_item(id, "weapon_c4");
cs_set_user_plant(id);
g_iPlayerBomb[id] = false;
}

if(cvar_pistols)
{
for(new i = 0; i < 6; i++) fm_strip_user_gun(id, g_iPistols[i]);
GiveDefaultItems( id, g_iWeapon[id], .strip_and_task = 0 );
}
}

public MainMenu(id){
if(g_bBlockMap)
{
ChatColor(id, "%L", id, "VIP_WARNING6", string);
}
else
{
if(IsUserCool(id))
{
if(is_user_alive(id))
{
if(vip_opened[id] < cvar_open || cvar_open == 0)
{
if(g_Round >= cvar_round)
{
new szTitle[64], szName[32], szPistol[32], szMenuMulti[64];
get_user_name(id, szName, charsmax(szName));

switch(g_iWeapon[id])
{
case 0: szPistol = "NONE";
case 1: szPistol = "Deagle";
case 2: szPistol = "Usp";
case 3: szPistol = "Glock";
}
#if defined EXP_SHOW
new exp = admin_expired(id);
if(exp > 0)
{
new systime = get_systime();
if(exp - systime > 0)
{
if((exp - systime) / 86400 > 0)
formatex(szTitle, charsmax(szTitle), "\w Осталось \y%d \wдней \rVIP\w-ки ^n^n", ((exp - systime) / 86400));
else formatex(szTitle, charsmax(szTitle), "\r Последний \wдень \rVIP\w-ки ^n^n");
}
}
else if(exp == 0)
formatex(szTitle, charsmax(szTitle), " \rVIP \w- Права \yбессрочны ^n^n");
#else
formatex(szTitle, charsmax(szTitle), "%L", id, "VIP_MENU", szName);
#endif
new i_Menu = menu_create(szTitle, "MainMenu_Handler", 1);

formatex(szMenuMulti, charsmax(szMenuMulti), "%L", id, "ITEM_MENU1", szPistol);
menu_additem(i_Menu, szMenuMulti, "1", 0);

formatex(szMenuMulti, charsmax(szMenuMulti), "%L", id, "ITEM_MENU2", szPistol);
menu_additem(i_Menu, szMenuMulti, "2", 0);

formatex(szMenuMulti, charsmax(szMenuMulti), "%L", id, "ITEM_MENU3", szPistol);
menu_additem(i_Menu, szMenuMulti, "3", 0);

formatex(szMenuMulti, charsmax(szMenuMulti), "%L", id, "ITEM_MENU4", szPistol);
menu_additem(i_Menu, szMenuMulti, "4", 0);

formatex(szMenuMulti, charsmax(szMenuMulti), "%L", id, "ITEM_MENU5", szPistol);
menu_additem(i_Menu, szMenuMulti, "5", 0);

menu_addblank(i_Menu, 0);

formatex(szMenuMulti, charsmax(szMenuMulti), "%L", id, "ITEM_MENU6");
menu_additem(i_Menu, szMenuMulti, "6", 0);

menu_addblank(i_Menu, 1);

menu_setprop(i_Menu, MPROP_EXITNAME, "Выход");
menu_display(id, i_Menu, 0);
}
else
{
if(cvar_round == 2)
{
ChatColor(id, "%L", id, "VIP_WARNING5", string, cvar_round);
return PLUGIN_HANDLED;
}
else
{
ChatColor(id, "%L", id, "VIP_WARNING1", string, cvar_round);
return PLUGIN_HANDLED;
}
}
}
else
ChatColor(id, "%L", id, "VIP_WARNING2", string);
}
else
ChatColor(id, "%L", id, "VIP_WARNING3", string);
}
else
ChatColor(id, "%L", id, "VIP_WARNING4", string);
}
return PLUGIN_HANDLED;
}
public MainMenu_Handler(id, iMenu, item){
if(item == MENU_EXIT)
{
menu_destroy(iMenu);

return PLUGIN_HANDLED;
}

new szData[6], szName[60], iAccess, iCallback;
menu_item_getinfo(iMenu, item, iAccess, szData, charsmax(szData), szName, charsmax(szName), iCallback);
get_user_name(id, szName, charsmax(szName));

new iKey = str_to_num(szData);
switch(iKey)
{
case 1:
{
vip_opened[id]++;
if(user_has_weapon(id, CSW_C4))
g_iPlayerBomb[id] = true;

GiveDefaultItems( id, g_iWeapon[id] );

fm_give_item(id, "weapon_m4a1");
cs_set_user_bpammo(id, CSW_M4A1, 90);

if(cvar_chat == 1)
ChatColor(0, "%L", id, "VIP_M4A1", string, szName);
}
case 2:
{
vip_opened[id]++;
if(user_has_weapon(id, CSW_C4))
g_iPlayerBomb[id] = true;
GiveDefaultItems( id, g_iWeapon[id] );

fm_give_item(id, "weapon_ak47");
cs_set_user_bpammo(id, CSW_AK47, 90);

if(cvar_chat == 1)
ChatColor(0, "%L", id, "VIP_AK47", string, szName);
}
case 3:
{
if(g_Round >= cvar_awplimit)
{
vip_opened[id]++;
if(user_has_weapon(id, CSW_C4))
g_iPlayerBomb[id] = true;
GiveDefaultItems( id, g_iWeapon[id] );

fm_give_item(id, "weapon_awp");
cs_set_user_bpammo(id, CSW_AWP, 30);

if(cvar_chat == 1)
ChatColor(0, "%L", id, "VIP_AWP", string, szName);
}
else ChatColor(id, "%L", id, "VIP_WARNING7", string, cvar_awplimit);
}
case 4:
{
vip_opened[id]++;
if(user_has_weapon(id, CSW_C4))
g_iPlayerBomb[id] = true;
GiveDefaultItems( id, g_iWeapon[id] );

fm_give_item(id, "weapon_famas");
cs_set_user_bpammo(id, CSW_FAMAS, 90);

if(cvar_chat == 1)
ChatColor(0, "%L", id, "VIP_FAMAS", string, szName);
}
case 5:
{
vip_opened[id]++;
if(user_has_weapon(id, CSW_C4))
g_iPlayerBomb[id] = true;
GiveDefaultItems( id, g_iWeapon[id] );

fm_give_item(id, "weapon_scout");
cs_set_user_bpammo(id, CSW_SCOUT, 90);

if(cvar_chat == 1)
ChatColor(0, "%L", id, "VIP_SCOUT", string, szName);
}
case 6:
{
FirstMenu(id);
}
}

menu_destroy(iMenu);
return PLUGIN_HANDLED;
}

public FirstMenu(id){
if(!is_user_connected(id))
return;

new i_Menu = menu_create("\rЧто вы предпочитаете?", "FirstMenu_Handler");

menu_additem(i_Menu, "\yDeagle", "1", 0);
menu_additem(i_Menu, "\yGlock", "2", 0);
menu_additem(i_Menu, "\rUsp", "3", 0);


menu_setprop(i_Menu, MPROP_EXITNAME, "Выход");
menu_display(id, i_Menu, 0);
}
public FirstMenu_Handler(id, iMenu, item){
if(item == MENU_EXIT)
{
menu_destroy(iMenu);
return PLUGIN_HANDLED;
}

new szData[6], szName[60], iAccess, iCallback;

menu_item_getinfo(iMenu, item, iAccess, szData, charsmax(szData), szName, charsmax(szName), iCallback);

new iKey = str_to_num(szData);

for(new i = 0; i < 6; i++)
fm_strip_user_gun(id, g_iPistols[i]);

switch(iKey)
{
case 1:
{
g_Chosen[id] = true;
g_iWeapon[id] = 1;
fm_give_item(id, "weapon_deagle");
cs_set_user_bpammo(id, CSW_DEAGLE, 35);
}
case 2:
{
g_Chosen[id] = true;
g_iWeapon[id] = 3;
fm_give_item(id, "weapon_glock18");
cs_set_user_bpammo(id, CSW_GLOCK18, 120);
}
case 3:
{
g_Chosen[id] = true;
g_iWeapon[id] = 2;
fm_give_item(id, "weapon_usp");
cs_set_user_bpammo(id, CSW_USP, 100);
}
}

menu_destroy(iMenu);
return PLUGIN_CONTINUE;
}

public msgScoreAttrib(const MsgId, const MsgType, const MsgDest){
if(cvar_tab)
{
if(IsUserCool(get_msg_arg_int(1)) && !get_msg_arg_int(2))
set_msg_arg_int(2, ARG_BYTE, VIP_TAG);
}
}

public vip_online(id){
g_iVip = 0;

new Len, message[512], name[32];
new iPlayer;

for(iPlayer = 1; iPlayer <= g_iMaxPlayers; iPlayer++)
{
if(IsUserCool(iPlayer))
{
g_iVip++;
get_user_name(iPlayer, name, charsmax(name));
if(g_iVip == 1)
Len += format(message[Len], 511 - Len, "%s", name);
else
Len += format(message[Len], 511 - Len, " , %s", name);
}
}
if(g_iVip < 1)
ChatColor(id, "%L", id, "VIP_ONLINE", string);
else
ChatColor(id, "%s: !t%s", string, message);
}

stock ChatColor(const id, const input[], any:...){
new iCount = 1, iPlayers[32];
static szMsg[191];
vformat(szMsg, 190, input, 3);

replace_all(szMsg, 190, "!g", "^4"); // Green Color
replace_all(szMsg, 190, "!y", "^1"); // Default Color
replace_all(szMsg, 190, "!t", "^3"); // Team Color

if (id) iPlayers[0] = id; else get_players(iPlayers, iCount, "ch");
{
for(new iPlayer = 0; iPlayer < iCount; iPlayer++ )
{
if( is_user_connected(iPlayers[iPlayer]) )
{
message_begin(MSG_ONE_UNRELIABLE, msgSayText, _, iPlayers[iPlayer]);
write_byte(iPlayers[iPlayer]);
write_string(szMsg);
message_end();
}
}
}
}
stock IsBlockMap(){
new got_line, line_num, len;
new cfgdir[MAX_TEXT_LENGTH];
new cfgpath[MAX_TEXT_LENGTH];
new mapname[MAX_NAME_LENGTH];
new txt[MAX_TEXT_LENGTH];

get_localinfo("amxx_configsdir", cfgdir, charsmax(cfgdir));
get_mapname(mapname, MAX_NAME_LENGTH-1);

format(cfgpath, MAX_TEXT_LENGTH, "%s/ideal_block_maps.ini", cfgdir);

if (file_exists(cfgpath))
{
got_line = read_file(cfgpath, line_num, txt, MAX_TEXT_LENGTH-1, len);
while (got_line>0)
{
if (equali(txt, mapname)) return 1;
line_num++;
got_line = read_file(cfgpath, line_num, txt, MAX_TEXT_LENGTH-1, len);
}
}
return 0;
}
stock bool: IsUserCool(const id){
if(!is_user_connected(id))
return false;

if((get_user_flags(id) & vip_flag))
return true;

return false;
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя soob
сообщение 11.7.2016, 4:40
Сообщение #5
Стаж: 11 лет

Сообщений: 1106
Благодарностей: 383
Полезность: 520

никто не знает в чём соль?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MrLegiongame
сообщение 11.7.2016, 13:22
Сообщение #6
Стаж: 11 лет

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

Цитата(soob @ 11.7.2016, 5:40) *
никто не знает в чём соль?
"
Я думаю что я знаю в чем проблема но чтобы быть уверен на 100% мне нужен файл "topawards.txt".
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя soob
сообщение 12.7.2016, 6:52
Сообщение #7
Стаж: 11 лет

Сообщений: 1106
Благодарностей: 383
Полезность: 520

Цитата(MrLegiongame @ 11.7.2016, 13:22) *
"
Я думаю что я знаю в чем проблема но чтобы быть уверен на 100% мне нужен файл "topawards.txt".


topawards.txt
Код:
[en]
TOP_AWARDS = [TOP] !gYou got !tVIP!g because you are in !tTOP%d!g the best players.

[ru]
TOP_AWARDS = [TOP] !gВам выдан !tVIP!g, потому что вы в !tTOP%d!g лучших игроков.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MrLegiongame
сообщение 12.7.2016, 15:38
Сообщение #8
Стаж: 11 лет

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

soob,
у меня плагин исправно работает.
Код:
/*
* 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", "r" )
}

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

i
Уведомление:
Для оформления кода используйте тег PAWN или CODE SPOILER


Отредактировал: iShot, - 12.7.2016, 17:38
Причина: Выдано устное предупреждение!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя soob
сообщение 13.7.2016, 7:01
Сообщение #9
Стаж: 11 лет

Сообщений: 1106
Благодарностей: 383
Полезность: 520

MrLegiongame, вместе с плагином VIP_IDEAL?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MrLegiongame
сообщение 13.7.2016, 17:06
Сообщение #10
Стаж: 11 лет

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

Цитата(soob @ 13.7.2016, 8:01) *
MrLegiongame, вместе с плагином VIP_IDEAL?

да.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя soob
сообщение 14.7.2016, 6:59
Сообщение #11
Стаж: 11 лет

Сообщений: 1106
Благодарностей: 383
Полезность: 520

Цитата(MrLegiongame @ 13.7.2016, 18:06) *
да.

попробую - отпишусь
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя soob
сообщение 14.7.2016, 14:32
Сообщение #12
Стаж: 11 лет

Сообщений: 1106
Благодарностей: 383
Полезность: 520

Проблема решена!
Плагин нужно ставить сразу после amxbans_main.amxx
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: