Half-Life и Adrenaline Gamer форум

Всё об игре в Халф-Лайф и АГ
Текущее время: 02 дек 2022, 23:23

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: [REQ] [Weapon] Frost Grenade
СообщениеДобавлено: 06 июл 2017, 01:02 
Не в сети
Аватара пользователя
Зарегистрирован:
12 июн 2016, 01:22
Последнее посещение:
14 июн 2019, 12:52
Сообщения: 345
Откуда: Родом из Халфляндии
Я хотел бы попросить написать плагин Frost Grenade (Граната - заморозка) как из Zombie Plague для Weapon Mod.
Хочу разместить ее у себя на сервере.
За ранее спасибо.


Вложения:
53dc93ddc5461.jpg
53dc93ddc5461.jpg [ 279.32 КБ | Просмотров: 4184 ]

_________________
Изображение

Изображение

Изображение
Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: [REQ] [Weapon] Frost Grenade
СообщениеДобавлено: 09 июл 2017, 16:16 
Не в сети
Аватара пользователя
Зарегистрирован:
12 июн 2016, 01:22
Последнее посещение:
14 июн 2019, 12:52
Сообщения: 345
Откуда: Родом из Халфляндии
Так , я немного поработал , до той степени куда где еще хоть что нибудь понимал.
как реализовать далее? полет гранаты , взрыв , а дальше я сам.
 

_________________
Изображение

Изображение

Изображение


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: [REQ] [Weapon] Frost Grenade
СообщениеДобавлено: 10 июл 2017, 07:12 
Не в сети
Аватара пользователя
Зарегистрирован:
28 май 2016, 23:17
Последнее посещение:
16 июн 2022, 20:05
Сообщения: 117
it's not easy.

_________________
Mister, UMP-9 has just arrive you better careful for yourself against when you seen her~...


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: [REQ] [Weapon] Frost Grenade
СообщениеДобавлено: 10 июл 2017, 12:39 
Не в сети
Аватара пользователя
Зарегистрирован:
12 июн 2016, 01:22
Последнее посещение:
14 июн 2019, 12:52
Сообщения: 345
Откуда: Родом из Халфляндии
Я то понимаю что not easy, но бросать этого я не собираюсь.
Мне нужно сочинить простую гранату со взрывом, которую я в дальнейшем переделаю под frost.

_________________
Изображение

Изображение

Изображение


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: [REQ] [Weapon] Frost Grenade
СообщениеДобавлено: 14 июл 2017, 17:07 
Не в сети
Site Admin
Зарегистрирован:
01 июн 2010, 01:27
Последнее посещение:
30 ноя 2022, 13:07
Сообщения: 6831
Для взрыва есть натив в вепонмоде, попробуй пока поискать в других оружиях тут на форуме. Например, был какой-то гранатомет.


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: [REQ] [Weapon] Frost Grenade
СообщениеДобавлено: 15 июл 2017, 13:44 
Не в сети
Аватара пользователя
Зарегистрирован:
12 июн 2016, 01:22
Последнее посещение:
14 июн 2019, 12:52
Сообщения: 345
Откуда: Родом из Халфляндии
Это то есть. Но вот а спавн модели и полет?

_________________
Изображение

Изображение

Изображение


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: [REQ] [Weapon] Frost Grenade
СообщениеДобавлено: 17 июл 2017, 00:39 
Не в сети
Site Admin
Зарегистрирован:
01 июн 2010, 01:27
Последнее посещение:
30 ноя 2022, 13:07
Сообщения: 6831
Ну, раз там гранатомет, то и спавн и полет там должны быть.
Тык.


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: [REQ] [Weapon] Frost Grenade
СообщениеДобавлено: 18 дек 2020, 13:46 
Не в сети
Аватара пользователя
Зарегистрирован:
27 дек 2019, 17:59
Последнее посещение:
02 дек 2022, 17:08
Сообщения: 228
Откуда: Иркутск
Чисто теоретически, граната в руках - это однозарядный гранатомёт. Так что, думаю, подойдёт код от Бульдога.

Код:
//**********************************************
//* Launch a contact grenade.               *
//**********************************************
//добавь CGrenada__Launcher(iPlayer) в Primary Attack
CGrenade__Launch( iPlayer )
{
   new pGrenade = create_entity( "info_target" );
   
   if( pGrenade <= 0 )
      return;
      
   // classname
   set_pev( pGrenade, pev_classname,   GRENADE_CLASSNAME );
   
   // model
   engfunc( EngFunc_SetModel, pGrenade,   MODEL_CLIP );
   
   // origin
   static Float:vecSrc[ 3 ];
   UTIL_MakeVectors( iPlayer, v_angle + punchangle );
   GetGunPosition( iPlayer, vecSrc );
   engfunc( EngFunc_SetOrigin, pGrenade,   vecSrc );
   
   // fly in the air
   set_pev( pGrenade, pev_gravity,      0.5 );
   
   // movetype
   set_pev( pGrenade, pev_movetype,   g_iCurrentMode[ iPlayer ] == MODE_BOUNCE ? MOVETYPE_BOUNCE : MOVETYPE_TOSS );
   
   // interaction
   set_pev( pGrenade, pev_solid,      SOLID_BBOX );
   
   // size
   engfunc( EngFunc_SetSize, pGrenade,   gVecZero, gVecZero );
   
   // owner
   set_pev( pGrenade, pev_owner,      iPlayer );
   
   // store grenade mode
   set_pev( pGrenade, pev_iuser1,      g_iCurrentMode[ iPlayer ] );
   
   // damage
   set_pev( pGrenade, pev_dmg,      WEAPON_DAMAGE );
   
   // next think
   set_pev( pGrenade, pev_nextthink,   get_gametime( ) + 0.6 );
   
   // Velocity
   static Float:vecVelocity[ 3 ];
   velocity_by_aim( iPlayer, GRENADE_VELOCITY, vecVelocity );
   set_pev( pGrenade, pev_velocity,   vecVelocity );
   
   // angles
   static Float:vecAngles[ 3 ];
   engfunc( EngFunc_VecToAngles, vecVelocity, vecAngles );
   set_pev( pGrenade, pev_angles,       vecAngles );
   
   // trail
   message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
   write_byte( TE_BEAMFOLLOW );
   write_short( pGrenade );
   write_short( g_sModelIndexTrail );
   write_byte( 25 );
   write_byte( 5 );
   write_byte( 250 );
   write_byte( 0 );
   write_byte( 0 );
   write_byte( 250 );
   message_end( );
}

//**********************************************
//* Grenade is ticking away.              *
//**********************************************

public CGP25Grenade__Think( pGrenade )
{
   if( !pev_valid( pGrenade ) )
      return;
      
   switch( pev( pGrenade, pev_iuser1 ) )
   {
      case MODE_BOUNCE:
      {
         static Float:vecVelocity[ 3 ];
         pev( pGrenade, pev_velocity, vecVelocity );
         
         if( xs_vec_len( vecVelocity ) <= 10.0 )
         {
            CGP25__Explode( pGrenade );
         }
      }
   }
}

//**********************************************
//* Grenade hit something.                 *
//**********************************************

public CGP25Grenade__Touch( pGrenade, pOther )
{
   if( !pev_valid( pGrenade ) )
      return;
      
   switch( pev( pGrenade, pev_iuser1 ) )
   {
      case MODE_BOUNCE:
      {
         static Float:vecVelocity[ 3 ];
         pev( pGrenade, pev_velocity, vecVelocity );
         
         xs_vec_mul_scalar( vecVelocity, 0.4, vecVelocity );
         set_pev( pGrenade, pev_velocity, vecVelocity );
         
         if( pev( pGrenade, pev_fuser1 ) <= 0.0 )
         {
            emit_sound( pGrenade, CHAN_ITEM, SOUND_BOUNCE, VOL_NORM, ATTN_NORM, 0, 97 );
            set_pev( pGrenade, pev_fuser1, random_float( 0.5, 0.9 ) );
         }
         
         set_pev( pGrenade, pev_nextthink, get_gametime( ) + 0.16 );
      }
      case MODE_INSTANT:
      {
         CGP25__Explode( pGrenade );
      }
   }
}

//**********************************************
//* Grenade explode.                 *
//**********************************************

CGP25__Explode( pGrenade )
{
   if( !pev_valid( pGrenade ) )
      return;
      
   static Float:vecSrc[ 3 ], Float:flDmg;
   pev( pGrenade, pev_origin, vecSrc );
   pev( pGrenade, pev_dmg, flDmg );
   
   // sprite
   engfunc( EngFunc_MessageBegin, MSG_PAS, SVC_TEMPENTITY, vecSrc, 0 );
   write_byte( TE_EXPLOSION );
   engfunc( EngFunc_WriteCoord, vecSrc[ 0 ] );
   engfunc( EngFunc_WriteCoord, vecSrc[ 1 ] );
   engfunc( EngFunc_WriteCoord, vecSrc[ 2 ] );
   write_short( g_sModelIndexExplode );
   write_byte( floatround( ( flDmg - 50.0 ) * 0.6 ) );
   write_byte( 15 );
   write_byte( TE_EXPLFLAG_NONE );
   message_end( );
   
   static pevOwner;
   pevOwner = pev( pGrenade, pev_owner );
   
   // damage
   wpnmod_radius_damage( vecSrc, pGrenade, pevOwner, flDmg, GRENADE_RADIUS, CLASS_NONE, DMG_BLAST | DMG_ALWAYSGIB );
      
   engfunc( EngFunc_RemoveEntity, pGrenade );   
}
UTIL_MakeVectors( Player, bsType )
{
   static Float:vPunchAngle[ 3 ], Float:vAngle[ 3 ];

   if( bsType & v_angle )   
      pev( Player, pev_v_angle, vAngle );
   if( bsType & punchangle )
      pev( Player, pev_punchangle, vPunchAngle );

   xs_vec_add( vAngle, vPunchAngle, vAngle );
   engfunc( EngFunc_MakeVectors, vAngle );
}
GetGunPosition( pPlayer, Float:vecRet[ 3 ] )
{
   static Float:vecSrc[ 3 ], Float:vForward[ 3 ], Float:vRight[ 3 ], Float:vUp[ 3 ];
   pev( pPlayer, pev_origin, vecSrc );
   global_get( glb_v_forward, vForward );
   global_get( glb_v_right, vRight );
   global_get( glb_v_up, vUp );
   
   vecRet[ 0 ] = vecSrc[ 0 ] + vForward[ 0 ] * 25.0 + vRight[ 0 ] * 20.0 + vUp[ 0 ] * 10.0;
   vecRet[ 1 ] = vecSrc[ 1 ] + vForward[ 1 ] * 25.0 + vRight[ 1 ] * 20.0 + vUp[ 1 ] * 10.0;
   vecRet[ 2 ] = vecSrc[ 2 ] + vForward[ 2 ] * 25.0 + vRight[ 2 ] * 20.0 + vUp[ 2 ] * 10.0;
}

_________________
ВК: https://vk.com/pristavka2013
GitHub: https://github.com/mrglaster
Почта: [email protected]

Есть объективная реальность, а есть печенье.


Вернуться к началу
 Профиль 
  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB