Мой IP сменился с 89.113.234.78/185.42.146.32 на 83.167.1.167. Теперь будет этот. Надолго. Порты те же.
http-сервер
.do impossible beat unbeatable
|
Форум - Russian Tournament » Игры » UnrealED » Bump на UE2 (sml[thread]Вот попробовал запилить...) |
Bump на UE2 |
181, 26 Мая 14 05:57
там альфа равна 0 или 1, то есть будет резкая граница у тени
а так у альфы 256 значений и она постепенно их на границе изменяет с 0 до 256 Мой IP сменился с 89.113.234.78/185.42.146.32 на 83.167.1.167. Теперь будет этот. Надолго. Порты те же. http-сервер .do impossible beat unbeatable Сообщение отредактировал XCanG - Понедельник, 26 Май 14, 05:57
|
182, 26 Мая 14 14:32
Ну лучше конечно резкая граница как в современных играх.
Infinite War v5.0.2 construction UIP 2.0 - UIPP(UIP 2.1) |
183, 26 Мая 14 16:14
даа, http://store.steampowered.com/app/261110/
такая резкая конечно же лучше Мой IP сменился с 89.113.234.78/185.42.146.32 на 83.167.1.167. Теперь будет этот. Надолго. Порты те же. http-сервер .do impossible beat unbeatable |
184, 27 Мая 14 18:07
Я тут столкнулся с проблемкой, мне нужно сделать эффект для повреждения танков, т.е. когда у танка меньше чем 50% брони, появляется эффект дыма и огня из под башни, далее когда 25% загорается двигатель. Так вот... эффект готов, а как мне его теперь присабачить к танку? Я попробовал путем замены стандартного эффекта, все сделал так же, только имя поменял, но он вылетает. Я уже все перепробывал, но не как. Как мне правильно сделать? Техника заменяется не через мутатор.
Добавлено (27 Мая 14, 18:07) --------------------------------------------- Кстати то что сделал в коде на ленс фларес GP, а именно с тенями, я делал тоже самое . Только не работало наверно потому что я не через мутатор делал. Infinite War v5.0.2 construction UIP 2.0 - UIPP(UIP 2.1) Сообщение отредактировал UberSoldier - Вторник, 27 Май 14, 18:08
|
185, 27 Мая 14 18:35
UberSoldier, там у скорпа и у танка тоже эффект появляется при малом количестве хп
что, совсем никак не удаётся у них взять принцип эффекта? Мой IP сменился с 89.113.234.78/185.42.146.32 на 83.167.1.167. Теперь будет этот. Надолго. Порты те же. http-сервер .do impossible beat unbeatable |
186, 27 Мая 14 19:24
В том то и проблема что нет, похоже что только через мутатор, не знаю, может ГП знает ответ как сделать что бы не через мутатор все это дело было.
Infinite War v5.0.2 construction UIP 2.0 - UIPP(UIP 2.1) |
187, 27 Мая 14 20:43
Код вехикла в студию!
Лучче весь пакедж и контент, чтоб я мог скомпилировать и если чего то поменять в ефектах (там офсет и т.д.) Добавлено (27 Мая 14, 20:43) --------------------------------------------- Да, и с тенью башень пока не очень - проекторы не для павнов почему-то не обрабатываютса. Точнее сама текстура тени не генерируетса( Сообщение отредактировал GP - Вторник, 27 Май 14, 20:43
|
188, 27 Мая 14 23:37
UberSoldier, может наследовал не от той техники, потому и куска кода нет?
Мой IP сменился с 89.113.234.78/185.42.146.32 на 83.167.1.167. Теперь будет этот. Надолго. Порты те же. http-сервер .do impossible beat unbeatable |
189, 27 Мая 14 23:49
GP, На счет техники возьми к примеру стандартную, находится в Onslaught -> ONSPRV или ONSVehicle, смотри там куда extends ведет, там поймешь.
На счет тени, может быть можно в ручную присабачить тень? Я бы для каждого танка сделал в ручную, так как я много что в ручную делаю для каждой еденицы. Добавлено (27 Мая 14, 23:45) --------------------------------------------- XCanG, там без разницы, там 1 код на все. Эффект берется отдельно, но это не важно. Важно сам код который... в прочем вот: var() class<ONSDamagedEffect> DamagedEffectClass; var() float DamagedEffectScale; var() vector DamagedEffectOffset; var() float DamagedEffectHealthSmokeFactor; // Proportion of default health before thing starts smoking. var() float DamagedEffectHealthFireFactor; // Proportion of default health before thing starts burning. var() float DamagedEffectAccScale; var() float DamagedEffectFireDamagePerSec; var float DamagedEffectAccruedDamage; var ONSDamagedEffect DamagedEffect; simulated event SVehicleUpdateParams() { local int i; Super.SVehicleUpdateParams(); if(DamagedEffect != None) { DamagedEffect.SetBase(None); DamagedEffect.SetLocation( Location + (DamagedEffectOffset >> Rotation) ); DamagedEffect.SetBase(self); DamagedEffect.SetEffectScale(DamagedEffectScale); } } defaultproperties DamagedEffectClass=Class'Onslaught.ONSDamagedEffect' DamagedEffectScale=1.000000 DamagedEffectHealthSmokeFactor=0.500000 DamagedEffectHealthFireFactor=0.250000 DamagedEffectAccScale=0.250000 DamagedEffectFireDamagePerSec=0.750000 Добавлено (27 Мая 14, 23:49) Цитата Точнее сама текстура тени не генерируетса( Вот вот вот, я пробывал павнить проектор, но тень не проецируется от него. Infinite War v5.0.2 construction UIP 2.0 - UIPP(UIP 2.1) Сообщение отредактировал UberSoldier - Вторник, 27 Май 14, 23:46
|
190, 28 Мая 14 00:06
Неее. Нужен готовый код твоего танка, независимо от чего-либо там.
Дело в том, то для такого дела надо использовать другие функцыи. А если я к примеру в своем класе пропишу функцыю 'Tick', то тем самым нивелирую эту функцыю в суперклассе. Если ты в своей технике используеш какю-то функцыю, то надо сначала скопировать ее из ближайшего суперкласа. Тоесть: Если у тебя твой танк extends стандартный онсовский танк, и ты хочеш чегото добавить в функцыю, надо ее скопировать полностю из стандартного танка, если ее там нет, то идеш по дереву выше и выше пока ее не найдеш. Если ее нет, либо есть пустая (аж в класе актор), то тогда нечего копировать собственно и просто пишеш свое. Потому и надо код, ато мне для примера надо создавать новый вехикл, мне лень. + Мне легче сделать код и обьяснить потом только то что не ясно. Добавлено (28 Мая 14, 00:02) Добавлено (28 Мая 14, 00:06) |
191, 28 Мая 14 00:06
там же можно вызывать оригинальную функцию через Super.функция
|
192, 28 Мая 14 00:16
GP,
Код танка: //--------------// // BattleMaster // //--------------// class BattleMaster extends ONSWheeledCraft; var float YawAccel, PitchAccel; var float ClientUpdateTime; var float StartDrivingTime; // AI Hint var Rotator LastAim; var() float MaxPitchSpeed; var VariableTexPanner LeftTreadPanner, RightTreadPanner; var float TreadVelocityScale; var float MaxGroundSpeed, MaxAirSpeed; simulated function PostBeginPlay() { super.PostBeginPlay(); if ( Level.NetMode != NM_DedicatedServer ) SetupTreads(); } simulated function Destroyed() { DestroyTreads(); super.Destroyed(); } function bool ImportantVehicle() { return true; } simulated function SetupTreads() { LeftTreadPanner = VariableTexPanner(Level.ObjectPool.AllocateObject(class'VariableTexPanner')); if ( LeftTreadPanner != None ) { LeftTreadPanner.Material = Skins[1]; LeftTreadPanner.PanDirection = rot(0, 16384, 0); LeftTreadPanner.PanRate = 0.0; Skins[1] = LeftTreadPanner; } RightTreadPanner = VariableTexPanner(Level.ObjectPool.AllocateObject(class'VariableTexPanner')); if ( RightTreadPanner != None ) { RightTreadPanner.Material = Skins[1]; RightTreadPanner.PanDirection = rot(0, 16384, 0); RightTreadPanner.PanRate = 0.0; Skins[1] = RightTreadPanner; } } simulated function DestroyTreads() { if ( LeftTreadPanner != None ) { Level.ObjectPool.FreeObject(LeftTreadPanner); LeftTreadPanner = None; } if ( RightTreadPanner != None ) { Level.ObjectPool.FreeObject(RightTreadPanner); RightTreadPanner = None; } } simulated event DrivingStatusChanged() { local vector RotX, RotY, RotZ; local int i; Super.DrivingStatusChanged(); if (!bDriving) { if ( LeftTreadPanner != None ) LeftTreadPanner.PanRate = 0.0; if ( RightTreadPanner != None ) RightTreadPanner.PanRate = 0.0; } if (bDriving && Level.NetMode != NM_DedicatedServer && !bDropDetail) { GetAxes(Rotation,RotX,RotY,RotZ); if (TrailEffects.Length == 0) { TrailEffects.Length = TrailEffectPositions.Length; for(i=0;i<TrailEffects.Length;i++) if (TrailEffects[i] == None) { TrailEffects[i] = spawn(TrailEffectClass, self,, Location + (TrailEffectPositions[i] >> Rotation) ); TrailEffects[i].SetBase(self); TrailEffects[i].SetRelativeRotation( rot(0,32768,0) ); } } if (StreamerEffect.Length == 0) { StreamerEffect.Length = StreamerEffectOffset.Length; for(i=0; i<StreamerEffect.Length; i++) if (StreamerEffect[i] == None) { StreamerEffect[i] = spawn(StreamerEffectClass, self,, Location + (StreamerEffectOffset[i] >> Rotation) ); StreamerEffect[i].SetBase(self); } } } else { if (Level.NetMode != NM_DedicatedServer) { for(i=0;i<TrailEffects.Length;i++) TrailEffects[i].Destroy(); TrailEffects.Length = 0; for(i=0; i<StreamerEffect.Length; i++) StreamerEffect[i].Destroy(); StreamerEffect.Length = 0; } } } simulated function Tick(float DeltaTime) { local float EnginePitch; local float LinTurnSpeed; local KRigidBodyState BodyState; local KarmaParams KP; local bool bOnGround; local int i; KGetRigidBodyState(BodyState); KP = KarmaParams(KParams); // Increase max karma speed if falling bOnGround = false; for(i=0; i<KP.Repulsors.Length; i++) { //log("Checking Repulsor "$i); if( KP.Repulsors[i] != None && KP.Repulsors[i].bRepulsorInContact ) bOnGround = true; //log("bOnGround: "$bOnGround); } if (bOnGround) KP.kMaxSpeed = MaxGroundSpeed; else KP.kMaxSpeed = MaxAirSpeed; if ( Level.NetMode != NM_DedicatedServer ) { LinTurnSpeed = 0.5 * BodyState.AngVel.Z; EnginePitch = 64.0 + VSize(Velocity)/MaxPitchSpeed * 64.0; SoundPitch = FClamp(EnginePitch, 64, 128); if ( LeftTreadPanner != None ) { LeftTreadPanner.PanRate = VSize(Velocity) / TreadVelocityScale; if (Velocity Dot Vector(Rotation) > 0) LeftTreadPanner.PanRate = -1 * LeftTreadPanner.PanRate; LeftTreadPanner.PanRate += LinTurnSpeed; } if ( RightTreadPanner != None ) { RightTreadPanner.PanRate = VSize(Velocity) / TreadVelocityScale; if (Velocity Dot Vector(Rotation) > 0) RightTreadPanner.PanRate = -1 * RightTreadPanner.PanRate; RightTreadPanner.PanRate -= LinTurnSpeed; } } Super.Tick( DeltaTime ); } function KDriverEnter(Pawn p) { Super.KDriverEnter(p); SVehicleUpdateParams(); } function DriverLeft() { Super.DriverLeft(); SVehicleUpdateParams(); } function AltFire(optional float F) { local PlayerController PC; PC = PlayerController(Controller); if (PC == None) return; bWeaponIsAltFiring = true; PC.ToggleZoomWithMax(0.5); } function ClientVehicleCeaseFire(bool bWasAltFire) { local PlayerController PC; if (!bWasAltFire) { Super.ClientVehicleCeaseFire(bWasAltFire); return; } PC = PlayerController(Controller); if (PC == None) return; bWeaponIsAltFiring = false; PC.StopZoom(); } simulated function ClientKDriverLeave(PlayerController PC) { Super.ClientKDriverLeave(PC); bWeaponIsAltFiring = false; PC.EndZoom(); } function bool RecommendLongRangedAttack() { return true; } function TakeDamage(int Damage, Pawn instigatedBy, Vector Hitlocation, Vector Momentum, class<DamageType> DamageType) { if (DamageType == class'DamTypeHoverBikePlasma') Damage *= 0.80; Super.TakeDamage(Damage, instigatedBy, Hitlocation, Momentum, damageType); } static function StaticPrecache(LevelInfo L) { Super.StaticPrecache(L); } simulated function UpdatePrecacheStaticMeshes() { Super.UpdatePrecacheStaticMeshes(); } simulated function UpdatePrecacheMaterials() { Super.UpdatePrecacheMaterials(); } function ShouldTargetMissile(Projectile P) { if ( (WeaponPawns.Length > 0) && (WeaponPawns[0].Controller == None) ) Super.ShouldTargetMissile(P); } defaultproperties { TreadVelocityScale=275.000000 MaxGroundSpeed=600.000000 MaxAirSpeed=2000.000000 WheelSoftness=0.015000 WheelPenScale=1.500000 WheelPenOffset=0.010000 WheelAdhesion=1.000000 WheelInertia=0.070000 WheelLongFrictionFunc=(Points=(,(InVal=100.000000,OutVal=1.000000),(InVal=200.000000,OutVal=0.900000),(InVal=10000000000.000000,OutVal=0.900 000))) WheelLongSlip=0.001000 WheelLatSlipFunc=(Points=(,(InVal=30.000000,OutVal=0.010000),(InVal=45.000000),(InVal=10000000000.000000))) WheelLongFrictionScale=2.000000 WheelLatFrictionScale=1.500000 WheelHandbrakeSlip=0.750000 WheelHandbrakeFriction=2.000000 WheelSuspensionTravel=10.000000 WheelSuspensionOffset=-2.000000 WheelSuspensionMaxRenderTravel=30.000000 FTScale=0.020000 ChassisTorqueScale=0.500000 MinBrakeFriction=12.000000 MaxSteerAngleCurve=(Points=((OutVal=50.000000),(InVal=500.000000,OutVal=20.000000),(InVal=600.000000,OutVal=10.000000),(InVal=1000000000.000 000,OutVal=5.000000))) TorqueCurve=(Points=((OutVal=7.000000),(InVal=200.000000,OutVal=8.000000),(InVal=1500.000000,OutVal=8.500000),(InVal=2500.000000))) GearRatios(0)=-0.300000 GearRatios(1)=0.800000 GearRatios(2)=1.000000 NumForwardGears=2 TransRatio=0.100000 ChangeUpPoint=2000.000000 ChangeDownPoint=1000.000000 LSDFactor=0.100000 EngineBrakeFactor=0.000100 EngineBrakeRPMScale=0.100000 MaxBrakeTorque=50.000000 SteerSpeed=60.000000 TurnDamping=35.000000 StopThreshold=100.000000 HandbrakeThresh=200.000000 EngineInertia=0.085000 IdleRPM=1000.000000 EngineRPMSoundRange=10000.000000 SteerBoneName="SteeringWheel" SteerBoneAxis=AXIS_Z SteerBoneMaxAngle=90.000000 DustSlipRate=1.000000 DustSlipThresh=10.000000 RevMeterScale=4000.000000 AirPitchDamping=25.000000 DriverWeapons(0)=(WeaponClass=Class'DKoppIIVehicles.BattleMasterT',WeaponBone="Turret") bHasAltFire=False RedSkin=Shader'DKVehiclesTex.BattleMaster.BattleMaster' BlueSkin=Shader'DKVehiclesTex.BattleMaster.BattleMaster' IdleSound=Sound'RO_vehicles.Engine.Panzer4D_engine_running_loop' StartUpSound=Sound'RO_vehicles.Engine.Panzer4D_engine_start' ShutDownSound=Sound'RO_vehicles.Engine.Panzer4D_engine_stop' StartUpForce="TankStartUp" ShutDownForce="TankShutDown" DestructionEffectClass=Class'Onslaught.ONSVehicleExplosionEffect' DisintegrationEffectClass=Class'Onslaught.ONSVehDeathHoverTank' DisintegrationHealth=0.000000 DestructionLinearMomentum=(Min=250000.000000,Max=400000.000000) DestructionAngularMomentum=(Max=150.000000) DamagedEffectOffset=(X=60.000000,Y=10.000000,Z=10.000000) FireImpulse=(X=-150000.000000) bHasFireImpulse=True Begin Object Class=SVehicleWheel Name=RWheel1 BoneName="RWheel1" BoneRollAxis=AXIS_Y BoneSteerAxis=AXIS_Y WheelRadius=45.000000 SupportBoneName="RSus1" End Object Wheels(0)=SVehicleWheel'DKoppIIVehicles.BattleMaster.RWheel1' Begin Object Class=SVehicleWheel Name=RWheel2 bPoweredWheel=True SteerType=VST_Steered BoneName="RWheel2" BoneRollAxis=AXIS_Y BoneSteerAxis=AXIS_Y WheelRadius=45.000000 SupportBoneName="RSus2" End Object Wheels(1)=SVehicleWheel'DKoppIIVehicles.BattleMaster.RWheel2' Begin Object Class=SVehicleWheel Name=RWheel3 bPoweredWheel=True SteerType=VST_Steered BoneName="RWheel3" BoneRollAxis=AXIS_Y BoneSteerAxis=AXIS_Y WheelRadius=45.000000 SupportBoneName="RSus3" End Object Wheels(2)=SVehicleWheel'DKoppIIVehicles.BattleMaster.RWheel3' Begin Object Class=SVehicleWheel Name=RWheel4 bPoweredWheel=True SteerType=VST_Steered BoneName="RWheel4" BoneRollAxis=AXIS_Y BoneSteerAxis=AXIS_Y WheelRadius=45.000000 SupportBoneName="RSus4" End Object Wheels(3)=SVehicleWheel'DKoppIIVehicles.BattleMaster.RWheel4' Begin Object Class=SVehicleWheel Name=RWheel5 bPoweredWheel=True SteerType=VST_Inverted BoneName="RWheel5" BoneRollAxis=AXIS_Y BoneSteerAxis=AXIS_Y WheelRadius=45.000000 SupportBoneName="RSus5" End Object Wheels(4)=SVehicleWheel'DKoppIIVehicles.BattleMaster.RWheel5' Begin Object Class=SVehicleWheel Name=RWheel6 bPoweredWheel=True SteerType=VST_Inverted BoneName="RWheel6" BoneRollAxis=AXIS_Y BoneSteerAxis=AXIS_Y WheelRadius=45.000000 SupportBoneName="RSus6" End Object Wheels(5)=SVehicleWheel'DKoppIIVehicles.BattleMaster.RWheel6' Begin Object Class=SVehicleWheel Name=RWheel7 bPoweredWheel=True SteerType=VST_Inverted BoneName="RWheel7" BoneRollAxis=AXIS_Y BoneSteerAxis=AXIS_Y WheelRadius=45.000000 SupportBoneName="RSus7" End Object Wheels(6)=SVehicleWheel'DKoppIIVehicles.BattleMaster.RWheel7' Begin Object Class=SVehicleWheel Name=Rwheel8 BoneName="Rwheel8" BoneRollAxis=AXIS_Y BoneSteerAxis=AXIS_Y WheelRadius=45.000000 SupportBoneName="RSus8" End Object Wheels(7)=SVehicleWheel'DKoppIIVehicles.BattleMaster.Rwheel8' Begin Object Class=SVehicleWheel Name=LWheel1 BoneName="LWheel1" BoneRollAxis=AXIS_Y BoneSteerAxis=AXIS_Y WheelRadius=45.000000 SupportBoneName="LSus1" End Object Wheels(8)=SVehicleWheel'DKoppIIVehicles.BattleMaster.LWheel1' Begin Object Class=SVehicleWheel Name=LWheel2 bPoweredWheel=True SteerType=VST_Steered BoneName="LWheel2" BoneRollAxis=AXIS_Y BoneSteerAxis=AXIS_Y WheelRadius=45.000000 SupportBoneName="LSus2" End Object Wheels(9)=SVehicleWheel'DKoppIIVehicles.BattleMaster.LWheel2' Begin Object Class=SVehicleWheel Name=LWheel3 bPoweredWheel=True SteerType=VST_Steered BoneName="LWheel3" BoneRollAxis=AXIS_Y BoneSteerAxis=AXIS_Y WheelRadius=45.000000 SupportBoneName="LSus3" End Object Wheels(10)=SVehicleWheel'DKoppIIVehicles.BattleMaster.LWheel3' Begin Object Class=SVehicleWheel Name=LWheel4 bPoweredWheel=True SteerType=VST_Steered BoneName="LWheel4" BoneRollAxis=AXIS_Y BoneSteerAxis=AXIS_Y WheelRadius=45.000000 SupportBoneName="LSus4" End Object Wheels(11)=SVehicleWheel'DKoppIIVehicles.BattleMaster.LWheel4' Begin Object Class=SVehicleWheel Name=LWheel5 bPoweredWheel=True SteerType=VST_Inverted BoneName="LWheel5" BoneRollAxis=AXIS_Y BoneSteerAxis=AXIS_Y WheelRadius=45.000000 SupportBoneName="LSus5" End Object Wheels(12)=SVehicleWheel'DKoppIIVehicles.BattleMaster.LWheel5' Begin Object Class=SVehicleWheel Name=LWheel6 bPoweredWheel=True SteerType=VST_Inverted BoneName="LWheel6" BoneRollAxis=AXIS_Y BoneSteerAxis=AXIS_Y WheelRadius=45.000000 SupportBoneName="LSus6" End Object Wheels(13)=SVehicleWheel'DKoppIIVehicles.BattleMaster.LWheel6' Begin Object Class=SVehicleWheel Name=LWheel7 bPoweredWheel=True SteerType=VST_Inverted BoneName="LWheel7" BoneRollAxis=AXIS_Y BoneSteerAxis=AXIS_Y WheelRadius=45.000000 SupportBoneName="LSus7" End Object Wheels(14)=SVehicleWheel'DKoppIIVehicles.BattleMaster.LWheel7' Begin Object Class=SVehicleWheel Name=Lwheel8 BoneName="Lwheel8" BoneRollAxis=AXIS_Y BoneSteerAxis=AXIS_Y WheelRadius=45.000000 SupportBoneName="LSus8" End Object Wheels(15)=SVehicleWheel'DKoppIIVehicles.BattleMaster.Lwheel8' VehicleMass=15.000000 bDrawMeshInFP=True bPCRelativeFPRotation=False bSeparateTurretFocus=True bDriverHoldsFlag=False bFPNoZFromCameraPitch=True ExitPositions(0)=(Y=-200.000000,Z=100.000000) ExitPositions(1)=(Y=200.000000,Z=100.000000) EntryRadius=400.000000 FPCamPos=(X=-10.000000,Z=130.000000) FPCamViewOffset=(Z=80.000000) TPCamDistance=1500.000000 CenterSpringForce="SpringONSSRV" TPCamLookat=(Z=150.000000) TPCamWorldOffset=(Z=150.000000) ShadowMaxTraceDist=10000.000000 ShadowCullDistance=0.000000 MomentumMult=0.100000 DriverDamageMult=0.000000 VehiclePositionString="Battle Master" VehicleNameString="Battle Master" RanOverDamageType=Class'Onslaught.DamTypeTankRoadkill' CrushedDamageType=Class'Onslaught.DamTypeTankPancake' MaxDesireability=0.600000 ObjectiveGetOutDist=1500.000000 FlagBone="CannonAttach" FlagOffset=(Z=50.000000) FlagRotation=(Yaw=32768) HornSounds(0)=Sound'ONSBPSounds.ShockTank.PaladinHorn' HornSounds(1)=Sound'ONSVehicleSounds-S.Horns.Dixie_Horn' bCanStrafe=True GroundSpeed=550.000000 HealthMax=5000.000000 Health=5000 Mesh=SkeletalMesh'DKVehiclesAnim.BattleMaster' Skins(1)=Shader'DKVehiclesTex.BattleMaster.BattleMaster_Track' Begin Object Class=KarmaParamsRBFull Name=KParams0 KInertiaTensor(0)=1.000000 KInertiaTensor(3)=3.000000 KInertiaTensor(5)=3.000000 KCOMOffset=(X=-0.250000,Z=-1.350000) KLinearDamping=0.050000 KAngularDamping=0.050000 KStartEnabled=True bKNonSphericalInertia=True bHighDetailOnly=False bClientOnly=False bKDoubleTickRate=True bDestroyOnWorldPenetrate=True bDoSafetime=True KFriction=0.500000 KImpactThreshold=700.000000 End Object KParams=KarmaParamsRBFull'DKoppIIVehicles.BattleMaster.KParams0' } Infinite War v5.0.2 construction UIP 2.0 - UIPP(UIP 2.1) Сообщение отредактировал UberSoldier - Среда, 28 Май 14, 00:17
|
193, 28 Мая 14 00:23
Или вот так:
Добавлено (28 Мая 14, 00:20) Цитата У тебя ефекты стандартные, или кастомные? Свои. Добавлено (28 Мая 14, 00:23) Цитата Если у тебя твой танк extends стандартный онсовский танк, и ты хочеш чегото добавить в функцыю, надо ее скопировать полностю из стандартного танка, если ее там нет, то идеш по дереву выше и выше пока ее не найдеш. Если ее нет, либо есть пустая (аж в класе актор), то тогда нечего копировать собственно и просто пишеш свое. Там функции в основном из Vehicle и если я их себе копирую то он мне говорит что типа эта функция уже есть и типа "заменить ее?" - это он спрашивает у меня при кампиляции. Прикрепления: BattleMaster.uc(17Kb)
Infinite War v5.0.2 construction UIP 2.0 - UIPP(UIP 2.1) |
194, 28 Мая 14 02:40
Значит классы этих ефектов у тебя должны иметь отличные от стандарних имена и лежать в папке с кодом техники чтоб не прописывть весь путь. добавляеш в начало класса (где все) переменные var [имя класса ефекта башни без квадратных скобок] CannonEffect; var [имя класса ефекта двигателя без квадратных скобок] ChassisEffect; в любое место функцыи tick добавляеш if ( (Health <= 0.5*HealthMax) || (CannonEffect == none) ) CannonEffect = spawn( [имя класса ефекта башни без квадратных скобок] , self); if ( (Health <= 0.25*HealthMax) || (ChassisEffect == none) ) ChassisEffect = spawn( [имя класса ефекта двигателя без квадратных скобок] , self); Так ефекты должны спавнитса в центре танка, а офсет добавиш в сами емитеры. setbase base и attach часто не роботают, так как связаны с параметрами ефектов (как минимум у ефектов должен стоять bNodelete = false), потому if (CannonEffect != none) { CannonEffect.SetLocation(Location); if ( DriverWeapons[0] != none) CannonEffect.SetRotation(DriverWeapons[0].Rotation); } if (ChassisEffect != none) { ChassisEffect.SetLocation(Location); ChassisEffect.SetRotation(Rotation); } это будет постоянно двигать и поворачивать ефекты относительно положения танка и башни (с DriverWeapons[0] может быть ошыбка, обратишся к класу башни напрямую или както еще, там должен быть rotation башни.) Если у тебя офсет будет в самих емитерах, тогда rotation обязательно задавать. Если ты добавляеш офсет при спавне, не забудь его добавлять и к location-ам, тогда rotation не обязателен Еще чтоб не делать постоянно предидущее, попробуй вместо setbase() сразу после спавна делать вот так if ( (Health <= 0.5*HealthMax) || (CannonEffect == none) ) { CannonEffect = spawn( [имя класса ефекта башни без квадратных скобок] , self); CannonEffect.Attach(self); } if ( (Health <= 0.25*HealthMax) || (ChassisEffect == none) ) { ChassisEffect = spawn( [имя класса ефекта двигателя без квадратных скобок] , self); ChassisEffect.Attach(self); } селф там в скобках, так как это код танка это будет обращение к танку, а не к самому ефекту как кажетса... и не забудь в функцыю Destroyed добавить if (CannonEffect != none) CannonEffect.Destroy(); if (ChassisEffect != none) ChassisEffect.Destroy(); Сообщение отредактировал GP - Среда, 28 Май 14, 02:44
|
195, 28 Мая 14 03:55
Хуя се, спасибо, попробую.
Добавлено (28 Мая 14, 03:32) Добавлено (28 Мая 14, 03:55) Infinite War v5.0.2 construction UIP 2.0 - UIPP(UIP 2.1) |
196, 28 Мая 14 05:14
делай без дефолт пропертис и в спавне указывай адрес своего пакеджа, иногда хочет именно так... var FX_TankDamagedEffect CannonDamage; . . . . CannonDamage = Spawn(class'xxxxx.FX_TankDamagedEffect',self,,Location); если FX_TankDamagedEffect в твоем пакедже и его имя НИ с каким другим не совпадает, то должно роботать... если FX_TankDamagedEffect НЕ в твоем пакедже, надо тот пакедж подгрузить - в начале файла: #EXEC OBJ LOAD FILE=xxxxx.u Ротатить НАДО если офсет бдет в емитере (когда без аттачинга и сетбасинга), а не при спавне. Иначе офсет будет относительно глобальных координат, а не относительно танка... Добавлено (28 Мая 14, 05:14) --------------------------------------------- CannonDamage = Spawn(class'FX_TankDamagedEffect',self,,Location); if( !AttachToBone(CannonDamage,'Turret') ) { log( "Couldn't attach CannonDamage to Turret", 'Error' ); CannonDamage.Destroy(); return; } что за мрак? можно ж проще... if ( (Health <= 0.5*HealthMax) || (CannonDamage == none) ) { CannonDamage = spawn( class'xxxxx.FX_TankDamagedEffect' , self); if (CannonDamage != none) AttachToBone(CannonDamage,'Turret'); } вот лог не понимаю зачем нужен, а вот без проверки if (CannonDamage != none) будет как раз давать в лог ошыбку, как у меня в коде часто... просто раз не приаттачит, а второй раз возьмет и приаттачит, зачем сразу destroy) Сообщение отредактировал GP - Среда, 28 Май 14, 05:17
|
197, 28 Мая 14 05:45
Ага, все работает, только вот 1 нюанс, он мне спавнит его в начале игры как только в технику залазию + когда хп до 50% доходит он мне ещё плодит этот же эффект только в таком колличестве что лагает ужс. Ну я так понял это уже в эмиторе дело?
Добавлено (28 Мая 14, 05:45) Infinite War v5.0.2 construction UIP 2.0 - UIPP(UIP 2.1) |
198, 28 Мая 14 10:01
сорри, проглядел, там в условии должно быть "и" (&&) а не "или" (||), тогда не будет спавнить много...
if ( (Health <= 0.5*HealthMax) && (CannonDamage == none) ) { CannonDamage = spawn( class'xxxxx.FX_TankDamagedEffect' , self); if (CannonDamage != none) AttachToBone(CannonDamage,'Turret'); } стандартный ефект убери, это он зароботал когда пакедж стал подгружаетса. стандартные ефекты спавнятса сразу, и просто отключаютса/включаютса когда надо, а у тебя видимо это не предвидено в ефекте... если не получаетса убрать, сделай для него пустой емитер... а свои спавнь вручную, отдельно для башни и для танка... Сообщение отредактировал GP - Среда, 28 Май 14, 10:05
|
199, 28 Мая 14 11:19
то то я не втыкал до последнего поста почему там ||, ибо знаю что это или
потому что это почти всегда было бы True вроде как всё просто и когда смотришь коды других скриптов там всё тоже просто, но там какраз таки странный дефицит кода когда непонятно откуда появляется то-то, когда его нет в коде и некоторые акторы так вообще чуть ли не пустые. там задаётся одна переменная и она пишется в 3хстрочной функции, а получается вообще актор с кучей функций из кода выше я только не понял что тут проверяется if ( DriverWeapons[0] != none) это отсутствие в 0 слоте(1 место в технике) оружия? кстати, может знает кто почему некоторые акторы не помещаются на карту? я имею ввиду что именно в коде отвечает за то, что этот актор можно непосредственно поместить на карту? так то фактически можно добавить любой актор, но не дружелюбным способом, а ухищрением Мой IP сменился с 89.113.234.78/185.42.146.32 на 83.167.1.167. Теперь будет этот. Надолго. Порты те же. http-сервер .do impossible beat unbeatable |
200, 28 Мая 14 12:47
за помещение на карту отвечает ключ 'placeble' в шапке скрипта... в браузере акторов соответственно есть чекбокс для их отображения...
ну тут по сути проверка НАЛИЧИЯ какого-либо оружея у водителя, тоесть обычно башня танка там лежыт. Проверку (иногда в очень неожыданых местах) надо делать всегда, чтоб небыло вот такого Warning: ProjLensFlare Autoplay.ProjLensFlare (Function LensFlare.ProjLensFlare.Tick:06F5) Accessed None Warning: ProjLensFlare Autoplay.ProjLensFlare (Function LensFlare.ProjLensFlare.Tick:071F) Accessed None 'Master' Warning: ProjLensFlare Autoplay.ProjLensFlare (Function LensFlare.ProjLensFlare.Tick:0727) Accessed None Warning: ProjLensFlare Autoplay.ProjLensFlare (Function LensFlare.ProjLensFlare.Tick:07E7) Accessed None 'Master' Warning: ProjLensFlare Autoplay.ProjLensFlare (Function LensFlare.ProjLensFlare.Tick:06ED) Accessed None 'Master' Warning: ProjLensFlare Autoplay.ProjLensFlare (Function LensFlare.ProjLensFlare.Tick:06F5) Accessed None Warning: ProjLensFlare Autoplay.ProjLensFlare (Function LensFlare.ProjLensFlare.Tick:071F) Accessed None 'Master' Warning: ProjLensFlare Autoplay.ProjLensFlare (Function LensFlare.ProjLensFlare.Tick:0727) Accessed None Warning: ProjLensFlare Autoplay.ProjLensFlare (Function LensFlare.ProjLensFlare.Tick:0837) Accessed None 'Master' Сообщение отредактировал GP - Среда, 28 Май 14, 12:48
|
| |||||||||||||||
| |||||||||||||||