Новые сообщения Участники Правила Поиск
Помощь по SDK для Serious Sam 1.05/1.07
Heming_Hitrowski Воскресенье, 26.01.2014, 21:22 | Сообщение # 1951


Double Jumper
Сообщений: 887
Награды: 32
Замечания: 0%
 
Цитата
Но куда вставить эту проверку я не знаю. максимум что у меня получалось это при самом старте игры удерживать клавишу и только тогда союзник пошел по маркерам.


Туториал по добавлению кнопки

Цитата
Как заставить союзника при нажатии клавиши бегать за тобой

Насколько я знаю, в Xbox исходниках есть параметр Attack Group. Если при какой-то другой Attack Group твой монстр бегает по маркерам, то при той Attack Group, при которой монстр становится союзником, он будет бегать за тобой. Как найти нужного монстра через цикл (просмотрев всех монстров на карте) или отдельным CEntityPointer - решать тебе.
Вот примерный код того, что тебе надо будет вставить в клавишу

// вариант с CEntityPointer
if (...PLACT_KNOPKA) {
((CEnemyBase*)&*m_penFriend)->m_iAttackGroup = нужная_группа;
}
// вариант с циклом foreach, для всех Enemy Base
if (...PLACT_KNOPKA) {
// for each entity in the world
{FOREACHINDYNAMICCONTAINER(penKiller->GetWorld()->wo_cenEntities, CEntity, iten) {
CEntity *pen = iten;
if (IsDerivedFromClass(pen, "Enemy Base")) { // здесь название класса врага
CEnemyBase *penEnemy = (CEnemyBase *)pen;
if (penEnemy->m_penEnemy==NULL) {
continue;
}
penEnemy->m_iAttackGroup = нужная_группа;
}
}}
}


SLAwww Воскресенье, 26.01.2014, 21:35 | Сообщение # 1952


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

Если ты имеешь ввиду ситуацию, когда я подошёл к союзнику, нажал на нём "Использовать", и союзник пошёл за мной, то вариант Хеминга тебе не подойдёт. Поищи CCastRay в PlayerWeapons, ты найдёшь место, где определённому объекту отправляется ивент при нажатии "Использовать".


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 Понедельник, 27.01.2014, 09:00 | Сообщение # 1953


Сообщений: 794
Награды: 16
Замечания: 0%
 
Секунду. То есть в Xbox моде уже стоит код чтобы союзник бегал за игроком когда нет врагов.
Просто по неопытности я мог неправильно убрать лишнее из "enemybase.es"
У меня как выходит. Респавниш союзника и врага через "enemy spawner" И они бьют друг друга. А как убьют врагов то стоят на месте пока еще враги не прибегут.


Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
Heming_Hitrowski Понедельник, 27.01.2014, 13:45 | Сообщение # 1954


Double Jumper
Сообщений: 887
Награды: 32
Замечания: 0%
 
Цитата
То есть в Xbox моде уже стоит код чтобы союзник бегал за игроком когда нет врагов.

Да, там была какая-то процедура для этого.


CAHEK Понедельник, 27.01.2014, 13:57 | Сообщение # 1955


Сообщений: 794
Награды: 16
Замечания: 0%
 
Такое дело. Я несколько раз переделывал исходник из Xbox мода, но ни разу не смог сделать чтобы работало как надо. Есть ли исходник поправленный или только из Xbox мода. А то я уже замучился переправлять. Могу конечно каждую ошибку выкладывать здесь, но это столько времени и места надо. Или все таки попытаться.

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


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

Такой процедуры там не было. Её можно накодить, но для быстрого результата должно быть достаточно припарентить несколько EnemyMarker'ов к игроку.


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 Вторник, 28.01.2014, 07:12 | Сообщение # 1957


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

if (Calcdist(m_penMarker) < 3.0f)
(
white ( Calcdist(m_penMarker) > 3.0f)
m_fMoveSpeed = 0.0f;
)
m_fMoveSpeed = 5.0f;
)

В тело функции бега по маркерам, союзник встал, идти когда я маркерами отойду не хочет.
Предположу что надо вставить в код где выбирается будущее действие, но где этот участок я не знаю. Подскажите ? А моет есть способ проще, заставить союзника остановиться когда он близко к игроку ?


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


Double Jumper
Сообщений: 887
Награды: 32
Замечания: 0%
 
SLAwww, как это не было?
Прикрепления: 2991741.png (86.7 Kb)


CAHEK Вторник, 28.01.2014, 10:04 | Сообщение # 1959


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

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


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Хеминг, а я и забыл о ней. %) В любом случае, как я понял, работает не вполне корректно.

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-- Понедельник, 03.02.2014, 14:13 | Сообщение # 1961


Сообщений: 115
Награды: 2
Замечания: 20%
 
Как можно создать свою длл? (Просто хочу сделать дополнение, не мешающее обычному Сэму)

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


Double Jumper
Сообщений: 887
Награды: 32
Замечания: 0%
 
--uGh--zAn--, а в чем проблема? просто скомпилируй дллку и ссылай новые классы на нее, а не на Entities.dll

--uGh--zAn-- Вторник, 04.02.2014, 17:39 | Сообщение # 1963


Сообщений: 115
Награды: 2
Замечания: 20%
 
Heming_Hitrowski, спасибо

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


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

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


Double Jumper
Сообщений: 887
Награды: 32
Замечания: 0%
 
CAHEK, поработать с playerweapons и сделать m_iAvailableWeapon = 0x0
также на плеер старт маркере поставить GiveWeapons = 0
вроде бы еще что-то, но я уже не помню. возможно, нужно будет выставить m_iCurrentWeapon на WEAPON_NONE
и поработать с самим WEAPON_NONE, запретить его стрельбу, к примеру.


CAHEK Пятница, 07.02.2014, 08:56 | Сообщение # 1966


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

Добавлено (07.02.2014, 08:56)
---------------------------------------------
Все. Работает.
Осталось только вот что. При переходе на новый уровень оружие не сохраняется.

Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
SLAwww Пятница, 07.02.2014, 21:38 | Сообщение # 1967


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
При переходе на новый уровень игрок стартует на PlayerStart'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.
CAHEK Понедельник, 10.02.2014, 11:25 | Сообщение # 1968


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

Добавлено (10.02.2014, 11:25)
---------------------------------------------
Спасибо. Вопрос решен.
И новый вопрос. (ой сейчас завалю всех вопросами)
В ентии "модел холдер 3 " Нет графы выбора анимации. Вопрос - можно ли на кодить что бы можно было выбирать и менять в процессе игры анимку. (как с "модел холдером 2" и "аниматион чаленжер") или это нереально как наличие колюжина у аттачмента ?

Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
Heming_Hitrowski Понедельник, 10.02.2014, 13:58 | Сообщение # 1969


Double Jumper
Сообщений: 887
Награды: 32
Замечания: 0%
 
CAHEK, изменять анимку можно. Открой Sources/Engine/SKA/ModelInstance.h и используй методы оттуда. Или из других .h файлов, которые там находятся.

CAHEK Понедельник, 17.02.2014, 13:46 | Сообщение # 1970


Сообщений: 794
Награды: 16
Замечания: 0%
 
Как сделать чтобы "аниматион челенджер" работал с "модел холдер 3" так же как и с "модел холдер 2" в плане смены анимации. Единственное до чего я додумался это, когда "аниматион челенджер" направляешь на "модел холдер 3" ошибки не возникает.

Добавлено (17.02.2014, 13:46)
---------------------------------------------
Ладно. Возьму чего по проще.
Я попробовал закодить врага который был делан через СКА.
1. Не могу добиться включения анимации.
2. При ранении врага игра вылетает.

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


Double Jumper
Сообщений: 887
Награды: 32
Замечания: 0%
 
Всем привет. У меня назрел непростой вопрос.
Дело в том, что мне надо послать эвент игроку через HUD.cpp. Эвент посылается, все работает, но только на одной стороне, т.е только у сервера или клиента.
Я пробовал активировать функцию, вместо того, чтобы послать эвент, активировал булю, но все безрезультатно. Как быть? Вот как я посылал эвент:
Код
if ((GetAsyncKeyState(VK_RBUTTON) & 0x8000) != 0) {
     if (fClickAutowait < _pTimer->CurrentTick()) {
      // place here your all mouse actions:

      //ERightMouseClick eRMC;
      //eRMC.iSlot = iSelectedSlot;
      //eRMC.iClick = 1; // drop item
      //player->SendEvent(eRMC);
      //player->RightMouseClick(1, iSelectedSlot);
      //CPrintF("Something happened 2 \n");
      fClickAutowait = _pTimer->CurrentTick() + 0.2f;
     }
    }
Сообщение отредактировал Heming_Hitrowski - Четверг, 20.02.2014, 21:41


SLAwww Четверг, 20.02.2014, 21:23 | Сообщение # 1972


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

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 Четверг, 20.02.2014, 21:38 | Сообщение # 1973


Double Jumper
Сообщений: 887
Награды: 32
Замечания: 0%
 
SLAwww, а как тогда быть?

SeriousAlexej Четверг, 20.02.2014, 21:54 | Сообщение # 1974


Serious Editor
Сообщений: 1246
Награды: 52
Замечания: 0%
 
SLAwww, поможет ли внесение изменений в новый пакет, который отправляет игрок, как с нажатием кнопок в ИНЕРТАНе?

VITEK Пятница, 21.02.2014, 11:06 | Сообщение # 1975


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

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


Рряа? ^..^
Сообщений: 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 | Сообщение # 1977


Double Jumper
Сообщений: 887
Награды: 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 | Сообщение # 1978


Рряа? ^..^
Сообщений: 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 | Сообщение # 1979


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


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


Рряа? ^..^
Сообщений: 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.
Поиск: