Можно его и просто летающим сделать, а щупальца пусть болтаются
да вобще-то так и есть... Если сделать упор полностью на щупальца, они вообще не выдержывают + в десятки сложнее система управления, уже молчу о том что оно будет даже не передвигатса а "смещатса". А вообще, если-бы не эта "excesive joint error, destroing ragdoll" все бы было ок, так как в кат-е рагдол симулируетса норм. Да есть ошыбки, но не удалять же его через это?
ЦитатаUberSoldier ()
правильный ход, это анимация
так это и есть анимацыя, в которой положение костей не записано как видео "кадрами", а расчитываетса физическим движком. Заменить этот физический двиг своим - это сделать математическую модель ног, менять полностью реф-позу в 0, и просто задавать положение костей, что доступно и из скрипта.... но там даже для двух 4-костных ног расчетов получалось столько что... а тут 3 ноги по 12 костей... неа.
Добавлено (01 Апреля 15, 15:51) --------------------------------------------- Все, доделываю эту хрень, и все. Асалт карту в топку, так как там 30% окружения без самой карты жрет фпс до 20. Может еще сделаю одну-две простых дм карты на булетстормовском контенте (жалко просто удалять) и все. Ну с 2004 все. Ато так можна вечность продолжать.
Ну да, может когда нибудь исходники если дадут, то можно будет наростить ещё что нибудь. Хотя к тому времени все перейдут на другие двиги, всегда хотел модить Генералы, но там баганный двиг, ща незнаю, займусь ремонтом машин наверно
Infinite War v5.0.2 construction UIP 2.0 - UIPP(UIP 2.1)
Не, ну фанаты чего-либо и так это что-либо перетащат если он им надо... я тоже когда-то задумывалса сделать клон/порт ут2004 на третий движок... ага... Со временем постоянно прихожу к заключению что гораздо интересней вложыть усилия в что-то новое чем заниматса репликацыей чего либо, или еще хуже переносом контента на другой платформа движок. Тем более когда свободного времени постоянно убавляетса, ну как тут не "бросить". Идеи и основной концепт же никто не выкидывает, а юзать старый контент это исключительно как "ностальгия". Я лично делаю что-либо под тему "из другой игры" так как банально юзаю оттуда контент и общий стиль, и подавать это как что-то новое ну уж слишком не чесно. А какой контент можно обосновано взять из ут2004 для четвертого движка без ностальгической отсылки к самому ут2004?
Ну GP тут прав, не поспоришь, единственное что добавлю... Даже если у меня был бы мощный комп, я бы все равно не перешел бы на 4й движок, того что создали на 2004й больше не создадут...
Infinite War v5.0.2 construction UIP 2.0 - UIPP(UIP 2.1)
Добавлено (03 Апреля 15, 01:53) --------------------------------------------- UnShame, ну знаешь, некоторые карты очень хороши, просто ради них хочется зайти в тукей и поиграть на них, есть также и интересная техника только тут, ну и есть в конце концов куча интересных триалов, чего нет и не будет в том же виде в новом УТ из-за другой системы передвижения. Наверняка что-то и будет, но уже другое. А сделав на новом движке похождую основу (система передвижения, оружие, в частности Shield Gun) можно и старый контент вернуть, даже в том самом кубическом виде, не добавляя чего-то нового. Например я большой фанат этой карты для УТ99. Уж очень занятный триал, а добравшийся первее всех станет победителем.
Мой IP сменился с 89.113.234.78/185.42.146.32 на 83.167.1.167. Теперь будет этот. Надолго. Порты те же. http-сервер .do impossible beat unbeatable
в том самом кубическом виде, не добавляя чего-то нового
не имеет смысла, потому-что оно уже есть в таком виде - бери да играй, для этого не надо брать старое железо или ставить дос (даже в таких случаях есть эмуляторы всего чего хочеш). А новый движок для того и есть что он новый. Зачем копировать старый мод, если можно сделать новый, собрать в него идеи по вкусу и вперед. А копировать саму игру... ну она как-бы... уже есть... вот.
Добавлено (04 Апреля 15, 01:33) ---------------------------------------------
ЦитатаUberSoldier ()
я даже не видел такго в ут3
А это. Как я мог забить про это, его ведь тоже нет. Кстати похоже, самая недооцененная техника в ут3.
Добавлено (04 Апреля 15, 01:42) --------------------------------------------- Если вдруг кто не помнит/не знает как оно роботает
Добавлено (04 Апреля 15, 01:47) --------------------------------------------- Ну блин, и летающей фурии тоже нет. Из некрисовской техники самого толкового-то и нет.
У меня такой вопрос, как ботов заставить использовать что либо? Например есть артефакты с рпг, требуют адреналин, но боты почему то ими не пользуются, хотя код на использования для них написан, есть варианты как заставить их принудительно юзать, сделать как бы повышенный приоритет по сравнению с Адреналин комбо или тому подобное?
Infinite War v5.0.2 construction UIP 2.0 - UIPP(UIP 2.1)
Все зависит от того, что нужно сделать, чтоб активировать артефакт. Если кнопка, то у всех артефактов при нажатии должна вызыватса одна и та-же функцыя, или она вызываетса в общем коде, который все контролирует (комбинацыии движений при комбо ?). В любом случае надо знать наверняка что и когда происходит, тогда будет понятно что делать. Другими словами нужен весь код, а с описания результата понять как там внутри все роботает нужен экстрасенс.
Ну вот как то так если поймешь. Я там нахимичил с вызовом эффекта когда арифакт в инвентаре. Используется он на клавишу использования артефакта.
Код
class ArtifactTripleDamage extends RPGArtifact;
#exec OBJ LOAD FILE=..\sounds\RPGSound.uax
var config float TargetRadius; var config int DamagePerHit;
var config int ExtraCostPerPlayer; var config int ExtraCostPerMine;
var config bool bMustBeMoving;
var localized string NotWithTransMessage;
var Weapon LastWeapon; var config float DoubleDamageScale; var Emitter LightningAura; var int Retry; var localized string OnlySolidGroundText;
var Emitter Aura; var config float SpeedScaling; var float ClassicSpeedScaling; var int FlagTime;
var XRelics XMutator; var bool bClassic,bDrop; var int HUDIconX,HUDIconY; var PlayerController PlayerOwner; var HudOverlay XHudOverlay; var class<Pickup> PickupClassB; var class<XRelicsHudOverlay> XHudOverlayClass; var class<XRelicsEmitter> XEmitterClass;
function BotFightEnemy(Bot Bot) { local float Chance;
if (LightningAura != None) LightningAura.Destroy();
Super.EndState(); } }
function DropFrom(vector StartLocation) { local Pawn P; local PlayerReplicationInfo PRI; if (!bClassic) { P=Pawn(Owner); if (P!=none && P.Controller!=none) { PRI=P.Controller.PlayerReplicationInfo; if (PRI!=none && PRI.HasFlag!=none) { PRI.HasFlag.Drop(vect(0,0,0)); } } } super.DropFrom(StartLocation); }
function PickupFunction(Pawn Other) { StartEffect(Other); }
function StartEffect(Pawn P) { if (bClassic) { SpeedScaling=ClassicSpeedScaling; } Aura=Spawn(class 'TitanRPG160-Update2.FX_AdrenAura',P,,P.Location,P.Rotation); if (!bClassic) { SetTimer(2.0,true); } }
function Timer() { local Pawn P; local PlayerReplicationInfo PRI; local int RandomTime; P=Pawn(Owner); if (P!=none && P.Controller!=none) { PRI=P.Controller.PlayerReplicationInfo; if (PRI!=none && PRI.HasFlag!=none) { RandomTime=Rand(15); FlagTime=FlagTime+2; if (FlagTime>RandomTime) { bDrop=false; Destroy(); } } } }
function StopEffect(Pawn P) { if (Aura!=none) { Aura.Destroy(); } SetTimer(0,false); }
class RPGArtifact extends Powerups config(TitanRPG);
const USE_DELAY_SWITCH = 8000;
var config int CostPerSec; //default adrenaline cost per second var config float MinActivationTime; //zero means single hit usage (e.g. Repulsion) var config int MinAdrenaline; //adrenaline required to activate this artifact
var config Color HudColor;
var config float UseDelay; //how much time has to pass before you can use this first / again
var float CurrentCostPerSec; var config float FlagMultiplier; //scale the cost per sec when holding the flag
var config bool bAllowInVehicle;
var string ArtifactID; //for GetArtifact / RPGGetArtifact var float ActivatedTime; var config bool bCanBeTossed;
var localized string Description;
var localized string NotEnoughAdrenalineMessage; var localized string AdrenalineRequiredText; var localized string UseDelayText; var localized string NotInVehicleText;
//these are for the HUD var float NextUseTime; //time when this artifact will be available again
replication { reliable if (Role < ROLE_Authority) TossArtifact;
//New interface to allow damage scaling for artifacts -pd function AdjustTargetDamage(out int Damage, Actor Victim, Vector HitLocation, out Vector Momentum, class<DamageType> DamageType); function AdjustPlayerDamage(out int Damage, Pawn InstigatedBy, Vector HitLocation, out Vector Momentum, class<DamageType> DamageType);
function bool HandlePickupQuery(Pickup Item) { if(Item.InventoryType == class) { if (bCanHaveMultipleCopies) { NumCopies++; } else if ( bDisplayableInv ) { if (Item.Inventory != None) Charge = Max(Charge, Item.Inventory.Charge); else Charge = Max(Charge, Item.InventoryType.Default.Charge); } else { return false; }
//New interface to get extra information which is displayed below the weapon's name -pd static function string GetArtifactNameExtra() { return default.Description; }
Если боты не юзают только этот артефакт, и если он с игроком норм. роботает, то тогда более-менне ясно. Просканируй в игре функцыю
Код
BotFightEnemy(Bot Bot)
с одним ботом например а сам не юзай. Поставь везде функцыю лог с коментариями на основные величины и посмотри что происходит. Лог пишетса по принцыпу:
где, x, y, z переменные ну а в скобках коменты. Так можно будет понять сколько в тот-или иной момент равна переменная, запускаетса та или иная функцыя или нет. Например так:
Код
function BotFightEnemy(Bot Bot) { local float Chance;
LOG("Function BotFightEnemy called for "$Bot);
if(Vehicle(Instigator) != None) { LOG(Bot$" is in vehicle, exiting function"); return; }
if(!bActive) { LOG("Artefact is not active, continue");
if(HasActiveArtifact(Instigator)) { LOG(Bot$" has other active artefact, exiting function"); return; }
народ, если на карте очень длинный коридор (40к например), то в игре стоя в начале коридора, направив камеру на конец коридора, вместо стенки чёрный фон(как будто там вообще стенки нет) подскажите как это исправить? поделить на зоны коридор? или ещё как?
Ну есть еще малая вероятность (есть?) зависимости от железа,
на подобии того как с целыми числами в tick-е (например вращение задаетса целыми числами, как раз 65536 полный оборот, и если поставить очень малую скорость вращения v, такую что за один tick актор поворачиваетса на одну единицу, то на более мощном ПК актор может перестать вертетса, так как tick стал короче - dt стал меньше, так что dt*v < 0.5 и собственно округляетса не до 1 а до 0)
что наталкивало на мысль о границе интеджеров в 16 бит (2^16 = 65536 ).
вот тут пишут "...создайте куб с размерами 65536х65536х65536. Конечно, последние версии движка поддерживают пространства вплоть до 524288х524288х524288, но подобный "гигантизм" не является разумным, а потому не рекомендуется его использовать."
ладно вроде поняла, что больше этих размеров делать не надо и всё нормуль будет.
У меня другая проблема сейчас если сделать кубик 65536х65536х65536 то у меня траблы с гравитацией. Либо на полу меня плющит к полу как магнитом а наверху под потолком (если сделать платформу там и попрыгать на ней) нормально. Либо наоборот: внизу нормально, а под потолком летаю как на Луне. GP написал в лс, что надо через zoneinfo и в F6 выставлять значение KILLZ и StallZ , но что-то экспериментируя с изменением этих параметров, я всё ровно не пришла к тому чтобы у меня и внизу куба и вверху была обычная гравитация(под обычной я подразумеваю "обычную" как на том же ранкине) Помогите.
Добавлено (30 Апреля 15, 15:39) --------------------------------------------- короче у меня офф гейм косячный, попробовала создать сервер сама на него зашла и всё нормально стало прыгать, чтобы у меня всё дефолтное стало достаточно user.ini и ut2004.ini камбекнуть на начальные или ещё что надо?