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

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

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

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

9 страниц V  « 3 4 5 ... 7 8 »

Best Player Private

Safety1st
сообщение 3.6.2014, 12:35
Сообщение #61
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

firante, чего?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя firante
сообщение 3.6.2014, 12:40
Сообщение #62


Стаж: 12 лет

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

Safety1st,
Как правильно прописать что-бы не работала на випов и админов так ADMIN_BAN | ADMIN_LEVEL_H ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sanek94
сообщение 3.6.2014, 13:05
Сообщение #63


Стаж: 12 лет

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

все отлично работает,тока можешь его изменить для меня?нужно сделать префикс [Сервер] и чтобы ник игрока выделялся цветом команды например как тут
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 3.6.2014, 13:15
Сообщение #64
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Цитата(firante @ 3.6.2014, 14:40) *
Как правильно прописать что-бы не работала на випов и админов так ADMIN_BAN | ADMIN_LEVEL_H ?

Вместо этих флагов укажи свои. Да, через палочку; можно 3 флага через 2 палочки ;)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя sanek94
сообщение 3.6.2014, 13:54
Сообщение #65


Стаж: 12 лет

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

Цитата(Safety1st @ 3.6.2014, 13:15) *
Вместо этих флагов укажи свои. Да, через палочку; можно 3 флага через 2 палочки ;)

все отлично работает,тока можешь его изменить для меня?нужно сделать префикс [Сервер] и чтобы ник игрока выделялся цветом команды например как тут

Отредактировал: sanek94, - 3.6.2014, 13:55
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя BornToBeFree
сообщение 3.6.2014, 14:23
Сообщение #66


Стаж: 12 лет

Сообщений: 741
Благодарностей: 287
Полезность: 602

Меценат Меценат

Цитата(Safety1st @ 3.6.2014, 14:07) *
Сделал маленькое обновление:
• убрано ограничение в 16000$. это критично, если на сервере лимит поднят модулем PatchMoney;
• более короткий вариант строки 'Лучшим за раунд оказался %s, он будет награждён ', помещается почти всегда.

Что означает данная ошибка при компиляции?

Отредактировал: ExTPuMaJI, - 3.6.2014, 14:24
Прикрепленные файлы:
Прикрепленное изображение


Скидка 5% при заказе сервера
Чтобы получить 5% скидку при заказе сервера на хостинге Serva4ok.ru
Необходимо ввести это кодовое слово gKUt-FENO-ZonE-aIaa
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 3.6.2014, 14:30
Сообщение #67


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

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

Размер массива маленький
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя BornToBeFree
сообщение 3.6.2014, 14:34
Сообщение #68


Стаж: 12 лет

Сообщений: 741
Благодарностей: 287
Полезность: 602

Меценат Меценат

Цитата(GOOD FELLOW @ 3.6.2014, 16:30) *
Размер массива маленький

Исправить как это?


Скидка 5% при заказе сервера
Чтобы получить 5% скидку при заказе сервера на хостинге Serva4ok.ru
Необходимо ввести это кодовое слово gKUt-FENO-ZonE-aIaa
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 3.6.2014, 14:45
Сообщение #69
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Цитата(ExTPuMaJI @ 3.6.2014, 16:23) *
Что означает данная ошибка при компиляции?

Означает 'не лезьте кривыми ручонками в исходник' ;)
В оригинале строка 124 - пуста. Значит, была кривая правка плагина.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя BornToBeFree
сообщение 3.6.2014, 14:54
Сообщение #70


Стаж: 12 лет

Сообщений: 741
Благодарностей: 287
Полезность: 602

Меценат Меценат

По-моему тут проблема в коде, ибо когда я заменяю строчку на 20, выдаёт ошибку

Код:
#define MAX_PLAYERS 20 // Максимальное кол-во игроков на сервере, заменить своим (по умолчанию 32)


Скидка 5% при заказе сервера
Чтобы получить 5% скидку при заказе сервера на хостинге Serva4ok.ru
Необходимо ввести это кодовое слово gKUt-FENO-ZonE-aIaa
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 3.6.2014, 15:06
Сообщение #71
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Цитата(ExTPuMaJI @ 3.6.2014, 16:54) *
По-моему тут проблема в коде, ибо когда я заменяю строчку на 20, выдаёт ошибку

Нет, дело не в этом.
Проверьте, какой именно исходник вы юзаете.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя BornToBeFree
сообщение 3.6.2014, 15:08
Сообщение #72


Стаж: 12 лет

Сообщений: 741
Благодарностей: 287
Полезность: 602

Меценат Меценат

Цитата(Safety1st @ 3.6.2014, 17:06) *
Проверьте, какой именно исходник вы юзаете

Из сообщения 59

Отредактировал: ExTPuMaJI, - 3.6.2014, 15:08


Скидка 5% при заказе сервера
Чтобы получить 5% скидку при заказе сервера на хостинге Serva4ok.ru
Необходимо ввести это кодовое слово gKUt-FENO-ZonE-aIaa
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя winzh1
сообщение 3.6.2014, 15:09
Сообщение #73


Стаж: 14 лет

Сообщений: 1414
Благодарностей: 600
Полезность: 838

Цитата(ExTPuMaJI @ 3.6.2014, 20:08) *
Из сообщения 59


Она пустая, на всякий случай, лучше, сделайте скриншот, что бы было понятно, что у Вас там.


Установлю и настрою FreshBans, DopBan.
Писать в ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя BornToBeFree
сообщение 3.6.2014, 15:22
Сообщение #74


Стаж: 12 лет

Сообщений: 741
Благодарностей: 287
Полезность: 602

Меценат Меценат

Качаю исходник из сообщения 59, открываю и изменяю только 2 цифры

Код:
#define MAX_PLAYERS 32 // Максимальное кол-во игроков на сервере, заменить своим (по умолчанию 32)

На

Код:
#define MAX_PLAYERS 20 // Максимальное кол-во игроков на сервере, заменить своим (по умолчанию 32)

Компилирую - выдаёт ошибку, с 32 нормально компилирует
Попробуйте сами скомпилировать с #define MAX_PLAYERS 20

Исходник
Код:
/**
* Modified by Safety1st
* 5/25/2014
*
* Changes are:
* • added EXCLUDE_FLAGS option;
* • proposed fix to always get the prise menu;
* • fix for buy menu overlapping;
* • added warning sound to attract 'best player' attention;
* • prise menu is shown only during 15 seconds;
* • removed max money amount limiting
* • a few minor optimizations.
*/

#include <amxmodx>
#include <cstrike>
#include <fun>
#include <hamsandwich>

// customizable parameters
#define MAX_PLAYERS 20 // Максимальное кол-во игроков на сервере, заменить своим (по умолчанию 32)
#define MIN_PLAYERS 6 // Минимальное кол-во игроков, присутствующих на сервере, необходимое для работы плагина (по умолчанию 2)
#define ROUND_NUM 3 // Порядковый номер раунда от момента начала игры, с которого плагин будет работать (по умолчанию 3)
#define MIN_MONEY 200 // Минимальное кол-во призовых у.е., которое может получить игрок (по умолчанию 200)
#define MAX_MONEY 5000 // Максимальное кол-во призовых у.е., которое может получить игрок (по умолчанию 5000)
#define EXCLUDE_FLAGS ADMIN_LEVEL_H // uncomment to exclude players with certain flags; by default it is flag 't'
// end of customizable parameters

#pragma semicolon 1

#if AMXX_VERSION_NUM < 183
#define MENU_FIX // fix for AMXX menus, more info here: https://bugs.alliedmods.net/show_bug.cgi?id=4778
#include <fakemeta>
const m_iMenu = 205; // cbaseplayer offset
#endif

#define MENU_KEYS (MENU_KEY_1|MENU_KEY_2)
#define PRIMARY_WEAPONS (1<<CSW_SCOUT|1<<CSW_XM1014|1<<CSW_MAC10|1<<CSW_AUG|1<<CSW_UMP45|1<<CSW_SG550|1<<CSW_GALIL|1<<CSW_FAMAS|1<<CSW_AWP|1<<CSW_MP5NAVY|1<<CSW_M249|1<<CSW_M3|1<<CSW_M4A1|1<<CSW_TMP|1<<CSW_G3SG1|1<<CSW_SG552|1<<CSW_AK47|1<<CSW_P90)
#define SECONDARY_WEAPONS (1<<CSW_P228|1<<CSW_ELITE|1<<CSW_FIVESEVEN|1<<CSW_USP|1<<CSW_GLOCK18|1<<CSW_DEAGLE)

enum _:WEAPON_DATA_SIZE
{
Data_Name[32],
Data_Item[24],
Data_Index,
Data_Ammo
};

new g_Data[][WEAPON_DATA_SIZE] =
{
{"IMI Galil", "weapon_galil", CSW_GALIL, 90},
{"GIAT FAMAS", "weapon_famas", CSW_FAMAS, 90},
{"AK-47", "weapon_ak47", CSW_AK47, 90},
{"Colt M4A1", "weapon_m4a1", CSW_M4A1, 90},
{"Steyr Scout", "weapon_scout", CSW_SCOUT, 90},
{"AI Arctic Warfare Magnum", "weapon_awp", CSW_AWP, 30},
{"FN Minimi M249 Para", "weapon_m249", CSW_M249, 200},
{"Desert Eagle", "weapon_deagle", CSW_DEAGLE, 35}
};

new g_iPlayerFrags[MAX_PLAYERS + 1];
new g_iPlayerDamage[MAX_PLAYERS + 1];
new g_iPlayers[MAX_PLAYERS];
new g_iPlayersNum;
new g_szBestPlayerName[32];
new g_iBestPlayer;
new g_iRandomPrise;
new g_iRoundCounter;
new g_iResetSize;

public plugin_init()
{
register_plugin("Best Player", "0.2a", "Subb98");

register_event("HLTV", "EventNewRound", "a", "1=0", "2=0");
register_event("Damage", "EventDamage", "b", "2!0", "3=0", "4!0");
register_event("DeathMsg", "EventDeathMsg", "a", "1>0");

register_logevent( "EventNewGame", 2, "0=World triggered", "1&Restart_Round_", "1=Game_Commencing" );
register_logevent( "EventRoundStart", 2, "0=World triggered", "1=Round_Start" );
register_logevent( "EventRoundEnd", 2, "1=Round_End" );

RegisterHam( Ham_Spawn, "player", "Fwd_HamPlayerSpawn_Post", .Post = 1 );

register_menucmd(register_menuid("Prise_Menu"), MENU_KEYS, "HandleMenu");

g_iResetSize = get_maxplayers() + 1;
}

public plugin_cfg()
{
new const szDisableMapTypes[][] = {"35hp_", "ka_"}; // Типы карт, на которых плагин не будет работать
new szMapname[32];
get_mapname(szMapname, charsmax(szMapname));
for(new i; i < sizeof szDisableMapTypes; i++)
if(equali(szMapname, szDisableMapTypes[i], strlen(szDisableMapTypes[i]))) pause("ad");
}

public EventNewRound() {
g_iRoundCounter++;
Reset();
}

public EventNewGame()
g_iRoundCounter = 0;


public EventRoundStart()
g_iBestPlayer = 0;

public EventDamage(const id)
{
static pAttacker; pAttacker = get_user_attacker(id);
if(is_user_connected(pAttacker) && cs_get_user_team(pAttacker) != cs_get_user_team(id) && pAttacker != id) g_iPlayerDamage[pAttacker] += read_data(2) /* DamageTake */;
}

public EventDeathMsg()
g_iPlayerFrags[ read_data(1) /* killer */ ]++;

public EventRoundEnd()
{
if( g_iRoundCounter < ROUND_NUM || get_playersnum() < MIN_PLAYERS )
return;

new id, i, iFrags, iBestPlayerFrags, iCount;
get_players(g_iPlayers, g_iPlayersNum, "ch"); // except bots & hltv

for( i = 0; i < g_iPlayersNum; i++ ) {
id = g_iPlayers[i];

#if defined EXCLUDE_FLAGS
if( get_user_flags(id) & EXCLUDE_FLAGS )
continue;
#endif

iFrags = g_iPlayerFrags[id];

if( !iFrags || iFrags < iBestPlayerFrags )
continue;

if( iFrags > iBestPlayerFrags ) {
g_iBestPlayer = id;
iBestPlayerFrags = iFrags;
iCount = 0;
}

g_iPlayers[iCount++] = id;
}

// in case there are some players with the same frags count
for( i = 1; i < iCount; i++ ) {
id = g_iPlayers[i];
if(g_iPlayerDamage[id] > g_iPlayerDamage[g_iBestPlayer])
g_iBestPlayer = id;
}

if(g_iBestPlayer)
{
get_user_name(g_iBestPlayer, g_szBestPlayerName, charsmax(g_szBestPlayerName));
client_print(0, print_chat, "Лучшим за раунд оказался %s, он будет награждён", g_szBestPlayerName);
}
}

public Fwd_HamPlayerSpawn_Post(id) {
if( !is_user_alive(id) || id != g_iBestPlayer )
return;

ShowMenu(id);
static szWarnSound[] = "buttons/blip2";
client_cmd( id, "spk ^"%s^"", szWarnSound );
}

Reset() {
arrayset( g_iPlayerFrags, 0, g_iResetSize );
arrayset( g_iPlayerDamage, 0, g_iResetSize );
}

ShowMenu(const id)
{
new szMenu[256], szRandomPrise[34];
g_iRandomPrise = random_num(0, 3);
switch(g_iRandomPrise)
{
case 0: add(szRandomPrise, charsmax(szRandomPrise), "оружие");
case 1: add(szRandomPrise, charsmax(szRandomPrise), "набор гранат");
case 2: add(szRandomPrise, charsmax(szRandomPrise), "бронежилет и шлем");
case 3: add(szRandomPrise, charsmax(szRandomPrise), "деньги");
}
formatex(szMenu, charsmax(szMenu), "\yВаш приз - %s^n^n1. \wВзять приз^n\y2. \wОтказаться от приза", szRandomPrise);

#if defined MENU_FIX
set_pdata_int( id, m_iMenu, 0 );
#endif

show_menu(id, MENU_KEYS, szMenu, 15, "Prise_Menu");
}

public HandleMenu(const id, const iKey)
{
switch(iKey)
{
case 0: GiveRandomPrise(id);
case 1: client_print(0, print_chat, "%s отказался от приза", g_szBestPlayerName);
}
}

GiveRandomPrise(const id)
{
switch(g_iRandomPrise)
{
case 0: GiveRandomWeapon(id);
case 1:
{
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_smokegrenade");
cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
client_print(0, print_chat, "%s взял приз - набор гранат", g_szBestPlayerName);
}
case 2:
{
cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);
client_print(0, print_chat, "%s взял приз - бронежилет и шлем", g_szBestPlayerName);
}
case 3:
{
new iMoney = random_num(MIN_MONEY, MAX_MONEY);
cs_set_user_money(id, cs_get_user_money(id) + iMoney);
client_print(0, print_chat, "%s взял приз - $%d", g_szBestPlayerName, iMoney);
}
}
}

GiveRandomWeapon(const id)
{
new iNum = random_num(0, charsmax(g_Data));
DropWeapon(id, iNum);
give_item(id, g_Data[iNum][Data_Item]);
cs_set_user_bpammo(id, g_Data[iNum][Data_Index], g_Data[iNum][Data_Ammo]);
client_print(0, print_chat, "%s взял приз - %s", g_szBestPlayerName, g_Data[iNum][Data_Name]);
}

DropWeapon(const id, const iType)
{
new iWeapons[32], iWeponsNum;
get_user_weapons(id, iWeapons, iWeponsNum);
for(new i; i < iWeponsNum; i++)
{
if((iType == charsmax(g_Data) ? (SECONDARY_WEAPONS & (1<<iWeapons[i])) : (PRIMARY_WEAPONS & (1<<iWeapons[i]))))
{
new szWeaponName[24];
get_weaponname(iWeapons[i], szWeaponName, charsmax(szWeaponName));
engclient_cmd(id, "drop", szWeaponName);
}
}
}

Прикрепленные файлы:
Прикрепленное изображение


Скидка 5% при заказе сервера
Чтобы получить 5% скидку при заказе сервера на хостинге Serva4ok.ru
Необходимо ввести это кодовое слово gKUt-FENO-ZonE-aIaa
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя winzh1
сообщение 3.6.2014, 15:27
Сообщение #75


Стаж: 14 лет

Сообщений: 1414
Благодарностей: 600
Полезность: 838

Цитата(ExTPuMaJI @ 3.6.2014, 20:22) *
Качаю исходник из сообщения 59, открываю и изменяю только 2 цифры

Код:
#define MAX_PLAYERS 32 // Максимальное кол-во игроков на сервере, заменить своим (по умолчанию 32)

На

Код:
#define MAX_PLAYERS 20 // Максимальное кол-во игроков на сервере, заменить своим (по умолчанию 32)

Компилирую - выдаёт ошибку, с 32 нормально компилирует
Попробуйте сами скомпилировать с #define MAX_PLAYERS 20

Исходник
Код:
/**
* Modified by Safety1st
* 5/25/2014
*
* Changes are:
* • added EXCLUDE_FLAGS option;
* • proposed fix to always get the prise menu;
* • fix for buy menu overlapping;
* • added warning sound to attract 'best player' attention;
* • prise menu is shown only during 15 seconds;
* • removed max money amount limiting
* • a few minor optimizations.
*/

#include <amxmodx>
#include <cstrike>
#include <fun>
#include <hamsandwich>

// customizable parameters
#define MAX_PLAYERS 20 // Максимальное кол-во игроков на сервере, заменить своим (по умолчанию 32)
#define MIN_PLAYERS 6 // Минимальное кол-во игроков, присутствующих на сервере, необходимое для работы плагина (по умолчанию 2)
#define ROUND_NUM 3 // Порядковый номер раунда от момента начала игры, с которого плагин будет работать (по умолчанию 3)
#define MIN_MONEY 200 // Минимальное кол-во призовых у.е., которое может получить игрок (по умолчанию 200)
#define MAX_MONEY 5000 // Максимальное кол-во призовых у.е., которое может получить игрок (по умолчанию 5000)
#define EXCLUDE_FLAGS ADMIN_LEVEL_H // uncomment to exclude players with certain flags; by default it is flag 't'
// end of customizable parameters

#pragma semicolon 1

#if AMXX_VERSION_NUM < 183
#define MENU_FIX // fix for AMXX menus, more info here: https://bugs.alliedmods.net/show_bug.cgi?id=4778
#include <fakemeta>
const m_iMenu = 205; // cbaseplayer offset
#endif

#define MENU_KEYS (MENU_KEY_1|MENU_KEY_2)
#define PRIMARY_WEAPONS (1<<CSW_SCOUT|1<<CSW_XM1014|1<<CSW_MAC10|1<<CSW_AUG|1<<CSW_UMP45|1<<CSW_SG550|1<<CSW_GALIL|1<<CSW_FAMAS|1<<CSW_AWP|1<<CSW_MP5NAVY|1<<CSW_M249|1<<CSW_M3|1<<CSW_M4A1|1<<CSW_TMP|1<<CSW_G3SG1|1<<CSW_SG552|1<<CSW_AK47|1<<CSW_P90)
#define SECONDARY_WEAPONS (1<<CSW_P228|1<<CSW_ELITE|1<<CSW_FIVESEVEN|1<<CSW_USP|1<<CSW_GLOCK18|1<<CSW_DEAGLE)

enum _:WEAPON_DATA_SIZE
{
Data_Name[32],
Data_Item[24],
Data_Index,
Data_Ammo
};

new g_Data[][WEAPON_DATA_SIZE] =
{
{"IMI Galil", "weapon_galil", CSW_GALIL, 90},
{"GIAT FAMAS", "weapon_famas", CSW_FAMAS, 90},
{"AK-47", "weapon_ak47", CSW_AK47, 90},
{"Colt M4A1", "weapon_m4a1", CSW_M4A1, 90},
{"Steyr Scout", "weapon_scout", CSW_SCOUT, 90},
{"AI Arctic Warfare Magnum", "weapon_awp", CSW_AWP, 30},
{"FN Minimi M249 Para", "weapon_m249", CSW_M249, 200},
{"Desert Eagle", "weapon_deagle", CSW_DEAGLE, 35}
};

new g_iPlayerFrags[MAX_PLAYERS + 1];
new g_iPlayerDamage[MAX_PLAYERS + 1];
new g_iPlayers[MAX_PLAYERS];
new g_iPlayersNum;
new g_szBestPlayerName[32];
new g_iBestPlayer;
new g_iRandomPrise;
new g_iRoundCounter;
new g_iResetSize;

public plugin_init()
{
register_plugin("Best Player", "0.2a", "Subb98");

register_event("HLTV", "EventNewRound", "a", "1=0", "2=0");
register_event("Damage", "EventDamage", "b", "2!0", "3=0", "4!0");
register_event("DeathMsg", "EventDeathMsg", "a", "1>0");

register_logevent( "EventNewGame", 2, "0=World triggered", "1&Restart_Round_", "1=Game_Commencing" );
register_logevent( "EventRoundStart", 2, "0=World triggered", "1=Round_Start" );
register_logevent( "EventRoundEnd", 2, "1=Round_End" );

RegisterHam( Ham_Spawn, "player", "Fwd_HamPlayerSpawn_Post", .Post = 1 );

register_menucmd(register_menuid("Prise_Menu"), MENU_KEYS, "HandleMenu");

g_iResetSize = get_maxplayers() + 1;
}

public plugin_cfg()
{
new const szDisableMapTypes[][] = {"35hp_", "ka_"}; // Типы карт, на которых плагин не будет работать
new szMapname[32];
get_mapname(szMapname, charsmax(szMapname));
for(new i; i < sizeof szDisableMapTypes; i++)
if(equali(szMapname, szDisableMapTypes[i], strlen(szDisableMapTypes[i]))) pause("ad");
}

public EventNewRound() {
g_iRoundCounter++;
Reset();
}

public EventNewGame()
g_iRoundCounter = 0;


public EventRoundStart()
g_iBestPlayer = 0;

public EventDamage(const id)
{
static pAttacker; pAttacker = get_user_attacker(id);
if(is_user_connected(pAttacker) && cs_get_user_team(pAttacker) != cs_get_user_team(id) && pAttacker != id) g_iPlayerDamage[pAttacker] += read_data(2) /* DamageTake */;
}

public EventDeathMsg()
g_iPlayerFrags[ read_data(1) /* killer */ ]++;

public EventRoundEnd()
{
if( g_iRoundCounter < ROUND_NUM || get_playersnum() < MIN_PLAYERS )
return;

new id, i, iFrags, iBestPlayerFrags, iCount;
get_players(g_iPlayers, g_iPlayersNum, "ch"); // except bots & hltv

for( i = 0; i < g_iPlayersNum; i++ ) {
id = g_iPlayers[i];

#if defined EXCLUDE_FLAGS
if( get_user_flags(id) & EXCLUDE_FLAGS )
continue;
#endif

iFrags = g_iPlayerFrags[id];

if( !iFrags || iFrags < iBestPlayerFrags )
continue;

if( iFrags > iBestPlayerFrags ) {
g_iBestPlayer = id;
iBestPlayerFrags = iFrags;
iCount = 0;
}

g_iPlayers[iCount++] = id;
}

// in case there are some players with the same frags count
for( i = 1; i < iCount; i++ ) {
id = g_iPlayers[i];
if(g_iPlayerDamage[id] > g_iPlayerDamage[g_iBestPlayer])
g_iBestPlayer = id;
}

if(g_iBestPlayer)
{
get_user_name(g_iBestPlayer, g_szBestPlayerName, charsmax(g_szBestPlayerName));
client_print(0, print_chat, "Лучшим за раунд оказался %s, он будет награждён", g_szBestPlayerName);
}
}

public Fwd_HamPlayerSpawn_Post(id) {
if( !is_user_alive(id) || id != g_iBestPlayer )
return;

ShowMenu(id);
static szWarnSound[] = "buttons/blip2";
client_cmd( id, "spk ^"%s^"", szWarnSound );
}

Reset() {
arrayset( g_iPlayerFrags, 0, g_iResetSize );
arrayset( g_iPlayerDamage, 0, g_iResetSize );
}

ShowMenu(const id)
{
new szMenu[256], szRandomPrise[34];
g_iRandomPrise = random_num(0, 3);
switch(g_iRandomPrise)
{
case 0: add(szRandomPrise, charsmax(szRandomPrise), "оружие");
case 1: add(szRandomPrise, charsmax(szRandomPrise), "набор гранат");
case 2: add(szRandomPrise, charsmax(szRandomPrise), "бронежилет и шлем");
case 3: add(szRandomPrise, charsmax(szRandomPrise), "деньги");
}
formatex(szMenu, charsmax(szMenu), "\yВаш приз - %s^n^n1. \wВзять приз^n\y2. \wОтказаться от приза", szRandomPrise);

#if defined MENU_FIX
set_pdata_int( id, m_iMenu, 0 );
#endif

show_menu(id, MENU_KEYS, szMenu, 15, "Prise_Menu");
}

public HandleMenu(const id, const iKey)
{
switch(iKey)
{
case 0: GiveRandomPrise(id);
case 1: client_print(0, print_chat, "%s отказался от приза", g_szBestPlayerName);
}
}

GiveRandomPrise(const id)
{
switch(g_iRandomPrise)
{
case 0: GiveRandomWeapon(id);
case 1:
{
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_smokegrenade");
cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
client_print(0, print_chat, "%s взял приз - набор гранат", g_szBestPlayerName);
}
case 2:
{
cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);
client_print(0, print_chat, "%s взял приз - бронежилет и шлем", g_szBestPlayerName);
}
case 3:
{
new iMoney = random_num(MIN_MONEY, MAX_MONEY);
cs_set_user_money(id, cs_get_user_money(id) + iMoney);
client_print(0, print_chat, "%s взял приз - $%d", g_szBestPlayerName, iMoney);
}
}
}

GiveRandomWeapon(const id)
{
new iNum = random_num(0, charsmax(g_Data));
DropWeapon(id, iNum);
give_item(id, g_Data[iNum][Data_Item]);
cs_set_user_bpammo(id, g_Data[iNum][Data_Index], g_Data[iNum][Data_Ammo]);
client_print(0, print_chat, "%s взял приз - %s", g_szBestPlayerName, g_Data[iNum][Data_Name]);
}

DropWeapon(const id, const iType)
{
new iWeapons[32], iWeponsNum;
get_user_weapons(id, iWeapons, iWeponsNum);
for(new i; i < iWeponsNum; i++)
{
if((iType == charsmax(g_Data) ? (SECONDARY_WEAPONS & (1<<iWeapons[i])) : (PRIMARY_WEAPONS & (1<<iWeapons[i]))))
{
new szWeaponName[24];
get_weaponname(iWeapons[i], szWeaponName, charsmax(szWeaponName));
engclient_cmd(id, "drop", szWeaponName);
}
}
}

Я имел ввиду скриншот исходника, 124 стоки, у меня при
Код:
#define MAX_PLAYERS 20

ругается на строку 126, а не 124
Код:
	get_players(g_iPlayers, g_iPlayersNum, "ch");	// except bots & hltv


Установлю и настрою FreshBans, DopBan.
Писать в ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя BornToBeFree
сообщение 3.6.2014, 15:29
Сообщение #76


Стаж: 12 лет

Сообщений: 741
Благодарностей: 287
Полезность: 602

Меценат Меценат

Цитата(winzh1 @ 3.6.2014, 17:27) *
Я имел ввиду скриншот исходника

Прикрепил выше исходник

Код:
/**
*   Modified by Safety1st
*     5/25/2014
*
*   Changes are:
*   • added EXCLUDE_FLAGS option;
*   • proposed fix to always get the prise menu;
*   • fix for buy menu overlapping;
*   • added warning sound to attract 'best player' attention;
*   • prise menu is shown only during 15 seconds;
*   • removed max money amount limiting
*   • a few minor optimizations.
*/
 
#include <amxmodx>
#include <cstrike>
#include <fun>
#include <hamsandwich>
 
// customizable parameters
#define MAX_PLAYERS 20 // Максимальное кол-во игроков на сервере, заменить своим (по умолчанию 32)
#define MIN_PLAYERS 6 // Минимальное кол-во игроков, присутствующих на сервере, необходимое для работы плагина (по умолчанию 2)
#define ROUND_NUM 3 // Порядковый номер раунда от момента начала игры, с которого плагин будет работать (по умолчанию 3)
#define MIN_MONEY 200 // Минимальное кол-во призовых у.е., которое может получить игрок (по умолчанию 200)
#define MAX_MONEY 5000 // Максимальное кол-во призовых у.е., которое может получить игрок (по умолчанию 5000)
#define EXCLUDE_FLAGS ADMIN_LEVEL_H   // uncomment to exclude players with certain flags; by default it is flag 't'
// end of customizable parameters
 
#pragma semicolon 1
 
#if AMXX_VERSION_NUM < 183
   #define MENU_FIX   // fix for AMXX menus, more info here: <a href="https://c-s.net.ua/url?u=https%3A%2F%2Fbugs.alliedmods.net%2Fshow_bug.cgi%3Fid%3D4778" target="_blank">https://bugs.alliedmods.net/show_bug.cgi?id=4778</a>
   #include <fakemeta>
   const m_iMenu = 205;   // cbaseplayer offset
#endif
 
#define MENU_KEYS (MENU_KEY_1|MENU_KEY_2)
#define PRIMARY_WEAPONS (1<<CSW_SCOUT|1<<CSW_XM1014|1<<CSW_MAC10|1<<CSW_AUG|1<<CSW_UMP45|1<<CSW_SG550|1<<CSW_GALIL|1<<CSW_FAMAS|1<<CSW_AWP|1<<CSW_MP5NAVY|1<<CSW_M249|1<<CSW_M3|1<<CSW_M4A1|1<<CSW_TMP|1<<CSW_G3SG1|1<<CSW_SG552|1<<CSW_AK47|1<<CSW_P90)
#define SECONDARY_WEAPONS (1<<CSW_P228|1<<CSW_ELITE|1<<CSW_FIVESEVEN|1<<CSW_USP|1<<CSW_GLOCK18|1<<CSW_DEAGLE)
 
enum _:WEAPON_DATA_SIZE
{
   Data_Name[32],
   Data_Item[24],
   Data_Index,
   Data_Ammo
};
 
new g_Data[][WEAPON_DATA_SIZE] =
{
   {"IMI Galil", "weapon_galil", CSW_GALIL, 90},
   {"GIAT FAMAS", "weapon_famas", CSW_FAMAS, 90},
   {"AK-47", "weapon_ak47", CSW_AK47, 90},
   {"Colt M4A1", "weapon_m4a1", CSW_M4A1, 90},
   {"Steyr Scout", "weapon_scout", CSW_SCOUT, 90},
   {"AI Arctic Warfare Magnum", "weapon_awp", CSW_AWP, 30},
   {"FN Minimi M249 Para", "weapon_m249", CSW_M249, 200},
   {"Desert Eagle", "weapon_deagle", CSW_DEAGLE, 35}
};
 
new g_iPlayerFrags[MAX_PLAYERS + 1];
new g_iPlayerDamage[MAX_PLAYERS + 1];
new g_iPlayers[MAX_PLAYERS];
new g_iPlayersNum;
new g_szBestPlayerName[32];
new g_iBestPlayer;
new g_iRandomPrise;
new g_iRoundCounter;
new g_iResetSize;
 
public plugin_init()
{
   register_plugin("Best Player", "0.2a", "Subb98");
 
   register_event("HLTV", "EventNewRound", "a", "1=0", "2=0");
   register_event("Damage", "EventDamage", "b", "2!0", "3=0", "4!0");
   register_event("DeathMsg", "EventDeathMsg", "a", "1>0");
 
   register_logevent( "EventNewGame", 2, "0=World triggered", "1&Restart_Round_", "1=Game_Commencing" );
   register_logevent( "EventRoundStart", 2, "0=World triggered", "1=Round_Start" );
   register_logevent( "EventRoundEnd", 2, "1=Round_End" );
 
   RegisterHam( Ham_Spawn, "player", "Fwd_HamPlayerSpawn_Post", .Post = 1 );
 
   register_menucmd(register_menuid("Prise_Menu"), MENU_KEYS, "HandleMenu");
 
   g_iResetSize = get_maxplayers() + 1;
}
 
public plugin_cfg()
{
   new const szDisableMapTypes[][] = {"35hp_", "ka_"}; // Типы карт, на которых плагин не будет работать
   new szMapname[32];
   get_mapname(szMapname, charsmax(szMapname));
   for(new i; i < sizeof szDisableMapTypes; i++)
      if(equali(szMapname, szDisableMapTypes[i], strlen(szDisableMapTypes[i]))) pause("ad");
}
 
public EventNewRound() {
   g_iRoundCounter++;
   Reset();
}
 
public EventNewGame()
   g_iRoundCounter = 0;
 
 
public EventRoundStart()
   g_iBestPlayer = 0;
 
public EventDamage(const id)
{
   static pAttacker; pAttacker = get_user_attacker(id);
   if(is_user_connected(pAttacker) && cs_get_user_team(pAttacker) != cs_get_user_team(id) && pAttacker != id) g_iPlayerDamage[pAttacker] += read_data(2) /* DamageTake */;
}
 
public EventDeathMsg()
   g_iPlayerFrags[ read_data(1) /* killer */ ]++;
 
public EventRoundEnd()
{
   if( g_iRoundCounter < ROUND_NUM || get_playersnum() < MIN_PLAYERS )
      return;
 
   new id, i, iFrags, iBestPlayerFrags, iCount;
   get_players(g_iPlayers, g_iPlayersNum, "ch");   // except bots & hltv
 
   for( i = 0; i < g_iPlayersNum; i++ ) {
      id = g_iPlayers[i];
 
#if defined EXCLUDE_FLAGS
      if( get_user_flags(id) & EXCLUDE_FLAGS )
         continue;
#endif
 
      iFrags = g_iPlayerFrags[id];
 
      if( !iFrags || iFrags < iBestPlayerFrags )
         continue;
 
      if( iFrags > iBestPlayerFrags ) {
         g_iBestPlayer = id;
         iBestPlayerFrags = iFrags;
         iCount = 0;
      }
 
      g_iPlayers[iCount++] = id;
   }
 
   // in case there are some players with the same frags count
   for( i = 1; i < iCount; i++ ) {
      id = g_iPlayers[i];
      if(g_iPlayerDamage[id] > g_iPlayerDamage[g_iBestPlayer])
         g_iBestPlayer = id;
   }
 
   if(g_iBestPlayer)
   {
      get_user_name(g_iBestPlayer, g_szBestPlayerName, charsmax(g_szBestPlayerName));
      client_print(0, print_chat, "Лучшим за раунд оказался %s, он будет награждён", g_szBestPlayerName);
   }
}
 
public Fwd_HamPlayerSpawn_Post(id) {
   if( !is_user_alive(id) || id != g_iBestPlayer )
      return;
 
   ShowMenu(id);
   static szWarnSound[] = "buttons/blip2";
   client_cmd( id, "spk ^"%s^"", szWarnSound );
}
 
Reset() {
   arrayset( g_iPlayerFrags, 0, g_iResetSize );
   arrayset( g_iPlayerDamage, 0, g_iResetSize );
}
 
ShowMenu(const id)
{
   new szMenu[256], szRandomPrise[34];
   g_iRandomPrise = random_num(0, 3);
   switch(g_iRandomPrise)
   {
      case 0: add(szRandomPrise, charsmax(szRandomPrise), "оружие");
      case 1: add(szRandomPrise, charsmax(szRandomPrise), "набор гранат");
      case 2: add(szRandomPrise, charsmax(szRandomPrise), "бронежилет и шлем");
      case 3: add(szRandomPrise, charsmax(szRandomPrise), "деньги");
   }
   formatex(szMenu, charsmax(szMenu), "\yВаш приз - %s^n^n1. \wВзять приз^n\y2. \wОтказаться от приза", szRandomPrise);
 
#if defined MENU_FIX
   set_pdata_int( id, m_iMenu, 0 );
#endif
 
   show_menu(id, MENU_KEYS, szMenu, 15, "Prise_Menu");
}
 
public HandleMenu(const id, const iKey)
{
   switch(iKey)
   {
      case 0: GiveRandomPrise(id);
      case 1: client_print(0, print_chat, "%s отказался от приза", g_szBestPlayerName);
   }
}
 
GiveRandomPrise(const id)
{
   switch(g_iRandomPrise)
   {
      case 0: GiveRandomWeapon(id);
      case 1:
      {
         give_item(id, "weapon_hegrenade");
         give_item(id, "weapon_flashbang");
         give_item(id, "weapon_smokegrenade");
         cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
         client_print(0, print_chat, "%s взял приз - набор гранат", g_szBestPlayerName);
      }
      case 2:
      {
         cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);
         client_print(0, print_chat, "%s взял приз - бронежилет и шлем", g_szBestPlayerName);
      }
      case 3:
      {
         new iMoney = random_num(MIN_MONEY, MAX_MONEY);
         cs_set_user_money(id, cs_get_user_money(id) + iMoney);
         client_print(0, print_chat, "%s взял приз - $%d", g_szBestPlayerName, iMoney);
      }
   }
}
 
GiveRandomWeapon(const id)
{
   new iNum = random_num(0, charsmax(g_Data));
   DropWeapon(id, iNum);
   give_item(id, g_Data[iNum][Data_Item]);
   cs_set_user_bpammo(id, g_Data[iNum][Data_Index], g_Data[iNum][Data_Ammo]);
   client_print(0, print_chat, "%s взял приз - %s", g_szBestPlayerName, g_Data[iNum][Data_Name]);
}
 
DropWeapon(const id, const iType)
{
   new iWeapons[32], iWeponsNum;
   get_user_weapons(id, iWeapons, iWeponsNum);
   for(new i; i < iWeponsNum; i++)
   {
      if((iType == charsmax(g_Data) ? (SECONDARY_WEAPONS & (1<<iWeapons[i])) : (PRIMARY_WEAPONS & (1<<iWeapons[i]))))
      {
         new szWeaponName[24];
         get_weaponname(iWeapons[i], szWeaponName, charsmax(szWeaponName));
         engclient_cmd(id, "drop", szWeaponName);
      }
   }
}


Скидка 5% при заказе сервера
Чтобы получить 5% скидку при заказе сервера на хостинге Serva4ok.ru
Необходимо ввести это кодовое слово gKUt-FENO-ZonE-aIaa
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 3.6.2014, 15:42
Сообщение #77
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

ExTPuMaJI, всё, понял. И правда косяк. Радует, что не мой crazy.gif
Спасибо! good.gif

Исправленная версия прикреплена на прежнем месте - к посту #59.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
ham1k
сообщение 3.6.2014, 16:29
Сообщение #78
Стаж: 12 лет

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

Ку всем ,что тут надо изменить чтоб с ошибкой не выкидывало игроков ?Ошибка ренебл ..
Прикрепленные файлы:
Прикрепленный файл  best_player.sma ( 8,31 килобайт ) Кол-во скачиваний: 9
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
ham1k
сообщение 3.6.2014, 17:35
Сообщение #79
Стаж: 12 лет

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

Цитата(ham1k @ 3.6.2014, 16:29) *
Ку всем ,что тут надо изменить чтоб с ошибкой не выкидывало игроков ?Ошибка ренебл ..

Safety1st помоги )
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя BornToBeFree
сообщение 3.6.2014, 18:07
Сообщение #80


Стаж: 12 лет

Сообщений: 741
Благодарностей: 287
Полезность: 602

Меценат Меценат

Плагин для паблика вообще норм?

ps.gif Хотелось бы ещё увидеть скриншот меню, как оно выглядит...


Скидка 5% при заказе сервера
Чтобы получить 5% скидку при заказе сервера на хостинге Serva4ok.ru
Необходимо ввести это кодовое слово gKUt-FENO-ZonE-aIaa
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
9 страниц V  « 3 4 5 ... 7 8 »
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: