Registration - or - Enter
Gutter RunnersGutter Runners

Многопользовательский мод, где предстоит играть одну и команд: большие крысы и люди....

16/01/2007

Все, кто хотя бы один раз прошел Hl1 наверняка знает, что на карте c2a5 (там где плотина) есть такие прикольные бочки, которые подскакивают вверх и там взрываются.


  • Description
  • Link and installation

Летающие бочки и trigger_push

Все, кто хотя бы один раз прошел Hl1 наверняка знает, что на карте c2a5 (там где плотина) есть такие прикольные бочки, которые подскакивают вверх и там взрываются.


Author/s of lesson : Дядя Миша
Views : 467 ( +3 )
Uploaded by : Streit
Created : 04/07/2011 6:01:51 PM
Source : http://www.half-life.ru/forum
Rating :
 ( 0 ) 
Share :


Available following translations : | russian |

Все, кто хотя бы один раз прошел Hl1 наверняка знает, что на карте c2a5 (там где плотина) есть такие прикольные бочки, которые подскакивают вверх и там взрываются. И все бы хорошо, да только эти бочки подскакивают вверх на полметра, а должны на самом деле взлетать высоко к небу. Очень мало кто видел этот скрипт работающим так как надо. И как правило вы могли это наблюдать на хл версии 1.0.1.5, а то и на более ранних. Проблема заключается в корявости кода самого trigger_push, который не придает func_pushable необходимого ускорения. Однако пофиксить этот баг несложно. Откройте triggers.cpp, найдите в нем строчку

Code:

void CTriggerPush :: Touch( CBaseEntity *pOther )

и замените в этой функции вот этот код

Code:

if ( pevToucher->solid != SOLID_NOT && pevToucher->solid != SOLID_BSP )
{
   // Instant trigger, just transfer velocity and remove
   if (FBitSet(pev->spawnflags, SF_TRIG_PUSH_ONCE))
   {
     pevToucher->velocity = pevToucher->velocity + (pev->speed * pev->movedir);
     if ( pevToucher->velocity.z > 0 )
       pevToucher->flags &= ~FL_ONGROUND;

     UTIL_Remove( this );
   }
   else
   { // Push field, transfer to base velocity
     Vector vecPush = (pev->speed * pev->movedir);
     if ( pevToucher->flags & FL_BASEVELOCITY )
       vecPush = vecPush + pevToucher->basevelocity;

     pevToucher->basevelocity = vecPush;
     pevToucher->flags |= FL_BASEVELOCITY;

     // ALERT( at_console, "Vel %f, base %f\n", pevToucher->velocity.z, pevToucher->basevelocity.z );
   }
}

на вот этот

Code:

if ( pevToucher->solid != SOLID_NOT ) //&& pevToucher->solid != SOLID_BSP )
{
   if(pevToucher->movetype == MOVETYPE_PUSHSTEP) //pushable related code
   {
     pevToucher->velocity = pevToucher->velocity + (pev->speed * pev->movedir);

     if ( pevToucher->velocity.z > 0 )
       pevToucher->flags &= ~FL_ONGROUND;

     pev->solid = SOLID_NOT; //push once. re-enable to affect again
   }
   else //other physobjects
   {
     // Push field, transfer to base velocity
     Vector vecPush = (pev->speed * pev->movedir);

     if ( pevToucher->flags & FL_BASEVELOCITY )
       vecPush = vecPush + pevToucher->basevelocity;

     pevToucher->basevelocity = vecPush;
     pevToucher->flags |= FL_BASEVELOCITY;

     //ALERT( at_console, "Vel %f, base %f\n", pevToucher->velocity.z, pevToucher->basevelocity.z );
   }

   if (FBitSet(pev->spawnflags, SF_TRIG_PUSH_ONCE)) UTIL_Remove( this );
}

Компилируем, запускаем с2а5 и наслаждаемся правильно летающими бочками (а этот скрипт довольно красиво выглядит, когда работает правильно).



Similar1. Разбираемся в коде пушки МР5 - По просьбам трудящихся коментирую код МР5
2. Новые типы патронов - Каждый хоть раз добавлял в Хл новое оружие но ему не нравилось, что оно или слишком мощно стреляет или слишком слабо.
3. Новый монстр - В общем-то это самый лёгкий тутор который можно придумать.
4. Изменяем классы монстров злой барн - Как известно, первое что хочет сделать начинающий кодер (по крайней так было у меня ) это написать какое-нибудь оружие и изменить монстров.
5. И снова наследование классов :) - Казалось бы тема наследования классов давно избита, ан нет всё ещё существуют вопросы, правда про чуть боле сложное наследование.
6. Каждой пушке - спрайт - Итак вы создали новое оружие. А в меню выбора вместо рисунка непонятные спрайты, да и прицела нет.
7. Замедление игрока - Довольно забавно наблюдать, как игрок одинаково быстро бегает как с монтировкой в руках, так и с тяжелой базукой, хотя логичнее, что держа в руках сей девайс, он будет бегать медленнее
8. Создание кооперативного прохождения - Данный тутор покажет как сделать в вашем моде кооператив.
Ссылки на объект
Полная ссылка на текущем языке :
Короткая ссылка :
Ссылка на превью-картинку :
Ссылка на картинку в полном размере :
Ссылка для вашего форума или сайта
BB код ссылка:
BB код ссылка с картинкой :
BB код картинки :
HTML код ссылка:
HTML код ссылка с картинкой :
HTML код картинки :
You cannot comment, because you are not registered.
    Мод Counter-Strike: Classic Offensive
    Мод Counter-Strike: Classic Offensive
    Chunli Wonder Woman Cosplay
    Street Fighter VChunli Wonder Woman Cosplay
    Juri Beach Costume
    Street Fighter X TekkenJuri Beach Costume
    Poke646 Remod
    Half-LifePoke646 Remod