За голову назначено

Сообщения
222
Реакции
143
Помог
4 раз(а)
Есть предложение, создать небольшой плагин.
Где пользователи смогут назначить приз за голову любого игрока из противоположной команды.

Когда назначили приз:
- Воспроизводить всем звук и сообщение*
- Подсвечивать (glow) "назначенного игрока"
- Время до 5 мин, чтобы убить "назначенного игрока"
- Если за отведённое время не смогли убить "назначенного игрока", он и забирает приз.
- За назначение Админ/Вип бонус увеличивается

*Сообщение всем - "DimaS назначил ПРИЗ за голову DimaS | У тебя есть 5:00 мин что бы это сделать"
*Сообщение назначенному - "DimaS назначил ПРИЗ за твою голову | продержись 5:00 мин и получи ПРИЗ"

Тему можно развить вплоть до то того с какого оружия и сколько раз нужно убить.
Вознаграждение может быть любым, от денежного до VIP привилегии.

Всем спасибо за внимание :)

ps. Это не заказ, просто интересное предложение для энтузиастов.
 
Последнее редактирование:
Сообщения
1,536
Реакции
2,319
Помог
39 раз(а)
DimaS, нашел такое в сети.
Код:
#include <amxmodx>
#include <hamsandwich>
#include <cstrike>
#define PLUGIN "Kill plugin"
#define VERSION "1.0"
#define AUTHOR "daywer"
//ПЛАГИН СПЕЦИАЛЬНО БЕРЕТ НИК ИГРОКА,А НЕ ЕГО ID!!!!!!!!!
new szKillName[33][64]; //Ник жертвы
new PlayerKill; //Игрок взял задание
new PlayerKilled; //Игрок выполнил
/* -> Бит сумм -> */
#define SetBit(%0,%1) ((%0) |= (1 << (%1)))
#define ClearBit(%0,%1) ((%0) &= ~(1 << (%1)))
#define IsSetBit(%0,%1) ((%0) & (1 << (%1)))
new const szPrefix[32] = "[Наемник]"
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("kill_arena", "ClCmd_Kill")
register_clcmd("say /kill_arena", "ClCmd_Kill")
register_menucmd(register_menuid("\yKill Arena"), 1023, "hnd_killarena")
RegisterHam(Ham_Killed,"player","ham_player_kill")
}
public client_authorized(idUser)
{
szKillName[idUser] = "";
ClearBit(PlayerKill, idUser);
ClearBit(PlayerKilled, idUser);
}
public ham_player_kill(victim, attacker, corpse)
{
if(!is_user_connected(victim)) return HAM_IGNORED;
if(!is_user_connected(attacker)) return HAM_IGNORED;

if(IsSetBit(PlayerKill, attacker))
{
new szVictimName[64];
get_user_name(victim,szVictimName,63)
if ((equali(szKillName[attacker],szVictimName)))
{
ColoredPrint(attacker, "!t%s!gАхахахах,вы выполнили заказ!",szPrefix)
SetBit(PlayerKilled,attacker)
}
}
return HAM_IGNORED;
}

public ClCmd_Kill(id)
{
static pos, cache[512]
if(!is_user_alive(id))
return PLUGIN_HANDLED
pos = 0
new keys = (1<<0)|(1<<1)|(1<<2)|(1<<9)
if(IsSetBit(PlayerKill, id))pos += formatex(cache[pos], 511-pos, "\yKill Arena^n\yТекущая Жертва:\r%s",szKillName[id])
else pos += formatex(cache[pos], 511-pos, "\yKill Arena^n\yТекущая Жертва:\rНет Цели")
pos += formatex(cache[pos], 511-pos, "^n\y[\r1\y]. \wВыбрать Жертву")
pos += formatex(cache[pos], 511-pos, "^n\y[\r2\y]. \yВзять Награду")
pos += formatex(cache[pos], 511-pos, "^n\y[\r3\y]. \wОтказ от заказа \rЦена:\y10 000 $")
pos += formatex(cache[pos], 511-pos, "^n^n^n0. \wВыход^n")
show_menu( id, keys, cache, -1)
return PLUGIN_HANDLED
}

public hnd_killarena(id,key)
{
if(!is_user_alive(id))
return PLUGIN_HANDLED

switch (key)
{
case 0:
{
if(IsSetBit(PlayerKill, id))
{
ColoredPrint(id, "!t%s!gВы уже взялись за убийство игрока!",szPrefix)
return PLUGIN_HANDLED;
}
else
{
PlayerKillFound(id)
}

}
case 1:
{
if(!IsSetBit(PlayerKilled, id))
{
ColoredPrint(id, "!t%s!gУбейте противника чтобы взять награду!",szPrefix)
return PLUGIN_HANDLED;
}
else
{
//rpg_give_credits(id,10)
ColoredPrint(id, "!t%s!gВы выполнили заказ.Вы получили +10 кредитов!",szPrefix)
szKillName[id] = "";
ClearBit(PlayerKill, id);
ClearBit(PlayerKilled, id);
ClCmd_Kill(id)
}

}
case 2:
{
if(cs_get_user_money(id) < 10000)
{
ColoredPrint(id, "!t%s!gЗаработай и приходи,неудачник!",szPrefix)
return PLUGIN_HANDLED;
}
else
{
cs_set_user_money(id,cs_get_user_money(id) - 10000)
szKillName[id] = "";
ClearBit(PlayerKill, id);
ClearBit(PlayerKilled, id);
ClCmd_Kill(id)
}
}
default: return PLUGIN_HANDLED
}
return PLUGIN_HANDLED
}
public PlayerKillFound(id)
{
switch(cs_get_user_team(id))
{
case 1:
{
new Terrorist[32],T_num;
new g_T,szNameVic[64];
get_players(Terrorist,T_num,"ace", "CT");
g_T = Terrorist[random_num(0,T_num-1)];
if(is_user_connected(g_T))
{
get_user_name(g_T,szNameVic,63)
format(szKillName[id],63,"%s",szNameVic)
SetBit(PlayerKill,id)
ColoredPrint(id, "!t%s!gВаша цель !t%s",szPrefix,szKillName[id])
}
else
{
ColoredPrint(id, "!t%s!gНет цели",szPrefix)
}
}
case 2:
{
new CTerrorist[32],CT_num;
new g_CT,szNameVic[64];
get_players(CTerrorist,CT_num,"ace","TERRORIST");
g_CT = CTerrorist[random_num(0,CT_num-1)];
if(is_user_connected(g_CT))
{
get_user_name(g_CT,szNameVic,63)
format(szKillName[id],63,"%s",szNameVic)
SetBit(PlayerKill,id)
ColoredPrint(id, "!t%s!gВаша цель !t%s",szPrefix,szKillName[id])
}
else
{
ColoredPrint(id, "!t%s!gНет цели",szPrefix)
}
}
}
}
//ColorChat
stock ColoredPrint(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[512]
vformat(msg, 512, input, 3)

replace_all(msg, 512, "!g", "^x04")
replace_all(msg, 512, "!y", "^x01")
replace_all(msg, 512, "!t", "^x03")

if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players);
write_byte(players);
write_string(msg);
message_end();
}
}
}
}
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу