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

Страница 88 из 91«12868788899091»
Модератор форума: SLAwww, thecre, RealCrazyMan 
Форум » Serious Sam » Серьёзное редактирование » Помощь по SDK для Serious Sam 1.05/1.07 (Вопросы по комплекту средств разработки для Serious Sam 1.)
Помощь по SDK для Serious Sam 1.05/1.07
Kadath Пятница, 09.09.2016, 16:47 | Сообщение # 2611


Son of Anubis
Сообщений: 2319
Награды: 19
Замечания: 0%
 
Цитата x7 ()
2) Частично решил баг с камерой путем копирования файлов исходников с 1.07. Но иногда всё равно она проворачивается на секунду. Может быть ещё у кого-то такое было?

Замечаю такой баг. Но поворачивается не на секунду, а пока не "выровняешь" обзор. А вот у кого-то такого нет, вот это и странно.


"Patrons have queried whether the giraffe is sad because the humans appear to the dead,
or whether the humans are dead because they sadness the giraffe.
MrMulciber has refused to say."
Cyborg Пятница, 09.09.2016, 17:03 | Сообщение # 2612


Сообщений: 85
Награды: 4
Замечания: 0%
 
Цитата x7 ()
3) Я менял значения там, но в игре они не меняются, всё равно максимальное 100, а топ меняется


Максимальная броня/здоровье изменяются! Значит ты не там где надо менял значения.



Как и говорил выше - нужно менять те функции (TopHealth и т.п.).

Код

Оригинальный вид:

FLOAT TopHealth(void)
{
  if (GetSP()->sp_gdGameDifficulty<=CSessionProperties::GD_EASY) {
    return 200;
  } else {
    return 100;
  }
}


Код

Изменённый вид:

FLOAT TopHealth(void)
{
  if (GetSP()->sp_gdGameDifficulty<=CSessionProperties::GD_EASY) {
    return 200;
  } else {
    return 50;
  }
}


Как ты мог заметить, ты меняешь число в return (return 100; -> было. Стало-> return 50;). И это изменение коснулось сложности от обычной до крутого.

Цитата x7 ()
5) А где находится описание самого этого урона?

Если так посмотреть, то враги не смогу убить друг друга появляясь из EnemySpawner/телепортируясь через портал/копируясь через copier, если выключить "Telefrag", да и по стандарту этот параметр выключен в спаунере (в остальных случаях просто выключи телефраг и враги не смогут убить друг друга).
Ну а так, в телепортации юзается Teleport(координаты, убивать ли телефрагом?), которая уже лежит в самой Entity, следовательно ты уже будешь менять сам движок.




Hell yeah! Полностью рабочий SS:TSE на 64 битке просто замечателен
x7 Пятница, 09.09.2016, 17:07 | Сообщение # 2613

Сообщений: 18
Награды: 0
Замечания: 0%
 
1) Добавил скрипты с 1.07. Всё появилось. Спасибо
3) Топ когда меняю, это у меня меняется текущее здоровье со старта, а не когда подбираешь аптечки. Когда подбираешь их опять максимальное число 100, сколько бы не менял. Может ещё где-то есть запись о здоровье и броне?
4) То есть это надо для всех монстров так писать? Для всех сразу нельзя как наподобие Friendly Fire?
5) С TimeContoller ещё попробую, потом отпишусь.
8) Где хранится запись о видимости сервера? Я пробовал копировал исходники Network с 1.07, но это не дало эффекта
9) У кого-нибудь осталась статья Хеминга о добавлении нового оружия? А то там ссылка уже не работает


Cyborg Пятница, 09.09.2016, 17:18 | Сообщение # 2614


Сообщений: 85
Награды: 4
Замечания: 0%
 
Цитата x7 ()
То есть это надо для всех монстров так писать? Для всех сразу нельзя как наподобие Friendly Fire?

Нет. Ты можешь ввести новую переменную, типа "Friendly fire" и поставить условие на проверку в ReceiveDamage в EnemyBase (что бы на всех врагов была такая фича).

Приведу даже пример:
Пускай у нас будет введена переменна m_bFriendlyFire как BOOL.
Идём в ReceiveDamage и суём в начало кода это:

Код

if (IsDerivedFromClass(penInflictor, "Enemy Base") && m_bFriendlyFire) {
  return;
}




Hell yeah! Полностью рабочий SS:TSE на 64 битке просто замечателен
x7 Пятница, 09.09.2016, 18:52 | Сообщение # 2615

Сообщений: 18
Награды: 0
Замечания: 0%
 
Cyborg,
Это заработало) Спасибо)
А есть идеи насчёт здоровья? Мне нужно чтобы просто убрать лимит. Сколько подобрал жизней и брони столько бы и прибавлялось

Добавлено (09.09.2016, 18:12)
---------------------------------------------
Я нашёл в чём дело. Как я и предполагал здоровье не только там записывается. Надо было ещё в HealthItem.es поставить на предметах m_bOverTopHealth = TRUE;

Добавлено (09.09.2016, 18:51)
---------------------------------------------
Сфотографировал баг с камерой. Играть вообще невозможно. Помогите пофиксить



Добавлено (09.09.2016, 18:52)
---------------------------------------------
http://savepic.net/8420366.htm
http://savepic.net/8406030.htm
http://savepic.net/8410126.htm
http://savepic.net/8396814.htm

Kadath Пятница, 09.09.2016, 19:12 | Сообщение # 2616


Son of Anubis
Сообщений: 2319
Награды: 19
Замечания: 0%
 
Цитата x7 ()
Помогите пофиксить

Удваиваю.


"Patrons have queried whether the giraffe is sad because the humans appear to the dead,
or whether the humans are dead because they sadness the giraffe.
MrMulciber has refused to say."
Ar2R-devil-PiNKy Пятница, 09.09.2016, 20:16 | Сообщение # 2617


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

Мои работы
x7 Пятница, 09.09.2016, 20:25 | Сообщение # 2618

Сообщений: 18
Награды: 0
Замечания: 0%
 
Она начинает подглючивать когда подходишь к брашам, когда меняется обзор. Копировал с 1.07 файлы не помогло. что-то похожее на полёт да, но при этом, всё так же пытается быть привязанной к игроку

Jack_Stone Воскресенье, 11.09.2016, 23:09 | Сообщение # 2619


Сообщений: 75
Награды: 0
Замечания: 0%
 
Как сделать в SE так, чтобы цвет патронов вообще не менялся?

Добавлено (10.09.2016, 07:13)
---------------------------------------------
а еще у здоровья и брони

Добавлено (10.09.2016, 07:45)
---------------------------------------------
подскажите, плиз, еще код цвета как, например, у списка игроков в мп. он синий, но тональность определить не могу

Добавлено (11.09.2016, 23:09)
---------------------------------------------
как изменить положение точки "вылета" огня у огнемета?

JS
x7 Понедельник, 12.09.2016, 15:14 | Сообщение # 2620

Сообщений: 18
Награды: 0
Замечания: 0%
 
http://www.serioussite.ru/publ....1-0-212

Jack_Stone Вторник, 13.09.2016, 17:05 | Сообщение # 2621


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

JS
x7 Понедельник, 19.09.2016, 13:14 | Сообщение # 2622

Сообщений: 18
Награды: 0
Замечания: 0%
 
Какой класс у рыбы? Когда пишу CLASS_FISH. Он пишет Error C2065 'CLASS_FISH': undeclared identifier

Jack_Stone Вторник, 27.09.2016, 21:46 | Сообщение # 2623


Сообщений: 75
Награды: 0
Замечания: 0%
 
как сделать так, чтобы при выстреле в Headman`а он не отлетал?

JS
Heming_Hitrowski Вторник, 27.09.2016, 22:12 | Сообщение # 2624


Double Jumper
Сообщений: 816
Награды: 23
Замечания: 0%
 
Jack_Stone, у каждого врага примерно в самом начале класса есть структура, у хедмена это кажется eiHeadman. Где то там есть и вес, который можно сделать побольше.
Сообщение отредактировал Heming_Hitrowski - Вторник, 27.09.2016, 22:13


x7 Вторник, 27.09.2016, 22:17 | Сообщение # 2625

Сообщений: 18
Награды: 0
Замечания: 0%
 
Jack_Stone, Нужно увеличить его массу, отредактировав файл Headman.es
Найдя там строки
static EntityInfo eiHeadman = {
EIBT_FLESH, 100.0f,
0.0f, 1.9f, 0.0f,
0.0f, 1.0f, 0.0f,
};
И заменив 100.0f на что-то поболее, например 500.0f


Jack_Stone Среда, 28.09.2016, 23:45 | Сообщение # 2626


Сообщений: 75
Награды: 0
Замечания: 0%
 
Ребята, спасибо :)

Добавлено (28.09.2016, 23:45)
---------------------------------------------
Как добавить фонарик?) если это не секрет, конечно)

JS
STPROD Среда, 28.09.2016, 23:54 | Сообщение # 2627


Сообщений: 410
Награды: 3
Замечания: 0%
 
Самый простой способ: телепортировать каждый тик определенный ambient-light на m_vRayHit из PlayerWeapons

kill me.
Jack_Stone Четверг, 29.09.2016, 06:53 | Сообщение # 2628


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

JS
STPROD Четверг, 29.09.2016, 09:06 | Сообщение # 2629


Сообщений: 410
Награды: 3
Замечания: 0%
 
Есть у тебя на карте какой-нибудь Light типа Ambient с радиусом, скажем, 8. Ты каждый тик (например в функции RenderGameView в Player) телепортируешь этот специальный лайт (который нужно еще назначить в свой собственный специальный CEntityPointer) на координаты переменной m_vRayHit, которая находится уже в PlayerWeapons и которую внутри Player можно получить как: GetPlayerWeapons()->m_vRayHit.
Телепортировать, естественно, функцией Teleport(CPlacement3D, FALSE) - (На место CPlacement3D пишешь "CPlacement3D(GetPlayerWeapons()->m_vRayHit, ANGLE3D(0,0,0))", на место FALSE - так же FALSE) - второй аргумент функции отвечает за телефраг, который нам не нужен и мы естественно его отключаем


kill me.
Jack_Stone Четверг, 29.09.2016, 19:30 | Сообщение # 2630


Сообщений: 75
Награды: 0
Замечания: 0%
 
Я опять ничего не понял, но всё равно спасибо :) Какая связь между фонариком и PlayerWeapons ? и где находится CEntityPointer?

JS
STPROD Пятница, 30.09.2016, 00:30 | Сообщение # 2631


Сообщений: 410
Награды: 3
Замечания: 0%
 
Не умеешь в базовые вещи - твои проблемы

kill me.
Kadath Пятница, 30.09.2016, 06:10 | Сообщение # 2632


Son of Anubis
Сообщений: 2319
Награды: 19
Замечания: 0%
 
Можно использовать и PlayerParenter, в крайнем случае. Фиговый, но фонарик.

"Patrons have queried whether the giraffe is sad because the humans appear to the dead,
or whether the humans are dead because they sadness the giraffe.
MrMulciber has refused to say."
Ar2R-devil-PiNKy Пятница, 30.09.2016, 11:01 | Сообщение # 2633


Великий мечтатель
Сообщений: 2869
Награды: 57
Замечания: 
 
Цитата Kadath ()
Можно использовать и PlayerParenter, в крайнем случае. Фиговый, но фонарик.

Его эффективнее для Фальшфейера :D


Мои работы
Jack_Stone Суббота, 01.10.2016, 22:47 | Сообщение # 2634


Сообщений: 75
Награды: 0
Замечания: 0%
 
Народ, объясните кто нибудь, как сделать фонарь, ну конечно кому не сложно. Я вижу, что несколько людей точно знают, как это делается. Это ведь форум, и форум для того и нужен, чтобы задавать вопросы и получать на них нормальные ответы, а не ответы типа "Не умеешь в базовые вещи - твои проблемы". если я не прав, то так и скажите.

JS
Kadath Воскресенье, 02.10.2016, 08:10 | Сообщение # 2635


Son of Anubis
Сообщений: 2319
Награды: 19
Замечания: 0%
 
Мой способ совсем не касается SDK. Надо скачать новый класс PlayerParenter отсюдова и прицепить в редакторе к игроку источник света. Необходимо настроить правильное положение источника света (можно даже несколько припэрентить). Фонарик можно будет включать от триггера в любой момент, но единственный минус такого способа в том, что PlayerParenter резко реагирует на повороты игрока, да и на движение в целом. Но в качестве дешманского фонаря для поиска картохи в погребе сойдет.

"Patrons have queried whether the giraffe is sad because the humans appear to the dead,
or whether the humans are dead because they sadness the giraffe.
MrMulciber has refused to say."
Jack_Stone Воскресенье, 02.10.2016, 11:55 | Сообщение # 2636


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

Добавлено (02.10.2016, 11:55)
---------------------------------------------
этого, я так понимаю, PlayerParenter не предусматривает?

JS
Kadath Воскресенье, 02.10.2016, 13:19 | Сообщение # 2637


Son of Anubis
Сообщений: 2319
Награды: 19
Замечания: 0%
 
Jack_Stone, включается триггером. Если хочешь от кнопки на клавиатуре, можно сделать с SDK такую ентитю, которая отлавливает нажатия определённых клавиш и посылает сигнал триггеру, которой в свою очередь активирует PlayerParanter. Тут я не смогу помочь, к сожалению.

"Patrons have queried whether the giraffe is sad because the humans appear to the dead,
or whether the humans are dead because they sadness the giraffe.
MrMulciber has refused to say."
Heming_Hitrowski Воскресенье, 02.10.2016, 13:21 | Сообщение # 2638


Double Jumper
Сообщений: 816
Награды: 23
Замечания: 0%
 
Jack_Stone, один из способов, как можно сделать фонарь.

1) CEntityPointer - это указатель на энтити. Я уверен, что ты видел поле Target у Trigger. Так вот, это тоже самое. Абстрактно будем говорить, что это объект в игре.

В Serious Sam есть объекты, которые могут освещать местность. Например, если пустить ракету в темном помещении, то можно заметить её небольшое свечение. Я предлагаю сделать тот же самый способ, нашей целью будет создать такой Projectile, который будет сам по себе невидим, но у него будет свет.

2) Почему надо лезть в PlayerWeapons. Дело в том, что в этом классе есть луч, который бьет прямо из игрока (примерно говорю, знатоки поправят меня), в место, куда направлен его прицел. Например, переменная m_vRayHit хранит в себе координаты того места, куда "ударил" этот луч. Чем это может нам помочь? Например, можно относительно этого луча телепортировать тот самый светящийся Projectilе, в итоге получаем освещение местности в зависимости от направления взгляда.

2.5) Создай какой-нибудь Projectile по аналогии со, скажем, PRT_ROCKET. Сделай так, чтобы он светился, модель была не видна и чтоб время жизни было очень-очень долгим.

3) Как заспавнить этот Projectile в коде и где это сделать?

Для начала надо объявить кнопку. Идем в Player.es. Я возьму в качестве аналогии кнопку bFireBomb, которая отвечает за запуск серьезной бомбы.

После строки 314 добавь
Код
  BOOL bFlashlight;

После строки 544 добавь
Код
  if(pctlCurrent.bFlashlight)      paAction.pa_ulButtons |= PLACT_FLASHLIGHT;

После строки 720 добавь
Код
_pShell->DeclareSymbol("user INDEX ctl_bFlashlight;",             &pctlCurrent.bFlashlight);


И самый важный шаг. На строке 257 найдешь вот такую конструкцию:
Код
#define PLACT_FIREBOMB            (1L<<13)
#define PLACT_SELECT_WEAPON_SHIFT (14)


Поменяй ее на
Код
#define PLACT_FIREBOMB            (1L<<13)
#define PLACT_FLASHLIGHT          (1L<<14)
#define PLACT_SELECT_WEAPON_SHIFT (15)


Все, практически готово.
Теперь идешь на строку 4492.
Видишь, как там реализован запуск бомбы. Делаешь примерно тоже самое:

Код
if (ulNewButtons&PLACT_FLASHLIGHT) {
// здесь будет код по нажатию кнопки связанной с фонарем
}


Далее, естественно, надо зайти в .ctl файл в папке Controls в самом Serious Sam и прописать по аналогии кнопку с Flashlight.
Данная кнопка будет работать корректно и по сети :)

Определились где заспавнить. Теперь КАК заспавнить какую-либо энтити.

Возьмем пример: нам нужно чтобы в мире появился Trigger. Прежде всего создай глобальную переменную в PlayerWeapons, пусть она объявляется, например, так:
Код
400 CEntityPointer m_penTrigger,


Вот как ее можно инициализировать:

Код
m_penTrigger = CreateEntity(GetPlacement(), CLASS_TRIGGER);
m_penTrigger->Initialize();


Это самый простой способ инициализации. У нас создается стандартный Trigger на том месте, где мы стоим (GetPlacement()). Вот, например, более сложный.

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

Таким образом, ты можешь уточнять, какой именно Trigger ты хочешь заспавнить.

Теперь, зная как спавнить определенные объекты, загляни в функцию FireRocket в PlayerWeapons.
Посмотри как там спавнится снаряд. Сделай свою функцию для включения и выключения фонарика в PlayerWeapons. Вот пример.

Код
void SetFlashlight() {
  if (!m_bFlashlight) {
     // m_penFlashlight = CreateEntity...
     m_bFlashlight = TRUE;
  } else {
     if (m_penFlashlight != NULL) {
         m_penFlashlight->Destroy(); // уничтожим Projectile
     } else {
       CPrintF("Ошибка при уничтожении фонарика\n");
     }
     m_bFlashlight = FALSE;
  }
}


Примерно так. Все описывать я задолбаюсь, это можно статью накатать уже :D
Сообщение отредактировал Heming_Hitrowski - Воскресенье, 02.10.2016, 13:25


Jack_Stone Воскресенье, 02.10.2016, 16:14 | Сообщение # 2639


Сообщений: 75
Награды: 0
Замечания: 0%
 
Heming_Hitrowski, а что именно тут прописать?
[/code]if (ulNewButtons&PLACT_FLASHLIGHT) {
// здесь будет код по нажатию кнопки связанной с фонарем
}

Добавлено (02.10.2016, 16:14)
---------------------------------------------
я попробовал что то прописать, у меня много undeclared получилось

JS
Heming_Hitrowski Воскресенье, 02.10.2016, 18:26 | Сообщение # 2640


Double Jumper
Сообщений: 816
Награды: 23
Замечания: 0%
 
Jack_Stone, undeclared - необъявленный. Ых, вот так вот без азов я тебе вряд ли что-то объясню... Почитай про переменные в языках программирования и про их объявление.

Форум » Serious Sam » Серьёзное редактирование » Помощь по SDK для Serious Sam 1.05/1.07 (Вопросы по комплекту средств разработки для Serious Sam 1.)
Страница 88 из 91«12868788899091»
Поиск: