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

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

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

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

История благодарностей участнику CH0CAPIC ::: Спасибо сказали: 19
Дата поста: В теме: За сообщение: Спасибо сказали:
21.8.2014, 14:43 [Metamod] WHBlocker 1.5.692
Цитата(Bloo @ 21.8.2014, 13:38) *
CH0CAPIC, там действие какое то выполняется. Подобное было мной замечено на карте cs_alpain, когда вызываешь кабинку.
Сайленту сообщал.

Сейчас проверил и карту de_mon, где есть эскалатор и кораблик. Как выяснилось, блокер вызывыет падение сервера во время включения определённого механизма (будь это машина, кораблик, эскалатор...Одним словом, все, что движется)
Bloo
18.8.2014, 15:44 Помогите с плагином
shok.gif
gribnik
27.7.2014, 2:02 Флаг доступа в Меню Сервера
Цитата(firante @ 26.7.2014, 23:18) *
Legenda,
Скрытый текст

Скрытый текст
Код:
#include <amxmodx>                                                                                                       
#include <amxmisc>
#include <cstrike>
#include <amxmisc>
#include <hamsandwich>
#include <colorchat>

new chat[33]

#pragma tabsize 0

#define PLUGIN "Меню сервера ProStrike Public ©"
#define VERSION "2.1a"
#define AUTHOR "aline"

new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MEN
U_KEY_8|MENU_KEY_9|MENU_KEY_0
new keys2 = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MEN
U_KEY_8|MENU_KEY_9|MENU_KEY_0
new keys3 = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MEN
U_KEY_8|MENU_KEY_9|MENU_KEY_0
new keys4 = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MEN
U_KEY_8|MENU_KEY_9|MENU_KEY_0

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_menu("Menu 1", keys, "func_menu")
register_clcmd("say /menu", "server_menu" )
register_clcmd("", "server_menu2" )
register_menu("Menu 2", keys2, "func_menu2")
register_clcmd("say /shop", "server_menu3" )
register_menu("Menu 3", keys3, "func_menu3")
register_clcmd("say /administration", "server_menu4",ADMIN_IMMINITY,"-nore menu for admin" )
register_menu("Menu 4", keys4, "func_menu4")
}

public client_authorized(id)
{
client_cmd(id, "^"bind^" F3 ^"say /menu^"")
}

public server_menu(id)
{
static flag
flag = get_user_flags(id)
new name[32]
get_user_name(id, name, 31)
static menu[650], iLen
iLen = 0
iLen = formatex(menu[iLen], charsmax(menu) - iLen, "\wМеню сервера | Привет: \y%s^n^n", name)

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r1. \wОбнулить счёт^n")
keys |= MENU_KEY_1

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \wЗаглушить игрока^n")
keys |= MENU_KEY_2

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r3. \wПередать деньги^n")
keys |= MENU_KEY_3

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r4. \wТоп игроков^n^n")
keys |= MENU_KEY_4

if(!chat[id])
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r5. \wЯзык чата \d[ \yАнглийский \d]^n")
keys |= MENU_KEY_5
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r5. \wЯзык чата \d[ \yРусский \d]^n")
keys |= MENU_KEY_5
}
if(flag & ADMIN_LEVEL_H)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r6. \wВотебан \d[ \yДоступно \d]^n^n")
keys |= MENU_KEY_6
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r6. \dВотебан [ \rНедоступно \d]^n^n")
keys |= MENU_KEY_6
}
if(flag & ADMIN_IMMUNITY)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r7. \wЦентр администрации \d[ \yДоступно \d]^n")
keys |= MENU_KEY_7
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r7. \dЦентр администрации [ \rНедоступно \d]^n")
keys |= MENU_KEY_7
}

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r8. \wМагазин сервера^n^n")
keys |= MENU_KEY_8

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r9. \wДалее^n")
keys |= MENU_KEY_9

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r0. \wВыход^n")
keys |= MENU_KEY_0

if(get_user_flags(id) & ADMIN_IMMUNITY)
{
menu_display(id, 0)
}
if(!(get_user_flags(id) & ADMIN_IMMUNITY))
{
ColorChat(id, DontChange, "^4[^3Menu^4] ^4У вас нет доступа для входа в ^3админ центр.")
return
}

show_menu(id, keys, menu, -1, "Menu 1")
return PLUGIN_HANDLED
}

public func_menu(id, key)
{
switch(key)
{
case 0: client_cmd(id, "say /rs")
case 1: client_cmd(id, "say /mute")
case 2: client_cmd(id, "say /tm")
case 3: client_cmd(id, "say /top")
case 4:
{
if(chat[id])
{
client_cmd(id, "say /eng")
chat[id] = 0
server_menu(id)
}
else
{
client_cmd(id, "say /rus")
chat[id] = 1
server_menu(id)
}
}
case 5: client_cmd(id, "say /voteban")
case 6: client_cmd(id, "say /administration")
case 7: client_cmd(id, "say /shop")
case 8: server_menu2(id)
}
return PLUGIN_HANDLED
}

public server_menu2(id)
{
new name[32]
get_user_name(id, name, 31)
static menu[650], iLen
iLen = 0
iLen = formatex(menu[iLen], charsmax(menu) - iLen, "\wМеню сервера | Привет: \y%s^n^n", name)

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r1. \wАдмины онлайн^n")
keys2 |= MENU_KEY_1

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \wВипы онлайн^n")
keys2 |= MENU_KEY_2

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r3. \wМодераторы онлайн^n^n")
keys2 |= MENU_KEY_3

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r4. \wПолная статистика игроков^n")
keys2 |= MENU_KEY_4

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r5. \wРанк на сервере^n")
keys2 |= MENU_KEY_5

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r6. \wСписок званий^n^n")
keys2 |= MENU_KEY_6

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r7. \wСписок доступных комманд^n")
keys2 |= MENU_KEY_7

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r8. \wПравила сервера^n^n")
keys2 |= MENU_KEY_8

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r9. \wНазад^n")
keys2 |= MENU_KEY_9

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r0. \wВыход^n^n")
keys2 |= MENU_KEY_0

show_menu(id, keys2, menu, -1, "Menu 2")
return PLUGIN_HANDLED
}

public func_menu2(id, key)
{
switch(key)
{
case 0: client_cmd(id, "say /admins")
case 1: client_cmd(id, "say /vips")
case 2: client_cmd(id, "say /moderators")
case 3: client_cmd(id, "say /stats")
case 4: client_cmd(id, "say /rank")
case 5: client_cmd(id, "say /alist")
case 6: client_cmd(id, "say /say")
case 7: client_cmd(id, "say /rules")
case 8: server_menu(id)
}
return PLUGIN_HANDLED
}

public server_menu3(id)
{
new name[32]
get_user_name(id, name, 31)
static menu[650], iLen
iLen = 0
iLen = formatex(menu[iLen], charsmax(menu) - iLen, "\wМагазин сервера | Привет: \y%s^n^n", name)

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r1. \wЗаказать админку^n")
keys3 |= MENU_KEY_1

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \wЗаказать випку^n")
keys3 |= MENU_KEY_2

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r3. \wЗаказать модераторство^n^n")
keys3 |= MENU_KEY_3

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r9. \wНазад^n")
keys3 |= MENU_KEY_9

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r0. \wВыход^n")
keys3 |= MENU_KEY_0

show_menu(id, keys3, menu, -1, "Menu 3")
return PLUGIN_HANDLED
}

public func_menu3(id, key)
{
switch(key)
{
case 0: client_cmd(id, "say /buyadmin")
case 1: client_cmd(id, "say /buyvip")
case 2: client_cmd(id, "say /buymoder")
case 8: server_menu(id)
}
return PLUGIN_HANDLED
}

public server_menu4(id)
{
if (!cmd_access(id, level, cid, 0))
return PLUGIN_HANDLED

static flag
flag = get_user_flags(id)
new name[32]
get_user_name(id, name, 31)
static menu[650], iLen
iLen = 0
iLen = formatex(menu[iLen], charsmax(menu) - iLen, "\wЦентр администрации | Привет: \y%s^n^n", name)

if(flag & ADMIN_BAN)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r1. \wМеню админа \d[ \yДоступно \d]^n")
keys4 |= MENU_KEY_1
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r1. \dМеню админа [ \rНедоступно \d]^n")
keys4 |= MENU_KEY_1
}
if(flag & ADMIN_LEVEL_G)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \wМеню модератора \d[ \yДоступно \d]^n")
keys4 |= MENU_KEY_2
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \dМеню модератора [ \rНедоступно \d]^n")
keys4 |= MENU_KEY_2
}
if(flag & ADMIN_LEVEL_H)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r3. \wМеню випа \d[ \yДоступно \d]^n^n")
keys4 |= MENU_KEY_3
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r3. \dМеню випа [ \rНедоступно \d]^n^n")
keys4 |= MENU_KEY_3
}
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r9. \wНазад^n")
keys4 |= MENU_KEY_9

iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r0. \wВыход^n")
keys4 |= MENU_KEY_0

show_menu(id, keys4, menu, -1, "Menu 4")
return PLUGIN_HANDLED
}

public func_menu4(id, key)
{
switch(key)
{
case 0: client_cmd(id, "say /adminmenu")
case 1: client_cmd(id, "say /modermenu")
case 2: client_cmd(id, "say /vipmenu")
case 8: server_menu(id)
}
return PLUGIN_HANDLED
}

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/




register_clcmd("say /administration", "server_menu4",ADMIN_IMMINITY,"-nore menu for admin" ) у тебя ошибка "ADMIN_IMMINITY" поправ ADMIN_IMMUNITY
Legenda
26.7.2014, 22:43 Флаг доступа в Меню Сервера
возьми пример отсюда, если тебя поможет.


Код:
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Base Builder Menu"
#define VERSION "1.0"
#define AUTHOR "CH0CAPIC"

#define VIP ADMIN_KICK
#define VIP2 ADMIN_LEVEL_E

new keysmenu = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9)

new SayText;

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_clcmd("bbmenu", "bb_menu")
register_clcmd("say /menu", "bb_menu")
register_clcmd("chooseteam", "bb_menu")

register_menu("Game Menu", keysmenu, "menu_game")

SayText = get_user_msgid("SayText")
}

public plugin_natives() register_native("bb_menu", "bb_menu", 1)

public bb_menu(id)
{
static menu[500], len
len = 0

// Title
len += formatex(menu[len], charsmax(menu) - len, "[Base Builder] Server Menu ^n^n")

len += formatex(menu[len], charsmax(menu) - len, "\y[1]. \wExtra Items^n", id)

len += formatex(menu[len], charsmax(menu) - len, "\y[2]. \wZombie Classes^n", id)

len += formatex(menu[len], charsmax(menu) - len, "\y[3]. \wRevive Me^n", id)

len += formatex(menu[len], charsmax(menu) - len, "\y[4]. \wBuy Health^n^n", id)

len += formatex(menu[len], charsmax(menu) - len, "\y[5]. \rAdmin Menu^n", id)

len += formatex(menu[len], charsmax(menu) - len, "\y[6]. \rVip Menu^n^n", id)

len += formatex(menu[len], charsmax(menu) - len, "^n^n\r0.\w Gamosvla", id)

show_menu(id, keysmenu, menu, -1, "Game Menu")
return PLUGIN_HANDLED
}

public menu_game(id, key)
{
switch (key)
{
case 0:
{
if(get_user_team(id) == 2)
{
client_cmd(id, "extra")
}
else
{
print_col_chat(id, "^4[Base Builder]^1 Extra Items Just For CT :)")
}
}
case 1:
{
client_cmd(id, "class")
}
case 2:
{
client_cmd(id, "say /revive")
}
case 3:
{
print_col_chat(id, "^4[Base Builder]^1 Jer Jerobit Es Funqcia Miuwvdomelia")
}
case 4:
{
if(get_user_flags(id) & VIP)
{
print_col_chat(id, "^4[Base Builder]^1 Jer Jerobit Es Funqcia Miuwvdomelia")
}
else
{
print_col_chat(id, "^4[Base Builder]^1 Iyide Admini Jer :), Say /yidva")
}
}
case 5:
{
if(get_user_flags(id) & VIP2)
{
print_col_chat(id, "^4[Base Builder]^1 Jer Jerobit Es Funqcia Miuwvdomelia")
}
else
{
print_col_chat(id, "^4[Base Builder]^1 Iyide Vipi Jer :), Say /yidva")
}
}
}
return PLUGIN_HANDLED;
}

public client_connect(id) client_cmd(id, "bind F3 bbmenu");

stock print_col_chat(const id, const input[], any:...)
{
new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);
replace_all(msg, 190, "!g", "^4");
replace_all(msg, 190, "!y", "^1");
replace_all(msg, 190, "!t", "^3");
if (id) players[0] = id; else get_players(players, count, "ch");
{
for ( new i = 0; i < count; i++ )
{
if ( is_user_connected(players[i]) )
{
message_begin(MSG_ONE_UNRELIABLE, SayText, _, players[i]);
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
firante
24.7.2014, 13:12 Spawn Lotery, AmmoPack
Цитата(Safety1st @ 24.7.2014, 1:02) *
CH0CAPIC, почему из шапки код удалён? Не надо так.


исправил, проста там запутался и не то удалил.
Safety1st
25.5.2014, 19:18 jail break mod headshot
убить нельзя и значка тоже нету

целишся в голову а показывает простой убийство
tato2013
25.5.2014, 16:49 jail break mod headshot
Цитата(tato2013 @ 25.5.2014, 15:36) *
Жадность,потому что он наверно тратил деньги исправлял,а тут все получат без багов!


если не знаешь не говори.


вот
tato2013
14.5.2014, 22:10 bazooka_india на базе awp_india
Цитата(yukish @ 14.5.2014, 21:06) *
CH0CAPIC

Я сразу не понял, но скомпилировав и опробовав ваш плагин понял, что он способен работать только с ВАШЕЙ версией базуки,
а с той базукой, что Я выложил он работать не будет.
Всё правильно?



все правильно

я их соединил для меня, если хочешь:

Код:

#include <amxmodx>
#include <fun>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <cstrike>

#define PLUGIN "Awp_India Bazooka"
#define VERSION "1.0"
#define AUTHOR "Yes"

#define weapon_at4cs "weapon_m249"
#define CSW_AT4CS CSW_M249

#define TASK_CHECKRELOAD 111112
#define TASK_RELOAD 111113

//new g_at4cs
new g_had_at4cs[33], Float:g_lastfire[33], Float:g_lastaim[33], g_aiming[33],
g_smoke_id, g_spr_trail, g_spr_exp, is_reloading[33],
cvar_radius, cvar_maxdamage

new const v_model[] = "models/CsDeLuxGe/v_at4ex.mdl"
new const p_model[] = "models/CsDeLuxGe/p_at4ex.mdl"
new const w_model[] = "models/CsDeLuxGe/w_at4ex.mdl"
new const s_model[] = "models/CsDeLuxGe/s_rocket.mdl"

new const at4cs_sound[5][] = {
"weapons/at4-1.wav", // Fire Sound
"weapons/at4_clipin1.wav", // Clip in 1
"weapons/at4_clipin2.wav", // Clip in 2
"weapons/at4_clipin3.wav", // Clip in 3
"weapons/at4_draw.wav" // Draw
}

new ent1, ent2

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_event("CurWeapon", "event_curweapon", "be", "1=1")
register_event("HLTV", "event_newround", "a", "1=0", "2=0")

register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1)
register_forward(FM_CmdStart, "fw_CmdStart")
register_forward(FM_SetModel, "fw_SetModel")

register_think("at4ex_rocket", "fw_rocket_think")
register_touch("at4ex_rocket", "*", "fw_rocket_touch")

RegisterHam(Ham_Weapon_Reload, weapon_at4cs, "fw_WeaponReload")
RegisterHam(Ham_Item_AddToPlayer, weapon_at4cs, "fw_AddToPlayer", 1)

cvar_radius = register_cvar("zp_at4cs_radius", "1.0")
cvar_maxdamage = register_cvar("zp_at4cs_maxdamage", "50.0")

register_clcmd("weapon_at4cs", "hook_weapon")

new mapname[32]
get_mapname(mapname,31)
if(equali(mapname,"awp_india"))
{
ents_removing()
RegisterHam(Ham_Spawn, "player", "Player_Spawn", 1)
}
}

public ents_removing()
{
while((ent1 = find_ent_by_class(ent1,"game_player_equip") != 0) || (ent2 = find_ent_by_class(ent2, "player_weaponstrip") != 0))
{
remove_entity(find_ent_by_class(ent1, "game_player_equip"))
remove_entity(find_ent_by_class(ent2, "player_weaponstrip"))
}
}

public Player_Spawn(id)
{
if(is_user_alive(id))
{
strip_user_weapons(id)
give_bazooka(id)
give_item(id, "weapon_knife")
}
}

public hook_weapon(id)
{
engclient_cmd(id, weapon_at4cs)
return PLUGIN_HANDLED
}

public plugin_precache()
{
engfunc(EngFunc_PrecacheModel, v_model)
engfunc(EngFunc_PrecacheModel, p_model)
engfunc(EngFunc_PrecacheModel, w_model)
engfunc(EngFunc_PrecacheModel, s_model)

engfunc(EngFunc_PrecacheGeneric, "sprites/weapon_at4cs.txt")
engfunc(EngFunc_PrecacheGeneric, "sprites/at4cs.spr")

g_smoke_id = engfunc(EngFunc_PrecacheModel, "sprites/effects/rainsplash.spr")
g_spr_trail = engfunc(EngFunc_PrecacheModel,"sprites/xbeam3.spr")
g_spr_exp = engfunc(EngFunc_PrecacheModel,"sprites/zerogxplode.spr")

for(new i = 0; i < sizeof(at4cs_sound); i++)
engfunc(EngFunc_PrecacheSound, at4cs_sound[i])
}

public give_bazooka(id)
{
g_had_at4cs[id] = 1
is_reloading[id] = 0
g_aiming[id] = 0

fm_give_item(id, weapon_at4cs)

static at4cs
at4cs = fm_get_user_weapon_entity(id, CSW_AT4CS)

cs_set_weapon_ammo(at4cs, 1)
cs_set_user_bpammo(id, CSW_AT4CS, 10)

return PLUGIN_CONTINUE
}

public plugin_natives() register_native("give_bazooka", "give_bazooka", 1)

public zp_user_infected_post(id)
{
g_had_at4cs[id] = 0
is_reloading[id] = 0
g_aiming[id] = 0

remove_task(id+TASK_CHECKRELOAD)
remove_task(id+TASK_RELOAD)
}

public zp_user_humanized_post(id)
{
g_had_at4cs[id] = 0
is_reloading[id] = 0
g_aiming[id] = 0

remove_task(id+TASK_CHECKRELOAD)
remove_task(id+TASK_RELOAD)
}

public event_newround()
{
remove_entity_name("at4ex_rocket")

for(new i = 0; i < get_maxplayers(); i++)
{
if(is_user_alive(i) && is_user_connected(i))
{
remove_task(i+TASK_CHECKRELOAD)
remove_task(i+TASK_RELOAD)
}
}
}

public event_curweapon(id)
{
if(!is_user_alive(id) || !is_user_connected(id))
return PLUGIN_HANDLED

if(get_user_weapon(id) != CSW_AT4CS || !g_had_at4cs[id])
return PLUGIN_HANDLED

set_pev(id, pev_viewmodel2, v_model)
set_pev(id, pev_weaponmodel2, p_model)

return PLUGIN_CONTINUE
}

public fw_UpdateClientData_Post(id, sendweapons, cd_handle)
{
if(!is_user_alive(id) || !is_user_connected(id))
return FMRES_IGNORED

if(get_user_weapon(id) != CSW_AT4CS || !g_had_at4cs[id])
return FMRES_IGNORED

set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001)

return FMRES_HANDLED
}

public fw_AddToPlayer(ent, id)
{
if(!is_valid_ent(ent) || !is_user_alive(id))
return HAM_IGNORED

if(entity_get_int(ent, EV_INT_impulse) == 61296)
{
g_had_at4cs[id] = 1
entity_set_int(id, EV_INT_impulse, 0)

return HAM_HANDLED
}

if(g_had_at4cs[id])
{
message_begin(MSG_ONE, get_user_msgid("WeaponList"), _, id)
write_string("weapon_at4cs"); // WeaponName
write_byte(3) // PrimaryAmmoID
write_byte(1) // PrimaryAmmoMaxAmount
write_byte(-1) // SecondaryAmmoID
write_byte(-1) // SecondaryAmmoMaxAmount
write_byte(0) // SlotID (0...N)
write_byte(4) // NumberInSlot (1...N)
write_byte(CSW_AT4CS) // WeaponID
write_byte(0) // Flags
message_end()
}

return HAM_HANDLED
}

public fw_CmdStart(id, uc_handle, seed)
{
if(!is_user_alive(id) || !is_user_connected(id))
return FMRES_IGNORED

if(get_user_weapon(id) != CSW_AT4CS || !g_had_at4cs[id])
return FMRES_IGNORED

static CurButton
CurButton = get_uc(uc_handle, UC_Buttons)

if(CurButton & IN_ATTACK)
{
static Float:CurTime
CurTime = get_gametime()

static at4cs
at4cs = fm_find_ent_by_owner(-1, weapon_at4cs, id)

if(cs_get_weapon_ammo(at4cs) > 0 && !is_reloading[id])
{
if(CurTime - 4.5 > g_lastfire[id])
{
set_weapon_anim(id, 1)
emit_sound(id, CHAN_WEAPON, at4cs_sound[0], 1.0, ATTN_NORM, 0, PITCH_NORM)

create_rocket(id)

static Float:Punch_Angles[3]

Punch_Angles[0] = -20.0
Punch_Angles[1] = 0.0
Punch_Angles[2] = 0.0

set_pev(id, pev_punchangle, Punch_Angles)
cs_set_weapon_ammo(at4cs, cs_get_weapon_ammo(at4cs) - 1)

if(cs_get_weapon_ammo(at4cs) <= 0 && !is_reloading[id])
{
if(cs_get_user_bpammo(id, CSW_AT4CS) > 0)
{
set_task(1.0, "at4cs_reload", id)
}
}

if(cs_get_user_zoom(id))
cs_set_user_zoom(id, CS_RESET_ZOOM, 1)

g_lastfire[id] = CurTime
}
} else {
if(!is_reloading[id])
{
if(cs_get_user_bpammo(id, CSW_AT4CS) > 0)
{
if(CurTime - 1.0 > g_lastfire[id])
{
at4cs_reload(id)
g_lastfire[id] = CurTime
}
}
}
}
}

if(CurButton & IN_ATTACK2)
{
static Float:CurTime
CurTime = get_gametime()

if((CurTime - 0.5 > g_lastaim[id]) && !is_reloading[id])
{
if(!g_aiming[id])
{
cs_set_user_zoom(id, CS_SET_FIRST_ZOOM, 1)
g_aiming[id] = 1
} else {
cs_set_user_zoom(id, CS_RESET_ZOOM, 1)
g_aiming[id] = 0
}

g_lastaim[id] = CurTime
}
}

CurButton &= ~IN_ATTACK
set_uc(uc_handle, UC_Buttons, CurButton)

CurButton &= ~IN_RELOAD
set_uc(uc_handle, UC_Buttons, CurButton)

return FMRES_HANDLED
}

public fw_SetModel(ent, const model[])
{
if(!is_valid_ent(ent))
return FMRES_IGNORED

static szClassName[33]
entity_get_string(ent, EV_SZ_classname, szClassName, charsmax(szClassName))

if(!equal(szClassName, "weaponbox"))
return FMRES_IGNORED

static iOwner
iOwner = entity_get_edict(ent, EV_ENT_owner)

if(equal(model, "models/w_m249.mdl"))
{
static at4cs
at4cs = find_ent_by_owner(-1, "weapon_m249", ent)

if(!is_valid_ent(at4cs))
return FMRES_IGNORED;

if(g_had_at4cs[iOwner])
{
entity_set_int(at4cs, EV_INT_impulse, 61296)
g_had_at4cs[iOwner] = 0
entity_set_model(ent, w_model)

return FMRES_SUPERCEDE
}
}

return FMRES_IGNORED
}

public at4cs_reload(id)
{
if(is_reloading[id])
return

is_reloading[id] = 1
set_weapon_anim(id, 3)

set_task(0.1, "checking_reload", id+TASK_CHECKRELOAD, _, _, "b")
set_task(4.0, "reload_complete", id+TASK_RELOAD)
}

public checking_reload(id)
{
id -= TASK_CHECKRELOAD

if(cs_get_user_zoom(id))
cs_set_user_zoom(id, CS_RESET_ZOOM, 1)

if(get_user_weapon(id) != CSW_AT4CS || !g_had_at4cs[id])
{
remove_task(id+TASK_CHECKRELOAD)
remove_task(id+TASK_RELOAD)

is_reloading[id] = 0
}
}

public reload_complete(id)
{
id -= TASK_RELOAD

if(!is_reloading[id])
return

remove_task(id+TASK_CHECKRELOAD)

static at4cs
at4cs = fm_find_ent_by_owner(-1, weapon_at4cs, id)

cs_set_weapon_ammo(at4cs, 1)
cs_set_user_bpammo(id, CSW_AT4CS, cs_get_user_bpammo(id, CSW_AT4CS) - 1)
is_reloading[id] = 0
}

public fw_WeaponReload(ent)
{
static id
id = pev(ent, pev_owner)

if(!is_user_alive(id) || !is_user_connected(id))
return HAM_IGNORED

if(get_user_weapon(id) != CSW_AT4CS || !g_had_at4cs[id])
return HAM_IGNORED

static Float:CurTime
CurTime = get_gametime()

if(!is_reloading[id])
{
if(cs_get_user_bpammo(id, CSW_AT4CS) > 0)
{
if(CurTime - 1.0 > g_lastfire[id])
{
at4cs_reload(id)
g_lastfire[id] = CurTime
}
}
}

return HAM_SUPERCEDE
}

public create_rocket(id)
{
new ent, Float:Origin[3], Float:Angles[3], Float:Velocity[3]

ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))
engfunc(EngFunc_GetAttachment, id, 0, Origin, Angles)
pev(id, pev_angles, Angles)

set_pev(ent, pev_origin, Origin)
set_pev(ent, pev_angles, Angles)
set_pev(ent, pev_solid, 2)
set_pev(ent, pev_movetype, 5)
set_pev(ent, pev_classname, "at4ex_rocket")
set_pev(ent, pev_owner, id)
engfunc(EngFunc_SetModel, ent, s_model)

set_pev(ent, pev_mins, {-1.0, -1.0, -1.0})
set_pev(ent, pev_maxs, {1.0, 1.0, 1.0})

velocity_by_aim(id, 1750, Velocity)
set_pev(ent, pev_velocity, Velocity)

message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMFOLLOW) // TE id
write_short(ent) // entity:attachment to follow
write_short(g_spr_trail) // sprite index
write_byte(25) // life in 0.1's
write_byte(2) // line width in 0.1's
write_byte(255) // r
write_byte(255) // g
write_byte(255) // b
write_byte(200) // brightness
message_end()

set_pev(ent, pev_iuser4, 0)
set_pev(ent, pev_nextthink, halflife_time() + 0.1)
}

public fw_rocket_think(ent)
{
if(!pev_valid(ent))
return

static Float:Origin[3]
pev(ent, pev_origin, Origin)

message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_SPRITE)
engfunc(EngFunc_WriteCoord, Origin[0])
engfunc(EngFunc_WriteCoord, Origin[1])
engfunc(EngFunc_WriteCoord, Origin[2])
write_short(g_smoke_id)
write_byte(2)
write_byte(200)
message_end()

if(pev(ent, pev_iuser4) == 0)
{
static Victim
Victim = FindClosesEnemy(ent)

if(is_user_alive(Victim))
{
set_pev(ent, pev_iuser4, Victim)
}
} else {
static Victim
Victim = pev(ent, pev_iuser4)

if(is_user_alive(Victim))
{
static Float:VicOrigin[3]
pev(Victim, pev_origin, VicOrigin)

turn_to_target(ent, Origin, Victim, VicOrigin)
hook_ent(ent, Victim, 500.0)
} else {
set_pev(ent, pev_iuser4, 0)
}
}

set_pev(ent, pev_nextthink, halflife_time() + 0.075)
}

public fw_rocket_touch(rocket, touch)
{
if(!pev_valid(rocket))
return

if(is_user_alive(touch) && pev(rocket, pev_owner) == touch)
return

static Float:Origin[3]
pev(rocket, pev_origin, Origin)

message_begin(MSG_BROADCAST ,SVC_TEMPENTITY)
write_byte(TE_EXPLOSION)
engfunc(EngFunc_WriteCoord, Origin[0])
engfunc(EngFunc_WriteCoord, Origin[1])
engfunc(EngFunc_WriteCoord, Origin[2])
write_short(g_spr_exp) // sprite index
write_byte(20) // scale in 0.1's
write_byte(30) // framerate
write_byte(0) // flags
message_end()

static owner, iVictim

iVictim = -1
owner = pev(rocket, pev_owner)

while((iVictim = find_ent_in_sphere(iVictim, Origin, get_pcvar_float(cvar_radius))) != 0)
{
if((0 < iVictim < 32) && is_user_alive(iVictim))
{
new Float:MaxDamage, Float:Damage

MaxDamage = get_pcvar_float(cvar_maxdamage)
Damage = random_float(MaxDamage - random_float(0.0, 100.0), MaxDamage + random_float(0.0, 100.0))

ExecuteHam(Ham_TakeDamage, iVictim, 0, owner, 0, DMG_BULLET)

static health
health = get_user_health(iVictim)

if(health - Damage >= 1)
{
fm_set_user_health(iVictim, health - floatround(Damage))
}
else
{
death_message(owner, iVictim, 1)
}
}
}

engfunc(EngFunc_RemoveEntity, rocket)
}

stock set_weapon_anim(id, anim)
{
set_pev(id, pev_weaponanim, anim)

message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, _, id)
write_byte(anim)
write_byte(pev(id,pev_body))
message_end()
}

stock death_message(Killer, Victim, ScoreBoard)
{
// Block death msg
set_msg_block(get_user_msgid("DeathMsg"), BLOCK_SET)
ExecuteHamB(Ham_Killed, Victim, Killer, 2)
set_msg_block(get_user_msgid("DeathMsg"), BLOCK_NOT)

// Death
make_deathmsg(Killer, Victim, 0, "")

// Update score board
if (ScoreBoard)
{
message_begin(MSG_BROADCAST, get_user_msgid("ScoreInfo"))
write_byte(Killer) // id
write_short(pev(Killer, pev_frags)) // frags
write_short(cs_get_user_deaths(Killer)) // deaths
write_short(0) // class?
write_short(get_user_team(Killer)) // team
message_end()

message_begin(MSG_BROADCAST, get_user_msgid("ScoreInfo"))
write_byte(Victim) // id
write_short(pev(Victim, pev_frags)) // frags
write_short(cs_get_user_deaths(Victim)) // deaths
write_short(0) // class?
write_short(get_user_team(Victim)) // team
message_end()
}
}

stock FindClosesEnemy(entid)
{
new Float:Dist
new Float:maxdistance=300.0
new indexid=0
for(new i=1;i<=get_maxplayers();i++){
if(is_user_alive(i) && is_valid_ent(i) && can_see_fm(entid, i)
&& pev(entid, pev_owner) != i && cs_get_user_team(pev(entid, pev_owner)) != cs_get_user_team(i))
{
Dist = entity_range(entid, i)
if(Dist <= maxdistance)
{
maxdistance=Dist
indexid=i

return indexid
}
}
}
return 0
}

stock bool:can_see_fm(entindex1, entindex2)
{
if (!entindex1 || !entindex2)
return false

if (pev_valid(entindex1) && pev_valid(entindex1))
{
new flags = pev(entindex1, pev_flags)
if (flags & EF_NODRAW || flags & FL_NOTARGET)
{
return false
}

new Float:lookerOrig[3]
new Float:targetBaseOrig[3]
new Float:targetOrig[3]
new Float:temp[3]

pev(entindex1, pev_origin, lookerOrig)
pev(entindex1, pev_view_ofs, temp)
lookerOrig[0] += temp[0]
lookerOrig[1] += temp[1]
lookerOrig[2] += temp[2]

pev(entindex2, pev_origin, targetBaseOrig)
pev(entindex2, pev_view_ofs, temp)
targetOrig[0] = targetBaseOrig [0] + temp[0]
targetOrig[1] = targetBaseOrig [1] + temp[1]
targetOrig[2] = targetBaseOrig [2] + temp[2]

engfunc(EngFunc_TraceLine, lookerOrig, targetOrig, 0, entindex1, 0) // checks the had of seen player
if (get_tr2(0, TraceResult:TR_InOpen) && get_tr2(0, TraceResult:TR_InWater))
{
return false
}
else
{
new Float:flFraction
get_tr2(0, TraceResult:TR_flFraction, flFraction)
if (flFraction == 1.0 || (get_tr2(0, TraceResult:TR_pHit) == entindex2))
{
return true
}
else
{
targetOrig[0] = targetBaseOrig [0]
targetOrig[1] = targetBaseOrig [1]
targetOrig[2] = targetBaseOrig [2]
engfunc(EngFunc_TraceLine, lookerOrig, targetOrig, 0, entindex1, 0) // checks the body of seen player
get_tr2(0, TraceResult:TR_flFraction, flFraction)
if (flFraction == 1.0 || (get_tr2(0, TraceResult:TR_pHit) == entindex2))
{
return true
}
else
{
targetOrig[0] = targetBaseOrig [0]
targetOrig[1] = targetBaseOrig [1]
targetOrig[2] = targetBaseOrig [2] - 17.0
engfunc(EngFunc_TraceLine, lookerOrig, targetOrig, 0, entindex1, 0) // checks the legs of seen player
get_tr2(0, TraceResult:TR_flFraction, flFraction)
if (flFraction == 1.0 || (get_tr2(0, TraceResult:TR_pHit) == entindex2))
{
return true
}
}
}
}
}
return false
}

stock turn_to_target(ent, Float:Ent_Origin[3], target, Float:Vic_Origin[3])
{
if(target)
{
new Float:newAngle[3]
entity_get_vector(ent, EV_VEC_angles, newAngle)
new Float:x = Vic_Origin[0] - Ent_Origin[0]
new Float:z = Vic_Origin[1] - Ent_Origin[1]

new Float:radians = floatatan(z/x, radian)
newAngle[1] = radians * (180 / 3.14)
if (Vic_Origin[0] < Ent_Origin[0])
newAngle[1] -= 180.0

entity_set_vector(ent, EV_VEC_angles, newAngle)
}
}

stock hook_ent(ent, victim, Float:speed)
{
static Float:fl_Velocity[3]
static Float:VicOrigin[3], Float:EntOrigin[3]

pev(ent, pev_origin, EntOrigin)
pev(victim, pev_origin, VicOrigin)

static Float:distance_f
distance_f = get_distance_f(EntOrigin, VicOrigin)

if (distance_f > 10.0)
{
new Float:fl_Time = distance_f / speed

fl_Velocity[0] = (VicOrigin[0] - EntOrigin[0]) / fl_Time
fl_Velocity[1] = (VicOrigin[1] - EntOrigin[1]) / fl_Time
fl_Velocity[2] = (VicOrigin[2] - EntOrigin[2]) / fl_Time
} else
{
fl_Velocity[0] = 0.0
fl_Velocity[1] = 0.0
fl_Velocity[2] = 0.0
}

entity_set_vector(ent, EV_VEC_velocity, fl_Velocity)
}
yukish
14.5.2014, 15:28 помогите срочно как бороться с обход баном?
найди вот этот plugin CsxBans 1.7. он может банить под сеть, у него хорошие функции.

ps.gif я не говорил что можно банить под сеть через простой бан систему
rus26
14.5.2014, 15:05 помогите срочно как бороться с обход баном?
а кикнуть player возможна ? кикни напиши amx_last увидишь его ip и steamid . next:
amx_addban ip 0
amx_addban "steamid" 0
rus26
13.5.2014, 17:32 bazooka_india на базе awp_india
Цитата(serfreeman1337 @ 13.5.2014, 16:27) *
Там натив
Код:
give_bazooka(id)

Код:
public plugin_natives()      register_native("give_bazooka", "give_bazooka", 1)



thank_you2.gif
yukish
13.5.2014, 14:37 bazooka_india на базе awp_india
простой способ думаю должен работать
Код:
#include <amxmodx>
#include <fun>
#include <cstrike>
#include <engine>
#include <hamsandwich>

native give_bazooka(id)

new ent1, ent2

public plugin_init()
{
register_plugin("AWP_INDIA Weapon Giver", "0.3", "S0m3Th1nG_AwFul!")

new mapname[32]
get_mapname(mapname,31)
if(equali(mapname,"awp_india"))
{
ents_removing()
RegisterHam(Ham_Spawn, "player", "Player_Spawn", 1)
}
}

public ents_removing()
{
while((ent1 = find_ent_by_class(ent1,"game_player_equip") != 0) || (ent2 = find_ent_by_class(ent2, "player_weaponstrip") != 0))
{
remove_entity(find_ent_by_class(ent1, "game_player_equip"))
remove_entity(find_ent_by_class(ent2, "player_weaponstrip"))
}
}

public Player_Spawn(id)
{
if(is_user_alive(id))
{
strip_user_weapons(id)
give_bazooka(id)
give_item(id, "weapon_knife")
}
}
yukish
13.5.2014, 14:30 bazooka_india на базе awp_india
возьми вот этот bazooka вчера нашел. простой, нету лишних добавок, толка есть zoom как у awp

Код:
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <cstrike>

#define PLUGIN "[aBc JB] Bazooka Duel"
#define VERSION "1.0"
#define AUTHOR "Dias/ Editet By CH0CaPIC For JB"

#define weapon_at4cs "weapon_m249"
#define CSW_AT4CS CSW_M249

#define TASK_CHECKRELOAD 111112
#define TASK_RELOAD 111113

new g_at4cs
new g_had_at4cs[33], Float:g_lastfire[33], Float:g_lastaim[33], g_aiming[33],
g_smoke_id, g_spr_trail, g_spr_exp, is_reloading[33],
cvar_radius, cvar_maxdamage

new const v_model[] = "models/aBcJB_SNK1/v_at4ex.mdl"
new const p_model[] = "models/aBcJB_SNK1/p_at4ex.mdl"
new const w_model[] = "models/aBcJB_SNK1/w_at4ex.mdl"
new const s_model[] = "models/aBcJB_SNK1/s_rocket.mdl"

new const at4cs_sound[5][] = {
"weapons/at4-1.wav", // Fire Sound
"weapons/at4_clipin1.wav", // Clip in 1
"weapons/at4_clipin2.wav", // Clip in 2
"weapons/at4_clipin3.wav", // Clip in 3
"weapons/at4_draw.wav" // Draw
}

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_event("CurWeapon", "event_curweapon", "be", "1=1")
register_event("HLTV", "event_newround", "a", "1=0", "2=0")

register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1)
register_forward(FM_CmdStart, "fw_CmdStart")
register_forward(FM_SetModel, "fw_SetModel")

register_think("at4ex_rocket", "fw_rocket_think")
register_touch("at4ex_rocket", "*", "fw_rocket_touch")

RegisterHam(Ham_Weapon_Reload, weapon_at4cs, "fw_WeaponReload")
RegisterHam(Ham_Item_AddToPlayer, weapon_at4cs, "fw_AddToPlayer", 1)

cvar_radius = register_cvar("zp_at4cs_radius", "300.0")
cvar_maxdamage = register_cvar("zp_at4cs_maxdamage", "650.0")

register_clcmd("weapon_at4cs", "hook_weapon")
register_clcmd("say /bz", "give_bazooka")
}

public hook_weapon(id)
{
engclient_cmd(id, weapon_at4cs)
return PLUGIN_HANDLED
}

public plugin_precache()
{
engfunc(EngFunc_PrecacheModel, v_model)
engfunc(EngFunc_PrecacheModel, p_model)
engfunc(EngFunc_PrecacheModel, w_model)
engfunc(EngFunc_PrecacheModel, s_model)

engfunc(EngFunc_PrecacheGeneric, "sprites/weapon_at4cs.txt")
engfunc(EngFunc_PrecacheGeneric, "sprites/at4cs.spr")

g_smoke_id = engfunc(EngFunc_PrecacheModel, "sprites/effects/rainsplash.spr")
g_spr_trail = engfunc(EngFunc_PrecacheModel,"sprites/xbeam3.spr")
g_spr_exp = engfunc(EngFunc_PrecacheModel,"sprites/zerogxplode.spr")

for(new i = 0; i < sizeof(at4cs_sound); i++)
engfunc(EngFunc_PrecacheSound, at4cs_sound[i])
}

public give_bazooka(id, itemid)
{
if(itemid != g_at4cs)
return PLUGIN_HANDLED

g_had_at4cs[id] = 1
is_reloading[id] = 0
g_aiming[id] = 0

fm_give_item(id, weapon_at4cs)

static at4cs
at4cs = fm_get_user_weapon_entity(id, CSW_AT4CS)

cs_set_weapon_ammo(at4cs, 1)
cs_set_user_bpammo(id, CSW_AT4CS, 10)

return PLUGIN_CONTINUE
}

public plugin_natives() register_native("give_bazooka", "give_bazooka", 1)

public zp_user_infected_post(id)
{
g_had_at4cs[id] = 0
is_reloading[id] = 0
g_aiming[id] = 0

remove_task(id+TASK_CHECKRELOAD)
remove_task(id+TASK_RELOAD)
}

public zp_user_humanized_post(id)
{
g_had_at4cs[id] = 0
is_reloading[id] = 0
g_aiming[id] = 0

remove_task(id+TASK_CHECKRELOAD)
remove_task(id+TASK_RELOAD)
}

public event_newround()
{
remove_entity_name("at4ex_rocket")

for(new i = 0; i < get_maxplayers(); i++)
{
if(is_user_alive(i) && is_user_connected(i))
{
remove_task(i+TASK_CHECKRELOAD)
remove_task(i+TASK_RELOAD)
}
}
}

public event_curweapon(id)
{
if(!is_user_alive(id) || !is_user_connected(id))
return PLUGIN_HANDLED

if(get_user_weapon(id) != CSW_AT4CS || !g_had_at4cs[id])
return PLUGIN_HANDLED

set_pev(id, pev_viewmodel2, v_model)
set_pev(id, pev_weaponmodel2, p_model)

return PLUGIN_CONTINUE
}

public fw_UpdateClientData_Post(id, sendweapons, cd_handle)
{
if(!is_user_alive(id) || !is_user_connected(id))
return FMRES_IGNORED

if(get_user_weapon(id) != CSW_AT4CS || !g_had_at4cs[id])
return FMRES_IGNORED

set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001)

return FMRES_HANDLED
}

public fw_AddToPlayer(ent, id)
{
if(!is_valid_ent(ent) || !is_user_alive(id))
return HAM_IGNORED

if(entity_get_int(ent, EV_INT_impulse) == 61296)
{
g_had_at4cs[id] = 1
entity_set_int(id, EV_INT_impulse, 0)

return HAM_HANDLED
}

if(g_had_at4cs[id])
{
message_begin(MSG_ONE, get_user_msgid("WeaponList"), _, id)
write_string("weapon_at4cs"); // WeaponName
write_byte(3) // PrimaryAmmoID
write_byte(1) // PrimaryAmmoMaxAmount
write_byte(-1) // SecondaryAmmoID
write_byte(-1) // SecondaryAmmoMaxAmount
write_byte(0) // SlotID (0...N)
write_byte(4) // NumberInSlot (1...N)
write_byte(CSW_AT4CS) // WeaponID
write_byte(0) // Flags
message_end()
}

return HAM_HANDLED
}

public fw_CmdStart(id, uc_handle, seed)
{
if(!is_user_alive(id) || !is_user_connected(id))
return FMRES_IGNORED

if(get_user_weapon(id) != CSW_AT4CS || !g_had_at4cs[id])
return FMRES_IGNORED

static CurButton
CurButton = get_uc(uc_handle, UC_Buttons)

if(CurButton & IN_ATTACK)
{
static Float:CurTime
CurTime = get_gametime()

static at4cs
at4cs = fm_find_ent_by_owner(-1, weapon_at4cs, id)

if(cs_get_weapon_ammo(at4cs) > 0 && !is_reloading[id])
{
if(CurTime - 4.5 > g_lastfire[id])
{
set_weapon_anim(id, 1)
emit_sound(id, CHAN_WEAPON, at4cs_sound[0], 1.0, ATTN_NORM, 0, PITCH_NORM)

create_rocket(id)

static Float:Punch_Angles[3]

Punch_Angles[0] = -20.0
Punch_Angles[1] = 0.0
Punch_Angles[2] = 0.0

set_pev(id, pev_punchangle, Punch_Angles)
cs_set_weapon_ammo(at4cs, cs_get_weapon_ammo(at4cs) - 1)

if(cs_get_weapon_ammo(at4cs) <= 0 && !is_reloading[id])
{
if(cs_get_user_bpammo(id, CSW_AT4CS) > 0)
{
set_task(1.0, "at4cs_reload", id)
}
}

if(cs_get_user_zoom(id))
cs_set_user_zoom(id, CS_RESET_ZOOM, 1)

g_lastfire[id] = CurTime
}
} else {
if(!is_reloading[id])
{
if(cs_get_user_bpammo(id, CSW_AT4CS) > 0)
{
if(CurTime - 1.0 > g_lastfire[id])
{
at4cs_reload(id)
g_lastfire[id] = CurTime
}
}
}
}
}

if(CurButton & IN_ATTACK2)
{
static Float:CurTime
CurTime = get_gametime()

if((CurTime - 0.5 > g_lastaim[id]) && !is_reloading[id])
{
if(!g_aiming[id])
{
cs_set_user_zoom(id, CS_SET_FIRST_ZOOM, 1)
g_aiming[id] = 1
} else {
cs_set_user_zoom(id, CS_RESET_ZOOM, 1)
g_aiming[id] = 0
}

g_lastaim[id] = CurTime
}
}

CurButton &= ~IN_ATTACK
set_uc(uc_handle, UC_Buttons, CurButton)

CurButton &= ~IN_RELOAD
set_uc(uc_handle, UC_Buttons, CurButton)

return FMRES_HANDLED
}

public fw_SetModel(ent, const model[])
{
if(!is_valid_ent(ent))
return FMRES_IGNORED

static szClassName[33]
entity_get_string(ent, EV_SZ_classname, szClassName, charsmax(szClassName))

if(!equal(szClassName, "weaponbox"))
return FMRES_IGNORED

static iOwner
iOwner = entity_get_edict(ent, EV_ENT_owner)

if(equal(model, "models/w_m249.mdl"))
{
static at4cs
at4cs = find_ent_by_owner(-1, "weapon_m249", ent)

if(!is_valid_ent(at4cs))
return FMRES_IGNORED;

if(g_had_at4cs[iOwner])
{
entity_set_int(at4cs, EV_INT_impulse, 61296)
g_had_at4cs[iOwner] = 0
entity_set_model(ent, w_model)

return FMRES_SUPERCEDE
}
}

return FMRES_IGNORED
}

public at4cs_reload(id)
{
if(is_reloading[id])
return

is_reloading[id] = 1
set_weapon_anim(id, 3)

set_task(0.1, "checking_reload", id+TASK_CHECKRELOAD, _, _, "b")
set_task(4.0, "reload_complete", id+TASK_RELOAD)
}

public checking_reload(id)
{
id -= TASK_CHECKRELOAD

if(cs_get_user_zoom(id))
cs_set_user_zoom(id, CS_RESET_ZOOM, 1)

if(get_user_weapon(id) != CSW_AT4CS || !g_had_at4cs[id])
{
remove_task(id+TASK_CHECKRELOAD)
remove_task(id+TASK_RELOAD)

is_reloading[id] = 0
}
}

public reload_complete(id)
{
id -= TASK_RELOAD

if(!is_reloading[id])
return

remove_task(id+TASK_CHECKRELOAD)

static at4cs
at4cs = fm_find_ent_by_owner(-1, weapon_at4cs, id)

cs_set_weapon_ammo(at4cs, 1)
cs_set_user_bpammo(id, CSW_AT4CS, cs_get_user_bpammo(id, CSW_AT4CS) - 1)
is_reloading[id] = 0
}

public fw_WeaponReload(ent)
{
static id
id = pev(ent, pev_owner)

if(!is_user_alive(id) || !is_user_connected(id))
return HAM_IGNORED

if(get_user_weapon(id) != CSW_AT4CS || !g_had_at4cs[id])
return HAM_IGNORED

static Float:CurTime
CurTime = get_gametime()

if(!is_reloading[id])
{
if(cs_get_user_bpammo(id, CSW_AT4CS) > 0)
{
if(CurTime - 1.0 > g_lastfire[id])
{
at4cs_reload(id)
g_lastfire[id] = CurTime
}
}
}

return HAM_SUPERCEDE
}

public create_rocket(id)
{
new ent, Float:Origin[3], Float:Angles[3], Float:Velocity[3]

ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))
engfunc(EngFunc_GetAttachment, id, 0, Origin, Angles)
pev(id, pev_angles, Angles)

set_pev(ent, pev_origin, Origin)
set_pev(ent, pev_angles, Angles)
set_pev(ent, pev_solid, 2)
set_pev(ent, pev_movetype, 5)
set_pev(ent, pev_classname, "at4ex_rocket")
set_pev(ent, pev_owner, id)
engfunc(EngFunc_SetModel, ent, s_model)

set_pev(ent, pev_mins, {-1.0, -1.0, -1.0})
set_pev(ent, pev_maxs, {1.0, 1.0, 1.0})

velocity_by_aim(id, 1750, Velocity)
set_pev(ent, pev_velocity, Velocity)

message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMFOLLOW) // TE id
write_short(ent) // entity:attachment to follow
write_short(g_spr_trail) // sprite index
write_byte(25) // life in 0.1's
write_byte(2) // line width in 0.1's
write_byte(255) // r
write_byte(255) // g
write_byte(255) // b
write_byte(200) // brightness
message_end()

set_pev(ent, pev_iuser4, 0)
set_pev(ent, pev_nextthink, halflife_time() + 0.1)
}

public fw_rocket_think(ent)
{
if(!pev_valid(ent))
return

static Float:Origin[3]
pev(ent, pev_origin, Origin)

message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_SPRITE)
engfunc(EngFunc_WriteCoord, Origin[0])
engfunc(EngFunc_WriteCoord, Origin[1])
engfunc(EngFunc_WriteCoord, Origin[2])
write_short(g_smoke_id)
write_byte(2)
write_byte(200)
message_end()

if(pev(ent, pev_iuser4) == 0)
{
static Victim
Victim = FindClosesEnemy(ent)

if(is_user_alive(Victim))
{
set_pev(ent, pev_iuser4, Victim)
}
} else {
static Victim
Victim = pev(ent, pev_iuser4)

if(is_user_alive(Victim))
{
static Float:VicOrigin[3]
pev(Victim, pev_origin, VicOrigin)

turn_to_target(ent, Origin, Victim, VicOrigin)
hook_ent(ent, Victim, 500.0)
} else {
set_pev(ent, pev_iuser4, 0)
}
}

set_pev(ent, pev_nextthink, halflife_time() + 0.075)
}

public fw_rocket_touch(rocket, touch)
{
if(!pev_valid(rocket))
return

if(is_user_alive(touch) && pev(rocket, pev_owner) == touch)
return

static Float:Origin[3]
pev(rocket, pev_origin, Origin)

message_begin(MSG_BROADCAST ,SVC_TEMPENTITY)
write_byte(TE_EXPLOSION)
engfunc(EngFunc_WriteCoord, Origin[0])
engfunc(EngFunc_WriteCoord, Origin[1])
engfunc(EngFunc_WriteCoord, Origin[2])
write_short(g_spr_exp) // sprite index
write_byte(20) // scale in 0.1's
write_byte(30) // framerate
write_byte(0) // flags
message_end()

static owner, iVictim

iVictim = -1
owner = pev(rocket, pev_owner)

while((iVictim = find_ent_in_sphere(iVictim, Origin, get_pcvar_float(cvar_radius))) != 0)
{
if((0 < iVictim < 32) && is_user_alive(iVictim))
{
new Float:MaxDamage, Float:Damage

MaxDamage = get_pcvar_float(cvar_maxdamage)
Damage = random_float(MaxDamage - random_float(0.0, 100.0), MaxDamage + random_float(0.0, 100.0))

ExecuteHam(Ham_TakeDamage, iVictim, 0, owner, 0, DMG_BULLET)

static health
health = get_user_health(iVictim)

if(health - Damage >= 1)
{
fm_set_user_health(iVictim, health - floatround(Damage))
}
else
{
death_message(owner, iVictim, 1)
}
}
}

engfunc(EngFunc_RemoveEntity, rocket)
}

stock set_weapon_anim(id, anim)
{
set_pev(id, pev_weaponanim, anim)

message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, _, id)
write_byte(anim)
write_byte(pev(id,pev_body))
message_end()
}

stock death_message(Killer, Victim, ScoreBoard)
{
// Block death msg
set_msg_block(get_user_msgid("DeathMsg"), BLOCK_SET)
ExecuteHamB(Ham_Killed, Victim, Killer, 2)
set_msg_block(get_user_msgid("DeathMsg"), BLOCK_NOT)

// Death
make_deathmsg(Killer, Victim, 0, "")

// Update score board
if (ScoreBoard)
{
message_begin(MSG_BROADCAST, get_user_msgid("ScoreInfo"))
write_byte(Killer) // id
write_short(pev(Killer, pev_frags)) // frags
write_short(cs_get_user_deaths(Killer)) // deaths
write_short(0) // class?
write_short(get_user_team(Killer)) // team
message_end()

message_begin(MSG_BROADCAST, get_user_msgid("ScoreInfo"))
write_byte(Victim) // id
write_short(pev(Victim, pev_frags)) // frags
write_short(cs_get_user_deaths(Victim)) // deaths
write_short(0) // class?
write_short(get_user_team(Victim)) // team
message_end()
}
}

stock FindClosesEnemy(entid)
{
new Float:Dist
new Float:maxdistance=300.0
new indexid=0
for(new i=1;i<=get_maxplayers();i++){
if(is_user_alive(i) && is_valid_ent(i) && can_see_fm(entid, i)
&& pev(entid, pev_owner) != i && cs_get_user_team(pev(entid, pev_owner)) != cs_get_user_team(i))
{
Dist = entity_range(entid, i)
if(Dist <= maxdistance)
{
maxdistance=Dist
indexid=i

return indexid
}
}
}
return 0
}

stock bool:can_see_fm(entindex1, entindex2)
{
if (!entindex1 || !entindex2)
return false

if (pev_valid(entindex1) && pev_valid(entindex1))
{
new flags = pev(entindex1, pev_flags)
if (flags & EF_NODRAW || flags & FL_NOTARGET)
{
return false
}

new Float:lookerOrig[3]
new Float:targetBaseOrig[3]
new Float:targetOrig[3]
new Float:temp[3]

pev(entindex1, pev_origin, lookerOrig)
pev(entindex1, pev_view_ofs, temp)
lookerOrig[0] += temp[0]
lookerOrig[1] += temp[1]
lookerOrig[2] += temp[2]

pev(entindex2, pev_origin, targetBaseOrig)
pev(entindex2, pev_view_ofs, temp)
targetOrig[0] = targetBaseOrig [0] + temp[0]
targetOrig[1] = targetBaseOrig [1] + temp[1]
targetOrig[2] = targetBaseOrig [2] + temp[2]

engfunc(EngFunc_TraceLine, lookerOrig, targetOrig, 0, entindex1, 0) // checks the had of seen player
if (get_tr2(0, TraceResult:TR_InOpen) && get_tr2(0, TraceResult:TR_InWater))
{
return false
}
else
{
new Float:flFraction
get_tr2(0, TraceResult:TR_flFraction, flFraction)
if (flFraction == 1.0 || (get_tr2(0, TraceResult:TR_pHit) == entindex2))
{
return true
}
else
{
targetOrig[0] = targetBaseOrig [0]
targetOrig[1] = targetBaseOrig [1]
targetOrig[2] = targetBaseOrig [2]
engfunc(EngFunc_TraceLine, lookerOrig, targetOrig, 0, entindex1, 0) // checks the body of seen player
get_tr2(0, TraceResult:TR_flFraction, flFraction)
if (flFraction == 1.0 || (get_tr2(0, TraceResult:TR_pHit) == entindex2))
{
return true
}
else
{
targetOrig[0] = targetBaseOrig [0]
targetOrig[1] = targetBaseOrig [1]
targetOrig[2] = targetBaseOrig [2] - 17.0
engfunc(EngFunc_TraceLine, lookerOrig, targetOrig, 0, entindex1, 0) // checks the legs of seen player
get_tr2(0, TraceResult:TR_flFraction, flFraction)
if (flFraction == 1.0 || (get_tr2(0, TraceResult:TR_pHit) == entindex2))
{
return true
}
}
}
}
}
return false
}

stock turn_to_target(ent, Float:Ent_Origin[3], target, Float:Vic_Origin[3])
{
if(target)
{
new Float:newAngle[3]
entity_get_vector(ent, EV_VEC_angles, newAngle)
new Float:x = Vic_Origin[0] - Ent_Origin[0]
new Float:z = Vic_Origin[1] - Ent_Origin[1]

new Float:radians = floatatan(z/x, radian)
newAngle[1] = radians * (180 / 3.14)
if (Vic_Origin[0] < Ent_Origin[0])
newAngle[1] -= 180.0

entity_set_vector(ent, EV_VEC_angles, newAngle)
}
}

stock hook_ent(ent, victim, Float:speed)
{
static Float:fl_Velocity[3]
static Float:VicOrigin[3], Float:EntOrigin[3]

pev(ent, pev_origin, EntOrigin)
pev(victim, pev_origin, VicOrigin)

static Float:distance_f
distance_f = get_distance_f(EntOrigin, VicOrigin)

if (distance_f > 10.0)
{
new Float:fl_Time = distance_f / speed

fl_Velocity[0] = (VicOrigin[0] - EntOrigin[0]) / fl_Time
fl_Velocity[1] = (VicOrigin[1] - EntOrigin[1]) / fl_Time
fl_Velocity[2] = (VicOrigin[2] - EntOrigin[2]) / fl_Time
} else
{
fl_Velocity[0] = 0.0
fl_Velocity[1] = 0.0
fl_Velocity[2] = 0.0
}

entity_set_vector(ent, EV_VEC_velocity, fl_Velocity)
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1066\\ f0\\ fs16 \n\\ par }
*/
yukish
12.5.2014, 21:16 C4 timer
Код:
#include <amxmodx>
#include <csx>
#include <dhudmessage>

#define PLUGIN "[SoNeeKK1] Bomb Timer"
#define VERSION "0.5"
#define AUTHOR "SoNeeKK1"

new g_c4timer, pointnum;
new bool:b_planted = false;

public plugin_init()
{
register_plugin(PLUGIN,VERSION,AUTHOR);

pointnum = get_cvar_pointer("mp_c4timer");

register_logevent("newRound", 2, "1=Round_Start");
register_logevent("endRound", 2, "1=Round_End");
register_logevent("endRound", 2, "1&Restart_Round_");
}

public newRound()
{
g_c4timer = -1;
remove_task(652450);
b_planted = false;
}

public endRound()
{
g_c4timer = -1;
remove_task(652450);
}

public bomb_planted()
{
b_planted = true;
g_c4timer = get_pcvar_num(pointnum);
dispTime()
set_task(1.0, "dispTime", 652450, "", 0, "b");
}

public bomb_defused()
{
if(b_planted)
{
remove_task(652450);
b_planted = false;
}

}

public bomb_explode()
{
if(b_planted)
{
remove_task(652450);
b_planted = false;
}

}

public dispTime()
{
if(!b_planted)
{
remove_task(652450);
return;
}


if(g_c4timer >= 0)
{
if(g_c4timer > 13) set_dhudmessage(150, 150, 0, 0.03, 0.62, 0, 1.0, 1.0, 0.01, 0.01);
else if(g_c4timer > 7) set_dhudmessage(0, 255, 0, 0.03, 0.62, 0, 1.0, 1.0, 0.01, 0.01);
else set_dhudmessage(255, 0, 0, 0.03, 0.62, 0, 1.0, 1.0, 0.01, 0.01);

show_dhudmessage(0,"BooMb TimER: %d", g_c4timer);

set_task(1.0, "bomb_voice", 8038, "", 0, "b")

--g_c4timer;
}

}

public bomb_voice()
{
if (--g_c4timer > 0)
{
switch(g_c4timer)
{
case 1:client_cmd(0, "mp3 play sound/misc/Play4Fun/1_sec")
case 2:client_cmd(0, "mp3 play sound/misc/Play4Fun/2_sec")
case 3:client_cmd(0, "mp3 play sound/misc/Play4Fun/3_sec")
case 4:client_cmd(0, "mp3 play sound/misc/Play4Fun/4_sec")
case 5:client_cmd(0, "mp3 play sound/misc/Play4Fun/5_sec")
case 6:client_cmd(0, "mp3 play sound/misc/Play4Fun/6_sec")
case 7:client_cmd(0, "mp3 play sound/misc/Play4Fun/7_sec")
case 8:client_cmd(0, "mp3 play sound/misc/Play4Fun/8_sec")
case 9:client_cmd(0, "mp3 play sound/misc/Play4Fun/9_sec")
case 10:client_cmd(0, "mp3 play sound/misc/Play4Fun/10_sec")
case 20:client_cmd(0, "mp3 play sound/misc/Play4Fun/20_sec")
case 30:client_cmd(0, "mp3 play sound/misc/Play4Fun/30_sec")
}
}else
remove_task(8038)
}

public plugin_precache()
{
precache_generic ("sound/misc/Play4Fun/1_sec.mp3")
precache_generic ("sound/misc/Play4Fun/2_sec.mp3")
precache_generic ("sound/misc/Play4Fun/3_sec.mp3")
precache_generic ("sound/misc/Play4Fun/4_sec.mp3")
precache_generic ("sound/misc/Play4Fun/5_sec.mp3")
precache_generic ("sound/misc/Play4Fun/6_sec.mp3")
precache_generic ("sound/misc/Play4Fun/7_sec.mp3")
precache_generic ("sound/misc/Play4Fun/8_sec.mp3")
precache_generic ("sound/misc/Play4Fun/9_sec.mp3")
precache_generic ("sound/misc/Play4Fun/10_sec.mp3")
precache_generic ("sound/misc/Play4Fun/20_sec.mp3")
precache_generic ("sound/misc/Play4Fun/30_sec.mp3")
}


вот попробуй
victor7073
2.5.2014, 0:14 Ищу плагин /rs
я забыл со звукам:

cvar:
rs_sound 1/0
Adrenal1n4ik
2.5.2014, 0:10 Ищу плагин /rs
вот попробуй
Adrenal1n4ik
27.4.2014, 10:32 PrivateMessage
Developer
csnet
у этих нету меню, там надо писать так say /pm name sms.
я хочу как на снимке .

Цитата(Fred Perry @ 26.4.2014, 23:04) *
Пробуй
Код:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>

#define PLUGIN "PrivateMessage"
#define VERSION "1.0"
#define AUTHOR "CrAsH"

new szPlayerPM[33]
new szPlayerPMBlockAll[33]
new szPlayerPMBlock[33][33]

static const g_Sound[] = "pm/sms.wav"

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_clcmd("say /pm", "MainMenu")
register_clcmd("say_team /pm", "MainMenu")

register_clcmd("pm", "PMessage")

register_dictionary("pm.txt")
}

public plugin_precache()
{
precache_sound( g_Sound )
}

public MainMenu(id)
{
new szTitle[512]
new szItem[512]

formatex(szTitle, charsmax( szTitle ), "%L", id, "PM_MAINMENU_TITLE")
new szMenu = menu_create(szTitle, "MainMenu_handler" )

formatex(szItem, charsmax( szItem ), "%L", id, "PM_MAINMENU_ITEM_1")
menu_additem(szMenu, szItem, "1", 0 )

formatex(szItem, charsmax( szItem ), "%L", id, "PM_MAINMENU_ITEM_2")
menu_additem(szMenu, szItem, "2", 0 )

menu_setprop(szMenu, MPROP_EXIT, MEXIT_ALL )
menu_setprop(szMenu, MPROP_NEXTNAME, "Далее")
menu_setprop(szMenu, MPROP_BACKNAME, "Назад")
menu_setprop(szMenu, MPROP_EXITNAME, "Выход")
menu_display(id, szMenu, 0)

return PLUGIN_HANDLED
}

public MainMenu_handler(id, szMenu, szItem)
{
if(szItem == MENU_EXIT)
{
menu_destroy( szMenu )
return PLUGIN_HANDLED
}

new szData[6], szName[64], szAccess, szCallback
menu_item_getinfo(szMenu, szItem, szAccess, szData, charsmax( szData ), szName, charsmax( szName ), szCallback)

new szKey = str_to_num( szData )

switch( szKey )
{
case 1:
{
PlayerMenu(id)
}

case 2:
{
BlockMenu(id)
}
}
menu_destroy( szMenu )
return PLUGIN_HANDLED
}

public PlayerMenu(id)
{
new szTitle[512]
new szItem[512]

formatex(szTitle, charsmax( szTitle ), "%L", id, "PM_PLAYERMENU_TITLE")
new szMenu = menu_create(szTitle, "PlayerMenu_handler")

new szPlayers[32]
new szPlayer, szNum
new szName[32], szPlayerNum[10]

get_players(szPlayers, szNum)

for(new i; i < szNum; i++)
{
szPlayer = szPlayers[i]

if(szPlayer == id || is_user_bot(szPlayer) || !is_user_connected(szPlayer) || is_user_hltv(szPlayer))
continue

get_user_name(szPlayer, szName, charsmax( szName ))
num_to_str(szPlayer, szPlayerNum, charsmax( szPlayerNum ))

if(szPlayerPMBlock[szPlayer][id])
{
formatex(szItem, charsmax( szItem ), "%L", id, "PM_PLAYERMENU_BLOCKED", szName)
menu_additem(szMenu, szItem, szPlayerNum, ADMIN_ADMIN)
}else
if(szPlayerPMBlockAll[szPlayer])
{
formatex(szItem, charsmax( szItem ), "%L", id, "PM_PLAYERMENU_BLOCKED", szName)
menu_additem(szMenu, szItem, szPlayerNum, ADMIN_ADMIN)
}else{
menu_additem(szMenu, szName, szPlayerNum, 0)
}
}

menu_setprop(szMenu, MPROP_EXIT, MEXIT_ALL )
menu_setprop(szMenu, MPROP_NEXTNAME, "Далее")
menu_setprop(szMenu, MPROP_BACKNAME, "Назад")
menu_setprop(szMenu, MPROP_EXITNAME, "Выход")
menu_display(id, szMenu, 0)

return PLUGIN_HANDLED
}

public PlayerMenu_handler(id, szMenu, szItem)
{
if(szItem == MENU_EXIT)
{
menu_destroy( szMenu )
return PLUGIN_HANDLED
}

new szData[6], szName[64], szAccess, szCallback
menu_item_getinfo(szMenu, szItem, szAccess, szData, charsmax( szData ), szName, charsmax( szName ), szCallback)

new szPlayer = str_to_num( szData )

szPlayerPM[id] = szPlayer
client_cmd(id, "messagemode pm")
ChatColor(id, "%L", id, "PM_SEND_INFO")

menu_destroy( szMenu )
return PLUGIN_HANDLED
}

public BlockMenu(id)
{
new szTitle[512]
new szItem[512]

formatex(szTitle, charsmax( szTitle ), "%L", id, "PM_BLOCKMENU_TITLE")
new szMenu = menu_create(szTitle, "BlockMenu_handler")

if(!szPlayerPMBlockAll[id])
{
formatex(szItem, charsmax( szItem ), "%L", id, "PM_BLOCKMENU_ITEM_1")
menu_additem(szMenu, szItem, "1", 0 )
}else{
formatex(szItem, charsmax( szItem ), "%L", id, "PM_BLOCKMENU_ITEM_1_1")
menu_additem(szMenu, szItem, "1", 0 )
}

new szPlayers[32]
new szPlayer, szNum
new szName[32], szPlayerNum[10]

get_players(szPlayers, szNum)

for(new i; i < szNum; i++)
{
szPlayer = szPlayers[i]

if(szPlayer == id || is_user_bot(szPlayer) || !is_user_connected(szPlayer) || is_user_hltv(szPlayer))
continue

get_user_name(szPlayer, szName, charsmax( szName ))
num_to_str(szPlayer + 1, szPlayerNum, charsmax( szPlayerNum ))

if(szPlayerPMBlock[id][szPlayer])
{
formatex(szItem, charsmax( szItem ), "%L", id, "PM_PLAYERMENU_BLOCKED", szName)
menu_additem(szMenu, szItem, szPlayerNum, 0)
}else
if(szPlayerPMBlockAll[id])
{
menu_additem(szMenu, szName, szPlayerNum, ADMIN_ADMIN)
}else{
menu_additem(szMenu, szName, szPlayerNum, 0)
}
}

menu_setprop(szMenu, MPROP_EXIT, MEXIT_ALL )
menu_setprop(szMenu, MPROP_NEXTNAME, "Далее")
menu_setprop(szMenu, MPROP_BACKNAME, "Назад")
menu_setprop(szMenu, MPROP_EXITNAME, "Выход")
menu_display(id, szMenu, 0)

return PLUGIN_HANDLED
}

public BlockMenu_handler(id, szMenu, szItem)
{
if(szItem == MENU_EXIT)
{
menu_destroy( szMenu )
return PLUGIN_HANDLED
}

new szData[6], szName[64], szAccess, szCallback
menu_item_getinfo(szMenu, szItem, szAccess, szData, charsmax( szData ), szName, charsmax( szName ), szCallback)

new szItemID = str_to_num( szData )

if(szItemID == 1)
{
if(!szPlayerPMBlockAll[id])
{
szPlayerPMBlockAll[id] = true
ChatColor(id, "%L", id, "PM_BLOCK_ALL")
}else{
szPlayerPMBlockAll[id] = false
ChatColor(id, "%L", id, "PM_UNBLOCK_ALL")
}
}else{
new szPlayer = szItemID - 1

new szNameBlock[32]
get_user_name(szPlayer, szNameBlock, charsmax( szNameBlock ))

if(!szPlayerPMBlock[id][szPlayer])
{
szPlayerPMBlock[id][szPlayer] = true
ChatColor(id, "%L", id, "PM_BLOCK_PLAYER", szNameBlock)
}else{
szPlayerPMBlock[id][szPlayer] = false
ChatColor(id, "%L", id, "PM_UNBLOCK_PLAYER", szNameBlock)
}
}

menu_destroy( szMenu )
return PLUGIN_HANDLED
}

public PMessage(id)
{
if(!szPlayerPM[id])
{
ChatColor(id, "%L", id, "PM_NOPLAYER")
return PLUGIN_HANDLED
}

if(!is_user_connected(szPlayerPM[id]))
{
ChatColor(id, "%L", id, "PM_NOPLAYER_CONNECT")
return PLUGIN_HANDLED
}

new szMessage[192]

read_args(szMessage, charsmax( szMessage ))
remove_quotes( szMessage )

while (replace(szMessage, charsmax( szMessage ), "q", "й")) {}
while (replace(szMessage, charsmax( szMessage ), "w", "ц")) {}
while (replace(szMessage, charsmax( szMessage ), "e", "у")) {}
while (replace(szMessage, charsmax( szMessage ), "r", "к")) {}
while (replace(szMessage, charsmax( szMessage ), "t", "е")) {}
while (replace(szMessage, charsmax( szMessage ), "y", "н")) {}
while (replace(szMessage, charsmax( szMessage ), "u", "г")) {}
while (replace(szMessage, charsmax( szMessage ), "i", "ш")) {}
while (replace(szMessage, charsmax( szMessage ), "o", "щ")) {}
while (replace(szMessage, charsmax( szMessage ), "p", "з")) {}
while (replace(szMessage, charsmax( szMessage ), "[", "х")) {}
while (replace(szMessage, charsmax( szMessage ), "]", "ъ")) {}
while (replace(szMessage, charsmax( szMessage ), "a", "ф")) {}
while (replace(szMessage, charsmax( szMessage ), "s", "ы")) {}
while (replace(szMessage, charsmax( szMessage ), "d", "в")) {}
while (replace(szMessage, charsmax( szMessage ), "f", "а")) {}
while (replace(szMessage, charsmax( szMessage ), "g", "п")) {}
while (replace(szMessage, charsmax( szMessage ), "h", "р")) {}
while (replace(szMessage, charsmax( szMessage ), "j", "о")) {}
while (replace(szMessage, charsmax( szMessage ), "k", "л")) {}
while (replace(szMessage, charsmax( szMessage ), "l", "д")) {}
while (replace(szMessage, charsmax( szMessage ), ";", "ж")) {}
while (replace(szMessage, charsmax( szMessage ), "'", "э")) {}
while (replace(szMessage, charsmax( szMessage ), "z", "я")) {}
while (replace(szMessage, charsmax( szMessage ), "x", "ч")) {}
while (replace(szMessage, charsmax( szMessage ), "c", "с")) {}
while (replace(szMessage, charsmax( szMessage ), "v", "м")) {}
while (replace(szMessage, charsmax( szMessage ), "b", "и")) {}
while (replace(szMessage, charsmax( szMessage ), "n", "т")) {}
while (replace(szMessage, charsmax( szMessage ), "m", "ь")) {}
while (replace(szMessage, charsmax( szMessage ), ",", "б")) {}
while (replace(szMessage, charsmax( szMessage ), ".", "ю")) {}
while (replace(szMessage, charsmax( szMessage ), "Q", "Й")) {}
while (replace(szMessage, charsmax( szMessage ), "W", "Ц")) {}
while (replace(szMessage, charsmax( szMessage ), "E", "У")) {}
while (replace(szMessage, charsmax( szMessage ), "R", "К")) {}
while (replace(szMessage, charsmax( szMessage ), "T", "Е")) {}
while (replace(szMessage, charsmax( szMessage ), "Y", "Н")) {}
while (replace(szMessage, charsmax( szMessage ), "U", "Г")) {}
while (replace(szMessage, charsmax( szMessage ), "I", "Ш")) {}
while (replace(szMessage, charsmax( szMessage ), "O", "Щ")) {}
while (replace(szMessage, charsmax( szMessage ), "P", "З")) {}
while (replace(szMessage, charsmax( szMessage ), "{", "Х")) {}
while (replace(szMessage, charsmax( szMessage ), "}", "Ъ")) {}
while (replace(szMessage, charsmax( szMessage ), "A", "Ф")) {}
while (replace(szMessage, charsmax( szMessage ), "S", "Ы")) {}
while (replace(szMessage, charsmax( szMessage ), "D", "В")) {}
while (replace(szMessage, charsmax( szMessage ), "F", "А")) {}
while (replace(szMessage, charsmax( szMessage ), "G", "П")) {}
while (replace(szMessage, charsmax( szMessage ), "H", "Р")) {}
while (replace(szMessage, charsmax( szMessage ), "J", "О")) {}
while (replace(szMessage, charsmax( szMessage ), "K", "Л")) {}
while (replace(szMessage, charsmax( szMessage ), "L", "Д")) {}
while (replace(szMessage, charsmax( szMessage ), ":", "Ж")) {}
while (replace(szMessage, charsmax( szMessage ), "Z", "Я")) {}
while (replace(szMessage, charsmax( szMessage ), "X", "Ч")) {}
while (replace(szMessage, charsmax( szMessage ), "C", "С")) {}
while (replace(szMessage, charsmax( szMessage ), "V", "М")) {}
while (replace(szMessage, charsmax( szMessage ), "B", "И")) {}
while (replace(szMessage, charsmax( szMessage ), "N", "Т")) {}
while (replace(szMessage, charsmax( szMessage ), "M", "Ь")) {}
while (replace(szMessage, charsmax( szMessage ), "<", "Б")) {}
while (replace(szMessage, charsmax( szMessage ), ">", "Ю")) {}
new szNamePlayer[32], szNamePlayerPM[32]

get_user_name(id, szNamePlayer, charsmax( szNamePlayer ))
get_user_name(szPlayerPM[id], szNamePlayerPM, charsmax( szNamePlayerPM ))

ChatColor(id, "%L", id, "PM_SEND", szNamePlayerPM, szMessage)
ChatColor(szPlayerPM[id], "%L", id, "PM_SEND", szNamePlayer, szMessage)
client_cmd(szPlayerPM[id], "spk %s", g_Sound)

szPlayerPM[id] = 0
return PLUGIN_HANDLED
}

stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)

replace_all(msg, 190, "!g", "^4")
replace_all(msg, 190, "!y", "^1")
replace_all(msg, 190, "!t", "^3")

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



сейчас попробую
Safety1st
20.4.2014, 22:28 Nano Costum, переделка
Цитата(Fred Perry @ 20.4.2014, 20:54) *
Все норм компилируется

Код:
#include <amxmodx>
#include <fakemeta_util>
#include <cstrike>

#define PLUGIN "Nano Costum"
#define VERSION "1.0"
#define AUTHOR "Na"

new SayText

new g_tool_packs, g_tool_p_invis, g_tool_p_speed, g_tool_speed, g_tool_p_god, g_tool_max_packs, g_tool_time
new g_mtool_item, g_tool_glow_god, g_tool_timelimit, g_tool_regen, g_tool_regen_time
new g_Number[32], Energy_Packs[32]
new Float:g_time_reload[32]
new bool:g_Item[32], g_ability[32], g_ability_esc[32], g_times[32], delete[32], g_speed[32]

new buy_sound[] = { "items/gunpickup2.wav" }
new deactivated[] = { "items/suitchargeno1.wav" }
new invisible_on[] = { "fvox/activated.wav" }
new invisible_off[] = { "fvox/deactivated.wav" }
new speed_on[] = { "fvox/activated.wav" }
new speed_off[] = { "fvox/deactivated.wav" }
new godmode_on[] = { "fvox/activated.wav" }
new godmode_off[] = { "fvox/deactivated.wav" }

new g_MsgHud1
new g_spawn_counter[33] = 0

public plugin_init()
{
g_MsgHud1 = CreateHudSyncObj()
g_tool_packs = register_cvar("extra_packs", "20") // Number of energy packs to extra Item Energy Suit
g_tool_regen = register_cvar("regen_energy", "1") // Regeneration Energy packs? < 1 | 0 >
g_tool_regen_time = register_cvar("regen_time", "1.0") // (If energy_regen = 1) Time Regeneration energy.
g_tool_time = register_cvar("energy_time", "0.5") // Everyone Х will get seconds energy packs
g_tool_p_invis = register_cvar("invisible_packs", "1") // Number Energy packs, has used on energy_time (Invisible)

g_tool_p_speed = register_cvar("speed_packs", "1") // Number Energy packs, has used on energy_time (Speed)
g_tool_speed = register_cvar("speed_added", "1000.0") // Speed for Humans

g_tool_p_god = register_cvar("godmone_packs", "2") // Number Energy packs, has used on energy_time (GODMODE)
g_tool_glow_god = register_cvar("godmode_glow", "1") // Glow On, or off? < 1 | 0 >

g_tool_max_packs = register_cvar("max_packs", "20") // Number Max Energy Packs?
g_tool_timelimit = register_cvar("timelimit", "2.0") // Time after which it will be possible to use ability again

register_concmd("nano", "nanocostum")
register_concmd("say /nano", "nanocostum")
register_concmd("mod","Choosen_Mode")
register_event("ResetHUD", "newSpawn", "be")
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("DeathMsg", "Death_attacker", "a")
register_forward(FM_PlayerPreThink, "fw_PlayerPreThink")
register_clcmd("mtool", "Multimode_Begin")
SayText = get_user_msgid("SayText")
register_dictionary("energy_suit.txt")

register_cvar("NCCost","3000")
}

public plugin_precache()
{
precache_sound( buy_sound )
precache_sound( deactivated )
precache_sound( speed_on )
precache_sound( speed_off )
precache_sound( invisible_on )
precache_sound( invisible_off )
precache_sound( godmode_on )
precache_sound( godmode_off )
}

public nanocostum(id)
{
if(cs_get_user_money(id)<get_cvar_num("NCCost"))
{
client_print(id,print_chat,"Tqven Ar Gaqvt Sakmarisi $ Rom Iyidot Nano Costumi, Tqven Gchirdebat $%d",get_cvar_num("NCCost"))
return PLUGIN_HANDLED
}
cs_set_user_money(id,cs_get_user_money(id) - get_cvar_num("NCCost"),1)
set_task(0.0,"give_lom",id)
return PLUGIN_HANDLED
}

public give_lom(id, item)
{
if( (item == g_mtool_item) && !g_Item[id])
{
g_ability[id] = true; g_times[id] = true; g_Item[id] = true; delete[id] = true;
g_Number[id] = 0;
client_cmd(id, "bind F1 mtool");
client_print(id, print_center, "[Nano Costumi: Uxilavi]")
emit_sound(id, CHAN_STREAM, buy_sound, 1.0, ATTN_NORM, 0, PITCH_NORM)
ChatColor(id, "!y%L", LANG_PLAYER, "EXTRA_MTOOL")
Energy_Packs[id] = get_pcvar_num(g_tool_packs);
if(get_pcvar_num(g_tool_regen) == 1)
set_task(1.0, "Regeneration_Energy", id)

set_task(0.1, "Show_Hud", id, _, _, "b")
}
else
{
if( (item == g_mtool_item) && g_Item[id] )
{
ChatColor(id, "!y %L", LANG_PLAYER, "EXTRA_ON")
}
}
}

public Regeneration_Energy(id)
{
if(g_ability[id] && is_user_alive(id))
{
if(Energy_Packs[id] < get_pcvar_num(g_tool_max_packs))
{

Energy_Packs[id] = Energy_Packs[id] + 1;
set_task(get_pcvar_float(g_tool_regen_time), "Regeneration_Energy", id)
}
else
set_task(1.0, "Regeneration_Energy", id)
}
else
{
set_task(1.0, "Regeneration_Energy", id)
}
}

public newSpawn(id)
{
g_spawn_counter[id]++

if (g_spawn_counter[id] > 2) {
fm_set_user_godmode(id, 0)
g_speed[id] = false;
g_Item[id] = false;
g_times[id] = false;
delete[id] = false;

g_spawn_counter[id] = 0
}
}

public Death_attacker()
{
new id = read_data(2)

if (g_spawn_counter[id] > 2) {
g_speed[id] = false;
g_Item[id] = false;
g_times[id] = false;
delete[id] = false;
}
}

public Show_Hud(id)
{
if( is_user_alive(id) && delete[id])
{
if(!g_ability[id])
{
set_hudmessage(200, 60, 0, 0.47, 0.85, 0, 1.0, get_pcvar_float(g_tool_time), 0.0, 0.0, -1)
ShowSyncHudMsg(id, g_MsgHud1,"%L", LANG_PLAYER, "MTOOL_STATUS", Energy_Packs[id])
}
else
{
set_hudmessage(0, 200, 0, 0.47, 0.85, 0, 1.0, get_pcvar_float(g_tool_time), 0.0, 0.0, -1)
ShowSyncHudMsg(id, g_MsgHud1,"%L", LANG_PLAYER, "MTOOL_STATUS", Energy_Packs[id])
}
}
else
remove_task(id);
}

public fw_PlayerPreThink(id)
{
if (!is_user_alive(id))
return;

if(g_Item[id] && g_speed[id] )
fm_set_user_maxspeed( id , fm_get_user_maxspeed(id) + get_pcvar_float(g_tool_speed))
else
fm_set_user_maxspeed( id , 250.0 )

if(Choosen_Mode(id) && g_Item[id] && g_ability[id])
{
g_time_reload[id] = get_gametime();
g_Number[id] = g_Number[id] + 1;
switch(g_Number[id])
{
case 0:
client_print(id, print_center, "[Nano Costumi: Uchinaroba]")
case 1:
client_print(id, print_center, "[Nano Costumi: Siswrafe]")
case 2:
client_print(id, print_center, "[Nano Costumi: Usikvdiloba]")
case 3:
client_print(id, print_center, "[Nano Costumi: Gravitacia]")
case 4:
{
client_print(id, print_center, "[Nano Costumi: Uxilavoba]")
g_Number[id] = 0;
}
}
}
}

public Choosen_Mode(id)
{
if (!g_Item[id] && g_ability[id] )
return false

static buttons
buttons = pev(id, pev_button)

if (!(buttons & IN_RELOAD) && !is_user_bot(id))
return false

static Float:reload
reload = 0.3;
if ( (get_gametime() - g_time_reload[id]) < reload)
return false

return true
}

public Multimode_Begin(id)
{
if(g_Item[id] && is_user_alive(id) && (Energy_Packs[id] >= 1) && g_times[id])
{
switch( g_Number[id] )
{
case 0:
{
if(g_ability[id])
{
g_ability_esc[id] = false;
emit_sound(id, CHAN_STREAM, invisible_on, 1.0, ATTN_NORM, 0, PITCH_NORM)
set_task(0.1, "Invisible", id)
}
else
{
g_ability_esc[id] = true;
emit_sound(id, CHAN_STREAM, invisible_off, 1.0, ATTN_NORM, 0, PITCH_NORM)
set_task(0.1, "Invisible", id)
}
}
case 1:
{
if(g_ability[id])
{
g_ability_esc[id] = false;
emit_sound(id, CHAN_STREAM, speed_on, 1.0, ATTN_NORM, 0, PITCH_NORM)
set_task(0.1, "Speed_Form", id)
}
else
{
g_ability_esc[id] = true;
emit_sound(id, CHAN_STREAM, speed_off, 1.0, ATTN_NORM, 0, PITCH_NORM)
set_task(0.1, "Speed_Form", id)
}
}
case 2:
{
if(g_ability[id])
{
g_ability_esc[id] = false;
emit_sound(id, CHAN_STREAM, godmode_on, 1.0, ATTN_NORM, 0, PITCH_NORM)
set_task(0.1, "GodMode", id)
}
else
{
g_ability_esc[id] = true;
emit_sound(id, CHAN_STREAM, godmode_off, 1.0, ATTN_NORM, 0, PITCH_NORM)
set_task(0.1, "GodMode", id)
}
}
case 3:
{
if(g_ability[id])
{
g_ability_esc[id] = false;
emit_sound(id, CHAN_STREAM, godmode_on, 1.0, ATTN_NORM, 0, PITCH_NORM)
set_task(0.1, "gravity_form", id)
}
else
{
g_ability_esc[id] = true;
emit_sound(id, CHAN_STREAM, godmode_off, 1.0, ATTN_NORM, 0, PITCH_NORM)
set_task(0.1, "gravity_form", id)
}
}
}
}
else
{
if( (Energy_Packs[id] < 1) && g_Item[id])
ChatColor(id, "!y %L", LANG_PLAYER, "NO_ENERGY")

g_speed[id] = false;
}
}

public Reset_Ability(id)
g_times[id] = true;

public Invisible(id)
{
g_ability[id] = false;
if(Energy_Packs[id] > 0 && !g_ability_esc[id])
{
fm_set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0)
Energy_Packs[id] = Energy_Packs[id] - get_pcvar_num(g_tool_p_invis);
set_task(get_pcvar_float(g_tool_time), "Invisible", id);
}
else
{
if(!g_ability_esc[id])
{
g_ability[id] = true;
ChatColor(id, "!y %L", LANG_PLAYER, "ENERGY_END")
Energy_Packs[id] = 0;
emit_sound(id, CHAN_STREAM, deactivated, 1.0, ATTN_NORM, 0, PITCH_NORM)
fm_set_rendering( id, 0, 0, 0, 0, kRenderNormal, 25 )
}
else
{
g_ability[id] = true;
fm_set_rendering( id, 0, 0, 0, 0, kRenderNormal, 25 )
}
g_times[id] = false;
set_task(get_pcvar_float(g_tool_timelimit), "Reset_Ability", id)
}
}
public gravity_form(id)
{
g_ability[id] = false;
if(Energy_Packs[id] > 0 && !g_ability_esc[id])
{
fm_set_user_gravity(id, 0.3)
Energy_Packs[id] = Energy_Packs[id] - get_pcvar_num(g_tool_p_invis);
set_task(get_pcvar_float(g_tool_time), "gravity_form", id);
}
else
{
if(!g_ability_esc[id])
{
g_ability[id] = true;
ChatColor(id, "!y %L", LANG_PLAYER, "ENERGY_END")
Energy_Packs[id] = 0;
emit_sound(id, CHAN_STREAM, deactivated, 1.0, ATTN_NORM, 0, PITCH_NORM)
fm_set_user_gravity(id, 1.0)
}
else
{
g_ability[id] = true;
fm_set_user_gravity(id, 1.0)
}
g_times[id] = false;
set_task(get_pcvar_float(g_tool_timelimit), "Reset_Ability", id)
}
}
public Speed_Form(id)
{
g_ability[id] = false;
if(Energy_Packs[id] > 0 && !g_ability_esc[id])
{
g_speed[id] = true;
Energy_Packs[id] = Energy_Packs[id] - get_pcvar_num(g_tool_p_speed);
set_task(get_pcvar_float(g_tool_time), "Speed_Form", id);
}
else
{
if(!g_ability_esc[id])
{
emit_sound(id, CHAN_STREAM, deactivated, 1.0, ATTN_NORM, 0, PITCH_NORM)
ChatColor(id, "!y %L", LANG_PLAYER, "ENERGY_END")
g_speed[id] = false;
Energy_Packs[id] = 0;
g_ability[id] = true;
}
else
g_ability[id] = true;
g_speed[id] = false;
g_times[id] = false;
set_task(get_pcvar_float(g_tool_timelimit), "Reset_Ability", id)
}
}

public GodMode(id)
{
g_ability[id] = false;
if(Energy_Packs[id] > 0 && !g_ability_esc[id])
{
fm_set_user_godmode(id, 1)
if(get_pcvar_num(g_tool_glow_god) == 1)
fm_set_rendering(id, kRenderFxGlowShell, 200, 200, 0, kRenderNormal, 12)
Energy_Packs[id] = Energy_Packs[id] - get_pcvar_num(g_tool_p_god);
set_task(get_pcvar_float(g_tool_time), "GodMode", id);
}
else
{
if(!g_ability_esc[id])
{
emit_sound(id, CHAN_STREAM, deactivated, 1.0, ATTN_NORM, 0, PITCH_NORM)
ChatColor(id, "!y %L", LANG_PLAYER, "ENERGY_END")
Energy_Packs[id] = 0;
g_ability[id] = true;
fm_set_rendering( id, 0, 0, 0, 0, kRenderNormal, 25 )
}
else
{
g_ability[id] = true;
fm_set_rendering( id, 0, 0, 0, 0, kRenderNormal, 25 )
}
fm_set_user_godmode(id, 0)
g_times[id] = false;
set_task(get_pcvar_float(g_tool_timelimit), "Reset_Ability", id)
}
}

stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)

replace_all(msg, 190, "!g", "^4") // Green Color
replace_all(msg, 190, "!y", "^1") // Default Color
replace_all(msg, 190, "!t", "^3") // Team Color
replace_all(msg, 190, "!t2", "^0") // Team2 Color

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


спасибо большое, но не сохраняет на respawn cray.gif
Justmw
20.4.2014, 0:54 HUD Message в начале раунда
Цитата(trollface @ 19.4.2014, 23:45) *
CH0CAPIC,
там же не 1 должно быть... а 1.0 . тут дробные числа.


я вообще хорошо не разбираюсь но нигде не видел что для effect Был 1.0 or 2.0
seregabeliko