Новые сообщения Участники Правила Поиск
Модератор форума: freeknik, SLAwww, thecre, RealCrazyMan  
Помощь по SDK для Serious Sam 1.05/1.07
VITEK Пятница, 21.02.2014, 11:06 | Сообщение # 2041


Сообщений: 93
Награды: 4
Замечания: 0%
 
Егор, посоветую тебе, что через HUD.cpp никогда не нужно отсылай эвенты, если хочешь сделать передвижение курсора, выбор и прочее в самом хаде, делай это в самом Player.es, там по крайней мере будет работать по мультиплееру, причем сделать такую систему без хада очень легко. Если надо подробней объяснить, стучи в скайп

SLAwww Пятница, 21.02.2014, 21:40 | Сообщение # 2042


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Heming_Hitrowski, расскажи подробно, что именно ты пытаешься реализовать таким образом.

Where did all the dragons go?
We searched in the hills and we searched down the canyons,
we even scanned the depths of the caves with our armour, swords and lanterns.
Oh, if only had we seen him lurch, from his glorious skull covered perch.

CRACK went his claws and SMACK swipped the tail,
a ROAR of might, one big BITE.

and so ended our search.
Heming_Hitrowski Суббота, 22.02.2014, 14:32 | Сообщение # 2043


Double Jumper
Сообщений: 885
Награды: 32
Замечания: 0%
 
Код
void RightMouseClick(INDEX iClickAction, INDEX iSlotCaused) {
   // if drop function called
    if (iClickAction == 1) {

     switch (iSlotCaused) {
     case 0:
      if (GetInventory()->m_iSlot0 != 0) {
      SpawnItem(GetInventory()->m_iSlot0);
      GetInventory()->m_iSlot0 = 0;
      CPrintF("Dropped!\n");
      }
     break;
     }

     GetPlayerWeapons()->pen_Object = NULL;
    }
   return;
  };

  void SpawnItem(INDEX iID) {
    CPlacement3D pl = CPlacement3D(FLOAT3D(GetPlacement().pl_PositionVector(1),  
   GetPlacement().pl_PositionVector(2) + 0.5f,
   GetPlacement().pl_PositionVector(3)), GetPlacement().pl_OrientationAngle);
   CEntityPointer m_penObject = CreateEntity(pl, CLASS_PORTABLEOBJECT);
   ((CPortableObject*)&*m_penObject)->iID = iID;
   ((CPortableObject*)&*m_penObject)->bCanTake = TRUE;
   m_penObject->Initialize();
  }


SLAwww Воскресенье, 23.02.2014, 04:36 | Сообщение # 2044


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Непонятно, при чём здесь HUD. Я же просил описать, что именно ты делаешь.

Where did all the dragons go?
We searched in the hills and we searched down the canyons,
we even scanned the depths of the caves with our armour, swords and lanterns.
Oh, if only had we seen him lurch, from his glorious skull covered perch.

CRACK went his claws and SMACK swipped the tail,
a ROAR of might, one big BITE.

and so ended our search.
Heming_Hitrowski Воскресенье, 23.02.2014, 10:29 | Сообщение # 2045


Double Jumper
Сообщений: 885
Награды: 32
Замечания: 0%
 
SLAwww, у меня есть курсор на экране. Я нажимаю на правую кнопку мыши, определяя координаты курсора. Если они сходятся с координатой кнопки, которая у меня есть на экране, я посылаю игроку эвент.
Сообщение отредактировал Heming_Hitrowski - Воскресенье, 23.02.2014, 10:29


SLAwww Воскресенье, 23.02.2014, 20:16 | Сообщение # 2046


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
А ты определяй координаты курсора и кнопки в самом игроке, в относительных значениях (от 0.0f до 1.0f).

Where did all the dragons go?
We searched in the hills and we searched down the canyons,
we even scanned the depths of the caves with our armour, swords and lanterns.
Oh, if only had we seen him lurch, from his glorious skull covered perch.

CRACK went his claws and SMACK swipped the tail,
a ROAR of might, one big BITE.

and so ended our search.
--uGh--zAn-- Вторник, 25.02.2014, 12:45 | Сообщение # 2047


Сообщений: 115
Награды: 2
Замечания: 20%
 
Возможно глупый вопрос, но как спавнить и парентить модельки к игроку при подборе какого-либо предмета? И как можно сделать ноги от 1 лица?

Для меня заблокирована ЛЮБАЯ активность. Могу только страницы просматривать. Можно мне писать на форуме? Админы? Модераторы?
Heming_Hitrowski Воскресенье, 02.03.2014, 12:45 | Сообщение # 2048


Double Jumper
Сообщений: 885
Награды: 32
Замечания: 0%
 
Как сделать ИНЕРТАН с прозрачным фоном?

SLAwww Воскресенье, 02.03.2014, 15:51 | Сообщение # 2049


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Во-первых, рендерить уровень перед рендерингом Инертана. Во-вторых - использовать для Инертана прозрачную текстуру или заполнять полупрозрачным цветом. В-третьих - заменить SetLocalPause на замедление времени с нулевым коэффициентом (название функции не помню, вроде бы,_pNetwork->SetTimeStretch). Если не сделать третьего, будет эпилепсия. А вообще, пример прозрачного Инертана есть в сорцах ссо.

Where did all the dragons go?
We searched in the hills and we searched down the canyons,
we even scanned the depths of the caves with our armour, swords and lanterns.
Oh, if only had we seen him lurch, from his glorious skull covered perch.

CRACK went his claws and SMACK swipped the tail,
a ROAR of might, one big BITE.

and so ended our search.
CAHEK Воскресенье, 02.03.2014, 20:42 | Сообщение # 2050


Сообщений: 794
Награды: 16
Замечания: 0%
 
Ситуация 1.
При ходьбе камера немного покачивается. Где находятся переменные ответственные за это качение. Надо бы его увеличить.
Ситуация 2.
Довольно не обычная ситуация. При замене старой Длл на новую едитор начинает требовать оригинальный ресурс. Например: Переправил я значения здоровья у скелета. Откомпилировал. Кинул новую ДЛЛ в папку "bin". Запускаю едитор и он мне пишет нет такого то звука или текстуры. Причем никак не связанной со скелетом.


Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
SLAwww Понедельник, 03.03.2014, 21:50 | Сообщение # 2051


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Качание можно увеличить без кодинга, изменением переменной в PersistentSymbols, название не помню, но там что-то связанное с breathe.
А оригинальный ресурс могут требовать и другие классы в ДЛЛке.


Where did all the dragons go?
We searched in the hills and we searched down the canyons,
we even scanned the depths of the caves with our armour, swords and lanterns.
Oh, if only had we seen him lurch, from his glorious skull covered perch.

CRACK went his claws and SMACK swipped the tail,
a ROAR of might, one big BITE.

and so ended our search.
CAHEK Среда, 05.03.2014, 08:43 | Сообщение # 2052


Сообщений: 794
Награды: 16
Замечания: 0%
 
Спасибо работает.
Вопрос.
Как наклонить иконку и числа в интерфейсе (здоровье, бронь и т.д.).

Добавлено (05.03.2014, 08:43)
---------------------------------------------
Ах. Забыл.
Вопрос. Как изменять размер шрифта интерфейса.

Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
Psych Среда, 05.03.2014, 14:02 | Сообщение # 2053


I'M NOT A DRAGON!!11
Сообщений: 1961
Награды: 8
Замечания: 0%
 
Цитата CAHEK ()
Вопрос. Как изменять размер шрифта интерфейса.

PersistentSymbols.ini, строка 236.
FLOAT hud_fScaling=(FLOAT)0.5;
Или же через настройки игры.
Цитата CAHEK ()
Как наклонить иконку и числа в интерфейсе (здоровье, бронь и т.д.).

Фотошопом?


Каждый человек - это небольшая Вселенная, а познать Вселенную - невозможно. © Psych
CAHEK Среда, 05.03.2014, 14:36 | Сообщение # 2054


Сообщений: 794
Награды: 16
Замечания: 0%
 
Иконку фотошопом можно, а как повернуть текст. Здоровье например.

Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
SLAwww Среда, 05.03.2014, 22:07 | Сообщение # 2055


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Чтобы строка текста выводилась в HUD под наклоном - этого никак нельзя сделать. Единственный нормальный выход (сложный и длинный) - рендерить каждую букву строки трёхмерным полигоном в foreground. Единственный ленивый выход (рекомендую) - сделать наклонную строку одной текстурой.

Where did all the dragons go?
We searched in the hills and we searched down the canyons,
we even scanned the depths of the caves with our armour, swords and lanterns.
Oh, if only had we seen him lurch, from his glorious skull covered perch.

CRACK went his claws and SMACK swipped the tail,
a ROAR of might, one big BITE.

and so ended our search.
CAHEK Четверг, 06.03.2014, 09:15 | Сообщение # 2056


Сообщений: 794
Награды: 16
Замечания: 0%
 
Ладно. А как тогда здоровье в полосочку заменить.

Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
Heming_Hitrowski Четверг, 06.03.2014, 19:28 | Сообщение # 2057


Double Jumper
Сообщений: 885
Награды: 32
Замечания: 0%
 
CAHEK, я думаю, можно посмотреть код полоски, который врубается при EnemyCounter'е, хотя я ни разу не пробовал. Можно также нарисовать штук 30 текстур, которые будут рендерится в зависимости от значений здоровья...

SeriousAlexej Четверг, 06.03.2014, 19:41 | Сообщение # 2058


Serious Editor
Сообщений: 1245
Награды: 52
Замечания: 0%
 
Цитата Heming_Hitrowski ()
Можно также нарисовать штук 30 текстур, которые будут рендерится в зависимости от значений здоровья...

Или же использовать этот метод DrawPort'а:
Код
  // adds one part of texture to rendering queue
   void AddTexture( const FLOAT fI0, const FLOAT fJ0, const FLOAT fI1, const FLOAT fJ1,  
                    const FLOAT fU0, const FLOAT fV0, const FLOAT fU1, const FLOAT fV1, const COLOR col) const;


CAHEK Четверг, 06.03.2014, 21:01 | Сообщение # 2059


Сообщений: 794
Награды: 16
Замечания: 0%
 
О спасибо работает. (жаль репу поднять не могу)
Вопрос. Добавил картинку в интерфейс. Но она показывается в серном квадрате. Пробовал делать через альфа канал в фотошопе. Кужного эффекта не поручил. Как как убрать черные края.

Добавлено (06.03.2014, 21:01)
---------------------------------------------
Простите не "Кужного" а Нужного.

Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
BuIlDaLiBlE Четверг, 13.03.2014, 17:59 | Сообщение # 2060


Сообщений: 639
Награды: 12
Замечания: 0%
 
Несколько вопросов:
1. Регенерация здоровья. Как-то так и не разобрался с тем, как сделать её быстрее. Сделал её на всех уровнях сложности, но она очень медленная.
2. Исчезновение Item'ов. Ну, типа заспавнился айтем и через секунд 30 исчез, если его никто не подобрал.
3. Звук от Item'ов. Нужно чтобы проигрывался звук (бесконечно) от айтемов, и прекращался после их подбора.



Bp Services:
bpnet.work/bpservices
--uGh--zAn-- Четверг, 13.03.2014, 18:56 | Сообщение # 2061


Сообщений: 115
Награды: 2
Замечания: 20%
 
BuIlDaLiBlE, 3 можно сделать Sound Holder'ом с Autostart, а при подборе нацелить айтем на триггер, нацеленый на Sound Holder со Stop Event

Для меня заблокирована ЛЮБАЯ активность. Могу только страницы просматривать. Можно мне писать на форуме? Админы? Модераторы?
BuIlDaLiBlE Четверг, 13.03.2014, 20:14 | Сообщение # 2062


Сообщений: 639
Награды: 12
Замечания: 0%
 
--uGh--zAn--, я знаю, но мне нужен именно вариант без использования редактора =)


Bp Services:
bpnet.work/bpservices
Heming_Hitrowski Четверг, 13.03.2014, 21:20 | Сообщение # 2063


Double Jumper
Сообщений: 885
Награды: 32
Замечания: 0%
 
BuIlDaLiBlE,
1) Скриншот.
3) Объяви в начале 200 CSoundObject m_soFloating,
Потом задай ему 3D параметры.
Далее где-нибудь в Main поставь PlaySound(m_soFloating, SOUND_FLOATING, SOF_LOOP|SOF_3D);

Ну и при подбирании предмета сделай m_soFloating.Stop(); Вроде так.

Прикрепления: 4664479.jpg (45.8 Kb)


SLAwww Четверг, 13.03.2014, 21:55 | Сообщение # 2064


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Насколько помню, уничтожить любой объект в любой момент можно, вызвав у него Destroy(); Если нужно только временно спрятать - SwitchToEditorModel(); и SetCollisionFlags(ECF_IMMATERIAL);

Where did all the dragons go?
We searched in the hills and we searched down the canyons,
we even scanned the depths of the caves with our armour, swords and lanterns.
Oh, if only had we seen him lurch, from his glorious skull covered perch.

CRACK went his claws and SMACK swipped the tail,
a ROAR of might, one big BITE.

and so ended our search.
BuIlDaLiBlE Четверг, 13.03.2014, 22:05 | Сообщение # 2065


Сообщений: 639
Награды: 12
Замечания: 0%
 
Цитата Heming_Hitrowski ()
Потом задай ему 3D параметры.

Хмм..знать бы какие.
Кстати, вот ещё что. Нубский вопрос, но:
Код
    if (/*GetSP()->sp_gdGameDifficulty==CSessionProperties::GD_TOURIST &&*/ GetFlags()&ENF_ALIVE) {
       // slowly increase health with time ( now fastly =) )
       FLOAT fHealth = GetHealth();
       FLOAT fTopHealth = TopHealth();
       if (fHealth<fTopHealth)
   {
   SetHealth(ClampUp(fHealth+_pTimer->TickQuantum*10, fTopHealth));  // one unit per second
   }
     }

Как бы сделать так, чтобы перед началом регенерации ждало 3 секунды, а потом начинало регенерировать?
Сообщение отредактировал BuIlDaLiBlE - Четверг, 13.03.2014, 23:47



Bp Services:
bpnet.work/bpservices
CAHEK Суббота, 29.03.2014, 16:19 | Сообщение # 2066


Сообщений: 794
Награды: 16
Замечания: 0%
 
Вопрос.
Как сделочть чтобы при включении тригера "Camera" HUD не пропадал ?


Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
seriously_petr Суббота, 29.03.2014, 22:08 | Сообщение # 2067


Сообщений: 446
Награды: 4
Замечания: 0%
 
CAHEK, Смотри отрисовку вида камеры в Player.es метод RenderCameraView, чтобы рендерить ХУД есть метод RenderHUD.

Рекомендую в ентитю камеры добавить галку, которая будет регулировать будет ли камера работать как надо или же будет показывать ХУД и вид с неё.
Сообщение отредактировал seriously_petr - Суббота, 29.03.2014, 22:10


CAHEK Среда, 02.04.2014, 20:17 | Сообщение # 2068


Сообщений: 794
Награды: 16
Замечания: 0%
 
seriously_petr, Спасибо работает.
Вот только Галку поставить у камеры не знаю как.
А в целом. Как сделать чтобы выбрав ентию 1 и в ней указав ентию 2 поменять некоторое число во второй ентии ? (надеюсь написал понятно :) )


Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
Heming_Hitrowski Среда, 02.04.2014, 20:43 | Сообщение # 2069


Double Jumper
Сообщений: 885
Награды: 32
Замечания: 0%
 
CAHEK, для начала, сделай поинтер на вторую энтити
482 CEntityPointer m_penSecondEntity "Entity",
и потом то число, которое ты хочешь поставить
483 INDEX m_iSomething "Number" = 0,

потом в какой-нибудь функции уже изменяй ее, например
if (m_penSecondEntity != NULL) {
((CEntityName*)&*m_penSecondEntity)->m_iAV = m_iSomething;
}
CEntityName - название твоей энтити, которое ты указываешь в ecl файле. m_iAV - переменная, которую ты будешь изменять во второй энтити. Например, если я хочу изменить здоровье врага через другую энтити, я сделаю это так
if (m_penSecondEntity != NULL && ((CEnemyBase*)&*m_penSecondEntity)->GetFlags()&ENF_ALIVE) {
((CEnemyBase*)&*m_penSecondEntity)->SetHealth(100500.0f);
}
Сообщение отредактировал Heming_Hitrowski - Среда, 02.04.2014, 20:51


SLAwww Четверг, 03.04.2014, 00:25 | Сообщение # 2070


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Есть механизм, позволяющий менять ЛЮБУЮ переменную-опцию любого объекта, даже не зная его класса. Под переменной-опцией подразумевается такая, которую можно менять в редакторе.
1) У CEntity есть метод:
Код
CEntityProperty *PropertyForName(const CTString &strPropertyName)

Вызываем его с именем параметра, например:
Код
CEntityProperty* myProperty = myTarget->PropertyForName("Fall-off");

2) Проверяем полученный указатель на нуль. Затем, смотрим, что есть у CEntityProperty:
Код
enum PropertyType {
   ...
   } ep_eptType;               // type of property
   ...
   SLONG ep_slOffset;

ep_eptType - это тип параметра, ep_slOffset - расстояние в байтах от начала объекта в памяти до искомого параметра. То есть, например, нам нужен Fall-off. В таком случае:
Код
CEntityProperty* myProperty = myTarget->PropertyForName("Fall-off");
if (myProperty && myProperty->ep_eptType == CEntityProperty::EPT_RANGE) {
     UBYTE* pDesiredProperty = (UBYTE*)(&(*myTarget)) + myProperty->ep_slOffset;
     RANGE &rDesiredFallOff = *((RANGE*)pDesiredProperty);
     rDesiredProperty = newFallOff;
}

Этот механизм используется в PropertyChanger'e.


Where did all the dragons go?
We searched in the hills and we searched down the canyons,
we even scanned the depths of the caves with our armour, swords and lanterns.
Oh, if only had we seen him lurch, from his glorious skull covered perch.

CRACK went his claws and SMACK swipped the tail,
a ROAR of might, one big BITE.

and so ended our search.
Поиск:

Статистика