Если в команде T больше двух человек, то разрешаем выполнять команду sm_s , !s.
PHP:#pragma semicolon 1 #include <sdktools> #include <sdkhooks> #include <lastrequest> new bool:b_s[MAXPLAYERS + 1]; // Использование оружия. // Список блокируемого оружия. new const String:block_weapons_list[][] = { "ak47", "aug", "mp7", "mp9", "scar20", "deagle", "revolver", "usp_silencer", "ump-45", "sawedoff", "nova", "negev", "m249", "m4a1", "m4a1-silencer", "awp", "g3sg1", "ssg08", "glock", "fiveseven", "cz75a", "elite", "decoy", "flashbang", "galilar", "galil", "hkp2000", "incgrenade", "molotov", "hegrenade", "c4", "smokegrenade", "sg556", "taser", "tec9", "p90", "tmp", "ump45", "knife" }; #define Weapon_Count sizeof(block_weapons_list) public OnPluginStart() { RegConsoleCmd("sm_s", Cmd_S); HookEvent("player_spawn", Player_Spawn); } public Action:Cmd_S(client, args) { if (client != 0) { if (IsClientInGame(client) && IsPlayerAlive(client) && GetClientTeam(client) == 2) { if (GetPlayerCount() > 2) // Если в команде T больше двух человек, то выполняем команду !s { b_s[client] = true; RemoveAllPlayersWeapons(client); SetEntityRenderColor(client, 0, 0, 0, 255); PrintToChatAll("%N сдался!"); } } } return Plugin_Handled; } // Запрещает использовать и поднимать запрещенное оружие. public Action:WeaponEquip(client, weapon) { if(GetClientTeam(client) == 2 && b_s[client] == true) // Если игрок в команде Т и b_s[client] == true, то запрещаем поднимать оружие. { decl String:blockWeapon[32]; GetEntityClassname(weapon, blockWeapon, sizeof(blockWeapon)); for(new i = 0; i < Weapon_Count; ++i) { if(strcmp(blockWeapon[7], block_weapons_list[i]) == 0) { return Plugin_Handled; } } } return Plugin_Continue; } public Player_Spawn(Handle:event, const String:name[], bool:dontBroadcast){ new client = GetClientOfUserId(GetEventInt(event, "userid")); if(IsClientInGame(client) && !IsFakeClient(client) && IsPlayerAlive(client) && GetClientTeam(client) == 2) { b_s[client] = false; } } public OnClientPostAdminCheck(client) { SDKHook(client, SDKHook_WeaponEquip, WeaponEquip); } public OnClientDisconnect(client){ b_s[client] = false; SDKUnhook(client, SDKHook_WeaponEquip, WeaponEquip); } /* Stocks */ stock RemoveAllPlayersWeapons(client) { new weaponindex; for (new weaponslot = 0; weaponslot < 5; weaponslot++) { weaponindex = GetPlayerWeaponSlot(client, weaponslot); if (weaponindex != -1) { Util_RemovePlayerItem(client, weaponindex); } } WepLib_GrenadeStripAll(client); } stock Util_RemovePlayerItem(client, weaponindex) { RemovePlayerItem(client, weaponindex); RemoveEdict(weaponindex); } stock WepLib_GrenadeStripAll(client) { new grenade = GetPlayerWeaponSlot(client, 3); while (grenade != -1) { Util_RemovePlayerItem(client, grenade); grenade = GetPlayerWeaponSlot(client, 3); } } public OnAvailableLR(Announced) { for(new i = 1; i <= MaxClients; i++) { if (GetClientTeam(i) == 2) { b_s[i] = false; // Разрешаем игроку поднимать оружие. } } } /* Кол-во живых игроков */ stock int GetPlayerCount(){ int iPlayers; for (int i = 1; i <= MaxClients; i++) { if (IsClientInGame(i) && IsPlayerAlive(i) && GetClientTeam(i) == 2) { iPlayers++; } } return iPlayers; }
Появилась ошибка, до этого неделю нормально работалL 01/19/2016 - 16:04:04: [SM] Native "GetClientTeam" reported: Client 3 is not in game
L 01/19/2016 - 16:04:04: [SM] Displaying call stack trace for plugin "different/!s.smx":
L 01/19/2016 - 16:04:04: [SM] [0] Line 122, C:\Documents and Settings\Admin\������� ����\���������\�������\scripting\!s.sp::OnAvailableLR()
#pragma semicolon 1
#include <sdktools>
#include <sdkhooks>
#include <lastrequest>
new bool:b_s[MAXPLAYERS + 1]; // Использование оружия.
// Список блокируемого оружия.
new const String:block_weapons_list[][] =
{
"ak47", "aug", "mp7", "mp9", "scar20", "deagle", "revolver",
"usp_silencer", "ump-45", "sawedoff", "nova", "negev",
"m249", "m4a1", "m4a1-silencer", "awp", "g3sg1", "ssg08",
"glock", "fiveseven", "cz75a", "elite", "decoy", "flashbang",
"galilar", "galil", "hkp2000", "incgrenade", "molotov", "hegrenade",
"c4", "smokegrenade", "sg556", "taser", "tec9", "p90", "tmp", "ump45",
"knife"
};
#define Weapon_Count sizeof(block_weapons_list)
public OnPluginStart()
{
RegConsoleCmd("sm_s", Cmd_S);
HookEvent("player_spawn", Player_Spawn);
}
public Action:Cmd_S(client, args)
{
if (client != 0)
{
if (IsClientInGame(client) && IsPlayerAlive(client) && GetClientTeam(client) == 2)
{
if (GetPlayerCount() > 2) // Если в команде T больше двух человек, то выполняем команду !s
{
b_s[client] = true;
RemoveAllPlayersWeapons(client);
SetEntityRenderColor(client, 0, 0, 0, 255);
PrintToChatAll("%N сдался!");
}
else if (b_s[client] == true)
{
PrintToChat(client, "Вы уже сдались!");
}
else if (!IsPlayerAlive(client))
{
PrintToChat(client, "Данную команду можно использовать только когда вы живы!");
}
else if (GetClientTeam(client) == 3)
{
PrintToChat(client, "Данная команда доступна только за Террористов!");
}
}
}
return Plugin_Handled;
}
// Запрещает использовать и поднимать запрещенное оружие.
public Action:WeaponEquip(client, weapon)
{
if(IsClientInGame(client) && GetClientTeam(client) == 2 && b_s[client] == true) // Если игрок в команде Т и b_s[client] == true, то запрещаем поднимать оружие.
{
decl String:blockWeapon[32];
GetEntityClassname(weapon, blockWeapon, sizeof(blockWeapon));
for(new i = 0; i < Weapon_Count; ++i)
{
if(strcmp(blockWeapon[7], block_weapons_list[i]) == 0)
{
return Plugin_Handled;
}
}
}
return Plugin_Continue;
}
public Player_Spawn(Handle:event, const String:name[], bool:dontBroadcast){
new client = GetClientOfUserId(GetEventInt(event, "userid"));
if(IsClientInGame(client) && !IsFakeClient(client) && IsPlayerAlive(client) && GetClientTeam(client) == 2)
{
b_s[client] = false;
}
}
public OnClientPostAdminCheck(client)
{
SDKHook(client, SDKHook_WeaponEquip, WeaponEquip);
}
public OnClientDisconnect(client){
b_s[client] = false;
SDKUnhook(client, SDKHook_WeaponEquip, WeaponEquip);
}
/* Stocks */
stock RemoveAllPlayersWeapons(client)
{
new weaponindex;
for (new weaponslot = 0; weaponslot < 5; weaponslot++)
{
weaponindex = GetPlayerWeaponSlot(client, weaponslot);
if (weaponindex != -1)
{
Util_RemovePlayerItem(client, weaponindex);
}
}
WepLib_GrenadeStripAll(client);
}
stock Util_RemovePlayerItem(client, weaponindex)
{
RemovePlayerItem(client, weaponindex);
RemoveEdict(weaponindex);
}
stock WepLib_GrenadeStripAll(client)
{
new grenade = GetPlayerWeaponSlot(client, 3);
while (grenade != -1)
{
Util_RemovePlayerItem(client, grenade);
grenade = GetPlayerWeaponSlot(client, 3);
}
}
public OnAvailableLR(Announced)
{
for(new i = 1; i <= MaxClients; i++)
{
if (IsClientInGame(i) && IsPlayerAlive(i) && GetClientTeam(i) == 2)
{
b_s[i] = false; // Разрешаем игроку поднимать оружие.
}
}
}
/* Кол-во живых игроков */
stock int GetPlayerCount(){
int iPlayers;
for (int i = 1; i <= MaxClients; i++)
{
if (IsClientInGame(i) && IsPlayerAlive(i) && GetClientTeam(i) == 2)
{
iPlayers++;
}
}
return iPlayers;
}
public Plugin:myinfo = {
author = "Hejter",
version = "0.2",
}
PHP:#pragma semicolon 1 #include <sdktools> #include <sdkhooks> #include <lastrequest> new bool:b_s[MAXPLAYERS + 1]; // Использование оружия. // Список блокируемого оружия. new const String:block_weapons_list[][] = { "ak47", "aug", "mp7", "mp9", "scar20", "deagle", "revolver", "usp_silencer", "ump-45", "sawedoff", "nova", "negev", "m249", "m4a1", "m4a1-silencer", "awp", "g3sg1", "ssg08", "glock", "fiveseven", "cz75a", "elite", "decoy", "flashbang", "galilar", "galil", "hkp2000", "incgrenade", "molotov", "hegrenade", "c4", "smokegrenade", "sg556", "taser", "tec9", "p90", "tmp", "ump45", "knife" }; #define Weapon_Count sizeof(block_weapons_list) public OnPluginStart() { RegConsoleCmd("sm_s", Cmd_S); HookEvent("player_spawn", Player_Spawn); } public Action:Cmd_S(client, args) { if (client != 0) { if (IsClientInGame(client) && IsPlayerAlive(client) && GetClientTeam(client) == 2) { if (GetPlayerCount() > 2) // Если в команде T больше двух человек, то выполняем команду !s { b_s[client] = true; RemoveAllPlayersWeapons(client); SetEntityRenderColor(client, 0, 0, 0, 255); PrintToChatAll("%N сдался!"); } else if (b_s[client] == true) { PrintToChat(client, "Вы уже сдались!"); } else if (!IsPlayerAlive(client)) { PrintToChat(client, "Данную команду можно использовать только когда вы живы!"); } else if (GetClientTeam(client) == 3) { PrintToChat(client, "Данная команда доступна только за Террористов!"); } } } return Plugin_Handled; } // Запрещает использовать и поднимать запрещенное оружие. public Action:WeaponEquip(client, weapon) { if(IsClientInGame(client) && GetClientTeam(client) == 2 && b_s[client] == true) // Если игрок в команде Т и b_s[client] == true, то запрещаем поднимать оружие. { decl String:blockWeapon[32]; GetEntityClassname(weapon, blockWeapon, sizeof(blockWeapon)); for(new i = 0; i < Weapon_Count; ++i) { if(strcmp(blockWeapon[7], block_weapons_list[i]) == 0) { return Plugin_Handled; } } } return Plugin_Continue; } public Player_Spawn(Handle:event, const String:name[], bool:dontBroadcast){ new client = GetClientOfUserId(GetEventInt(event, "userid")); if(IsClientInGame(client) && !IsFakeClient(client) && IsPlayerAlive(client) && GetClientTeam(client) == 2) { b_s[client] = false; } } public OnClientPostAdminCheck(client) { SDKHook(client, SDKHook_WeaponEquip, WeaponEquip); } public OnClientDisconnect(client){ b_s[client] = false; SDKUnhook(client, SDKHook_WeaponEquip, WeaponEquip); } /* Stocks */ stock RemoveAllPlayersWeapons(client) { new weaponindex; for (new weaponslot = 0; weaponslot < 5; weaponslot++) { weaponindex = GetPlayerWeaponSlot(client, weaponslot); if (weaponindex != -1) { Util_RemovePlayerItem(client, weaponindex); } } WepLib_GrenadeStripAll(client); } stock Util_RemovePlayerItem(client, weaponindex) { RemovePlayerItem(client, weaponindex); RemoveEdict(weaponindex); } stock WepLib_GrenadeStripAll(client) { new grenade = GetPlayerWeaponSlot(client, 3); while (grenade != -1) { Util_RemovePlayerItem(client, grenade); grenade = GetPlayerWeaponSlot(client, 3); } } public OnAvailableLR(Announced) { for(new i = 1; i <= MaxClients; i++) { if (IsClientInGame(i) && IsPlayerAlive(i) && GetClientTeam(i) == 2) { b_s[i] = false; // Разрешаем игроку поднимать оружие. } } } /* Кол-во живых игроков */ stock int GetPlayerCount(){ int iPlayers; for (int i = 1; i <= MaxClients; i++) { if (IsClientInGame(i) && IsPlayerAlive(i) && GetClientTeam(i) == 2) { iPlayers++; } } return iPlayers; } public Plugin:myinfo = { author = "Hejter", version = "0.2", }
PrintToChatAll("%N сдался!");
PrintToChatAll("%N сдался!", client);
Спасибо :), как просто все, если знать где рыть. Только один параметр поменял на server вместоАлександр Гужов, можно сделать изменение ников через adminmenu_custom.txt
а сортировку (adminmenu_sorting.txt) можешь добавить
Не забывай про кодировку (utf-8 без bom) иначе работать не будет.
"execute" "player"
Плагин работает, только непонятно как :).Александр Гужов, пробуй мой. Это ещё бета. Настроен по умолчанию по таймеру, перемещает после смерти человека. Квары смотри в исходнике, прописывай если что в server.cfg
Ну так паблик конечно. ГГ и ДМ +бесконечный раунд.Александр Гужов, на каком режиме пробуешь (паблик, дм)?
#include <amxmodx>
#include <cstrike>
#include <amxmisc>
#include <engine>
#include <fun>
#include <fakemeta>
#include <hamsandwich>
#include <colorchat>
#define HOOK_LEVEL ADMIN_LEVEL_H // Уровен доступа
#define TRAIL_LIFE 10 // Жизнь полосы
#define TRAIL_WIDTH 10 // Ширина полосы
#define TRAIL_RED 255 // Цвет: Красный
#define TRAIL_GREEN 0 // Цвет: Зелёный
#define TRAIL_BLUE 0 // Цвет: Голубой
#define TRAIL_BRIGTHNESS 220 // Яркость
#define TRAIL_LIF 10 // Жизнь полосы
#define TRAIL_WIDT 10 // Ширина полосы
#define TRAIL_RE 0 // Цвет: Красный
#define TRAIL_GREE 0 // Цвет: Зелёный
#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 model_gibs, gTrail
new HookSpeed
new g_iBeamSprite
new g_speed[33]
public plugin_init() {
register_plugin("[MG] Hook by Nickron","2.0","LLInH9rA, Remake Nickron")
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() {
g_iBeamSprite = precache_model("sprites/agrozeki/lgtning.spr");
model_gibs = precache_model("sprites/agrozeki/pink.spr")
gTrail = precache_model("sprites/agrozeki/speed.spr")
precache_sound("agrozeki/exparrow_shoot1.wav")
}
public Menu_hook(id)
{
if(get_user_flags(id) & ADMIN_LEVEL_H || get_user_flags(id) & ADMIN_LEVEL_H)
{
new menu = menu_create("\y[CJ] \wСкорость паутинки \y:3:","menu_hook")
if(g_speed[id] == 0)
{
menu_additem(menu,"Низкая \y[Вкл]", "1", 0)
}else{
menu_additem(menu,"Низкая \r[Выкл]", "1", 0)
}
if(g_speed[id] == 1)
{
menu_additem(menu,"Стандартная \y[Вкл]", "2", 0)
}else{
menu_additem(menu,"Стандартная \r[Выкл]", "2", 0)
}
if(g_speed[id] == 2)
{
menu_additem(menu,"Высокая \y[Вкл]", "3", 0)
}else{
menu_additem(menu,"Высокая \r[Выкл]", "3", 0)
}
menu_setprop(menu , MPROP_NEXTNAME, "Далее")
menu_setprop(menu , MPROP_BACKNAME, "Назад")
menu_setprop(menu , MPROP_EXITNAME, "\rВыход")
menu_setprop(menu , MPROP_EXIT, MEXIT_ALL)
menu_display(id, menu)
}else{
ColorChat(id,BLUE,"^4[Gameseven] ^3У тебя нет паутины. Хотите купить ? Skype: ^4jb.server1")
}
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[Gameseven] ^4Уже установлено.")
Menu_hook(id)
}else{
g_speed[id] = 0
ColorChat(id,BLUE,"^3[Gameseven] ^4Вы выбрали скорость паутины: ^3низкая.")
}
}
case 2:
{
if(g_speed[id] == 1)
{
ColorChat(id,BLUE,"^3[GameSeven] ^4Уже установлено.")
Menu_hook(id)
}else{
g_speed[id] = 1
ColorChat(id,BLUE,"^3[GameSeven] ^4Вы выбрали скорость паутины: ^3стандартная.")
}
}
case 3:
{
if(g_speed[id] == 2)
{
ColorChat(id,BLUE,"^3[GameSeven] ^4Уже установлено.")
Menu_hook(id)
}else{
g_speed[id] = 2
ColorChat(id,BLUE,"^3[GameSeven] ^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 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,"[Gameseven] Админ %s дал возможность возможность использовать hook",name)
client_print(i,print_chat,"[GameSeven] Забиндите '+hook' на кнопку")
}
else
client_print(i,print_chat,"[Gameseven] Админ %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,"[Gameseven] Админ %s дал возможность возможность использовать hook",name)
client_print(pid,print_chat,"[Gameseven] Забиндите '+hook' на кнопку")
}
else
client_print(pid,print_chat,"[Gameseven] Админ %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_BAN)
{
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,"agrozeki/exparrow_shoot1.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,"[Gameseven] ^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(40); //Толщина луча
write_byte(10); //Искажение
switch(random(2))
{
case 0:
{
write_byte(255); //Цвет красный
write_byte(0); //Цвеи зеленый
write_byte(0); //Цвет синий
}
case 1:
{
write_byte(0); //Цвет красный
write_byte(255); //Цвеи зеленый
write_byte(0); //Цвет синий
}
}
write_byte(2000); //Яркость
write_byte(0); //...
message_end();
}
// =================================================================================================
public func_break(id)
{
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(model_gibs)
write_byte(20)
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()
}
[SPOILER]
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fun>
#include <hamsandwich>
#include <colorchat>
#define HOOK_LEVEL ADMIN_LEVEL_G // Уровен доступа
new bool:canusehook[32]
new bool:ishooked[32]
new hookorigin[32][3]
new Enable
new Glow, GlowRandom, GlowR, GlowG, GlowB
new Tsprite, CTsprite, STsprite, sprstandart
new Fade, FadeRandom, fadeR, fadeG, fadeB
new HookSpeed
public plugin_init() {
register_plugin("Hook","1.5","LLInH9rA")
register_clcmd("+hook","hook_on",HOOK_LEVEL)
register_clcmd("-hook","hook_off",HOOK_LEVEL)
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" ) // Цвет свечения(синий)
sprstandart = register_cvar( "hook_sprite_new", "1" ) // Новый или старый спрайт хука (По умолчанию новый)
Fade = register_cvar( "hook_screenfade", "1" ) // Затемнение экрана при полете Вкл./Выкл. (По умолчанию Вкл)
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", "350" ) // Скорость (По умолчанию: 350)
}
public plugin_precache() {
precache_sound("weapons/ric2.wav") // Загрузка звука
Tsprite = precache_model("sprites/hook/hook_T.spr") // Загрузка спрайта для террористов
CTsprite = precache_model("sprites/hook/hook_CT.spr") // Загрузка спрайта для контров
STsprite = precache_model("sprites/laserbeam.spr") // Загрузка стандартного спрайта
}
// =================================================================================================
public client_disconnect(id) {
remove_hook(id)
}
public client_putinserver(id) {
remove_hook(id)
}
// =================================================================================================
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,"[Hook] Админ %s дал возможность возможность использовать hook",name)
client_print(i,print_chat,"[Hook] Забиндите '+hook' на кнопку")
}
else
client_print(i,print_chat,"[Hook] Админ %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,"[Hook] Админ %s дал возможность возможность использовать hook",name)
client_print(pid,print_chat,"[Hook] Забиндите '+hook' на кнопку")
}
else
client_print(pid,print_chat,"[Hook] Админ %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
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,"weapons/ric2.wav",1.0,ATTN_NORM,0,PITCH_NORM)
set_task(0.1,"hook_task",id,"",0,"ab")
hook_task(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,"[Hook] ^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)
draw_hook(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) {
velocity[0] = (hookorigin[id-1][0] - origin[0]) * (2.0 * HSpeed / distance)
velocity[1] = (hookorigin[id-1][1] - origin[1]) * (2.0 * HSpeed / distance)
velocity[2] = (hookorigin[id-1][2] - origin[2]) * (2.0 * HSpeed / 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 draw_hook(id) {
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(1) // TE_BEAMENTPOINT
write_short(id) // entid
write_coord(hookorigin[id-1][0]) // origin
write_coord(hookorigin[id-1][1]) // origin
write_coord(hookorigin[id-1][2]) // origin
if( get_pcvar_num( sprstandart ) ) // sprite index
{
if(get_user_team(id) == 1) {
write_short( Tsprite )
}
else
{
write_short( CTsprite )
}
}
else
{
write_short( STsprite )
}
write_byte( 0 ) // start frame
write_byte( 0 ) // framerate
write_byte( 100 ) // life
write_byte( 10 ) // width
write_byte( 0 ) // noise
if( get_pcvar_num( sprstandart ) )
{
if(get_user_team(id) == 1) { // Террористы
write_byte( 255 ) // красный
write_byte( 255 ) // зеленый
write_byte( 255 ) // синий
}
else
{ // Контры
write_byte( 255 ) // красный
write_byte( 255 ) // зеленый
write_byte( 255 ) // синий
}
}
else
{
if(get_user_team(id) == 1) { // Террористы
write_byte( 255 ) // красный
write_byte( 0 ) // зеленый
write_byte( 0 ) // синий
}
else
{ // Контры
write_byte( 0 ) // красный
write_byte( 0 ) // зеленый
write_byte( 255 ) // синий
}
}
write_byte( 150 ) // brightness
write_byte(0) // Скорость
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()
}
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fun>
#include <hamsandwich>
#include <colorchat>
new bool:canusehook[32]
new bool:ishooked[32]
new hookorigin[32][3]
new Enable
new Glow, GlowRandom, GlowR, GlowG, GlowB
new Tsprite, CTsprite, STsprite, sprstandart
new Fade, FadeRandom, fadeR, fadeG, fadeB
new HookSpeed
public plugin_init() {
register_plugin("Hook","1.5","LLInH9rA")
register_clcmd("+hook","hook_on",HOOK_LEVEL)
register_clcmd("-hook","hook_off",HOOK_LEVEL)
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" ) // Цвет свечения(синий)
sprstandart = register_cvar( "hook_sprite_new", "1" ) // Новый или старый спрайт хука (По умолчанию новый)
Fade = register_cvar( "hook_screenfade", "1" ) // Затемнение экрана при полете Вкл./Выкл. (По умолчанию Вкл)
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", "350" ) // Скорость (По умолчанию: 350)
}
public plugin_precache() {
precache_sound("weapons/ric2.wav") // Загрузка звука
Tsprite = precache_model("sprites/hook/hook_T.spr") // Загрузка спрайта для террористов
CTsprite = precache_model("sprites/hook/hook_CT.spr") // Загрузка спрайта для контров
STsprite = precache_model("sprites/laserbeam.spr") // Загрузка стандартного спрайта
}
// =================================================================================================
public client_disconnect(id) {
remove_hook(id)
}
public client_putinserver(id) {
remove_hook(id)
}
// =================================================================================================
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,"[Hook] Админ %s дал возможность возможность использовать hook",name)
client_print(i,print_chat,"[Hook] Забиндите '+hook' на кнопку")
}
else
client_print(i,print_chat,"[Hook] Админ %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,"[Hook] Админ %s дал возможность возможность использовать hook",name)
client_print(pid,print_chat,"[Hook] Забиндите '+hook' на кнопку")
}
else
client_print(pid,print_chat,"[Hook] Админ %s отнял возможность возможность использовать hook",name)
}
}
return PLUGIN_HANDLED
}
// =================================================================================================
public hook_on(id,level,cid)
{
if( get_pcvar_num( Enable ) )
{
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,"weapons/ric2.wav",1.0,ATTN_NORM,0,PITCH_NORM)
set_task(0.1,"hook_task",id,"",0,"ab")
hook_task(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,"[Hook] ^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)
draw_hook(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) {
velocity[0] = (hookorigin[id-1][0] - origin[0]) * (2.0 * HSpeed / distance)
velocity[1] = (hookorigin[id-1][1] - origin[1]) * (2.0 * HSpeed / distance)
velocity[2] = (hookorigin[id-1][2] - origin[2]) * (2.0 * HSpeed / 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 draw_hook(id) {
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(1) // TE_BEAMENTPOINT
write_short(id) // entid
write_coord(hookorigin[id-1][0]) // origin
write_coord(hookorigin[id-1][1]) // origin
write_coord(hookorigin[id-1][2]) // origin
if( get_pcvar_num( sprstandart ) ) // sprite index
{
if(get_user_team(id) == 1) {
write_short( Tsprite )
}
else
{
write_short( CTsprite )
}
}
else
{
write_short( STsprite )
}
write_byte( 0 ) // start frame
write_byte( 0 ) // framerate
write_byte( 100 ) // life
write_byte( 10 ) // width
write_byte( 0 ) // noise
if( get_pcvar_num( sprstandart ) )
{
if(get_user_team(id) == 1) { // Террористы
write_byte( 255 ) // красный
write_byte( 255 ) // зеленый
write_byte( 255 ) // синий
}
else
{ // Контры
write_byte( 255 ) // красный
write_byte( 255 ) // зеленый
write_byte( 255 ) // синий
}
}
else
{
if(get_user_team(id) == 1) { // Террористы
write_byte( 255 ) // красный
write_byte( 0 ) // зеленый
write_byte( 0 ) // синий
}
else
{ // Контры
write_byte( 0 ) // красный
write_byte( 0 ) // зеленый
write_byte( 255 ) // синий
}
}
write_byte( 150 ) // brightness
write_byte(0) // Скорость
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()
}
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#define PLUGIN "Admin model+menu"
#define VERSION "2.0"
#define AUTHOR "musse"
public plugin_init() {
register_clcmd("say /amodels", "amodels", ADMIN_LEVEL_G);
register_plugin(PLUGIN, VERSION, AUTHOR);
}
public plugin_precache() {
precache_model("models/player/ladyadmin_te/ladyadmin_te.mdl")
precache_model("models/player/ladyadmin_ct/ladyadmin_ct.mdl")
return PLUGIN_CONTINUE
}
public resetModel(id, level, cid) {
if (get_user_flags(id) & ADMIN_LEVEL_G) {
new CsTeams:userTeam = cs_get_user_team(id)
if (userTeam == CS_TEAM_T) {
cs_set_user_model(id, "ladyadmin_te")
}
else if(userTeam == CS_TEAM_CT) {
cs_set_user_model(id, "ladyadmin_ct")
}
else {
cs_reset_user_model(id)
}
}
return PLUGIN_CONTINUE
}
public plugin_precache() {
precache_model("models/player/Nekot/Nekot.mdl")
precache_model("models/player/Koshcka/Koshcka.mdl")
return PLUGIN_CONTINUE
}
public resetModel(id, level, cid) {
if (get_user_flags(id) & ADMIN_LEVEL_G) {
new CsTeams:userTeam = cs_get_user_team(id)
if (userTeam == CS_TEAM_T) {
cs_set_user_model(id, "Nekot")
}
else if(userTeam == CS_TEAM_CT) {
cs_set_user_model(id, "Koshcka")
}
else {
cs_reset_user_model(id)
}
}
return PLUGIN_CONTINUE
}
public plugin_precache() {
precache_model("models/player/ter/ter.mdl")
precache_model("models/player/ct/ct.mdl")
return PLUGIN_CONTINUE
}
public resetModel(id, level, cid) {
if (get_user_flags(id) & ADMIN_LEVEL_G) {
new CsTeams:userTeam = cs_get_user_team(id)
if (userTeam == CS_TEAM_T) {
cs_set_user_model(id, "te")
}
else if(userTeam == CS_TEAM_CT) {
cs_set_user_model(id, "ct")
}
else {
cs_reset_user_model(id)
}
}
return PLUGIN_CONTINUE
}
public amodels(id) {
new i_Menu = menu_create("\g[Кровавый RELAX] \rВыбери \gмодель", "amodels_handler");
menu_additem(i_Menu, "\gЛеди Админ", "1", 0);
menu_additem(i_Menu, "\rСупер Леди", "2", 0);
menu_additem(i_Menu, "\gБизнес Админ", "3", 0);
menu_setprop(i_Menu, MPROP_NEXTNAME, "\gДалее");
menu_setprop(i_Menu, MPROP_BACKNAME, "\rНазад");
menu_setprop(i_Menu, MPROP_EXITNAME, "\gВыход");
menu_display(id, i_Menu, 0)
}
public amodels_handler(id, menu, item) {
if( item < 0 ) return PLUGIN_CONTINUE;
new cmd[3], access, callback;
menu_item_getinfo(menu, item, access, cmd,2,_,_, callback);
new Choise = str_to_num(cmd)
switch (Choise) {
case 1: {
cs_set_user_model(id, "ladyadmin_te")
}
case 2: {
cs_set_user_model(id, "ladyadmin_ct")
}
case 3: {
cs_set_user_model(id, "Nekot")
}
case 4: {
cs_set_user_model(id, "Koshcka")
}
case 5: {
cs_set_user_model(id, "ter")
}
case 6: {
cs_set_user_model(id, "ct")
}
}
return PLUGIN_HANDLED;
}
public void OnGameFrame()
{
decl String:name[1024];
Format(name, sizeof(name), "много символов");
}
public void OnGameFrame()
{
char name[1024]; // decl впереди не дает поставить.
Format(name, sizeof(name), "много символов");
}
char аналогичен new, а значит, изначально забит "нулями".во втором случае компилятор или плагин сам догадается не выставлять 1024 нулей
Спасибо.char аналогичен new, а значит, изначально забит "нулями".
В твоём случае, просто необходим static или глобальная переменная - слишком большой массив с очень частым вызовом.
public void OnGameFrame()
{
static char name[1024];
Format(name, sizeof(name), "много символов");
}