Добавлено (21.01.2014, 17:38) --------------------------------------------- То что на скрне я бэкграундом считал, а альтернативное название не использовал
Всё очень серьёзно. P.S. Не пишите мне на Email, пишите в Л.С.
Увы, это сделать нельзя, у аттачмента не может быть своего коллижна, придётся изворачиваться.
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.
Про ТГП можешь спросить у Хемминга. Но вообще, вместе с уроном приходит его направление, таким образом можно проверить, в какую часть колижна попал урон.
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.
Ситуация 1. Я по инструкциям написанным на форуме сделал союзников (основа Х-бокс мод) Для того сделать чтобы при нажатии клавиши союзник пошел по енему маркерам я сделал в "енему базе" проверку на нажатие клавиши. Но куда вставить эту проверку я не знаю. максимум что у меня получалось это при самом старте игры удерживать клавишу и только тогда союзник пошел по маркерам.
Ситуация 2. Как заставить союзника при нажатии клавиши бегать за тобой ?
Всё очень серьёзно. P.S. Не пишите мне на Email, пишите в Л.С.
Но куда вставить эту проверку я не знаю. максимум что у меня получалось это при самом старте игры удерживать клавишу и только тогда союзник пошел по маркерам.
Как заставить союзника при нажатии клавиши бегать за тобой
Насколько я знаю, в 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 = нужная_группа; } }} }
при нажатии клавиши союзник пошел по енему маркерам
Если ты имеешь ввиду ситуацию, когда я подошёл к союзнику, нажал на нём "Использовать", и союзник пошёл за мной, то вариант Хеминга тебе не подойдёт. Поищи 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.
Секунду. То есть в Xbox моде уже стоит код чтобы союзник бегал за игроком когда нет врагов. Просто по неопытности я мог неправильно убрать лишнее из "enemybase.es" У меня как выходит. Респавниш союзника и врага через "enemy spawner" И они бьют друг друга. А как убьют врагов то стоят на месте пока еще враги не прибегут.
Всё очень серьёзно. P.S. Не пишите мне на Email, пишите в Л.С.
Такое дело. Я несколько раз переделывал исходник из Xbox мода, но ни разу не смог сделать чтобы работало как надо. Есть ли исходник поправленный или только из Xbox мода. А то я уже замучился переправлять. Могу конечно каждую ошибку выкладывать здесь, но это столько времени и места надо. Или все таки попытаться.
Всё очень серьёзно. P.S. Не пишите мне на Email, пишите в Л.С.
Такой процедуры там не было. Её можно накодить, но для быстрого результата должно быть достаточно припарентить несколько 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.
Интересная ситуация. Попробовал. Союзник либо постоянно тыкается в игрока либо постоянно бегает. пробовал вписать проверку
if (Calcdist(m_penMarker) < 3.0f) ( white ( Calcdist(m_penMarker) > 3.0f) m_fMoveSpeed = 0.0f; ) m_fMoveSpeed = 5.0f; )
В тело функции бега по маркерам, союзник встал, идти когда я маркерами отойду не хочет. Предположу что надо вставить в код где выбирается будущее действие, но где этот участок я не знаю. Подскажите ? А моет есть способ проще, заставить союзника остановиться когда он близко к игроку ?
Всё очень серьёзно. P.S. Не пишите мне на Email, пишите в Л.С.
Хеминг, а я и забыл о ней. %) В любом случае, как я понял, работает не вполне корректно.
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.
CAHEK, поработать с playerweapons и сделать m_iAvailableWeapon = 0x0 также на плеер старт маркере поставить GiveWeapons = 0 вроде бы еще что-то, но я уже не помню. возможно, нужно будет выставить m_iCurrentWeapon на WEAPON_NONE и поработать с самим WEAPON_NONE, запретить его стрельбу, к примеру.
Оружие пропало, однако при попытке смены оружия игра вылетает без каких либо рамок. Как быть?
Добавлено (07.02.2014, 08:56) --------------------------------------------- Все. Работает. Осталось только вот что. При переходе на новый уровень оружие не сохраняется.
Всё очень серьёзно. P.S. Не пишите мне на Email, пишите в Л.С.
При переходе на новый уровень игрок стартует на 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.
В том то и дело. У PlayerStart'а пробовал ставить разные числа в разных графах, но безрезультатно.
Добавлено (10.02.2014, 11:25) --------------------------------------------- Спасибо. Вопрос решен. И новый вопрос. (ой сейчас завалю всех вопросами) В ентии "модел холдер 3 " Нет графы выбора анимации. Вопрос - можно ли на кодить что бы можно было выбирать и менять в процессе игры анимку. (как с "модел холдером 2" и "аниматион чаленжер") или это нереально как наличие колюжина у аттачмента ?
Всё очень серьёзно. P.S. Не пишите мне на Email, пишите в Л.С.
Как сделать чтобы "аниматион челенджер" работал с "модел холдер 3" так же как и с "модел холдер 2" в плане смены анимации. Единственное до чего я додумался это, когда "аниматион челенджер" направляешь на "модел холдер 3" ошибки не возникает.
Добавлено (17.02.2014, 13:46) --------------------------------------------- Ладно. Возьму чего по проще. Я попробовал закодить врага который был делан через СКА. 1. Не могу добиться включения анимации. 2. При ранении врага игра вылетает.
Всё очень серьёзно. P.S. Не пишите мне на Email, пишите в Л.С.
Всем привет. У меня назрел непростой вопрос. Дело в том, что мне надо послать эвент игроку через HUD.cpp. Эвент посылается, все работает, но только на одной стороне, т.е только у сервера или клиента. Я пробовал активировать функцию, вместо того, чтобы послать эвент, активировал булю, но все безрезультатно. Как быть? Вот как я посылал эвент:
Код
if ((GetAsyncKeyState(VK_RBUTTON) & 0x8000) != 0) { if (fClickAutowait < _pTimer->CurrentTick()) { // place here your all mouse actions:
Отправлять что-либо обратно из 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.