Форумы на Наша-Life
Home user CP  
Календарь событий Найти других пользователей Часто задаваемые Вопросы Поиск  
Автор
Тема
Создать Новую Тему    Ответить
Breever
(Добываю фероподы из мирмидонта)

Зарегистрирован: Jun 2009
Проживает: Россия/Красноярск
Написал: 95 сообщений

Оценка: 3 Votes 3 чел.

Сообщение #875883
Да уж, не сразу перестраиваешься с программирования в одном потоке в Borland Delphi \ C++ на несинхронное приложение
Спасибо за ответ, сам бы дооолго искал эти Think, хотя и скользил не раз по ним взглядом.
Ну и в SetWait необходимость отпала сразу.
Не существует границ, есть лишь препятствия

Поправил Breever 24-06-2009 в 13:31

Old Post 24-06-2009 13:25
Breever отсутствует Посмотреть данные 'Breever' Отправить Приватное Сообщение для 'Breever' Посетить домашнюю страничку Breever Найти другие сообщения 'Breever' Добавить Breever в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Breever
(Добываю фероподы из мирмидонта)

Зарегистрирован: Jun 2009
Проживает: Россия/Красноярск
Написал: 95 сообщений

Оценка: 3 Votes 3 чел.

Сообщение #875978
Блин, одни косяки как обычно пошли. Самое интересное, что не работает пауза, хотя я вроде говорю НПС, что надо think.
Ну если конкретнее, то пара вопросов по самой функции:
code:
if (tr.m_pEnt->IsNPC() && !tr.m_pEnt->IsEFlagSet( EFL_NO_MEGAPHYSCANNON_RAGDOLL ) && tr.m_pEnt->MyNPCPointer()->CanBecomeRagdoll() )
{
pullDir = vstart - tr.m_pEnt->WorldSpaceCenter(); // вектор пуляния нашего НПС
float CurrentLife = tr.m_pEnt->GetHealth() - 10; // записываем жизни и отнимаем 10 (урон от толчка)
CTakeDamageInfo info( pPlayer, pPlayer, 0.0f, DMG_GENERIC ); // информация об уроне (для галочки, чтобы функция не ругалась
tr.m_pEnt->MyCombatCharacterPointer()->BecomeRagdoll ( info, -pullDir * 9000.0f ); // Сделали НПС рагдоллом и запульнули его.
if (CurrentLife > 0) // если после всего этого наш НПС еще жив
{
tr.m_pEnt->SetNextThink ( gpGlobals->curtime + 4.0f); // пусть полностью улежится

CBaseEntity::Create((char*)STRING( tr.m_pEnt->GetEntityName() ), tr.m_pEnt->GetAbsOrigin(), -ang );
// создаем такого же НПС, в последней точке, обращенного взглядом к игроку (чтобы он не потерялся и сразу увидел врага)
UTIL_Remove (tr.m_pEnt); // убираем наш рагдол
}

}

Функция неполная, оставил только самое главное и проблемное

- Ну самое главное - почему не работает пауза?
- В чем ошибка на первом аргументе функции CBaseEntity::Create? В самой игре он пишет unknown type entry. (ну с этим методом проб может и смог бы разобраться)
- И еще довольно интересный вопрос: Вот я применяю функцию BecomeRagdoll к tr.m_pEnt, а после этой функции можно ли обращаться к ней также, tr.m_pEnt?? Просто там ведь идет Think дальше, может поэтому он не работает?
- И кстати, как обращаться к новоиспеченной энтри, которая создастся командой Create?? Ее ведь нужно будет усыпить, дать ей подумать, поставить анимки и т.д.

Короче я нубас, и этим все сказано
Не существует границ, есть лишь препятствия
Old Post 24-06-2009 17:18
Breever отсутствует Посмотреть данные 'Breever' Отправить Приватное Сообщение для 'Breever' Посетить домашнюю страничку Breever Найти другие сообщения 'Breever' Добавить Breever в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Все время в GMT . Сейчас 09:57.
Создать Новую Тему    Ответить

Быстрый ответ
Ваше Имя:
Хотите Зарегистрироваться?
Ваш Пароль:
Забыли свой Пароль?
Вы можете оставлять свои комментарии анонимно, просто введя свои имя и оставив пустым поле пароля.
Ваш ответ:

[проверить размер]
[транслит в win] | [?]
[русская клавиатура]

Дополнительно: Подтверждение по E-Mail


Быстрый переход:
 
Оцените эту Тему:
 

Правила форума:
Создание Тем не разрешено
Создание Сообщений разрешено
Создавать Вложения не разрешено
Редактирование Сообщений не разрешено
Коды HTML запрещены
Коды форума разрешены
Смайлики разрешены
Коды [IMG] запрещены