Massassi Forums Logo

This is the static archive of the Massassi Forums. The forums are closed indefinitely. Thanks for all the memories!

You can also download Super Old Archived Message Boards from when Massassi first started.

"View" counts are as of the day the forums were archived, and will no longer increase.

ForumsCog Forum → Cruise Missile
Cruise Missile
2001-12-02, 9:24 AM #1
Hope you don't mind if I repost this. It only got 2 replies and I really want to get this to work.

I'm a somewhat experienced cogger. I specialize in weapons cogs (not the cheap ones that fade people and are very annoying). Anyway...I seek the help of any expert coggers that read this.
I am able to alter the velocity of projectiles on my concussion rifle and also they have guidance and seek their targets. Only one problem....the projectile will go directly toward the targets position. Therefore, if there is a wall or any other surface in the way it will collide and never reach the target. Plus my gun uses LOS to acquire a lock on the target.

The last major improvement to this gun is I want the projectile to detect when it is approaching a surface so it can maneuver its way through hallways and make it safely to it's target without hitting surfaces (even at high-velocity if possible).

I was thinking of setphysicsflags("thing", 0x10); which aligns to surface and also a vectordist code which would tell the projectile to course correct when it reached a certain distance from a surface.

Please if you know how I could do this, reply (might want to e-mail me back since I'm not consistant in checking message boards). The actual code would be helpful too since I'm not completely familiar with the cog language. If you need the entire cog, e-mail me and I may be able to arrange it. The only concern I would have is if you distribute it (I want to keep genuine cogs out of the hands of newbie downloaders).

My friend referred me to the all-powerful Massassi...so I hope you guys can help me.

Thanx Å LoT,

LeVeL_IV_ViRuS

blackbird0385@yahoo.com
2001-12-02, 10:16 AM #2
I doubt you could guide it through a hallway. Is this for a mod or for a hack?
Bassoon, n. A brazen instrument into which a fool blows out his brains.
2001-12-02, 6:57 PM #3
Emon, is that really relevant?
2001-12-03, 1:25 AM #4
It sure is. If it's for a hack no cogger worth his salt would waste his time.
2001-12-03, 5:24 AM #5
I have already displayed a few points that it is not that perfectly possible.

If this is for a hack, then it just won't be possible at all. Can't even do it so nicely on a new plain cog and can't make it go checksum...

------------------
http://millennium.massassi.net/ - Millennium
2001-12-03, 8:36 AM #6
I have made what you're describing, but without the wall-avoidance.

It sounds like your proj is homing in on targets that it can't see. Unless you want this to happen, you need to use FirstThingInView() and HasLOS() to make sure the proj can see it's target. The proj should have a pulse that looks for targets and makes sure that it can still see the one it's homing on.

Making a proj avoid walls would be a lot of work. I don't doubt it could be done, but it would require a complicated system to do it. You might try firing projectiles from the proj and recording how far they go before they hit a wall.

If you're making this for a hack, I won't help you. I doubt if it's possible to get all of the code past checksum, anyway.

------------------
There we were, three against a thousand. They came at us with knives, clubs, and spears. Bodies fell left and right...

They were the toughest three we ever fought.
Author of the JK DataMaster, Parsec, Scribe, and the EditPlus Cog Files.
2001-12-03, 9:21 AM #7
There was another thread like this before where I suggested that a ring of ghosts be fired around the projectile, and when one hits a wall the missle would quickly turn away. Someone did something like that for RBots (allegedly, I haven't seen it).
2001-12-03, 2:57 PM #8
Actually if the total cog code was just about less than 450 k you could make it pass checksum, and if it wasn't (which would suprise me) then there are more ways around checksum. but anyways he hasn't said yet. virus email me, and I can help you with it, I have a few ideas I want to try to
2001-12-03, 4:34 PM #9
Yes, but making it pass checksum is quite difficult, since you have to make sure.. nevermind, I'd rather not explain it in-depth.
2001-12-03, 6:12 PM #10
duh, checksum killer. [http://forums.massassi.net/html/rolleyes.gif] Wait, nevermind........
-Hell Raiser
2001-12-03, 6:45 PM #11
arghg , i want to know more about passing checksum , not becasue i want to do it really , its because i'm interested in it, somebody care to explain indepth for me ?
2001-12-03, 11:50 PM #12
Quote:
<font face="Verdana, Arial" size="2">I'm a somewhat experienced cogger.</font>


Quote:
<font face="Verdana, Arial" size="2">I'm not completely familiar with the cog language. </font>


Aren't you contradicting yourself there? [http://forums.massassi.net/html/wink.gif]

------------------
Cordially,
Lord Tiberius Grismath
Head Administrator
GCWC.net
Cordially,
Lord Tiberius Grismath
1473 for '1337' posts.
2001-12-04, 1:14 AM #13
No, he isn't. If he's somewhat familiar with the cog language he obviously doesn't completely understand it, does he? If he said he were completely familiar he would be contradicting himself.
2001-12-04, 1:30 PM #14
Checksums For Dummies

"A checksum is when your cog has too many or too few characters in it. Characters are basically commands that the game has. For example...if there was something like:
rank = GetInv(player, 22);
You shouldn't change it to something like:
rank = GetThingSector(player);
If you did that, you would be 1 character short of what you need for the cog to work."

But then theres different types of objects, that are only interchangeable with an object of the same type:

TYPE 1 CHARACTERS
-----------------
SetActorFlags, 1, 0x1, GetSenderID, player, victim

these are your most common type and are easily interchanged between each other


TYPE 2 CHARACTERS
-----------------
(), *, &, +, -, !, /, |

again easily changed between each other


TYPE 3 CHARACTERS
-----------------
if, while, for

these are pretty picky and you cant really change them to something else (no changing if's to while's)


TYPE 4 CHARACTERS
-----------------
'0 0 0', {}


now a few examples in counting. . .

SetActorFlags(player, 0x8);

SetActorFlags = 1
(); = 1
player = 1
0x8 = 1


EX2.
CallYourMom(she, said, that, she/is * going, to + take, a(vacation+dad));

CallYourMom = 1
( ); = 1
she = 1
said = 1
that = 1
she = 1
/ = 1
is = 1
&& = 1
going = 1
to = 1
|| = 1
take = 1
a = 1
( ) = 1
vacation = 1
+ = 1
dad = 1
total=18

one more example, but its an example of changing lines while still passing CS:


victim = FirstThingInView(player, 179, 999, 0x404);


1. victim, FirstThingInView(player(), 179, 999, 0x404);
2. FirstThingInView(player(victim), 179, 999, 0x404);
3. SetTimerEx(0.0, 179, 999(victim), 0x404);
4. SetTimerEx(0.0, victim, GetThingSignature(victim), 0);

thats the jist if it, its just lots of practice to get good at it.

*some parts (not all) where taken from scorps guides, because he explained it so well"
2001-12-04, 2:49 PM #15
If you get used to it, it seems like you can do quite a lot. In cog, you can also place return somewhere above than its original position to bypass the rest of the code as well from what I know about cog hacking...

Back to the original topic please.

------------------
http://millennium.massassi.net/ - Millennium

↑ Up to the top!