Jump to content

Recommended Posts

You could try to use something like :

<Shape
                Type="CILINDER"
                ContactPointGeneration="VEHICLE"
                MajorRadius="10.99"              /** play arround with these values **/
                Height="94.1434"
                FrontAngle="0d"
                Active="True"
                UsedForHealthBox="True">
                <Offset
                    x="0.0"
                    y="0.0"
                    z="0.0" />
            </Shape>

instead of the complex shape they are trying to use. Also like megumi says: if something is faster then the hexapod there will always be a chance it can escape its crush and make the whole effect look buggy.

Share this post


Link to post

I see, so aside the geometry there's something I can do with the locomator without ruin the eradicator's speed?


Share this post


Link to post

Thanks I think I fixed it

But it still broken on certain condition

 

In my mod I modded the Hex so that each time you add additional mastermind to it the hex will gain more speed and armor, giving players more reason to put more than one mastermind in it in order to get angry bull, they will need to give up on additional fire power in exchange ofc

 

 

So anyway, once it becomes faster it will miss many targets casually when it charge on them

 

From what megumi said it probably the locomotor fault, is there any way to increase the slow acceleration speed together with the speed attribute?

Edited by Egozi44

Share this post


Link to post

What? That's completely not what I've said (again). The locomotor takes seconds, not dist/s^2.

Share this post


Link to post

So there's anything I can do about it?

Share this post


Link to post

Just give the damn thing a fireweaponupdate, that ****s over everything inside its hitbox. It is either that or experiment with one or 2 locomotor based modules and maybe a big chunk of scripted events or such.

 

You could mess arround with :


	<xs:simpleType name="SetLocomotorSpeedUpdateType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="INVALID"/>
			<xs:enumeration value="IN_RANGE_OBJECT_FILTER"/>
		</xs:restriction>
	</xs:simpleType>
	
	<xs:complexType name="SetLocomotorSpeedUpdateModuleData">
		<xs:complexContent>
			<xs:extension base="UpdateModuleData">
				<xs:sequence>
					<xs:element name="ObjectFilter" type="ObjectFilter" minOccurs="0" maxOccurs="1"/>
				</xs:sequence>
				<xs:attribute name="Type" type="SetLocomotorSpeedUpdateType" default="INVALID"/>
				<xs:attribute name="LocomotorSpeedToSet" type="SageReal" default="0.0" />
				<xs:attribute name="LocomotorDeltaPerUpdate" type="SageReal" default="0.0"/>
				<xs:attribute name="OtherScaredScanRangeMultiplier" type="SageReal" default="0.0"/>
				<xs:attribute name="ObjectFilterRange" type="SageReal" default="0.0" />
				<xs:attribute name="UpdatePeriod"	type="Time" default="1.0s"/>
				<!-- Max angle is 180, going over that may not have desired results -->
				<xs:attribute name="VisionArc" type="Angle" default="180d"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

Share this post


Link to post

Don't really sure I understand the code xD

 

And where I need to add these lines? To the locomotor?

 

I'm not used to read too much raw codes, while I did peek at the definition folder very other I usually only pick one code that I know how to use from other unit xml

 

 

You suggest we can also make it as a weapon if we put in it's ***** right?

 

Won't it be buggy?

Edited by Egozi44

Share this post


Link to post

Please at some point do what I tell people over and over:

Start to learn how to really understand stuff, not just copy/paste from others.

  • Upvote 1

Share this post


Link to post

Don't really sure I understand the code xD

<xs:attribute name="LocomotorSpeedToSet" type="SageReal" default="0.0" /> sets a new loco speed

<xs:attribute name="UpdatePeriod" type="Time" default="1.0s"/> default every 1 second i increase my speed

+

<xs:attribute name="LocomotorDeltaPerUpdate" type="SageReal" default="0.0"/> i adjust my speed by this much per second, not sure this is a fixed value or a percentage of the difference(delta) between the normal loco and the new loco

<xs:attribute name="OtherScaredScanRangeMultiplier" type="SageReal" default="0.0"/> don't think you really need this, im guessing its a runaway afraid thing from bfme

<xs:attribute name="ObjectFilterRange" type="SageReal" default="0.0" /> the radius in which this module triggers related to the object filter

<xs:sequence>

<xs:element name="ObjectFilter" type="ObjectFilter" minOccurs="0" maxOccurs="1"/> since you probably want to crush VEHICLES and INFANTRY you use a object filter like that

</xs:sequence>

<xs:attribute name="Type" type="SetLocomotorSpeedUpdateType" default="INVALID"/> you may want to try with IN_RANGE_OBJECT_FILTER instead of invalid

 

 

 

And where I need to add these lines? To the locomotor?

No it is a module, you add that to the behavior section of the unit

 

 

 

I'm not used to read too much raw codes, while I did peek at the definition folder very other I usually only pick one code that I know how to use from other unit xml

 

Well now it is a good time to try, experiment and learn.

 

 

 

You suggest we can also make it as a weapon if we put in it's ***** right?

In theory you can even add a weapon to the crush module it self, or like i said add a fireweapon module that makes it look like you crushed something etc etc.

 

 

 

Won't it be buggy?

Don't get me started on the designs of units like the redeemer, marv, mastadont/mammoth mk2 etc. They might be jerk bait to TS fanboys but in correlation to TW/KW path finding and general building/unit scale they should be considered bugs onto them self's. Watching a Redeemer/Hex/marv trying to cross a base is like watching a puppy with a boner trying to climb a flight of stairs.

You shouldn't worry about bugs when insisting o using those units imo :o

Share this post


Link to post

Please at some point do what I tell people over and over:

Start to learn how to really understand stuff, not just copy/paste from others.

 

There's something I usually say to people when they say something like that but I'm not doing it all the time because they tend to get mad at me after hearing it, In this case I do care about you enough to say it (in a good way ofc),

People with talent and knowledge usually tend to forgot or cease to understand that not any other person is like them, they eventually lose one of the basic things even the dumb person they laughing on know very well (because we humans have a nature to be selfish and mostly look on ourself, therefore even the dumb person who won't understand other's views and issues Will understand it if it something similar to his own)

 

And that that basic thing is the ability to understand others, because you have the talent or work hard to gain the knowledge to the point you forgot how you may was when you just begin doesn't mean that others are the same.

Also another basic thing is that we all basically copy stuff from our environment even without realize it, some stuff may as well be in our gens thanks to our ancestors life's work, As long as we not the very first person who come up with the idea we can't say we hold the right to the original method/object/whatever is it

 

While we all learn by copy stuff, some people get deeper understanding how it work or want to go and increase their knowledge on the matter in order to understand it better, and some aren't, not always because they lazyass people, each person have it own reason on the matter, some don't have a way to study it, some don't have time at their current point at life, some have handicaps and disabilities, yet there always be that person who had easy life reaching to the top for whatever reason and won't understand how others didn't, some of these types also tend to correct others on very small matters that annoy them because they used to perfection, but that not how our world work is it?

We all humans so it understandable, we all make mistakes and sometimes running wild by our own nature, but it import to have high awareness of yourself, the environment, and these around it.

 

Now back to the thread, Sure I can be lazy (many are) and will prefer to get everything ready in gold salver (many are), but if I really was that kind of person believe me that you would've seen new thread that was made by me each day, I ran into many blocks in my mod and in many cases was able to fix them alone before running and post here something xD

 

I don't know xml from zero and hell.. I don't know if I can even learn it in my country, not to mention that even notes and instructions are something that were made by people who know it, that create situations in which new person sometimes not able to understand them without some aid from a teacher (because we all have our own limit at self study), but people with talent also not tend to understand it and just don't understand why that person can't manage study it alone, thinking right away that person is lazy or not serious about learning it.

If you willing to teach me xml from zero I'm all hears but I assume you also don't have time for these stuff atm ;)

 

There are many stuff I learned by myself or by looking at other's works (again that what most of us do without realize it) aside xml, in xml I never had someone to teach me the basis (well aside Zack4ever, but he showed me the basic of modding rather than just xml), I just work with what I can while trying to look at the definitions and think out of the box when I can (and asking many stuff here ofc)

 

 

 

 

<xs:attribute name="LocomotorSpeedToSet" type="SageReal" default="0.0" /> sets a new loco speed

<xs:attribute name="UpdatePeriod" type="Time" default="1.0s"/> default every 1 second i increase my speed

+

<xs:attribute name="LocomotorDeltaPerUpdate" type="SageReal" default="0.0"/> i adjust my speed by this much per second, not sure this is a fixed value or a percentage of the difference(delta) between the normal loco and the new loco

<xs:attribute name="OtherScaredScanRangeMultiplier" type="SageReal" default="0.0"/> don't think you really need this, im guessing its a runaway afraid thing from bfme

<xs:attribute name="ObjectFilterRange" type="SageReal" default="0.0" /> the radius in which this module triggers related to the object filter

<xs:sequence>

<xs:element name="ObjectFilter" type="ObjectFilter" minOccurs="0" maxOccurs="1"/> since you probably want to crush VEHICLES and INFANTRY you use a object filter like that

</xs:sequence>

<xs:attribute name="Type" type="SetLocomotorSpeedUpdateType" default="INVALID"/> you may want to try with IN_RANGE_OBJECT_FILTER instead of invalid

 

I still don't really understand it raw without real example,

what I done so far is adding to the Eradicator's mastermind upgrade this AttributeModifier

 

<AssetDeclaration xmlns="uri:ea.com:eala:asset">

<AttributeModifier StackingLimit="3" id="AttributeModifier_ChargeDefenses2">

<Modifier Value="90%" Type="ARMOR"/>

<Modifier Value="150%" Type="SPEED"/>

</AttributeModifier>

</AssetDeclaration>

 

So that each mastermind that get in will increase these Values

 

 

Edit

Look at the codes again I start to get the feeling I understand them but I still don't see how they can help my current situation, I think trying the legs weapon is better idea

 

Well now it is a good time to try, experiment and learn.

Already done that long ago, if you feel like reading a wall, read all what I said above :P

 

 

 

In theory you can even add a weapon to the crush module it self, or like i said add a fireweapon module that makes it look like you crushed something etc etc.

To the crush itself? sound awesome, did you had any ideas in mind for fireweapon module?

I had other idea, adding weapon to each of the Eradicator legs and that thing in the middle/his alien's *****? (if they all have bones... they must have, right? right? D: )

 

Set it's damage to 999999, radius and range to 1-2, exclude anything it shouldn't be able to crush

 

Any ideas for better way to pull it? because if the legs don't have bones, I screwed xD

(Nvm I forgot it have footprints, means it have bones, and in worse case I can just add them... though I hate mess with unit's that have too many)

Edited by Egozi44

Share this post


Link to post

I can agree with a lot of what you've written but it's about the transfer of what you've learned already to be able to infer new solutions, which I just don't see. With just copying you seemingly never answer the question for yourself "why does this setting do what it does".

For xml itself: there are thousands of resources out there which explain it very well. xml itself is really simple, it's just a human readable representation of settings, either via simple attributes or simple to more complex elements.

Just sit back for a bit for a few of your files and look at them. Go through them and for each attribute just by its name think about what it probably does. They are very well named usually or the context is usually enough to infer what they do. That is basically all what xml is about. And for possible values check the xsd (which is just xml defining another xml structure) for TW, or the definitions for WrathEd (also basically the same as xsd, just slightly different as I am not legally able to provide the xsd for WrathEd).

 

Yes going through all that stuff takes a long time, but it is necessary to be able to see what's possible. There are quite some logical combinations of behaviors for example to create an expected result. Yes some don't work anymore as the devs just hadn't had the time to fix them, but that's just trial and error (where you can also ask if you're running into a problem where certain settings run into unexpected behavior).

Share this post


Link to post

So I finally moved back and focus on the Eradicator crush weapon, The weapon I added to it's legs work alright but it have two issues

 

It can crush garrison infantries. and even after I excluded structures the Eradicator will destroy them (the enemy's structures) in one shot when it in zero range and ONLY when I ordering it to attack structures (not while it moving on or next to the structures since they excluded), my guess is that it happened because the crush weapon which have 1 range and 99999 damage decide to join the party

 

What I can do to fix these issues?

 

here the weapon

 

<?xml version="1.0" encoding="utf-8"?>
<AssetDeclaration xmlns="uri:ea.com:eala:asset">
	<WeaponTemplate
		id="EradicatorLegsWeapon"
		Name="EradicatorLegsWeapon"
		AttackRange="1"
		MinimumAttackRange="0"
		RangeBonusMinHeight="0"
		RangeBonus="0"
		RangeBonusPerFoot="0"
		RequestAssistRange="0"
		AcceptableAimDelta="0d"
		AimDirection="0d"
		ScatterRadius="0"
		ScatterLength="0"
		ScatterTargetScalar="0"
		WeaponSpeed="99999"
		MinWeaponSpeed="99999"
		MaxWeaponSpeed="99999"
		IdleAfterFiringDelaySeconds="-1s"
		HoldAfterFiringDelaySeconds="0s"
		WeaponRecoil="0d"
		MinTargetPitch="-180d"
		MaxTargetPitch="180d"
		FireFX=""
		FireVeteranFX=""
		FireFlankFX=""
		PreAttackFX=""
		ClipSize="99999"
		ContinuousFireOne="99999"
		ContinuousFireTwo="99999"
		ContinuousFireCoastSeconds="0s"
		AutoReloadWhenIdleSeconds="0s"
		ShotsPerBarrel="0"
		RequiredFiringObjectStatus=""
		ForbiddenFiringObjectStatus=""
		ContinueAttackRange="0"
		SuspendFXDelaySeconds="0s"
		HitPercentage="100%"
		HitPassengerPercentage="100%"
		HealthProportionalResolution="0"
		MaxAttackPassengers="0"
		RestrictedHeightRange="0"
		Flags="NONE"
		PreAttackType="PER_SHOT"
		ReAcquireDetailType="PER_SHOT"
		AutoReloadsClip="AUTO"
		SingleAmmoReloadedNotFullSound=""
		ClipReloadedSound=""
		ProjectileCollidesWith="ENEMIES NEUTRAL"
		AntiMask="ANTI_GROUND"
		ProjectileStreamName=""
		ScatterIndependently="False"
		DisableScatterForTargetsOnWall="False"
		ScaleWeaponSpeed="False"
		CanBeDodged="False"
		HoldDuringReload="False"
		CanFireWhileMoving="True"
		CanFireWhileCharging="True"
		FiringLoopSoundContinuesDuringReload="True"
		FiringLoopSoundPlaysOnlyForAttackPosition="False"
		DamageDealtAtSelfPosition="False"
		CheckStatusFlagsInRangeChecks="True"
		ProjectileSelf="False"
		MeleeWeapon="False"
		ChaseWeapon="False"
		LeechRangeWeapon="False"
		HitStoredTarget="False"
		CapableOfFollowingWaypoints="False"
		ShowsAmmoPips="False"
		AllowAttackGarrisonedBldgs="False"
		PlayFXWhenStealthed="False"
		IgnoreLinearFirstTarget="False"
		ForceDisplayPercentReady="False"
		IsAimingWeapon="False"
		NoVictimNeeded="False"
		RotatingTurret="False"
		PassengerProportionalAttack="False"
		FinishAttackOnceStarted="True"
		CannotTargetCastleVictims="False"
		RequireFollowThru="False"
		ShareTimers="False"
		ShouldPlayUnderAttackEvaEvent="True"
		InstantLoadClipOnActivate="False"
		LockWhenUsing="False"
		BombardType="False"
		UseInnateAttributes="False"
		StopFiringOnCanBeInvisible="False"
		ContactWeapon="False">
		<FiringDuration
			MinSeconds="0.1s"
			MaxSeconds="0.1s" />
		<ClipReloadTime
			MinSeconds="0.1s"
			MaxSeconds="0.1s" />
		<Nuggets>
			<DamageNugget
				PartitionFilterTestType="EXTENTS_3D"
				ForbiddenTargetObjectStatus=""
				ForbiddenTargetModelCondition=""
				RequiredObjectStatus=""
				Damage="99999"
				DamageTaperOff="0"
				Radius="1"
				MinRadius="0"
				DamageArc="360d"
				DamageMaxHeight="-1"
				DamageMaxHeightAboveTerrain="-1"
				FlankingBonus="0"
				FlankedScalar="1"
				DelayTimeSeconds="0s"
				DamageType="GUN"
				DeathType="CRUSHED"
				DamageFXType="UNDEFINED"
				DamageSubType="NORMAL"
				DrainLifeMultiplier="1"
				DamageSpeed="0"
				VictimShroudRevealer=""
				DamageArcInverted="False"
				AcceptDamageAdd="True"
				OnlyKillOwnerWhenTriggered="False"
				DrainLife="False"
				CylinderAOE="False" />
		</Nuggets>
	</WeaponTemplate>
</AssetDeclaration>
Edited by Egozi44

Share this post


Link to post

try changing the following in the dmgnugget it to this:

 


ForbiddenTargetModelCondition="GARRISONED"

 

or maybe add

 

ForbiddenFiringObjectStatus="ATTACKING_GARRISONED_STRUCTURE"

to the weapon itself

 

 

you could also try to add a damagescalar like:

 

<DamageScalarDetails Scalar= "0%">
                    <Filter
                        Rule="NONE"
                        Include="STRUCTURE" />
</DamageScalarDetails>

Share this post


Link to post

Sorry for the delay

 

I tried the follows and it still kill buildings in one shot from 0 range (I still didn't test the grassing with the updated weapon though)

I also found something strange, it seem that WED removing code lines I add after compiling

 

That what I added using the buggy ver:

 

<?xml version="1.0" encoding="utf-8"?>
<AssetDeclaration xmlns="uri:ea.com:eala:asset">
<WeaponTemplate id="EradicatorLegsWeapon" Name="EradicatorLegsWeapon" AttackRange="1" 
WeaponSpeed="99999" FireFX="" CanFireWhileMoving="True"
CanFireWhileCharging="True"
AntiMask="ANTI_GROUND"
AllowAttackGarrisonedBldgs="False" ForbiddenFiringObjectStatus="ATTACKING_GARRISONED_STRUCTURE ATTACKING_HUGE_VEHICLE ATTACKING_AIRCRAFT" ClipSize="99999"  
ProjectileCollidesWith="ENEMIES NEUTRAL">
<FiringDuration MinSeconds="0.1s" MaxSeconds="0.1s" />
<ClipReloadTime MinSeconds="0.1s" MaxSeconds="0.1s" />
<Nuggets>
<DamageNugget Damage="99999" DamageTaperOff="0" Radius="1" 
DamageType="GUN" DeathType="CRUSHED" 
ForbiddenTargetModelCondition="GARRISONED"/>
<SpecialObjectFilter Exclude="AIRCRAFT STRUCTURE HUGE_VEHICLE" Include="INFANTRY VEHICLE ALLIES" Relationship="ENEMIES NEUTRAL" Rule="ALL">
<ExcludeThing>NODKane</ExcludeThing>
<ExcludeThing>MutantMarauderCommando</ExcludeThing>
<ExcludeThing>SupremeCommando</ExcludeThing>
<ExcludeThing>Ravendark</ExcludeThing>
<ExcludeThing>MarkedOfKaneCyborgCommando</ExcludeThing>
<ExcludeThing>Traveler59Miracle</ExcludeThing>
</SpecialObjectFilter>
<DamageScalarDetails Scalar= "0%">
                    <Filter
                        Rule="NONE"
                        Include="STRUCTURE GARRISONED HUGE_VEHICLE AIRCRAFT" />
</DamageScalarDetails>
</Nuggets>
</WeaponTemplate>
</AssetDeclaration>

 

And that how it come out....

 

 

<?xml version="1.0" encoding="utf-8"?>
<AssetDeclaration xmlns="uri:ea.com:eala:asset">
	<WeaponTemplate
		id="EradicatorLegsWeapon"
		Name="EradicatorLegsWeapon"
		AttackRange="1"
		MinimumAttackRange="0"
		RangeBonusMinHeight="0"
		RangeBonus="0"
		RangeBonusPerFoot="0"
		RequestAssistRange="0"
		AcceptableAimDelta="0d"
		AimDirection="0d"
		ScatterRadius="0"
		ScatterLength="0"
		ScatterTargetScalar="0"
		WeaponSpeed="99999"
		MinWeaponSpeed="99999"
		MaxWeaponSpeed="99999"
		IdleAfterFiringDelaySeconds="-1s"
		HoldAfterFiringDelaySeconds="0s"
		WeaponRecoil="0d"
		MinTargetPitch="-180d"
		MaxTargetPitch="180d"
		FireFX=""
		FireVeteranFX=""
		FireFlankFX=""
		PreAttackFX=""
		ClipSize="99999"
		ContinuousFireOne="99999"
		ContinuousFireTwo="99999"
		ContinuousFireCoastSeconds="0s"
		AutoReloadWhenIdleSeconds="0s"
		ShotsPerBarrel="0"
		RequiredFiringObjectStatus=""
		ForbiddenFiringObjectStatus="ATTACKING_GARRISONED_STRUCTURE"
		ContinueAttackRange="0"
		SuspendFXDelaySeconds="0s"
		HitPercentage="100%"
		HitPassengerPercentage="100%"
		HealthProportionalResolution="0"
		MaxAttackPassengers="0"
		RestrictedHeightRange="0"
		Flags="NONE"
		PreAttackType="PER_SHOT"
		ReAcquireDetailType="PER_SHOT"
		AutoReloadsClip="AUTO"
		SingleAmmoReloadedNotFullSound=""
		ClipReloadedSound=""
		RadiusDamageAffects="ALLIES ENEMIES NEUTRALS"  <--- I deleted this but it keep reappearing and the entire exclude setion not there --->
		ProjectileCollidesWith="ENEMIES NEUTRAL"
		AntiMask="ANTI_GROUND"
		ProjectileStreamName=""
		ScatterIndependently="False"
		DisableScatterForTargetsOnWall="False"
		ScaleWeaponSpeed="False"
		CanBeDodged="False"
		HoldDuringReload="False"
		CanFireWhileMoving="True"
		CanFireWhileCharging="True"
		FiringLoopSoundContinuesDuringReload="True"
		FiringLoopSoundPlaysOnlyForAttackPosition="False"
		DamageDealtAtSelfPosition="False"
		CheckStatusFlagsInRangeChecks="True"
		ProjectileSelf="False"
		MeleeWeapon="False"
		ChaseWeapon="False"
		LeechRangeWeapon="False"
		HitStoredTarget="False"
		CapableOfFollowingWaypoints="False"
		ShowsAmmoPips="False"
		AllowAttackGarrisonedBldgs="False"
		PlayFXWhenStealthed="False"
		IgnoreLinearFirstTarget="False"
		ForceDisplayPercentReady="False"
		IsAimingWeapon="False"
		NoVictimNeeded="False"
		RotatingTurret="False"
		PassengerProportionalAttack="False"
		FinishAttackOnceStarted="True"
		CannotTargetCastleVictims="False"
		RequireFollowThru="False"
		ShareTimers="False"
		ShouldPlayUnderAttackEvaEvent="True"
		InstantLoadClipOnActivate="False"
		LockWhenUsing="False"
		BombardType="False"
		UseInnateAttributes="False"
		StopFiringOnCanBeInvisible="False"
		ContactWeapon="False">
		<FiringDuration
			MinSeconds="0.1s"
			MaxSeconds="0.1s" />
		<ClipReloadTime
			MinSeconds="0.1s"
			MaxSeconds="0.1s" />
		<Nuggets>
			<DamageNugget
				PartitionFilterTestType="EXTENTS_3D"
				ForbiddenTargetObjectStatus=""
				ForbiddenTargetModelCondition="GARRISONED"
				RequiredObjectStatus=""
				Damage="99999"
				DamageTaperOff="0"
				Radius="1"
				MinRadius="0"
				DamageArc="360d"
				DamageMaxHeight="-1"
				DamageMaxHeightAboveTerrain="-1"
				FlankingBonus="0"
				FlankedScalar="1"
				DelayTimeSeconds="0s"
				DamageType="GUN"
				DeathType="CRUSHED"
				DamageFXType="UNDEFINED"
				DamageSubType="NORMAL"
				DrainLifeMultiplier="1"
				DamageSpeed="0"
				VictimShroudRevealer=""
				DamageArcInverted="False"
				AcceptDamageAdd="True"
				OnlyKillOwnerWhenTriggered="False"
				DrainLife="False"
				CylinderAOE="False" />
		</Nuggets>
	</WeaponTemplate>
</AssetDeclaration>
Edited by Egozi44

Share this post


Link to post

Deleting it from the xml doesn't mean it is not there, it means you don't define it, so it reverts to its default settings:

 

<xs:attribute name="RadiusDamageAffects" type="WeaponAffectsBitFlags" default="ALLIES ENEMIES NEUTRALS"/>

 

You made syntax errors, so it probably didn't compile it because it gave a error.

 

 

<Nuggets>
<DamageNugget Damage="99999" DamageTaperOff="0" Radius="1" 
DamageType="GUN" DeathType="CRUSHED" 
ForbiddenTargetModelCondition="GARRISONED"/>

/** should'nt be a /> but a >, because you are not closing the damagenugget here **/

<SpecialObjectFilter Exclude="AIRCRAFT STRUCTURE HUGE_VEHICLE" Include="INFANTRY VEHICLE ALLIES" Relationship="ENEMIES NEUTRAL" Rule="ALL">
<ExcludeThing>NODKane</ExcludeThing>
<ExcludeThing>MutantMarauderCommando</ExcludeThing>
<ExcludeThing>SupremeCommando</ExcludeThing>
<ExcludeThing>Ravendark</ExcludeThing>
<ExcludeThing>MarkedOfKaneCyborgCommando</ExcludeThing>
<ExcludeThing>Traveler59Miracle</ExcludeThing>
</SpecialObjectFilter>
<DamageScalarDetails Scalar= "0%">
<Filter
Rule="NONE"
Include="STRUCTURE GARRISONED HUGE_VEHICLE AIRCRAFT" />
</DamageScalarDetails>

/** didnt close the damagenugget here with </damagenugget> **/

</Nuggets>

DamageScalarDetails is part of the damagenugget so it should look like:

 

<nuggets>

<damagenugget>

<damagescalardetails>

</damagescalardetails>

</damagenugget>

</nuggets>

Edited by Ravendark

Share this post


Link to post

I tried that when I edited the xml, but once I do it the xml become broken

 

I'm aware that wed will look for default in some cases but usually removing the radius damage affect worked for me, I also don't sure why it remove all of my filter list

 

What do you think I can do to solve it? Just adding the > ?

 

I need to see first why the xml don't let me leave it open to begin with

Edited by Egozi44

Share this post


Link to post

It removed you filter becaus they were WRONG.

 

DamageScalalar and SpecialObjectFilter are SUBSETTINGs of DamageNugget, so they need to have <DamageNugget> before them and </DamageNugget> to tell the game which damage nugget they belong to.

Share this post


Link to post

It should have cancelled the compilation with an error message, I guess you're reading the data from an old version.

Share this post


Link to post

usually removing the radius damage affect worked for me,

 

Shouldnt work like that, you remove a required atribute, it will either give a error or revert to default values.

 

I also don't sure why it remove all of my filter list

 

 

I need to see first why the xml don't let me leave it open to begin with

Basically what i said in my previous post and stygs repeated:

You need to use the

<damagenugget>

</damagenugget>

As the scalardetails and specialobjectfilter are part of the damagenugget complex type. They can not exist on their own or in your case within the <nugget></nugget> complex type. They can only be part of the <damagenugget>(which for the specialobjectfilter it inherits from the weaponeffect nugget)

<xs:complexType name="DamageNuggetType">
		<xs:complexContent>
			<xs:extension base="WeaponEffectNugget">
				<xs:sequence>
					<xs:element name="DamageScalarDetails" type="ScalarInfo" minOccurs="0" maxOccurs="unbounded" />
				</xs:sequence>

...
<xs:complexType name="WeaponEffectNugget" xas:isPolymorphic="true">
		<xs:sequence>
			<xs:element name="SpecialObjectFilter" type="ObjectFilter" minOccurs="0" maxOccurs="1" />

...

whenever you call a attribute only in a complextype you can usually get away with using only one bracket (is that the correct English term? the correct term is escaping me atm )

 

<Dostuff  name:""  radius:""  duration:""  morestuff:"" />

and you can END the complextype there. When you use a sequence(more or less a function within a function) you need to tell the code that it is part of that complextype.

 

<dostuff  name,radius,duration,morestuff >  no /> because its not stopping there
<newsequence otherattributes> /> not closing there either because we want to add a objectfilter
<objectfilter>objects</objectfilter>
</newsequence> now we close this sequence with </
and now we can close dostuff aswell
</dostuff>

This is a good example why it is important to learn what you are doing instead of just copy pasting from other units/weapons. You basicly copy the

 

<SpecialObjectFilter Exclude="AIRCRAFT STRUCTURE HUGE_VEHICLE" Include="INFANTRY VEHICLE ALLIES" Relationship="ENEMIES NEUTRAL" Rule="ALL">
<ExcludeThing>NODKane</ExcludeThing>
<ExcludeThing>MutantMarauderCommando</ExcludeThing>
<ExcludeThing>SupremeCommando</ExcludeThing>
<ExcludeThing>Ravendark</ExcludeThing>
<ExcludeThing>MarkedOfKaneCyborgCommando</ExcludeThing>
<ExcludeThing>Traveler59Miracle</ExcludeThing>
</SpecialObjectFilter>
 

which tells you everything we told you above...you need to start and end correctly....<specialobjectfilter></specialobjectfilter>

but because you are so used to copy/pasting whole sections of code, you probably didn't check that you used the <damagenugget> correctly in the sameway.

 

I had this teacher in college who used to say that their is no point in reinventing hot water, but nevertheless you need to learn how to boil it.

 

edit: in hindsight i think your object filter is setup incorrectly as well.

by using the ALL rule you tell the object filter to only apply itself to objects that have the INFANTRY and VEHICLE and ALLIES at the same time, pretty sure there isn't a unit/object in game atm that has all of those kindofflags at the same time.

Secondly ALLIES doesn't work in your kindof filter. Meaning Exclude and Include reference the Kindofbitflags list...there isnt a ALLIES in that list so that should've given a error as well. allies is a relationship filter only thing.

Edited by Ravendark

Share this post


Link to post

I did said I tried to close a few things and it didn't work didn't I? :P

Even little silly me noticed that the </damagenugget> is missing and that <damagenugget don't need to end with /> without any of you needed to tell me, When I did tried it the xml just broke apart so I thought I either messed up or it just because it was the buggy ver of WED I don't need to do it for whatever reason xD

 

Anyway I made this before you posted your post xD mind telling me if it better? (WED seem to accept it this time around)

 

<?xml version="1.0" encoding="utf-8"?>
<AssetDeclaration xmlns="uri:ea.com:eala:asset">
	<WeaponTemplate
		id="EradicatorLegsWeapon"
		Name="EradicatorLegsWeapon"
		AttackRange="1"
		MinimumAttackRange="0"
		RangeBonusMinHeight="0"
		RangeBonus="0"
		RangeBonusPerFoot="0"
		RequestAssistRange="0"
		AcceptableAimDelta="0d"
		AimDirection="0d"
		ScatterRadius="0"
		ScatterLength="0"
		ScatterTargetScalar="0"
		WeaponSpeed="99999"
		MinWeaponSpeed="99999"
		MaxWeaponSpeed="99999"
		IdleAfterFiringDelaySeconds="-1s"
		HoldAfterFiringDelaySeconds="0s"
		WeaponRecoil="0d"
		MinTargetPitch="-180d"
		MaxTargetPitch="180d"
		FireFX=""
		FireVeteranFX=""
		FireFlankFX=""
		PreAttackFX=""
		ClipSize="99999"
		ContinuousFireOne="99999"
		ContinuousFireTwo="99999"
		ContinuousFireCoastSeconds="0s"
		AutoReloadWhenIdleSeconds="0s"
		ShotsPerBarrel="0"
		RequiredFiringObjectStatus=""
		ForbiddenFiringObjectStatus="ATTACKING_GARRISONED_STRUCTURE"
		ContinueAttackRange="0"
		SuspendFXDelaySeconds="0s"
		HitPercentage="100%"
		HitPassengerPercentage="100%"
		HealthProportionalResolution="0"
		MaxAttackPassengers="0"
		RestrictedHeightRange="0"
		Flags="NONE"
		PreAttackType="PER_SHOT"
		ReAcquireDetailType="PER_SHOT"
		AutoReloadsClip="AUTO"
		SingleAmmoReloadedNotFullSound=""
		ClipReloadedSound=""
		ProjectileCollidesWith="ENEMIES NEUTRAL"
		AntiMask="ANTI_GROUND"
		ProjectileStreamName=""
		ScatterIndependently="False"
		DisableScatterForTargetsOnWall="False"
		ScaleWeaponSpeed="False"
		CanBeDodged="False"
		HoldDuringReload="False"
		CanFireWhileMoving="True"
		CanFireWhileCharging="True"
		FiringLoopSoundContinuesDuringReload="True"
		FiringLoopSoundPlaysOnlyForAttackPosition="False"
		DamageDealtAtSelfPosition="False"
		CheckStatusFlagsInRangeChecks="True"
		ProjectileSelf="False"
		MeleeWeapon="False"
		ChaseWeapon="False"
		LeechRangeWeapon="False"
		HitStoredTarget="False"
		CapableOfFollowingWaypoints="False"
		ShowsAmmoPips="False"
		AllowAttackGarrisonedBldgs="False"
		PlayFXWhenStealthed="False"
		IgnoreLinearFirstTarget="False"
		ForceDisplayPercentReady="False"
		IsAimingWeapon="False"
		NoVictimNeeded="False"
		RotatingTurret="False"
		PassengerProportionalAttack="False"
		FinishAttackOnceStarted="True"
		CannotTargetCastleVictims="False"
		RequireFollowThru="False"
		ShareTimers="False"
		ShouldPlayUnderAttackEvaEvent="True"
		InstantLoadClipOnActivate="False"
		LockWhenUsing="False"
		BombardType="False"
		UseInnateAttributes="False"
		StopFiringOnCanBeInvisible="False"
		ContactWeapon="False">
		<FiringDuration
			MinSeconds="0.1s"
			MaxSeconds="0.1s" />
		<ClipReloadTime
			MinSeconds="0.1s"
			MaxSeconds="0.1s" />
		<Nuggets>
			<DamageNugget
				PartitionFilterTestType="EXTENTS_3D"
				ForbiddenTargetObjectStatus=""
				ForbiddenTargetModelCondition="GARRISONED"
				RequiredObjectStatus=""
				Damage="99999"
				DamageTaperOff="0"
				Radius="1"
				MinRadius="0"
				DamageArc="360d"
				DamageMaxHeight="-1"
				DamageMaxHeightAboveTerrain="-1"
				FlankingBonus="0"
				FlankedScalar="1"
				DelayTimeSeconds="0s"
				DamageType="GUN"
				DeathType="CRUSHED"
				DamageFXType="UNDEFINED"
				DamageSubType="NORMAL"
				DrainLifeMultiplier="1"
				DamageSpeed="0"
				VictimShroudRevealer=""
				DamageArcInverted="False"
				AcceptDamageAdd="True"
				OnlyKillOwnerWhenTriggered="False"
				DrainLife="False"
				CylinderAOE="False" >
<SpecialObjectFilter Exclude="AIRCRAFT STRUCTURE HUGE_VEHICLE" Include="INFANTRY VEHICLE ALLIES" Relationship="ENEMIES NEUTRAL" Rule="ALL">
<ExcludeThing>NODKane</ExcludeThing>
<ExcludeThing>MutantMarauderCommando</ExcludeThing>
<ExcludeThing>SupremeCommando</ExcludeThing>
<ExcludeThing>MarkedOfKaneCyborgCommando</ExcludeThing>
<ExcludeThing>Traveler59Miracle</ExcludeThing>
</SpecialObjectFilter>
<DamageScalarDetails Scalar= "0%">
                    <Filter
                        Rule="NONE"
                        Include="STRUCTURE" />
</DamageScalarDetails>
<DamageScalarDetails Scalar= "0%">
                    <Filter
                        Rule="NONE"
                        Include="GARRISONED" />
</DamageScalarDetails>
<DamageScalarDetails Scalar= "0%">
                    <Filter
                        Rule="NONE"
                        Include="HUGE_VEHICLE" />
</DamageScalarDetails>
<DamageScalarDetails Scalar= "0%">
                    <Filter
                        Rule="NONE"
                        Include="AIRCRAFT" />
</DamageScalarDetails>
</DamageNugget>
		</Nuggets>
	</WeaponTemplate>
</AssetDeclaration>

 

Also I don't sure what the different from ALL and ANY

 

What you told me to change again there and why?

 

 

 

EDIT

 

wait a sec...ALLIES don't was supposed to be there o_o, I didn't copy this one and don't sure why the hell I added it there

 

And iirc from my tests two things in the same Include filter work well in WED, can be wrong though

Edited by Egozi44

Share this post


Link to post

Well, "Include="INFANTRY VEHICLE ALLIES" is certainly wrong as ALLIES is not a kindof and thus shouldnt work.

 

ALL meany you need to fullfill all conditions, (have all the Included= kindofs, none of the Excluded= kindofs and the required relation). ANY means its enough when it fullfills some of the conditions.

Share this post


Link to post

For the most part that should work, with exception to the allies and probably the ALL thing still. Test it and find out.

Share this post


Link to post

Thanks for the info

 

I test it just once, but it seem like it was fixed, thanks a bunch :D

If I will run into issue I will report

 

 

Just one last thing, I don't know if it worth open new thread for so I ask it here and risk being ignored ;D

 

I learned how to make model for 3D formation effect, but some "line" thingy effect not appear in them

 

Here exsmple of what I talking about

cnc3ep1-2015-06-28-1716452.gif

 

 

 

 

That bus formation was fixed by someone who is greater being compared to me made it for his and my mod, but I don't sure what he done in order to add the line effect the other units shows, Stygs said it was some special UV map setting, I know how to use UV mapping in max to some degree but don't sure how to make that line to appear, any chance someone can tell me how to add it?

Edited by Egozi44

Share this post


Link to post

Wow thanks, will give it a go

 

You think they also have a guide to fix imported units treads there? searching in PPM and google didn't bear any fruit

PPM give the impression they strict about rules so I don't want open thread that asking for it if it already exist xD

 

 

 

Edit:

Seem like they have Tutorial Requests there

 

hopefully someone will reply

Edited by Egozi44

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×