Server Help

Bot Questions - Flag stuff

Anonymous - Tue Jul 22, 2003 4:44 pm
Post subject: Flag stuff
hm. I dunno if this forum is rather dead or not, but since ssforum is down, I have a question:

I have a bot that moves one flag around the center of the map every 2 seconds no matter what. This works fine and all, it's really fast, but when the bot nuets the flag it takes like 3 mins for the flag to show up again. I've looked through the settings but I can't find one that fixes the problem. Please help!

Also, this bot keeps track of soccer goals etc. However MERV-Bots Goal events don't seem to be registering well. Thanks for help!
Mine GO BOOM - Tue Jul 22, 2003 5:18 pm
Post subject:
This forum seems pretty active to me, as is shown in the Statistics section, but as for the nuetral problem, thats subgame's "bug". When it was first designed, nuetral flags will appear at a random interval after you drop them, as to prevent instantly picking them back up. This would help prevent people from nuetrally a flag, and then going back to the spot to get it picked back up as fast as possible.
Anonymous - Wed Jul 23, 2003 1:13 pm
Post subject:
well that sucks. My bot as we know it is essentially ruined. Fear not, I'll find a way around it somehow. But btw, the Player_Score events are not triggering for some reason, yet my bot is keeping track of the score because it announces it at the end of the game. And sometimes the Player_Score event is triggered, but waaaaay after I score. I think it's somewhat of a speed issue. Is there anyway to improve the speed of mervbot?
Smong - Wed Jul 23, 2003 2:18 pm
Post subject:
videege wrote:
the Player_Score events are not triggering for some reason

When do you expect to get this event? Kills/jackpots/goals? (I don't think you get a score update on kills, the info is all in the death packet).
Anonymous - Wed Jul 23, 2003 2:40 pm
Post subject:
Sorry, it's the EVENT_PlayerScore. It says it's supposed to trigger when a player scores a goal. Well, I found a way around my flag problem, but now I have a new problem:

Bot Ext: :Bot:*warpto 560 607
Bot Ext: :Bot:*warpto 560 607
Bot Ext: :Bot:*warpto 560 607
Bot Ext: :Bot:*warpto 560 607
Bot Ext: :Bot:*warpto 560 607
Bot Ext: :Bot:*warpto 560 607
Bot Ext: :Bot:*warpto 560 607

It's trying to warp itself to the flag (which is the first in a series of code) but it can't! It just keeps repeating the warpto command -- I know it can do the warpto command, because it has sysop access...ideas?
nintendo64 - Wed Jul 23, 2003 5:11 pm
Post subject:
Does MERVBot can warpto?, i don't know but if i recall warpto was designed for CTM and MERVBot is a VIE Client, so if it doesn't have the support it could not work, try making the bot send position packets to the Flags coordinate and a flag got packet (i think the has flag is in the Position packets).

-nintendo64
Mine GO BOOM - Wed Jul 23, 2003 11:09 pm
Post subject:
Continuum only packets still get set to VIE clients, they just ignore them. The warpto its is own simple packet, so the mervbot would have to accept it. Also, to get a flag, you don't have to be anywhere around it. Have the bot's position stay around where you want to drop it, get into a ship, and send the pickup flag packet. Go back to spec and the flag will come back later.
Anonymous - Thu Jul 24, 2003 1:07 pm
Post subject: ?
????
How exactly would I do that? and this is the process i want it to follow: the bot gets on it's own freq (8003 to be exact) picks up the flag, warps to a random location within boundaries, and drops the flag, rinse and repeat sorta thing. This way I don't have to wait for the nueted flag delay (which just ruins the whole thing), but both teams (0000 and 0001) can still get the flag. This function repeats every few seconds or so. How would I go about doing this?
Anonymous - Mon Jul 28, 2003 10:01 am
Post subject:
Hello?
nintendo64 - Mon Jul 28, 2003 1:33 pm
Post subject:
C2S
0x0F Frequency Change

Offset Length Description
0 1 TypeByte 0x0F
1 2 New Frequency

IE: 03 TotalSends 0F[Length 1] Frequency[Length 2]

03 Totalsends = ReliableHeader.

C2S
0x13 Flag request

Offset Length Description
0 1 Type Byte 0x13
1 2 Flag ID

Again with the reliable header, You can get FlagIDs by looking at the Flag Position Data.

It's an S2C
0x12 Flag Position

Offset Length Description
0 1 Type Byte 0x12
1 2 Flag ID
3 2 X Tiles
5 2 Y Tiles
7 2 Owner [Team ID]

Sending a Position Packet to the location and the Drop Flags Packet.

C2S
0x15 Drop Flags

Offset Length Description
0 1 Type Byte 0x15

Again both with Reliable Headers

C2S
0x03 Position packet

Offset Length Description
0 1 Type Byte 0x03
1 1 Direction (0 ... 360) [I thni this is wrong, it's up to 40]
2 4 Timestamp
6 2 X Velocity
8 2 Y Pixels (0 ... 16384)
10 1 Checksum [You need to Calculate This]
11 1 Togglables [Just Put 0]
12 2 X Pixels (0 ... 16384)
14 2 Y Velocity
16 2 Bounty
18 2 Energy
20 2 Weapon Info

22 2 Energy (Optional)
24 2 S2C Latency (Optional)
26 2 Timer (Optional)
28 4 Item info (Optional)

You can Calculate the Checksum by using this.

[Coded By Coconut Emulator]
function Poke03ChecksumAt0A(const Packet03:String): String;
var
n: LongWord;
c, Tot: Byte;
begin
Tot := 0;
for n := 1 to $16
do begin
c := Str2Int(PChar(Copy(Packet03,n,1)));
if n = 11 then c := 0;
Tot := Tot xor c;
end;
Result := Copy(Packet03,1,10) + Int2Str(Tot) + Copy(Packet03,12,Length(Packet03)-11)
end;

PChar is just used to convert a Pascal String to the String Type C/C++ uses.

:= means assignment, like P:=2; the value of P is two.

Copy it's a function that returns a string or parts of it of a string given.

function Copy(S; Index, Count: Integer): string;
S it's the string to work with.
Index where copy starts
Count it's the amount of characters to copy.

-nintendo64
Anonymous - Fri Aug 01, 2003 4:27 pm
Post subject:
The reliable header has an 0x00 prefix, just incase some people noticed it looked the same as the postion packet.
All times are -5 GMT
View topic
Powered by phpBB 2.0 .0.11 © 2001 phpBB Group