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

Зарегистрирован: Jul 2016
Проживает: /
Написал: 69 сообщений

Оценка: 0 Votes

Изменение фонарика.
Сообщение #1108977
Всем снова привет.
Как сделать так, чтобы фонарик тратил больше энергии и восстонавливался медленно, или же вовсе отключить возможность использовать фонарик?
Old Post 21-07-2016 17:13
Mr.Simon15281 отсутствует Посмотреть данные 'Mr.Simon15281' Отправить Приватное Сообщение для 'Mr.Simon15281' Найти другие сообщения 'Mr.Simon15281' Добавить Mr.Simon15281 в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Alf-Life II
(Senior Member)

Зарегистрирован: Mar 2008
Проживает: Россия/
Написал: 2097 сообщений

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

Сообщение #1108978
hl2_player.cpp
#define FLASH_DRAIN_TIME 1.1111 // 100 units / 90 secs
#define FLASH_CHARGE_TIME 50.0f // 100 units / 2 secs
Запрещается смотреть солдатам в глаза. Наносить ущерб собственности Альянса. Убивать комбайнов. Всегда носите при себе документы. Не поднимать шума после шести. И до шести, кстати, тоже.
Old Post 21-07-2016 17:59
Alf-Life II отсутствует Посмотреть данные 'Alf-Life II' Отправить Приватное Сообщение для 'Alf-Life II' Найти другие сообщения 'Alf-Life II' Добавить Alf-Life II в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Mr.Simon15281
(Member)

Зарегистрирован: Jul 2016
Проживает: /
Написал: 69 сообщений

Оценка: 0 Votes

Сообщение #1108979
Спасибо.

Mr.Simon15281 добавил 21-07-2016 в 19:17:46:
Однако, не как не могу понять, надо число увиличввать(юнита), или уменьшать, чтобы быстро расходовал?
И так-же секунды.
Old Post 21-07-2016 19:11
Mr.Simon15281 отсутствует Посмотреть данные 'Mr.Simon15281' Отправить Приватное Сообщение для 'Mr.Simon15281' Найти другие сообщения 'Mr.Simon15281' Добавить Mr.Simon15281 в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Alf-Life II
(Senior Member)

Зарегистрирован: Mar 2008
Проживает: Россия/
Написал: 2097 сообщений

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

Сообщение #1108980
То, что за // – комментарий, можешь хоть пипиську ASCII-артом нарисовать за ним, это никак не повлияет на код. Если решил удариться в кодинг, советую всё-таки немного C++ изучить, хотя бы самые основы на уровне основ ООП, иначе далеко не уедешь.
100 / значение = секунды. Ставишь FLASH_DRAIN_TIME 100 – фонарь разрядится за секунду, 25 – за 4 секунды, 0.027 – будет работать час реального времени.
Запрещается смотреть солдатам в глаза. Наносить ущерб собственности Альянса. Убивать комбайнов. Всегда носите при себе документы. Не поднимать шума после шести. И до шести, кстати, тоже.

Поправил Alf-Life II 21-07-2016 в 19:43

Old Post 21-07-2016 19:39
Alf-Life II отсутствует Посмотреть данные 'Alf-Life II' Отправить Приватное Сообщение для 'Alf-Life II' Найти другие сообщения 'Alf-Life II' Добавить Alf-Life II в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Mr.Simon15281
(Member)

Зарегистрирован: Jul 2016
Проживает: /
Написал: 69 сообщений

Оценка: 0 Votes

Сообщение #1108983
Понятно, а можно фонарик сделать как предмет(тоесть, при поднятии фонарика, включался режим фонарика в костюме).
И так-же отключать фонарик в костюме.
Old Post 22-07-2016 15:33
Mr.Simon15281 отсутствует Посмотреть данные 'Mr.Simon15281' Отправить Приватное Сообщение для 'Mr.Simon15281' Найти другие сообщения 'Mr.Simon15281' Добавить Mr.Simon15281 в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Alf-Life II
(Senior Member)

Зарегистрирован: Mar 2008
Проживает: Россия/
Написал: 2097 сообщений

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

Сообщение #1109013
Можно, завтра напишу как.
Запрещается смотреть солдатам в глаза. Наносить ущерб собственности Альянса. Убивать комбайнов. Всегда носите при себе документы. Не поднимать шума после шести. И до шести, кстати, тоже.
Old Post 25-07-2016 00:40
Alf-Life II отсутствует Посмотреть данные 'Alf-Life II' Отправить Приватное Сообщение для 'Alf-Life II' Найти другие сообщения 'Alf-Life II' Добавить Alf-Life II в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
 
Alf-Life II
(Senior Member)

Зарегистрирован: Mar 2008
Проживает: Россия/
Написал: 2097 сообщений

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

Сообщение #1109015
Значит так.
Чтобы управлять включением и отключением фонаря в костюме, нам нужна переменная.
Идём в заголовочный файл плеера (hl2_player.h) и вставляем туда в приватную секцию переменную с понятным названием
code:
private:
// Собсна вот она
bool hasFlashlight;
// Ниже то, что уже есть
bool CommanderExecuteOne

Далее в секцию public добавляем функцию с названием вроде AddFlashlight(), он нужна для взаимодействия с переменной извне
code:
// Apply a battery – это уже есть в коде
bool ApplyBattery( float powerMultiplier = 1.0 );
// А вот тут добавляем
bool AddFlashlight();

Копируешь item_battery, меняешь название на item_flashlight и соответствующим образом переименовываешь классы. В функции MyTouch меняем то, что делает итем при подбирании:
code:
return (pHL2Player && pHL2Player->AddFlashlight());

Таким образом при подбирании фонарика будет задействована эта функция, но её пока нет, поэтому идём в hl2_player.cpp, ищем конструктор, в нём мы на всякий случай определим, что hasFlashlight у нас изначально ложь.
code:
CHL2_Player::CHL2_Player()
{
hasFlashlight = false;

Осталось только написать саму функцию управления фонариком, она очень проста. Идём куда-нибудь в район bool CHL2_Player::ApplyBattery и пилим:
code:
bool CHL2_Player::AddFlashlight( )
{
if (IsSuitEquipped() && !hasFlashlight) // если костюм надет и у нас пока нет фонарика
{
hasFlashlight = true; // надеваем фонарик
return true; // Функция должна возвращать истину, чтобы сам итем исчез при подбирании
}
return false; // если же нет костюма, или фонарь уже подобран, фонарь взять нельзя
}


Забыл самое важное: ищем функцию FlashlightTurnOn и добавляем эти две строчки (которые с комментариями)
code:
void CHL2_Player::FlashlightTurnOn( void )
{
//
if (!hasFlashlight) //если нет фонаря
return; //функция завершает работу

if( m_bFlashlightDisabled )
return;
...


Компилируем, радуемся результату, идём добавлять дорогого Alf-Life II в титры
Запрещается смотреть солдатам в глаза. Наносить ущерб собственности Альянса. Убивать комбайнов. Всегда носите при себе документы. Не поднимать шума после шести. И до шести, кстати, тоже.

Поправил Alf-Life II 25-07-2016 в 20:50

Old Post 25-07-2016 10:20
Alf-Life II отсутствует Посмотреть данные 'Alf-Life II' Отправить Приватное Сообщение для 'Alf-Life II' Найти другие сообщения 'Alf-Life II' Добавить Alf-Life II в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Mr.Simon15281
(Member)

Зарегистрирован: Jul 2016
Проживает: /
Написал: 69 сообщений

Оценка: 0 Votes

Сообщение #1109018
Мне пишет такую ошибку:
http://imgur.com/a/nfkbv
и
http://imgur.com/a/WX08Z
Old Post 25-07-2016 13:34
Mr.Simon15281 отсутствует Посмотреть данные 'Mr.Simon15281' Отправить Приватное Сообщение для 'Mr.Simon15281' Найти другие сообщения 'Mr.Simon15281' Добавить Mr.Simon15281 в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Alf-Life II
(Senior Member)

Зарегистрирован: Mar 2008
Проживает: Россия/
Написал: 2097 сообщений

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

Сообщение #1109019
Цитата:
Далее в секцию public добавляем функцию с названием вроде AddFlashlight(), он нужна для взаимодействия с переменной извне

Это сделал?
Запрещается смотреть солдатам в глаза. Наносить ущерб собственности Альянса. Убивать комбайнов. Всегда носите при себе документы. Не поднимать шума после шести. И до шести, кстати, тоже.
Old Post 25-07-2016 13:35
Alf-Life II отсутствует Посмотреть данные 'Alf-Life II' Отправить Приватное Сообщение для 'Alf-Life II' Найти другие сообщения 'Alf-Life II' Добавить Alf-Life II в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Mr.Simon15281
(Member)

Зарегистрирован: Jul 2016
Проживает: /
Написал: 69 сообщений

Оценка: 0 Votes

Сообщение #1109021
http://imgur.com/a/OiqDy

Mr.Simon15281 добавил 25-07-2016 в 13:50:05:
И что дальше?
Old Post 25-07-2016 13:41
Mr.Simon15281 отсутствует Посмотреть данные 'Mr.Simon15281' Отправить Приватное Сообщение для 'Mr.Simon15281' Найти другие сообщения 'Mr.Simon15281' Добавить Mr.Simon15281 в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Alf-Life II
(Senior Member)

Зарегистрирован: Mar 2008
Проживает: Россия/
Написал: 2097 сообщений

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

Сообщение #1109022
Что это, Бэрримор? Это объявление переменной, а не функции, а я спрашивал про
code:
// Apply a battery – это уже есть в коде
bool ApplyBattery( float powerMultiplier = 1.0 );
// А вот тут добавляем
bool AddFlashlight();

Далее, я даже специально написал,
Цитата:
// Ниже то, что уже есть

Это значит, что тебе нужно найти в коде существующий кусок, а именно bool CommanderExecuteOne, и перед этим этим вставить bool hasFlashlight;, чтобы кусок кода выглядел как у меня: http://puu.sh/qdQAv/143e6287ec.png
Ну и в конце концов, почитай хоть немного о С++, если даже банальный копипаст в такое приключение превращается, я не представляю что будет дальше. Я не хочу через неделю в теме "Проблема с добавлением телепортирующегося стреляющего чёрными дырами привидения из партиклей" писать за тебя весь код и пошагово описывать что и куда вставлять.
Запрещается смотреть солдатам в глаза. Наносить ущерб собственности Альянса. Убивать комбайнов. Всегда носите при себе документы. Не поднимать шума после шести. И до шести, кстати, тоже.
Old Post 25-07-2016 13:51
Alf-Life II отсутствует Посмотреть данные 'Alf-Life II' Отправить Приватное Сообщение для 'Alf-Life II' Найти другие сообщения 'Alf-Life II' Добавить Alf-Life II в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Mr.Simon15281
(Member)

Зарегистрирован: Jul 2016
Проживает: /
Написал: 69 сообщений

Оценка: 0 Votes

Сообщение #1109023
После компиляции выводит ошибку:
http://imgur.com/a/uVob9
http://imgur.com/a/7qRCG
http://imgur.com/a/k51nb
Old Post 25-07-2016 14:20
Mr.Simon15281 отсутствует Посмотреть данные 'Mr.Simon15281' Отправить Приватное Сообщение для 'Mr.Simon15281' Найти другие сообщения 'Mr.Simon15281' Добавить Mr.Simon15281 в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Alf-Life II
(Senior Member)

Зарегистрирован: Mar 2008
Проживает: Россия/
Написал: 2097 сообщений

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

Сообщение #1109024
Ты не сделал то, что я тебе сказал.
Ещё раз:
Цитата:
Идём в заголовочный файл плеера (hl2_player.h) и вставляем туда в приватную секцию переменную с понятным названием

Это значит, что ты открываешь hl2_player.h (не .cpp!), ищешь объявление интересующего нас класса, а именно
code:
class CHL2_Player : public CBasePlayer

Ищешь где у него public, среди всех этих функций вставляешь
code:
bool AddFlashlight( );

Вот так это выглядит у меня: http://puu.sh/qdSDf/041708be00.png
(Поиск в MSVS осуществляется по нажатию Ctrl+Shift_F)
Теперь функция AddFlashlight – член класса CHL2_Player.
То же самое с переменной hasFlashlight, только она является приватной, потому что мы не хотим чтобы какой-нибудь сканер с такой же функцией, например, не испортил фонарь игрока.
Значит мы в том же самом классе ищем private и вставляем под этим уже переменную: https://puu.sh/qdQAv/143e6287ec.png
Всё, теперь и функция, и переменная являются членами класса.
Запрещается смотреть солдатам в глаза. Наносить ущерб собственности Альянса. Убивать комбайнов. Всегда носите при себе документы. Не поднимать шума после шести. И до шести, кстати, тоже.
Old Post 25-07-2016 14:34
Alf-Life II отсутствует Посмотреть данные 'Alf-Life II' Отправить Приватное Сообщение для 'Alf-Life II' Найти другие сообщения 'Alf-Life II' Добавить Alf-Life II в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Mr.Simon15281
(Member)

Зарегистрирован: Jul 2016
Проживает: /
Написал: 69 сообщений

Оценка: 0 Votes

Сообщение #1109025
После этого, вылезло 2000 ошибок.
Old Post 25-07-2016 14:56
Mr.Simon15281 отсутствует Посмотреть данные 'Mr.Simon15281' Отправить Приватное Сообщение для 'Mr.Simon15281' Найти другие сообщения 'Mr.Simon15281' Добавить Mr.Simon15281 в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Alf-Life II
(Senior Member)

Зарегистрирован: Mar 2008
Проживает: Россия/
Написал: 2097 сообщений

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

Сообщение #1109026
Скидывай свои hl2_player.cpp и .h на pastebin и давай сюда.
Запрещается смотреть солдатам в глаза. Наносить ущерб собственности Альянса. Убивать комбайнов. Всегда носите при себе документы. Не поднимать шума после шести. И до шести, кстати, тоже.
Old Post 25-07-2016 15:05
Alf-Life II отсутствует Посмотреть данные 'Alf-Life II' Отправить Приватное Сообщение для 'Alf-Life II' Найти другие сообщения 'Alf-Life II' Добавить Alf-Life II в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Все время в GMT . Сейчас 10:53.
Создать Новую Тему    Ответить

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

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

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


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

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