Infinite War v5.0.2 construction
UIP 2.0 - UIPP(UIP 2.1)
|
Форум - Russian Tournament » Игры » UnrealED » Просьбы, подсказки, помощь. |
Просьбы, подсказки, помощь. |
421, 08 Декабря 15 14:43
Кстати свет фх должен работать на 32х битных системах, если дать ему енбсириес, я так думаю.
Но у меня он не работает, наверно из-за того что у меня нет директикса 9000 Infinite War v5.0.2 construction UIP 2.0 - UIPP(UIP 2.1) |
422, 08 Декабря 15 15:40
UberSoldier, ENB, не ENB, но директ 9.0c должен стоять. В x64 он стоит, вот и всё.
Мой IP сменился с 89.113.234.78/185.42.146.32 на 83.167.1.167. Теперь будет этот. Надолго. Порты те же. http-сервер .do impossible beat unbeatable |
423, 08 Декабря 15 16:20
У мну все равно не работает, даже если скачать с их сайта, может из-за того что XP, а не 7ка.
GP, я замутил вертолету детальную колозию, и что бы внутрь лазить можно было, как сделать так что бы когда в нутрь заходишь или вообще по его колозии бегаешь, персонаж не прыгал, а то как зайчик сам по себе прыгает. Infinite War v5.0.2 construction UIP 2.0 - UIPP(UIP 2.1) |
424, 08 Декабря 15 16:43
Gadavre, положение прицела при зуме как-раз правильное, потому-что за его рендер отвечает код пушки, какой бы странный он не был. А вот рендер прицела в нормальном режыме передаетса в движок/хад или где там он рендеритса (ownscrosshair=false). Тот кусок кода который я скинул в спойлере рендерит кастомный прицел еще и в нормальном режиме (без зума), в правильном месте, единственное текстуру туда надо подставить другую.
simulated function PostRender( canvas Canvas ) { local PlayerPawn P; local actor Other; local float S, m, Xlength, range, radpitch; local vector HitLocation, HitNormal, StartTrace, EndTrace, X, Y, Z; Super.PostRender(Canvas); P = PlayerPawn(Owner); if ( P != None ) { bOwnsCrossHair = true; if (P.DesiredFOV != P.DefaultFOV) { XLength=255.0; GetAxes(Pawn(owner).ViewRotation,X,Y,Z); if ((Pawn(Owner).ViewRotation.Pitch >= 0) && (Pawn(Owner).ViewRotation.Pitch <= 18000)) radpitch = float(Pawn(Owner).ViewRotation.Pitch) / float(182) * (Pi/float(180)); else radpitch = float(Pawn(Owner).ViewRotation.Pitch - 65535) / float(182) * (Pi/float(180)); StartTrace = Owner.Location + Pawn(Owner).EyeHeight*Z*cos(radpitch); AdjustedAim = pawn(owner).AdjustAim(1000000, StartTrace, 2.75*AimError, False, False); EndTrace = StartTrace +(20000 * vector(AdjustedAim)); Other = Pawn(Owner).TraceShot(HitLocation,HitNormal,EndTrace,StartTrace); range = Vsize(StartTrace-HitLocation)/48-0.25; Canvas.Font = Font(DynamicLoadObject("LadderFonts.UTLadder30", class'Font')); Canvas.SetPos(0, 0); Canvas.Style = ERenderStyle.STY_Translucent; Canvas.DrawColor.R = 10; Canvas.DrawColor.G = 10; Canvas.DrawColor.B = 10; Canvas.DrawTile(Texture'Scope', Canvas.ClipX, Canvas.ClipY, 0, 0, 512, 384); Canvas.DrawColor.R = 80; Canvas.DrawColor.G = 80; Canvas.DrawColor.B = 80; Canvas.SetPos(0.5 * Canvas.ClipX - 128, 0.5 * Canvas.ClipY - 128); Canvas.DrawIcon(Texture'Xhair', 1); S = P.DefaultFOV/P.DesiredFOV; m = S / 8.333331 * 100; Canvas.bCenter = True; Canvas.Style = ERenderStyle.STY_Normal; Canvas.DrawColor.R = 200; Canvas.DrawColor.G = 200; Canvas.DrawColor.B = 0; Canvas.SetPos(0, 0.5 * Canvas.ClipY + 192); Canvas.DrawText("zoom:"@int(m)$"%"); Canvas.SetPos(0, 0.5 * Canvas.ClipY + 224); Canvas.DrawText( "Range to target: "$int(range)$"."$int(10 * range -10 * int(range))$" meters."); Canvas.bCenter = False; } else { Canvas.DrawColor.R = 10; Canvas.DrawColor.G = 10; Canvas.DrawColor.B = 10;Canvas.Style = ERenderStyle.STY_Translucent; // сдесь 128 - половина от размера текстуры Canvas.SetPos(0.5 * Canvas.ClipX - 128, 0.5 * Canvas.ClipY - 128); // сдесь вместо Xhair текстура нормального прицела Canvas.DrawIcon(Texture'Xhair', 1); } } else bOwnsCrossHair = false; } Добавлено (08 Декабря 15, 19:43) --------------------------------------------- как сделать так что бы когда в нутрь заходишь или вообще по его колозии бегаешь Скорее всего єто будет в коде вехикла, такчто [ссылка на павн игрока].SetBase(self); всразу-же после [ссылка на павн игрока].SetLocation(..... Но 98% что не поможет, вообще когда плоскость не постоянно горизонтальная павн игрока пробует повернуть вместе с base, но так как это вне рамок предвиденой физики он переходит из Phys_Walking в Phys_Falling на один тик, и как следствие тригаетса анамацыя приземления. А если он вообще натурально делает jump, то я в шоке и не могу помочь... |
425, 08 Декабря 15 18:55
У мну все равно не работает, даже если скачать с их сайта, может из-за того что XP, а не 7ка. Добавлено (08 Декабря 15, 21:55) Мой IP сменился с 89.113.234.78/185.42.146.32 на 83.167.1.167. Теперь будет этот. Надолго. Порты те же. http-сервер .do impossible beat unbeatable |
426, 08 Декабря 15 18:58
Павну можно включить даже Hover, будеш как манта почти.
|
427, 10 Декабря 15 13:38
А ты можешь сделать? Чтобы он парил.
Мой IP сменился с 89.113.234.78/185.42.146.32 на 83.167.1.167. Теперь будет этот. Надолго. Порты те же. http-сервер .do impossible beat unbeatable |
428, 10 Декабря 15 16:41
|
429, 11 Декабря 15 08:44
GP, я замутил вертолету детальную колозию, и что бы внутрь лазить можно было, как сделать так что бы когда в нутрь заходишь или вообще по его колозии бегаешь, персонаж не прыгал, а то как зайчик сам по себе прыгает. Не будет работать. Физика Павну назначается нативно, на уровне движка. Попытка присвоить игроку иную физику приведет лишь к тому, что физика будет всё время сбрасываться к обычной - даже в течении тика. |
430, 11 Декабря 15 09:34
Цитата Сделай нормальную колозию в UnrealED из браша. Infinite War v5.0.2 construction UIP 2.0 - UIPP(UIP 2.1) |
431, 11 Декабря 15 09:50
Почему? Сейчас же роботает. Попробовали б прежде чем писать. Это такие как Falling или Swimming сбрасываетса, а нестандартные нет. Hover и Spider так точно роботают. А вот Ragdoll конечно просто так не роботает, так как там иницыализацыя + должен еще существовать клас KParams.
|
432, 11 Декабря 15 10:05
Gadavre, положение прицела при зуме как-раз правильное, потому-что за его рендер отвечает код пушки, какой бы странный он не был. А вот рендер прицела в нормальном режыме передаетса в движок/хад или где там он рендеритса (ownscrosshair=false). Тот кусок кода который я скинул в спойлере рендерит кастомный прицел еще и в нормальном режиме (без зума), в правильном месте, единственное текстуру туда надо подставить другую. То есть в строке Canvas.DrawIcon(Texture'Xhair', 1); вместо Xhair вставить нужную текстуру? Я хочу чтобы у меня был стандартный прицел в форме точки. |
433, 11 Декабря 15 12:10
Gadavre, все верно. Напомню то, что если используемая текстура находитса вне пакеджа, то вместо Xhair нужно написать не только имя текстуры, а полный ее адрес, типа Texture'Package.Group.Name'. Поэтому просто скопировать из другого кода врятли получитса - прийдетса найти текстуру в реакторе вручную.
Кроме того я не вкурсе насчет кондицыи стандартного прицела - уже писал про то, что один пиксель по центру ну никак не разместить. Имхо идеальным решением будет нарисовать свою текстуру, так чтоб размеры точки были 2х2 пикселя, или 4х4. |
434, 11 Декабря 15 14:25
|
435, 11 Декабря 15 16:16
Текстуру прицела не разрешением не больше чем 16х16 в 3ДМаксе? Насмешыли)
Если у вас компилируетса, значит в исходниках должны быть те две тестуры которые используютаса, там в начале класа две строчки есть. Такую текстуру можно сделать хоть в paint-е, но я не в курсе нюансов формата, pcx нормально воспринимат. Например вот в приложении 16х16 (смещение 8 вместо 128), яркость можно поднастроить в строчках Canvas.DrawColor перед текстурой. |
436, 12 Декабря 15 13:31
GP
Спасибо буду разбираться. Собрался поменять звук выстрела оружия, но не пойму, как правильно писать код импорта своего звука. Вот пример начальных строчек кода одного мутатора оружия: #exec AUDIO IMPORT FILE="Sounds\bang.wav" NAME="bang" GROUP="fire" В оригинальном коде снайперки импорт звука стрельбы пишется так: #exec AUDIO IMPORT FILE="Sounds\SniperRifle\SniperFire.wav" NAME="SniperFire" GROUP="SniperRifle" Я понял, что в Name должно быть имя wav файла, но что писать мне в GROUP ? Имеет ли вообще значение что писать? У меня файл, который нужно импортировать (Shot.wav) лежит в папке Sounds |
437, 12 Декабря 15 17:04
Группа это просто группа. При обращении по полному адресу ее нужно указывать, внутри пакеджа роботает и без нее. Это как папка чтоли. Для удобства когда много файлов.
|
438, 14 Декабря 15 14:13
GP,
Не выходит никак поставить свой прицел, хоть тресни! Порядок моих действий: 1. Ваш файл XDot.pcx переконвертировал в XDot.bmp (Движок читает такой формат - проверенно, у меня текстуры зума в bmp). 2. В файле пушки написал #exec TEXTURE IMPORT NAME=XDot FILE=Textures\XDot.bmp MIPS=ON 3. В simulated function PostRender( canvas Canvas ) написал simulated function PostRender( canvas Canvas ) { local PlayerPawn P; local actor Other; local float S, m, Xlength, range, radpitch; local vector HitLocation, HitNormal, StartTrace, EndTrace, X, Y, Z; Super.PostRender(Canvas); P = PlayerPawn(Owner); if ( P != None ) { bOwnsCrossHair = true; if (P.DesiredFOV != P.DefaultFOV) { XLength=255.0; GetAxes(Pawn(owner).ViewRotation,X,Y,Z); if ((Pawn(Owner).ViewRotation.Pitch >= 0) && (Pawn(Owner).ViewRotation.Pitch <= 18000)) radpitch = float(Pawn(Owner).ViewRotation.Pitch) / float(182) * (Pi/float(180)); else radpitch = float(Pawn(Owner).ViewRotation.Pitch - 65535) / float(182) * (Pi/float(180)); StartTrace = Owner.Location + Pawn(Owner).EyeHeight*Z*cos(radpitch); AdjustedAim = pawn(owner).AdjustAim(1000000, StartTrace, 2.75*AimError, False, False); EndTrace = StartTrace +(20000 * vector(AdjustedAim)); Other = Pawn(Owner).TraceShot(HitLocation,HitNormal,EndTrace,StartTrace); range = Vsize(StartTrace-HitLocation)/48-0.25; Canvas.Font = Font(DynamicLoadObject("LadderFonts.UTLadder30", class'Font')); Canvas.SetPos(0, 0); Canvas.Style = ERenderStyle.STY_Translucent; Canvas.DrawColor.R = 10; Canvas.DrawColor.G = 10; Canvas.DrawColor.B = 10; Canvas.DrawTile(Texture'Scope', Canvas.ClipX, Canvas.ClipY, 0, 0, 512, 384); Canvas.DrawColor.R = 80; Canvas.DrawColor.G = 80; Canvas.DrawColor.B = 80; Canvas.SetPos(0.5 * Canvas.ClipX - 128, 0.5 * Canvas.ClipY - 128); Canvas.DrawIcon(Texture'Xhair', 1); S = P.DefaultFOV/P.DesiredFOV; m = S / 8.333331 * 100; Canvas.bCenter = True; Canvas.Style = ERenderStyle.STY_Normal; Canvas.DrawColor.R = 200; Canvas.DrawColor.G = 200; Canvas.DrawColor.B = 0; Canvas.SetPos(0, 0.5 * Canvas.ClipY + 192); Canvas.DrawText("zoom:"@int(m)$"%"); Canvas.SetPos(0, 0.5 * Canvas.ClipY + 224); Canvas.DrawText( "Range to target: "$int(range)$"."$int(10 * range -10 * int(range))$" meters."); Canvas.bCenter = False; } else { Canvas.DrawColor.R = 10; Canvas.DrawColor.G = 10; Canvas.DrawColor.B = 10;Canvas.Style = ERenderStyle.STY_Translucent; // сдесь 128 - половина от размера текстуры Canvas.SetPos(0.5 * Canvas.ClipX - 128, 0.5 * Canvas.ClipY - 128); // сдесь вместо Xhair текстура нормального прицела Canvas.DrawIcon(Texture'XDot', 1); } } else bOwnsCrossHair = false; } |
439, 14 Декабря 15 16:44
bmp там не простой а индексированый, в результате импорта неправильного bmp может получатса чушр/рандомные пиксели в т.ч. и прозрачность. Импортируйте тот готовый pcx что я скинул. И смещение вы у себя забыли переправить с 128 на 8, текстура ж 16х16, а не 256х256.
Код #exec TEXTURE IMPORT NAME=SuperDot FILE=Textures\Dot.pcx GROUP="Sniper" MIPS=ON Код : else { Canvas.DrawColor.R = 200; Canvas.DrawColor.G = 200; Canvas.DrawColor.B = 200; Canvas.Style = ERenderStyle.STY_Translucent; Canvas.SetPos(0.5 * Canvas.ClipX - 8, 0.5 * Canvas.ClipY - 8); Canvas.DrawIcon(Texture'SuperDot', 1); } : |
440, 17 Декабря 15 14:04
1.
Цитата GP Группа это просто группа. При обращении по полному адресу ее нужно указывать, внутри пакеджа роботает и без нее. Это как папка чтоли. Для удобства когда много файлов. #exec AUDIO IMPORT FILE="Sounds\Fire.wav" NAME="Fire" Верно? 2. Что означает MIPS=ON или MIPS=OFF? Например: #exec TEXTURE IMPORT NAME=Scope FILE=Textures\Scope.bmp GROUP="Sniper" MIPS=ON В каком случае что нужно ставить, если я захочу добавить текстуру? 3. В некоторых мутаторах оружия я вижу интересный код, обьяснения которому найти не удается. Пишут его в начале класса оружия. simulated event PostNetBeginPlay() { local SniperHUDMutator crosshair; local PlayerPawn HUDOwner; Super.PostNetBeginPlay(); // If owner is the local player, check that the HUD Mutator exists. // Also check for the presense of a bbPlayer (UTPure enabled) HUDOwner = PlayerPawn(Owner); if (HUDOwner != None && HUDOwner.IsA('bbPlayer') && HUDOwner.myHUD != None) { ForEach AllActors(Class'SniperHUDMutator', crosshair) break; if (crosshair == None) { crosshair = Spawn(Class'SniperHUDMutator', Owner); crosshair.RegisterHUDMutator(); crosshair.HUDOwner = HUDOwner; } } } class SniperHUDMutator expands Mutator; var PlayerPawn HUDOwner; simulated event PostRender (Canvas Canvas) { if ( (HUDOwner != None) && (HUDOwner.Weapon != None) ) { HUDOwner.Weapon.PostRender(Canvas); } } defaultproperties { } |
| |||||||||||||||
| |||||||||||||||