找回密码
 注册
X系列官方授权正版
搜索
查看: 1784|回复: 2

[分享] 两MOD高手关于Ability和Buff的对话

[复制链接]
发表于 2008-3-24 15:13:11 | 显示全部楼层 |阅读模式
两人分别是Uzii和Anatter,转过来给大家看看。

Adding buffs without abilities.I want all my ships to have invisible buffs.
I want to add critical damage buffs to all of my ships, which will cripple the ship temporarily after various amounts of damage are received.

I know I can add it to all ships by making it a passive ability, or by attaching it to each planet type. Is there a way to add buffs on spawn or in the entity config?





March 19, 2008 16:19:32
This is not possible, you have to keep the same structure. Entities have up to their 4 "abilities". The ability files always define requirements, targetting data, strings, etc, and call the buff file for the actual ability effect. There's no way to bypass the ability file entirely and apply the buff directly, since it's the ability itself that calls the buff.

You can make passive abilities, but they would have to occupy the ability slots.



file:///C:/Documents%20and%20Settings/SLIF021/Desktop/Adding%20buffs%20without%20abilities_%20file:///C:/Documents%20and%20Settings/SLIF021/Desktop/Adding%20buffs%20without%20abilities_%20


March 19, 2008 16:38:54
Very interesting how this has come up now. I am experimenting with Buffs and Abilities, and although this isn't exactly what I have been doing, I can help.

It is true what Annatar says, all but one thing:

You can make passive abilities, but they would have to occupy the ability slots.


I don't know the ins and outs of your Buff/Ability but you can define a Buff to trigger another Buff. So although the Ability would have to be there, it could trigger more than one Buff. I'm not 100% sure about adding the Passive bit to a Buff, but you could edit the Abilities already present, and add in another Buff.

I can't really explain it, as it would be pages and hours, but just search the Buff files and look for: numPeriodicActions #, Where # is a number above 0. You will see a big list below, similar to an Ability file.

I hope this helps, good luck.



file:///C:/Documents%20and%20Settings/SLIF021/Desktop/Adding%20buffs%20without%20abilities_%20file:///C:/Documents%20and%20Settings/SLIF021/Desktop/Adding%20buffs%20without%20abilities_%20
March 19, 2008 17:33:03
Well, true, you could have several buffs attached to an ability, within limits. the point I was trying to make is that you can't bypass the need to have an "ability" attached to a ship. So, for example, there wouldn't be any way to add what you want to a capital ship without either removing one of its existing abilities, or in a few cases added to their existing ones.

I'm not 100% sure about adding the Passive bit to a Buff, but you could edit the Abilities already present, and add in another Buff.



This gets complicated. The best way to think of it is that the Buff says "what" it does, and the Ability says "how" it does it. So a buff applies damage, but the ability defines what can be targeted at what range, how much AM it costs, etc.

The ability file can only call one buff, so to add more you need to call buffs from other buffs, so on so forth.

(I know this isn't what you meant when you said to edit the present abilities, I'm just expanding)



file:///C:/Documents%20and%20Settings/SLIF021/Desktop/Adding%20buffs%20without%20abilities_%20file:///C:/Documents%20and%20Settings/SLIF021/Desktop/Adding%20buffs%20without%20abilities_%20




March 19, 2008 17:57:35

The ability file can only call one buff, so to add more you need to call buffs from other buffs, so on so forth.



Yes, thats true. It gets very complex then, as I'm finding out.

I have a question while we're on this subject; Can a Passive ability be altered to fire off its Buff 'once'? I am trying to apply a Buff to ships starting in a gravity well, then remove the ability so that it doesn't effect anything else that enters that sector. Or is there anything you could suggest that would give that effect?

I've tried using a normal fire once ability, but planets, as far as I've seen, don't seem too happy about doing this, namely, it minidumps. I'm still toying at the moment, but if you could throw anything in, I'd greatly appreciate it. (Sorry for the off topic post)



file:///C:/Documents%20and%20Settings/SLIF021/Desktop/Adding%20buffs%20without%20abilities_%20file:///C:/Documents%20and%20Settings/SLIF021/Desktop/Adding%20buffs%20without%20abilities_%20




March 19, 2008 18:20:59
Oh that's a tricky one. I haven't tried doing that, but it might be doable.

How exactly do you need it to work? For example, when the map starts the planet would apply that buff to the militia ships around it, but nothing else?

Thinking out loud - whether it's an InstantAction or a PeriodicAction, it will always remain "active" as long as there's no finish condition. If it's an InstantAction, it *should* always be applied, so even if you limit the number of targets, as you destroy the ships it was supposed to affect it will likely be applied to yours. If it's a PeriodicAction, it should be re-applied on intervals, instead.

I guess the first thing I'd try is to see if:

numPeriodicActions 1
periodicAction
actionCountType "Infinite"

can be changed to a different actionCountType. I haven't seen any, but maybe you could try "Single" or "Once" or something?



file:///C:/Documents%20and%20Settings/SLIF021/Desktop/Adding%20buffs%20without%20abilities_%20file:///C:/Documents%20and%20Settings/SLIF021/Desktop/Adding%20buffs%20without%20abilities_%20

March 19, 2008 18:26:26
Ha, great minds think alike eh?

I did try this, the reference is 'Finite', but it didn't seem to work. I think, because it is Passive, it just reapplied it again. I've seen 'OnReapply:KeepOldBuff' but that also seemed to do nothing.

The idea is for it to be applied to all ships present (militia) and-

Just had an idea, I'll post back in a bit



file:///C:/Documents%20and%20Settings/SLIF021/Desktop/Adding%20buffs%20without%20abilities_%20file:///C:/Documents%20and%20Settings/SLIF021/Desktop/Adding%20buffs%20without%20abilities_%20




March 19, 2008 18:28:27
Which buff file had the Finite reference? Because logically, making something Finite has to have a definition of how many iterations it needs to do.



file:///C:/Documents%20and%20Settings/SLIF021/Desktop/Adding%20buffs%20without%20abilities_%20file:///C:/Documents%20and%20Settings/SLIF021/Desktop/Adding%20buffs%20without%20abilities_%20





March 19, 2008 18:30:49
Dam, you beat me to my edit file:///C:/Documents%20and%20Settings/SLIF021/Desktop/Adding%20buffs%20without%20abilities_%20

Well, it did, and I changed it to 1, and 1 only. I think it was some Missile ability, and it was 20.

Edit: Oh, and I basically want to make the ships dead in space, or remove their owner.



file:///C:/Documents%20and%20Settings/SLIF021/Desktop/Adding%20buffs%20without%20abilities_%20file:///C:/Documents%20and%20Settings/SLIF021/Desktop/Adding%20buffs%20without%20abilities_%20





March 19, 2008 18:54:12
Sounds like that would have to be a buff within a buff call.. something like periodicAction with the Finite count of 1, applying a buff to ships within grav well (don't remember the reference that the planet abilities use for this). This would call a second buff which just has entityBoolModifiers to disable regeneration/engines/weapons to make the ships dead in space.



file:///C:/Documents%20and%20Settings/SLIF021/Desktop/Adding%20buffs%20without%20abilities_%20file:///C:/Documents%20and%20Settings/SLIF021/Desktop/Adding%20buffs%20without%20abilities_%20





March 19, 2008 19:07:30
Lol. Exactly what I've tried. Buff triggering one Buff. But it just seems to reapply the Ability again, straight away. I've even left it with no finish condition but I think due to it being Passive, it just keeps firing off the Ability regardless.

Tomorrow I'm going to have a play around with Delays, see if I can make any difference to it. And failing that, I'll have to look into the ships themselves, perhaps copy them and change the abilities of the second type so that they start off this way.

It's really frustrating because I have the Buff perfect. Got all the 'Disable ####' in, and made it capturable, and even made the finish condition 'OwnerChanged' so it would go back to normal once captured.

Oh, and I might as well reveal the use of this now. It is for a 'Ship Graveyard', where the ships there are dead in space and capturable. The game doesn't seem to like ships with 'NoOwner' so I've had to introduce all this by using the Ability approach. I was foolish enough to think this might actually be simple. The deeper I go into this game, the more it becomes apparent that we really can't do a lot with these Tools. I hope the Final's allow us to make our own Modifiers and References to groups. There was a 'IsPsi' reference in one, for a constraint, but, you guessed it, it didn't exist for the other 3 races (Pirates being the one I wanted). I even tried adding it to the Player files.... huh, can't believe I actually thought it might work...

Well, I'll sleep on it, and hopefully something will 'Click'. Thanks for your help, greatly appreciated.



file:///C:/Documents%20and%20Settings/SLIF021/Desktop/Adding%20buffs%20without%20abilities_%20file:///C:/Documents%20and%20Settings/SLIF021/Desktop/Adding%20buffs%20without%20abilities_%20





March 19, 2008 22:04:59
Thanks for the input guys!

Uzii, I think I would simply make new ships with the abilities coded in. It's a bit of a hack, but I think that's what I'm going to do as well.

Ship capturing is way fun. I've noticed a few other mods that have it (like the phaser race which captures all its ships). You have the graveyard, and I'm giving the ability to the tec light carrier to send a marine transport to disable and possibly capture an enemy ship. You wonder why capturing didn't make it into the game proper...

I was also thinking about using planets to add passive abilities to all my ships, but I think I'm going to go the ability route... because in that case I would have had to add the same critical chance ability to each ship, which is not as flexible as I'd like. I want capitals to have a longer damage threshold for critical hits than frigates, for example... (and my capital ships are actually frigate class so I can't sort the ability)

I'm thinking of using my passive buff as an infocard as well, so it displays information about the armor type/attack type of the ship you have selected.

Of course, now I'm limited to three abilities per ship, but that's not *too* bad, since none of my ships have more than three anyway...

What my system aims to do is: each ship weapon when fired will have a small chance to cause a critical hit on an enemy ship's hull (lucky shots). This will depend on the weapon class. Also, when ships take a certain amount of damage (using finishcondition damage taken), they'll fire an 'onbuff finished' action which will use the 'onchance' trigger to trigger various bad, but temporary effects.

If anyone is thinking of random effects that aren't "passiveweaponchance", remember you can use OnChance as an InstantActionTriggerType. You can find the syntax in BuffFighterBlinkTrigger.

It took an hour of looking through each of the 300 buff files to discover onchance, finish condition damage taken, and 'onbuff finished'. I wish we had a reference of all of the possible instantactions, finishconditions, entitymodifiers, etc. I was thinking of compiling such a list myself so I know all the tools I have to make new abilities...

That sort of list would be great on a sins editing wiki.. and I think one is out there too.



file:///C:/Documents%20and%20Settings/SLIF021/Desktop/Adding%20buffs%20without%20abilities_%20file:///C:/Documents%20and%20Settings/SLIF021/Desktop/Adding%20buffs%20without%20abilities_%20




March 20, 2008 08:10:53

I was thinking of compiling such a list myself so I know all the tools I have to make new abilities...That sort of list would be great on a sins editing wiki.. and I think one is out there too.



I hate to tell you this now, but if you download NotePad++, you can open multiple documents at the same time, and use the Find function, then click, 'Search all open documents'. Takes a couple of seconds, but it will list ever match in a separate window. So, to see all the possible references, I put in the type, and it shows them all file:///C:/Documents%20and%20Settings/SLIF021/Desktop/Adding%20buffs%20without%20abilities_%20


file:///C:/Documents%20and%20Settings/SLIF021/Desktop/Adding%20buffs%20without%20abilities_%20file:///C:/Documents%20and%20Settings/SLIF021/Desktop/Adding%20buffs%20without%20abilities_%20




March 20, 2008 09:12:33
Heh, poor guy. He's right though, I've been thinking of ideas for help content on the new site (which the host should be up momentarily btw)... A beginner's guide to modding would be helpful. I just don't think I want to list every function and define them. ^-^



file:///C:/Documents%20and%20Settings/SLIF021/Desktop/Adding%20buffs%20without%20abilities_%20file:///C:/Documents%20and%20Settings/SLIF021/Desktop/Adding%20buffs%20without%20abilities_%20




March 23, 2008 12:10:58
I'd thought I'd post back, as I have accomplished what I was trying so hard to do earlier. Quick recap; I was aimed to get a Passive Ability to fire off its Buff once, and only once, and here is what I've discovered:

One Passive ability cannot do this, you will need two. Basically, one which is your One Shot Buff, which will fire off as soon as the game is started. The other is your disabler. So you have your first Ability set up and ready to go, but it stays on, even after the Finish Condition due to the fact that its Passive. So, now you will need to create another Passive Ability, that 'AppliesBuffToSelf' and has the only Buff effect of 'DisableAbilities', with no Finish Condition.
This is where it gets clever file:///C:/Documents%20and%20Settings/SLIF021/Desktop/Adding%20buffs%20without%20abilities_%20
Although these Abilities are all Passive, they seem not to fire off at exactly the same time, or else this wouldn't work. On your Ship/Planet/Whatever add these two abilities, with your main One Shot ability higher in the list than the Disabler. The first ability fires off, then is instantly disabled by the second, which is now also disabled. There will be complications if the unit you are trying this with has other Abilities, but I recall references to 'UltimateAbilities' and the Disabling of them.

I hope this helps someone out there, it helped me hugely, and will be included in Sins Plus 1.3
发表于 2008-3-24 18:28:35 | 显示全部楼层
what is an invisible buff?:$
回复

使用道具 举报

发表于 2008-3-26 09:14:36 | 显示全部楼层
平常看不见,受损才现身。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|DeepTimes.NET 太空游戏站