Новые сообщения Участники Правила Поиск
Помощь по SDK для Serious Sam 1.05/1.07
vanya109 Воскресенье, 08.02.2015, 18:26 | Сообщение # 2191


Сообщений: 274
Награды: 13
Замечания: 0%
 
Я смог добавить тип Metal
(давно сделал)!
Но мне теперь нужно добавить звуки металла(при выстреле, при хождений по полу)? И напиши конкретно что нужно делать!


я
CAHEK Воскресенье, 08.02.2015, 20:28 | Сообщение # 2192


Сообщений: 794
Награды: 16
Замечания: 0%
 
Вопрос. Как изменить скорость игрока из PlayerWeapon.es ? Хотел сделать эффект замедления бега игрока при стрельбе из оружия.

Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
ST27 Воскресенье, 08.02.2015, 20:39 | Сообщение # 2193


Сообщений: 461
Награды: 7
Замечания: 0%
 
CAHEK,
При FireStart
GetPlayer()->vTranslation(1) *= значение;
GetPlayer()->vTranslation(3) *= значение;

При FireStop
GetPlayer()->vTranslation(1) /= значение;
GetPlayer()->vTranslation(3) /= значение;

Вроде так
(если нужен прыжок, то vTranslation(2), а если всё одновременно, то просто vTranslation)


- My Personal Site -
CAHEK Понедельник, 09.02.2015, 08:00 | Сообщение # 2194


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


Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
vanya109 Понедельник, 09.02.2015, 11:27 | Сообщение # 2195


Сообщений: 274
Награды: 13
Замечания: 0%
 
Повторяю свой вопрос : (Я смог добавить тип полигонов Metal) как добавить звуки металла(при выстреле, при хождений по полу)? И напиши конкретно что нужно делать!

я
Ar2R-devil-PiNKy Понедельник, 09.02.2015, 13:49 | Сообщение # 2196


Creative virtuoso
Сообщений: 3743
Награды: 58
Замечания: 
 
Цитата vanya109 ()
Повторяю свой вопрос : (Я смог добавить тип полигонов Metal) как добавить звуки металла(при выстреле, при хождений по полу)? И напиши конкретно что нужно делать!

А вот тебе ответ большинства: не суй свой нос туда, куда тебе не следует.


Мои работы
ST27 Понедельник, 09.02.2015, 14:35 | Сообщение # 2197


Сообщений: 461
Награды: 7
Замечания: 0%
 
vanya109, то есть ты хочешь, чтобы мы за тебя всё написали?

- My Personal Site -
CAHEK Понедельник, 09.02.2015, 15:18 | Сообщение # 2198


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


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


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

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 Четверг, 19.02.2015, 17:52 | Сообщение # 2200


Сообщений: 794
Награды: 16
Замечания: 0%
 
Было такое, но вот вопрос. Как изменить именно 3 или 4 материал ?
Кстати.
GetPlayer()->vTranslation(1) *= значение;
GetPlayer()->vTranslation(3) *= значение;
Не сработало.

Добавлено (19.02.2015, 17:52)
---------------------------------------------
.

Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
ST27 Четверг, 19.02.2015, 18:07 | Сообщение # 2201


Сообщений: 461
Награды: 7
Замечания: 0%
 
CAHEK, попробуй тогда найти в Player.es функцию ActiveActions, и ниже, где есть:
Код
if( ((CPlayerWeapons&)*m_penWeapons).m_iCurrentWeapon==WEAPON_KNIFE &&
          !GetSP()->sp_bCooperative) {
       vTranslation *= 1.3f;
     }

Добавь ниже, что-то типа:
Код
if( ((CPlayerWeapons&)*m_penWeapons).m_iCurrentWeapon==WEAPON_MINIGUN &&
          ulNewButtons&PLACT_FIRE) {
       vTranslation /= 2.0f;
     }


- My Personal Site -
CAHEK Четверг, 19.02.2015, 18:39 | Сообщение # 2202


Сообщений: 794
Награды: 16
Замечания: 0%
 
Нет я так пробовал.
Просто ситуация какая. При выстреле из минигана скорость ГГ должна быть меньше чем обычная, и после окончания стрельбы не должна восстанавливаться. Восстановление будет происходить отдельными функциями. Идеальный вариант - из PlayerWeapon послать сигнал в Player на смену скорости, но я не знаю как.


Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
ST27 Понедельник, 23.02.2015, 16:30 | Сообщение # 2203


Сообщений: 461
Награды: 7
Замечания: 0%
 
И снова привет. Я хочу сделать подвижную модель (гравитация, отталкивание и т.д.)
Сделал я её как нейтральный Enemy Base. Но теперь хотелось бы узнать, как сделать так, чтобы когда атакуешь эту модель она не брызгала кровью (ну или "разлеталась" как клир). Как это можно сделать?
В прикреплении показано, что кровь мне не нужна

Прикрепления: 1914333.jpg (225.5 Kb)


- My Personal Site -
SLAwww Понедельник, 23.02.2015, 21:33 | Сообщение # 2204


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

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 Вторник, 24.02.2015, 08:08 | Сообщение # 2205


Сообщений: 794
Награды: 16
Замечания: 0%
 
Ситуация.
В PlayerWeapon.es я накодил проверку, назовем ее "Test". Эта проверка весьма объемна и в тоже время нужна каждому оружию в нескольких местах. Можно, конечно, вставить ее во все места где она необходима, но есть ли другие способы ?


Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
thecre Вторник, 24.02.2015, 12:56 | Сообщение # 2206


Сообщений: 3449
Награды: 28
Замечания: 0%
 
STPROD,
void ReceiveDamage(тут аргументы, которые берешь в любом другом классе, например, Eyeman)
{
return;
}


ST27 Вторник, 24.02.2015, 15:43 | Сообщение # 2207


Сообщений: 461
Награды: 7
Замечания: 0%
 
thecre, нет, имел ввиду то, что когда стреляю в модель, она отлетала, но не брызгала кровью.

Добавлено (24.02.2015, 15:43)
---------------------------------------------
И ещё: можно ли поставить моей модельке (или ModelHolder2) какую-нибудь модель с текстурой, когда я создаю её через игрока?
Этот способ не установил нужную модель, а просто поставил ентитю со стандартным Axis.mdl (который по дефолту стоит)

Код
CEntityPointer pen = penThis->CreateEntity(penThis->GetPlacement(), CLASS_MODEL);
     ((CMovableModel*)&pen)->m_fnModel = CTFILENAME("ModelsMP\\SouthAmerica\\Bridge\\Bridge.mdl");
     ((CMovableModel*)&pen)->m_fnTexture = CTFILENAME("ModelsMP\\SouthAmerica\\Bridge\\Bridge.tex");
     pen->Initialize(EVoid());

А этот способ вообще вылетает:
Код
CEntityPointer pen = penThis->CreateEntity(penThis->GetPlacement(), CLASS_MODEL);
     ((CMovableModel*)&pen)->SetModel(CTFILENAME("ModelsMP\\SouthAmerica\\Bridge\\Bridge.mdl"));
     ((CMovableModel*)&pen)->SetModelMainTexture(CTFILENAME("ModelsMP\\SouthAmerica\\Bridge\\Bridge.tex"));
     pen->Initialize(EVoid());


- My Personal Site -
Heming_Hitrowski Вторник, 24.02.2015, 20:21 | Сообщение # 2208


Double Jumper
Сообщений: 888
Награды: 32
Замечания: 0%
 
CAHEK, может поможет создание функции? (например, BOOL)
что-то типа

BOOL IsChtoTo() {
return m_bChtoTo && GetFlags()&ENF_ALIVE && GetSP()->sp_bUseFrags;
}

которую ты сможешь потом использовать как

if (IsChtoTo()) {
// ...
}

STPROD, попробуй вот так
CEntityPointer pen = penThis->CreateEntity(penThis->GetPlacement(), CLASS_MODEL);
pen->Initialize(EVoid());
((CMovableModel*)&pen)->SetModel(MODEL_SOMEMODEL);
((CMovableModel*)&pen)->SetModelMainTexture(TEXTURE_SOMETEXTURE);
Сообщение отредактировал Heming_Hitrowski - Вторник, 24.02.2015, 20:27


ST27 Вторник, 24.02.2015, 20:56 | Сообщение # 2209


Сообщений: 461
Награды: 7
Замечания: 0%
 
Heming_Hitrowski, к сожалению, не работает. Может это всё из-за того, что моя модель CMovableModelEntity?

- My Personal Site -
Heming_Hitrowski Вторник, 24.02.2015, 21:05 | Сообщение # 2210


Double Jumper
Сообщений: 888
Награды: 32
Замечания: 0%
 
STPROD, таки да, без приведения типов разве не работает?

попробуй вот эти два варианта
pen->SetModel(...);
((CНазваниеКласса*)&*pen)->SetModel(...);
Сообщение отредактировал Heming_Hitrowski - Вторник, 24.02.2015, 21:06


SLAwww Вторник, 24.02.2015, 21:37 | Сообщение # 2211


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

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.
ST27 Вторник, 24.02.2015, 21:38 | Сообщение # 2212


Сообщений: 461
Награды: 7
Замечания: 0%
 
Heming_Hitrowski, 2ой способ не вылетает, но просто делает Axis.mdl с Default текстурой (в клетку)

- My Personal Site -
SLAwww Вторник, 24.02.2015, 22:45 | Сообщение # 2213


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Кстати, есть ещё у CModelObject метод Load_t как раз для загрузки модели из файла. Приставка "_t" означает, что метод может бросать исключения, поэтому надо вызывать через try/catch как-то так (примерно, не проверял):

try {
penMyEntity->GetModelObject()->Load_t(CTFILENAME("ModelsMP\\MyModel.mdl"));
} catch (char* strError) {
CPrintF(strError);
}
penMyEntity->ModelChangeNotify();

Желательно ещё кешировать модель перед загрузкой, для этого есть CAutoPrecacheModel. Применяется аналогично CAutoPrecacheSound (его можно найти и сделать по примеру так же для модели).


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.
ST27 Среда, 25.02.2015, 14:55 | Сообщение # 2214


Сообщений: 461
Награды: 7
Замечания: 0%
 
SLAwww, как ни странно, но мне пишет, что Load_t is not a member of 'CModelObject'

- My Personal Site -
SLAwww Среда, 25.02.2015, 20:37 | Сообщение # 2215


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Упс, Read_t, а не Load_t. И принимает он не имя файла, а указатель на CTStream, то есть, тебе нужно будет создать CTFileStream для чтения нужного файла.

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.
ST27 Среда, 25.02.2015, 22:29 | Сообщение # 2216


Сообщений: 461
Награды: 7
Замечания: 0%
 
Похоже, я ещё слишком туп, чтобы что-то подставить Read_t(сюда). Не получается. И примеров в коде даже нет

Добавлено (25.02.2015, 22:10)
---------------------------------------------
Хреновую идею я задумал...

Добавлено (25.02.2015, 22:25)
---------------------------------------------
Экспериментировал я, значит, написал это:

Код
CTFileStream fnModel;
  fnModel.Open_t(m_fnModel);

     GetModelObject()->Read_t(&fnModel);

И оно скомпилилось без ошибок O_o

Добавлено (25.02.2015, 22:29)
---------------------------------------------
Но теперь оно падает, когда ставишь в редакторе.

- My Personal Site -
SLAwww Среда, 25.02.2015, 22:39 | Сообщение # 2217


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Заключи вызовы Open_t и Read_t в блок try/catch и увидишь, из-за чего падает.

try {
fnModel.Open_t(m_fnModel);
GetModelObject()->Read_t(&fnModel);
} catch (char* strError) {
CPrintF(strError);
}


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.
ST27 Среда, 25.02.2015, 23:01 | Сообщение # 2218


Сообщений: 461
Награды: 7
Замечания: 0%
 
Всё сделал, сделал CAutoPrecacheModel для m_fnModel, но:
"Не удается открыть файл 'ModelsMP\\Model.mdl'. Для этого потока команд не включена потоковая обработка."
Но ставиться Axis.mdl без текстуры

Добавлено (25.02.2015, 23:01)
---------------------------------------------
Ок, сделал PrecachaModel на модель, сработало. Но, можно для каждой модели/текстуры этого не делать?

- My Personal Site -
SLAwww Четверг, 26.02.2015, 00:26 | Сообщение # 2219


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Цитата STPROD ()
Для этого потока команд не включена потоковая обработка

Из какой функции ты пытаешься поменять модель? Вообще, покажи .es.


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.
ST27 Четверг, 26.02.2015, 13:49 | Сообщение # 2220


Сообщений: 461
Награды: 7
Замечания: 0%
 
SLAwww, в MovableModel.es:
Код
  1 CTFileName m_fnModel      "Model" =CTFILENAME("Models\\Editor\\Axis.mdl"),
   2 CTFileName m_fnTexture    "Texture" =CTFILENAME("Models\\Editor\\Vector.tex"),
   {
  CTFileStream fnModel;
  CTFileStream fnTexture;
     CAutoPrecacheModel m_apm;
  CAutoPrecacheTexture m_apt;
   }

И ещё:
Код
  void Precache(void)
   {
     m_apm.Precache(m_fnModel);
  m_apt.Precache(m_fnTexture);
   }

В Player.es по нажатию кнопки "bStr1":
Код
if (pctlCurrent.bStr1) {
   CEntityPointer pen = penThis->CreateEntity(penThis->GetPlacement(), CLASS_MODEL);
   ((CMovableModel*)&*pen)->m_fnModel = CTFILENAME("ModelsMP\\SouthAmerica\\Bridge\\Bridge.mdl");
   ((CMovableModel*)&*pen)->m_fnTexture = CTFILENAME("ModelsMP\\SouthAmerica\\Bridge\\Bridge.tex");
   pen->Initialize(EVoid());
   try {  
     ((CMovableModel*)&pen)->fnModel.Open_t(((CMovableModel*)&pen)->m_fnModel);
     ((CMovableModel*)&pen)->fnTexture.Open_t(((CMovableModel*)&pen)->m_fnTexture);
     ((CMovableModel*)&pen)->GetModelObject()->Read_t(&((CMovableModel*)&pen)->fnModel);
     ((CMovableModel*)&pen)->GetModelObject()->mo_toTexture.SetData_t(((CMovableModel*)&pen)->m_fnTexture);
   } catch (char* strError) {  
     CPrintF(strError);  
   }
   pen->ModelChangeNotify();  
   pctlCurrent.bStr1 = 0;
}

И в CPlayer_Precache():
Код
pdec->PrecacheModel(MODEL_B);
   pdec->PrecacheTexture(TEXTURE_B);

MODEL_B и TEXTURE_B указаны в компонентах, и указывают на "ModelsMP\\SouthAmerica\\Bridge\\Bridge.mdl/tex"


- My Personal Site -
Поиск: