Darwinbots Forum

Bots and Simulations => DNA - General => Topic started by: Zelos on February 22, 2005, 03:24:19 PM

Title: shootval
Post by: Zelos on February 22, 2005, 03:24:19 PM
hi, I was looking trought things you can use in db and I readed what shootval do, but I didnt get it, can some1 explain it more? and backshot is the same as shoot but only from the back right? :unsure:
Title: shootval
Post by: PurpleYouko on February 22, 2005, 04:17:34 PM
First, you are correct about backshot. It just creates a shot from the back of the robot. Any value other than zero stored into backshot will make it go backward.

shootval is where you place the value that you want to transmit through the shot.

This doesn't apply to -1 shots or -6 shots (at least up to V2.35)

shootval is primarily used to "poke" a value into another robot's memory at a specific location. Take a look at this nasty little gene.

cond
*.eye5 40 >
*.refeye *.myeye !=
start
.aimsx .shoot store
200 .shootval store
stop

What does it do?

It will fire a shot at any robot that isn't a conspecific and is closer than 40 in eye5.

The shot will hit memory location (.aimsx) 6

A vlaue of 200 (stored in shootval) will be "poked" (placed) into this location in the enemy robot when the shot hits it and overcomes the shell defenses.

Result?

The victim will be forced to rotate left by a value of 200 points. He turns away so that he can't shoot back.

Of course, this actual gene won't be much good in a battle because the robot will only ever fire this type of shot and will never use a -1 or -6 to feed with.
You will need to come up with a better condition.

 :D  PY  :D
Title: shootval
Post by: Light on February 22, 2005, 07:03:09 PM
hmmm where could I have seen this before :rolleyes:
Title: shootval
Post by: Numsgil on February 22, 2005, 07:28:17 PM
I think Ymir has a shot like that  :P
Title: shootval
Post by: Zelos on February 23, 2005, 02:14:08 AM
ty py
Title: shootval
Post by: Issyl. on September 18, 2007, 09:39:35 PM
Okay, so if I store 100 .shootval into a bot's storage; like this:

start
64 .shootval store

This will increase the power of the bot's shots by 6, right?

Also, if I do this, will the change be permanent, (like, will he always do 6x damage?) or does it deplete with each shot?  Also, does it deplete at a rate of 1 per shot, or what?
Title: shootval
Post by: Numsgil on September 18, 2007, 11:37:08 PM
.shootval just increases the next shot's power.  After that, your power goes back down to normal levels.

64 .shootval will increase a shot's power by roughly six times, and cost 64 times the normal amount.  Actual amounts may vary depending on the exact equation used ini the program.
Title: shootval
Post by: Commander Keen on September 20, 2007, 07:17:42 PM
I made a bot using positive shoots to make non-veggie bots delete their dna. Here's the code I used:

cond
*.refeye *.myeye !=
*.eye5 20 >
start
-6 .shoot store
991 inc ' Up the counter by one
stop

cond
-6 *.shoot =
*991 5 >= ' This part is designed to make every 5th shot a delgener
0 *.refshoot < 'Only delete genes of non-veggies
start
0 991 store ' Reset the count to 0
.delgene .shoot store
1 .shootval store
stop

There's only one problem. It doesn't work!  
I made one that puts 1000 in fdbody, and that worked. Is there some things you just can't do with shoot? The bot I was targetting didn't use delgene and had several shoot commands in it's dna.
Title: shootval
Post by: Numsgil on September 20, 2007, 10:17:59 PM
Yeah, delgene in particular is limited so it can't be used with info shots because it was decided to be too powerful.  There's one or two other sysvars that are also restricted, but I don't remember what they are.
Title: shootval
Post by: Commander Keen on September 20, 2007, 11:00:09 PM
Thanks!
So I'll need to use viruses to modify Delgene then. I tried venom, but it didn't do the trick either.
I'll have to come up with some other evil plan then.