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

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

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

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

Santa Hats проверка на наличие флага

Статус пользователя lolik
сообщение 14.12.2016, 18:03
Сообщение #1
Стаж: 10 лет

Сообщений: 7
Благодарностей: 1
Полезность: 0

Всем привет smile.gif
В общем имеется в наличии плагин новогодние шапки для игроков (красная и синяя) и они автоматом выдаются всем.
Мне нужно что бы она выдавалась обычным игрокам которые без флага а тем у кого в наличии имеется флаг что бы не выдавалась, то есть начиная от випа и до админа.
Так как на сервере у админов будут свои модельки шапки им не нужны.
Помогите пожалуйста реализовать это, сделать проверку на флаг и т.д.
Код:

#include < amxmodx >
#include < engine >
#include < cstrike >
#include < hamsandwich >

new const g_szHatModel[ CsTeams ][ ] = {
"",
"models/happy_hats/happy_hat_t.mdl",
"models/happy_hats/happy_hat_ct.mdl",
""
};

new g_iHats[ 33 ];

public plugin_init( ) {
register_plugin( "Santa Hat + Snow", "1.3", "xPaw" );

register_cvar( "santa_hat", "1.3", FCVAR_SERVER );

register_event( "TeamInfo", "EventTeamInfo", "a" );

RegisterHam( Ham_Spawn, "player", "FwdHamPlayerSpawn", 1 );
}

public plugin_precache( ) {
create_entity( "env_snow" );

precache_model( g_szHatModel[ CS_TEAM_T ] );
precache_model( g_szHatModel[ CS_TEAM_CT ] );
}

public client_disconnect( id )
if( is_valid_ent( g_iHats[ id ] ) )
remove_entity( g_iHats[ id ] );

public FwdHamPlayerSpawn( const id ) {
if( is_user_alive( id ) ) {
new iEntity = g_iHats[ id ];

if( !is_valid_ent( iEntity ) ) {
if( !( iEntity = g_iHats[ id ] = create_entity( "info_target" ) ) )
return;

new CsTeams:iTeam = cs_get_user_team( id );

if( iTeam != CS_TEAM_T && iTeam != CS_TEAM_CT )
iTeam = CS_TEAM_T;

entity_set_model( iEntity, g_szHatModel[ iTeam ] );
entity_set_int( iEntity, EV_INT_movetype, MOVETYPE_FOLLOW );
entity_set_edict( iEntity, EV_ENT_aiment, id );
}
}
}

public EventTeamInfo( ) {
new id = read_data( 1 ), iEntity = g_iHats[ id ];

if( !is_valid_ent( iEntity ) ) {
if( iEntity > 0 )
g_iHats[ id ] = 0;

return;
}

new szTeam[ 2 ];
read_data( 2, szTeam, 1 );

if( szTeam[ 0 ] == 'C' )
entity_set_model( iEntity, g_szHatModel[ CS_TEAM_CT ] );
else
entity_set_model( iEntity, g_szHatModel[ CS_TEAM_T ] );
}

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Inline
сообщение 17.12.2016, 9:05
Сообщение #2


Стаж: 10 лет

Сообщений: 139
Благодарностей: 80
Полезность: 447

lolik,

Код:
public EventTeamInfo( ) {
new id = read_data( 1 ), iEntity = g_iHats[ id ];

->
Код:
public EventTeamInfo( ) {
new id = read_data( 1 ), iEntity = g_iHats[ id ];
if(is_user_admin(id))
return;


Код:
public FwdHamPlayerSpawn( const id ) {

->
Код:
public FwdHamPlayerSpawn( const id ) {
if(is_user_admin(id))
return;



Не читай
Не забывай нажимать кнопку "спасибо"
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя energydance
сообщение 19.12.2016, 18:07
Сообщение #3


Стаж: 10 лет

Сообщений: 2809
Благодарностей: 740
Полезность: 213

Ребят есть вопрос , стоит santahats слегка переделал и убрал проверку на флаги чтобы шапка была у всех игроков , на сервере стоит скин санты и у них уже присутствуют шапки и получается поверх их шапки ставится еще и шапка с плагина , не могу понять ый где в исходнике поставить проверку на определенный флаг чтобы данный плагин не вешал шапку на админа dntknw.gif
Исходник

Код
// Copyright 2015 Vaqtincha

/** Santa Hats Rewrite (fakemata)
*
*    It is modified plugin not the original.
*      See https://forums.alliedmods.net/showthread.php?t=81172
*
*    Last update:
*      04/11/2015
*
*    Credits:
*    - KaLoSZyFeR (for plugin "Admin Mark"
*    - Safety1st
*
*/

/*--------------------------- CONFIG START -----------------------------*/

new MODEL_MARK[] = "models/santahats.mdl"    // model

/*---------------------------- CONFIG END ------------------------------*/


#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>

new giCachedStringInfoTarget
new g_iEnt[33]
new modelname[9][] ={"gign","gsg9","sas","urban","vip",
"arctic","guerilla","leet","terror"}


public plugin_init()
{
    register_plugin( "Santa Hats Rewrite", "1.0", "Vaqtincha" )

    RegisterHam(Ham_Spawn, "player", "PlayerMark", .Post = 1 )
    RegisterHam(Ham_Killed, "player", "PlayerKilled")

    giCachedStringInfoTarget = engfunc( EngFunc_AllocString, "info_target" )
}

public plugin_precache()
{
    precache_model(MODEL_MARK)
}

public PlayerMark(id)
{
    if(g_iEnt[id] < 1)
    {
        g_iEnt[id] = engfunc(EngFunc_CreateNamedEntity, giCachedStringInfoTarget)
        if(g_iEnt[id] > 0)
        {
            set_pev( g_iEnt[id], pev_movetype, MOVETYPE_FOLLOW)
            set_pev( g_iEnt[id], pev_aiment, id)
            engfunc( EngFunc_SetModel, g_iEnt[id], MODEL_MARK)
        }
    }
    if (g_iEnt[id] > 0)
    {
        new modelID = get_model_id(id)
        set_pev(g_iEnt[id], pev_body, modelID)
    }
}

public PlayerKilled(id)
{
    if(g_iEnt[id] > 0 && pev_valid(g_iEnt[id]))
        engfunc(EngFunc_RemoveEntity, g_iEnt[id])
    g_iEnt[id] = 0
}

public client_disconnect(id)
{
    if(g_iEnt[id] > 0 && pev_valid(g_iEnt[id]))
        engfunc(EngFunc_RemoveEntity, g_iEnt[id])
    g_iEnt[id] = 0
}

public get_model_id(id)
{
    new modelStr[32], iNum=32, modelID
    get_user_info(id,"model",modelStr,iNum)
    
    for(new i = 0; i < 9; i++)
    {
        if (equali (modelStr, modelname[i]) )
        {
            modelID = i
        }
    }    
    return modelID
}



Press enter to exit ...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Algalon
сообщение 19.12.2016, 19:57
Сообщение #4
Стаж: 11 лет

Сообщений: 163
Благодарностей: 60
Полезность: 291

energydance,
Код:
public PlayerMark(id)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Stimul1
сообщение 20.12.2016, 0:50
Сообщение #5


Стаж: 13 лет

Сообщений: 227
Благодарностей: 262
Полезность: 977

energydance,
Код:
public PlayerMark(id)
{
if(g_iEnt[id] < 1)
{
g_iEnt[id] = engfunc(EngFunc_CreateNamedEntity, giCachedStringInfoTarget)
if(g_iEnt[id] > 0)
{
set_pev( g_iEnt[id], pev_movetype, MOVETYPE_FOLLOW)
set_pev( g_iEnt[id], pev_aiment, id)
engfunc( EngFunc_SetModel, g_iEnt[id], MODEL_MARK)
}
}
if (g_iEnt[id] > 0)
{
new modelID = get_model_id(id)
set_pev(g_iEnt[id], pev_body, modelID)
}
}
===>
Код:
public PlayerMark(id)
{
if(is_user_alive(id) && ~get_user_flags(id) & ADMIN_IMMUNITY)
{
if(g_iEnt[id] < 1)
{
g_iEnt[id] = engfunc(EngFunc_CreateNamedEntity, giCachedStringInfoTarget)
if(g_iEnt[id] > 0)
{
set_pev( g_iEnt[id], pev_movetype, MOVETYPE_FOLLOW)
set_pev( g_iEnt[id], pev_aiment, id)
engfunc( EngFunc_SetModel, g_iEnt[id], MODEL_MARK)
}
}
if (g_iEnt[id] > 0)
{
new modelID = get_model_id(id)
set_pev(g_iEnt[id], pev_body, modelID)
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя energydance
сообщение 20.12.2016, 0:55
Сообщение #6


Стаж: 10 лет

Сообщений: 2809
Благодарностей: 740
Полезность: 213

Stimul1, а дефайн не нужно прописывать?


Press enter to exit ...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Stimul1
сообщение 20.12.2016, 0:59
Сообщение #7


Стаж: 13 лет

Сообщений: 227
Благодарностей: 262
Полезность: 977

energydance, какой и куда? ADMIN_IMMUNITY меняешь на нужный флаг, все названия и обозначения есть в amxconst.inc.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя energydance
сообщение 20.12.2016, 1:04
Сообщение #8


Стаж: 10 лет

Сообщений: 2809
Благодарностей: 740
Полезность: 213

Stimul1, сменил при компиляции ругается на 51 строку
Cкрытый текст




Отредактировал: energydance, - 20.12.2016, 1:06


Press enter to exit ...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя lolik
сообщение 30.12.2016, 17:33
Сообщение #9
Стаж: 10 лет

Сообщений: 7
Благодарностей: 1
Полезность: 0

Stimul1, такого кода вообще нету в плагине...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: