натъквам се на следния проблем при компилиране на следния код:
Код за потвърждение: Избери целия код
// D:\Steam\steamapps\common\Half-Life\cstrike\addons\amxmodx\scripting\new_hook.sma(89) : warning 217: loose indentation
// D:\Steam\steamapps\common\Half-Life\cstrike\addons\amxmodx\scripting\new_hook.sma(101) : warning 217: loose indentation
// D:\Steam\steamapps\common\Half-Life\cstrike\addons\amxmodx\scripting\new_hook.sma(108) : warning 217: loose indentation
// D:\Steam\steamapps\common\Half-Life\cstrike\addons\amxmodx\scripting\new_hook.sma(111) : warning 217: loose indentation
// D:\Steam\steamapps\common\Half-Life\cstrike\addons\amxmodx\scripting\new_hook.sma(115) : warning 217: loose indentation
// D:\Steam\steamapps\common\Half-Life\cstrike\addons\amxmodx\scripting\new_hook.sma(167) : warning 233: symbol "client_disconnect" is marked as deprecated: Use client_disconnected() instead.
//
// D:\Steam\steamapps\common\Half-Life\cstrike\addons\amxmodx\scripting\new_hook.sma(377) : warning 217: loose indentation
// D:\Steam\steamapps\common\Half-Life\cstrike\addons\amxmodx\scripting\new_hook.sma(381) : warning 217: loose indentation
// D:\Steam\steamapps\common\Half-Life\cstrike\addons\amxmodx\scripting\new_hook.sma(385) : warning 217: loose indentation
// D:\Steam\steamapps\common\Half-Life\cstrike\addons\amxmodx\scripting\new_hook.sma(389) : warning 217: loose indentation
// D:\Steam\steamapps\common\Half-Life\cstrike\addons\amxmodx\scripting\new_hook.sma(372) : warning 204: symbol is assigned a value that is never used: "HSpeed"
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <cstrike>
#include <amxmisc>
#include <engine>
#include <fun>
#include <fakemeta>
#include <hamsandwich>
#include <colorchat>
#define HOOK_LEVEL ADMIN_LEVEL_A // Уровен доÑтупа
#define TRAIL_LIFE 10 // Жизнь полоÑÑ‹
#define TRAIL_WIDTH 10 // Ширина полоÑÑ‹
#define TRAIL_RED 0 // Цвет: КраÑный
#define TRAIL_GREEN 255 // Цвет: Зелёный
#define TRAIL_BLUE 0 // Цвет: Голубой
#define TRAIL_BRIGTHNESS 220 // ЯркоÑÑ‚ÑŒ
#define TRAIL_LIF 10 // Жизнь полоÑÑ‹
#define TRAIL_WIDT 10 // Ширина полоÑÑ‹
#define TRAIL_RE 0 // Цвет: КраÑный
#define TRAIL_GREE 255 // Цвет: Зелёный
#define TRAIL_BLU 255 // Цвет: Голубой
#define TRAIL_BRIGTHNES 220 // ЯркоÑÑ‚ÑŒ
#pragma tabsize 0
new bool:canusehook[32]
new bool:ishooked[32]
new hookorigin[32][3]
new Enable
new Glow, GlowRandom, GlowR, GlowG, GlowB
new Fade, FadeRandom, fadeR, fadeG, fadeB
new gTrail
new HookSpeed
new g_iBeamSprite
new g_speed[33]
new g_shortSpr[6];
new g_short[6][] =
{
"sprites/3dmflared.spr",
"sprites/3dmflaora.spr" ,
"sprites/frostgib.spr" ,
"sprites/ledglow.spr" ,
"sprites/pink.spr" ,
"sprites/star_gib.spr"
}
public plugin_init() {
register_plugin("Hook","2.0","holy show")
register_plugin( "get_user_info", "0.0.1", "holy" );
register_concmd( "amx_getinfo1", "CmdGetInfo", ADMIN_USER, "<name> <info key>" );
register_clcmd("+hook","hook_on",HOOK_LEVEL)
register_clcmd("-hook","hook_off",HOOK_LEVEL)
register_clcmd("hook_speed","Menu_hook")
register_clcmd("hook_give","give_hook",HOOK_LEVEL,"<name|#userid|steamid|@ALL> <on/off>") // Дать/отнÑÑ‚ÑŒ хук
Enable = register_cvar( "hook_enable", "1" ) // Вкл./Выкл. Плагин (По умолчанию Вкл)
Glow = register_cvar( "hook_glow", "1" ) // Ðура при полете Вкл./Выкл. (По умолчанию Вкл)
GlowRandom = register_cvar( "hook_glow_random", "1" ) // Ð Ð°Ð½Ð´Ð¾Ð¼Ð½Ð°Ñ Ð¿Ð¾Ð´Ñветка
GlowR = register_cvar( "hook_glow_r", "255" ) // Цвет ÑвечениÑ(краÑный)
GlowG = register_cvar( "hook_glow_g", "255" ) // Цвет ÑвечениÑ(зеленый)
GlowB = register_cvar( "hook_glow_b", "255" ) // Цвет ÑвечениÑ(Ñиний)
Fade = register_cvar( "hook_screenfade", "0" ) // Затемнение Ñкрана при полете Вкл./Выкл. (По умолчанию Вкл)
FadeRandom = register_cvar( "hook_screenfade_random", "1" ) // ИÑпользовать рандомный цвет (1 - да, 2 -нет)(По умолчанию 1)
fadeR = register_cvar( "hook_fade_r", "255" ) // Цвет Ð·Ð°Ñ‚ÐµÐ¼Ð½ÐµÐ½Ð¸Ñ Ñкрана при полете(краÑный)
fadeG = register_cvar( "hook_fade_g", "255" ) // Цвет Ð·Ð°Ñ‚ÐµÐ¼Ð½ÐµÐ½Ð¸Ñ Ñкрана при полете(зеленый)
fadeB = register_cvar( "hook_fade_b", "255" ) // Цвет Ð·Ð°Ñ‚ÐµÐ¼Ð½ÐµÐ½Ð¸Ñ Ñкрана при полете(Ñиний)
HookSpeed = register_cvar( "hook_speed", "450" ) // СкороÑÑ‚ÑŒ (По умолчанию: 350)
}
public plugin_precache() {
for(new i=0;i<sizeof(g_short);i++)
g_shortSpr[i] = precache_model(g_short[i]);
g_iBeamSprite = precache_model("sprites/lgtning.spr");
gTrail = precache_model("sprites/vselennaya.spr")
precache_sound("action_game/tok.wav")
}
public Menu_hook(id)
{
if(get_user_flags(id) & ADMIN_LEVEL_A)
{
new menu = menu_create("\r(.::\yПаутинка\r::.) \wÐаÑтройка ÑкороÑти паутинки \y!^n\r(.::\yПаутинка\r::.) \wПаутинка ÐдминиÑтрации \y<3^n\r(.::\yПаутинка\r::.) \wÐе балуйÑÑ \y!","menu_hook")
if(g_speed[id] == 0)
{
menu_additem(menu,"ÐÐ¸Ð·ÐºÐ°Ñ \d[\yВкл\d]", "1", 0)
}else{
menu_additem(menu,"ÐÐ¸Ð·ÐºÐ°Ñ \d[\rВыкл\d]", "1", 0)
}
if(g_speed[id] == 1)
{
menu_additem(menu,"Ð¡Ñ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð°Ñ \d[\yВкл\d]", "2", 0)
}else{
menu_additem(menu,"Ð¡Ñ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð°Ñ \d[\rВыкл\d]", "2", 0)
}
if(g_speed[id] == 2)
{
menu_additem(menu,"Ð’Ñ‹ÑÐ¾ÐºÐ°Ñ \d[\yВкл\d]", "3", 0)
}else{
menu_additem(menu,"Ð’Ñ‹ÑÐ¾ÐºÐ°Ñ \d[\rВыкл\d]", "3", 0)
}
menu_setprop(menu , MPROP_NEXTNAME, "Далее")
menu_setprop(menu , MPROP_BACKNAME, "Ðазад")
menu_setprop(menu , MPROP_EXITNAME, "Выход")
menu_setprop(menu , MPROP_EXIT, MEXIT_ALL)
menu_display(id, menu)
}else{
ColorChat(id,BLUE,"^4(.::Паутинка::.) ^3У Ñ‚ÐµÐ±Ñ Ð½ÐµÑ‚ паутины. Хотите купить ? обратитеÑÑŒ к ^4Гл.Ðдмину...")
}
return PLUGIN_HANDLED
}
public menu_hook(id, menu, key)
{
if(key == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new accss, clbck, data[6], name[64], itm
menu_item_getinfo(menu, key, accss, data, 5, name, 63, clbck)
itm = str_to_num(data)
switch(itm)
{
case 1:
{
if(g_speed[id] == 0)
{
ColorChat(id,BLUE,"^3(.::Паутинка::.) ^4Уже уÑтановлено.")
Menu_hook(id)
}else{
g_speed[id] = 0
ColorChat(id,BLUE,"^3(.::Паутинка::.) ^4Ð’Ñ‹ выбрали ÑкороÑÑ‚ÑŒ паутины: ^3низкаÑ.")
}
}
case 2:
{
if(g_speed[id] == 1)
{
ColorChat(id,BLUE,"^3(.::Паутинка::.) ^4Уже уÑтановлено.")
Menu_hook(id)
}else{
g_speed[id] = 1
ColorChat(id,BLUE,"^3(.::Паутинка::.) ^4Ð’Ñ‹ выбрали ÑкороÑÑ‚ÑŒ паутины: ^3ÑтандартнаÑ.")
}
}
case 3:
{
if(g_speed[id] == 2)
{
ColorChat(id,BLUE,"^3(.::Паутинка::.) ^4Уже уÑтановлено.")
Menu_hook(id)
}else{
g_speed[id] = 2
ColorChat(id,BLUE,"^3(.::Паутинка::.) ^4Ð’Ñ‹ выбрали ÑкороÑÑ‚ÑŒ паутины: ^3выÑокаÑ.")
}
}
}
return PLUGIN_HANDLED
}
public client_disconnect(id) {
remove_hook(id)
g_speed[id] = 1
}
public client_putinserver(id) {
remove_hook(id)
g_speed[id] = 1
}
public CmdGetInfo( iPlayer, iLevel, iCId ) {
if( !cmd_access( iPlayer, iLevel, iCId, 3 ) ) {
return PLUGIN_HANDLED;
}
new szArg[ 35 ];
read_argv( 1, szArg, 34 );
new iTarget = cmd_target( iPlayer, szArg, ( CMDTARGET_NO_BOTS | CMDTARGET_OBEY_IMMUNITY ) );
if( !iTarget ) {
return PLUGIN_HANDLED;
}
read_argv( 2, szArg, 34 );
new szData[ 64 ];
get_user_info( iTarget, szArg, szData, 63 );
new szName[ 32 ];
get_user_name( iTarget, szName, 31 );
console_print( iPlayer, "Player: %s", szName );
console_print( iPlayer, "setinfo ^"%s^" ^"%s^"", szArg, szData );
return PLUGIN_HANDLED;
}
// =================================================================================================
public give_hook(id,level,cid) {
if(!cmd_access(id,level,cid,3))
return PLUGIN_HANDLED
new name[32]
get_user_name(id,name,32)
new szarg1[32], szarg2[8], bool:mode
read_argv(1,szarg1,32)
read_argv(2,szarg2,32)
if(equal(szarg2,"on"))
mode = true
if(equal(szarg1,"@ALL")) {
for(new i=1;i<=get_maxplayers();i++) {
if(is_user_connected(i) && is_user_alive(i)) {
canusehook[i-1] = mode
if(mode) {
client_print(i,print_chat,"(.::Паутинка::.) Ðдмин %s дал возможноÑÑ‚ÑŒ возможноÑÑ‚ÑŒ иÑпользовать hook",name)
client_print(i,print_chat,"(.::Паутинка::.) Забиндите '+hook' на кнопку")
}
else
client_print(i,print_chat,"(.::Паутинка::.) Ðдмин %s отнÑл возможноÑÑ‚ÑŒ возможноÑÑ‚ÑŒ иÑпользовать hook",name)
}
}
}
else {
new pid = cmd_target(id,szarg1,2)
if(pid > 0) {
canusehook[pid-1] = mode
if(mode) {
client_print(pid,print_chat,"(.::Паутинка::.) Ðдмин %s дал возможноÑÑ‚ÑŒ возможноÑÑ‚ÑŒ иÑпользовать hook",name)
client_print(pid,print_chat,"(.::Паутинка::.) Забиндите '+hook' на кнопку")
}
else
client_print(pid,print_chat,"(.::Паутинка::.) Ðдмин %s отнÑл возможноÑÑ‚ÑŒ возможноÑÑ‚ÑŒ иÑпользовать hook",name)
}
}
return PLUGIN_HANDLED
}
// =================================================================================================
public hook_on(id,level,cid)
{
if( get_pcvar_num( Enable ) )
{
if(!canusehook[id-1] && !cmd_access(id,level,cid,1))
return PLUGIN_HANDLED
if(get_user_flags(id) & ADMIN_KICK)
{
get_user_origin(id,hookorigin[id-1],3)
if(callfunc_begin("detect_cheat","prokreedz.amxx") == 1) {
callfunc_push_int(id)
callfunc_push_str("Hook")
callfunc_end()
}
ishooked[id-1] = true
emit_sound(id,CHAN_STATIC,"action_game/tok.wav",1.0,ATTN_NORM,0,PITCH_NORM)
set_task(0.1,"hook_task",id,"",0,"ab")
hook_task(id)
func_break(id)
}
if( is_user_alive( id ) && get_pcvar_num( Glow ) )
{
if( is_user_alive( id ) && get_pcvar_num( GlowRandom ) )
{
set_user_rendering(id, kRenderFxGlowShell, random_num( 0,255 ), random_num( 0,255 ), random_num( 0,255 ), kRenderNormal, 16 )
}
else
{
set_user_rendering(id, kRenderFxGlowShell, ( get_pcvar_num( GlowR ) ), ( get_pcvar_num( GlowG ) ), ( get_pcvar_num( GlowB ) ), kRenderNormal, 16 )
}
}
}
else
{
ColorChat(id, RED,"(.::Паутинка::.) ^4Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð°!")
}
if( get_pcvar_num( Fade ) )
{
if( get_pcvar_num( FadeRandom ) )
{
message_begin(MSG_ONE_UNRELIABLE,get_user_msgid("ScreenFade"),{0,0,0}, id)
write_short( 10<<12 )
write_short( 10<<16 )
write_short( 1<<1 )
write_byte random_num( 0,255 )
write_byte random_num( 0,255 )
write_byte random_num( 0,255 )
write_byte( 255 )
message_end()
}
else
{
message_begin(MSG_ONE_UNRELIABLE,get_user_msgid("ScreenFade"),{0,0,0}, id)
write_short( 10<<12 )
write_short( 10<<16 )
write_short( 1<<1 )
write_byte ( get_pcvar_num( fadeR ) )
write_byte ( get_pcvar_num( fadeG ) )
write_byte ( get_pcvar_num( fadeB ) )
write_byte( 255 )
message_end()
}
}
return PLUGIN_HANDLED
}
// =================================================================================================
public is_hooked(id) {
return ishooked[id-1]
}
// =================================================================================================
public hook_off(id) {
remove_hook(id)
if( is_user_alive( id ) && get_pcvar_num( Glow ) )
{
set_user_rendering(id, kRenderFxGlowShell, random_num( 0,0 ), random_num( 0,0 ), random_num( 0,0 ), kRenderNormal, 16 )
}
if( get_pcvar_num( Fade ) )
{
message_begin(MSG_ONE_UNRELIABLE,get_user_msgid("ScreenFade"),{0,0,0}, id)
write_short( 10<<12 )
write_short( 10<<16 )
write_short( 1<<1 )
write_byte ( 255 )
write_byte ( 255 )
write_byte ( 255 )
write_byte( 255 )
message_end()
}
return PLUGIN_HANDLED
}
// =================================================================================================
public hook_task(id) {
if(!is_user_connected(id) || !is_user_alive(id))
remove_hook(id)
remove_beam(id)
f(id)
func_trail(id)
func_trail_ct(id)
new origin[3], Float:velocity[3]
get_user_origin(id,origin)
new distance = get_distance(hookorigin[id-1],origin)
new Float:HSpeed = get_pcvar_float(HookSpeed)
if(distance > 25)
{
if(g_speed[id] == 0)
{
velocity[0] = (hookorigin[id-1][0] - origin[0]) * (4.0 * 100 / distance)
velocity[1] = (hookorigin[id-1][1] - origin[1]) * (4.0 * 100 / distance)
velocity[2] = (hookorigin[id-1][2] - origin[2]) * (4.0 * 100 / distance)
}else if(g_speed[id] == 1){
velocity[0] = (hookorigin[id-1][0] - origin[0]) * (4.0 * 200 / distance)
velocity[1] = (hookorigin[id-1][1] - origin[1]) * (4.0 * 200 / distance)
velocity[2] = (hookorigin[id-1][2] - origin[2]) * (4.0 * 200 / distance)
}else if(g_speed[id] == 2){
velocity[0] = (hookorigin[id-1][0] - origin[0]) * (4.0 * 300 / distance)
velocity[1] = (hookorigin[id-1][1] - origin[1]) * (4.0 * 300 / distance)
velocity[2] = (hookorigin[id-1][2] - origin[2]) * (4.0 * 300 / distance)
}
entity_set_vector(id,EV_VEC_velocity,velocity)
}
else {
entity_set_vector(id,EV_VEC_velocity,Float:{0.0,0.0,0.0})
remove_hook(id)
}
}
// =================================================================================================
public f(id)
{
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(TE_BEAMENTPOINT);
write_short(id); //Ð˜Ð½Ð´ÐµÐºÑ entity
write_coord(hookorigin[id-1][0]); //ÐšÐ¾Ð½ÐµÑ‡Ð½Ð°Ñ Ñ‚Ð¾Ñ‡ÐºÐ° x
write_coord(hookorigin[id-1][1]); //ÐšÐ¾Ð½ÐµÑ‡Ð½Ð°Ñ Ñ‚Ð¾Ñ‡ÐºÐ° y
write_coord(hookorigin[id-1][2]); //ÐšÐ¾Ð½ÐµÑ‡Ð½Ð°Ñ Ñ‚Ð¾Ñ‡ÐºÐ° z
write_short(g_iBeamSprite); //Ð˜Ð½Ð´ÐµÐºÑ Ñпрайта
write_byte(0) //Стартовый кадр
write_byte(1); //СкороÑÑ‚ÑŒ анимации
write_byte(1); //Ð’Ñ€Ð¼ÐµÑ ÑущеÑтвованиÑ
write_byte(42); //Толщина луча
write_byte(30); //ИÑкажение
switch(random(10))
{
case 0:
{
write_byte(255); //Цвет краÑный
write_byte(255); //Цвеи зеленый
write_byte(0); //Цвет Ñиний
}
case 1:
{
write_byte(0); //Цвет краÑный
write_byte(255); //Цвеи зеленый
write_byte(255); //Цвет Ñиний
}
case 2:
{
write_byte(255); //Цвет краÑный
write_byte(0); //Цвеи зеленый
write_byte(255); //Цвет Ñиний
}
case 3:
{
write_byte(75); //Цвет краÑный
write_byte(0); //Цвеи зеленый
write_byte(130); //Цвет Ñиний
}
case 4:
{
write_byte(0); //Цвет краÑный
write_byte(255); //Цвеи зеленый
write_byte(0); //Цвет Ñиний
}
case 5:
{
write_byte(0); //Цвет краÑный
write_byte(0); //Цвеи зеленый
write_byte(255); //Цвет Ñиний
}
case 6:
{
write_byte(255); //Цвет краÑный
write_byte(0); //Цвеи зеленый
write_byte(0); //Цвет Ñиний
}
case 7:
{
write_byte(255); //Цвет краÑный
write_byte(192); //Цвеи зеленый
write_byte(203); //Цвет Ñиний
}
case 8:
{
write_byte(255); //Цвет краÑный
write_byte(20); //Цвеи зеленый
write_byte(147); //Цвет Ñиний
}
case 9:
{
write_byte(0); //Цвет краÑный
write_byte(128); //Цвеи зеленый
write_byte(128); //Цвет Ñиний
}
}
write_byte(2000); //ЯркоÑÑ‚ÑŒ
write_byte(0); //...
message_end();
}
// =================================================================================================
public func_break(id)
{
for(new j=0;j<sizeof(g_shortSpr);j++)
{
new origin[3]
get_user_origin(id,origin,3)
message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},id)
write_byte(TE_SPRITETRAIL) //Спрайт захвата
write_coord(origin[0])
write_coord(origin[1])
write_coord(origin[2]+20)
write_coord(origin[0])
write_coord(origin[1])
write_coord(origin[2]+80)
write_short(g_shortSpr[j]);
write_byte(1)
write_byte(20)
write_byte(4)
write_byte(20)
write_byte(10)
message_end()
}
}
// =================================================================================================
public func_trail(id)
if(cs_get_user_team(id) == CS_TEAM_T)
{
{
{
message_begin (MSG_BROADCAST,SVC_TEMPENTITY)
write_byte (TE_BEAMFOLLOW)
write_short (id)
write_short (gTrail)
write_byte (TRAIL_LIFE)
write_byte (TRAIL_WIDTH)
write_byte (TRAIL_RED)
write_byte (TRAIL_GREEN)
write_byte (TRAIL_BLUE)
write_byte (TRAIL_BRIGTHNESS)
message_end()
}
}
}
public func_trail_ct(id)
if(cs_get_user_team(id) == CS_TEAM_CT)
{
{
{
message_begin (MSG_BROADCAST,SVC_TEMPENTITY)
write_byte (TE_BEAMFOLLOW)
write_short (id)
write_short (gTrail)
write_byte (TRAIL_LIF)
write_byte (TRAIL_WIDT)
write_byte (TRAIL_RE)
write_byte (TRAIL_GREE)
write_byte (TRAIL_BLU)
write_byte (TRAIL_BRIGTHNES)
message_end()
}
}
}
// =================================================================================================
public remove_hook(id) {
if(task_exists(id))
remove_task(id)
remove_beam(id)
ishooked[id-1] = false
}
// =================================================================================================
public remove_beam(id) {
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(99) // TE_KILLBEAM
write_short(id)
message_end()
}
Благодаря предварително!