<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.minegoboom.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=50%25+Packetloss</id>
		<title>ASSS Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.minegoboom.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=50%25+Packetloss"/>
		<link rel="alternate" type="text/html" href="http://wiki.minegoboom.com/index.php/Special:Contributions/50%25_Packetloss"/>
		<updated>2026-05-05T18:03:45Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.28.2</generator>

	<entry>
		<id>http://wiki.minegoboom.com/index.php?title=User_talk:Grelminar&amp;diff=5260</id>
		<title>User talk:Grelminar</title>
		<link rel="alternate" type="text/html" href="http://wiki.minegoboom.com/index.php?title=User_talk:Grelminar&amp;diff=5260"/>
				<updated>2005-04-02T08:18:19Z</updated>
		
		<summary type="html">&lt;p&gt;50% Packetloss: /* Maybe add an interview? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We'll edit it how we like, bitch ;-).  ASS SERVER!&lt;br /&gt;
&lt;br /&gt;
== Maybe add an interview? ==&lt;br /&gt;
--[[User:50% Packetloss|50% Packetloss]] 03:18, Apr 2, 2005 (EST)&lt;br /&gt;
http://www.subspacedownloads.com/interviews/Grelminar.txt&lt;/div&gt;</summary>
		<author><name>50% Packetloss</name></author>	</entry>

	<entry>
		<id>http://wiki.minegoboom.com/index.php?title=User_talk:Grelminar&amp;diff=2325</id>
		<title>User talk:Grelminar</title>
		<link rel="alternate" type="text/html" href="http://wiki.minegoboom.com/index.php?title=User_talk:Grelminar&amp;diff=2325"/>
				<updated>2005-04-02T08:17:48Z</updated>
		
		<summary type="html">&lt;p&gt;50% Packetloss: Maybe add an interview?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We'll edit it how we like, bitch ;-).  ASS SERVER!&lt;br /&gt;
&lt;br /&gt;
== Maybe add an interview? ==&lt;br /&gt;
&lt;br /&gt;
http://www.subspacedownloads.com/interviews/Grelminar.txt&lt;/div&gt;</summary>
		<author><name>50% Packetloss</name></author>	</entry>

	<entry>
		<id>http://wiki.minegoboom.com/index.php?title=Talk:Physics&amp;diff=2326</id>
		<title>Talk:Physics</title>
		<link rel="alternate" type="text/html" href="http://wiki.minegoboom.com/index.php?title=Talk:Physics&amp;diff=2326"/>
				<updated>2005-04-01T11:53:41Z</updated>
		
		<summary type="html">&lt;p&gt;50% Packetloss: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Basic Packetloss ==&lt;br /&gt;
--[[User:50% Packetloss|50% Packetloss]] 06:53, Apr 1, 2005 (EST)&lt;br /&gt;
'''S2C = (sent - recv) * 1000 / sent;'''&lt;br /&gt;
&lt;br /&gt;
Not sure if this is exactly physics or not&lt;/div&gt;</summary>
		<author><name>50% Packetloss</name></author>	</entry>

	<entry>
		<id>http://wiki.minegoboom.com/index.php?title=Talk:MERVBot_Tutorial&amp;diff=1362</id>
		<title>Talk:MERVBot Tutorial</title>
		<link rel="alternate" type="text/html" href="http://wiki.minegoboom.com/index.php?title=Talk:MERVBot_Tutorial&amp;diff=1362"/>
				<updated>2005-02-21T19:34:14Z</updated>
		
		<summary type="html">&lt;p&gt;50% Packetloss: /* Make bot spectate specific coordinates Section */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==General Convo==&lt;br /&gt;
D1s: Anybody wanna format this int a table of contents? I'm lazy&lt;br /&gt;
&lt;br /&gt;
[[User:Smong|Smong]]: That is sick. Maybe split into more pages? Says it is over 160k.&lt;br /&gt;
&lt;br /&gt;
[[User:Pests|Pests]]: There is already pages defined. You could just split them up into that.&lt;br /&gt;
&lt;br /&gt;
OK, I'm working on converting it to real HTML (using &amp;amp;lt;pre&amp;amp;gt;) instead of the &amp;amp;amp;nbsp; crap. --[[User:Cyan~Fire|Cyan~Fire]]&lt;br /&gt;
&lt;br /&gt;
[[User:CypherJF|CypherJF]]: Should we just call this &amp;quot;the bot tutorial&amp;quot; based on the tutorial by Underlord? Then update it accordingly? -- And also, the link to MervBot w/e 37 is now 45; should we just comment that this tutorial was writen for the 37 -- or... comments! lol.&lt;br /&gt;
&lt;br /&gt;
[[User:CypherJF|CypherJF]]: I'd like to say that all sections appear to have been updated for the Wiki; time to go through edit, and catch mistakes. Add to the wiki itself - perhaps more example code.&lt;br /&gt;
&lt;br /&gt;
[[User:CypherJF|CypherJF]]: Cyan and I were talking about the section &amp;quot;Checking if pilot is in a safe zone&amp;quot;; whether or not to just remove it. I remarked that it's a nice section for those to the whole plugin deal. But, I was just noticing how it'd make more sense to put the &amp;quot;Useful Player data&amp;quot; before hand... So i guess the next step is to go through and try to address the logical-aspect of ordering of the content? What's your guys' take?&lt;br /&gt;
&lt;br /&gt;
[[User:Smong|Smong]]: Uh yeah.. so why are there so many major edits to just one page? I can't see anything in recent changes but edits to the mervbot tutorial.&lt;br /&gt;
&lt;br /&gt;
[[User:CypherJF|CypherJF]]: See my other notes: &amp;quot;CypherJF: Well I've been doing the edits from all around campus. Like yesterday I did 4-6 things from the MathLab; and the rest from the dorm, etc. lol. I don't think it really matters, since there isn't much other activity going on.. on the wiki.&amp;quot; So, I'd make edits and just post em. It happened to be the only activity and sooo it looks worse than it is.&lt;br /&gt;
&lt;br /&gt;
== sscanf ==&lt;br /&gt;
&lt;br /&gt;
Well, I'm using sscanf() for parsing player input. Yes, an advanced function, but maybe it will discourage C++ newbs from making bot plugins. Any comments? --[[User:Cyan~Fire|Cyan~Fire]]&lt;br /&gt;
&lt;br /&gt;
D1st0rt: Cool beans. I learned something new :D&lt;br /&gt;
&lt;br /&gt;
== Event list ==&lt;br /&gt;
&lt;br /&gt;
Removed event list because it was redundant with dllcore.h, less descriptive, and too easy to get out-of-date. Anybody who wants it back, please post here so I can ignore you. :-D --[[User:Cyan~Fire|Cyan~Fire]]&lt;br /&gt;
&lt;br /&gt;
[[User:CypherJF|CypherJF]]: Like people are really going to read through the dllcore.h file.. on a webpage tutorial. hmm i think not. I still say keep it there.&lt;br /&gt;
&lt;br /&gt;
If someone doesn't make the effort to look up events in dllcore.h, they shouldn't be making plugins. I think of this tutorial as more of a &amp;quot;here are the basics and intricacies of making a MERVBot plugin&amp;quot; more than &amp;quot;here is how to follow step-by-step instructions and call it programming&amp;quot;. --[[User:Cyan~Fire|Cyan~Fire]]&lt;br /&gt;
&lt;br /&gt;
D1s: Even ''I'' look up things in dllcore.h, its a very useful resource. As long as it says to look in it, I don't think we'd need the full list here&lt;br /&gt;
&lt;br /&gt;
== Extra Code Samples ==&lt;br /&gt;
[[User:CypherJF|CypherJF]]: I'd like to somehow split these up better; and make them linkable, what do you guy's think?&lt;br /&gt;
&lt;br /&gt;
[[User:CypherJF|CypherJF]]: I made sub-headers, and so they'll be added into the table of contents. Let me know what you guys think of it.&lt;br /&gt;
&lt;br /&gt;
Alrighty, looks good. One thing I would ask is to try to save up a bunch of edits in a text editor or something, than have the myriad edits you do now. Thanks for sharing the burden with me! --[[User:Cyan~Fire|Cyan~Fire]]&lt;br /&gt;
&lt;br /&gt;
[[User:CypherJF|CypherJF]]: Well I've been doing the edits from all around campus. Like yesterday I did 4-6 things from the MathLab; and the rest from the dorm, etc. lol. I don't think it really matters, since there isn't much other activity going on.. on the wiki.&lt;br /&gt;
&lt;br /&gt;
Oh, OK, that's fine. Also, do remember that the wiki will automatically do your &amp;amp;lt;p&amp;amp;gt;ing for you as long as you leave a blank line in-between &amp;quot;paragraphs&amp;quot;. --[[User:Cyan~Fire|Cyan~Fire]]&lt;br /&gt;
&lt;br /&gt;
== old toc ==&lt;br /&gt;
&lt;br /&gt;
Please leave this here for now. --[[User:Cyan~Fire|Cyan~Fire]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;merv_toc&amp;quot; style=&amp;quot;font-size: 12px; margin: 2em;&amp;quot;&amp;gt;&lt;br /&gt;
Setup a MERVBot bot and project in visual c++&amp;lt;br /&amp;gt;&lt;br /&gt;
0) &amp;lt;a href=&amp;quot;#0&amp;quot;&amp;gt;Setting up a MERVBot bot&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command.cpp&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;1) &amp;lt;a href=&amp;quot;#1&amp;quot;&amp;gt;Player commands&amp;lt;/a&amp;gt; (!play, !squadA vs squadB)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Spawn.cpp&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;2) &amp;lt;a href=&amp;quot;#2&amp;quot;&amp;gt;Event descriptions&amp;lt;/a&amp;gt; (describe events in spawn.cpp)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;2) &amp;lt;a href=&amp;quot;#2&amp;quot;&amp;gt;Messaging &amp;lt;/a&amp;gt;(&amp;amp;quot;*arena hi&amp;amp;quot;, &amp;amp;quot;:player:*scorereset)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;3) &amp;lt;a href=&amp;quot;#3&amp;quot;&amp;gt;MervBot Timer&amp;lt;/a&amp;gt; (do this in 10 seconds)(countdown[n])&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;4) &amp;lt;a href=&amp;quot;#4&amp;quot;&amp;gt;Writing Functions&amp;lt;/a&amp;gt; (bool IsInCenter(Player *p))&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Useful operations&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;6) &amp;lt;a href=&amp;quot;#6&amp;quot;&amp;gt;Cycling players&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;7) &amp;lt;a href=&amp;quot;#7&amp;quot;&amp;gt;Check if pilot is in safe zone&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;8) &amp;lt;a href=&amp;quot;#8&amp;quot;&amp;gt;Random numbers&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;9) &amp;lt;a href=&amp;quot;#9&amp;quot;&amp;gt;Time without using countdown[n]&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
10) &amp;lt;a href=&amp;quot;#10&amp;quot;&amp;gt;Storing data for pilots&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
11) &amp;lt;a href=&amp;quot;#11&amp;quot;&amp;gt;Output data in messages&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
12) &amp;lt;a href=&amp;quot;#12&amp;quot;&amp;gt;Input/Output to files&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
13) &amp;lt;a href=&amp;quot;#13&amp;quot;&amp;gt;Programming commands&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
14) &amp;lt;a href=&amp;quot;#14&amp;quot;&amp;gt;Useful player data&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
15) &amp;lt;a href=&amp;quot;#15&amp;quot;&amp;gt;Bot built in functions&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Example Code&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 2em&amp;quot;&amp;gt;&lt;br /&gt;
a) &amp;lt;a href=&amp;quot;#15a&amp;quot;&amp;gt;No antiwarp in center of map&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
b) &amp;lt;a href=&amp;quot;#15b&amp;quot;&amp;gt;Setting freq size depending on how many pilots in game&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
c) &amp;lt;a href=&amp;quot;#15c&amp;quot;&amp;gt;Tracking kills and announcing when pilot gets 10 kills in a row without dying &amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
d) &amp;lt;a href=&amp;quot;#15d&amp;quot;&amp;gt;Warp pilot to coord when they are in a certain region&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
e) &amp;lt;a href=&amp;quot;#15e&amp;quot;&amp;gt;Structures within structures&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
f) &amp;lt;a href=&amp;quot;#15f&amp;quot;&amp;gt;Tracking flag data&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
g) &amp;lt;a href=&amp;quot;#15g&amp;quot;&amp;gt;Way to do simple /!spam feature&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
h) &amp;lt;a href=&amp;quot;#15h&amp;quot;&amp;gt;Implementing a simple stack to do &amp;amp;quot;next in line for several 'boxes' at once&amp;amp;quot;&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
i) &amp;lt;a href=&amp;quot;#15i&amp;quot;&amp;gt;Reading any text from a .txt and printing it to pilot line by line&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
j) &amp;lt;a href=&amp;quot;#15j&amp;quot;&amp;gt;Example of printing player stats grid&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
k) &amp;lt;a href=&amp;quot;#15k&amp;quot;&amp;gt;Example of checking if any pilots are within a region&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
l) &amp;lt;a href=&amp;quot;#15l&amp;quot;&amp;gt;Example of functions to get a pilot's struct id info from a name or *player info&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
m) &amp;lt;a href=&amp;quot;#15m&amp;quot;&amp;gt;Example of creating a logfile name using date and squad names&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
n) &amp;lt;a href=&amp;quot;#15n&amp;quot;&amp;gt;Sending messages to playing freqs or public and logging depending on status&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
o) &amp;lt;a href=&amp;quot;#15o&amp;quot;&amp;gt;Example of reading in all player/freqs to struct data&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
p) &amp;lt;a href=&amp;quot;#15p&amp;quot;&amp;gt;Example of finding MVP from struct data&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
q) &amp;lt;a href=&amp;quot;#15q&amp;quot;&amp;gt;Print time stamp of event&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
r) &amp;lt;a href=&amp;quot;#15r&amp;quot;&amp;gt;Simple way to track player bomb/bullet damage stats&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
s) &amp;lt;a href=&amp;quot;#15s&amp;quot;&amp;gt;Simple way to print those stats&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
t) &amp;lt;a href=&amp;quot;#15t&amp;quot;&amp;gt;Make bot spectate specific coordinates&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example Code commenting system ==&lt;br /&gt;
&lt;br /&gt;
What's the use of it? --[[User:Cyan~Fire|Cyan~Fire]]&lt;br /&gt;
&lt;br /&gt;
[[User:Smong|Smong]]: So if people don't understand the examples they can request help or a clarification. Also people that do understand an example might want to post a better/alternative solution. I suppose since you need an account to edit a page, maybe the wiki can be setup so you don't need an account to edit the discussion page so people can put comments in there.&lt;br /&gt;
&lt;br /&gt;
I think I wasn't being very clear, Cypher didn't understand me either. I was talking about his &amp;amp;lt;!-- EXAMPLE A: BEGIN--&amp;amp;gt; stuff. Anyway, I've gotten permission from him to remove it, it was only supposed to be temporary. The idea of anonymous talk posts is a good idea, but I'm not sure if its possible. --[[User:Cyan~Fire|Cyan~Fire]]&lt;br /&gt;
&lt;br /&gt;
== Make bot spectate specific coordinates Section ==&lt;br /&gt;
--[[User:50% Packetloss|50% Packetloss]] 14:34, Feb 21, 2005 (EST)&lt;br /&gt;
&lt;br /&gt;
This is what is currently there.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tell(makeFollowing(false));&lt;br /&gt;
tell(makeFlying(true));&lt;br /&gt;
me-&amp;gt;move(512 * 16, 600 * 16);&lt;br /&gt;
tell(makeSendPosition(true));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now when you tell the bot tell(makeFlying(true)); the core makes DLLFlying= true; Thus in the core's function void Host::doEvents() instead of the bot sending position packets, the job is left to the dll. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//...&lt;br /&gt;
if (DLLFlying)&lt;br /&gt;
{&lt;br /&gt;
	Uint32 limit = settings.SendPositionDelay;&lt;br /&gt;
&lt;br /&gt;
	if (time - lastPosition &amp;gt; limit)&lt;br /&gt;
	{&lt;br /&gt;
		imports-&amp;gt;talk(makePositionHook());&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
else if (Me-&amp;gt;ship == SHIP_Spectator)&lt;br /&gt;
{	// Spectating&lt;br /&gt;
	Uint32 limit = settings.SendPositionDelay;&lt;br /&gt;
&lt;br /&gt;
	if (time - lastPosition &amp;gt; limit)&lt;br /&gt;
	{&lt;br /&gt;
		// Cycle player spectated&lt;br /&gt;
		if (Me-&amp;gt;ship == SHIP_Spectator)&lt;br /&gt;
			spectateNext();&lt;br /&gt;
&lt;br /&gt;
			sendPosition(false);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
else if //...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So in the dll, in the positionhook event, you need to add tell(sendPosition(false));. Im not sure if it will have a dramatic effect if the bot is in spec (never tested it), but if the bot is in a ship it will disappear from the screen. I don't know a lot about this wiki stuff so Ill leave it up to you ladies to edit.&lt;/div&gt;</summary>
		<author><name>50% Packetloss</name></author>	</entry>

	<entry>
		<id>http://wiki.minegoboom.com/index.php?title=Talk:MERVBot_Tutorial&amp;diff=1323</id>
		<title>Talk:MERVBot Tutorial</title>
		<link rel="alternate" type="text/html" href="http://wiki.minegoboom.com/index.php?title=Talk:MERVBot_Tutorial&amp;diff=1323"/>
				<updated>2005-02-21T19:33:34Z</updated>
		
		<summary type="html">&lt;p&gt;50% Packetloss: /* Make bot spectate specific coordinates Section */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==General Convo==&lt;br /&gt;
D1s: Anybody wanna format this int a table of contents? I'm lazy&lt;br /&gt;
&lt;br /&gt;
[[User:Smong|Smong]]: That is sick. Maybe split into more pages? Says it is over 160k.&lt;br /&gt;
&lt;br /&gt;
[[User:Pests|Pests]]: There is already pages defined. You could just split them up into that.&lt;br /&gt;
&lt;br /&gt;
OK, I'm working on converting it to real HTML (using &amp;amp;lt;pre&amp;amp;gt;) instead of the &amp;amp;amp;nbsp; crap. --[[User:Cyan~Fire|Cyan~Fire]]&lt;br /&gt;
&lt;br /&gt;
[[User:CypherJF|CypherJF]]: Should we just call this &amp;quot;the bot tutorial&amp;quot; based on the tutorial by Underlord? Then update it accordingly? -- And also, the link to MervBot w/e 37 is now 45; should we just comment that this tutorial was writen for the 37 -- or... comments! lol.&lt;br /&gt;
&lt;br /&gt;
[[User:CypherJF|CypherJF]]: I'd like to say that all sections appear to have been updated for the Wiki; time to go through edit, and catch mistakes. Add to the wiki itself - perhaps more example code.&lt;br /&gt;
&lt;br /&gt;
[[User:CypherJF|CypherJF]]: Cyan and I were talking about the section &amp;quot;Checking if pilot is in a safe zone&amp;quot;; whether or not to just remove it. I remarked that it's a nice section for those to the whole plugin deal. But, I was just noticing how it'd make more sense to put the &amp;quot;Useful Player data&amp;quot; before hand... So i guess the next step is to go through and try to address the logical-aspect of ordering of the content? What's your guys' take?&lt;br /&gt;
&lt;br /&gt;
[[User:Smong|Smong]]: Uh yeah.. so why are there so many major edits to just one page? I can't see anything in recent changes but edits to the mervbot tutorial.&lt;br /&gt;
&lt;br /&gt;
[[User:CypherJF|CypherJF]]: See my other notes: &amp;quot;CypherJF: Well I've been doing the edits from all around campus. Like yesterday I did 4-6 things from the MathLab; and the rest from the dorm, etc. lol. I don't think it really matters, since there isn't much other activity going on.. on the wiki.&amp;quot; So, I'd make edits and just post em. It happened to be the only activity and sooo it looks worse than it is.&lt;br /&gt;
&lt;br /&gt;
== sscanf ==&lt;br /&gt;
&lt;br /&gt;
Well, I'm using sscanf() for parsing player input. Yes, an advanced function, but maybe it will discourage C++ newbs from making bot plugins. Any comments? --[[User:Cyan~Fire|Cyan~Fire]]&lt;br /&gt;
&lt;br /&gt;
D1st0rt: Cool beans. I learned something new :D&lt;br /&gt;
&lt;br /&gt;
== Event list ==&lt;br /&gt;
&lt;br /&gt;
Removed event list because it was redundant with dllcore.h, less descriptive, and too easy to get out-of-date. Anybody who wants it back, please post here so I can ignore you. :-D --[[User:Cyan~Fire|Cyan~Fire]]&lt;br /&gt;
&lt;br /&gt;
[[User:CypherJF|CypherJF]]: Like people are really going to read through the dllcore.h file.. on a webpage tutorial. hmm i think not. I still say keep it there.&lt;br /&gt;
&lt;br /&gt;
If someone doesn't make the effort to look up events in dllcore.h, they shouldn't be making plugins. I think of this tutorial as more of a &amp;quot;here are the basics and intricacies of making a MERVBot plugin&amp;quot; more than &amp;quot;here is how to follow step-by-step instructions and call it programming&amp;quot;. --[[User:Cyan~Fire|Cyan~Fire]]&lt;br /&gt;
&lt;br /&gt;
D1s: Even ''I'' look up things in dllcore.h, its a very useful resource. As long as it says to look in it, I don't think we'd need the full list here&lt;br /&gt;
&lt;br /&gt;
== Extra Code Samples ==&lt;br /&gt;
[[User:CypherJF|CypherJF]]: I'd like to somehow split these up better; and make them linkable, what do you guy's think?&lt;br /&gt;
&lt;br /&gt;
[[User:CypherJF|CypherJF]]: I made sub-headers, and so they'll be added into the table of contents. Let me know what you guys think of it.&lt;br /&gt;
&lt;br /&gt;
Alrighty, looks good. One thing I would ask is to try to save up a bunch of edits in a text editor or something, than have the myriad edits you do now. Thanks for sharing the burden with me! --[[User:Cyan~Fire|Cyan~Fire]]&lt;br /&gt;
&lt;br /&gt;
[[User:CypherJF|CypherJF]]: Well I've been doing the edits from all around campus. Like yesterday I did 4-6 things from the MathLab; and the rest from the dorm, etc. lol. I don't think it really matters, since there isn't much other activity going on.. on the wiki.&lt;br /&gt;
&lt;br /&gt;
Oh, OK, that's fine. Also, do remember that the wiki will automatically do your &amp;amp;lt;p&amp;amp;gt;ing for you as long as you leave a blank line in-between &amp;quot;paragraphs&amp;quot;. --[[User:Cyan~Fire|Cyan~Fire]]&lt;br /&gt;
&lt;br /&gt;
== old toc ==&lt;br /&gt;
&lt;br /&gt;
Please leave this here for now. --[[User:Cyan~Fire|Cyan~Fire]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;merv_toc&amp;quot; style=&amp;quot;font-size: 12px; margin: 2em;&amp;quot;&amp;gt;&lt;br /&gt;
Setup a MERVBot bot and project in visual c++&amp;lt;br /&amp;gt;&lt;br /&gt;
0) &amp;lt;a href=&amp;quot;#0&amp;quot;&amp;gt;Setting up a MERVBot bot&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command.cpp&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;1) &amp;lt;a href=&amp;quot;#1&amp;quot;&amp;gt;Player commands&amp;lt;/a&amp;gt; (!play, !squadA vs squadB)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Spawn.cpp&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;2) &amp;lt;a href=&amp;quot;#2&amp;quot;&amp;gt;Event descriptions&amp;lt;/a&amp;gt; (describe events in spawn.cpp)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;2) &amp;lt;a href=&amp;quot;#2&amp;quot;&amp;gt;Messaging &amp;lt;/a&amp;gt;(&amp;amp;quot;*arena hi&amp;amp;quot;, &amp;amp;quot;:player:*scorereset)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;3) &amp;lt;a href=&amp;quot;#3&amp;quot;&amp;gt;MervBot Timer&amp;lt;/a&amp;gt; (do this in 10 seconds)(countdown[n])&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;4) &amp;lt;a href=&amp;quot;#4&amp;quot;&amp;gt;Writing Functions&amp;lt;/a&amp;gt; (bool IsInCenter(Player *p))&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Useful operations&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;6) &amp;lt;a href=&amp;quot;#6&amp;quot;&amp;gt;Cycling players&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;7) &amp;lt;a href=&amp;quot;#7&amp;quot;&amp;gt;Check if pilot is in safe zone&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;8) &amp;lt;a href=&amp;quot;#8&amp;quot;&amp;gt;Random numbers&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;9) &amp;lt;a href=&amp;quot;#9&amp;quot;&amp;gt;Time without using countdown[n]&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
10) &amp;lt;a href=&amp;quot;#10&amp;quot;&amp;gt;Storing data for pilots&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
11) &amp;lt;a href=&amp;quot;#11&amp;quot;&amp;gt;Output data in messages&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
12) &amp;lt;a href=&amp;quot;#12&amp;quot;&amp;gt;Input/Output to files&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
13) &amp;lt;a href=&amp;quot;#13&amp;quot;&amp;gt;Programming commands&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
14) &amp;lt;a href=&amp;quot;#14&amp;quot;&amp;gt;Useful player data&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
15) &amp;lt;a href=&amp;quot;#15&amp;quot;&amp;gt;Bot built in functions&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Example Code&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 2em&amp;quot;&amp;gt;&lt;br /&gt;
a) &amp;lt;a href=&amp;quot;#15a&amp;quot;&amp;gt;No antiwarp in center of map&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
b) &amp;lt;a href=&amp;quot;#15b&amp;quot;&amp;gt;Setting freq size depending on how many pilots in game&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
c) &amp;lt;a href=&amp;quot;#15c&amp;quot;&amp;gt;Tracking kills and announcing when pilot gets 10 kills in a row without dying &amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
d) &amp;lt;a href=&amp;quot;#15d&amp;quot;&amp;gt;Warp pilot to coord when they are in a certain region&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
e) &amp;lt;a href=&amp;quot;#15e&amp;quot;&amp;gt;Structures within structures&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
f) &amp;lt;a href=&amp;quot;#15f&amp;quot;&amp;gt;Tracking flag data&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
g) &amp;lt;a href=&amp;quot;#15g&amp;quot;&amp;gt;Way to do simple /!spam feature&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
h) &amp;lt;a href=&amp;quot;#15h&amp;quot;&amp;gt;Implementing a simple stack to do &amp;amp;quot;next in line for several 'boxes' at once&amp;amp;quot;&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
i) &amp;lt;a href=&amp;quot;#15i&amp;quot;&amp;gt;Reading any text from a .txt and printing it to pilot line by line&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
j) &amp;lt;a href=&amp;quot;#15j&amp;quot;&amp;gt;Example of printing player stats grid&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
k) &amp;lt;a href=&amp;quot;#15k&amp;quot;&amp;gt;Example of checking if any pilots are within a region&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
l) &amp;lt;a href=&amp;quot;#15l&amp;quot;&amp;gt;Example of functions to get a pilot's struct id info from a name or *player info&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
m) &amp;lt;a href=&amp;quot;#15m&amp;quot;&amp;gt;Example of creating a logfile name using date and squad names&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
n) &amp;lt;a href=&amp;quot;#15n&amp;quot;&amp;gt;Sending messages to playing freqs or public and logging depending on status&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
o) &amp;lt;a href=&amp;quot;#15o&amp;quot;&amp;gt;Example of reading in all player/freqs to struct data&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
p) &amp;lt;a href=&amp;quot;#15p&amp;quot;&amp;gt;Example of finding MVP from struct data&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
q) &amp;lt;a href=&amp;quot;#15q&amp;quot;&amp;gt;Print time stamp of event&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
r) &amp;lt;a href=&amp;quot;#15r&amp;quot;&amp;gt;Simple way to track player bomb/bullet damage stats&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
s) &amp;lt;a href=&amp;quot;#15s&amp;quot;&amp;gt;Simple way to print those stats&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
t) &amp;lt;a href=&amp;quot;#15t&amp;quot;&amp;gt;Make bot spectate specific coordinates&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example Code commenting system ==&lt;br /&gt;
&lt;br /&gt;
What's the use of it? --[[User:Cyan~Fire|Cyan~Fire]]&lt;br /&gt;
&lt;br /&gt;
[[User:Smong|Smong]]: So if people don't understand the examples they can request help or a clarification. Also people that do understand an example might want to post a better/alternative solution. I suppose since you need an account to edit a page, maybe the wiki can be setup so you don't need an account to edit the discussion page so people can put comments in there.&lt;br /&gt;
&lt;br /&gt;
I think I wasn't being very clear, Cypher didn't understand me either. I was talking about his &amp;amp;lt;!-- EXAMPLE A: BEGIN--&amp;amp;gt; stuff. Anyway, I've gotten permission from him to remove it, it was only supposed to be temporary. The idea of anonymous talk posts is a good idea, but I'm not sure if its possible. --[[User:Cyan~Fire|Cyan~Fire]]&lt;br /&gt;
&lt;br /&gt;
== Make bot spectate specific coordinates Section ==--[[User:50% Packetloss|50% Packetloss]] 14:33, Feb 21, 2005 (EST)&lt;br /&gt;
&lt;br /&gt;
This is what is currently there.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tell(makeFollowing(false));&lt;br /&gt;
tell(makeFlying(true));&lt;br /&gt;
me-&amp;gt;move(512 * 16, 600 * 16);&lt;br /&gt;
tell(makeSendPosition(true));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now when you tell the bot tell(makeFlying(true)); the core makes DLLFlying= true; Thus in the core's function void Host::doEvents() instead of the bot sending position packets, the job is left to the dll. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//...&lt;br /&gt;
if (DLLFlying)&lt;br /&gt;
{&lt;br /&gt;
	Uint32 limit = settings.SendPositionDelay;&lt;br /&gt;
&lt;br /&gt;
	if (time - lastPosition &amp;gt; limit)&lt;br /&gt;
	{&lt;br /&gt;
		imports-&amp;gt;talk(makePositionHook());&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
else if (Me-&amp;gt;ship == SHIP_Spectator)&lt;br /&gt;
{	// Spectating&lt;br /&gt;
	Uint32 limit = settings.SendPositionDelay;&lt;br /&gt;
&lt;br /&gt;
	if (time - lastPosition &amp;gt; limit)&lt;br /&gt;
	{&lt;br /&gt;
		// Cycle player spectated&lt;br /&gt;
		if (Me-&amp;gt;ship == SHIP_Spectator)&lt;br /&gt;
			spectateNext();&lt;br /&gt;
&lt;br /&gt;
			sendPosition(false);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
else if //...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So in the dll, in the positionhook event, you need to add tell(sendPosition(false));. Im not sure if it will have a dramatic effect if the bot is in spec (never tested it), but if the bot is in a ship it will disappear from the screen. I don't know a lot about this wiki stuff so Ill leave it up to you ladies to edit.&lt;/div&gt;</summary>
		<author><name>50% Packetloss</name></author>	</entry>

	<entry>
		<id>http://wiki.minegoboom.com/index.php?title=Talk:MERVBot_Tutorial&amp;diff=1322</id>
		<title>Talk:MERVBot Tutorial</title>
		<link rel="alternate" type="text/html" href="http://wiki.minegoboom.com/index.php?title=Talk:MERVBot_Tutorial&amp;diff=1322"/>
				<updated>2005-02-21T19:32:45Z</updated>
		
		<summary type="html">&lt;p&gt;50% Packetloss: Make bot spectate specific coordinates Section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==General Convo==&lt;br /&gt;
D1s: Anybody wanna format this int a table of contents? I'm lazy&lt;br /&gt;
&lt;br /&gt;
[[User:Smong|Smong]]: That is sick. Maybe split into more pages? Says it is over 160k.&lt;br /&gt;
&lt;br /&gt;
[[User:Pests|Pests]]: There is already pages defined. You could just split them up into that.&lt;br /&gt;
&lt;br /&gt;
OK, I'm working on converting it to real HTML (using &amp;amp;lt;pre&amp;amp;gt;) instead of the &amp;amp;amp;nbsp; crap. --[[User:Cyan~Fire|Cyan~Fire]]&lt;br /&gt;
&lt;br /&gt;
[[User:CypherJF|CypherJF]]: Should we just call this &amp;quot;the bot tutorial&amp;quot; based on the tutorial by Underlord? Then update it accordingly? -- And also, the link to MervBot w/e 37 is now 45; should we just comment that this tutorial was writen for the 37 -- or... comments! lol.&lt;br /&gt;
&lt;br /&gt;
[[User:CypherJF|CypherJF]]: I'd like to say that all sections appear to have been updated for the Wiki; time to go through edit, and catch mistakes. Add to the wiki itself - perhaps more example code.&lt;br /&gt;
&lt;br /&gt;
[[User:CypherJF|CypherJF]]: Cyan and I were talking about the section &amp;quot;Checking if pilot is in a safe zone&amp;quot;; whether or not to just remove it. I remarked that it's a nice section for those to the whole plugin deal. But, I was just noticing how it'd make more sense to put the &amp;quot;Useful Player data&amp;quot; before hand... So i guess the next step is to go through and try to address the logical-aspect of ordering of the content? What's your guys' take?&lt;br /&gt;
&lt;br /&gt;
[[User:Smong|Smong]]: Uh yeah.. so why are there so many major edits to just one page? I can't see anything in recent changes but edits to the mervbot tutorial.&lt;br /&gt;
&lt;br /&gt;
[[User:CypherJF|CypherJF]]: See my other notes: &amp;quot;CypherJF: Well I've been doing the edits from all around campus. Like yesterday I did 4-6 things from the MathLab; and the rest from the dorm, etc. lol. I don't think it really matters, since there isn't much other activity going on.. on the wiki.&amp;quot; So, I'd make edits and just post em. It happened to be the only activity and sooo it looks worse than it is.&lt;br /&gt;
&lt;br /&gt;
== sscanf ==&lt;br /&gt;
&lt;br /&gt;
Well, I'm using sscanf() for parsing player input. Yes, an advanced function, but maybe it will discourage C++ newbs from making bot plugins. Any comments? --[[User:Cyan~Fire|Cyan~Fire]]&lt;br /&gt;
&lt;br /&gt;
D1st0rt: Cool beans. I learned something new :D&lt;br /&gt;
&lt;br /&gt;
== Event list ==&lt;br /&gt;
&lt;br /&gt;
Removed event list because it was redundant with dllcore.h, less descriptive, and too easy to get out-of-date. Anybody who wants it back, please post here so I can ignore you. :-D --[[User:Cyan~Fire|Cyan~Fire]]&lt;br /&gt;
&lt;br /&gt;
[[User:CypherJF|CypherJF]]: Like people are really going to read through the dllcore.h file.. on a webpage tutorial. hmm i think not. I still say keep it there.&lt;br /&gt;
&lt;br /&gt;
If someone doesn't make the effort to look up events in dllcore.h, they shouldn't be making plugins. I think of this tutorial as more of a &amp;quot;here are the basics and intricacies of making a MERVBot plugin&amp;quot; more than &amp;quot;here is how to follow step-by-step instructions and call it programming&amp;quot;. --[[User:Cyan~Fire|Cyan~Fire]]&lt;br /&gt;
&lt;br /&gt;
D1s: Even ''I'' look up things in dllcore.h, its a very useful resource. As long as it says to look in it, I don't think we'd need the full list here&lt;br /&gt;
&lt;br /&gt;
== Extra Code Samples ==&lt;br /&gt;
[[User:CypherJF|CypherJF]]: I'd like to somehow split these up better; and make them linkable, what do you guy's think?&lt;br /&gt;
&lt;br /&gt;
[[User:CypherJF|CypherJF]]: I made sub-headers, and so they'll be added into the table of contents. Let me know what you guys think of it.&lt;br /&gt;
&lt;br /&gt;
Alrighty, looks good. One thing I would ask is to try to save up a bunch of edits in a text editor or something, than have the myriad edits you do now. Thanks for sharing the burden with me! --[[User:Cyan~Fire|Cyan~Fire]]&lt;br /&gt;
&lt;br /&gt;
[[User:CypherJF|CypherJF]]: Well I've been doing the edits from all around campus. Like yesterday I did 4-6 things from the MathLab; and the rest from the dorm, etc. lol. I don't think it really matters, since there isn't much other activity going on.. on the wiki.&lt;br /&gt;
&lt;br /&gt;
Oh, OK, that's fine. Also, do remember that the wiki will automatically do your &amp;amp;lt;p&amp;amp;gt;ing for you as long as you leave a blank line in-between &amp;quot;paragraphs&amp;quot;. --[[User:Cyan~Fire|Cyan~Fire]]&lt;br /&gt;
&lt;br /&gt;
== old toc ==&lt;br /&gt;
&lt;br /&gt;
Please leave this here for now. --[[User:Cyan~Fire|Cyan~Fire]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;merv_toc&amp;quot; style=&amp;quot;font-size: 12px; margin: 2em;&amp;quot;&amp;gt;&lt;br /&gt;
Setup a MERVBot bot and project in visual c++&amp;lt;br /&amp;gt;&lt;br /&gt;
0) &amp;lt;a href=&amp;quot;#0&amp;quot;&amp;gt;Setting up a MERVBot bot&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Command.cpp&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;1) &amp;lt;a href=&amp;quot;#1&amp;quot;&amp;gt;Player commands&amp;lt;/a&amp;gt; (!play, !squadA vs squadB)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Spawn.cpp&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;2) &amp;lt;a href=&amp;quot;#2&amp;quot;&amp;gt;Event descriptions&amp;lt;/a&amp;gt; (describe events in spawn.cpp)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;2) &amp;lt;a href=&amp;quot;#2&amp;quot;&amp;gt;Messaging &amp;lt;/a&amp;gt;(&amp;amp;quot;*arena hi&amp;amp;quot;, &amp;amp;quot;:player:*scorereset)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;3) &amp;lt;a href=&amp;quot;#3&amp;quot;&amp;gt;MervBot Timer&amp;lt;/a&amp;gt; (do this in 10 seconds)(countdown[n])&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;4) &amp;lt;a href=&amp;quot;#4&amp;quot;&amp;gt;Writing Functions&amp;lt;/a&amp;gt; (bool IsInCenter(Player *p))&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Useful operations&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;6) &amp;lt;a href=&amp;quot;#6&amp;quot;&amp;gt;Cycling players&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;7) &amp;lt;a href=&amp;quot;#7&amp;quot;&amp;gt;Check if pilot is in safe zone&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;8) &amp;lt;a href=&amp;quot;#8&amp;quot;&amp;gt;Random numbers&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;9) &amp;lt;a href=&amp;quot;#9&amp;quot;&amp;gt;Time without using countdown[n]&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
10) &amp;lt;a href=&amp;quot;#10&amp;quot;&amp;gt;Storing data for pilots&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
11) &amp;lt;a href=&amp;quot;#11&amp;quot;&amp;gt;Output data in messages&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
12) &amp;lt;a href=&amp;quot;#12&amp;quot;&amp;gt;Input/Output to files&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
13) &amp;lt;a href=&amp;quot;#13&amp;quot;&amp;gt;Programming commands&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
14) &amp;lt;a href=&amp;quot;#14&amp;quot;&amp;gt;Useful player data&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
15) &amp;lt;a href=&amp;quot;#15&amp;quot;&amp;gt;Bot built in functions&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Example Code&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left: 2em&amp;quot;&amp;gt;&lt;br /&gt;
a) &amp;lt;a href=&amp;quot;#15a&amp;quot;&amp;gt;No antiwarp in center of map&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
b) &amp;lt;a href=&amp;quot;#15b&amp;quot;&amp;gt;Setting freq size depending on how many pilots in game&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
c) &amp;lt;a href=&amp;quot;#15c&amp;quot;&amp;gt;Tracking kills and announcing when pilot gets 10 kills in a row without dying &amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
d) &amp;lt;a href=&amp;quot;#15d&amp;quot;&amp;gt;Warp pilot to coord when they are in a certain region&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
e) &amp;lt;a href=&amp;quot;#15e&amp;quot;&amp;gt;Structures within structures&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
f) &amp;lt;a href=&amp;quot;#15f&amp;quot;&amp;gt;Tracking flag data&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
g) &amp;lt;a href=&amp;quot;#15g&amp;quot;&amp;gt;Way to do simple /!spam feature&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
h) &amp;lt;a href=&amp;quot;#15h&amp;quot;&amp;gt;Implementing a simple stack to do &amp;amp;quot;next in line for several 'boxes' at once&amp;amp;quot;&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
i) &amp;lt;a href=&amp;quot;#15i&amp;quot;&amp;gt;Reading any text from a .txt and printing it to pilot line by line&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
j) &amp;lt;a href=&amp;quot;#15j&amp;quot;&amp;gt;Example of printing player stats grid&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
k) &amp;lt;a href=&amp;quot;#15k&amp;quot;&amp;gt;Example of checking if any pilots are within a region&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
l) &amp;lt;a href=&amp;quot;#15l&amp;quot;&amp;gt;Example of functions to get a pilot's struct id info from a name or *player info&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
m) &amp;lt;a href=&amp;quot;#15m&amp;quot;&amp;gt;Example of creating a logfile name using date and squad names&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
n) &amp;lt;a href=&amp;quot;#15n&amp;quot;&amp;gt;Sending messages to playing freqs or public and logging depending on status&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
o) &amp;lt;a href=&amp;quot;#15o&amp;quot;&amp;gt;Example of reading in all player/freqs to struct data&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
p) &amp;lt;a href=&amp;quot;#15p&amp;quot;&amp;gt;Example of finding MVP from struct data&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
q) &amp;lt;a href=&amp;quot;#15q&amp;quot;&amp;gt;Print time stamp of event&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
r) &amp;lt;a href=&amp;quot;#15r&amp;quot;&amp;gt;Simple way to track player bomb/bullet damage stats&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
s) &amp;lt;a href=&amp;quot;#15s&amp;quot;&amp;gt;Simple way to print those stats&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
t) &amp;lt;a href=&amp;quot;#15t&amp;quot;&amp;gt;Make bot spectate specific coordinates&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example Code commenting system ==&lt;br /&gt;
&lt;br /&gt;
What's the use of it? --[[User:Cyan~Fire|Cyan~Fire]]&lt;br /&gt;
&lt;br /&gt;
[[User:Smong|Smong]]: So if people don't understand the examples they can request help or a clarification. Also people that do understand an example might want to post a better/alternative solution. I suppose since you need an account to edit a page, maybe the wiki can be setup so you don't need an account to edit the discussion page so people can put comments in there.&lt;br /&gt;
&lt;br /&gt;
I think I wasn't being very clear, Cypher didn't understand me either. I was talking about his &amp;amp;lt;!-- EXAMPLE A: BEGIN--&amp;amp;gt; stuff. Anyway, I've gotten permission from him to remove it, it was only supposed to be temporary. The idea of anonymous talk posts is a good idea, but I'm not sure if its possible. --[[User:Cyan~Fire|Cyan~Fire]]&lt;br /&gt;
&lt;br /&gt;
== Make bot spectate specific coordinates Section ==&lt;br /&gt;
&lt;br /&gt;
This is what is currently there.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tell(makeFollowing(false));&lt;br /&gt;
tell(makeFlying(true));&lt;br /&gt;
me-&amp;gt;move(512 * 16, 600 * 16);&lt;br /&gt;
tell(makeSendPosition(true));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now when you tell the bot tell(makeFlying(true)); the core makes DLLFlying= true; Thus in the core's function void Host::doEvents() instead of the bot sending position packets, the job is left to the dll. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//...&lt;br /&gt;
if (DLLFlying)&lt;br /&gt;
{&lt;br /&gt;
	Uint32 limit = settings.SendPositionDelay;&lt;br /&gt;
&lt;br /&gt;
	if (time - lastPosition &amp;gt; limit)&lt;br /&gt;
	{&lt;br /&gt;
		imports-&amp;gt;talk(makePositionHook());&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
else if (Me-&amp;gt;ship == SHIP_Spectator)&lt;br /&gt;
{	// Spectating&lt;br /&gt;
	Uint32 limit = settings.SendPositionDelay;&lt;br /&gt;
&lt;br /&gt;
	if (time - lastPosition &amp;gt; limit)&lt;br /&gt;
	{&lt;br /&gt;
		// Cycle player spectated&lt;br /&gt;
		if (Me-&amp;gt;ship == SHIP_Spectator)&lt;br /&gt;
			spectateNext();&lt;br /&gt;
&lt;br /&gt;
			sendPosition(false);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
else if //...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So in the dll, in the positionhook event, you need to add tell(sendPosition(false));. Im not sure if it will have a dramatic effect if the bot is in spec (never tested it), but if the bot is in a ship it will disappear from the screen. I don't know a lot about this wiki stuff so Ill leave it up to you ladies to edit.&lt;/div&gt;</summary>
		<author><name>50% Packetloss</name></author>	</entry>

	</feed>