View Full Version : Iradiate-like effect
ForTheSwarm
06-17-2008, 7:46 AM
Would it be possible to have a firebat have an effect that harms all enemy organics around it (like irradiate), without hurting itself or any friendly organic units?
TheNomad
06-17-2008, 2:44 PM
Yes, you set the weapon effect to "Splash (Enemy)".
DarkMirror
06-17-2008, 3:09 PM
And range to 1, or zero.They will go right next to the enemy and everything around them will take damage.
Durandal
06-17-2008, 3:28 PM
I don't believe he means an attack, I believe he means an effect area around the unit, like how the arbiter's cloak functions, only instead of cloak it applies steady damage.
As far as I know, this has never been successfully done. You could probably use the above advice and set an invisible turret on top of the unit that deals an invisible radial attack.
ForTheSwarm
06-17-2008, 4:33 PM
Durandal is right about what I meant. OK, I'll try doing that.
TheNomad
06-17-2008, 6:23 PM
Sounds too complicated... try the "useweapon" function in iscript in the attack command and test with psionic storm. If it works (and I think it will), then use an unused weapon and give it a Splash Enemy effect. That way you don't have to face the evil overlays, subunits and way-too-many changes in dat files.
Durandal
06-17-2008, 7:18 PM
Doesn't that just spawn the weapon sprite at the 0,0 coordinates of the map? Or if they script is set to "Attack move" or "Attack tile", I think it attacks the location it moves to. Something about it was on Maplantis.
ForTheSwarm
06-17-2008, 7:20 PM
Ummm... I don't know how to do that.
TheNomad
06-18-2008, 5:34 AM
Doesn't that just spawn the weapon sprite at the 0,0 coordinates of the map? Or if they script is set to "Attack move" or "Attack tile", I think it attacks the location it moves to. Something about it was on Maplantis.
It needs a target or a target location. When you attack someone/something you use either of them. Remember the tutorial where a Marine randomly spawns the plague weapon while attacking. ;)
ForTheSwarm Well if you don't know iScript, I doubt you know how to use subunits so I recommend you choose my easy way of doing it. I believe there is a tutorial here on iScript where the Marine spawns a Plague spray while attacking. The tutorial is for the outdated IceCC but check the iscript opcode list in the new IceCC; the one you need to use is "useweapon"
Durandal
06-18-2008, 1:56 PM
Well if you don't know iScript, I doubt you know how to use subunits
Severely unlikely.
But is there any way that he can keep the damage in a constant streaming effect, instead of only when attacking?
TheNomad
06-18-2008, 3:56 PM
Yeah, with unbreakable code.
ForTheSwarm
06-18-2008, 4:36 PM
I could make it an ability, if that would help.
BlademasterSlsh
06-18-2008, 5:03 PM
Slightly different question. I'm trying to get a unit to shoot and ensnare one unit (or at least, only over enemy units). I know if I change the explosion, I get the Ensnare effect, but it splashes over everything. Is there a way to shrink (or expand) the AoE of abilities like this?
Durandal
06-18-2008, 8:03 PM
Slightly different question. I'm trying to get a unit to shoot and ensnare one unit (or at least, only over enemy units). I know if I change the explosion, I get the Ensnare effect, but it splashes over everything. Is there a way to shrink (or expand) the AoE of abilities like this?
I had a friend that wanted to do a similar effect, except using plague. He posted the question here on Warboards in fact. Of course, his question went unanswered, so I assumed then that it was impossible.
It'd be nice to get some clarification on that.
DiscipleOfAdun
06-18-2008, 8:32 PM
The search range of the aoe is hardcoded. While it might be possible to make an exe edit for it, there is still the chance that if two units are stacked very, very close to each other they would both be affected...(it'd be something way down there on my list of things for the next FG version, btw.)
ForTheSwarm
06-18-2008, 8:55 PM
When do you think it you will finish the next version?
DiscipleOfAdun
06-18-2008, 9:33 PM
No clue when, actually.
Durandal
06-18-2008, 10:44 PM
If that's way down the list, then what's at your top?
DiscipleOfAdun
06-18-2008, 10:58 PM
Reprogramming, and then updating to the current version. Then stuff in plugins that everyone wants, and then exe edits that people want.
Also, anticipating this - making a single target attack go to aoe is not really possible.
ForTheSwarm
06-18-2008, 11:01 PM
How about an ability (for the firebat) that gives itself irradiation?
Durandal
06-18-2008, 11:36 PM
Haha, nice try. :D
TheNomad
06-19-2008, 1:49 AM
Reprogramming, and then updating to the current version. Then stuff in plugins that everyone wants, and then exe edits that people want.
Check your last mail :P It's 33% done :)
ForTheSwarm you can use it as an attack just fine.
BlademasterSlsh There MIGHT be a way (in theory) to change AOE to single unit, but as DoA said, not the other way around. I managed to find a few iteration loops that run through each unit, but I am not 100% sure where the splash area is. I have some exams coming up, but after they're done I'll take a look and MAYBE (but no guarantees) I can find a way to make splash AOE techs affect only allies or only enemies but not both. But no promises as the exe code is so ... picky :P
BlademasterSlsh
06-19-2008, 7:26 AM
There MIGHT be a way (in theory) to change AOE to single unit, but as DoA said, not the other way around. I managed to find a few iteration loops that run through each unit, but I am not 100% sure where the splash area is. I have some exams coming up, but after they're done I'll take a look and MAYBE (but no guarantees) I can find a way to make splash AOE techs affect only allies or only enemies but not both. But no promises as the exe code is so ... picky :P
I appreciate it. In the mean time, I guess the attack will just be normal.
TheNomad
06-22-2008, 2:51 AM
Well I was bored so the last 5 mins (yeah, I cheated cos I found these offsets 1 month ago :P) I decided to try something.
... to test this:
- make a map using a modded editor
- place a Queen + some Zerg units (about 5 or so should be enough) + a Dark Archon
- make default researches for Ensnare and Maelstrom (or type "medieval man")
- ensnare the Zerg with the Queen
- Maelstrom them with the DA
- worship me :P
Long story short, it is possible, but not for everything. Keep in mind Maelstrom was lost. There are still some discussions on how we can find a way to "hook" code and then inject some of our own so that we don't actually lose the other technologies, but the exe is ... picky.
Anyway, this proves that if you know the exe structure you could attempt something like this, but it does involve some work... and since nobody did this before (at least publicly), then there is a reason (but it doesn't mean it's impossible since I did do it :P).
P.S. Blah blah... manual modding... blah blah... no FG... blah blah... not working on BNET... blah blah... use at your own risk... blah blah...
P.P.S. Due to obvious (*ahem* Blizz *ahem*) reasons, I will keep the exe on this thread until Tuesday at most... so hurry up and DL it if you wanna fall off your chairs :P
P.P.P.S. Not infected with viruses or anything, but it doesn't mean I don't encourage you to check it, just in case. It did happen to me to be infected once and not know about 6 years ago... Still, for those without a good AV (*cough* Norton AV *cough* :P) you can just check the filesize... if it was infected it'd have a different size (though it's not the safest method, but then again this file is not infected afaik).
NoobOfLore
06-22-2008, 10:42 AM
So nomad...What exactly happened when you did that? I don't see the goal of your experiment.
TheNomad
06-22-2008, 1:13 PM
Well you were supposed to stack the Zerg units :P
Long story short, AoE for Restoration (recoded a hardcoded Maelstrom).
BlademasterSlsh
06-22-2008, 1:19 PM
He's managed to make a spell which effects one unit (Restore) effect an area by tag teaming it with Mealstorm. I must say, it was a very pretty to see in action :)
I imagine it is easer to make a spell that would effect one unit effect an area than to take a spell that would effect an area and make it effect one unit (which is the above mentioned problem).
I guess I'm going to continue to use this tread to bounce ideas back and forth. Here's a few I've been thinking about.
1) Is it possible to create a shield replacement for one unit? I'm thinking that IF (and I believe this is a big if) a Defense Matrix can be set up in place of a unit's shields, turning on when the shields were still alive and turning off when it was dead, then you would essentially have an Immortal.
2) I'm 70% sure this is do-able, but is it possible to change the Disruption Web effect so that it provides the same defensive shielding that Defense Matrix normally does, instead of it's attack canceling effect? (I think I saw something about making it so that Zealots attacks wouldn't work under Dark Swarm, so I think this should be do-able)
3) This falls back to the area spell being used for a single unit. I'm also VERY UNSURE about it being possible, but I'll throw it out there. This spell would probably kill Recall and the Scarab in one go, but I'm fine with that. The idea is that the the spell caster sends out a subunit (probably invisible to everyone) that has a range limit on it. When the subunit reaches that range or it's target, it automatically casts Recall, but the spell only effects one unit, the unit that sent out the subunit. IF (this is the biggest if of this whole discussion) this is possible, then it would essentially be Blink.
Hopefully there is something in all this that is do-able...
[Edit] Oh, Nomad replied before I could... woops
TheNomad
06-22-2008, 5:21 PM
1) Is it possible to create a shield replacement for one unit? I'm thinking that IF (and I believe this is a big if) a Defense Matrix can be set up in place of a unit's shields, turning on when the shields were still alive and turning off when it was dead, then you would essentially have an Immortal.
Rephrase pls... basically an auto dmatrix when the shields go down ? If so, then it isn't doable. AT MOST and this is a big exaggeration, loaded with the impossible probability that Blizzard will hand over the source code, you could TRY to code IF you had the source code and even then, it would be a pain to code... let alone without source code.
2) I'm 70% sure this is do-able, but is it possible to change the Disruption Web effect so that it provides the same defensive shielding that Defense Matrix normally does, instead of it's attack canceling effect? (I think I saw something about making it so that Zealots attacks wouldn't work under Dark Swarm, so I think this should be do-able)
So basically dweb is supposed to dmatrix all units under it ? Not quite possible. In theory it is, but I am not too sure the code allows it. I'd give it a 50% do-ability chance.
3) This falls back to the area spell being used for a single unit. I'm also VERY UNSURE about it being possible, but I'll throw it out there. This spell would probably kill Recall and the Scarab in one go, but I'm fine with that. The idea is that the the spell caster sends out a subunit (probably invisible to everyone) that has a range limit on it. When the subunit reaches that range or it's target, it automatically casts Recall, but the spell only effects one unit, the unit that sent out the subunit. IF (this is the biggest if of this whole discussion) this is possible, then it would essentially be Blink.
Why complicate it so much ? First of all, what you said is undoable, secondly, I already did it, but it's a pain in the ass to code it. There are 2 ways to do it actually. Both ways have no range limitation. The way I did it has range limitation but it's a pain to code and I don't see myself writing it for FG too soon. I'll think about it though... If you want I can post the exe here so you can try it out. I might even be able to pull it off in an offline exe without losing recall or any other technology, but I need to change some more stuff. For now I just replaced Stasis Field.
Honestly, the stuff you wrote there or that I am coding for proof-of-concept theories are very hardcore and fall in the uber-advanced modding sections. I recommend you master iScript and FG first before umping there. Trust me. There are still a lot of "mysteries" about the SC engine you need to discover which will tell you whether an idea is possible or not.
I also wanted to try to simulate an ability (forgot the name, Nullify or smth) from SC2 which is basically dweb that doesn't stop attacks, but tech uses. So you can attack with goons but not cast psi storm from under it. I spent a few days thinking of how to do this and I came across dead ends. Mostly because there is no way, atm, to stop attacks. There is one potential offset where I can hook it and add a JMP to the end of the file where I can make a few conditional jumps, BUT the point is to actually check if the unit is under a dweb/dswarm-like unit (yes, dswarm and dweb are units and the units are what handle most stuff, the weapons are just the targeting holders and what controls the gfx if I am not mistaken). While you could say "well there is a way to check if you are under dswarm or dweb since SC is actually doing it", the answer is yes, but the exceptions (don't attack or don't damage) are controlled locally by the engine in certain bytes or words offsets. What I mean is, they're built-in. This tech-denial is smth custom-made which is close to impossible to be replicated.
I won't lie... I would like to work on a SC 2 mod, but the work involving coding the techs from SC2 really makes me think it's not worth it. Took me 3 days just to:
1. make Blink WHILE KEEPING RECALL INTACT - though it isn't mentioned in SC2, you never know
2. not use the FG way completely, since FG reverses the effect, but actually make the arbiter move
3. ignore any other units
4. make it ranged
5. make recall work for the Arbiter, ranged blink for Danimoth
It sounds simple, but it isn't. To actually make it ranged, I had to use iScript and hook the weapon effect interpreter + 3 other hooks in the recall code. And personally thinking of doing this for every tech (including writing new ones) is hell.
I even made the Ensnare\Web ability from WC3 a week ago. If you lockdown a battlecruiser, ground units can attack the BC, then if you restore it, they can't. Also made the rally point from WC3, where rallying a command center to minerals\gas would make the scv auto-harvest.
Each took between 2 and 4 days. So I think it's not worth it much :(
BlademasterSlsh
06-22-2008, 6:32 PM
The Immortal idea is that as long as the unit has shields, it is covered by a Defense Matrix. Once the shields die, the unit looses it's Defense Matrix. This should make it so that a large number of weak units have a greater chance of killing it than a handful of Siege Tanks.
As for everything else... I'm afraid I have less than a month to finish this, at which time I'll be away from the computer for 2 years. This SC2 mod is a attempt to give the community something to tinker with while they kill time. I know it is unpractical, if not impossible to make every spell, every feature, and every unit in SC2. I accept that. I just want to go as far as I can.
The way I did it has range limitation but it's a pain to code and I don't see myself writing it for FG too soon. I'll think about it though... If you want I can post the exe here so you can try it out. I might even be able to pull it off in an offline exe without losing recall or any other technology, but I need to change some more stuff. For now I just replaced Stasis Field.
I would be very, very interested in seeing this code in action. I don't think I could stress that enough.
I even made the Ensnare\Web ability from WC3 a week ago. If you lockdown a battlecruiser, ground units can attack the BC, then if you restore it, they can't. Also made the rally point from WC3, where rallying a command center to minerals\gas would make the scv auto-harvest.
Each took between 2 and 4 days. So I think it's not worth it much:(
It is always interesting to see different view points on the same thing. I would consider it amazing to accomplish either of those in 2-4 days.
TheNomad
06-23-2008, 1:42 AM
Well, if you want to implement it, depends how fast you can learn ASM. Let's just say that if you want to see what awaits you, try downloading Olly 1.0 (don't dl 2.0 pls) and open StarCraft.exe. If you can understand most of it I'll be glad to give you a few pushes in the right direction, if not, a I said, you'll ahve to learn a bit more. I do admire you want to improve so much and it's always good to see someone that learns fast, but as I said, first things first, and "first" in this case would be iScript.
BlademasterSlsh
06-23-2008, 8:14 AM
OllyDbg 1.0? (I want to double check before I download something)
ForTheSwarm
06-23-2008, 8:22 AM
:( Thread hijackers. JK it's alright. :)
TheNomad
06-23-2008, 8:23 AM
(I want to double check before I download something)
You always this paranoid ?:rolleyes:
BlademasterSlsh
06-23-2008, 8:48 AM
Hey, I typed in a search for "Olly 1.0" and found about 6 different hits, none of them JUST Olly 1.0. While I trust you that the program is safe, I'm also 90% sure that you can only speak for that program, not the other 5 hits.
TheNomad
06-23-2008, 9:52 AM
Home Page (http://www.ollydbg.de/) and click Download.
Well wanted to search for the web\ensnare tech I modded from WC3 in SC but I seem to have lost the EXE (I bet I overwrote it by accident in one of my recent tests... bleh...) so out of anger I decided to try a new tech for my proof-of-concept mod which I can't get around to start, except bit-by-bit (excuse the pun, geek joke :P).
So... I present to you my newest tech from the PoC mod: "PSI Aura".
What this tech does is it protects all ground units under it (any ground unit, enemy or ally or owned) from other techs. So basically you can attack them but not use techs on them. Because I only had less than an hour and wasn't in the mood to make it too "good" since it is only a PoC, I modded DWeb due to its included unit loop (thank god :P) and after tricking the engine a bit I managed to stop a few techs. There is a way to stop quite a lot, if not all, but die to the limited timeframe on my break, I settled for Feedback, Irradiate, DMatrix, Mind Control, Hallucination, Consume, Restoration, Optical Flare and Infestation.
... While this offered me some insight on your idea, I am not 100% sure about making dweb add increased protection, though it rose from a 50 to a 75 do-ability rate.
How to test:
- make a DArchon
- make a Corsair
- research DWeb
- put 2-4 HT, DA, Medic etc. (any ground tech user)
- change Feedback cost to 1 en (or type THE GATHERING)
- feedback the ground unit, you'll see it will die (or not, depending on HP and shields)
- DWeb the unit then attempt to re-feedback it, you won't be able to
I changed the error to an unused string about targeting non-hovering ground units, so if done properly you should see this error.
Bleh I need to stop being so lazy cos I have a lot of ideas already, I just need some gfx ppl and some more ideas to balance stuff out. (that and to fix some engine glitches :chuckball )
Enjoy !
P.S. blah blah same copyright stuff as on my other post... so dl it before Wednesday
BlademasterSlsh
06-23-2008, 11:32 AM
Hum... Interesting how it only worked on Feedback. I cast Mealstorm and it acted normal. I assume that is because it was only coded for Feedback.
(PS: I think the Nullify spell works the other way, that units under it can't cast their spells)
TheNomad
06-23-2008, 11:42 AM
Hum... Interesting how it only worked on Feedback. I cast Mealstorm and it acted normal. I assume that is because it was only coded for Feedback.
There is a way to stop quite a lot, if not all, but die to the limited timeframe on my break, I settled for Feedback, Irradiate, DMatrix, Mind Control, Hallucination, Consume, Restoration, Optical Flare and Infestation.
This is also due to the fact the targeting code is split in about 10 or so places. So I didn't have time to check all of them.
(PS: I think the Nullify spell works the other way, that units under it can't cast their spells)
Who said anything about Nullify ? This is my own idea. Didn't even think Null Void was possible in SC1 until I coded this and I realized it is similar to it. Though I had to modify a function and kinda rewrite another one to achieve even this effect... not to mention the fact dweb was sacrificed.
P.S. Typo there, die = due
vBulletin® v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd.