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

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

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

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

SantaHats на 2 флага.

Статус пользователя Takashi Murakami
сообщение 29.11.2014, 2:23
Сообщение #1
Стаж: 14 лет

Сообщений: 797
Благодарностей: 459
Полезность: 514

Всем привет! ребзя, есть такой упрощённый SantaHats. Ну типа шапки одевает игрокам. терам красную, ментам синюю. так вот. Он у меня на флаге. То етсь одевает только игрокам с определённым флагом. Мне нужно. Сделать чтобы одевало на 2 флага - разные модели. ну к примеру одному типу я хочу одеть определённую шапку а другому с другим флагом - другую. Юзать 2 плагина с разными флагами не варик. crazy.gif Как сделать проще? есть варианты?)))


Скрытый текст

Код:

#include <amxmodx>

#include <hamsandwich>

#include <fakemeta>



#define PLUGIN "SantaHat"

#define VERSION "1.0"

#define AUTHOR "Vetol"



#define MAX 32



#define MODEL_TT "models/newyear/red.mdl"

#define MODEL_CT "models/newyear/blue.mdl"



new g_iTeam[MAX+1], g_bwEnt[MAX+1];



public plugin_init()

{

register_plugin(PLUGIN, VERSION, AUTHOR);



RegisterHam(Ham_Spawn, "player", "Spawn", 1);

}



public plugin_precache()

{

precache_model(MODEL_TT);

precache_model(MODEL_CT);

}



public Spawn(id)

{
if(!is_user_alive(id) || !( get_user_flags( id ) & ADMIN_IMMUNITY ) )

return;



new team = get_user_team(id);

cp:

if(!pev_valid(g_bwEnt[id]) && g_iTeam[id] == team)

{

g_bwEnt[id] = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,"info_target"));

set_pev(g_bwEnt[id], pev_movetype, MOVETYPE_FOLLOW );

set_pev(g_bwEnt[id], pev_aiment, id);

engfunc(EngFunc_SetModel, g_bwEnt[id], g_iTeam[id] == 1? MODEL_TT: MODEL_CT);

}

else

{

if(pev_valid(g_bwEnt[id]))

{

engfunc(EngFunc_RemoveEntity, g_bwEnt[id]);

g_bwEnt[id] = 0;

}

g_iTeam[id] = team;

goto cp;

}

}



Отредактировал: Takashi Murakami, - 29.11.2014, 2:26
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Dukkhaz0r
сообщение 29.11.2014, 8:23
Сообщение #2


Стаж: 12 лет

Сообщений: 343
Благодарностей: 294
Полезность: 812

Попробуй.
Делал на быструю руку, не тестировал, но компилируется без проблем

Код:
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>



#define PLUGIN "SantaHat"
#define VERSION "1.0"
#define AUTHOR "Vetol"

#define MAX 32

#define FIRST_FLAG ADMIN_IMMUNITY //Флаг доступа на первую модельку
#define SECOND_FLAG ADMIN_LEVEL_H //Флаг доступа на вторую модельку


#define MODEL_TT "models/newyear/red.mdl"
#define MODEL_CT "models/newyear/blue.mdl"

#define SECOND_MODEL_TT "models/newyear/red1.mdl" //Путь до второй модельки TT
#define SECOND_MODEL_CT "models/newyear/blue1.mdl" //Путь до второй модельки CT


new g_iTeam[MAX+1], g_bwEnt[MAX+1];



public plugin_init()

{

register_plugin(PLUGIN, VERSION, AUTHOR);



RegisterHam(Ham_Spawn, "player", "Spawn", 1);

}

public FirstFlag(id)
{
return get_user_flags(id) & FIRST_FLAG
}

public SecondFlag(id)
{
return get_user_flags(id) & SECOND_FLAG
}



public plugin_precache()

{

precache_model(MODEL_TT);
precache_model(MODEL_CT);
precache_model(SECOND_MODEL_TT);
precache_model(SECOND_MODEL_CT);

}



public Spawn(id)

{
if(!is_user_alive(id) || !FirstFlag(id) )
return;


new team = get_user_team(id);

cp:

if(!pev_valid(g_bwEnt[id]) && g_iTeam[id] == team)

{
g_bwEnt[id] = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,"info_target"));
set_pev(g_bwEnt[id], pev_movetype, MOVETYPE_FOLLOW );
set_pev(g_bwEnt[id], pev_aiment, id);
engfunc(EngFunc_SetModel, g_bwEnt[id], g_iTeam[id] == 1? MODEL_TT: MODEL_CT);
}
else
{
if(pev_valid(g_bwEnt[id]))
{
engfunc(EngFunc_RemoveEntity, g_bwEnt[id]);
g_bwEnt[id] = 0;
}
g_iTeam[id] = team;
goto cp;
}

if(!is_user_alive(id) || !SecondFlag(id) )
return


cptwo:

if(!pev_valid(g_bwEnt[id]) && g_iTeam[id] == team)

{
g_bwEnt[id] = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,"info_target"));
set_pev(g_bwEnt[id], pev_movetype, MOVETYPE_FOLLOW );
set_pev(g_bwEnt[id], pev_aiment, id);
engfunc(EngFunc_SetModel, g_bwEnt[id], g_iTeam[id] == 1? SECOND_MODEL_TT: SECOND_MODEL_CT);
}
else
{
if(pev_valid(g_bwEnt[id]))
{
engfunc(EngFunc_RemoveEntity, g_bwEnt[id]);
g_bwEnt[id] = 0;
}
g_iTeam[id] = team;
goto cptwo;
}

}


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя csnet
сообщение 29.11.2014, 9:35
Сообщение #3
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

сколько можно повторять что выражения get_user_flags(id) & FIRST_FLAG берутся в скобки


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Dukkhaz0r
сообщение 29.11.2014, 9:48
Сообщение #4


Стаж: 12 лет

Сообщений: 343
Благодарностей: 294
Полезность: 812

Цитата(csnet @ 29.11.2014, 9:35) *
сколько можно повторять что выражения get_user_flags(id) & FIRST_FLAG берутся в скобки

Я делал отдельную функцию, там можно и без скобок насколько я знаю


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Takashi Murakami
сообщение 29.11.2014, 15:31
Сообщение #5
Стаж: 14 лет

Сообщений: 797
Благодарностей: 459
Полезность: 514

Цитата(Dukkhaz0r @ 29.11.2014, 8:19) *
Попробуй.
Делал на быструю руку, не тестировал, но компилируется без проблем


Спасибо. но мне нужно на 1 флаг - 1 модель. То есть убрать кт и тт. это не важно. Проверку на команду удалить.

Отредактировал: Takashi Murakami, - 29.11.2014, 15:31
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Takashi Murakami
сообщение 29.11.2014, 17:54
Сообщение #6
Стаж: 14 лет

Сообщений: 797
Благодарностей: 459
Полезность: 514

Поможет ктонить?)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Takashi Murakami
сообщение 29.11.2014, 20:03
Сообщение #7
Стаж: 14 лет

Сообщений: 797
Благодарностей: 459
Полезность: 514

Цитата(Dukkhaz0r @ 29.11.2014, 8:19) *
Попробуй.
Делал на быструю руку, не тестировал, но компилируется без проблем


На втором флаге модель не работает. на первом все ок. sad.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 30.11.2014, 3:10
Сообщение #8
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Цитата(Dukkhaz0r @ 29.11.2014, 7:19) *
Делал на быструю руку, не тестировал, но компилируется без проблем

Не, ужОс.


Цитата(Takashi Murakami @ 29.11.2014, 16:50) *
Поможет ктонить?)

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