Новые сообщения Участники Правила Поиск
Помощь по SDK для Serious Sam 1.05/1.07
N3K0K0T3 Четверг, 26.12.2013, 22:08 | Сообщение # 1921


Сообщений: 395
Награды: 3
Замечания: 0%
 
Сообщение отредактировал N3K0K0T3 - Четверг, 26.12.2013, 22:11


Fallgor Четверг, 26.12.2013, 22:15 | Сообщение # 1922


Сообщений: 410
Награды: 0
Замечания: 20%
 
N3K0K0T3, ага,называется deathrun,+ в кс можно делать двойной прыжок,
не думаю что в Сэме он пригодится,но было бы круче


хочу чеснок
shadow_tin Пятница, 27.12.2013, 00:20 | Сообщение # 1923


Сообщений: 164
Награды: 6
Замечания: 0%
 
Вам правила угла недостаточно, вижу. -_-


"Просто у него окрепшая физика, а ты ещё не дорос..."
SLAwww Суббота, 28.12.2013, 02:23 | Сообщение # 1924


Рряа? ^..^
Сообщений: 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.
NucaCat Понедельник, 06.01.2014, 16:26 | Сообщение # 1925


Сообщений: 46
Награды: 2
Замечания: 0%
 
Мне нужно чтобы из рокет лаунчера вылетало 4 ракеты, но не в одном месте, а рядом как бы по углам квадрата. Может кто нибудь написать код, кому это не составит больших усилий. Скомпилировать я сам смогу.

SLAwww Понедельник, 06.01.2014, 19:52 | Сообщение # 1926


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Скомпилировать все могут. =Р
В PlayerWeapons есть функция:
Код
// fire rocket
   void FireRocket(void) {
     // rocket start position
     CPlacement3D plRocket;
     CalcWeaponPosition(
       FLOAT3D(wpn_fFX[WEAPON_ROCKETLAUNCHER],wpn_fFY[WEAPON_ROCKETLAUNCHER], 0),  
       plRocket, TRUE);
     // create rocket
     CEntityPointer penRocket= CreateEntity(plRocket, CLASS_PROJECTILE);
     // init and launch rocket
     ELaunchProjectile eLaunch;
     eLaunch.penLauncher = m_penPlayer;
     eLaunch.prtType = PRT_ROCKET;
     penRocket->Initialize(eLaunch);
   };

Всё, что тебе нужно - скопировать её содержимое три раза, только исправить имена переменных, чтобы не повторялись, ну и выставить разные координаты для каждой ракеты (передавать разные значения в CalcWeaponPosition).


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.
NucaCat Вторник, 07.01.2014, 12:42 | Сообщение # 1927


Сообщений: 46
Награды: 2
Замечания: 0%
 
Большое спасибо, все получилось. Я думал, что у меня с моими то знаниями ничего не выйдет.

CAHEK Воскресенье, 12.01.2014, 13:57 | Сообщение # 1928


Сообщений: 794
Награды: 16
Замечания: 0%
 
Как написать проверку дитсанции от врага до игрока. Проверна находится в scorpman.es

Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
Heming_Hitrowski Воскресенье, 12.01.2014, 15:02 | Сообщение # 1929


Double Jumper
Сообщений: 887
Награды: 32
Замечания: 0%
 
FLOAT fDistance = (m_penEnemy->GetPlacement() - GetPlacement()).Length();
вроде так


SeriousAlexej Воскресенье, 12.01.2014, 15:39 | Сообщение # 1930


Serious Editor
Сообщений: 1246
Награды: 52
Замечания: 0%
 
Heming_Hitrowski, надо получать не всю позицию, а только местонахождение. Правильнее будет так:
FLOAT fDistance = (m_penEnemy->GetPlacement().pl_PositionVector - GetPlacement().pl_PositionVector).Length();


CAHEK Воскресенье, 12.01.2014, 16:20 | Сообщение # 1931


Сообщений: 794
Награды: 16
Замечания: 0%
 
Пробую так.
if ( fDistance > 20)
Выдает ошибку

Добавлено (12.01.2014, 16:17)
---------------------------------------------
И ещё. Как менять радиус и громкость звука у врага.

Добавлено (12.01.2014, 16:20)
---------------------------------------------
Про дистанцию спасибо работает. Осталось со звуком.

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


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Какую ошибку? Покажи код. А по поводу параметров звука, ищи строку m_soSound.Set3DParameters или как-то так.

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.
Heming_Hitrowski Пятница, 17.01.2014, 19:56 | Сообщение # 1933


Double Jumper
Сообщений: 887
Награды: 32
Замечания: 0%
 
Впилил поддержку .ini файлов.
Создаю файл, который заполняется при старте игрока. В итоге у меня отличаются значения у клиента и у сервера:

Server:

server INDEX: 3
client INDEX: 3

Client:

Server INDEX: -10495252
client INDEX: 3
client INDEX: 2559252

как добиться идентичности этих значений?


SLAwww Пятница, 17.01.2014, 21:38 | Сообщение # 1934


Рряа? ^..^
Сообщений: 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.
Heming_Hitrowski Суббота, 18.01.2014, 08:43 | Сообщение # 1935


Double Jumper
Сообщений: 887
Награды: 32
Замечания: 0%
 
/* load variables from ini file */
void LoadInventory() {
string strInv = ".\\Inventory.ini";
const UBYTE MAX_ID = 255;
UBYTE i = 0;
UBYTE b = 0;
for (i = 0; i<MAX_ID; i++) {

switch (i) {
// red guardian barret
case 1:
if (CIniFile::GetValue("RG BARR", "INVENTORY", strInv) == "TRUE") {
//GetPlayerWeapons()->ConfirmTexture(WEAPON_BARRET, WT_RED_GUARDIAN);
arr_invItems[i] = TRUE;
arr_iItems[b] = i;
b++;

}
break;

case 2:
if (CIniFile::GetValue("RG KNIFE", "INVENTORY", strInv) == "TRUE") {
//GetPlayerWeapons()->ConfirmTexture(WEAPON_KNIFE, WT_RED_GUARDIAN);
arr_invItems[i] = TRUE;
arr_iItems[b] = i;
b++;
}
break;

case 3:
if (CIniFile::GetValue("CR M4A1", "INVENTORY", strInv) == "TRUE") {
arr_invItems[i] = TRUE;
arr_iItems[b] = i;
b++;
}
break;

case 4:
if (CIniFile::GetValue("CR SPAS-12", "INVENTORY", strInv) == "TRUE") {
arr_invItems[i] = TRUE;
arr_iItems[b] = i;
b++;
}
break;

case 100:
if (CIniFile::GetValue("THE CRE", "INVENTORY", strInv) == "TRUE") {
arr_invItems[i] = TRUE;
arr_iItems[b] = i;
b++;
}
break;

case 101:
if (CIniFile::GetValue("AR2R", "INVENTORY", strInv) == "TRUE") {
arr_invItems[i] = TRUE;
arr_iItems[b] = i;
b++;

}
break;

case 102:
if (CIniFile::GetValue("KOTE", "INVENTORY", strInv) == "TRUE") {
arr_invItems[i] = TRUE;
arr_iItems[b] = i;
b++;
}
break;

case 103:
if (CIniFile::GetValue("ART-SERIOUS", "INVENTORY", strInv) == "TRUE") {
arr_invItems[i] = TRUE;
arr_iItems[b] = i;
b++;
}
break;

}
}
GetRareItems();
return;
};

/* how much id's player have */
void GetRareItems(void) {

const UBYTE MAX_ID = 255;
uIDs_NOW = 0; // how much rare items player have
UBYTE i; // for "for"

for (i = 0; i<MAX_ID; i++) {
if (arr_invItems[i] == TRUE) {
uIDs_NOW++;
}
}

return;
};

uIDs_NOW отличаются
Сообщение отредактировал Heming_Hitrowski - Суббота, 18.01.2014, 13:09


SLAwww Суббота, 18.01.2014, 19:52 | Сообщение # 1936


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Похоже на то, что массив arr_invItems не заполняется значениями FALSE в начале. В памяти по этому адресу может находиться любой мусор. Как вариант - можно в switch добавить обработчик состояния по умолчанию:
Код
default: { arr_invItems[i] = FALSE; 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.
Heming_Hitrowski Суббота, 18.01.2014, 22:08 | Сообщение # 1937


Double Jumper
Сообщений: 887
Награды: 32
Замечания: 0%
 
SLAwww, я забыл упомянуть функцию, которая выполняется до этого. Я с самого начала забил массивы нулями. Скидываю весь код фунции, на всякий случай.

/* Create Player Inventory if not exists */
void CreateInventory() {
string strInv = ".\\Inventory.ini";
arr_invItems.New(255);
arr_iItems.New(255);

if (_IsFileExists(".\\Inventory.ini")) {
CPrintF("File Exists\n");
LoadInventory();
return;
}
INDEX i;
// we don't have any items
for (i=0; i<255; i++) {
arr_invItems[i] = FALSE;
arr_iItems[i] = 0; // no id's
}

//###########################//
// //
// C O N T E N T //
// //
//###########################//
/*
& CATEGORY : WEAPONS

# ID # # NAME #
1. RED GUARDIAN BARRET
2. RED GUARDIAN KNIFE
3. CONTADOR M4A1
4. CONTADOR SPAS-12

& CATEGORY : SKINS
100. DEFAULT THE GRAND FIGHTER
101. THE CRE
102. AR2R-DEVIL-PINKY
103. KOTE THE MEDIC
104. ART-SERIOUS
*/

if (CIniFile::Create(strInv)) {
CPrintF("File created!\n");
CIniFile::SetValue("RG BARR", "TRUE", "INVENTORY", strInv);
CIniFile::SetValue("RG KNIFE", "TRUE", "INVENTORY", strInv);
CIniFile::SetValue("CR M4A1", "TRUE", "INVENTORY", strInv);
CIniFile::SetValue("CR SPAS-12", "TRUE", "INVENTORY", strInv);
//CIniFile::SetValue("", "FALSE", "INVENTORY", strInv);

CIniFile::SetValue("THE CRE", "TRUE", "INVENTORY", strInv);
CIniFile::SetValue("AR2R", "TRUE", "INVENTORY", strInv);
CIniFile::SetValue("KOTE", "TRUE", "INVENTORY", strInv);
CIniFile::SetValue("ART-SERIOUS", "TRUE", "INVENTORY", strInv);
//CIniFile::SetValue("", "FALSE", "INVENTORY", strInv);
//CIniFile::SetValue("", "FALSE", "INVENTORY", strInv);
} else {
FatalError("Mistakes with creating inventory file");
}
LoadInventory();
return;
};
Сообщение отредактировал Heming_Hitrowski - Суббота, 18.01.2014, 22:10


SLAwww Суббота, 18.01.2014, 22:28 | Сообщение # 1938


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
А почему GetValue и SetValue статические? Можно ведь передавать путь к файлу аргументом конструктора твоего CIniFile. Это было бы логично. И почему в одном месте у тебя есть константа MAX_ID, а в другом просто число 255? Поставь везде эту константу, и чтобы она задавалась в единственном месте.
Если только выполнить CreateInventory(), то созданный файл у всех выглядит одинаково?


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.
Heming_Hitrowski Воскресенье, 19.01.2014, 11:07 | Сообщение # 1939


Double Jumper
Сообщений: 887
Награды: 32
Замечания: 0%
 
Цитата
А почему GetValue и SetValue статические? Можно ведь передавать путь к файлу аргументом конструктора твоего CIniFile. Это было бы логично. И почему в одном месте у тебя есть константа MAX_ID, а в другом просто число 255? Поставь везде эту константу, и чтобы она задавалась в единственном месте.


Окей, пофиксил.

Файлы идентичны, да. Выяснилось, что значения uIDs_NOW умудряются меняться даже во время игры. Интересно, в чем тут дело, ведь у сервера все в порядке.
Прикрепляю дебаггер с ошибкой, если тебе это что-нибудь скажет. Это произошло тогда, когда я попытался выбрать предмет сервером. Клиент вылетел с ошибкой.

Прикрепления: 7567160.jpg (147.5 Kb)
Сообщение отредактировал Heming_Hitrowski - Воскресенье, 19.01.2014, 11:12


SLAwww Воскресенье, 19.01.2014, 16:40 | Сообщение # 1940


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Это говорит о том, что каким-то образом команда arr_iItems.New(255); вообще не была вызвана, и размер массива нулевой. Откуда именно у тебя вызывается функция, заполняющая этот массив?

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.
Heming_Hitrowski Воскресенье, 19.01.2014, 18:18 | Сообщение # 1941


Double Jumper
Сообщений: 887
Награды: 32
Замечания: 0%
 
SLAwww, в игроке, при FirstInit()

Heming_Hitrowski Воскресенье, 19.01.2014, 19:44 | Сообщение # 1942


Double Jumper
Сообщений: 887
Награды: 32
Замечания: 0%
 
Попытаюсь перенести весь инвентарь в отдельный класс, возможно это как-то поможет.
____
Помогло! Спасибо за наводки!
Сообщение отредактировал Heming_Hitrowski - Воскресенье, 19.01.2014, 20:24


CAHEK Вторник, 21.01.2014, 11:06 | Сообщение # 1943


Сообщений: 794
Награды: 16
Замечания: 0%
 
Как сделать чтобы урон принимал не скайбокс модели, а скайбокс атачмента.
Ситуация 1. Враг имеет модель внешне схожую с биомеханоидом. Когда стреляешь между ног, то врагу вписывают урон, хотя видно что на самом деле промах. Поднял скайбокс повыше. Модель стала проваливаться под пол. Думал решить проблему двумя скайбоксами. Первый отвечает за не проваливание под пол (высоту ноль, а ширину по 0,1 поставил), а теперь скайбокс по урону не могу поставить.
Ситуация 2. Хотелось реализовать врага с щитом. Предположил добавить атачмент со скайбоксом со здоровьем 999999999999


Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
Ar2R-devil-PiNKy Вторник, 21.01.2014, 15:28 | Сообщение # 1944


Creative virtuoso
Сообщений: 3740
Награды: 58
Замечания: 
 
CAHEK,

Прикрепления: 9623199.png (131.3 Kb)


Мои работы
Psych Вторник, 21.01.2014, 16:04 | Сообщение # 1945


I'M NOT A DRAGON!!11
Сообщений: 1961
Награды: 8
Замечания: 0%
 
Коллижнбокс может? Проклятые англицизмы, можно же проще: "Ну кароч посоны такая типо коробка невидимая"

Каждый человек - это небольшая Вселенная, а познать Вселенную - невозможно. © Psych
CAHEK Вторник, 21.01.2014, 17:38 | Сообщение # 1946


Сообщений: 794
Награды: 16
Замечания: 0%
 
Простите. Не скайбокс, а колюжион бокс.

Добавлено (21.01.2014, 17:38)
---------------------------------------------
То что на скрне я бэкграундом считал, а альтернативное название не использовал

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


Рряа? ^..^
Сообщений: 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 Среда, 22.01.2014, 09:37 | Сообщение # 1948


Сообщений: 794
Награды: 16
Замечания: 0%
 
Интересно, а как тогда был реализован хедшот в моде The Grand Plague. Мне кроме коллижна у атачмента ничего в голову неприходит.

Добавлено (22.01.2014, 09:37)
---------------------------------------------
У атачмента не может быть своего коллижна т.к. нет кужных исходников ?

Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
SLAwww Среда, 22.01.2014, 21:48 | Сообщение # 1949


Рряа? ^..^
Сообщений: 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.01.2014, 20:21 | Сообщение # 1950


Сообщений: 794
Награды: 16
Замечания: 0%
 
Ситуация 1.
Я по инструкциям написанным на форуме сделал союзников (основа Х-бокс мод) Для того сделать чтобы при нажатии клавиши союзник пошел по енему маркерам я сделал в "енему базе" проверку на нажатие клавиши. Но куда вставить эту проверку я не знаю. максимум что у меня получалось это при самом старте игры удерживать клавишу и только тогда союзник пошел по маркерам.

Ситуация 2. Как заставить союзника при нажатии клавиши бегать за тобой ?


Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
Поиск: