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

Страница 67 из 91«1265666768699091»
Модератор форума: SLAwww, thecre, RealCrazyMan 
Форум » Serious Sam » Серьёзное редактирование » Помощь по SDK для Serious Sam 1.05/1.07 (Вопросы по комплекту средств разработки для Serious Sam 1.)
Помощь по SDK для Serious Sam 1.05/1.07
Fallgor Четверг, 19.12.2013, 14:11 | Сообщение # 1981


Сообщений: 334
Награды: 0
Замечания: 40%
 
Цитата CAHEK ()
несколько типов сигнала.

это типа trigger event или event type?


коксакер
CAHEK Четверг, 19.12.2013, 15:27 | Сообщение # 1982


Сообщений: 698
Награды: 7
Замечания: 0%
 
Да, но как я понял эти типы отвечают за то как будет вести себя ентия. А вот как сделать свои типы на которые будет отвечать свой "Target"

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


Рряа? ^..^
Сообщений: 2366
Награды: 28
Замечания: 0%
 
Не понимаю, для чего это нужно. Стандартный ETrigger нежелательно менять, но при желании, можно вот так:
В списке переменных:
...
10 INDEX m_iTriggerEventType "Trigger event type" = 0,
...
В обработчиках событий:
...
on (ETrigger eTrigger) {
if (IsOfClass(eTrigger.penCaused, "Trigger")) {
CTrigger* penOtherTrigger = (CTrigger*)(&(*(eTrigger.penCaused)));

// Далее проверяем m_iTriggerEventType у триггера, отправившего ивент
if (penOtherTrigger->m_iTriggerEventType == m_someValue) {
...
}
}
}

Но по-хорошему, для разных событий нужно создавать разные ивенты. Они всегда описываются в начале ES-файла.


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 Пятница, 20.12.2013, 09:42 | Сообщение # 1984


Сообщений: 698
Награды: 7
Замечания: 0%
 
Я хочу реализовать такие ситуации ну например... При нажатии одной из 5 кнопок враг будет выполнять опр. функцию. Которая прописана у него. К примеру: При типе сигнала "1" враг будет вести себя одним образом, а когда получит сигнал с типом "2" то его тактика действий изменится.
Естественно для этих целей будет создана новая ентия на базе классического тригера.


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


Рряа? ^..^
Сообщений: 2366
Награды: 28
Замечания: 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 Суббота, 21.12.2013, 08:22 | Сообщение # 1986


Сообщений: 698
Награды: 7
Замечания: 0%
 
Здесь понятно. Я не могу приписать что бы при типе сигнала "1" срабатывала функция 1. Сами функции есть а вот как их включить я не знаю.

Всё очень серьёзно.
P.S. Не пишите мне на Email, пишите в Л.С.
Heming_Hitrowski Суббота, 21.12.2013, 13:00 | Сообщение # 1987


Double Jumper
Сообщений: 817
Награды: 23
Замечания: 0%
 
Для начала пропишем сам ивент
event ECAHEK {
INDEX i_nFunction,
};

потом в обработчике событий пиши

on (ECAHEK eCAH) : {
if (eCAH.i_nFunction == 1) {
Function1();
}
if (eCAH.i_nFunction == 2) {
AnotherFunction();
}
resume;
}

Посылается этот эвент вот так:

ECAHEK eCAH;
eCAH.i_nFunction = n; // где n желаемое число
penSomeEntity->SendEvent(eCAH);


Ev3nmorn Четверг, 26.12.2013, 09:43 | Сообщение # 1988


Сообщений: 87
Награды: 4
Замечания: 0%
 
Товарищи, serious engine 1 действительно великий, но меня очень огорчает прыжок, он портит весь движок в целом, как по мне :C
В теории, возможно ли в сдк сделать хороший, приближенный к квейку прыжок? Даже без распрыжки хотя бы. Или исходники физики закрыты?


SLAwww Четверг, 26.12.2013, 21:38 | Сообщение # 1989


Рряа? ^..^
Сообщений: 2366
Награды: 28
Замечания: 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.
attar Четверг, 26.12.2013, 21:56 | Сообщение # 1990


Сообщений: 12
Награды: 0
Замечания: 20%
 
SLAwww, "прыжок до небес" бхехе

azazazaz
N3K0K0T3 Четверг, 26.12.2013, 22:03 | Сообщение # 1991


Сообщений: 395
Награды: 2
Замечания: 0%
 
SLAwww,
"Гравитация - 800 wu/с2
Скорость при беге игрока - 320 wu/с
Скорость при прыжке - 270 wu/с
"
Имеется ввиду распрыг, не иначе.


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


Сообщений: 334
Награды: 0
Замечания: 40%
 
N3K0K0T3, так и скорость передвижения игрока тогда должна быть выше

Добавлено (26.12.2013, 22:07)
---------------------------------------------
омг что я несу

коксакер
N3K0K0T3 Четверг, 26.12.2013, 22:08 | Сообщение # 1993


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


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


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


коксакер
N3K0K0T3 Четверг, 26.12.2013, 22:19 | Сообщение # 1995


Сообщений: 395
Награды: 2
Замечания: 0%
 
У меня в принципе есть идея, как осуществить данный прыжок.Нужен GravityMarker + повышенная скорость персонажа (которую скорее всего можно изменить с помощью SDK).

shadow_tin Пятница, 27.12.2013, 00:20 | Сообщение # 1996


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


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


Рряа? ^..^
Сообщений: 2366
Награды: 28
Замечания: 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 | Сообщение # 1998


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

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


Рряа? ^..^
Сообщений: 2366
Награды: 28
Замечания: 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 | Сообщение # 2000


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

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


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

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


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


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


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



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


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

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

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

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


Рряа? ^..^
Сообщений: 2366
Награды: 28
Замечания: 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 | Сообщение # 2006


Double Jumper
Сообщений: 817
Награды: 23
Замечания: 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 | Сообщение # 2007


Рряа? ^..^
Сообщений: 2366
Награды: 28
Замечания: 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 | Сообщение # 2008


Double Jumper
Сообщений: 817
Награды: 23
Замечания: 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 | Сообщение # 2009


Рряа? ^..^
Сообщений: 2366
Награды: 28
Замечания: 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 | Сообщение # 2010


Double Jumper
Сообщений: 817
Награды: 23
Замечания: 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


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