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

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

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

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

9 страниц V  « 7 8 9

Best Player Private

Статус пользователя Bloo
сообщение 26.8.2014, 20:44
Сообщение #141


Стаж: 10 лет

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

DeNyS91, я уже выкладывал скомпиленный из этого поста плагин https://c-s.net.ua/forum/ipb.html?s=&sh...st&p=637592
http://aghl.ru/webcompiler/webcompiler.php...ame=best_player
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя cyber1741
сообщение 2.9.2014, 20:49
Сообщение #142


Стаж: 11 лет

Сообщений: 1473
Благодарностей: 222
Полезность: 95

L 09/01/2014 - 23:18:39: [AMXX] Run time error 4 (plugin "best_player.amxx") - debug not enabled!
L 09/01/2014 - 23:18:39: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 2.9.2014, 20:56
Сообщение #143


Стаж: 10 лет

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

cyber1741, с дебагом ошибки пишите всегда, без дебага от них нет толку.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 9art
сообщение 2.9.2014, 21:03
Сообщение #144


Стаж: 10 лет

Сообщений: 991
Благодарностей: 534
Полезность: 843

Цитата(DeNyS91 @ 26.8.2014, 22:33) *
в чате практически как у cyber1741 отображает иэроглифами.

Обновил пост #113. Теперь отображается нормально.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя cyber1741
сообщение 3.9.2014, 18:09
Сообщение #145


Стаж: 11 лет

Сообщений: 1473
Благодарностей: 222
Полезность: 95

Цитата(9art @ 2.9.2014, 23:03) *
Обновил пост #113. Теперь отображается нормально.

у меня все хорошо тображается,только эта ошибка и все
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 9art
сообщение 3.9.2014, 18:15
Сообщение #146


Стаж: 10 лет

Сообщений: 991
Благодарностей: 534
Полезность: 843

Цитата(cyber1741 @ 3.9.2014, 20:09) *
у меня все хорошо тображается,только эта ошибка и все

Цитата(Bloo @ 2.9.2014, 22:56) *
cyber1741, с дебагом ошибки пишите всегда, без дебага от них нет толку.

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя cyber1741
сообщение 3.9.2014, 21:12
Сообщение #147


Стаж: 11 лет

Сообщений: 1473
Благодарностей: 222
Полезность: 95

L 09/03/2014 - 23:11:08: [AMXX] Run time error 4: index out of bounds
L 09/03/2014 - 23:11:08: [AMXX] [0] phpqSqCYC.sma::EventDamage (line 115)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя kes
сообщение 15.9.2014, 12:11
Сообщение #148


Стаж: 10 лет

Сообщений: 577
Благодарностей: 547
Полезность: 870

Последния версия которая в архиве или просто sma?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя elfitaja
сообщение 26.9.2014, 15:38
Сообщение #149
Стаж: 10 лет

Сообщений: 124
Благодарностей: 4
Полезность: 32

Как убрать меню из плагина и сделать так, что бы приз автоматически выдавался? =)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя fomeN
сообщение 13.10.2014, 8:43
Сообщение #150
Стаж: 10 лет

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

Цитата(Bloo @ 5.8.2014, 0:46) *
cyber1741, все прекрасно компилится предложенным мной компилятором http://aghl.ru/webcompiler/webcompiler.php
[attachment=27151:best_player.zip]

а колор чат можно сделать ? помогите пожалуйста
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя TJhack
сообщение 13.10.2014, 9:51
Сообщение #151
Стаж: 10 лет

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

Цитата(fomeN @ 13.10.2014, 10:43) *
а колор чат можно сделать ? помогите пожалуйста

Правда тут я убрал выдачу денег!
best_player.sma
Код:
/**
* Modified by Safety1st
* 6/3/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
* • fixed bug with array size for players (thanks to ExTPuMaJI)
* • a few minor optimizations.
*/

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

// customizable parameters
#define MAX_PLAYERS 32 // Максимальное кол-во игроков на сервере, заменить своим (по умолчанию 32)
#define MIN_PLAYERS 2 // Минимальное кол-во игроков, присутствующих на сервере, необходимое для работы плагина (по умолчанию 2)
#define ROUND_NUM 3 // Порядковый номер раунда от момента начала игры, с которого плагин будет работать (по умолчанию 3)
//#define EXCLUDE_FLAGS ADMIN_IMMUNITY // uncomment to exclude players with certain flags; by default it is flag 'a'
// 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},
{"AK47", "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[32];
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.2b", "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_", "awp_"}; // Типы карт, на которых плагин не будет работать
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));
ColorChat(0, DontChange, "^4[^3BP^4] Лучшим за раунд стал ^3%s, ^4он будет награждён", 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), "Бронежилет и шлем");
}
formatex(szMenu, charsmax(szMenu), "\wВаш приз - \r[\y%s\r]^n^n\r1. \wВзять приз^n\r2. \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: ColorChat(0, DontChange, "^4[^3BP^4] Игрок ^3%s ^4отказался от ^3приза", 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);
ColorChat(0, DontChange, "^4[^3BP^4] Игрок ^3%s ^4получил приз - ^3набор гранат", g_szBestPlayerName);
}
case 2:
{
cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);
ColorChat(0, DontChange, "^4[^3BP^4] Игрок ^3%s ^4получил приз - ^3бронежилет и шлем", g_szBestPlayerName);
}
}
}

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]);
ColorChat(0, DontChange, "^4[^3BP^4] Игрок ^3%s ^4получил приз - ^3%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);
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя fomeN
сообщение 13.10.2014, 19:56
Сообщение #152
Стаж: 10 лет

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

Цитата(TJhack @ 13.10.2014, 13:51) *
Правда тут я убрал выдачу денег!
best_player.sma
Код:
/**
* Modified by Safety1st
* 6/3/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
* • fixed bug with array size for players (thanks to ExTPuMaJI)
* • a few minor optimizations.
*/

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

// customizable parameters
#define MAX_PLAYERS 32 // Максимальное кол-во игроков на сервере, заменить своим (по умолчанию 32)
#define MIN_PLAYERS 2 // Минимальное кол-во игроков, присутствующих на сервере, необходимое для работы плагина (по умолчанию 2)
#define ROUND_NUM 3 // Порядковый номер раунда от момента начала игры, с которого плагин будет работать (по умолчанию 3)
//#define EXCLUDE_FLAGS ADMIN_IMMUNITY // uncomment to exclude players with certain flags; by default it is flag 'a'
// 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},
{"AK47", "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[32];
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.2b", "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_", "awp_"}; // Типы карт, на которых плагин не будет работать
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));
ColorChat(0, DontChange, "^4[^3BP^4] Лучшим за раунд стал ^3%s, ^4он будет награждён", 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), "Бронежилет и шлем");
}
formatex(szMenu, charsmax(szMenu), "\wВаш приз - \r[\y%s\r]^n^n\r1. \wВзять приз^n\r2. \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: ColorChat(0, DontChange, "^4[^3BP^4] Игрок ^3%s ^4отказался от ^3приза", 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);
ColorChat(0, DontChange, "^4[^3BP^4] Игрок ^3%s ^4получил приз - ^3набор гранат", g_szBestPlayerName);
}
case 2:
{
cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);
ColorChat(0, DontChange, "^4[^3BP^4] Игрок ^3%s ^4получил приз - ^3бронежилет и шлем", g_szBestPlayerName);
}
}
}

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]);
ColorChat(0, DontChange, "^4[^3BP^4] Игрок ^3%s ^4получил приз - ^3%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);
}
}
}

спасибо
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя fomeN
сообщение 13.10.2014, 20:13
Сообщение #153
Стаж: 10 лет

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

Вот выкладываю исходник с красками, кому надо заберет!
best_player_colorchat.sma
Код:
#include <amxmodx>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#include <colorchat>

// customizable parameters
#define MAX_PLAYERS 32 // Максимальное кол-во игроков на сервере, заменить своим (по умолчанию 32)
#define MIN_PLAYERS 4 // Минимальное кол-во игроков, присутствующих на сервере, необходимое для работы плагина (по умолчанию 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[32];
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.2b", "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_", "awp_"}; // Типы карт, на которых плагин не будет работать
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));
ColorChat(0, DontChange, "^4Лучшим за раунд стал ^3%s, ^4он будет награждён^3.", 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: ColorChat(0, DontChange, "^4Игрок ^3%s ^4отказался от ^3приза^3.", 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);
ColorChat(0, DontChange, "^4Игрок ^3%s ^4получил приз - ^3набор гранат.", g_szBestPlayerName);
}
case 2:
{
cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);
ColorChat(0, DontChange, "^4Игрок ^3%s ^4получил приз - ^3бронежилет и шлем.", g_szBestPlayerName);
}
case 3:
{
new iMoney = random_num(MIN_MONEY, MAX_MONEY);
cs_set_user_money(id, cs_get_user_money(id) + iMoney);
ColorChat(0, DontChange, "^4Игрок ^3%s получил приз - $^4%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]);
ColorChat(0, DontChange, "^4Игрок ^3%s получил приз - ^4%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);
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
magis1337
сообщение 13.10.2014, 20:23
Сообщение #154
Стаж: 9 лет 8 месяцев
Город: Odessa

Сообщений: 2782
Благодарностей: 1535
Полезность: 918

host5.ru
Меценат Меценат

Цитата(fomeN @ 13.10.2014, 20:13) *
Вот выкладываю исходник с красками, кому надо заберет!
best_player_colorchat.sma
Код:
#include <amxmodx>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#include <colorchat>

// customizable parameters
#define MAX_PLAYERS 32 // Максимальное кол-во игроков на сервере, заменить своим (по умолчанию 32)
#define MIN_PLAYERS 4 // Минимальное кол-во игроков, присутствующих на сервере, необходимое для работы плагина (по умолчанию 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[32];
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.2b", "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_", "awp_"}; // Типы карт, на которых плагин не будет работать
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));
ColorChat(0, DontChange, "^4Лучшим за раунд стал ^3%s, ^4он будет награждён^3.", 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: ColorChat(0, DontChange, "^4Игрок ^3%s ^4отказался от ^3приза^3.", 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);
ColorChat(0, DontChange, "^4Игрок ^3%s ^4получил приз - ^3набор гранат.", g_szBestPlayerName);
}
case 2:
{
cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);
ColorChat(0, DontChange, "^4Игрок ^3%s ^4получил приз - ^3бронежилет и шлем.", g_szBestPlayerName);
}
case 3:
{
new iMoney = random_num(MIN_MONEY, MAX_MONEY);
cs_set_user_money(id, cs_get_user_money(id) + iMoney);
ColorChat(0, DontChange, "^4Игрок ^3%s получил приз - $^4%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]);
ColorChat(0, DontChange, "^4Игрок ^3%s получил приз - ^4%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);
}
}
}

А выдавать будет нормально? А то помню ставил данный плагин давно, то не выдавало , то выдавало, сейчас данную ошибку убрали ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя fomeN
сообщение 13.10.2014, 20:26
Сообщение #155
Стаж: 10 лет

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

Цитата(magis1337 @ 14.10.2014, 0:23) *
А выдавать будет нормально? А то помню ставил данный плагин давно, то не выдавало , то выдавало, сейчас данную ошибку убрали ?

да нормально выдает
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
magis1337
сообщение 13.10.2014, 20:29
Сообщение #156
Стаж: 9 лет 8 месяцев
Город: Odessa

Сообщений: 2782
Благодарностей: 1535
Полезность: 918

host5.ru
Меценат Меценат

Цитата(fomeN @ 13.10.2014, 20:26) *
да нормально выдает

Если вам не сложно, можете кинуть на rghost sma файл, а то с компа на учетку зайти не могу
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя fomeN
сообщение 13.10.2014, 20:44
Сообщение #157
Стаж: 10 лет

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

Цитата(magis1337 @ 14.10.2014, 0:29) *
Если вам не сложно, можете кинуть на rghost sma файл, а то с компа на учетку зайти не могу

_http://rghost.ru/58508588

Ребят помогите сделать лимит денег, что-бы больше 16к не было!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя fomeN
сообщение 13.10.2014, 21:04
Сообщение #158
Стаж: 10 лет

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

Помогите отредактировать, что -бы больше 16 000 у игрока быть не могло!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
magis1337
сообщение 13.10.2014, 21:12
Сообщение #159
Стаж: 9 лет 8 месяцев
Город: Odessa

Сообщений: 2782
Благодарностей: 1535
Полезность: 918

host5.ru
Меценат Меценат

Я скомпилировал плагин, в чате чет криво отображается, и не понятные знаки и т.дCGH8< 70 @0C=4 AB0; 0rda.trips, >= 1C45B =03@064Q=.
3@>: 0rda.trips >B:070;AO >B ?@870.

Отредактировал: magis1337, - 13.10.2014, 21:15
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя fomeN
сообщение 13.10.2014, 21:17
Сообщение #160
Стаж: 10 лет

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

Цитата(magis1337 @ 14.10.2014, 1:12) *
Я скомпилировал плагин, в чате чет криво отображается, и не понятные знаки и т.д

С кодировкой намудрил, у меня все отлично скомпилировалось
Вот, поставь проверь _http://rghost.ru/58509153

upd
Код:
#include <amxmodx>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#include <colorchat>

// customizable parameters
#define MAX_PLAYERS 32 // Максимальное кол-во игроков на сервере, заменить своим (по умолчанию 32)
#define MIN_PLAYERS 4 // Минимальное кол-во игроков, присутствующих на сервере, необходимое для работы плагина (по умолчанию 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[32];
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.2b", "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_", "awp_"}; // Типы карт, на которых плагин не будет работать
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));
ColorChat(0, DontChange, "^1Лучшим за раунд стал ^4%s, ^1он будет награждён^4.", 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: ColorChat(0, DontChange, "^1Игрок ^4%s ^1отказался от приза^4.", 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);
ColorChat(0, DontChange, "^1Игрок ^4%s ^1получил приз - ^4набор гранат.", g_szBestPlayerName);
}
case 2:
{
cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);
ColorChat(0, DontChange, "^1Игрок ^4%s ^1получил приз - ^4бронежилет и шлем.", g_szBestPlayerName);
}
case 3:
{
new iMoney = random_num(MIN_MONEY, MAX_MONEY);
cs_set_user_money(id, cs_get_user_money(id) + iMoney);
ColorChat(0, DontChange, "^1Игрок ^4%s ^1получил приз - $^4%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]);
ColorChat(0, DontChange, "^1Игрок ^4%s ^1получил приз - ^4%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);
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
9 страниц V  « 7 8 9
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: