Перейти к публикации

Electr0

Администраторы
  • Публикаций

    10 362
  • Зарегистрирован

  • Посещение

  • Дней в лидерах

    414

Комментарии к Запись, опубликованные пользователем Electr0

  1. 1 час назад, EskimoCallboy сказал:

    Да,шеф, сообрази что-нибудь с молотком,а то поджигают сразу и у танка есть не больше 25 секунд, чтобы вывести хотя-бы одного выжившего из строя. 

    У вагона? 

  2. хаа, я такой там антитроллинг запилю пздц D, пожалеют что не открыли сразу D, если после запуска открытия двери прошло 25 секунд и дверь не открыли, она откроется сама, запустится паника, сирена, хаос

  3. проверили с @Lorde, запрет на потерю контроля танком работает пока дверь не открыта. Однако танк там до посинения может сидеть и это как-то не круто

  4. Проблема в том что если я сделаю спаун танка по открытию двери то получится так, что они будут закидывать заранее молотов, в открытый вагон где появится танк. 

     

    Еще одно забавное явление, разработчики сделали отключение потери контроля в вагоне, до открытия дверей, ток не пойму почему это не работает. 

     

    Я сам не видел, нужно проверить чтобы точно знать. 

  5. любые махинации с флагами твердости, и флагами типа движения провалились.

     

    похоже придется использовать метод типа "подстраХУЙ", или "застраХУЙ", нужно ставить такие предметы сначала на землю, а потом когда двиган успокоился обмануть его поставив такой предмет туда где он должен стоять

  6. вот код из sdk dota (уже source), содержащий кусок который такой же в L4D2 :

    bool CItem::CreateItemVPhysicsObject( void )
    {
    	// Create the object in the physics system
    	int nSolidFlags = GetSolidFlags() | FSOLID_NOT_STANDABLE;
    	if ( !m_bActivateWhenAtRest )
    	{
    		nSolidFlags |= FSOLID_TRIGGER;
    	}
    
    	if ( VPhysicsInitNormal( SOLID_VPHYSICS, nSolidFlags, false ) == NULL )
    	{
    		SetSolid( SOLID_BBOX );
    		AddSolidFlags( nSolidFlags );
    
    		// If it's not physical, drop it to the floor
    		if (UTIL_DropToFloor(this, MASK_SOLID) == 0)
    		{
    			Warning( "Item %s fell out of level at %f,%f,%f\n", GetClassname(), GetAbsOrigin().x, GetAbsOrigin().y, GetAbsOrigin().z);
    			UTIL_Remove( this );
    			return false;
    		}
    	}
    
    	return true;
    }

     

  7. void CItem::Spawn( void )
    {
    	pev->movetype = MOVETYPE_TOSS;
    	pev->solid = SOLID_TRIGGER;
    	UTIL_SetOrigin( pev, pev->origin );
    	UTIL_SetSize(pev, Vector(-16, -16, 0), Vector(16, 16, 16));
    	SetTouch(&CItem::ItemTouch);
    
    	if (DROP_TO_FLOOR(ENT(pev)) == 0)
    	{
    		ALERT(at_error, "Item %s fell out of level at %f,%f,%f", STRING( pev->classname ), pev->origin.x, pev->origin.y, pev->origin.z);
    		UTIL_Remove( this );
    		return;
    	}
    }

    это конечно не из source, но из hlds, так что почти родственник :D

  8. кароче есть у каждого предмета в игре такие параметры определяющие его положение в пространстве m_angRotation это его наклон, скажем так при обнулении тут выставляется значение вектора равное: 0 0 0, при поворотах отдельно по осям допустим на по X просто прибавляем либо убавляем, например повернули обнуленый предмет на 90 по оси X, все это значит у нее там: минус(либо плюс)90 0 0 будет, и в таком роде, так что при любых поворотах мы просто меняем значения в m_angRotation свойстве предмета.

     

    есть так же m_vecOrigin, это положение предмета на координатной плоскости карты, значение этого параметра меняется при перемещении предмета, тоже по осям X Y Z

  9. какие это еще оси кроме X Y Z существуют?

    все типы поворотов вращают предмет по осям, просто функция повернуть предмет поворачивает его так как нужно большинству, например дверь повернуть и т.д, а отдельные функции X Y Z просто прибавляют либо убавляют значение указанной оси в более ручном режиме, когда иногда нужно необычным образом подвернуть предмет.

  10. если у всех все норм а у тебя нет ответ очевиден, настройки клиента под 100 тик сделал?, возможно что ты не получаешь некоторые пакеты данных ибо при ста тиках поток данных толще в три раза

     

    cl_resend "1.5"
    cl_interp_ratio "-1"
    cl_updaterate "100" 
    cl_cmdrate "100"
    cl_interp "0.100"
    rate "100000"
×
×
  • Создать...