Новые сообщения Участники Правила Поиск

Страница 89 из 91«128788899091»
Модератор форума: SLAwww, thecre, RealCrazyMan 
Форум » Serious Sam » Серьёзное редактирование » Помощь по SDK для Serious Sam 1.05/1.07 (Вопросы по комплекту средств разработки для Serious Sam 1.)
Помощь по SDK для Serious Sam 1.05/1.07
Jack_Stone Воскресенье, 02.10.2016, 18:36 | Сообщение # 2641


Сообщений: 75
Награды: 0
Замечания: 0%
 
Heming_Hitrowski, у меня что-то получилось. вместо фонаря получилась кнопка суицида, как в Постал 2. не знаю, почему так. Но взрывчатость я вроде удалил - m_bExplode у нового проджектайла PlayerFlashlight.

JS
SLAwww Воскресенье, 02.10.2016, 20:28 | Сообщение # 2642


Рряа? ^..^
Сообщений: 2366
Награды: 28
Замечания: 0%
 
Вот, работает без изменений в PlayerWeapons, хоть написано не лучшим образом. Включается/выключается start/stop eventами.
Прикрепления: Flashlight.es(6Kb)


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.
Jack_Stone Понедельник, 03.10.2016, 09:49 | Сообщение # 2643


Сообщений: 75
Награды: 0
Замечания: 0%
 
Heming_Hitrowski, у меня получилось сделать включение фонаря, только телепортируется не модель (Projectile), как ты предлагал, а Light. Всё как надо светится. Но не получается ничего с выключением света. Есть функция Destroy, которой вроде как и можно удалить этот Light - в моём случае m_penLight - но она почему то не помогает.

Добавлено (03.10.2016, 09:49)
---------------------------------------------

Код
  // turn on off flashlight
  void Flashlight(){  
   
      if (m_penLight == NULL){
    CEntityPointer m_penLight = CreateEntity(GetPlacement(), CLASS_LIGHT);
       m_aoLightAnimation.SetData_t(CTFILENAME("Animations\\Flashlight.ani"));
    m_penLight->Initialize();
       }
    else if (m_penLight != NULL){

        m_penLight = NULL;
      m_penLight->Destroy();
      }

  };


JS
STPROD Понедельник, 03.10.2016, 10:04 | Сообщение # 2644


Сообщений: 411
Награды: 3
Замечания: 0%
 
Цитата Jack_Stone ()
m_penLight = NULL;
m_penLight->Destroy();

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


kill me.
Jack_Stone Понедельник, 03.10.2016, 10:26 | Сообщение # 2645


Сообщений: 75
Награды: 0
Замечания: 0%
 
не помогло.

JS
STPROD Понедельник, 03.10.2016, 10:47 | Сообщение # 2646


Сообщений: 411
Награды: 3
Замечания: 0%
 
Цитата Jack_Stone ()
CEntityPointer m_penLight

А, ну да. Что это такое? У тебя же, я так понимаю, переменная уже в свойствах определена, зачем ее снова определять как CEntityPointer?


kill me.
Ar2R-devil-PiNKy Понедельник, 03.10.2016, 11:21 | Сообщение # 2647


Великий мечтатель
Сообщений: 2871
Награды: 57
Замечания: 
 
Слава же уже сделал новый отдельный класс, выше находится.

Мои работы
Heming_Hitrowski Понедельник, 03.10.2016, 11:22 | Сообщение # 2648


Double Jumper
Сообщений: 816
Награды: 23
Замечания: 0%
 
Jack_Stone, 1.
Код
CEntityPointer m_penLight = CreateEntity(GetPlacement(), CLASS_LIGHT);
Создавая вот таким образом энтити, ты объявляешь локальную переменную, которая нигде не запоминается (мы потом не сможем уничтожить этот лайт). Правильнее будет вот так:
Код
m_penLight = CreateEntity(GetPlacement(), CLASS_LIGHT);
Таким образом ты присвоишь значение глобальной переменной m_penLight, которую ты как раз объявил до этого. 2.
Код
m_aoLightAnimation.SetData_t(CTFILENAME("Animations\\Flashlight.ani"));
Я не уверен, что эта строчка вообще что-то даст. Если ты хочешь присвоить лайту light animation, то можно записать это так: [code((CLight*)&*m_penLight)->m_aoLightAnimation.SetData_t(CTFILENAME("Animations\\Flashlight.ani"));[/code] При этом тебе нужно будет в самом верху класса дописать #include связанный с классом Light (чтобы как раз не было ошибки undefined). 3.
Код
else if (m_penLight != NULL){
можно записать просто как
Код
else {
Сообщение отредактировал Heming_Hitrowski - Понедельник, 03.10.2016, 11:36


Heming_Hitrowski Понедельник, 03.10.2016, 11:37 | Сообщение # 2649


Double Jumper
Сообщений: 816
Награды: 23
Замечания: 0%
 
Какая-то хрень с тегами. Вот код: ((CLight*)&*m_penLight)->m_aoLightAnimation.SetData_t(CTFILENAME("Animations\\Flashlight.ani"));

Jack_Stone Понедельник, 03.10.2016, 21:32 | Сообщение # 2650


Сообщений: 75
Награды: 0
Замечания: 0%
 
спасибо за советы, но что то опять не выходит. У меня короче получилось так: прописал две кнопки - вкл. (желтый Light) и выкл. (черный Light). Heming_Hitrowski, ((CLight*)&*m_penLight)->m_aoLightAnimation.SetData_t(CTFILENAME("Animations\\Flashlight.ani")) очень даже работает. Но есть проблема - вот эти 2 Light`а каким-то образом перебивают Light при стрельбе, даже если, например, в самом начале уровня нажать кнопку либо ВКЛ., либо ВЫКЛ., то свет от оружия нейтрализуется. Вариант фонаря не идеальный, но тоже сойдет.

Добавлено (03.10.2016, 21:29)
---------------------------------------------
самое интересное то, что в этом коде только вот этого и хватает - ((CLight*)&*m_penLight)->m_aoLightAnimation.SetData_t(CTFILENAME("Animations\\Flashlight.ani")). Больше никакие переменные не нужны. Но непонятно как теперь передвинуть эту анимацию чуть дальше от Сэма.

Добавлено (03.10.2016, 21:32)
---------------------------------------------
вот такой вот код, для выключения такой же, только анимация другая

Код
  // turn on flashlight
  void Flashlight(){  
    {
        m_aoLightAnimation.SetData_t(CTFILENAME("Animations\\Flashlight.ani"));
       }
  };


JS
Heming_Hitrowski Понедельник, 03.10.2016, 23:38 | Сообщение # 2651


Double Jumper
Сообщений: 816
Награды: 23
Замечания: 0%
 
Jack_Stone, ух, я понял, в чем дело.

Ты тут очень сильно нагородил)) Дело в том, что переменная m_aoLightAnimation используется как раз для вспышки при стрельбе, и ее ВООБЩЕ НЕ НАДО ТРОГАТЬ ЧТОБЫ СДЕЛАТЬ ФОНАРЬ, иначе произойдет такой ужас, который ты описал. Прочитай еще раз что мы тебе предлагали и старайся делать все по шагам.

Для начала давай попробуем все же заспавнить лайт, раз уж ты решил работать именно с ним, а не с Projectile.

По нажатии кнопки фонаря давай попробуем добавить вот такой код.
Код

CPlacement3D pl = GetPlacement(); // получили позицию игрока
pl.pl_PositionVector(2) += 1.0f; // сдвинули ее чуть повыше, чтобы лайт не был в "земле"
m_penLight = CreateEntity(pl, CLASS_LIGHT); // объяви CLASS_LIGHT заранее, в блоке components
m_penLight->Initialize(); // инициализируем лайт на обработанных координатах


Что-нибудь происходит при выполнении?
Сообщение отредактировал Heming_Hitrowski - Вторник, 04.10.2016, 00:00


Jack_Stone Вторник, 04.10.2016, 10:10 | Сообщение # 2652


Сообщений: 75
Награды: 0
Замечания: 0%
 
Heming_Hitrowski, нет, не происходит, но всё компилируется нормально.

Добавлено (04.10.2016, 00:26)
---------------------------------------------
Хотя неее, что то да есть уже) сам Light появляется и исчезает при нажатии кнопки, но свет не производит.

Добавлено (04.10.2016, 00:28)
---------------------------------------------
вот с этим кодом

// turn on off flashlight
void Flashlight(){

Код
     if (m_penLight == NULL){
    m_penLight = CreateEntity(GetPlacement(), CLASS_LIGHT);
    m_penLight->Initialize();
       }
    else {
      m_penLight->Destroy();
        m_penLight = NULL;

      }

  };

Добавлено (04.10.2016, 00:28)
---------------------------------------------
я вообще запутался уже))

Добавлено (04.10.2016, 00:32)
---------------------------------------------
с твоим кодом точно также работает, но света нет

Код
  // turn on off flashlight
  void Flashlight(){  
   
      if (m_penLight == NULL){
CPlacement3D pl = GetPlacement(); // получили позицию игрока
pl.pl_PositionVector(2) += 1.0f; // сдвинули ее чуть повыше, чтобы лайт не был в "земле"
m_penLight = CreateEntity(pl, CLASS_LIGHT); // объяви CLASS_LIGHT заранее, в блоке components
    m_penLight->Initialize();
       }
    else {
      m_penLight->Destroy();
        m_penLight = NULL;

      }

  };

Добавлено (04.10.2016, 10:10)
---------------------------------------------
может он просто телепортирует модель лайта, а "физические свойства" надо отдельно прописывать? но как?

JS
Heming_Hitrowski Вторник, 04.10.2016, 11:37 | Сообщение # 2653


Double Jumper
Сообщений: 816
Награды: 23
Замечания: 0%
 
Цитата
Это самый простой способ инициализации. У нас создается стандартный Trigger на том месте, где мы стоим (GetPlacement()). Вот, например, более сложный.

m_penTrigger = CreateEntity(GetPlacement(), CLASS_TRIGGER);
(CTrigger*)&*m_penTrigger)->m_strName = "New Trigger";
m_penTrigger->Initialize();


Jack_Stone Вторник, 04.10.2016, 12:54 | Сообщение # 2654


Сообщений: 75
Награды: 0
Замечания: 0%
 
ааа, то есть то же самое и с Light можно сделать, и прописать уже имя лайта - например, LT_POINT. Я правильно понял?

JS
Heming_Hitrowski Вторник, 04.10.2016, 12:57 | Сообщение # 2655


Double Jumper
Сообщений: 816
Награды: 23
Замечания: 0%
 
Jack_Stone, да) Только не имя, а тип.
Сообщение отредактировал Heming_Hitrowski - Вторник, 04.10.2016, 12:58


Jack_Stone Четверг, 06.10.2016, 10:30 | Сообщение # 2656


Сообщений: 75
Награды: 0
Замечания: 0%
 
Heming_Hitrowski, всё то же самое. Как будто и не менял ничего. Света нет.

Добавлено (04.10.2016, 21:21)
---------------------------------------------
(CTrigger*)&*m_penTrigger)->m_strName = "New Trigger";

эта строка вообще никак не влияет, написать можно любой набор букв на месте "New Trigger"

Добавлено (04.10.2016, 22:20)
---------------------------------------------
попробовал ту же схему с моделью, та же фигня: почему то не меняет тип проджектайла - всегда выстреливает ракету, которая убивает Сэма

Добавлено (04.10.2016, 23:00)
---------------------------------------------
тут и правда используется ракета Сэма, но это ладно. Я сделал так, чтобы она не летела, а как сделать так, чтобы она приатачилась к Сэму и двигалась вместе с ним?

Добавлено (06.10.2016, 10:30)
---------------------------------------------
ВСЕМ, кто помогал мне с созданием фонарика, СПАСИБО, особенно Heming_Hitrowski, ) наконец-то получилось :) но вот чего я не пойму, так это почему он начал светить только тогда, когда прописал эту строчку:

Код
m_penLight->SetParent( this);


а сам код вот такой получился:

Код
  // turn on off flashlight
  void Flashlight(){  
   
      if (m_penLight == NULL){

    m_soFlashlight.Set3DParameters(50.0f, 10.0f, 4.0f, 1.0f);
    PlaySound(m_soFlashlight, SOUND_FLASHLIGHT, SOF_3D|SOF_VOLUMETRIC|SOF_LOCAL);

    CPlacement3D pl = GetPlacement(); // получили позицию игрока
    pl.pl_PositionVector(2) += 2.0f; // сдвинули ее чуть повыше, чтобы лайт не был в "земле"

    m_penLight = CreateEntity(pl, CLASS_LIGHT);
        m_penLight->SetParent( this);
     m_penLight->Initialize();

       }
    else {
     m_soFlashlight.Set3DParameters(50.0f, 10.0f, 4.0f, 1.0f);
     PlaySound(m_soFlashlight, SOUND_FLASHLIGHT, SOF_3D|SOF_VOLUMETRIC|SOF_LOCAL);
       m_penLight->Destroy();
         m_penLight = NULL;

      }
  };


JS
Heming_Hitrowski Четверг, 06.10.2016, 12:41 | Сообщение # 2657


Double Jumper
Сообщений: 816
Награды: 23
Замечания: 0%
 
Цитата
(CTrigger*)&*m_penTrigger)->m_strName = "New Trigger";

эта строка вообще никак не влияет, написать можно любой набор букв на месте "New Trigger"


Оно и логично.) Попробуй сам себе объяснить этот код и понять, что он делает. Если не получится, вот спойлер.


Код
m_penLight->SetParent( this);


Эта строчка привязывает лайт к игроку (на манер свойства Parent в Serious Editor). this - это как раз указатель на класс Player. Поэтому лайт движется за игроком) Это конечно грубый способ, но работать будет.
Сообщение отредактировал Heming_Hitrowski - Четверг, 06.10.2016, 13:52


Jack_Stone Четверг, 06.10.2016, 23:32 | Сообщение # 2658


Сообщений: 75
Награды: 0
Замечания: 0%
 
ну теперь то до меня дошло)) хотелось бы теперь узнать, как изменить свойства лайта - яркость и цвет. :)

Добавлено (06.10.2016, 23:29)
---------------------------------------------
я пытался с этим разобраться и очень долго, но никак :(

Добавлено (06.10.2016, 23:32)
---------------------------------------------
и еще у меня какая-то фигня с GameMP.dll, не компилируется, выдает 14 ошибок, может дело в Dependencies? как там галки надо расставить?

JS
Heming_Hitrowski Суббота, 08.10.2016, 14:00 | Сообщение # 2659


Double Jumper
Сообщений: 816
Награды: 23
Замечания: 0%
 
Jack_Stone, в Light.es есть переменная
2 COLOR m_colColor "Color" 'C' =C_GRAY,

Она же отвечает за цвет лайта, и по сути, за его яркость.

COLOR - это тип переменной, он принимает значения в шестнадцатеричной системе счисления (старожилы меня поправят, вообще это тип ULONG, но значения, видимо, для удобства записывают по другому). Но что такое C_GRAY? Это уже определенная в движке константа, смотри, что можно обнаружить, если ты зайдешь в Engine/Graphics/Color.h



Соответственно, лайту можно задать, например, C_WHITE и он будет ярче.
(CLight*)&*penLight)->m_colColor = C_WHITE;

Можно и не пользоваться константами и записать значение самому. Вот как по сути расшифровывается запись цвета: 0xRRGGBBAA. Где RR - это Red, GG - это Green, BB - это Blue и AA - это альфа-канал (для лайта можно оставить 00). Осталось только подставить нужные цифры) Вот как это выглядело бы с белым цветом.

(CLight*)&*penLight)->m_colColor = 0xFFFFFF00;

Могу ошибаться, конечно, нет компилятора под рукой, но должно работать)
Сообщение отредактировал Heming_Hitrowski - Суббота, 08.10.2016, 14:05


Heming_Hitrowski Суббота, 08.10.2016, 14:06 | Сообщение # 2660


Double Jumper
Сообщений: 816
Награды: 23
Замечания: 0%
 
там опять какая-то беда с тегами, скобок в коде в начале должно быть две. ((СLight...
Сообщение отредактировал Heming_Hitrowski - Суббота, 08.10.2016, 14:07


NucaCat Воскресенье, 09.10.2016, 15:23 | Сообщение # 2661


Сообщений: 46
Награды: 1
Замечания: 0%
 
Настроил SDK, вылазит ошибка
G:\MYMOD\Sources\GameMP\stdafx.h(14) : fatal error C1083: Cannot open include file: 'EntitiesMP/Global.h': No such file or directory
Error executing cl.exe.
Поиск по сайту мне не помог, в настройках stdafx стоит create precompiled header, в других местах use precompilled header, компиляция отдельно этого файла дает такую же точно ошибку. Помогите, пожалуйста.


seriously_petr Воскресенье, 09.10.2016, 16:06 | Сообщение # 2662


Сообщений: 434
Награды: 4
Замечания: 0%
 
NucaCat, Global.h генерируется из Global.es компилятором ECC.
При сборке компилятор студии не может найти заголовочный файл и этому могут быть следующие ричины:

- У тебя не собран проект EntitiesMP. Это может быть из-за того что не правильно настроены зависимости проектов. EntitiesMP должен собираться в первую очередь.
- У тебя не правильно указаны пути к Includes в Options->Directories.


NucaCat Воскресенье, 09.10.2016, 17:18 | Сообщение # 2663


Сообщений: 46
Награды: 1
Замечания: 0%
 
seriously_petr, мда похоже что я в глаза долбился, когда настраивал зависимости. Спасибо, чувак

CAHEK Вторник, 11.10.2016, 16:53 | Сообщение # 2664


Сообщений: 698
Награды: 7
Замечания: 0%
 
Ситуация. Я делал мод. Потом был конкурс и я его заморозил. Сейчас я к нему вернулся, но вот у меня при запуске уровня вот такая ошибка выскакивает.
https://yadi.sk/i/jY_7TGSVweRre
З.Ы. Раньше работал на другом компьютере. Потом винт с него переставил в компьютер на котором работаю сейчас.


Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
Ar2R-devil-PiNKy Вторник, 11.10.2016, 18:38 | Сообщение # 2665


Великий мечтатель
Сообщений: 2871
Награды: 57
Замечания: 
 
А ты точно в той среде открываешь? Ты вроде как с исходниками движка что-то делал.

Мои работы
CAHEK Вторник, 11.10.2016, 19:23 | Сообщение # 2666


Сообщений: 698
Награды: 7
Замечания: 0%
 
Это вылетает при работе в СЕДе, о ошибка явно не СЕДовская.

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


Рряа? ^..^
Сообщений: 2366
Награды: 28
Замечания: 0%
 
Используешь 1.10? Вылетает на всех уровнях, или только на твоих?

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 Вторник, 11.10.2016, 20:22 | Сообщение # 2668


Сообщений: 698
Награды: 7
Замечания: 0%
 
Работаю на 1.10. Вылетает только на моих т.к. кроме моих там больше нет. Это можно классифицировать, как новая игра на движке SE 1.10.

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


Рряа? ^..^
Сообщений: 2366
Награды: 28
Замечания: 0%
 
У тебя последняя стабильная версия кода с гитхаба? Сам собирал в 2013/2015 студии?

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 Среда, 12.10.2016, 13:34 | Сообщение # 2670


Сообщений: 698
Награды: 7
Замечания: 0%
 
Моей версии 2 года. Последняя она или нет, не знаю.

Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
Форум » Serious Sam » Серьёзное редактирование » Помощь по SDK для Serious Sam 1.05/1.07 (Вопросы по комплекту средств разработки для Serious Sam 1.)
Страница 89 из 91«128788899091»
Поиск: