Yeah, there's nothing wrong with using ICE, but if you want to start using offsets, like you do now, it can begin to get complicated. Depending on how offset-intensive you get, it can get downright ugly, but for a simple case like this, it's manageable to use ICE, although personally I would prefer IceCC because it handles all the offsets for you.
So, two things:
1. The range there is stated in pixels, and that's 16 times the size of Arsenal III weapon range units. So, for example the marine has a max range of 8 in Arsenal III, and that would be the same as 8 * 16 = 128 pixels. So, make sure you multiply by 16 if you're thinking in Arsenal III, or else you range will be substantially smaller than you think it is, and it might even be so small that it's smaller than the unit's size and could never be reached.
2. Offsets. Notice whenever you click on an item in the list of instructions in ICE, down below it says "Op Offset"? Pretty much the idea with jumping to offsets in ICE is to go to the instruction you want the code to jump to, click on it, memorise the op offset it has, and then use that number as the offset you're going to jump to in your "(if blah) goto offset" instruction. That tells the code to jump straight to that instruction.
3. I wasn't going to include this in my post, but it might also be relevant. Whenever you try to insert instructions into a script in ICE, if the script is not at the end of scripts\iscript.bin then ICE will copy everything and create a new script at the end. That is because it is impossible to insert new instructions into the middle of scripts\iscript.bin without moving everything after the inserted instruction down and then updating all the offsets so they point to everything correctly. However, you can add instructions at the end of scripts\iscript.bin without having to move anything down. That's so much easier, and so that's what ICE does.
Take notice of the way ICE copies your entire script and adds it at the end of scripts\iscript.bin and when it does it, because that means that your new script is now at a new offset. So if there's anything pointing to the old location of the script, you need to update all the offsets that point to the old location to point to your new script location yourself, ICE can't do this for you. So if you start pasting code into a script, watch out, the offset of that script will just have changed, there's an old copy of your script lurking somewhere, and other scripts might be pointing to that and not using your new one. Also, if I remember right, this is also the only way to create a new code block in ICE, so this trick is not only annoying, but it's useful.
That's the general background of range-based jumping in ICE. To be more specific to your problem of how you want your tank to attack multiple times at short range, I really don't recommend doing it in ICE, you could get it done ten times faster in IceCC, even if you've never used IceCC before. There are several ways to do it, but all of them would involve jumping and what I call "losing offsets" which means you need to memorise an offset in notepad because ICE won't have the features to keep track of extra code blocks you need to create for this. You can try if you want to see how hard it is, but it's unlikely you'll be able to do it on your own unless you really understand how scripts\iscript.bin gets rearranged when you use the different functions in ICE.
Heh, I tried to start off explaining how to do it in ICE, that was my original idea when I started this post, but it looks like it would be too much to explain. It's so much easier to do it in IceCC. It is a lot of fun (well it was for me) to work out how to do it with ICE, I remember I used to do it for my first few versions of Terran Doom, but if you're looking for the easiest way, and not the most challenging way, then go with IceCC.
Edit: I just read your other thread. I didn't realise you didn't have a choice. Here's the basic idea:
You want code that looks like this instead of your standard "Attack with 1" instruction:
CODE
(other script stuff up here)
If target within 64 pixels go to offset <shortrangeattack>
Goto offset <normalattack>
<shortrangeattack>: Attack with 1
<normalattack>: Attack with 1
(rest of the script)
Those parts in <angle brackets> should be replaced with the offsets of the commands which start with those labels, like I wrote up there in part 2.
Now, it's best to do this in a certain order to make things easier on yourself.
1. copy and paste the second "Attack with 1" command, because that will copy entire script to a new offset, and it's good to get that out of the way first because you won't need to mess around with offsets getting screwed after that like I said in point 3 up there.
2. Add the "If target within 64 pixels go to offset <shortrangeattack>" next. Don't worry about adding the offset now because it is going to change once you add in the next command.
3. Click on the first "Attack with 1" instruction and memorise its op offset.
4. Add in your Goto offset command. All the commands below will disappear ("losing offsets") but you memorised the op offset in part 3 so you could still get back to them.
5. Type in that offset you memorised in the "Goto Offset" box and click "Goto" to jump to it. You'll see that the first two lines say "Unidentified offset..." This is because you're reading part of the Goto offset command which you just inserted to take the memory at the offset you just memorised.
6. Click on the first Attack with 1 instruction you see now, and memorise its new offset. This will become your <shortrangeattack> offset.
7. Click on the second Attack with 1 instruction and memorise its offset. This will become your <normalattack> offset.
8. Now, go back to your initial ground animation (you're still leaving it as a ground attacking script, right?) and scroll down until you see your "If target within..." and "Goto offset" commands and fill in the offsets with the ones you memorised in steps 6 and 7.
You're done. I hope you understood what happened there, you were constructing the script described in the code up there. But because of jumping, offsets, and everything getting hidden after the "Goto offset" command, these four lines have become disconnected when they're displayed in ICE. However, if you could hex edit the iscript, you would see that all of the four commands are lined up one after the other. If you could decompile your iscript with IceCC, you would also see the four commands are lined up one after the other. It's just ICE that has split them and made things kind of difficult for you.