Ако може да се добави в меню-то, когато дадеш ХООК на някой нормален играч след като той излезе да му се премахва ХООК-а, понеже в тази версия, когато дадеш на нормален играч и той излезе, и влезе, ХООК-а си остава.
Преработка на HOOK menu
-
petyrkpetrov
Извън линия - Потребител
- Мнения: 47
- Регистриран на: 08 Окт 2016, 18:53
- Се отблагодари: 8 пъти
Преработка на HOOK menu
MANSION СЪРВЪРИ :
93.123.16.44:27020 - HNS
93.123.16.44:27021 - Dust2 Classic
85.217.196.76:27016 - Long Jump 10/100aa
85.217.196.76:27017 - Dust2 Respawn
93.123.16.44:27020 - HNS
93.123.16.44:27021 - Dust2 Classic
85.217.196.76:27016 - Long Jump 10/100aa
85.217.196.76:27017 - Dust2 Respawn
-
JustInCase
Извън линия - Потребител
- Мнения: 582
- Регистриран на: 14 Окт 2016, 23:31
- Се отблагодари: 4 пъти
- Получена благодарност: 15 пъти
Re: Преработка на HOOK menu
Код за потвърждение: Избери целия код
/*
* §§§§§§§§§§ §§§§§§§§
* §§ §§ §§
* §§§§§§§§§§ §§
* §§ §§ §§§§§§§
* §§ §§ $§§
* §§ §§ §§
* §§ §§ §§§§§§§§
*
*
* Last Edited: 01/02/2016
*
* =============================
* Changelog:
* =============================
* Mod By KilLeR MeN =)
* =============================
* Fb.com/abdetaouab.bouharrak
*/
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>
#include <Hamsandwich>
#define PLUGIN "Spider Menu"
#define VERSION "1.0"
#define AUTHOR "KilLeR MeN =)"
#define RANDOM_NUM random_num(0,255)
enum color {normal = 1, green, team}
enum {HOOK_OFF, HOOK_RELEASE, HOOK_ON}
new gAllowedHook[33]
new bool:g_bCanUseHook[33]
new g_bIsHooked[33]
new g_iHookOrigin[33][3]
new g_SpriteBeam
new g_iMaxPlayers
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_forward(FM_Think, "fw_ThinkEnt")
register_clcmd("say /hook", "menuHook");
register_clcmd("showmenu", "menuHook");
register_clcmd("+hook", "HookOn")
register_clcmd("-hook", "HookOff")
new iEnt = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString , "info_target"))
set_pev(iEnt, pev_classname, "hook_think")
set_pev(iEnt, pev_nextthink, get_gametime() + 0.1)
RegisterHam(Ham_Spawn, "player", "fw_player_respawn", 1)
g_iMaxPlayers = get_maxplayers()
}
public fw_player_respawn(id)
{
if(!is_user_alive(id) || !is_user_connected(id))
return PLUGIN_HANDLED
if(get_user_flags(id) & ADMIN_KICK)
gAllowedHook[id] = true
return PLUGIN_HANDLED
}
public menuHook(id){
if (!(get_user_flags(id) & ADMIN_KICK)){
ColorChat(id,"^4[AS] ^1You Are Not Admin ^4 & Thanks");
return PLUGIN_HANDLED;
}
new Menu = menu_create("\r[\y@hiN\r] \wHook Menu ^n", "menuHookHandler");
new szNum[3];
new szName[32];
new players[32];
new buffer[64];
new iNum;
get_players(players, iNum ,"ch");
for (new i=0; i < iNum; i++){
new p = players[i];
get_user_name(p, szName, charsmax(szName));
formatex(buffer, charsmax(buffer), "%s - [%s\w]", szName, gAllowedHook[p]?"\yON":"\rOFF");
num_to_str(p, szNum, charsmax(szNum));
menu_additem(Menu, buffer, szNum);
}
menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, Menu);
return PLUGIN_HANDLED;
}
public menuHookHandler(id, Menu, item){
if(item == MENU_EXIT){
menu_destroy(Menu);
return PLUGIN_HANDLED;
}
new szName[32]
new Data[7], Name[64];
new Access, Callback;
get_user_name(id,szName,charsmax (szName))
menu_item_getinfo(Menu, item, Access, Data, 5, Name, 63, Callback);
new p = str_to_num(Data);
new sName[32]
get_user_name(p, sName, charsmax(szName))
new name[33]
get_user_name(id, name, charsmax(name))
gAllowedHook[p] = !gAllowedHook[p];
ColorChat(0,"^1Someone ^4%s^1 ^3%s^1.",gAllowedHook[p] ? "^3give ^1hook to":"^3remove ^1hook to",sName);
client_cmd(id, "showmenu");
return PLUGIN_HANDLED;
}
public plugin_precache()
{
precache_sound("weapons/usp2.wav")
g_SpriteBeam = engfunc(EngFunc_PrecacheModel, "sprites/zbeam1.spr")
}
public client_connect(id)
gAllowedHook[id] = false
public client_putinserver(id)
{
g_bIsHooked[id] = HOOK_OFF
if(get_user_flags(id) & ADMIN_KICK)
gAllowedHook[id] = true
}
public client_disconnect(id)
{
g_bIsHooked[id] = HOOK_OFF
gAllowedHook[id] = false
}
public HookOn(id)
{
if(!g_bCanUseHook[id] && !gAllowedHook[id])
return PLUGIN_HANDLED
if(is_user_connected(id) && is_user_alive(id) )
{
get_user_origin(id, g_iHookOrigin[id], 3)
if(callfunc_begin("DetectCheat","Killer.amxx") == 1)
{
callfunc_push_int(id)
callfunc_push_str("Hook")
callfunc_end()
}
g_bIsHooked[id] = HOOK_ON
emit_sound(id, CHAN_STATIC, "weapons/usp2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
}
return PLUGIN_HANDLED
}
public HookOff(id)
{
g_bIsHooked[id] = HOOK_RELEASE
return PLUGIN_HANDLED
}
public fw_ThinkEnt(iEnt)
{
if (pev_valid(iEnt))
{
static ClassName[33]
pev(iEnt, pev_classname, ClassName, 32)
if(equal(ClassName, "hook_think"))
{
fw_HookThink()
set_pev(iEnt, pev_nextthink, get_gametime() + 0.1)
}
}
}
public fw_HookThink()
{
static id, origin[3], Float:velocity[3], distance
for(id = 1 ; id <= g_iMaxPlayers ; id++)
{
if(g_bIsHooked[id] == HOOK_ON )
{
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(1) // TE_BEAMENTPOINT
write_short(id) // entid
write_coord(g_iHookOrigin[id][0]) // origin
write_coord(g_iHookOrigin[id][1]) // origin
write_coord(g_iHookOrigin[id][2]) // origin
write_short(g_SpriteBeam) // sprite index
write_byte(0) // start frame
write_byte(0) // framerate
write_byte(2) // life
write_byte(30) // width
write_byte(0)
write_byte(RANDOM_NUM) // r
write_byte(RANDOM_NUM) // g
write_byte(RANDOM_NUM) // b
write_byte(500) // brightness
write_byte(0) // speed
message_end()
get_user_origin(id, origin)
distance = get_distance(g_iHookOrigin[id], origin)
if(distance > 25)
{
velocity[0] = (g_iHookOrigin[id][0] - origin[0]) * (2.0 * 350 / distance)
velocity[1] = (g_iHookOrigin[id][1] - origin[1]) * (2.0 * 350 / distance)
velocity[2] = (g_iHookOrigin[id][2] - origin[2]) * (2.0 * 350 / distance)
set_pev(id, pev_velocity, velocity)
}
}
else if(g_bIsHooked[id] == HOOK_RELEASE)
{
g_bIsHooked[id] = HOOK_OFF
}
}
}
stock ColorChat( const id, const input[ ], any:... )
{
new count = 1, players[ 32 ]
static msg[ 191 ]
vformat( msg, 190, input, 3 )
replace_all( msg, 190, ".v", "^4" ) /* vert */
replace_all( msg, 190, ".y", "^1" ) /* yellow/blanc */
replace_all( msg, 190, ".t", "^3" ) /* ct=Blue| t=red */
replace_all( msg, 190, ".x", "^0" ) /* normal*/
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( );
}
}
}
}
MANSION - HNS : 45.144.155.99:27026
ONLINE
ONLINE
-
petyrkpetrov
Извън линия - Потребител
- Мнения: 47
- Регистриран на: 08 Окт 2016, 18:53
- Се отблагодари: 8 пъти
Re: Преработка на HOOK menu
Супер, благодаря.
MANSION СЪРВЪРИ :
93.123.16.44:27020 - HNS
93.123.16.44:27021 - Dust2 Classic
85.217.196.76:27016 - Long Jump 10/100aa
85.217.196.76:27017 - Dust2 Respawn
93.123.16.44:27020 - HNS
93.123.16.44:27021 - Dust2 Classic
85.217.196.76:27016 - Long Jump 10/100aa
85.217.196.76:27017 - Dust2 Respawn
-
- Подобни теми
- Отговори
- Преглеждания
- Последно мнение
-
- 7 Отговори
- 1326 Преглеждания
-
Последно мнение от bg-bb
-
- 9 Отговори
- 363 Преглеждания
-
Последно мнение от HeatoN
-
- 0 Отговори
- 648 Преглеждания
-
Последно мнение от bg-bb
-
- 1 Отговори
- 1299 Преглеждания
-
Последно мнение от OciXCrom
-
- 8 Отговори
- 1547 Преглеждания
-
Последно мнение от HeatoN
-
- 0 Отговори
- 1459 Преглеждания
-
Последно мнение от qwertymi
-
- 1 Отговори
- 628 Преглеждания
-
Последно мнение от AfterLife
Кой е на линия
Потребители разглеждащи този форум: Bing [Bot] и 2 госта