|
He's in ur base, killin' ur d00dz.
|
I thought that a lack of nobrkcodeend might have been the problem, but what confused me was that the lines that I deleted didn't seem to contain anything of the sort. I'll go punch that in and test it. EDIT: Got a new bug now: The firebat doesn't freeze anymore, but he doesn't loop the attack script = I have to manually order each missile launch. This post was edited 1 times, last edit by HailFire: May 21 2008, 9:21 pm.
![]() ![]() ![]() ![]() ![]() ![]() |
|
Surprisingly, DoA has it wrong, you have it right. You want it to stop executing commands after it attacks (to wait for its cooldown), however, you need to tell the game that the attack is finished, and it can call the repeat attack script when the cooldown is done. Add a gotorepeatattk opcode right before the ignorerest, and it should work. This was probably also in the firebat's flame script. This post was edited 2 times, last edit by Laser Dude: May 21 2008, 11:19 pm.
![]() ![]() ![]() ![]() ![]() ![]() |
|
He's in ur base, killin' ur d00dz.
|
Thanks, Laser!
I was actually on the verge of solving it myself, exept that I had the gotorepeatattk on the wrong side of the ignorerest. The missile trooper works now, I just have to impliment the .tbl edit and get an updated version of the .grp that doesn't waddle. However, the trooper does 30 damage, while claiming on it's weapon icon to do 60. I suspect this is a .dat issue, though. Also, does anyone know where I can get a Shock Trooper .grp that doesn't crash? ![]() ![]() ![]() ![]() ![]() ![]() |
|
There's a value in weapons.dat for changing the factor which changes the damage displayed. If your iscript only uses one weapon, you may want to change this to 1.
This might be because the iscript is calling framesets that don't exist. You should probably check if the iscript is calling any frames that don't exist. Unfortunately for you, IceDC decompiles into hexadecimal format, wheras most GRP editors use decimal. Besides finding a program that convert from one to the other, or learning hex, the only help I can give you with this is that 0x11 in hex is equal to 17 in decimal, which is the number of frames per frame set. As such, frame 0x00 = 0, 0x11 = 17, 0x22 = 34 ... 0xaa = 170, 0xbb = 187, etc... ![]() ![]() ![]() ![]() ![]() ![]() |
|
Grr, those two commands drive me crazy, not only because I think at least some part of them both isn't fully understood, they do very weird things when put into the scripts. Of course I forgot about that fact...
Also, if the .dat change doesn't work, it's hardcoded. There's a few units that have hardcoded multipliers for their displayed damage value. I know the Zealot is for sure, but I can't remember without looking in the code if the firebat is too. ![]() ![]() ![]() ![]() ![]() ![]() |
|
Using gotorepeatattk simply tells the engine that the repeat attack script can be called when the cooldown runs out. In the mean time, it continues to execute the iscript, allowing modders to put cool effects in there. The goto [idle section] is just somewhere for the script to wait while the cooldown runs out. It would also allow modders to add in cool effects to the cooldown (like overheating smoke!).
Using ignorerest seems equivelant to using wait ∞. What weird behaviours are you thinking of? They've always seemed to behave in that manner for me... I doubt it would be hardcoded, mainly because there's an actual value in DatEdit for it, which we know performs the exact same task. Also, to the OP, you used the attackshiftproj opcode for your attack (like the Firebat does...), I'm thinking perhaps what you needed would be attack, for your missiles, although, not being sure what attackshiftproj actually does with ranged weapons (I know it fires melee weapons at the specific distance in front of the unit...). Perhaps it tells the missile to appear in front of the unit? ![]() ![]() ![]() ![]() ![]() ![]() |
|
He's in ur base, killin' ur d00dz.
|
New question, since I don't feel like spamming up the forum with a new thread for every question.
I'm working on a modding project, and recently got a new .grp for the command center. Edited out the shadow in the iscript (due to laziness), edited the .grp itself a bit, edited out the lift/land commands via firegraft, etc. Thus, the questions are (since the new .grp is smaller than the old one): -How do I modify the building's selection circle? -How do I modify the building's footprint? ![]() ![]() ![]() ![]() ![]() ![]() |
|
It sounded like you hadn't actually checked whether the value in weapons.dat caused it. Although, to be honest, I think you usually jump to the conclusion of .exe editing and hardcoded values far too fast. I would think that checking for hardcoded values would be the last thing you do when you try to find a problem. That's not to say that you aren't skilled at dealing with the .exe when you do, it's just that I think you often jump to the inappropriate conclusion.
![]() ![]() ![]() ![]() ![]() ![]() |
|
He's in ur base, killin' ur d00dz.
|
Got another problem, that's actually related to iscript this time.
I'm trying to give the Command Center a weapon. I specified the weapon in DatEdit, FireGrafted in an attack button (That works!), and edited the iscript. The potential problem areas: iscripting: And the attack script: Where did I screw up? Or did I just bugger something in DatEdit? ![]() ![]() ![]() ![]() ![]() ![]() |
|
Master of Temptation, Ruler of Aeronotics, and Secret Lover
|
Replace this:
CodeCommandCenterGndAttkInit: wait 1 nobrkcodestart attack gotorepeatattk nobrkcodeend goto CommandCenterWalking With this: CodeCommandCenterGndAttkInit: wait 1 nobrkcodestart attack nobrkcodeend wait 1 gotorepeatattk ignorerest This post was edited 1 times, last edit by A_of-s_t: May 25 2008, 8:55 pm.
![]() ![]() ![]() ![]() ![]() ![]() |