Новые сообщения Участники Правила Поиск
Помощь по SDK для Serious Sam 1.05/1.07
МегаМозг Воскресенье, 09.09.2012, 17:34 | Сообщение # 1591


Сообщений: 444
Награды: 3
Замечания: 0%
 
Короче смотри/слушай/читай, допустим, я хочу сделать максимальное число HP игрока, не точным значением, а сделать переменную, и хочу чтобы я смог изменять её в игре через новую энтию, т.е через другую энтию, я хочу изменять максимальное кол-во здоровье игрока, как мне это сделать?

Мои работы....


Увлекаешься дядей сэдом? Тогда тебе >>сюда<<!
Serious_Master Воскресенье, 09.09.2012, 19:57 | Сообщение # 1592


Сообщений: 19
Награды: 0
Замечания: 0%
 
Всем привет. Что нужно сделать, чтобы HUD был а-ля DooM или Duke Nukem 3D?
Прикрепления: 7582010.jpg (28.2 Kb)
Сообщение отредактировал Serious_Master - Воскресенье, 09.09.2012, 20:01


Дратуте, мыня довут М`дет...
SLAwww Воскресенье, 09.09.2012, 20:18 | Сообщение # 1593


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
МегаМозг, насколько помню, там есть внеклассовые функции GetMaxHealth и GetTopHealth, тебе надо заменить их вызовы на обращения к переменным (создать переменные m_fMaxHealth и m_fTopHealth), затем обращаться к ним у объекта игрока, допустим, ((CPlayer*)GetPlayerEntity(0))->m_fMaxHealth=150.0f;.
Serious_Master, нужно много кодить. =Р


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.
МегаМозг Воскресенье, 09.09.2012, 21:51 | Сообщение # 1594


Сообщений: 444
Награды: 3
Замечания: 0%
 
SLAwww, Так попробую утром) СПС) :)

Мои работы....


Увлекаешься дядей сэдом? Тогда тебе >>сюда<<!
art-serious Воскресенье, 09.09.2012, 22:05 | Сообщение # 1595


Старый маппер
Сообщений: 652
Награды: 29
Замечания: 0%
 
Quote (Serious_Master)
чтобы HUD был а-ля DooM или Duke Nukem 3D

Отредактировать HUD.cpp

Если интересно, могу свою нароботку выложить
Сообщение отредактировал art-serious - Воскресенье, 09.09.2012, 22:07


[ zc-lab.org ] [ Операция "Новый год" - 40% ]
МегаМозг Понедельник, 10.09.2012, 11:24 | Сообщение # 1596


Сообщений: 444
Награды: 3
Замечания: 0%
 
Quote (SLAwww)
((CPlayer*)GetPlayerEntity(0))->m_fMaxHealth=150.0f;.

SLAwww, Т.е. Таким образом можно изменять "на ходу" скорость бега, размер, текстуры и атачменты?


Мои работы....


Увлекаешься дядей сэдом? Тогда тебе >>сюда<<!
CAHEK Понедельник, 10.09.2012, 12:26 | Сообщение # 1597


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

Main(EVoid) {
      if (m_EecChar==EYC_SOLDIER) {
         m_EecChar=EYC_SOLDIER;  }

if (m_EecChar==EYC_XXX)
    {
autowait(0.1f);
       switch (IRnd()%20) {
case 0:  m_EecChar=EYC_SOLDIER; break;
case 1:  m_EecChar=EYC_SERGEANT; break;
     case 2:  m_EecChar=EYC_Z2; break;
case 3:  m_EecChar=EYC_Z3; break;
………………………….
     case 20:  m_EecChar=EYC_Z20; break;
    }
}
switch (m_EecChar) {
case SOLDIER
тут идут характеристики врага
Сообщение отредактировал CAHEK - Понедельник, 10.09.2012, 12:31


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


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
МегаМозг, да.

CAHEK, во-первых:
Code
if (m_EecChar==EYC_SOLDIER) {  
     m_EecChar=EYC_SOLDIER;  }

Это зачем? Убери. Во-вторых, autowait(0.1f); должен стоять перед if(m_EecChar==EYC_XXX). А ещё раньше должно стоять присвоение врагу модели и текстуры. Если у него в редакторе не будет модели и текстуры, он будет каждый раз вылетать, поэтому назначь любую, а уже после начала игрового времени модель, текстура и другие параметры будут меняться. В-третьих, последним будет не case 20:, а case 19:, и после него ещё default: (можно вместо 19-го). Во втором свитче убедись, что не забыл ни одного ключевого слова break.


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.
SeriousAlexej Понедельник, 17.09.2012, 23:30 | Сообщение # 1599


Serious Editor
Сообщений: 1246
Награды: 52
Замечания: 0%
 
У меня вопрос - каким способом можно пройтись по массиву всех клавиш клавиатуры и послать эвент **поднять клавишу**, если она зажата?

Нашел вот такой пример, но он не работает :(
Code
unsigned char KeyStates[256];
GetKeyboardState(KeyStates);
   
for (int i = 0; i < 256; i++)
{
       if (KeyStates[i] & 0x8000)
       {
     keybd_event(i, 0, KEYEVENTF_KEYUP, 0);
       }
}


И этот...
Code
DWORD i        = 0x00;

     do
     {
         if( GetAsyncKeyState(i)&0x1 )
         keybd_event(i, 0, KEYEVENTF_KEYUP, 0);

         i++;
     }
     while( i < 0xFF );


А перебирать вручную все идентификаторы виртуальных клавиш - слишком громоздко и нелепо(


SLAwww Вторник, 18.09.2012, 00:45 | Сообщение # 1600


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

Просто поменять значение ctl_-переменной можно через _pShell->Execute.


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.
SeriousAlexej Вторник, 18.09.2012, 00:50 | Сообщение # 1601


Serious Editor
Сообщений: 1246
Награды: 52
Замечания: 0%
 
Я менял, но поскольку виртуальная клавиша все равно зажата, то переменная через момент опять == 1

SLAwww Вторник, 18.09.2012, 04:53 | Сообщение # 1602


Рряа? ^..^
Сообщений: 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.
SeriousAlexej Вторник, 18.09.2012, 09:11 | Сообщение # 1603


Serious Editor
Сообщений: 1246
Награды: 52
Замечания: 0%
 
Проблема в том, что залипать могут все клавиши, а не только кнопки управления. Т.е. по-настоящему я клавишу не держу, но она для компьютера она в зажатом состоянии. Просто сообщения о поднятии клавиши отправляются не SeriousSam.exe, а другому приложению, а когда Сэм вновь стает активной задачей, клавиши залипают. Приходится их зажать и отпустить, что бы послать сообщение о поднятии кнопки. Так что останавливать игрока насильно с помощью SetDesiredTranslation/Rotation бесполезно. Вот я и пытаюсь найти способ полегче, что бы послать всем клавишам KEYEVENTF_KEYUP

Добавлено (18.09.2012, 09:11)
---------------------------------------------
мм... Надо попробовать сделать цикл где числа от 1 до 254 переводятся в НЕХ и послать им KEYEVENTF_KEYUP...

МегаМозг Вторник, 18.09.2012, 10:08 | Сообщение # 1604


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

Мои работы....


Увлекаешься дядей сэдом? Тогда тебе >>сюда<<!
CAHEK Вторник, 18.09.2012, 11:59 | Сообщение # 1605


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

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


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
SeriousAlexej, такое не должно происходить. Даже если другое приложение повесило клавиатурный крюк, оно будет передавать сигналы нажатия клавиш остальным приложениям, если специально не сделать обратное. Проверь свою систему на вирусы. Что касается Сэма - можешь изменить метод ApplyAction у CPlayer, он в качестве аргумента принимает ссылку на объект класса CPlayerAction, ты можешь просто изменять содержимое этого объекта до того, как он будет интерпретирован и преобразован в действие игрока.

МегаМозг, _pShell->GetINDEX(m_strParam) вернёт 1, если, допустим, m_strParam - это "ctl_bMoveForward", и зажата кнопка движения вперёд (если не зажата - вернёт 0). Просто совершай эту проверку в цикле. Это самый лёгкий способ, без возни с классом игрока.

CAHEK, ты это серьёзно? -_- Может, у тебя две разных сущности, а не просто две функции?


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.
МегаМозг Среда, 19.09.2012, 11:07 | Сообщение # 1607


Сообщений: 444
Награды: 3
Замечания: 0%
 
SLAwww, Т.е. нужно ещё создавать доп кнопки "да" и "нет", если я хочу диалог?)

Мои работы....


Увлекаешься дядей сэдом? Тогда тебе >>сюда<<!
SLAwww Среда, 19.09.2012, 20:27 | Сообщение # 1608


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Нет, нужно создать энтити, которая будет в цикле проверять _pShell->GetINDEX(m_strParam).

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 Пятница, 21.09.2012, 12:28 | Сообщение # 1609


Сообщений: 794
Награды: 16
Замечания: 0%
 
В строке кода когда в котором добавляешь детализированную текстуру есть еще два нуля. Как я понял это тоже какие-то текстуры. Вопрос: Какой ноль какую текстуру дает.

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


Рряа? ^..^
Сообщений: 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.
CAHEK Среда, 26.09.2012, 15:23 | Сообщение # 1611


Сообщений: 794
Награды: 16
Замечания: 0%
 
И еще вопрос.
Где прописаны системы частиц (Particles.es я не обнаружил)


Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
Wynerros Четверг, 27.09.2012, 11:18 | Сообщение # 1612


Ground Angel
Сообщений: 3108
Награды: 9
Замечания: 20%
 
Ищи исходник Particles.cpp в папке Entities\Common.

До сих пор в топе загрузок и просмотров...
Неужели я тоже оставил свой след на этом сайте? А ведь я здесь уже целых двенадцать лет...
Удалил свои старые карты из профиля, на кой они мне. Маппер из меня никудышный.


Мое железо:
CPU - Ryzen 7 2700x
MB - MSI B450M Mortar Max
RAM - 2x16 ADATA XPG GAMMIX D20 3200 mhz
GPU - Palit RTX 2060 StormX 6g
CAHEK Понедельник, 01.10.2012, 19:05 | Сообщение # 1613


Сообщений: 794
Награды: 16
Замечания: 0%
 
Понял.
Я сделал с нуля новые патроны для песта (чтобы они кончались) все хорошо, но невидно количество оставшихся патронов, несмотря на то, что когда они кончаются оружие меняется.

Как зовут систему частиц крови.

Ну и еще.
Я сделал ствол с нуля но при этом столкнулся с ограничением количества видов оружия. Как его убрать.
Сообщение отредактировал CAHEK - Понедельник, 01.10.2012, 19:07


Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
Serious_Master Среда, 03.10.2012, 18:05 | Сообщение # 1614


Сообщений: 19
Награды: 0
Замечания: 0%
 
А как можно сделать так, чтобы при прыжке в воду с огнеметом в руках этот самый огнемет убирался (ибо не будет он под водой работать) и выбиралось другое оружие, например дробовик. Есть идеи?

Дратуте, мыня довут М`дет...
SLAwww Среда, 03.10.2012, 18:46 | Сообщение # 1615


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
GetWorld()->wo_actContentTypes[en_iDnContent].ct_ulFlags&CTF_SWIMABLE CMovableEntity вернёт true, если объект находится в секторе с возможностью плавания. Работает только для наследников CMovableEntity, то есть, подходит для CPlayer.

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 Четверг, 04.10.2012, 12:45 | Сообщение # 1616


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

Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
SLAwww Четверг, 04.10.2012, 15:14 | Сообщение # 1617


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Самый простой способ - _pShell->GetINDEX("ctl_bMyButton") возвращает 1 или 0 в зависимости от того, нажата ли ctl_bMyButton.

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.
seriously_petr Четверг, 04.10.2012, 15:15 | Сообщение # 1618


Сообщений: 446
Награды: 4
Замечания: 0%
 
CAHEK, Смотри CPlayer, например клавишу хода в одну из сторон или супербомбы.

SeriousSasha Пятница, 05.10.2012, 16:57 | Сообщение # 1619


Сообщений: 478
Награды: 8
Замечания: 0%
 
добрый день всем работающим с сдк, когдато давно я к вам заходил и вы мне обьястняли как сварить все скрипты в DLL и прочие тонкости и ньюансы, но это было очень давно и я уже не помню где страница с этим вопросом... Воообщем я решил попробовать 2 раз изучить СДК, хоть это и не моя стихия, поэтому я хотелбы когонибуть из опытных людей попросить сделать сдесь статью по СДК на основы, тоесть: что надо для работы с ним, где это все брать, как настраивать директорий чтобы сделать DLL и так и далее. Скажу что у меня уже есть сдк но я не знаю как создать рабочее место, и ещё вопрос есть косательно сдк, программа "Code Blocks" подоидет для моих целей?
Сообщение отредактировал SeriousSacha - Пятница, 05.10.2012, 16:58




Моя страница на DeviantArt.
Мой Twitter.

Я постоянно пересматриваю ModОсмотР... И жду чуда...
Serious_Master Пятница, 05.10.2012, 17:16 | Сообщение # 1620


Сообщений: 19
Награды: 0
Замечания: 0%
 
Code Blocks не подойдет. Используй это http://st-games.ucoz.net/publ....2-1-0-1 и да пребудет с тобой сила и внимательность, ибо это уже было освещено сто раз.
Сообщение отредактировал Serious_Master - Пятница, 05.10.2012, 17:18


Дратуте, мыня довут М`дет...
Поиск: