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

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

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

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

3 страниц V   1 2 »

Плагин Nade Health | Лечебная граната

Статус пользователя selest
сообщение 21.2.2016, 21:30
Сообщение #1


Стаж: 12 лет

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

Сам плагин

как её для випов сделать?)
и что бы она давалась по команде в чате или консоле 1 раз на рунд.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя l3x1s
сообщение 21.2.2016, 22:18
Сообщение #2


Стаж: 17 лет

Сообщений: 495
Благодарностей: 300
Полезность: 543

присоединяюсь, тоже хотелось бы данный плагин по команде...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fred Perry
сообщение 21.2.2016, 23:31
Сообщение #3


Иконка группы

Стаж: 16 лет

Сообщений: 6594
Благодарностей: 2370
Полезность: 813

Где совесть, товарищи? Вы хотите чтобы вам помогли, а сами даже не загрузили исходники, а дали ссылку на какой-то ресурс.


Гнилой фашистской нечисти
Загоним пулю в лоб,
Отродью человечества
Сколотим крепкий гроб!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя Blitzz
сообщение 22.2.2016, 0:34
Сообщение #4


Стаж: 10 лет

Сообщений: 509
Благодарностей: 117
Полезность: 91

Сам код ...
.SMA
Код:
#include <amxmodx>
#include <fakemeta>
#include < cstrike >
#include < fun >
#include < engine >

#define PLUGIN_NAME "Nade Health"
#define PLUGIN_VERSION "0.1"
#define PLUGIN_AUTHOR "Dorus"

#define V_MODEL "models/v_he_mk_nade.mdl"
#define P_MODEL "models/p_he_mk_nade.mdl"
#define W_MODEL "models/w_he_mk_nade.mdl"

#define GIVE_HP 30

#define SMOKE_SCALE 30
#define SMOKE_FRAMERATE 12

new ExplSpr, ExplSpr2, ExplSpr3, ExplYO, g_iSpriteCircle

// do not edit
new const g_sound_explosion[] = "weapons/sg_explode.wav"
new const g_classname_grenade[] = "grenade"
new g_eventid_createsmoke

public plugin_init() {
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)

register_forward(FM_EmitSound, "forward_emitsound")
register_forward(FM_PlaybackEvent, "forward_playbackevent")
register_event( "CurWeapon", "CurWeapon", "be", "1=1" )
register_forward( FM_SetModel, "forward_model", 1 )

// we do not precaching, but retrieving the indexes
g_eventid_createsmoke = engfunc(EngFunc_PrecacheEvent, 1, "events/createsmoke.sc")
}

public plugin_precache()
{
ExplSpr = precache_model("sprites/gp_1.spr");
ExplSpr2 = precache_model("sprites/gp_2.spr");
ExplSpr3 = precache_model("sprites/gp_3.spr");
precache_sound("woomen_expr.wav")
ExplYO = precache_model("sprites/woomensx.spr");

g_iSpriteCircle = precache_model( "sprites/shockwave.spr" );

precache_model(V_MODEL)
precache_model(W_MODEL)
precache_model(P_MODEL)
}

public CurWeapon(id)
{
if(is_user_connected(id) && is_user_alive(id))
{
if(get_user_weapon(id) == CSW_SMOKEGRENADE)
{
set_pev(id, pev_viewmodel2, V_MODEL)
set_pev(id, pev_weaponmodel2, P_MODEL)
}
}
}

public forward_model( entity, const model[] )
{
if( !pev_valid( entity ) ) return FMRES_IGNORED;

if(equal( model, "models/w_smokegrenade.mdl" ))
{
engfunc ( EngFunc_SetModel, entity, W_MODEL );
}
return FMRES_IGNORED;
}

public forward_emitsound(ent, channel, const sound[])
{
if (!equal(sound, g_sound_explosion) || !is_grenade(ent))
return FMRES_IGNORED

static Float:origin[3]
static id
id = pev(ent, pev_owner)
pev(ent, pev_origin, origin)
engfunc(EngFunc_EmitSound, ent, CHAN_WEAPON, "woomen_expr.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
//engfunc(EngFunc_RemoveEntity, ent)
//create_smoke(origin)

message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0})
write_byte(TE_SPRITETRAIL) //Спрайт захвата
write_coord(floatround(origin[0]))
write_coord(floatround(origin[1]))
write_coord(floatround(origin[2])+20)
write_coord(floatround(origin[0]))
write_coord(floatround(origin[1]))
write_coord(floatround(origin[2])+80)
write_short(ExplSpr)
write_byte(20)
write_byte(20)
write_byte(4)
write_byte(20)
write_byte(10)
message_end()

message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0})
write_byte(TE_SPRITETRAIL) //Спрайт захвата
write_coord(floatround(origin[0]))
write_coord(floatround(origin[1]))
write_coord(floatround(origin[2])+20)
write_coord(floatround(origin[0]))
write_coord(floatround(origin[1]))
write_coord(floatround(origin[2])+80)
write_short(ExplSpr2)
write_byte(20)
write_byte(20)
write_byte(4)
write_byte(20)
write_byte(10)
message_end()

message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0})
write_byte(TE_SPRITETRAIL) //Спрайт захвата
write_coord(floatround(origin[0]))
write_coord(floatround(origin[1]))
write_coord(floatround(origin[2])+20)
write_coord(floatround(origin[0]))
write_coord(floatround(origin[1]))
write_coord(floatround(origin[2])+80)
write_short(ExplSpr3)
write_byte(20)
write_byte(20)
write_byte(4)
write_byte(20)
write_byte(10)
message_end()

message_begin(MSG_ALL, SVC_TEMPENTITY);
write_byte(TE_SPRITE);
write_coord(floatround(origin[0]));
write_coord(floatround(origin[1]));
write_coord(floatround(origin[2]) + 70);
write_short(ExplYO);
write_byte(5);
write_byte(100);
message_end();//MESSAGE ENDING

create_blast_circle(ent, 10, 255, 40)

new tre
while((tre = find_ent_in_sphere(tre,origin,250.0)) != 0)
{
if(is_user_alive(tre) && get_user_team(tre) == get_user_team(id))
{
message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, tre)
write_short(1<<10)
write_short(1<<10)
write_short(0x0000)
write_byte(170)
write_byte(255)
write_byte(0)
write_byte(75)
message_end()

set_user_rendering(tre,kRenderFxGlowShell,0,255,50,kRenderNormal,20)
set_task(1.5, "UnEffect", tre)

set_user_health(tre,100)
}
}

return FMRES_SUPERCEDE
}

public UnEffect(tre)
{
if(is_user_alive(tre))
{
set_user_rendering(tre)
}
}

public forward_playbackevent(flags, invoker, eventindex) {
// we do not need a large amount of smoke
if (eventindex == g_eventid_createsmoke)
return FMRES_SUPERCEDE

return FMRES_IGNORED
}

bool:is_grenade(ent) {
if (!pev_valid(ent))
return false

static classname[sizeof g_classname_grenade + 1]
pev(ent, pev_classname, classname, sizeof g_classname_grenade)
if (equal(classname, g_classname_grenade))
return true

return false
}

stock bool:is_hull_vacant(const Float:origin[3], hull) {
new tr = 0
engfunc(EngFunc_TraceHull, origin, origin, 0, hull, 0, tr)
if (!get_tr2(tr, TR_StartSolid) && !get_tr2(tr, TR_AllSolid) && get_tr2(tr, TR_InOpen))
return true

return false
}

stock create_blast_circle(ent, R, G, B)
{
static Float: fOrigin[3], iOrigin[3];

pev(ent, pev_origin, fOrigin);

FVecIVec( fOrigin, iOrigin );

message_begin( MSG_BROADCAST, SVC_TEMPENTITY, iOrigin );
write_byte( TE_BEAMCYLINDER );
write_coord( iOrigin[ 0 ] );
write_coord( iOrigin[ 1 ] );
write_coord( iOrigin[ 2 ]);
write_coord( iOrigin[ 0 ] );
write_coord( iOrigin[ 1 ] );
write_coord( iOrigin[ 2 ] + 250); // radius
write_short( g_iSpriteCircle );
write_byte( 0 ); // start framerate
write_byte( 1 ); // framerate
write_byte( 5 ); // life
write_byte( 30 ); // width
write_byte( 1 ); // amplitude

write_byte®;
write_byte(G);
write_byte(B);

write_byte( 255 ); // brightness
write_byte( 5 ); // speed
message_end();
}

Сам архив

Отредактировал: Blitzz, - 22.2.2016, 0:35
Прикрепленные файлы:
Прикрепленный файл  nadehealth.zip ( 239,62 килобайт ) Кол-во скачиваний: 556


Самые лучшие мысли приходят по глупости.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
magis1337
сообщение 22.2.2016, 8:28
Сообщение #5
Стаж: 11 лет
Город: Odessa

Сообщений: 2782
Благодарностей: 1535
Полезность: 918

host5.ru
Меценат Меценат

Код:
#include <amxmodx>
#include <fakemeta>
#include < cstrike >
#include < fun >
#include < engine >

#include <amxmisc>

#define PLUGIN_NAME "Nade Health"
#define PLUGIN_VERSION "0.1"
#define PLUGIN_AUTHOR "Dorus"

#define V_MODEL "models/v_he_mk_nade.mdl"
#define P_MODEL "models/p_he_mk_nade.mdl"
#define W_MODEL "models/w_he_mk_nade.mdl"

#define GIVE_HP 30

#define SMOKE_SCALE 30
#define SMOKE_FRAMERATE 12

new ExplSpr, ExplSpr2, ExplSpr3, ExplYO, g_iSpriteCircle

// do not edit
new const g_sound_explosion[] = "weapons/sg_explode.wav"
new const g_classname_grenade[] = "grenade"
new g_eventid_createsmoke

public plugin_init() {
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)

register_forward(FM_EmitSound, "forward_emitsound")
register_forward(FM_PlaybackEvent, "forward_playbackevent")
register_event( "CurWeapon", "CurWeapon", "be", "1=1" )
register_forward( FM_SetModel, "forward_model", 1 )

// we do not precaching, but retrieving the indexes
g_eventid_createsmoke = engfunc(EngFunc_PrecacheEvent, 1, "events/createsmoke.sc")
}

public plugin_precache()
{
ExplSpr = precache_model("sprites/gp_1.spr");
ExplSpr2 = precache_model("sprites/gp_2.spr");
ExplSpr3 = precache_model("sprites/gp_3.spr");
precache_sound("woomen_expr.wav")
ExplYO = precache_model("sprites/woomensx.spr");

g_iSpriteCircle = precache_model( "sprites/shockwave.spr" );

precache_model(V_MODEL)
precache_model(W_MODEL)
precache_model(P_MODEL)
}

public CurWeapon(id)
{
if(is_user_connected(id) && is_user_alive(id) && is_user_admin(id))
{
if(get_user_weapon(id) == CSW_SMOKEGRENADE)
{
set_pev(id, pev_viewmodel2, V_MODEL)
set_pev(id, pev_weaponmodel2, P_MODEL)
}
}
}

public forward_model( entity, const model[] )
{
if( !pev_valid( entity ) ) return FMRES_IGNORED;

if(equal( model, "models/w_smokegrenade.mdl" ))
{
engfunc ( EngFunc_SetModel, entity, W_MODEL );
}
return FMRES_IGNORED;
}

public forward_emitsound(ent, channel, const sound[])
{
if (!equal(sound, g_sound_explosion) || !is_grenade(ent))
return FMRES_IGNORED

static Float:origin[3]
static id
id = pev(ent, pev_owner)
pev(ent, pev_origin, origin)

if(!is_user_admin(id)) {
return FMRES_IGNORED
}

engfunc(EngFunc_EmitSound, ent, CHAN_WEAPON, "woomen_expr.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
//engfunc(EngFunc_RemoveEntity, ent)
//create_smoke(origin)

message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0})
write_byte(TE_SPRITETRAIL) //Спрайт захвата
write_coord(floatround(origin[0]))
write_coord(floatround(origin[1]))
write_coord(floatround(origin[2])+20)
write_coord(floatround(origin[0]))
write_coord(floatround(origin[1]))
write_coord(floatround(origin[2])+80)
write_short(ExplSpr)
write_byte(20)
write_byte(20)
write_byte(4)
write_byte(20)
write_byte(10)
message_end()

message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0})
write_byte(TE_SPRITETRAIL) //Спрайт захвата
write_coord(floatround(origin[0]))
write_coord(floatround(origin[1]))
write_coord(floatround(origin[2])+20)
write_coord(floatround(origin[0]))
write_coord(floatround(origin[1]))
write_coord(floatround(origin[2])+80)
write_short(ExplSpr2)
write_byte(20)
write_byte(20)
write_byte(4)
write_byte(20)
write_byte(10)
message_end()

message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0})
write_byte(TE_SPRITETRAIL) //Спрайт захвата
write_coord(floatround(origin[0]))
write_coord(floatround(origin[1]))
write_coord(floatround(origin[2])+20)
write_coord(floatround(origin[0]))
write_coord(floatround(origin[1]))
write_coord(floatround(origin[2])+80)
write_short(ExplSpr3)
write_byte(20)
write_byte(20)
write_byte(4)
write_byte(20)
write_byte(10)
message_end()

message_begin(MSG_ALL, SVC_TEMPENTITY);
write_byte(TE_SPRITE);
write_coord(floatround(origin[0]));
write_coord(floatround(origin[1]));
write_coord(floatround(origin[2]) + 70);
write_short(ExplYO);
write_byte(5);
write_byte(100);
message_end();//MESSAGE ENDING

create_blast_circle(ent, 10, 255, 40)

new tre
while((tre = find_ent_in_sphere(tre,origin,250.0)) != 0)
{
if(is_user_alive(tre) && get_user_team(tre) == get_user_team(id))
{
message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, tre)
write_short(1<<10)
write_short(1<<10)
write_short(0x0000)
write_byte(170)
write_byte(255)
write_byte(0)
write_byte(75)
message_end()

set_user_rendering(tre,kRenderFxGlowShell,0,255,50,kRenderNormal,20)
set_task(1.5, "UnEffect", tre)

set_user_health(tre,100)
}
}

return FMRES_SUPERCEDE
}

public UnEffect(tre)
{
if(is_user_alive(tre))
{
set_user_rendering(tre)
}
}

public forward_playbackevent(flags, invoker, eventindex) {
// we do not need a large amount of smoke
if (eventindex == g_eventid_createsmoke)
return FMRES_SUPERCEDE

return FMRES_IGNORED
}

bool:is_grenade(ent) {
if (!pev_valid(ent))
return false

static classname[sizeof g_classname_grenade + 1]
pev(ent, pev_classname, classname, sizeof g_classname_grenade)
if (equal(classname, g_classname_grenade))
return true

return false
}

stock bool:is_hull_vacant(const Float:origin[3], hull) {
new tr = 0
engfunc(EngFunc_TraceHull, origin, origin, 0, hull, 0, tr)
if (!get_tr2(tr, TR_StartSolid) && !get_tr2(tr, TR_AllSolid) && get_tr2(tr, TR_InOpen))
return true

return false
}

stock create_blast_circle(ent, R, G, B)
{
static Float: fOrigin[3], iOrigin[3];

pev(ent, pev_origin, fOrigin);

FVecIVec( fOrigin, iOrigin );

message_begin( MSG_BROADCAST, SVC_TEMPENTITY, iOrigin );
write_byte( TE_BEAMCYLINDER );
write_coord( iOrigin[ 0 ] );
write_coord( iOrigin[ 1 ] );
write_coord( iOrigin[ 2 ]);
write_coord( iOrigin[ 0 ] );
write_coord( iOrigin[ 1 ] );
write_coord( iOrigin[ 2 ] + 250) ; // radius
write_short( g_iSpriteCircle );
write_byte( 0 ); // start framerate
write_byte( 1 ); // framerate
write_byte( 5 ); // life
write_byte( 30 ); // width
write_byte( 1 ); // amplitude

write_byte®;
write_byte(G);
write_byte(B);

write_byte( 255 ); // brightness
write_byte( 5 ); // speed
message_end();
}

для випов флаг t
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя selest
сообщение 22.2.2016, 11:04
Сообщение #6


Стаж: 12 лет

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

magis1337, а какой командой в чате можно брать?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 22.2.2016, 11:10
Сообщение #7


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

magis1337,
Код:
if(is_user_connected(id) && is_user_alive(id) && is_user_admin(id))

Заменить на:
Код:
if(is_user_alive(id) && is_user_admin(id))

А лучше не дергать каждый раз проверку или админ. Делаем так:
1. Добавляем глобальный массив who[33]
Код:
new ExplSpr, ExplSpr2, ExplSpr3, ExplYO, g_iSpriteCircle

Заменить на
Код:
new ExplSpr, ExplSpr2, ExplSpr3, ExplYO, g_iSpriteCircle, who[33]


2. В client_putinserver(id) дописать строчку
Код:

who[id] = is_user_admin(id) ? 1 : 0;


3. Строку
Код:
if(is_user_connected(id) && is_user_alive(id) && is_user_admin(id))

Заменить на:
Код:
if(is_user_alive(id) && who(id) == 1)


4. Дописать функцию обнуления переменной при выходе игрока:
Код:
public client_disconnect(id)
{
who[id] = 0
}


Отредактировал: ssx, - 22.2.2016, 11:11


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 3 раз
   + Цитировать сообщение
magis1337
сообщение 22.2.2016, 11:13
Сообщение #8
Стаж: 11 лет
Город: Odessa

Сообщений: 2782
Благодарностей: 1535
Полезность: 918

host5.ru
Меценат Меценат

selest, в чате команду забыли добавить, позже скриптер наш придет допишет, правда хз как выйдет, нужно будет проверку сделать, что бы через gui оно доступна не была, а через меню /greenhp брало hp реген
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
woody
сообщение 22.2.2016, 11:30
Сообщение #9
Стаж: 11 лет

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

ssx, если игрок сменит псевдоним, то он останется при себе. Переменную нужно тогда и в client_infochanged обнулять.
Проще уж реализовать так, как предложить magis.
Не во всех случаях твой вариант будет правильным.
Ты не смотришь обширно на все факторы, которые влияют непосредственно на это.

Код:
static cell AMX_NATIVE_CALL is_user_alive(AMX *amx, cell *params) /* 1 param */
{
int index = params[1];

if (index < 1 || index > gpGlobals->maxClients)
{
return 0;
}

CPlayer* pPlayer = GET_PLAYER_POINTER_I(index);

if (g_bmod_tfc)
{
edict_t *e = pPlayer->pEdict;
if (e->v.flags & FL_SPECTATOR ||
(!e->v.team || !e->v.playerclass))
{
return 0;
}
}

return ((pPlayer->ingame && pPlayer->IsAlive()) ? 1 : 0);
}


Код:
static cell AMX_NATIVE_CALL is_user_connected(AMX *amx, cell *params) /* 1 param */
{
int index = params[1];

if (index < 1 || index > gpGlobals->maxClients)
return 0;

CPlayer* pPlayer = GET_PLAYER_POINTER_I(index);

return (pPlayer->ingame ? 1 : 0);
}


Ок, в is_user_alive уже есть is_user_connected, а чего ж ты про CurWeapon, например промолчал? Хотел выделиться? Дал хороший совет? Вынужден огорчить тебя - не вышло.

Отредактировал: woody, - 22.2.2016, 11:30
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 22.2.2016, 11:55
Сообщение #10


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

woody,
То что я написал выше подойдет для нормальный серверов где игроки с правами не меняют ник постоянно ..

У кого есть более обширные знания - пусть помогут оптимизировать.

client_infochanged вызывается часто у игрока а ник он меняет редко.. зачем это еще дергать ?

У меня лично, во всех кастомных плагинах реализована проверка флага в putinserver и за несколько лет еще не было проблем никаких, даже нюансов не было. (флаги по ник+пароль)


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
woody
сообщение 22.2.2016, 12:10
Сообщение #11
Стаж: 11 лет

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

Код:
public client_infochanged(id)
{
if(!is_user_connected(id))
return PLUGIN_CONTINUE

new szNameNew[64], szNameOld[64]

get_user_info(id, "name", szNameNew, charsmax( szNameNew ))
get_user_name(id, szNameOld, charsmax( szNameOld ))

if(!equal(szNameOld, szNameNew))
{
lalala[id] = false
}
return PLUGIN_CONTINUE
}


ssx, ну а че поделать? Можно еще мессагой Cstrike_Name_Change попробовать отловить.
Для нормальных серверов? hahahaha.
Буду знать, что нормальный сервер - это где ники не меняют.

Отредактировал: woody, - 22.2.2016, 12:10
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя romana
сообщение 22.2.2016, 15:56
Сообщение #12


Стаж: 10 лет

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

ollli6ki.
Прикрепленные файлы:
Прикрепленное изображение
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Blitzz
сообщение 22.2.2016, 17:01
Сообщение #13


Стаж: 10 лет

Сообщений: 509
Благодарностей: 117
Полезность: 91

Цитата(magis1337 @ 22.2.2016, 11:13) *
selest, в чате команду забыли добавить, позже скриптер наш придет допишет, правда хз как выйдет, нужно будет проверку сделать, что бы через gui оно доступна не была, а через меню /greenhp брало hp реген

Было бы не плохо, через команду в чат, или в консоль!


Самые лучшие мысли приходят по глупости.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
magis1337
сообщение 22.2.2016, 17:02
Сообщение #14
Стаж: 11 лет
Город: Odessa

Сообщений: 2782
Благодарностей: 1535
Полезность: 918

host5.ru
Меценат Меценат

Blitzz, позже выложу, плагин уже готов,пока нету возможности кинуть
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
woody
сообщение 22.2.2016, 17:21
Сообщение #15
Стаж: 11 лет

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

Blitzz,

Код:
 new huy[33]


Код:
register_clcmd("say /huy", "huy")


Код:
public huy(id) {
if(!huy[id]) {
give_item(id, "weapon_smokegrenade")
huy[id] = true
}else{
give_item(id, "weapon_smokegrenade")
}
}


ну и в смене моделей чекаешь на huy[id]
еще можно въебать engclient_cmd, но на это по*** с CurWeapon.
Вообще лучше на ham_item_deploy заменить и сделать в выдаче гранаты эмуляцию выбора гранаты через engclient_cmd.

Еще проверку на подключенного игрока в функции выше добавить.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Blitzz
сообщение 23.2.2016, 1:43
Сообщение #16


Стаж: 10 лет

Сообщений: 509
Благодарностей: 117
Полезность: 91

woody,
("say /huy", "huy") crazy.gif

CSDM сервер не запускается с этим плагином :(


Самые лучшие мысли приходят по глупости.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Blitzz
сообщение 23.2.2016, 19:44
Сообщение #17


Стаж: 10 лет

Сообщений: 509
Благодарностей: 117
Полезность: 91

Есть у кого модели гранаты, в архиве их нету (((


Самые лучшие мысли приходят по глупости.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mrtops4
сообщение 23.2.2016, 20:00
Сообщение #18


Стаж: 10 лет
Город: Спб

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

можно рабочий вариант плагина с модельками ? полный архив, интересная вещь!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Blitzz
сообщение 23.2.2016, 20:51
Сообщение #19


Стаж: 10 лет

Сообщений: 509
Благодарностей: 117
Полезность: 91

Цитата(mrtops4 @ 23.2.2016, 20:00) *
можно рабочий вариант плагина с модельками ? полный архив, интересная вещь!

Плагин рабочий сам, просто модельки вставь какие не будь, или найди оригинал !


Самые лучшие мысли приходят по глупости.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Danjkeee^
сообщение 24.2.2016, 7:27
Сообщение #20
Стаж: 14 лет
Город: Волгоград

Сообщений: 628
Благодарностей: 215
Полезность: 508

CBETJIAHA,
Так выложи оригинал ))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
3 страниц V   1 2 »
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 3 гостей читают эту тему: