Народ помогите с плагином admin models
У меня сервер Rehlds , на сервере стоит (плагин выдача флага стеам игрокам) прописан он в флаге "q"
Так вот при выдаче флага стеам игрокам флаг "q" заработал только "VIP" и Префикс в Чате "[STEAM]" был еще установлен admins models(выдача моделя по флагам) он не заработал
Вопрос как сделать чтоб заработал admin models при выдаче флага q стеам игрокам
Плагин admin models работает при вводе команды amxx plugins показывает что плагин включен и рбаотает
Моделька выдается только если добавить игрока в Админ панель через сайт лично давая флаг "q"
вот код admin models
вот код выдача steam флага
У меня сервер Rehlds , на сервере стоит (плагин выдача флага стеам игрокам) прописан он в флаге "q"
Так вот при выдаче флага стеам игрокам флаг "q" заработал только "VIP" и Префикс в Чате "[STEAM]" был еще установлен admins models(выдача моделя по флагам) он не заработал
Вопрос как сделать чтоб заработал admin models при выдаче флага q стеам игрокам
Плагин admin models работает при вводе команды amxx plugins показывает что плагин включен и рбаотает
Моделька выдается только если добавить игрока в Админ панель через сайт лично давая флаг "q"
вот код admin models
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#pragma semicolon 1
#define MAX_PLAYERS 32
#define BIT_VALID(%1,%2) ((%1) & (1 << ((%2) - 1)))
#define BIT_ADD(%1,%2) ((%1) |= (1 << ((%2) - 1)))
#define BIT_SUB(%1,%2) ((%1) &= ~(1 << ((%2) - 1)))
#define BIT_NOT_VALID(%1,%2) (~(%1) & (1 << ((%2) - 1)))
new g_iBitClientAccess, g_iBitCustomModel;
public plugin_init()
{
register_plugin("Lady Models", "0.1b", "Freedo.m");
RegisterHam(Ham_Spawn, "player", "Ham_PlayerSpawn_Post", 1);
register_forward(FM_SetClientKeyValue, "FM_SetClientKeyValue_Pre", 0);
}
public plugin_precache()
{
precache_model("models/player/steamodels_te/steamodels_te.mdl");
precache_model("models/player/steamodels_ct/steamodels_ct.mdl");
}
public client_putinserver(id)
{
if(~get_user_flags(id) & ADMIN_LEVEL_E) return;
BIT_ADD(g_iBitClientAccess, id);
}
public client_disconnect(id)
{
BIT_SUB(g_iBitClientAccess, id);
BIT_SUB(g_iBitCustomModel, id);
}
public Ham_PlayerSpawn_Post(id)
{
if(BIT_VALID(g_iBitClientAccess, id) && is_user_alive(id))
{
switch(cs_get_user_team(id))
{
case CS_TEAM_T: fm_cs_set_user_model(id, "steamodels_te");
case CS_TEAM_CT: fm_cs_set_user_model(id, "steamodels_ct");
}
}
}
new g_szPlayerModel[MAX_PLAYERS + 1][32];
public FM_SetClientKeyValue_Pre(id, const szInfobuffer[], const szKey[])
{
if(BIT_VALID(g_iBitCustomModel, id) && equal(szKey, "model"))
{
static szCurrentModel[32];
fm_cs_get_user_model(id, szCurrentModel, charsmax(szCurrentModel));
if(!equal(szCurrentModel, g_szPlayerModel[id])) fm_cs_set_user_model(id, g_szPlayerModel[id]);
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
stock fm_cs_get_user_model(id, szModel[], szLen) engfunc(EngFunc_InfoKeyValue, engfunc(EngFunc_GetInfoKeyBuffer, id), "model", szModel, szLen);
stock fm_cs_set_user_model(id, const szModelName[])
{
engfunc(EngFunc_SetClientKeyValue, id, engfunc(EngFunc_GetInfoKeyBuffer, id), "model", szModelName);
copy(g_szPlayerModel[id], charsmax(g_szPlayerModel[]), szModelName);
BIT_ADD(g_iBitCustomModel, id);
}
stock fm_cs_reset_user_model(id)
{
BIT_SUB(g_iBitCustomModel, id);
dllfunc(DLLFunc_ClientUserInfoChanged, id, engfunc(EngFunc_GetInfoKeyBuffer, id));
}
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#pragma semicolon 1
#define MAX_PLAYERS 32
#define BIT_VALID(%1,%2) ((%1) & (1 << ((%2) - 1)))
#define BIT_ADD(%1,%2) ((%1) |= (1 << ((%2) - 1)))
#define BIT_SUB(%1,%2) ((%1) &= ~(1 << ((%2) - 1)))
#define BIT_NOT_VALID(%1,%2) (~(%1) & (1 << ((%2) - 1)))
new g_iBitClientAccess, g_iBitCustomModel;
public plugin_init()
{
register_plugin("Lady Models", "0.1b", "Freedo.m");
RegisterHam(Ham_Spawn, "player", "Ham_PlayerSpawn_Post", 1);
register_forward(FM_SetClientKeyValue, "FM_SetClientKeyValue_Pre", 0);
}
public plugin_precache()
{
precache_model("models/player/steamodels_te/steamodels_te.mdl");
precache_model("models/player/steamodels_ct/steamodels_ct.mdl");
}
public client_putinserver(id)
{
if(~get_user_flags(id) & ADMIN_LEVEL_E) return;
BIT_ADD(g_iBitClientAccess, id);
}
public client_disconnect(id)
{
BIT_SUB(g_iBitClientAccess, id);
BIT_SUB(g_iBitCustomModel, id);
}
public Ham_PlayerSpawn_Post(id)
{
if(BIT_VALID(g_iBitClientAccess, id) && is_user_alive(id))
{
switch(cs_get_user_team(id))
{
case CS_TEAM_T: fm_cs_set_user_model(id, "steamodels_te");
case CS_TEAM_CT: fm_cs_set_user_model(id, "steamodels_ct");
}
}
}
new g_szPlayerModel[MAX_PLAYERS + 1][32];
public FM_SetClientKeyValue_Pre(id, const szInfobuffer[], const szKey[])
{
if(BIT_VALID(g_iBitCustomModel, id) && equal(szKey, "model"))
{
static szCurrentModel[32];
fm_cs_get_user_model(id, szCurrentModel, charsmax(szCurrentModel));
if(!equal(szCurrentModel, g_szPlayerModel[id])) fm_cs_set_user_model(id, g_szPlayerModel[id]);
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
stock fm_cs_get_user_model(id, szModel[], szLen) engfunc(EngFunc_InfoKeyValue, engfunc(EngFunc_GetInfoKeyBuffer, id), "model", szModel, szLen);
stock fm_cs_set_user_model(id, const szModelName[])
{
engfunc(EngFunc_SetClientKeyValue, id, engfunc(EngFunc_GetInfoKeyBuffer, id), "model", szModelName);
copy(g_szPlayerModel[id], charsmax(g_szPlayerModel[]), szModelName);
BIT_ADD(g_iBitCustomModel, id);
}
stock fm_cs_reset_user_model(id)
{
BIT_SUB(g_iBitCustomModel, id);
dllfunc(DLLFunc_ClientUserInfoChanged, id, engfunc(EngFunc_GetInfoKeyBuffer, id));
}
вот код выдача steam флага
#include <amxmodx>
#define VIP_FLAG (ADMIN_LEVEL_H & ADMIN_LEVEL_D & ADMIN_LEVEL_E)
new sConnected,PLUGIN[][]={"Auto Steam VIP","1.0","Seroff"};
#define get_bit(%1,%2) ( %1 & 1 << ( %2 & 31 ) )
#define set_bit(%1,%2) ( %1 |= ( 1 << ( %2 & 31 ) ) )
#define clear_bit(%1,%2) ( %1 &= ~( 1 << ( %2 & 31 ) ) )
public plugin_init(){ register_plugin(PLUGIN[0], PLUGIN[1], PLUGIN[2]); }
public client_disconnect(id){clear_bit(sConnected, id);}
public client_putinserver(id){
set_bit(sConnected, id);
if(is_user_steam(id)){
set_task(2.0,"set_vip",id);
}
}
public set_vip(id){
set_user_flags(id, get_user_flags(id) + read_flags("q")); //"q" - флаги доступа
ColorChat(id, "^3Вам ^1выдан ^4LIGHT-VIP ^1 за [^4Steam^1]");
}
bool:is_user_steam(id){
static dp_pointer;
if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider"))) {
server_cmd("dp_clientinfo %d", id);
server_exec();
return (get_pcvar_num(dp_pointer) == 2) ? true : false;
}
return false;
}
stock ColorChat(const id, const input[], any:...){
static count = 1, players[32],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(get_bit(sConnected,players)){
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players);
write_byte(players);
write_string(msg);
message_end();
}
}
}
}
#define VIP_FLAG (ADMIN_LEVEL_H & ADMIN_LEVEL_D & ADMIN_LEVEL_E)
new sConnected,PLUGIN[][]={"Auto Steam VIP","1.0","Seroff"};
#define get_bit(%1,%2) ( %1 & 1 << ( %2 & 31 ) )
#define set_bit(%1,%2) ( %1 |= ( 1 << ( %2 & 31 ) ) )
#define clear_bit(%1,%2) ( %1 &= ~( 1 << ( %2 & 31 ) ) )
public plugin_init(){ register_plugin(PLUGIN[0], PLUGIN[1], PLUGIN[2]); }
public client_disconnect(id){clear_bit(sConnected, id);}
public client_putinserver(id){
set_bit(sConnected, id);
if(is_user_steam(id)){
set_task(2.0,"set_vip",id);
}
}
public set_vip(id){
set_user_flags(id, get_user_flags(id) + read_flags("q")); //"q" - флаги доступа
ColorChat(id, "^3Вам ^1выдан ^4LIGHT-VIP ^1 за [^4Steam^1]");
}
bool:is_user_steam(id){
static dp_pointer;
if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider"))) {
server_cmd("dp_clientinfo %d", id);
server_exec();
return (get_pcvar_num(dp_pointer) == 2) ? true : false;
}
return false;
}
stock ColorChat(const id, const input[], any:...){
static count = 1, players[32],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(get_bit(sConnected,players)){
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players);
write_byte(players);
write_string(msg);
message_end();
}
}
}
}