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

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

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

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

Boss Public отредактировать

Статус пользователя rasskazov
сообщение 4.6.2015, 20:18
Сообщение #1


Стаж: 13 лет
Город: Где-то в Крыму)

Сообщений: 499
Благодарностей: 158
Полезность: 436

Имеется плагин Boss для паблика:
Плагин
Код:
#include <amxmodx>
#include <fun>
#include <cstrike>
#include <hamsandwich>
#include <fakemeta>
#include <orpheu>
#if AMXX_VERSION_NUM < 183
#include <colorchat>
#endif

#define PLUGIN "Boss for Public"
#define VERSION "2.0 Beta"
#define AUTHOR "neygomon"

#define TASK_BOSS 1337

//###### Конфигурационные define ######
#define BOSS_ARMOR 300 // Броня у Босса
#define BOSS_HEALTH 400 // Здоровье у Босса
#define TIMESHOW 15.0 // Время HUD сообщения о том, кто стал Боссом

#define MIN_ROUND 3 // Минимальный раунд когда возможно ставить Босса
#define MAX_ROUND 6 // Максимальный раунд когда возможно ставить Босса
#define MIN_LATENCYBOSS 10.0 // Минимальное время от начала раунда до появления Босса
#define MAX_LATENCYBOSS 20.0 // Максимальное время от начала раунда до появления Босса

#define GLOW // Свечение Босса(по дефолту включено)
#define DOP_HP // Дополнительные HP (по дефолту включено)

#if defined DOP_HP
#define BOSS_HS 15 // Сколько давать HP Боссу за убиство в голову
#define BOSS_TELO 10 // Сколько давать HP Боссу за убиство в тело
#endif

#define SOUND_FILE "misc/killChicken.wav" // Звук, который будет воспроизводиться, как только появится босс
#define MODEL_PATH "models/player/vip/vip.mdl" // Путь(с названием и расширением) до модельки Босса
#define MODEL_FILE "vip" // Файл модели без расширения
//###### Конфигурационные define ######

new iRoundCounter, iRound;
new iBoss;
new pGameRules;
new iPlayers;
new bool:g_BounceActived[32] = false;
#if defined GLOW
new g_ProtColors[4][3] = {{0,0,0},{255,0,0},{0,0,255},{0,255,0}};
new g_GlowAlpha[4] = {50,50,50,50};
#endif
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_event("HLTV", "Event_round_start", "a","1=0","2=0");
register_event("TextMsg","eventRoundRestart","a","2&#Game_w");
register_event("TextMsg","eventCommencingRestart","a","2&#Game_C");
register_event("DeathMsg","eventDeathMsg","a","1>0");
register_event("ResetHUD", "resetModel", "be");
register_cvar ("boss_version", VERSION, FCVAR_SERVER | FCVAR_SPONLY);
// Hammmmm ^_^
RegisterHam(Ham_Spawn, "player", "PlayerSpawn", 1);
// Ouuu, Orpheu... love you, baby :D
new OrpheuFunction:FPlayerCanTakeDamage = OrpheuGetFunctionFromObject(pGameRules,"FPlayerCanTakeDamage","CGameRules");
OrpheuRegisterHook(FPlayerCanTakeDamage,"FPlayerCanTakeDamage_Handler",OrpheuHookPre);
}

public plugin_precache()
{
precache_sound(SOUND_FILE);
precache_model(MODEL_PATH);
OrpheuRegisterHook(OrpheuGetFunction("InstallGameRules"),"OnInstallGameRules",OrpheuHookPost);
}

public client_disconnect(iBoss)
{
iBoss = 0;
#if defined GLOW
off_rendering(iBoss);
#endif
}

public eventCommencingRestart()
iRoundCounter = 0;

public eventRoundRestart()
iRoundCounter = 0;

public Event_round_start()
{
if(!iRound)
iRound = random_num(MIN_ROUND, MAX_ROUND);

if(++iRoundCounter >= iRound)
{
set_task(random_float(MIN_LATENCYBOSS, MAX_LATENCYBOSS), "boss_actived", TASK_BOSS);
iRound = iRoundCounter = 0;
}
if(iBoss)
{
iBoss = 0;
#if defined GLOW
off_rendering(iBoss);
#endif
}
}

public PlayerSpawn(id)
{
if(g_BounceActived[id])
{
give_item(id,"weapon_hegrenade");
give_item(id,"weapon_flashbang");
give_item(id,"weapon_smokegrenade");

cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);
cs_set_user_money(id, cs_get_user_money(id) + 1000);

g_BounceActived[id] = false;

static bosskiller[32];
get_user_name(id, bosskiller, charsmax(bosskiller));
client_print_color(0, 0, "^4Игрок с ником^3 %s ^4в предыдущем раунде ^3убил Босса ^4и получил бонусы. ^3Молодец^4!", bosskiller);
}
}

public eventDeathMsg(iKiller, iVictim)
{
if(iBoss)
{
iKiller = read_data(1);
iVictim = read_data(2);
if(iKiller != iVictim && iVictim == iBoss)
{
g_BounceActived[iKiller] = true;
#if defined GLOW
off_rendering(iBoss);
#endif
iBoss = 0;

}
else if(iVictim == iBoss)
if(task_exists(TASK_BOSS)) remove_task(TASK_BOSS);
#if defined DOP_HP
static killer_HP, addHP
killer_HP = get_user_health(iKiller)
addHP = (read_data(3) == 1)?BOSS_HS:BOSS_TELO
set_user_health(iKiller,((killer_HP += addHP) > BOSS_HEALTH)?BOSS_HEALTH:killer_HP)
#endif
}
}

public resetModel(id)
{
if(id == iBoss && is_user_alive(id))
cs_set_user_model(id, MODEL_FILE);
else if (!iBoss)
cs_reset_user_model(id);
}

public boss_actived()
{
get_playersteam();
iBoss = random_num(1, iPlayers);
if(iBoss && is_user_alive(iBoss))
{
privilegies(iBoss);
cs_set_user_model(iBoss, MODEL_FILE);
set_rendering(iBoss, kRenderFxGlowShell, g_ProtColors[3][0], g_ProtColors[3][1], g_ProtColors[3][2], kRenderNormal, g_GlowAlpha[3]);
iPlayers = 0;
}

NoticePlayers();

for(new i = 1; i < get_playersnum(); i++)
if((get_user_team(i) == 1 || get_user_team(i) == 2) && !is_user_alive(i))
ExecuteHamB(Ham_CS_RoundRespawn, i);
}

public privilegies(id)
{
set_user_health(id, BOSS_HEALTH);
cs_set_user_armor(id, BOSS_ARMOR, CS_ARMOR_VESTHELM);
give_item(id, "weapon_m249");
cs_set_user_bpammo(id, CSW_M249, 250);
}

public NoticePlayers()
{
static name[32];
get_user_name(iBoss, name, charsmax(name));
set_hudmessage(255, 0, 0, -1.00, 0.2, 0, 10.0, TIMESHOW, 0.0, 0.0, -1);
show_hudmessage(0, "А вот и наш босс...^nЕго ник ^"%s^"^nУдачи в бою;)", name);
client_cmd(0, "spk %s", SOUND_FILE);
}

public OnInstallGameRules()
pGameRules = OrpheuGetReturn();

public FPlayerCanTakeDamage_Handler(gameRules,pVictim,pAttacker)
{
if(iBoss && (pVictim == iBoss || pAttacker == iBoss))
{
OrpheuSetReturn(true);
return _:OrpheuOverride;
}
return _:OrpheuIgnored;
}
#if defined GLOW
stock set_rendering(index, fx=kRenderFxNone, r=255, g=255, b=255, render=kRenderNormal, amount=16)
{
set_pev(index, pev_renderfx, fx)
new Float:RenderColor[3]
RenderColor[0] = float®
RenderColor[1] = float(g)
RenderColor[2] = float(b)
set_pev(index, pev_rendercolor, RenderColor)
set_pev(index, pev_rendermode, render)
set_pev(index, pev_renderamt, float(amount))

return 1
}

stock off_rendering(id)
set_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0);
#endif
stock get_playersteam()
{
static i;
for(i = 1; i < get_playersnum(); i++)
if((get_user_team(i) == 1 || get_user_team(i) == 2) && is_user_alive(i)) iPlayers++;
return iPlayers;
}


Можно сделать так что бы все игроки могли его убить ,т.е не только с противоположной команды, но и игроки которые находятся с ним в команде..
Как-то так)

Буду благодарен , если кто нибудь поможет)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
magis1337
сообщение 4.6.2015, 20:28
Сообщение #2
Стаж: 11 лет
Город: Odessa

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

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

rasskazov, мб уже и зомби для паблика добавишь?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя rasskazov
сообщение 4.6.2015, 20:31
Сообщение #3


Стаж: 13 лет
Город: Где-то в Крыму)

Сообщений: 499
Благодарностей: 158
Полезность: 436

magis1337, я написал "паблик" т.к плагин так и называться Boss_Public ) Мне совершенно не для паба надо , а под другой мод
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
magis1337
сообщение 4.6.2015, 20:34
Сообщение #4
Стаж: 11 лет
Город: Odessa

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

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

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