<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6287513207414970276</id><updated>2011-07-30T06:01:54.206-07:00</updated><category term='death delay'/><category term='Stealth blinking radar'/><category term='shot'/><category term='Flag coloring Identify'/><category term='Guided Missile lock'/><category term='death'/><category term='god mode'/><category term='Wings Gravity Bloodbath'/><category term='/send thief'/><category term='jamming'/><category term='No Gravity'/><category term='kill'/><category term='delay'/><category term='superkillme'/><category term='Super jump'/><category term='DUB'/><category term='delay death'/><category term='jump'/><category term='kill me'/><category term='team kill'/><category term='clientquery spoofing'/><category term='normal bullets pz'/><category term='Toggling cheats wallwalking oscillation overthruster'/><category term='killme'/><category term='Find a geno flag'/><category term='pillbox'/><category term='Blindness'/><category term='Teleport instantaneously behind somebody agent smith style'/><category term='self destruct'/><category term='guided lasers'/><title type='text'>BZFlag Cheat</title><subtitle type='html'>Helping You To Build Your Own BZFlag Cheat Client

&lt;br&gt;Your Resource For BZFlag Cheating&lt;/br&gt;
&lt;br&gt;-::Brought to You by BZFlag Cheaters::-&lt;/br&gt;
&lt;br&gt;3 Ha}{0rs of The Flag = 100's of Pissed Off People!&lt;/br&gt;
&lt;p&gt;&lt;A HREF="http://www.scatgirls.com/"&gt;Hate Mail Click Here&lt;/A&gt;&lt;/p&gt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>CRW</name><uri>http://www.blogger.com/profile/16469342749811241765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>48</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-1148732133693558526</id><published>2008-01-06T22:16:00.000-08:00</published><updated>2008-01-07T11:24:29.706-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='death'/><category scheme='http://www.blogger.com/atom/ns#' term='death delay'/><category scheme='http://www.blogger.com/atom/ns#' term='shot'/><category scheme='http://www.blogger.com/atom/ns#' term='delay death'/><category scheme='http://www.blogger.com/atom/ns#' term='delay'/><title type='text'>Delayed Death after Getting Shot</title><content type='html'>By:  &lt;span style="font-weight:bold;"&gt;Lord Jesus&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This cheat comes to us by way of an idea from blogger, &lt;span style="font-weight:bold;"&gt;person&lt;/span&gt;.  Here is an excerpt of his comment to &lt;a href="http://bzfcheat.blogspot.com/2008/01/super-kill-me-on-demand.html"&gt;Super "Kill Me" on Demand&lt;/a&gt; in which he proposed the idea:&lt;br /&gt;&lt;ul&gt;&lt;i&gt;&lt;br /&gt;I have a suggestion... Maybe there could be a client side delay so that when the tank detects that it has been shot, it will let you live for just a little longer, giving you a short time in which you could kill your killer before you died. Like for example. I get in a fight with a shock waver. I wait for him to land, but am hit before he lands. Instead of exploding, I would have 2 seconds to kill him first.&lt;br /&gt;&lt;/i&gt;&lt;/ul&gt;&lt;br /&gt;The delayed death cheat can also be useful for cheaters with slow connections and/or moderate to high lag since the delay can possibly be attributed to lag.  Some administrators, though, may kick players who lag or seem to lag until they are able to fix the problem especially if other players are complaining about it.  &lt;br /&gt;&lt;br /&gt;Being that I'm not a software developer, this may look a bit rough; however, it works.  Suggestions to clean it up or to make it easier are always welcome.  &lt;br /&gt;&lt;br /&gt;Anyway, I found in my experiments that setting the delay to 2.0f seemed a little long.  It would be easily noticed, and you would be singled out shortly for cheating.  In this example, I use 1.0f which turns out to be a little closer to two seconds than it does one.  You can adjust that value to suit your liking.  Perhaps, you can shorten it to make it less noticeable yet still give you just enough time to pop off a shot or two at the player who shot you.  Additionally, my idea was to have a countdown on the display.  Being that the time is short, I decided to go simply with "Death imminent" as a quick warning for you to get your shot(s) off before you blow up.&lt;br /&gt;&lt;br /&gt;I didn't include a delay for Thief.  The idea is to shoot a person who actually shot you.  I also didn't include a delay for Steamroller; however, implementing a delay for that as well wouldn't be difficult.&lt;br /&gt;&lt;br /&gt;All of the changes that we will make will be in the file, &lt;span style="font-weight:bold;"&gt;playing.cxx&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;At the beginning, of playing.cxx, you will see a section for "system includes":&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;// system includes&lt;br /&gt;#ifdef _WIN32&lt;br /&gt;#include &lt;shlobj.h&gt;&lt;br /&gt;#include &lt;sys/types.h&gt;&lt;br /&gt;#include &lt;sys/stat.h&gt;&lt;br /&gt;#include &lt;direct.h&gt;&lt;br /&gt;#else&lt;br /&gt;#include &lt;pwd.h&gt;&lt;br /&gt;#include &lt;sys/types.h&gt;&lt;br /&gt;#include &lt;sys/stat.h&gt;&lt;br /&gt;#include &lt;dirent.h&gt;&lt;br /&gt;#include &lt;utime.h&gt;&lt;br /&gt;#endif&lt;br /&gt;#include &lt;cmath&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;At the end of that, add "int deathStart;" so that the section now reads like this:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;// system includes&lt;br /&gt;#ifdef _WIN32&lt;br /&gt;#include &lt;shlobj.h&gt;&lt;br /&gt;#include &lt;sys/types.h&gt;&lt;br /&gt;#include &lt;sys/stat.h&gt;&lt;br /&gt;#include &lt;direct.h&gt;&lt;br /&gt;#else&lt;br /&gt;#include &lt;pwd.h&gt;&lt;br /&gt;#include &lt;sys/types.h&gt;&lt;br /&gt;#include &lt;sys/stat.h&gt;&lt;br /&gt;#include &lt;dirent.h&gt;&lt;br /&gt;#include &lt;utime.h&gt;&lt;br /&gt;#endif&lt;br /&gt;#include &lt;cmath&gt;&lt;br /&gt;int deathStart;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Next, search for "destructCountdown" and you will find these lines:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;float   pauseCountdown = 0.0f;&lt;br /&gt;float   destructCountdown = 0.0f&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Just below the "destructCountdown" line, add this new line:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;float   deathCountdown = 0.0f;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The lines should now read like this:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;float   pauseCountdown = 0.0f;&lt;br /&gt;float   destructCountdown = 0.0f;&lt;br /&gt;float   deathCountdown = 0.0f;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Search for "destructCountdown" again, and you will find this section:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;static void  updateDestructCountdown(float dt)&lt;br /&gt;{&lt;br /&gt;  if (!myTank) {&lt;br /&gt;    destructCountdown = 0.0f;&lt;br /&gt;  }&lt;br /&gt;  if (destructCountdown &gt; 0.0f &amp;&amp; !myTank-&gt;isAlive()) {&lt;br /&gt;    destructCountdown = 0.0f;&lt;br /&gt;    hud-&gt;setAlert(1, NULL, 0.0f, true);&lt;br /&gt;  }&lt;br /&gt;  if (destructCountdown &gt; 0.0f) {&lt;br /&gt;    const int oldDestructCountdown = (int)(destructCountdown + 0.99f);&lt;br /&gt;    destructCountdown -= dt;&lt;br /&gt;    if (destructCountdown &lt;= 0.0f) {&lt;br /&gt;      // now actually destruct&lt;br /&gt;      gotBlowedUp( myTank, SelfDestruct, myTank-&gt;getId() );&lt;br /&gt;&lt;br /&gt;      hud-&gt;setAlert(1, NULL, 0.0f, true);&lt;br /&gt;    } else if ((int)(destructCountdown + 0.99f) != oldDestructCountdown) {&lt;br /&gt;      // update countdown alert&lt;br /&gt;      char msgBuf[40];&lt;br /&gt;      sprintf(msgBuf, "Self Destructing in %d", (int)(destructCountdown + 0.99f));&lt;br /&gt;      hud-&gt;setAlert(1, msgBuf, 1.0f, false);&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;  return;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Below that, add these lines:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;static void  updateDeathCountdown(float dt)&lt;br /&gt;{&lt;br /&gt;  if (!myTank) {&lt;br /&gt;    deathCountdown = 0.0f;&lt;br /&gt;  }&lt;br /&gt;  if (deathCountdown &gt; 0.0f &amp;&amp; !myTank-&gt;isAlive()) {&lt;br /&gt;    deathCountdown = 0.0f;&lt;br /&gt;    hud-&gt;setAlert(1, NULL, 0.0f, true);&lt;br /&gt;  }&lt;br /&gt;  if (deathCountdown &gt; 0.0f) {&lt;br /&gt;    const int oldDeathCountdown = (int)(deathCountdown + 0.99f);&lt;br /&gt;    deathCountdown -= dt;&lt;br /&gt;    if (deathCountdown &lt;= 0.0f) {&lt;br /&gt;      // blow up my tank and then reset&lt;br /&gt;      // deathCountdown &amp; deathStart back to zero&lt;br /&gt;      gotBlowedUp(myTank,GotShot,deathStart);&lt;br /&gt;      deathCountdown = 0.0f;&lt;br /&gt;      deathStart = 0;&lt;br /&gt;&lt;br /&gt;      hud-&gt;setAlert(1, NULL, 0.0f, true);&lt;br /&gt;    } else if ((int)(deathCountdown + 0.99f) != oldDeathCountdown) {&lt;br /&gt;      // update countdown alert&lt;br /&gt;      char msgBuf[40];&lt;br /&gt;      sprintf(msgBuf, "Death imminent");&lt;br /&gt;      hud-&gt;setAlert(1, msgBuf, 1.0f, false);&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;  return;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Search for "destructCountdown" one more time, and you will find this section:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    // update the countdowns&lt;br /&gt;    updatePauseCountdown(dt);&lt;br /&gt;    updateDestructCountdown(dt);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Below that, add "updateDeathCountdown(dt);" so that the section now reads like this:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    // update the countdowns&lt;br /&gt;    updatePauseCountdown(dt);&lt;br /&gt;    updateDestructCountdown(dt);&lt;br /&gt;    updateDeathCountdown(dt);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now, search for "used later", and you will find this section:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  // used later&lt;br /&gt;  float waterLevel = World::getWorld()-&gt;getWaterLevel();&lt;br /&gt;&lt;br /&gt;  if (hit) {&lt;br /&gt;    // i got shot!  terminate the shot that hit me and blow up.&lt;br /&gt;    // force shot to terminate locally immediately (no server round trip);&lt;br /&gt;    // this is to ensure that we don't get shot again by the same shot&lt;br /&gt;    // after dropping our shield flag.&lt;br /&gt;    if (hit-&gt;isStoppedByHit())&lt;br /&gt;      serverLink-&gt;sendEndShot(hit-&gt;getPlayer(), hit-&gt;getShotId(), 1);&lt;br /&gt;&lt;br /&gt;    FlagType* killerFlag = hit-&gt;getFlag();&lt;br /&gt;    bool stopShot;&lt;br /&gt;&lt;br /&gt;    if (killerFlag == Flags::Thief) {&lt;br /&gt;      if (myTank-&gt;getFlag() != Flags::Null) {&lt;br /&gt; serverLink-&gt;sendTransferFlag(myTank-&gt;getId(), hit-&gt;getPlayer());&lt;br /&gt;      }&lt;br /&gt;      stopShot = true;&lt;br /&gt;    }&lt;br /&gt;    else {&lt;br /&gt;      stopShot = gotBlowedUp(myTank, GotShot, hit-&gt;getPlayer(), hit);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    if (stopShot || hit-&gt;isStoppedByHit()) {&lt;br /&gt;      Player* hitter = lookupPlayer(hit-&gt;getPlayer());&lt;br /&gt;      if (hitter) hitter-&gt;endShot(hit-&gt;getShotId());&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;  // if not dead yet, see if i'm sitting on death&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Just after the comments at the beginning of the "if (hit)" section, add these lines:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    // skip this if the Death Counter is counting&lt;br /&gt;    if (deathCountdown &gt; 0.0f) return;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The section should now read like this:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  if (hit) {&lt;br /&gt;    // i got shot!  terminate the shot that hit me and blow up.&lt;br /&gt;    // force shot to terminate locally immediately (no server round trip);&lt;br /&gt;    // this is to ensure that we don't get shot again by the same shot&lt;br /&gt;    // after dropping our shield flag.&lt;br /&gt;&lt;br /&gt;    // skip this if the Death Counter is counting&lt;br /&gt;    if (deathCountdown &gt; 0.0f) return;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Next, notice these lines in particular in the "if (hit)" section:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    else {&lt;br /&gt;      stopShot = gotBlowedUp(myTank, GotShot, hit-&gt;getPlayer(), hit);&lt;br /&gt;    }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Replace "stopShot = gotBlowedUp(myTank, GotShot, hit-&gt;getPlayer(), hit);" with these lines:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;      deathCountdown = 1.0f;&lt;br /&gt;      deathStart = hit-&gt;getPlayer();&lt;br /&gt;&lt;br /&gt;      // imminent death alert&lt;br /&gt;      char msgBuf[40];&lt;br /&gt;      sprintf(msgBuf, "Death imminent");&lt;br /&gt;      hud-&gt;setAlert(1, msgBuf, 1.0f, false);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The section should now read like this:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    else {&lt;br /&gt;      deathCountdown = 1.0f;&lt;br /&gt;      deathStart = hit-&gt;getPlayer();&lt;br /&gt;&lt;br /&gt;      // imminent death alert&lt;br /&gt;      char msgBuf[40];&lt;br /&gt;      sprintf(msgBuf, "Death imminent");&lt;br /&gt;      hud-&gt;setAlert(1, msgBuf, 1.0f, false);&lt;br /&gt;    }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The entire section after your changes should now look like this:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  // used later&lt;br /&gt;  float waterLevel = World::getWorld()-&gt;getWaterLevel();&lt;br /&gt;&lt;br /&gt;  if (hit) {&lt;br /&gt;    // i got shot!  terminate the shot that hit me and blow up.&lt;br /&gt;    // force shot to terminate locally immediately (no server round trip);&lt;br /&gt;    // this is to ensure that we don't get shot again by the same shot&lt;br /&gt;    // after dropping our shield flag.&lt;br /&gt;&lt;br /&gt;    // skip this if the Death Counter is counting&lt;br /&gt;    if (deathCountdown &gt; 0.0f) return;&lt;br /&gt;&lt;br /&gt;    if (hit-&gt;isStoppedByHit())&lt;br /&gt;      serverLink-&gt;sendEndShot(hit-&gt;getPlayer(), hit-&gt;getShotId(), 1);&lt;br /&gt;&lt;br /&gt;    FlagType* killerFlag = hit-&gt;getFlag();&lt;br /&gt;    bool stopShot;&lt;br /&gt;&lt;br /&gt;    if (killerFlag == Flags::Thief) {&lt;br /&gt;      if (myTank-&gt;getFlag() != Flags::Null) {&lt;br /&gt; serverLink-&gt;sendTransferFlag(myTank-&gt;getId(), hit-&gt;getPlayer());&lt;br /&gt;      }&lt;br /&gt;      stopShot = true;&lt;br /&gt;    }&lt;br /&gt;    else {&lt;br /&gt;      deathCountdown = 1.0f;&lt;br /&gt;      deathStart = hit-&gt;getPlayer();&lt;br /&gt;&lt;br /&gt;      // imminent death alert&lt;br /&gt;      char msgBuf[40];&lt;br /&gt;      sprintf(msgBuf, "Death imminent");&lt;br /&gt;      hud-&gt;setAlert(1, msgBuf, 1.0f, false);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    if (stopShot || hit-&gt;isStoppedByHit()) {&lt;br /&gt;      Player* hitter = lookupPlayer(hit-&gt;getPlayer());&lt;br /&gt;      if (hitter) hitter-&gt;endShot(hit-&gt;getShotId());&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;  // if not dead yet, see if i'm sitting on death&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I realize that the HUD alert is redundant.  I noticed that there was a delay in the alert so I added it in the above section, as well, so that it would display more quickly.  &lt;br /&gt;&lt;br /&gt;What we've established so far is the creation of a couple of values, deathCountdown and deathStart, which we will use for our countdown, and we set their defaults (e.g., deathCountdown = 0.0f).  We also added the the code for the actual countdown and time keeping.  Next, we initiate the countdown when we get shot by setting deathCountdown to 1.0f, and we display an alert for "Death imminent".  We also retain the identity of the player who initially shot us and started the countdown by setting the value of deathStart to represent the identity of that player so that we can use it later for blowing up when the countdown completes.  We skip the "if (hit)" section if there is already a countdown in progress so that we don't start a new countdown for each shot that hits us once a countdown has already started (i.e., we ignore all other shots that may hit us after the countdown begins).  When the countdown finishes, we blow up (and as a result lose a point, and the killer gets his or her point), and the countdown values, deathCountdown and deathStart, are then set back to 0.0f and 0, respectively.&lt;br /&gt;&lt;br /&gt;Notice that we use "return" to skip the "if (hit)" section.  We do that since using a line such as "stopShot = true" when deathCountdown &gt; 0.0f will get us kicked for wrong end shot detections.  Essentially, the server will kick us if we are ending other players' shots that hit us without our tank blowing up.  That technique of avoiding getting blown up was utilized by cheaters of yore, and it was known as end shot cheating.  I know that because I, myself, used to be one of the culprits long ago.  Anyway, it is better to ignore a shot altogether rather than try to end it without blowing up.  That's why god mode cheating works and end shot cheating no longer does.&lt;br /&gt;&lt;br /&gt;This next part is left over from when I was experimenting with a previous revision of this cheat.  The idea was to bypass blowing up until a countdown had finished.  It may not be necessary (I haven't tried it without it); but, this cheat works with it in place.  So, if it ain't broke, don't fix it :P  If anyone wants to experiment with it, let us know how it worked.  &lt;br /&gt;&lt;br /&gt;Search for "tank &amp;&amp; (tank-&gt;getTeam() == ObserverTeam" and you will find this section:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;static bool  gotBlowedUp(BaseLocalPlayer* tank,&lt;br /&gt;        BlowedUpReason reason,&lt;br /&gt;        PlayerId killer,&lt;br /&gt;        const ShotPath* hit, int phydrv)&lt;br /&gt;{&lt;br /&gt;  if (tank &amp;&amp; (tank-&gt;getTeam() == ObserverTeam || !tank-&gt;isAlive()))&lt;br /&gt;    return false;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Change "(tank &amp;&amp; (tank-&gt;getTeam() == ObserverTeam || !tank-&gt;isAlive()))" to this:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;((tank &amp;&amp; (tank-&gt;getTeam() == ObserverTeam || !tank-&gt;isAlive()) || deathCountdown &gt; 0.0f))&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Yeah, I know it's "fugly".  Anyway, the section should now read like this:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;static bool  gotBlowedUp(BaseLocalPlayer* tank,&lt;br /&gt;        BlowedUpReason reason,&lt;br /&gt;        PlayerId killer,&lt;br /&gt;        const ShotPath* hit, int phydrv)&lt;br /&gt;{&lt;br /&gt;  if ((tank &amp;&amp; (tank-&gt;getTeam() == ObserverTeam || !tank-&gt;isAlive()) || deathCountdown &gt; 0.0f))&lt;br /&gt;    return false;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Save the file, compile your new client, and you're finished.  Thank you to blogger, &lt;b&gt;person&lt;/b&gt;, for bringing this idea to us.&lt;br /&gt;&lt;br /&gt;As always...&lt;br /&gt;&lt;br /&gt;Have fun!&lt;br /&gt;&lt;br /&gt;&gt;:)&lt;br /&gt;&lt;br /&gt;**********&lt;br /&gt;&lt;br /&gt;Related posts:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bzfcheat.blogspot.com/2007/07/instant-self-destruct.html"&gt;Instant Self Destruct&lt;br /&gt;&lt;/a&gt;&lt;a href="http://bzfcheat.blogspot.com/2007/07/ultimate-pausing.html"&gt;Ultimate Pausing&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-1148732133693558526?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/1148732133693558526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=1148732133693558526' title='80 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/1148732133693558526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/1148732133693558526'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2008/01/delayed-death-after-getting-shot.html' title='Delayed Death after Getting Shot'/><author><name>CRW</name><uri>http://www.blogger.com/profile/16469342749811241765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>80</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-3761970168082465806</id><published>2008-01-03T15:13:00.000-08:00</published><updated>2008-01-03T15:59:15.958-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='god mode'/><category scheme='http://www.blogger.com/atom/ns#' term='superkillme'/><category scheme='http://www.blogger.com/atom/ns#' term='kill'/><category scheme='http://www.blogger.com/atom/ns#' term='killme'/><category scheme='http://www.blogger.com/atom/ns#' term='team kill'/><title type='text'>Using God Mode with Choose Who Kills You</title><content type='html'>By:  &lt;span style="font-weight:bold;"&gt;Lord Jesus&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;With &lt;a href="http://bzfcheat.blogspot.com/2007/12/choose-who-kills-you.html"&gt;Choose Who Kills You&lt;/a&gt; and &lt;a href="http://bzfcheat.blogspot.com/2008/01/super-kill-me-on-demand.html"&gt;Super "Kill Me" on Demand&lt;/a&gt;, you could not use god mode if you had either or both cheats enabled.  Here's a simple edit that will now allow you to have the best of both worlds.  You can drive around in god mode and only blow up when you initiate killMe (Choose Who Kills You) or SuperkillMe (Super "Kill Me" on Demand).  I was considering making this an additional update to Super "Kill Me" on Demand; however, I decided to make it a separate entry for the benefit of those who choose not to use god mode.&lt;br /&gt;&lt;br /&gt;First, let's revisit &lt;a href="http://bzfcheat.blogspot.com/2007/07/classic-god-mode.html"&gt;Classic God Mode&lt;/a&gt;.  In the God Mode cheat, we added this line in several locations within playing.cxx:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;      // skip this if i'm alive&lt;br /&gt;      if (myTank-&gt;isAlive()) return;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;So that it will not interfere with killMe and/or SuperkillMe, we change it to this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;      // skip this if i'm alive and we have not initiated getting killed&lt;br /&gt;      if (myTank-&gt;isAlive() &amp;&amp; killMe == 0 &amp;&amp; SuperkillMe == 0) return;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;If you do not use both dead-on-demand cheats, you can edit the above to match which cheat you are using.  Basically, we skip the check to see if we should be dead if we are alive AND killMe and SuperkillMe are zero (i.e., we haven't selected to be killed by someone).  If we have initiated a "Kill Me", then we continue with the checks and we are allowed to blow up.  &lt;br /&gt;&lt;br /&gt;When you've completed your edits, save your file, compile your client, and ...&lt;br /&gt; &lt;br /&gt;Have fun!&lt;br /&gt;&lt;br /&gt;**********&lt;br /&gt;&lt;br /&gt;Related posts:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bzfcheat.blogspot.com/2007/07/classic-god-mode.html"&gt;Classic God Mode&lt;/a&gt;&lt;br /&gt;&lt;a href="http://bzfcheat.blogspot.com/2007/12/choose-who-kills-you.html"&gt;Choose Who Kills You&lt;/a&gt;&lt;br /&gt;&lt;a href="http://bzfcheat.blogspot.com/2008/01/super-kill-me-on-demand.html"&gt;Super "Kill Me" on Demand&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-3761970168082465806?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/3761970168082465806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=3761970168082465806' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/3761970168082465806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/3761970168082465806'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2008/01/using-god-mode-with-choose-who-kills.html' title='Using God Mode with Choose Who Kills You'/><author><name>CRW</name><uri>http://www.blogger.com/profile/16469342749811241765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-5125954970038792147</id><published>2008-01-03T04:55:00.001-08:00</published><updated>2008-01-03T22:42:35.516-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pillbox'/><category scheme='http://www.blogger.com/atom/ns#' term='DUB'/><category scheme='http://www.blogger.com/atom/ns#' term='jump'/><title type='text'>Jump Fix for DUB Pillbox</title><content type='html'>By:  &lt;span style="font-weight:bold;"&gt;Lord Jesus&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Some of you may have noticed that you can no longer cheat on DUB Pillbox by jumping on the no-jumping server (see &lt;a href="http://bzfcheat.blogspot.com/2007/07/fly-without-wings-improved-jumping.html"&gt;Flying Without Wings&lt;/a&gt; for information about jumping on no-jump servers).  In addition to updating to a newer version server which prevents sending flags to teammates (or someone on the other team, for that matter) or observers, jump velocity was set to zero.  The fix for that is to use a custom value if the server value is set to zero or less.  Here, we use 19.  You can experiment to find a value that most suits your liking.  &lt;br /&gt;&lt;br /&gt;To do that, let's go to LocalPlayer.cxx.  Search for "newVelocity[2] = BZDB.eval(StateDatabase::BZDB_JUMPVELOCITY)", and you will find this section:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  // add jump velocity (actually, set the vertical component since you&lt;br /&gt;  // can only jump if resting on something)&lt;br /&gt;  const float* oldVelocity = getVelocity();&lt;br /&gt;  float newVelocity[3];&lt;br /&gt;  newVelocity[0] = oldVelocity[0];&lt;br /&gt;  newVelocity[1] = oldVelocity[1];&lt;br /&gt;  if (flag == Flags::Wings) {&lt;br /&gt;    newVelocity[2] = BZDB.eval(StateDatabase::BZDB_WINGSJUMPVELOCITY);&lt;br /&gt;  } else if (flag == Flags::Bouncy) {&lt;br /&gt;    const float factor = 0.25f + ((float)bzfrand() * 0.75f);&lt;br /&gt;    newVelocity[2] = factor * BZDB.eval(StateDatabase::BZDB_JUMPVELOCITY);&lt;br /&gt;  }  else {&lt;br /&gt;    newVelocity[2] = BZDB.eval(StateDatabase::BZDB_JUMPVELOCITY);&lt;br /&gt;  }&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;In particular, look at these lines:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  }  else {&lt;br /&gt;     newVelocity[2] = BZDB.eval(StateDatabase::BZDB_JUMPVELOCITY);&lt;br /&gt;  }&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Just below "}  else {", add this line:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;if(BZDB.eval(StateDatabase::BZDB_JUMPVELOCITY) &lt;=0 ) BZDB.setFloat(StateDatabase::BZDB_JUMPVELOCITY, 19);&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;The edited section should now read like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  }  else {&lt;br /&gt;     if(BZDB.eval(StateDatabase::BZDB_JUMPVELOCITY) &lt;=0 ) BZDB.setFloat(StateDatabase::BZDB_JUMPVELOCITY, 19);&lt;br /&gt;     newVelocity[2] = BZDB.eval(StateDatabase::BZDB_JUMPVELOCITY);&lt;br /&gt;  }&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Save the file, compile your client, and you're ready once more to raise hell on DUB Pillbox.  Yes, now you can start dropping flags on towers again.  For added laughs, be sure to check out &lt;a href="http://bzfcheat.blogspot.com/2007/07/fly-without-wings-improved-jumping.html"&gt;Flying Without Wings&lt;/a&gt; and &lt;a href="http://bzfcheat.blogspot.com/2007/12/guided-bullots.html"&gt;Guided Bullets&lt;/a&gt; ;)  Also be sure to check out &lt;a href="http://bzfcheat.blogspot.com/2007/09/teleport-behind-somebody.html"&gt;Teleport Behind Somebody&lt;/a&gt; (handy when someone on the other team has your flag).&lt;br /&gt;&lt;br /&gt;I wouldn't be surprised if DUB Pillbox and/or other servers tweak various other server values in attempts to thwart cheating.  We'll update here as necessary, so stay tuned ;)&lt;br /&gt;&lt;br /&gt;Again...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.madville.com/journals.php?id=3202"&gt;dj28&lt;/a&gt;:  "Have fun pissing people off and ruining their fun."&lt;br /&gt;&lt;br /&gt;&gt;:)&lt;br /&gt;&lt;br /&gt;**********&lt;br /&gt;&lt;br /&gt;Related posts:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bzfcheat.blogspot.com/2007/08/wings-gravity-fix-for-bloodbath.html"&gt;Wings Gravity Fix for BloodBath&lt;/a&gt;&lt;br /&gt;&lt;a href="http://bzfcheat.blogspot.com/2007/07/fly-without-wings-improved-jumping.html"&gt;Flying Without Wings&lt;/a&gt;&lt;br /&gt;&lt;a href="http://bzfcheat.blogspot.com/2007/12/guided-bullots.html"&gt;Guided Bullets&lt;/a&gt;&lt;br /&gt;&lt;a href="http://bzfcheat.blogspot.com/2007/09/teleport-behind-somebody.html"&gt;Teleport Behind Somebody&lt;/a&gt;&lt;br /&gt;&lt;a href="http://bzfcheat.blogspot.com/2007/12/teleport-in-front-of-your-opponent.html"&gt;Teleport in FRONT of your opponent.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-5125954970038792147?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/5125954970038792147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=5125954970038792147' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/5125954970038792147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/5125954970038792147'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2008/01/jump-fix-for-dub-pillbox.html' title='Jump Fix for DUB Pillbox'/><author><name>CRW</name><uri>http://www.blogger.com/profile/16469342749811241765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-5404982290382350697</id><published>2008-01-01T13:37:00.000-08:00</published><updated>2008-01-03T17:15:41.172-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kill me'/><category scheme='http://www.blogger.com/atom/ns#' term='kill'/><category scheme='http://www.blogger.com/atom/ns#' term='killme'/><category scheme='http://www.blogger.com/atom/ns#' term='team kill'/><title type='text'>Super "Kill Me" on Demand</title><content type='html'>By:  &lt;span style="font-weight: bold;"&gt;Lord Jesus&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Got an annoying teammate that needs to be kicked (if the server kicks for team kills)?  Perhaps that annoying teammate simply needs calibration with a point reduction...  Or, how would you like to be able to hook up your buddies with some mad points?&lt;br /&gt;&lt;br /&gt;Here's a modification to &lt;a href="http://bzfcheat.blogspot.com/2007/12/choose-who-kills-you.html"&gt;Choose Who Kills You&lt;/a&gt; brought to you by a collaboration between blogger,&lt;span style="font-weight: bold;"&gt;Someone&lt;/span&gt;, and BZFlag Cheat's newest team member, &lt;span style="font-weight: bold;"&gt;NightMare&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;With "Choose Who Kills You", you enter in your command to be killed by another player on demand (e.g., "/k").  The getting killed ends after you blow up and the point is transferred.  Let's say, though, that you would like to do it over and over again without having to enter the command manually each and every time.  One way might be to set up a macro such as ctrl+k to enter "." + /k + [Enter] to facilitate rapid keystroke entries.   Another way might be to set up a key command and select victims similar to the way in which one uses "k" to silence or "unsilence" other players.  There are a variety of ways which are possible.  After all, there &lt;span style="font-style: italic;"&gt;are&lt;/span&gt; usually more than one way to skin a cat, as the old saying goes.&lt;br /&gt;&lt;br /&gt;The technique that we will use here is to set up a command for it.  A separate command is used to terminate the automatic suicide, as it were.  Additionally, this particular method works separately from killMe, so you can use either one without conflict.  The example that we use here will show lines of code for both.  The single killMe is optional, of course, but highly recommended :)&lt;br /&gt;&lt;br /&gt;Before we begin, let's review some limitations.  This method described here (as well as single killMe) will &lt;span style="font-weight: bold;"&gt;NOT&lt;/span&gt; work if you:&lt;br /&gt;&lt;ul&gt;1. have god mode enabled.  This is highly important.  If you can toggle god mode, ensure that it is toggled off.  Otherwise, you will need to build without the god mode cheat or nothing will happen when you try to use the Super killMe (or single killMe, for that matter).  &lt;span style="font-weight:bold;"&gt;UPDATE&lt;/span&gt;:  See &lt;a href="http://bzfcheat.blogspot.com/2008/01/using-god-mode-with-choose-who-kills.html"&gt;Using God Mode with Choose Who Kills You&lt;/a&gt; if you want to use (or would like to continue to use) god mode.&lt;br /&gt;&lt;br /&gt;2. are an observer.  Note, though, that you can choose to be killed by an observer.  You just can't be killed while YOU are an observer.&lt;br /&gt;&lt;br /&gt;3.  have not yet spawned (e.g., when you first join a server).&lt;br /&gt;&lt;br /&gt;4.  are dead.  For the automatic Super killMe, I strongly recommend that you utilize &lt;a href="http://bzfcheat.blogspot.com/2007/07/respawn-instantly.html"&gt;Respawn Instantly&lt;/a&gt;.&lt;/ul&gt;&lt;br /&gt;Additionally, I have noticed that commonly at least one player on a server is not affected by either killMe or Super killMe.  So, if you go to try it out and it doesn't work on the first victim, try some others just to be sure.  Also, if a victim leaves the server during the automatic Super killMe (e.g., getting kicked for team killing, just simply leaving, and so on), then the killed message will reflect that you have been killed by the server.  This occurs when you are killed by an unknown player (a player who has signed off is a player that no longer exists).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;u&gt;playing.cxx&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Let's begin now by going back to playing.cxx.  Do you remember where we added "int killMe"?  Let's add another one so that the section looks like this (from the beginning of the file):&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;/* bzflag&lt;br /&gt; * Copyright (c) 1993 - 2006 Tim Riker&lt;br /&gt; *&lt;br /&gt; * This package is free software;  you can redistribute it and/or&lt;br /&gt; * modify it under the terms of the license found in the file&lt;br /&gt; * named COPYING that should have accompanied this file.&lt;br /&gt; *&lt;br /&gt; * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR&lt;br /&gt; * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED&lt;br /&gt; * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;br /&gt; */&lt;br /&gt;&lt;br /&gt;// interface header&lt;br /&gt;#include "playing.h"&lt;br /&gt;&lt;br /&gt;// system includes&lt;br /&gt;#ifdef _WIN32&lt;br /&gt;#include &lt;shlobj.h&gt;&lt;br /&gt;#include &lt;sys/types.h&gt;&lt;br /&gt;#include &lt;sys/stat.h&gt;&lt;br /&gt;#include &lt;direct.h&gt;&lt;br /&gt;#else&lt;br /&gt;#include &lt;pwd.h&gt;&lt;br /&gt;#include &lt;sys/types.h&gt;&lt;br /&gt;#include &lt;sys/stat.h&gt;&lt;br /&gt;#include &lt;dirent.h&gt;&lt;br /&gt;#include &lt;utime.h&gt;&lt;br /&gt;#endif&lt;br /&gt;#include &lt;cmath&gt;&lt;br /&gt;int killMe;&lt;br /&gt;int SuperkillMe;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Next, search for "used later", and you will find this section:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  // used later&lt;br /&gt;  float waterLevel = World::getWorld()-&gt;getWaterLevel();&lt;br /&gt;&lt;br /&gt;  if (hit) {&lt;br /&gt;    // i got shot!  terminate the shot that hit me and blow up.&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Look at the second line:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  float waterLevel = World::getWorld()-&gt;getWaterLevel();&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Below that, let's add our lines of code:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  if (killMe)&lt;br /&gt;  {&lt;br /&gt;  gotBlowedUp(myTank,GotShot,killMe);&lt;br /&gt;  killMe = 0;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  if (SuperkillMe)&lt;br /&gt;  {&lt;br /&gt;  gotBlowedUp(myTank,GotShot,SuperkillMe);&lt;br /&gt;  }&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Look at the line below the addition above:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;if (message.length() &gt; 0) {&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Add "else" at teh beginning of the line so that it now reads like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;else if (message.length() &gt; 0) {&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;The edited section should now look like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  // used later&lt;br /&gt;  float waterLevel = World::getWorld()-&gt;getWaterLevel();&lt;br /&gt;&lt;br /&gt;  if (killMe)&lt;br /&gt;  {&lt;br /&gt;  gotBlowedUp(myTank,GotShot,killMe);&lt;br /&gt;  killMe = 0;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  if (SuperkillMe)&lt;br /&gt;  {&lt;br /&gt;  gotBlowedUp(myTank,GotShot,SuperkillMe);&lt;br /&gt;  }&lt;br /&gt; else if (message.length() &gt; 0) {&lt;br /&gt;  &lt;br /&gt;  if (hit) {&lt;br /&gt;    // i got shot!  terminate the shot that hit me and blow up.&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Notice that in the killMe section you see "killMe=0" but SuperkillMe does not have a corresponding line.  The line resets killMe so that the process of getting blown up doesn't keep going and going.  This allows you to have single use killMe.  Since we want the automatic killMe (i.e., SuperkillMe) to keep going, there is no line resetting that value back to 0.  &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;UPDATE&lt;/span&gt;:  As mentioned previously, this cheat would continue the SuperkillMe even after the player signs off or gets kicked.  Thus, the killer is then unknown and the killed message is "Killed by the server", and you would have to use your command to end it (such as /ks) to stop the SuperkillMe.  Here's a simple fix to end the SuperkillMe automatically when the player no longer on the server.&lt;br /&gt;&lt;br /&gt;Let's continue with playing.cxx and search for "Killed by the server".  You will will find this section:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;    } else {&lt;br /&gt;      // 1-4 are messages sent when the player dies because of someone else&lt;br /&gt;      if (reason &gt;= GotShot &amp;&amp; reason &lt;= GenocideEffect) {&lt;br /&gt;        Player *killerPlayer = lookupPlayer(killer);&lt;br /&gt;        if (!killerPlayer) {&lt;br /&gt;          blowedUpNotice = "Killed by the server";&lt;br /&gt;        } else {&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Notice this line: blowedUpNotice = "Killed by the server";&lt;br /&gt;&lt;br /&gt;After that line, add this line:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;          SuperkillMe = 0;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;The section should now look like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;    } else {&lt;br /&gt;      // 1-4 are messages sent when the player dies because of someone else&lt;br /&gt;      if (reason &gt;= GotShot &amp;&amp; reason &lt;= GenocideEffect) {&lt;br /&gt;        Player *killerPlayer = lookupPlayer(killer);&lt;br /&gt;        if (!killerPlayer) {&lt;br /&gt;          blowedUpNotice = "Killed by the server";&lt;br /&gt;          SuperkillMe = 0;&lt;br /&gt;        } else {&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;At this point, we are finished with editing playing.cxx.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;u&gt;ComposeDefaultKey.cxx&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Next, let's go to setting up the actual commands.  For this we go to ComposeDefaultKey.cxx.  Do you recall where we put "extern int killMe;"?  Search for "MAX_MESSAGE_HISTORY (20)", and you will come to this section:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;#define MAX_MESSAGE_HISTORY (20)&lt;br /&gt;&lt;br /&gt;MessageQueue messageHistory;&lt;br /&gt;unsigned int messageHistoryIndex = 0;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;static bool isWordCompletion(const BzfKeyEvent&amp; key)&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Notice the line "unsigned int    messageHistoryIndex = 0;".  Below that, we will add our lines of code:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;extern int killMe;&lt;br /&gt;extern int SuperkillMe;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;The edited section should look like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;#define MAX_MESSAGE_HISTORY (20)&lt;br /&gt;&lt;br /&gt;MessageQueue messageHistory;&lt;br /&gt;unsigned int messageHistoryIndex = 0;&lt;br /&gt;extern int killMe;&lt;br /&gt;extern int SuperkillMe;&lt;br /&gt;&lt;br /&gt;static bool isWordCompletion(const BzfKeyEvent&amp; key)&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Next, let's set up our commands.  Here, we use "/k" for a single killMe, and we use "/kk" for SuperkillMe.  Keep in mind that you are free to use any command that you desire.  For example, if you prefer /killme over /k, then edit that line accordingly.  Search for "if (sendIt) {", and you will see this section:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  if (sendIt) {&lt;br /&gt;    std::string message = hud-&gt;getComposeString();&lt;br /&gt;    if (message.length() &gt; 0) {&lt;br /&gt;      const char* cmd = message.c_str();&lt;br /&gt;      if (LocalCommand::execute(cmd)) {&lt;br /&gt;        ;&lt;br /&gt;      } else if (serverLink) {&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Notice the line "std::string message = hud-&gt;getComposeString();".  Below that, we will add our lines of code:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;    if(message=="/kk") {&lt;br /&gt;       const Player *someOther = LocalPlayer::getMyTank()-&gt;getRecipient();&lt;br /&gt;       if (someOther)&lt;br /&gt;       {&lt;br /&gt; SuperkillMe = someOther-&gt;getId();&lt;br /&gt;       }&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;    else if(message=="/ks") {&lt;br /&gt; SuperkillMe = 0;&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;    else if(message=="/k") {&lt;br /&gt;       const Player *Other = LocalPlayer::getMyTank()-&gt;getRecipient();&lt;br /&gt;       if(Other)&lt;br /&gt;       {&lt;br /&gt; killMe = Other-&gt;getId();&lt;br /&gt;       }&lt;br /&gt;     }&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;The next line after our addition is "if (message.length() &gt; 0) {".  Let's add "else" in front of that so that the line now reads like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;    else if (message.length() &gt; 0) {&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;The section after our change should now read like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  if (sendIt) {&lt;br /&gt;    std::string message = hud-&gt;getComposeString();&lt;br /&gt;&lt;br /&gt;    if(message=="/kk") {&lt;br /&gt;       const Player *someOther = LocalPlayer::getMyTank()-&gt;getRecipient();&lt;br /&gt;       if (someOther)&lt;br /&gt;       {&lt;br /&gt; SuperkillMe = someOther-&gt;getId();&lt;br /&gt;       }&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;    else if(message=="/ks") {&lt;br /&gt; SuperkillMe = 0;&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;    else if(message=="/k") {&lt;br /&gt;       const Player *Other = LocalPlayer::getMyTank()-&gt;getRecipient();&lt;br /&gt;       if(Other)&lt;br /&gt;       {&lt;br /&gt; killMe = Other-&gt;getId();&lt;br /&gt;       }&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;    else if (message.length() &gt; 0) {&lt;br /&gt;      const char* cmd = message.c_str();&lt;br /&gt;      if (LocalCommand::execute(cmd)) {&lt;br /&gt;        ;&lt;br /&gt;      } else if (serverLink) {&lt;br /&gt; char messageBuffer[MessageLen];&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;In the example above, we used "/ks" as the command to terminate the automatic getting killed on demand, or SuperkillMe.  When we enter the command "/ks", SuperkillMe is set to 0, and automatic getting killed is over until we initiate it again.&lt;br /&gt;&lt;br /&gt;After you make your changes, save your files, compile your new client, and you're done.  Watching dead or paused players rack up points or team kills can be quite amusing... as well as observers going on killing sprees :P&lt;br /&gt;&lt;br /&gt;In the immortal words of &lt;a href="http://www.madville.com/journals.php?id=3202"&gt;dj28&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;"Have fun pissing people off and ruining their fun."&lt;br /&gt;&lt;br /&gt;&gt;:)&lt;br /&gt;&lt;br /&gt;**********&lt;br /&gt;&lt;br /&gt;Related posts:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bzfcheat.blogspot.com/2007/12/choose-who-kills-you.html"&gt;Choose Who Kills You&lt;/a&gt;&lt;br /&gt;&lt;a href="http://bzfcheat.blogspot.com/2008/01/using-god-mode-with-choose-who-kills.html"&gt;Using God Mode with Choose Who Kills You&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-5404982290382350697?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/5404982290382350697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=5404982290382350697' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/5404982290382350697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/5404982290382350697'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2008/01/super-kill-me-on-demand.html' title='Super &quot;Kill Me&quot; on Demand'/><author><name>CRW</name><uri>http://www.blogger.com/profile/16469342749811241765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-8321172144033562745</id><published>2007-12-31T00:24:00.001-08:00</published><updated>2007-12-31T00:58:01.239-08:00</updated><title type='text'>Guided Bullets</title><content type='html'>Ok this code is pretty nice, just lock onto your opponent and it shoots in the direction they're going or right at them pretty accurately. I didn't create this code, but I'm not sure who gave it to me but here it is:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You might have trouble if you have guided lasers.&lt;br /&gt;&lt;br /&gt;In src/bzflag/playing.cxx find:&lt;br /&gt;&lt;br /&gt;// see if it's inside lock-on angle (if we're trying to lock-on)&lt;br /&gt;if (a &lt;&gt;getFlag() == Flags::GuidedMissile)  // am i locking on?&lt;br /&gt;tankHasShotType(myTank, Flags::GuidedMissile)) &amp;amp;&amp;amp;&lt;br /&gt;player[i]-&gt;getFlag() != Flags::Stealth &amp;amp;&amp;amp; // can't lock on stealth&lt;br /&gt;!player[i]-&gt;isPaused() &amp;amp;&amp;amp; // can't lock on paused&lt;br /&gt;!player[i]-&gt;isNotResponding() &amp;amp;&amp;amp; // can't lock on not responding&lt;br /&gt;d &lt; besttarget =" player[i];" bestdistance =" d;" lockedon =" true;"&gt;getFlag() == Flags::GuidedMissile)  // am i locking on?&lt;br /&gt;&lt;br /&gt;To:&lt;br /&gt;&lt;br /&gt;(1  // am i locking on?&lt;br /&gt;&lt;br /&gt;In src/bzflag/LocalPlayer.cxx find:&lt;br /&gt;&lt;br /&gt;// Set _shotsKeepVerticalVelocity on the server if you want shots&lt;br /&gt;// to have the same vertical velocity as the tank when fired.&lt;br /&gt;// keeping shots moving horizontally makes the game more playable.&lt;br /&gt;firingInfo.shot.vel[2] = 0.0f;&lt;br /&gt;&lt;br /&gt;Add this after it:&lt;br /&gt;&lt;br /&gt;if (getTarget()) {&lt;br /&gt;const Player * targ = getTarget();&lt;br /&gt;double myx = LocalPlayer::getMyTank()-&gt;getPosition()[0];&lt;br /&gt;double myy = LocalPlayer::getMyTank()-&gt;getPosition()[1];&lt;br /&gt;double myz = LocalPlayer::getMyTank()-&gt;getPosition()[2] +&lt;br /&gt;LocalPlayer::getMyTank()-&gt;getMuzzleHeight();&lt;br /&gt;double hisx = targ-&gt;getPosition()[0];&lt;br /&gt;double hisy = targ-&gt;getPosition()[1];&lt;br /&gt;double hisz = targ-&gt;getPosition()[2] + targ-&gt;getMuzzleHeight();&lt;br /&gt;double hisvx = targ-&gt;getVelocity()[0];&lt;br /&gt;double hisvy = targ-&gt;getVelocity()[1];&lt;br /&gt;double hisvz = targ-&gt;getVelocity()[2];&lt;br /&gt;double deltax = hisx - myx;&lt;br /&gt;double deltay = hisy - myy;&lt;br /&gt;double distance = hypotf(deltax,deltay)- BZDBCache::tankRadius;&lt;br /&gt;// - BZDB.eval(StateDatabase::BZDB_MUZZLEFRONT);&lt;br /&gt;if (distance &lt;= 0) distance = 0; double shotspeed = BZDB.eval(StateDatabase::BZDB_SHOTSPEED)*( LocalPlayer::getMyTank()-&gt;getFlag() == Flags::Laser ?&lt;br /&gt;BZDB.eval(StateDatabase::BZDB_LASERADVEL) :&lt;br /&gt;LocalPlayer::getMyTank()-&gt;getFlag() == Flags::RapidFire ?&lt;br /&gt;BZDB.eval(StateDatabase::BZDB_RFIREADVEL) :&lt;br /&gt;LocalPlayer::getMyTank()-&gt;getFlag() == Flags::MachineGun ?&lt;br /&gt;BZDB.eval(StateDatabase::BZDB_MGUNADVEL) : 1);&lt;br /&gt;double errdistance = 1.0;&lt;br /&gt;float tx, ty, tz;&lt;br /&gt;for (int tries=0 ; errdistance &gt; 0.05 &amp;amp;&amp;amp; tries &lt; t =" (float)distance" omega="fabs(targ-"&gt;getAngularVelocity());&lt;br /&gt;double sx,sy;&lt;br /&gt;if ((targ-&gt;getStatus() &amp;amp; PlayerState::Falling)  fabs(omega)&lt;br /&gt;&lt; sx="t*hisvx;" sy="t*hisvy;" hisspeed =" hypotf(hisvx," alfa =" omega" r =" hisspeed" dx =" r" dy2 =" r" beta =" atan2(dy2,"&gt;getAngularVelocity() &gt;&lt;br /&gt;0 ? 1 : -1);&lt;br /&gt;double gamma = atan2(hisvy, hisvx);&lt;br /&gt;double rho = gamma+beta;&lt;br /&gt;sx = hisspeed * t * cos(rho);&lt;br /&gt;sy = hisspeed * t * sin(rho);&lt;br /&gt;}&lt;br /&gt;tx=(float)hisx+(float)sx;&lt;br /&gt;ty=(float)hisy+(float)sy;&lt;br /&gt;tz=(float)hisz+(float)hisvz*t;&lt;br /&gt;if (targ-&gt;getStatus() &amp;amp; PlayerState::Falling)&lt;br /&gt;tz += 0.5f * BZDBCache::gravity * t * t;&lt;br /&gt;if (tz &lt; 0) tz = 0;&lt;br /&gt;double distance2 = hypotf(tx - myx, ty - myy);&lt;br /&gt;errdistance = fabs(distance2-distance) / (distance + ZERO_TOLERANCE);&lt;br /&gt;distance = distance2;&lt;br /&gt;}&lt;br /&gt;float projpos[3];&lt;br /&gt;projpos[0] = tx; projpos[1] = ty; projpos[2] = tz;&lt;br /&gt;float heading = atan2f(projpos[1] - myy, projpos[0] - myx);&lt;br /&gt;firingInfo.shot.vel[0] = cosf(heading) *&lt;br /&gt;BZDB.eval(StateDatabase::BZDB_SHOTSPEED);&lt;br /&gt;firingInfo.shot.vel[1] = sinf(heading) *&lt;br /&gt;BZDB.eval(StateDatabase::BZDB_SHOTSPEED);&lt;br /&gt;firingInfo.shot.vel[2] = sinf(atan2f(projpos[2]-myz,&lt;br /&gt;hypotf(projpos[1]-myy,&lt;br /&gt;projpos[0]-myx)))*BZDB.eval(StateDatabase::BZDB_SHOTSPEED);&lt;br /&gt;firingInfo.shot.pos[0] = myx;&lt;br /&gt;firingInfo.shot.pos[1] = myy;&lt;br /&gt;firingInfo.shot.pos[2] = myz;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;There you go.&lt;br /&gt;&lt;br /&gt;-NightMare&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-8321172144033562745?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/8321172144033562745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=8321172144033562745' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/8321172144033562745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/8321172144033562745'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/12/guided-bullots.html' title='Guided Bullets'/><author><name>NightMare</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-7059089097216414961</id><published>2007-12-31T00:16:00.000-08:00</published><updated>2007-12-31T00:22:30.167-08:00</updated><title type='text'>Choose your tank size</title><content type='html'>Ok this is posted in a comment by "person" but "someone" is the one who came up with this cheat I just think it should be posted so more people can see it and don't have to go looking through comments to find it so here it is.&lt;br /&gt;&lt;br /&gt;At top of src/bzflag/CommandsImplementation.cxx:&lt;br /&gt;&lt;br /&gt;extern float sizeCheat;&lt;br /&gt;class SizeCommand : LocalCommand {&lt;br /&gt;public:&lt;br /&gt;SizeCommand();&lt;br /&gt;bool operator() (const char *commandLine);&lt;br /&gt;};&lt;br /&gt;static SizeCommand sizeCommand;&lt;br /&gt;SizeCommand::SizeCommand() : LocalCommand("/size") {}&lt;br /&gt;bool SizeCommand::operator() (const char *commandLine)&lt;br /&gt;{&lt;br /&gt;sizeCheat = atof(commandLine+6);&lt;br /&gt;return true;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;At top of src/bzflag/Player.cxx:&lt;br /&gt;&lt;br /&gt;#include "LocalPlayer.h"&lt;br /&gt;float sizeCheat = 1.0f;&lt;br /&gt;Find:&lt;br /&gt;else if (effectFlag == Flags::Narrow) {&lt;br /&gt;dimensionsTarget[1] = 0.001f;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Add this after:&lt;br /&gt;&lt;br /&gt;if (id == LocalPlayer::getMyTank()-&gt;getId())&lt;br /&gt;{&lt;br /&gt;dimensionsTarget[0] *= sizeCheat;&lt;br /&gt;dimensionsTarget[1] *= sizeCheat;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;And that should be it. Now just type /size .1 to /size 1. You must either be killed or pick up or drop a flag for the size to change. Sizes range from 0.0 (Can't be shot by a bullot) to 1.0 (Normal tank size). Sometimes just a /size .7 is nice to give yourself an "edge" =].&lt;br /&gt;&lt;br /&gt;-NightMare&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-7059089097216414961?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/7059089097216414961/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=7059089097216414961' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/7059089097216414961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/7059089097216414961'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/12/choose-your-tank-size.html' title='Choose your tank size'/><author><name>NightMare</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-697782506656437358</id><published>2007-12-31T00:09:00.001-08:00</published><updated>2007-12-31T00:14:04.016-08:00</updated><title type='text'>Teleport in FRONT of your opponent.</title><content type='html'>This is just like the /behind code down below where you teleport behind them, only with this code you will teleport in front of them. Kind of a dumb code but fun to mess with people.&lt;br /&gt;Open src/bzflag/composeDefaultKey.cxx:&lt;br /&gt;Find your /behind cheat that you have. It should Look like this:&lt;br /&gt;&lt;br /&gt;else if(message=="/behind") {&lt;br /&gt;const Player *Other = LocalPlayer::getMyTank()-&gt;getRecipient();&lt;br /&gt;if(Other)&lt;br /&gt;{&lt;br /&gt;LocalPlayer::getMyTank()-&gt;setStatus(LocalPlayer::getMyTank()-&gt;getStatus()  int(PlayerState::Teleporting));&lt;br /&gt;const float* pos = Other-&gt;getPosition();&lt;br /&gt;const float* dir = Other-&gt;getForward();&lt;br /&gt;const float* vel = Other-&gt;getVelocity();&lt;br /&gt;float newpos[3];&lt;br /&gt;float newvel[3];&lt;br /&gt;newpos[0] = pos[0] - 10 * dir[0];&lt;br /&gt;newpos[1] = pos[1] - 10 * dir[1];&lt;br /&gt;newpos[2] = pos[2] + 0.01;&lt;br /&gt;newvel[0] = vel[0];&lt;br /&gt;newvel[1] = vel[1];&lt;br /&gt;newvel[2] = vel[2];&lt;br /&gt;LocalPlayer::getMyTank()-&gt;move(newpos, Other-&gt;getAngle());&lt;br /&gt;LocalPlayer::getMyTank()-&gt;setStatus(LocalPlayer::getMyTank()-&gt;getStatus() &amp;amp; ~int(PlayerState::Teleporting));&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Then directly below that add this:&lt;br /&gt;&lt;br /&gt;else if(message=="/front") {&lt;br /&gt;const Player *Other = LocalPlayer::getMyTank()-&gt;getRecipient();&lt;br /&gt;if(Other)&lt;br /&gt;{&lt;br /&gt;LocalPlayer::getMyTank()-&gt;setStatus(LocalPlayer::getMyTank()-&gt;getStatus()  int(PlayerState::Teleporting));&lt;br /&gt;const float* pos = Other-&gt;getPosition();&lt;br /&gt;const float* dir = Other-&gt;getForward();&lt;br /&gt;const float* vel = Other-&gt;getVelocity();&lt;br /&gt;float newpos[3];&lt;br /&gt;float newvel[3];&lt;br /&gt;newpos[0] = pos[0] + 10 * dir[0];&lt;br /&gt;newpos[1] = pos[1] + 10 * dir[1];&lt;br /&gt;newpos[2] = pos[2] + 0.01;&lt;br /&gt;newvel[0] = vel[0];&lt;br /&gt;newvel[1] = vel[1];&lt;br /&gt;newvel[2] = vel[2];&lt;br /&gt;LocalPlayer::getMyTank()-&gt;move(newpos, TargetingUtils::getTargetAzimuth(newpos , pos ));&lt;br /&gt;}&lt;br /&gt;LocalPlayer::getMyTank()-&gt;setStatus(LocalPlayer::getMyTank()-&gt;getStatus() &amp;amp; ~int(PlayerState::Teleporting));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;And that is all. Like I said, it is stupid but fun to mess with people when you teleport behind then in front back in forth. Credit for this goes to Phaz =].&lt;br /&gt;&lt;br /&gt;-NightMare&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-697782506656437358?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/697782506656437358/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=697782506656437358' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/697782506656437358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/697782506656437358'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/12/teleport-in-front-of-your-opponent.html' title='Teleport in FRONT of your opponent.'/><author><name>NightMare</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-7901777392630733424</id><published>2007-12-31T00:02:00.000-08:00</published><updated>2008-01-04T22:52:54.401-08:00</updated><title type='text'>Shot prediction.</title><content type='html'>This will draw a line on your radar to predict where your shots will go. Its almost exactly perfect. It doesn't work on all servers for some reason, but it should work on most. It is very helpful for 3 shot no jump servers. This code was found through a chat between mrmolez and someone else. So here it is for everyone else to see lol.&lt;br /&gt;&lt;br /&gt;Open RadarRenderer.cxx&lt;br /&gt;Find:&lt;br /&gt;&lt;br /&gt;//draw world weapon shots&lt;br /&gt;&lt;br /&gt;Add this right before it:&lt;br /&gt;&lt;br /&gt;FiringInfo myInfo(*myTank, 0);&lt;br /&gt;if (myInfo.flagType != Flags::ShockWave) {&lt;br /&gt;if (!BZDB.isTrue(StateDatabase::BZDB_SHOTSKEEPVERTICALV))&lt;br /&gt;myInfo.shot.vel[2] = 0.0f;&lt;br /&gt;myInfo.flagType = Flags::Laser;&lt;br /&gt;myInfo.lifetime /= 100;&lt;br /&gt;const float cs = colorScale(myInfo.shot.pos[2], muzzleHeight);&lt;br /&gt;glColor3f(1.0f * cs, 1.0f * cs, 1.0f * cs);&lt;br /&gt;LocalShotPath myPath(myInfo);&lt;br /&gt;myPath.radarRender();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Let me know how this works for you guys. If you don't like it just take it out lol.&lt;br /&gt;&lt;br /&gt;-NightMare&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-7901777392630733424?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/7901777392630733424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=7901777392630733424' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/7901777392630733424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/7901777392630733424'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/12/shot-prediction.html' title='Shot prediction.'/><author><name>NightMare</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-1865204722755282777</id><published>2007-12-30T23:50:00.000-08:00</published><updated>2007-12-30T23:58:48.632-08:00</updated><title type='text'>Choose Who Kills You</title><content type='html'>Ok this is a very very powerful cheat. With this cheat you send a PM to the player saying "/kill" and you will instantly be killed by that person. It is very useful and funny when you do it to teammates and they get booted for TKing or their score drops immedietly.&lt;br /&gt;In src/bzflag/playing.cxx:&lt;br /&gt;Add to top:&lt;br /&gt;&lt;br /&gt;int killMe;&lt;br /&gt;&lt;br /&gt;Find: &lt;br /&gt;&lt;br /&gt;// used later &lt;br /&gt; float waterLevel = World::getWorld()-&gt;getWaterLevel();&lt;br /&gt;&lt;br /&gt;Add this after:&lt;br /&gt;&lt;br /&gt;if (killMe)&lt;br /&gt;{&lt;br /&gt;gotBlowedUp(myTank,GotShot,killMe);&lt;br /&gt;killMe = 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;In src/bzflag/composeDefaultKey.cxx:&lt;br /&gt;Add to top:&lt;br /&gt;&lt;br /&gt;extern int killMe;&lt;br /&gt;&lt;br /&gt;Find:    &lt;br /&gt;&lt;br /&gt;else if (message.length() &gt; 0) {&lt;br /&gt;&lt;br /&gt;Add this before that:    &lt;br /&gt;&lt;br /&gt;else if(message=="/kill") {      &lt;br /&gt;const Player *Other = LocalPlayer::getMyTank()-&gt;getRecipient();      &lt;br /&gt;if(Other)      &lt;br /&gt;{ killMe = Other-&gt;getId();      &lt;br /&gt;}    &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;And that is it. Now type /kill in a messege to someone and you will be killed by them. Make sure you do NOT have god mode on when you try to do this otherwise it won't work. Also there is usually 1 random player everytime you log into a server that the code doesn't work against. But other than that one player it should work against everyone else. Let me know if this code works for you guys.&lt;br /&gt;&lt;br /&gt;-NightMare&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-1865204722755282777?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/1865204722755282777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=1865204722755282777' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/1865204722755282777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/1865204722755282777'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/12/choose-who-kills-you.html' title='Choose Who Kills You'/><author><name>NightMare</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-7927902443944276459</id><published>2007-09-24T21:10:00.000-07:00</published><updated>2007-09-24T21:19:51.309-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='clientquery spoofing'/><title type='text'>Clientquery spoofing</title><content type='html'>Here's something somebody showed me a long time ago, but I haven't put it up until now. Do people keep recognizing your client as a cheat client because of the "clientquery" command? This will make your client appear to be the same as others, or you can make it say whatever you want.&lt;br /&gt;&lt;br /&gt;In buildDate.cxx find these lines of code:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;#ifdef HAVE_SDL&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    appVersionStream &lt;&lt; "-SDL";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;#endif&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    appVersion = appVersionStream.str();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;and put this line of code right after it:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;appVersion = "2.0.8.20060513-MAINT-W32VC71";&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This makes your client look like the regular, Windows 2.0.8 version. Of course, you could even change appVersion to be anything you want, like "A BZFLAG CHEAT CLIENT, PUNK!" and if I remember correctly, it may not filter out swear words.&lt;br /&gt;So that's the cheat. So stop bugging me Nightmare.&lt;br /&gt;-phasmophage&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-7927902443944276459?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/7927902443944276459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=7927902443944276459' title='41 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/7927902443944276459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/7927902443944276459'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/09/clientquery-spoofing.html' title='Clientquery spoofing'/><author><name>phasmophage</name><uri>http://www.blogger.com/profile/16113881903364804638</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm2.static.flickr.com/1437/935360493_ed63f54830.jpg?v=0'/></author><thr:total>41</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-8526205069927882879</id><published>2007-09-17T01:28:00.001-07:00</published><updated>2007-09-17T22:57:54.344-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='No Gravity'/><title type='text'>No Gravity</title><content type='html'>&lt;span style="font-weight: bold;"&gt;By: Phasmophage&lt;/span&gt;&lt;br /&gt;Okay, this is a very useless cheat, but because randomdude wants it, I thought I'd post it. =]&lt;br /&gt;&lt;br /&gt;We definitely want this cheat to be toggleable. So in playing.cxx, add a line near the beginning (it doesn't matter where, as long as it's not in a function or anything) that says this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;bool bCheatGravity = false;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now, open LocalPlayer.cxx and put this line of code near the top.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;extern bool bCheatGravity;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This will let us use the variable we declared in playing.cxx.&lt;br /&gt;&lt;br /&gt;Now, also in LocalPlayer.cxx find these lines:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    newVelocity[2] += BZDB.eval(StateDatabase::BZDB_WINGSGRAVITY) * dt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    lastSpeed = speed;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      } else {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    newVelocity[2] += BZDBCache::gravity * dt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And replace them with this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    if(bCheatGravity &amp;amp;&amp;amp; oldVelocity[2] &lt;=  0.0)newVelocity[2] = 0;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    else newVelocity[2] += BZDB.eval(StateDatabase::BZDB_WINGSGRAVITY) * dt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    lastSpeed = speed;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      } else {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    //newVelocity[2] += BZDBCache::gravity * dt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    if(bCheatGravity &amp;amp;&amp;amp; oldVelocity[2] &lt;=  0.0 )newVelocity[2] = 0;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    else newVelocity[2] += BZDBCache::gravity * dt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now, to add the toggle function, open up ComposeDefaultKey.cxx and add this line near the top:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;extern bool bCheatGravity;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And add these lines where your other commands are:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;if(message=="/gravity")&lt;br /&gt;{&lt;br /&gt;        bCheatGravity = !bCheatGravity;&lt;br /&gt;        LocalPlayer *myTank = LocalPlayer::getMyTank();&lt;br /&gt;        const float * oldVel = myTank-&gt;getVelocity();&lt;br /&gt;        float newVelocity[3];&lt;br /&gt;        newVelocity[0] = oldVel[0];&lt;br /&gt;        newVelocity[1] = oldVel[0];&lt;br /&gt;        newVelocity[2] = 0;&lt;br /&gt;        myTank-&gt;setVelocity(newVelocity);&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;If you don't know where to put this, look for these lines and put it above it:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; if (message.length() &gt; 0) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      const char* cmd = message.c_str();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      if (LocalCommand::execute(cmd)) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    ;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      } else if (serverLink) {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;and put an "&lt;span style="font-family:courier new;"&gt;else&lt;/span&gt;" in front of " &lt;span style="font-family:courier new;"&gt;if (message.length() &gt; 0) {&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;That's all there is to it. It's pretty useless, I know. But it is funny to see a tank in midair not moving. Which reminds me, you'll need your wings cheat working if you want to drive around in the air.&lt;br /&gt;Hope this is what you were looking for randomdude. ;)&lt;br /&gt;-phaz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-8526205069927882879?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/8526205069927882879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=8526205069927882879' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/8526205069927882879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/8526205069927882879'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/09/no-gravity.html' title='No Gravity'/><author><name>phasmophage</name><uri>http://www.blogger.com/profile/16113881903364804638</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm2.static.flickr.com/1437/935360493_ed63f54830.jpg?v=0'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-919641172669054305</id><published>2007-09-16T15:42:00.000-07:00</published><updated>2007-09-16T15:50:02.172-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Super jump'/><title type='text'>Super Jump</title><content type='html'>&lt;span style="font-weight: bold;"&gt;By: Phasmophage&lt;/span&gt;&lt;br /&gt;In winged fights, it's hard to catch up with people that are above you, and are continuously jumping. So here's a cheat that will amplify your jump speed by a factor of 8 (or whatever you want it to be, just change it) if you type "/jump".&lt;br /&gt;    Add these lines of code in composeDefaultKey.cxx before other commands (See "Quick Guide to Toggling Cheats and Wallwalking"):&lt;br /&gt;&lt;br /&gt;  if (message=="/jump"){&lt;br /&gt;         LocalPlayer *myTank = LocalPlayer::getMyTank();&lt;br /&gt;     const float* oldVelocity = myTank-&gt;getVelocity();&lt;br /&gt;      float newVelocity[3];&lt;br /&gt;       newVelocity[0] = oldVelocity[0];&lt;br /&gt;       newVelocity[1] = oldVelocity[1];&lt;br /&gt;       newVelocity[2] = BZDB.eval(StateDatabase::BZDB_WINGSJUMPVELOCITY);&lt;br /&gt;       newVelocity[2] *= 8;&lt;br /&gt;       myTank-&gt;setVelocity(newVelocity);&lt;br /&gt;         }&lt;br /&gt;&lt;br /&gt;You will probably want to have your wings cheat turned on when you use this, as you may continue to soar until you are kicked. If you're going too fast, make sure you have you're wings cheat turned on and jump. This will slow you down to regular jump speed.&lt;br /&gt;Questions? Is this working for you? Leave a comment.&lt;br /&gt;-Phasmophage&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-919641172669054305?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/919641172669054305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=919641172669054305' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/919641172669054305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/919641172669054305'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/09/super-jump.html' title='Super Jump'/><author><name>phasmophage</name><uri>http://www.blogger.com/profile/16113881903364804638</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm2.static.flickr.com/1437/935360493_ed63f54830.jpg?v=0'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-3765385007752415686</id><published>2007-09-16T15:37:00.000-07:00</published><updated>2007-09-16T15:42:48.061-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='/send thief'/><title type='text'>Protect against "/send"</title><content type='html'>&lt;span style="font-weight: bold;"&gt;By: Phasmophage&lt;/span&gt;&lt;br /&gt;"/send" is fun, but it can be horrible if it is used against you. So here's a cheat that will send the flag right back to the person who sent it to you.&lt;br /&gt;    In playing.cxx, find these lines of code:&lt;br /&gt;&lt;br /&gt;static void    handleFlagTransferred( Player *fromTank, Player *toTank, int flagIndex)&lt;br /&gt;{&lt;br /&gt;  Flag f = world-&gt;getFlag(flagIndex);&lt;br /&gt;&lt;br /&gt;  fromTank-&gt;setFlag(Flags::Null);&lt;br /&gt;  toTank-&gt;setFlag(f.type);&lt;br /&gt;&lt;br /&gt;  if ((fromTank == myTank) || (toTank == myTank))&lt;br /&gt;    updateFlag(myTank-&gt;getFlag());&lt;br /&gt;   &lt;br /&gt;and put this line of code right under it to send the flag back:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  if(toTank == myTank)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;             serverLink-&gt;sendTransferFlag(myTank-&gt;getId(), fromTank-&gt;getId());&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Or you can add this line instead to immediately drop it:&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  if(toTank == myTank)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    serverLink-&gt;sendDropFlag(myTank-&gt;getPosition());&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You'll probably want to make this cheat toggleable (see "Quick Guide to Toggling Cheats and Wallwalking").&lt;br /&gt;-Phaz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-3765385007752415686?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/3765385007752415686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=3765385007752415686' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/3765385007752415686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/3765385007752415686'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/09/protect-against-send.html' title='Protect against &quot;/send&quot;'/><author><name>phasmophage</name><uri>http://www.blogger.com/profile/16113881903364804638</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm2.static.flickr.com/1437/935360493_ed63f54830.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-5741527561608378347</id><published>2007-09-16T14:57:00.000-07:00</published><updated>2007-09-16T15:02:21.404-07:00</updated><title type='text'>Send a flag</title><content type='html'>&lt;span style="font-weight: bold;"&gt;By: Someone (but I had this one too, before ^_^)&lt;/span&gt;&lt;br /&gt;What this cheat will do is simulate your flag being stolen by someone and thus sent to them, causing them to drop their flag, and pick up yours. You can send people bad flags, or OO and force them inside buildings with this cheat.&lt;br /&gt;To do this, edit composeDefaultKey.cxx and add these lines of code:&lt;br /&gt;&lt;br /&gt;if(message=="/send") {&lt;br /&gt;const Player *Other = LocalPlayer::getMyTank()-&gt;getRecipient();&lt;br /&gt;if(Other)&lt;br /&gt;{&lt;br /&gt;serverLink-&gt;sendTransferFlag(LocalPlayer::getMyTank()-&gt;getId(),Other-&gt;getId());&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;In front of your other slash commands. (See previous tutorials)&lt;br /&gt;And that's it. PM "/send" to anybody to send them the flag.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-5741527561608378347?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/5741527561608378347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=5741527561608378347' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/5741527561608378347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/5741527561608378347'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/09/send-flag.html' title='Send a flag'/><author><name>phasmophage</name><uri>http://www.blogger.com/profile/16113881903364804638</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm2.static.flickr.com/1437/935360493_ed63f54830.jpg?v=0'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-2416556837886723244</id><published>2007-09-10T15:33:00.000-07:00</published><updated>2007-09-10T16:01:44.849-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Teleport instantaneously behind somebody agent smith style'/><title type='text'>Teleport Behind Somebody</title><content type='html'>By:&lt;span style="font-weight: bold;"&gt;Phasmophage&lt;/span&gt;&lt;br /&gt;   Okay then, this is my first original post in quite a while. Most of the new cheats have been posted by Someone.&lt;br /&gt;&lt;br /&gt;   Are you tired of having to catch up with others to get a good shot at them? Do you wish that you could just appear behind someone (not the contributor Someone), and automatically aim at them? Well now you can! What this cheat will allow you to do is teleport behind somebody (Kind of like what I heard Agent Smith used to be able to do) by sending them a special private message (Using the period key)  like "/behind" or "/b".&lt;br /&gt;   To do this, we will need to edit the "composeDefaultKey.cxx" in the directory "/src/bzflag/". Now what you'll need to do is find this line of code:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    if (message.length() &gt; 0) {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;and change it to this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    else if (message.length() &gt; 0) {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;and put this above it:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;if(message=="/behind") {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;     const Player *Other = LocalPlayer::getMyTank()-&gt;getRecipient();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;     if(Other)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;     {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    LocalPlayer::getMyTank()-&gt;setStatus(LocalPlayer::getMyTank()-&gt;getStatus() | int(PlayerState::Teleporting));&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    const float* pos = Other-&gt;getPosition();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    const float* dir = Other-&gt;getForward();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    const float* vel = Other-&gt;getVelocity();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    float newpos[3];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    float newvel[3];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    newpos[0] = pos[0] - 10 * dir[0];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    newpos[1] = pos[1] - 10 * dir[1];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    newpos[2] = pos[2] + 0.01;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    newvel[0] = vel[0];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    newvel[1] = vel[1];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    newvel[2] = vel[2];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    LocalPlayer::getMyTank()-&gt;move(newpos, Other-&gt;getAngle());&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    LocalPlayer::getMyTank()-&gt;setStatus(LocalPlayer::getMyTank()-&gt;getStatus() &amp; ~int(PlayerState::Teleporting));&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You can change the command "/behind" to anything you want. You may want to make it shorter. I also don't think that the "setStatus" functions really do anything important, so you may want to get rid of those, but they don't do any harm anyway.&lt;br /&gt;&lt;br /&gt;If you're really into coding, what you can do, like I've done,  is instead of having the "Other" player be the recipient of a message, you can make it the closest enemy through using the "findBestTarget()" function in TargetingUtils. You may also want to bind this action to a key, making it quicker to use. I won't go into the details on this, but for one method of binding keys, see Someone's comment on "Quick Guide to Toggling Cheats and Wallwalking". This method doesn't work for me, so I replace some commands I don't use, like "w" for "toggle console".&lt;br /&gt;&lt;br /&gt;Questions? Comments? If I missed anything, or if you have any ideas on improvement *cough* Someone *cough*, post a comment.&lt;br /&gt;Have fun with this one.&lt;br /&gt;-&lt;span style="font-weight: bold;"&gt;phasmophage&lt;/span&gt;&lt;br /&gt;aka &lt;span style="font-weight: bold;"&gt;phaz&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-2416556837886723244?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/2416556837886723244/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=2416556837886723244' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/2416556837886723244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/2416556837886723244'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/09/teleport-behind-somebody.html' title='Teleport Behind Somebody'/><author><name>phasmophage</name><uri>http://www.blogger.com/profile/16113881903364804638</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm2.static.flickr.com/1437/935360493_ed63f54830.jpg?v=0'/></author><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-4763976908781477518</id><published>2007-09-09T21:11:00.000-07:00</published><updated>2007-09-09T21:20:59.525-07:00</updated><title type='text'>GM Multi-Lock</title><content type='html'>By:&lt;span style="font-weight: bold;"&gt; Someone&lt;/span&gt;&lt;br /&gt;"Someone" has an improvement on the previously posted "GMWontUnlock" what this cheat will do is allow individual Guided Missiles to track individual targets, instead of all Guided Missiles following one target.&lt;br /&gt;To do this, open GuidedMissileStrategy.cxx and find these lines of code:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;LocalPlayer* myTank = LocalPlayer::getMyTank();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;if (myTank)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;target = myTank-&gt;getTarget();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And replace them with:&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    if (lastTarget == NoPlayer) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;      setTarget();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;      LocalPlayer* myTank = LocalPlayer::getMyTank();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;      if (myTank)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        target = myTank-&gt;getTarget();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    } else {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;      target = lookupPlayer(lastTarget);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;You can thank "Someone" for this post, see his comment for the post "GMWontUnlock."&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-4763976908781477518?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/4763976908781477518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=4763976908781477518' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/4763976908781477518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/4763976908781477518'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/09/gm-multi-lock.html' title='GM Multi-Lock'/><author><name>phasmophage</name><uri>http://www.blogger.com/profile/16113881903364804638</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm2.static.flickr.com/1437/935360493_ed63f54830.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-4520576135921159564</id><published>2007-09-08T22:23:00.000-07:00</published><updated>2007-09-08T22:35:54.184-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Guided Missile lock'/><title type='text'>"GuidedMissileWontUnlock"</title><content type='html'>Here's an old one that I believe Mr_Molez had on a private site, but I haven't seen it anywhere else so I'll post it here.&lt;br /&gt;&lt;br /&gt;Normally, when one dies after shooting a guided missile, the missile no longer tracks the target. This cheat is listed as one of the "Subtle Cheats" of BZFlag, and what it does is it continues to track the target, even after dying. Here's how to do it.&lt;br /&gt;&lt;br /&gt;In LocalPlayer.cxx, find this line:&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  target = NULL;  // lose lock when dead&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And delete it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-4520576135921159564?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/4520576135921159564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=4520576135921159564' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/4520576135921159564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/4520576135921159564'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/09/guidedmissilewontunlock.html' title='&quot;GuidedMissileWontUnlock&quot;'/><author><name>phasmophage</name><uri>http://www.blogger.com/profile/16113881903364804638</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm2.static.flickr.com/1437/935360493_ed63f54830.jpg?v=0'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-6614552036258236370</id><published>2007-08-20T18:05:00.000-07:00</published><updated>2007-08-20T18:06:16.338-07:00</updated><title type='text'>Reduce laser reload</title><content type='html'>By: &lt;span style="font-weight: bold;"&gt;Someone &lt;/span&gt;&lt;br /&gt;(Copied straight off his comment from "Wings Gravity Fix for Bloodbath.")&lt;br /&gt; Laser fast-reload&lt;br /&gt;&lt;br /&gt;In src/bzflag/SegmentedShotStrategy.cxx, find:&lt;br /&gt;---&lt;br /&gt;setReloadTime(_path-&gt;getReloadTime()&lt;br /&gt;/ BZDB.eval(StateDatabase::BZDB_LASERADRATE));&lt;br /&gt;---&lt;br /&gt;Replace with:&lt;br /&gt;---&lt;br /&gt; setReloadTime(_path-&gt;getReloadTime()&lt;br /&gt;               * BZDB.eval(StateDatabase::BZDB_LASERADLIFE))&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-6614552036258236370?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/6614552036258236370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=6614552036258236370' title='27 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/6614552036258236370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/6614552036258236370'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/08/reduce-laser-reload.html' title='Reduce laser reload'/><author><name>phasmophage</name><uri>http://www.blogger.com/profile/16113881903364804638</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm2.static.flickr.com/1437/935360493_ed63f54830.jpg?v=0'/></author><thr:total>27</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-8298533944366168289</id><published>2007-08-20T18:03:00.000-07:00</published><updated>2007-08-20T18:05:19.513-07:00</updated><title type='text'>Enable Autopilot all the time</title><content type='html'>By: &lt;span style="font-weight: bold;"&gt;Someone &lt;/span&gt;&lt;br /&gt;(Copied straight off his comment from "Wings Gravity Fix for Bloodbath.")&lt;br /&gt; Want to use autopilot on maps that disable it?&lt;br /&gt;&lt;br /&gt;In src/bzflag/clientCommands.cxx, find:&lt;br /&gt;---&lt;br /&gt; if (BZDB.isTrue(StateDatabase::BZDB_DISABLEBOTS)) {&lt;br /&gt;   hud-&gt;setAlert(0, "autopilot not allowed on this server", 1.0f, true);&lt;br /&gt;   return std::string();&lt;br /&gt; }&lt;br /&gt;---&lt;br /&gt;Remove it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-8298533944366168289?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/8298533944366168289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=8298533944366168289' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/8298533944366168289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/8298533944366168289'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/08/enable-autopilot-all-time.html' title='Enable Autopilot all the time'/><author><name>phasmophage</name><uri>http://www.blogger.com/profile/16113881903364804638</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm2.static.flickr.com/1437/935360493_ed63f54830.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-5622035060455739605</id><published>2007-08-20T18:02:00.001-07:00</published><updated>2007-08-20T18:03:46.982-07:00</updated><title type='text'>Auto Apologizer</title><content type='html'>By: &lt;span style="font-weight: bold;"&gt;Someone &lt;/span&gt;&lt;br /&gt;(Copied straight off his comment from "Wings Gravity Fix for Bloodbath.")&lt;br /&gt; Do you ever tire of saying 'sry' to people you tk?&lt;br /&gt;&lt;br /&gt;In src/bzflag/playing.cxx find:&lt;br /&gt;---&lt;br /&gt;               if (myTank-&gt;isAutoPilot()) {&lt;br /&gt;                 char meaculpa[MessageLen];&lt;br /&gt;                 memset(meaculpa, 0, MessageLen);&lt;br /&gt;                 strncpy(meaculpa,&lt;br /&gt;                         "sorry, i'm just a silly machine",&lt;br /&gt;                         MessageLen);&lt;br /&gt;---&lt;br /&gt;Replace it with:&lt;br /&gt;---&lt;br /&gt;               if (myTank-&gt;isAutoPilot() || 1) {&lt;br /&gt;                 char meaculpa[MessageLen];&lt;br /&gt;                 memset(meaculpa, 0, MessageLen);&lt;br /&gt;                 strncpy(meaculpa,&lt;br /&gt;                         "sry",&lt;br /&gt;                         MessageLen);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-5622035060455739605?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/5622035060455739605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=5622035060455739605' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/5622035060455739605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/5622035060455739605'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/08/auto-apologizer.html' title='Auto Apologizer'/><author><name>phasmophage</name><uri>http://www.blogger.com/profile/16113881903364804638</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm2.static.flickr.com/1437/935360493_ed63f54830.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-8400675928696238894</id><published>2007-08-20T18:00:00.000-07:00</published><updated>2007-08-20T18:02:33.789-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Find a geno flag'/><title type='text'>Find geno flag</title><content type='html'>By: &lt;span style="font-weight: bold;"&gt;Someone&lt;/span&gt;&lt;br /&gt;This is how to find a geno flag with the top of your mousebox. Only works if phantom zone spoof is off.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Geno/other team flag finder: You know that there is a marker for your own team flag, and antidotes above the targeting square, so why not have one for geno, and other team flags?&lt;br /&gt;&lt;br /&gt;In src/bzflag/playing.cxx, find:&lt;br /&gt;---&lt;br /&gt;static void             prepareTheHUD()&lt;br /&gt;{&lt;br /&gt; // prep the HUD&lt;br /&gt; if (myTank) {&lt;br /&gt;   const float* myPos = myTank-&gt;getPosition();&lt;br /&gt;   hud-&gt;setHeading(myTank-&gt;getAngle());&lt;br /&gt;   hud-&gt;setAltitude(myPos[2]);&lt;br /&gt;   if (world-&gt;allowTeamFlags()) {&lt;br /&gt;     const float* myTeamColor = Team::getTankColor(myTank-&gt;getTeam());&lt;br /&gt;     // markers for my team flag&lt;br /&gt;     for (int i = 0; i &lt; numFlags; i++) {&lt;br /&gt;       Flag&amp; flag = world-&gt;getFlag(i);&lt;br /&gt;       if ((flag.type-&gt;flagTeam == myTank-&gt;getTeam())&lt;br /&gt;           &amp;&amp;amp; ((flag.status != FlagOnTank) ||&lt;br /&gt;               (flag.owner != myTank-&gt;getId()))) {&lt;br /&gt;         const float* flagPos = flag.position;&lt;br /&gt;         float heading = atan2f(flagPos[1] - myPos[1],flagPos[0] - myPos[0]);&lt;br /&gt;         hud-&gt;addMarker(heading, myTeamColor);&lt;br /&gt;       }&lt;br /&gt;     }&lt;br /&gt;   }&lt;br /&gt;   if (myTank-&gt;getAntidoteLocation()) {&lt;br /&gt;     // marker for my antidote flag&lt;br /&gt;     const GLfloat* antidotePos = myTank-&gt;getAntidoteLocation();&lt;br /&gt;     float heading = atan2f(antidotePos[1] - myPos[1],&lt;br /&gt;                            antidotePos[0] - myPos[0]);&lt;br /&gt;     const float antidoteColor[] = {1.0f, 1.0f, 0.0f};&lt;br /&gt;     hud-&gt;addMarker(heading, antidoteColor);&lt;br /&gt;   }&lt;br /&gt; }&lt;br /&gt; return;&lt;br /&gt;}&lt;br /&gt;---&lt;br /&gt;Replace it with:&lt;br /&gt;---&lt;br /&gt;static void             prepareTheHUD()&lt;br /&gt;{&lt;br /&gt; // prep the HUD&lt;br /&gt; if (myTank) {&lt;br /&gt;   const float* myPos = myTank-&gt;getPosition();&lt;br /&gt;   hud-&gt;setHeading(myTank-&gt;getAngle());&lt;br /&gt;   hud-&gt;setAltitude(myPos[2]);&lt;br /&gt;   if (world-&gt;allowTeamFlags()) {&lt;br /&gt;     // markers for my team flag&lt;br /&gt;     for (int i = 0; i &lt; numFlags; i++) {&lt;br /&gt;       Flag&amp; flag = world-&gt;getFlag(i);&lt;br /&gt;       if (flag.type-&gt;flagTeam != NoTeam) {&lt;br /&gt;         const float* flagPos = flag.position;&lt;br /&gt;         float heading = atan2f(flagPos[1] - myPos[1],flagPos[0] - myPos[0]);&lt;br /&gt;         hud-&gt;addMarker(heading, Team::getTankColor(flag.type-&gt;flagTeam));&lt;br /&gt;       }&lt;br /&gt;     }&lt;br /&gt;   }&lt;br /&gt;   if (myTank-&gt;getAntidoteLocation()) {&lt;br /&gt;     // marker for my antidote flag&lt;br /&gt;     const GLfloat* antidotePos = myTank-&gt;getAntidoteLocation();&lt;br /&gt;     float heading = atan2f(antidotePos[1] - myPos[1],&lt;br /&gt;                            antidotePos[0] - myPos[0]);&lt;br /&gt;     const float antidoteColor[] = {1.0f, 1.0f, 0.0f};&lt;br /&gt;     hud-&gt;addMarker(heading, antidoteColor);&lt;br /&gt;   }&lt;br /&gt;   for (int i = 0; i &lt; numFlags; i++) {&lt;br /&gt;     Flag&amp; flag = world-&gt;getFlag(i);&lt;br /&gt;     if (flag.type == Flags::Genocide) {&lt;br /&gt;       const float* flagPos = flag.position;&lt;br /&gt;       float heading = atan2f(flagPos[1] - myPos[1],flagPos[0] - myPos[0]);&lt;br /&gt;       hud-&gt;addMarker(heading, flag.type-&gt;getColor());&lt;br /&gt;     }&lt;br /&gt;   }&lt;br /&gt; }&lt;br /&gt; return;&lt;br /&gt;}&lt;br /&gt;---&lt;br /&gt;&lt;br /&gt;See his post on "Wings gravity fix for bloodbath"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-8400675928696238894?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/8400675928696238894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=8400675928696238894' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/8400675928696238894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/8400675928696238894'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/08/find-geno-flag.html' title='Find geno flag'/><author><name>phasmophage</name><uri>http://www.blogger.com/profile/16113881903364804638</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm2.static.flickr.com/1437/935360493_ed63f54830.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-8520848910858804933</id><published>2007-08-20T17:58:00.000-07:00</published><updated>2007-08-20T18:00:23.083-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='normal bullets pz'/><title type='text'>Shoot Normal Bullets in PZ</title><content type='html'>By: &lt;span style="font-weight: bold;"&gt;Someone&lt;/span&gt;&lt;br /&gt;(Sorry to take so long posting these, usually Lord Jesus posts other peoples' cheats. This is basically just copied exactly from &lt;span style="font-weight: bold;"&gt;someone&lt;/span&gt;'s comment.)&lt;br /&gt;&lt;br /&gt;In src/bzflag/ShotPath.cxx find:&lt;br /&gt;&lt;br /&gt;if (tank.getFlag() == Flags::PhantomZone &amp;&amp;amp; !tank.isFlagActive()){&lt;br /&gt;&lt;br /&gt;Replace it with:&lt;br /&gt;&lt;br /&gt;if (tank.getFlag() == Flags::PhantomZone){&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-8520848910858804933?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/8520848910858804933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=8520848910858804933' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/8520848910858804933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/8520848910858804933'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/08/shoot-normal-bullets-in-pz.html' title='Shoot Normal Bullets in PZ'/><author><name>phasmophage</name><uri>http://www.blogger.com/profile/16113881903364804638</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm2.static.flickr.com/1437/935360493_ed63f54830.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-4725392920814662617</id><published>2007-08-12T17:46:00.001-07:00</published><updated>2007-08-12T17:57:31.873-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wings Gravity Bloodbath'/><title type='text'>Wings Gravity Fix for BloodBath</title><content type='html'>&lt;p class="MsoNormal"&gt;    You may have noticed that if you tried to use the wings cheat in BloodBath, you'll start to fly away until you get autokicked. The problem lies in the fact that there are two separate gravity values: one for normal jumps and the other for wings. Normally, the value of gravity is negative (usually around -9.8) causing you to go downwards. However, when this value is set to a positive value, you start to shoot upwards.  BloodBath set the wings gravity to 100, so you will shoot upwards. So here's a quick, one-liner fix so you can you the wings cheat on their server again.&lt;br /&gt;    For this cheat, you will need to edit LocalPlayer.cxx and find this line:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;    newVelocity[2] += BZDB.eval(StateDatabase::BZDB_WINGSGRAVITY) * dt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;And add this line of code right before it:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;    if(BZDB.eval(StateDatabase::BZDB_WINGSGRAVITY) &gt;= 0)BZDB.setFloat(StateDatabase::BZDB_WINGSGRAVITY, BZDB.eval(StateDatabase::BZDB_GRAVITY));&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;So your code should look like this, in the end:&lt;br /&gt;   &lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;    if(BZDB.eval(StateDatabase::BZDB_WINGSGRAVITY) &gt;=0 )BZDB.setFloat(StateDatabase::BZDB_WINGSGRAVITY, BZDB.eval(StateDatabase::BZDB_GRAVITY));&lt;br /&gt;    newVelocity[2] += BZDB.eval(StateDatabase::BZDB_WINGSGRAVITY) * dt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;What this will do is check to see if wings gravity is set to a positive number, and if so, change it to the value of normal gravity.&lt;br /&gt;Did I miss something? Was this helpful? Leave a comment.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Have fun. ;)&lt;br /&gt;-Phaz&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-4725392920814662617?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/4725392920814662617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=4725392920814662617' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/4725392920814662617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/4725392920814662617'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/08/wings-gravity-fix-for-bloodbath.html' title='Wings Gravity Fix for BloodBath'/><author><name>phasmophage</name><uri>http://www.blogger.com/profile/16113881903364804638</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm2.static.flickr.com/1437/935360493_ed63f54830.jpg?v=0'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-9034766651719950708</id><published>2007-08-08T21:23:00.000-07:00</published><updated>2007-08-08T22:17:11.828-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Toggling cheats wallwalking oscillation overthruster'/><title type='text'>Quick Guide to Toggling Cheats and Wallwalking</title><content type='html'>&lt;p class="MsoNormal"&gt;By: &lt;b&gt;Phasmophage&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;    Many of you have asked how to toggle cheats. It is one of the most important things cheaters should know how to do. Having a phase cheat is pretty frustrating without being able to turn it off to land on buildings. It's also nice to turn off the wings cheat on servers like Bloodbath, where they reversed wings gravity to make cheaters with wings shoot up into the air until they are autokicked. So here's a non-specific guide on cheat toggling.&lt;br /&gt;    Now, the method I use for toggling toggles cheats when you say certain commands by pressing "z", "n", "m", "," or "." So, for example, to toggle god mode I would say "/god" to my teammates, or whoever. The program then recognizes "/god" as a keyword, toggles the cheat, and prevents "/god" from actually being sent. The file that controls sending messages to others is "ComposeDefaultKey.cxx".  My personal ComposeDefaultKey.cxx is probably two times bigger than the original.&lt;br /&gt;&lt;br /&gt;    So let's get started, shall we? Open up "ComposeDefaultKey.cxx" and find these lines of code:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;  if (sendIt) {&lt;br /&gt;    std::string message = hud-&gt;getComposeString();&lt;br /&gt;    if (message.length() &gt; 0) {&lt;br /&gt;      const char* cmd = message.c_str();&lt;br /&gt;      if (LocalCommand::execute(cmd)) {&lt;br /&gt;    ;&lt;br /&gt;      } else if (serverLink) {&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Let's focus on this line, for a second:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;    std::string message = hud-&gt;getComposeString();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;"message" is our message (duh) that we're about to send out, so the "message" string is going to be very important to us later. But first, let me explain boolean variables. Boolean variables, or the "bool" type in C++ (the language used to create BZFlag) can only be true or false. This is the data type we will use to turn our cheats off and on. Now to access these variables from other files,  (For example, we need to switch the variable in ComposeDefaultKey.cxx but perhaps the actual cheat is in playing.cxx) we need to declare a variable "extern" in some files.&lt;br /&gt;Argh, I'm bad at explaining, so here's an example:&lt;br /&gt;Open up playing.cxx and find these lines of code:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;#ifdef ROBOT&lt;br /&gt;static void        handleMyTankKilled(int reason);&lt;br /&gt;static ServerLink*    robotServer[MAX_ROBOTS];&lt;br /&gt;#endif&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Right after those lines, put this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;bool bCheatOO = false;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt; That variable is our on and off switch that will let us walk through walls.  The b is for "boolean" and the OO is for Oscillation Overthruster, and the "cheat" because we're cheating. You can name it whatever you want.&lt;br /&gt;&lt;br /&gt;Now to access it in another file, like ComposeDefaultKey.cxx, find these lines of code:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;#define MAX_MESSAGE_HISTORY (20)&lt;br /&gt;&lt;br /&gt;MessageQueue    messageHistory;&lt;br /&gt;unsigned int    messageHistoryIndex = 0;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;and put this right after:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;extern bool bCheatOO;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;"Extern" tells us that this variable is defined elsewhere, but allows us to use it.&lt;br /&gt;Now let's go back to these lines of code:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;br /&gt;  if (sendIt) {&lt;br /&gt;    std::string message = hud-&gt;getComposeString();&lt;br /&gt;    if (message.length() &gt; 0) {&lt;br /&gt;      const char* cmd = message.c_str();&lt;br /&gt;      if (LocalCommand::execute(cmd)) {&lt;br /&gt;    ;&lt;br /&gt;      } else if (serverLink) {&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;And change it to this:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;br /&gt;  if (sendIt) {&lt;br /&gt;    std::string message = hud-&gt;getComposeString();&lt;br /&gt;    if (message.length() &gt; 0) {&lt;br /&gt;      const char* cmd = message.c_str();&lt;br /&gt;    if(message=="/oo")bCheatOO = !bCheatOO; //We added this line, which toggles bCheatOO&lt;br /&gt;    else if (LocalCommand::execute(cmd)) { //And put an "else" before "if"&lt;br /&gt;    ;&lt;br /&gt;      } else if (serverLink) {&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;So if you enter "/oo" you'll switch the cheat to its opposite state.&lt;br /&gt;&lt;br /&gt;Now, since the actual Oscillation Overthruster stuff is in LocalPlayer.cxx, let's open that up and find these lines of code:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;/* local implementation headers */&lt;br /&gt;#include "World.h"&lt;br /&gt;#include "sound.h"&lt;br /&gt;#include "ForceFeedback.h"&lt;br /&gt;#include "effectsRenderer.h"&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;and put this right after:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;extern bool bCheatOO;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Now for the real cheats. Find these lines of code:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;  // phased means we can pass through buildings&lt;br /&gt;  const bool phased = ((location == Dead) || (location == Exploding) ||&lt;br /&gt;               (getFlag() == Flags::OscillationOverthruster) ||&lt;br /&gt;               isPhantomZoned());&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;and change it to this:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;  const bool phased = ((location == Dead) || (location == Exploding) ||&lt;br /&gt;               (getFlag() == Flags::OscillationOverthruster) ||&lt;br /&gt;               isPhantomZoned() || bCheatOO);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;See how we added "|| bCheatOO" to the end? This means if we have Oscillation Overthruster, Phantom Zone, OR if bCheatOO is turned on, then we can pass through buildings.&lt;br /&gt;&lt;br /&gt;Find this line of code:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;  if (location == InBuilding &amp;&amp;amp; getFlag() == Flags::OscillationOverthruster) {&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;And change it to this:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;  if (location == InBuilding &amp;&amp;amp; (getFlag() == Flags::OscillationOverthruster || bCheatOO)) {&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Actually, that line isn't too important, it just shows the the weird effects when you're crossing a wall.&lt;br /&gt;&lt;br /&gt;Now find this:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;  if (expelled &amp;&amp;amp; phased)&lt;br /&gt;    expelled = (obstacle-&gt;getType() == WallObstacle::getClassName() ||&lt;br /&gt;        obstacle-&gt;getType() == Teleporter::getClassName() ||&lt;br /&gt;        (getFlag() == Flags::OscillationOverthruster &amp;&amp;amp; desiredSpeed &lt; 0.0f &amp;&amp;amp;&lt;br /&gt;         p[2] == 0.0f));&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;and change it to this:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;  if (expelled &amp;&amp;amp; phased)&lt;br /&gt;    expelled = (obstacle-&gt;getType() == WallObstacle::getClassName() ||&lt;br /&gt;        obstacle-&gt;getType() == Teleporter::getClassName() ||&lt;br /&gt;        (getFlag() == Flags::OscillationOverthruster &amp;&amp;amp; !bCheatOO &amp;&amp;amp; desiredSpeed &lt; 0.0f &amp;&amp;amp;&lt;br /&gt;         p[2] == 0.0f));&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;This time, we added "&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;&amp;&amp;amp; !bCheatOO&lt;/span&gt;" meaning "And bCheatOO is NOT turned on" because what these lines of code do is make sure that we can't back up in buildings.  And we do want to.&lt;br /&gt;Find these lines of code:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;  expelled = (obstacle != NULL);&lt;br /&gt;  if (expelled &amp;&amp;amp; phased)&lt;br /&gt;    expelled = (obstacle-&gt;getType() == WallObstacle::getClassName() ||&lt;br /&gt;        obstacle-&gt;getType() == Teleporter::getClassName() ||&lt;br /&gt;        (hasOOflag &amp;&amp;amp; desiredSpeed &lt; 0.0f &amp;&amp;amp; p[2] == 0.0f));&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;And change it to this:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;  expelled = (obstacle != NULL);&lt;br /&gt;  if (expelled &amp;&amp;amp; phased)&lt;br /&gt;    expelled = (obstacle-&gt;getType() == WallObstacle::getClassName() ||&lt;br /&gt;        (!bCheatOO &amp;&amp;amp; obstacle-&gt;getType() == Teleporter::getClassName()) ||&lt;br /&gt;        (hasOOflag &amp;&amp;amp; desiredSpeed &lt; 0.0f &amp;&amp;amp; !bCheatOO &amp;&amp;amp; p[2] == 0.0f));&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Find these lines of code:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;  // oscillation overthruster tank in building can't back up&lt;br /&gt;  if (fracOfMaxSpeed &lt; 0.0f &amp;&amp;amp; getLocation() == InBuilding &amp;&amp;amp;&lt;br /&gt;      flag == Flags::OscillationOverthruster) {&lt;br /&gt;    fracOfMaxSpeed = 0.0f;&lt;br /&gt;  }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And change it to this:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;  // oscillation overthruster tank in building can't back up&lt;br /&gt;  if (fracOfMaxSpeed &lt; 0.0f &amp;&amp;amp; getLocation() == InBuilding &amp;&amp;amp;&lt;br /&gt;      flag == Flags::OscillationOverthruster &amp;&amp;amp; !bCheatOO) {&lt;br /&gt;    fracOfMaxSpeed = 0.0f;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Find this line of code:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;  if (! (firingStatus == Ready || firingStatus == Zoned))&lt;br /&gt;    return false;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Which doesn't let us fire if we we're sealed, and change it to this:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;  if (! (firingStatus == Ready || bCheatOO || firingStatus == Zoned))&lt;br /&gt;    return false;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Also find this:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;  // make sure we're allowed to shoot&lt;br /&gt;  if (!isAlive() || isPaused() ||&lt;br /&gt;      ((location == InBuilding) &amp;&amp;amp; !isPhantomZoned())) {&lt;br /&gt;    return false;&lt;br /&gt;  }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;And change it to this:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;  // make sure we're allowed to shoot&lt;br /&gt;  if (!isAlive() || isPaused() ||&lt;br /&gt;      ((location == InBuilding) &amp;&amp;amp; !isPhantomZoned() &amp;&amp;amp; !bCheatOO)) {&lt;br /&gt;    return false;&lt;br /&gt;  }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And that's all of it. I think. If this doesn't work, let me know. Hopefully, this will teach you how to toggle your cheats. Again, every cheater needs to know how to do this. Seriously. Have fun with this! And if you have any ideas, critiques, or if you enjoyed this not-so-quick cheat guide: Please, leave a comment. ;)&lt;br /&gt;And I am out!&lt;br /&gt;-Phaz&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-9034766651719950708?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/9034766651719950708/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=9034766651719950708' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/9034766651719950708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/9034766651719950708'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/08/quick-guide-to-toggling-cheats-and.html' title='Quick Guide to Toggling Cheats and Wallwalking'/><author><name>phasmophage</name><uri>http://www.blogger.com/profile/16113881903364804638</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm2.static.flickr.com/1437/935360493_ed63f54830.jpg?v=0'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-6421013160792657487</id><published>2007-08-08T21:13:00.000-07:00</published><updated>2007-08-08T21:22:01.628-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blindness'/><title type='text'>No Blindness</title><content type='html'>Another, really easy cheat. So you can see out the window.&lt;br /&gt;&lt;br /&gt;Open playing.cxx and find this line of code:&lt;br /&gt;&lt;br /&gt;  if (bestTarget-&gt;isHunted() &amp;&amp;amp; myTank-&gt;getFlag() != Flags::Blindness &amp;&amp;amp;&lt;br /&gt;&lt;br /&gt;And change it to this&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  if (bestTarget-&gt;isHunted() &amp;&amp;amp;&lt;br /&gt;&lt;br /&gt;Then find these lines of code:&lt;br /&gt;    sceneRenderer-&gt;setBlank(myTank &amp;&amp;amp; (myTank-&gt;isPaused() ||&lt;br /&gt;                       myTank-&gt;getFlag() == Flags::Blindness));&lt;br /&gt;And change it to this:&lt;br /&gt;&lt;br /&gt;    sceneRenderer-&gt;setBlank(myTank &amp;&amp;amp; (myTank-&gt;isPaused()));&lt;br /&gt;&lt;br /&gt;Or just delete it altogether.&lt;br /&gt;&lt;br /&gt;And that's pretty much it. If I forgot anything, leave a comment.&lt;br /&gt;-Phaz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-6421013160792657487?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/6421013160792657487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=6421013160792657487' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/6421013160792657487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/6421013160792657487'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/08/no-blindness.html' title='No Blindness'/><author><name>phasmophage</name><uri>http://www.blogger.com/profile/16113881903364804638</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm2.static.flickr.com/1437/935360493_ed63f54830.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-8664934519033469379</id><published>2007-08-08T21:05:00.000-07:00</published><updated>2007-08-08T21:13:43.252-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jamming'/><title type='text'>No Jamming</title><content type='html'>Jamming is one annoying flag. Actually, I wouldn't know because whenever I had the jamming flag, I had this cheat preventing the effects. This is a really simple and subtle cheat that every cheater needs. I can't believe this wasn't posted yet.&lt;br /&gt;&lt;br /&gt;For this cheat, open playing.cxx and find this line of code:&lt;br /&gt;  radar-&gt;setJammed(flag == Flags::Jamming);&lt;br /&gt;&lt;br /&gt;and change it to this:&lt;br /&gt;  radar-&gt;setJammed(false);&lt;br /&gt;&lt;br /&gt;And that's pretty much it. Hope I didn't forget anything.&lt;br /&gt;-Phaz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-8664934519033469379?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/8664934519033469379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=8664934519033469379' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/8664934519033469379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/8664934519033469379'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/08/no-jamming.html' title='No Jamming'/><author><name>phasmophage</name><uri>http://www.blogger.com/profile/16113881903364804638</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm2.static.flickr.com/1437/935360493_ed63f54830.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-4834559724554715081</id><published>2007-08-05T03:49:00.000-07:00</published><updated>2007-08-05T04:20:36.343-07:00</updated><title type='text'>Avoid Picking Up Bad Flags</title><content type='html'>Brought to you by: &lt;span style="font-weight: bold;"&gt;Someone&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You may recall that we have posted some techniques for minimizing the impact of bad flags:&lt;br /&gt;&lt;br /&gt;1. &lt;a href="http://bzfcheat.blogspot.com/2007/07/drop-bad-flags-instantly.html"&gt;Drop Bad Flags Instantly&lt;/a&gt;.&lt;br /&gt;2. &lt;a href="http://bzfcheat.blogspot.com/2007/07/by-phaz-you-may-recall-our-earlier-post.html"&gt;Drop Bad Flags Like Regular Flags&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;We now bring you yet another technique:  avoid picking them up altogether.  With this edit, if a flag is bad, you will simply drive over it without picking it up.&lt;br /&gt;&lt;br /&gt;For this, we're going to playing.cxx in /src/bzflag/ of the extracted source.  Search for "if (world-&gt;getFlag(i).type == Flags::Null ||", and you will find this section:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;        if (world-&gt;getFlag(i).type == Flags::Null || world-&gt;getFlag(i).status != FlagOnGround)&lt;br /&gt;          continue;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Notice the second line.  After the "!= FlagOnGround", we are going to add this:&lt;br /&gt;&lt;br /&gt;|| world-&gt;getFlag(i).type-&gt;flagQuality == FlagBad&lt;br /&gt;&lt;br /&gt;The section should now read like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;        if (world-&gt;getFlag(i).type == Flags::Null || world-&gt;getFlag(i).status != FlagOnGround ||&lt;br /&gt;            world-&gt;getFlag(i).type-&gt;flagQuality == FlagBad)&lt;br /&gt;          continue;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Save the file, compile your client, and you're done.  To see Someone's original instructions for this tip, read his &lt;a href="https://www.blogger.com/comment.g?blogID=6287513207414970276&amp;amp;postID=1134202786953476968"&gt;comment&lt;/a&gt; to "Stealth Tanks Blink on Radar".  As always...&lt;br /&gt;&lt;br /&gt;Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-4834559724554715081?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/4834559724554715081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=4834559724554715081' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/4834559724554715081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/4834559724554715081'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/08/avoid-picking-up-bad-flags.html' title='Avoid Picking Up Bad Flags'/><author><name>CRW</name><uri>http://www.blogger.com/profile/16469342749811241765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-8888840532691129518</id><published>2007-08-05T03:15:00.000-07:00</published><updated>2007-08-05T04:22:39.775-07:00</updated><title type='text'>Immunity from Team Kill and Self Kill Shots</title><content type='html'>Brought to you by: &lt;span style="font-weight: bold;"&gt;Someone&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Have you ever been chasing down an enemy only to be killed by a teammate shooting at the same enemy?  Have you ever been killed by your own shots?  Here's a tip that prevent shots from teammates and yourself from killing you.&lt;br /&gt;&lt;br /&gt;For this edit, we're going to playing.cxx in /src/bzflag/ of the extracted source.  Search for "  myTank-&gt;checkHit(myTank, hit, minTime);", and you will find this section:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  float minTime = Infinity;&lt;br /&gt;&lt;br /&gt;  myTank-&gt;checkHit(myTank, hit, minTime);&lt;br /&gt;  int i;&lt;br /&gt;  for (i = 0; i &lt; curMaxPlayers; i++)&lt;br /&gt;    if (player[i])&lt;br /&gt;      myTank-&gt;checkHit(player[i], hit, minTime);&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Let's remove the line "myTank-&gt;checkHit(myTank, hit, minTime);" so that the section now reads like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  float minTime = Infinity;&lt;br /&gt;&lt;br /&gt;  int i;&lt;br /&gt;  for (i = 0; i &lt; curMaxPlayers; i++)&lt;br /&gt;    if (player[i])&lt;br /&gt;      myTank-&gt;checkHit(player[i], hit, minTime);&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Next, we are going to add a new line immediately below "if (player[i])":&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;    if (player[i]-&gt;getTeam() != myTank-&gt;getTeam() || myTank-&gt;getTeam() == RogueTeam)&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;The section should now read like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  float minTime = Infinity;&lt;br /&gt;&lt;br /&gt;  int i;&lt;br /&gt;  for (i = 0; i &lt; curMaxPlayers; i++)&lt;br /&gt;    if (player[i])&lt;br /&gt;    if (player[i]-&gt;getTeam() != myTank-&gt;getTeam() || myTank-&gt;getTeam() == RogueTeam)&lt;br /&gt;    myTank-&gt;checkHit(player[i], hit, minTime);&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Save the file, compile your new client, and you're done.  To see Someone's original instructions, read his &lt;a href="https://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=1134202786953476968"&gt;comment&lt;/a&gt; "Stealth Tanks Blink on Radar".  As always...&lt;br /&gt;&lt;br /&gt;Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-8888840532691129518?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/8888840532691129518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=8888840532691129518' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/8888840532691129518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/8888840532691129518'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/08/immunity-from-team-kills-and-self-kills.html' title='Immunity from Team Kill and Self Kill Shots'/><author><name>CRW</name><uri>http://www.blogger.com/profile/16469342749811241765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-3329163387619908375</id><published>2007-08-04T23:45:00.000-07:00</published><updated>2007-08-05T00:06:42.625-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='guided lasers'/><title type='text'>Guided Lasers</title><content type='html'>By: &lt;span style="font-weight: bold;"&gt;Phasmophage&lt;/span&gt;&lt;br /&gt;   Okay, I was originally planning to keep this in reserve due to its immense power. But, due to popular demand (namely randomdude), I have decided to post it.&lt;br /&gt;&lt;br /&gt;   Guided lasers allow you to lock on to an opponent's position and have perfect accuracy when shooting at them. To do this, we will need to edit two source files: playing.cxx and LocalPlayer.cxx.&lt;br /&gt;&lt;br /&gt;The reason we will be editing playing.cxx is to allow us to lock on with lasers. So, find these lines of code:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    // see if it's inside lock-on angle (if we're trying to lock-on)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    if (a &lt; BZDB.eval(StateDatabase::BZDB_LOCKONANGLE) &amp;&amp;amp;    // about 8.5 degrees&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    ((myTank-&gt;getFlag() == Flags::GuidedMissile) ||        // am i locking on?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;     tankHasShotType(myTank, Flags::GuidedMissile)) &amp;&amp;amp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    player[i]-&gt;getFlag() != Flags::Stealth &amp;&amp;amp;        // can't lock on stealth&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    !player[i]-&gt;isPaused() &amp;&amp;amp;                // can't lock on paused&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    !player[i]-&gt;isNotResponding() &amp;&amp;amp;            // can't lock on not responding&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;d &lt; bestDistance) {   &lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      bestTarget = player[i];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      bestDistance = d;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      lockedOn = true;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;and change this line:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    ((myTank-&gt;getFlag() == Flags::GuidedMissile) ||        // am i locking on?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;to this:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    ((myTank-&gt;getFlag() == Flags::GuidedMissile) || (myTank-&gt;getFlag() == Flags::Laser)  ||        // am i locking on?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You will also find these lines, very similar to the lines before:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;if (a &lt; BZDB.eval(StateDatabase::BZDB_LOCKONANGLE) &amp;&amp;amp;                    // about 8.5 degrees&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    myTank-&gt;getFlag() == Flags::GuidedMissile &amp;&amp;amp;    // am i locking on?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    player[i]-&gt;getFlag() != Flags::Stealth &amp;&amp;amp;    // can't lock on stealth&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    !player[i]-&gt;isPaused() &amp;&amp;amp;            // can't lock on paused&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    !player[i]-&gt;isNotResponding() &amp;&amp;amp;        // can't lock on not responding&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;d &lt; bestDistance) {                // is it better?&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;bestTarget = player[i];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      bestDistance = d;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      lockedOn = true;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now change this line:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    myTank-&gt;getFlag() == Flags::GuidedMissile &amp;&amp;amp;    // am i locking on?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To this:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    (myTank-&gt;getFlag() == Flags::GuidedMissile || myTank-&gt;getFlag() == Flags::Laser) &amp;&amp;amp;    // am i locking on?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;That's all the edits for playing.cxx&lt;br /&gt;&lt;br /&gt;We will now edit LocalPlayer.cxx and find these lines of code:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  else {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    // apply any handicap advantage to shot speed&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    if (handicap &gt; 0.0f) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      const float speedAd = 1.0f + (handicap * (BZDB.eval(StateDatabase::BZDB_HANDICAPSHOTAD) - 1.0f));&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      const float* dir = getForward();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      const float* tankVel = getVelocity();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      const float shotSpeed = speedAd * BZDB.eval(StateDatabase::BZDB_SHOTSPEED);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      firingInfo.shot.vel[0] = tankVel[0] + shotSpeed * dir[0];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      firingInfo.shot.vel[1] = tankVel[1] + shotSpeed * dir[1];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      firingInfo.shot.vel[2] = tankVel[2] + shotSpeed * dir[2];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now add these lines of code after it: (Wrote it myself, so it's pretty cruddy looking)&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      bool LockedOn = false;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;          const Player * target = getTarget();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;          if(target){&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     //const float* tankVel = getVelocity();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     const float shotSpeed = BZDB.eval(StateDatabase::BZDB_SHOTSPEED);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     float newAz = TargetingUtils::getTargetAzimuth( getPosition(), target-&gt;getPosition() );&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     float newPos[3];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     const float * tarPos = target-&gt;getPosition();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     float enemyPos[3];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                        const float *tv = target-&gt;getVelocity();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                        enemyPos[0] = tarPos[0] + (0.3f * tv[0]); //Lag adjustment&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                        enemyPos[1] = tarPos[1] + (0.3f * tv[1]);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                        enemyPos[2] = tarPos[2] + (0.3f * tv[2]);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     const float * myPos = getPosition();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     const float * myDir = getForward();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     newPos[0] = enemyPos[0] - ( myPos[0] + (myDir[0] * 0.1)); //Muzzlefront?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     newPos[1] = enemyPos[1] - ( myPos[1] + (myDir[1] * 0.1)); //Muzzlefront?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     newPos[2] = enemyPos[2] - myPos[2];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     //newPos[2] += target-&gt;getMuzzleHeight(); // right between the eyes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     float newElevation = atan2f(newPos[2], hypotf(newPos[1], newPos[0]));&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     float newDir[3] =  {cosf(newAz), sinf(newAz), sinf(newElevation)};&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     firingInfo.shot.vel[0] = /*tankVel[0] +*/ shotSpeed * newDir[0];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     firingInfo.shot.vel[1] = /*tankVel[1] +*/ shotSpeed * newDir[1];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     firingInfo.shot.vel[2] = /*tankVel[2] +*/ shotSpeed * newDir[2];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     LockedOn = true;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    // Set _shotsKeepVerticalVelocity on the server if you want shots&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    // to have the same vertical velocity as the tank when fired.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    // keeping shots moving horizontally makes the game more playable.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    if (!LockedOn &amp;&amp;amp; !BZDB.isTrue(StateDatabase::BZDB_SHOTSKEEPVERTICALV)) firingInfo.shot.vel[2] = 0.0f;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Oh yeah, forgot, the last four lines should replace these lines:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    // Set _shotsKeepVerticalVelocity on the server if you want shots&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    // to have the same vertical velocity as the tank when fired.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    // keeping shots moving horizontally makes the game more playable.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    if (!BZDB.isTrue(StateDatabase::BZDB_SHOTSKEEPVERTICALV)) firingInfo.shot.vel[2] = 0.0f;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This will allow your lasers to shoot down or up at people, so this cheat sticks out like a sore thumb.&lt;br /&gt;&lt;br /&gt;Oh yeah, forgot again. You'll need to put&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#include "TargetingUtils.h"&lt;/span&gt;&lt;br /&gt;after this line:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#include "effectsRenderer.h"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And that's basically it. This powerful cheat written by phasmophage (aka "Phaz" or me) and brought to you exclusively by bzfcheat.blogspot.com.&lt;br /&gt;If there is anything I might have forgotten, bad math, bad implementation, or if you actually really like it, comments are greatly appreciated.&lt;br /&gt;&lt;br /&gt;Have fun!&lt;br /&gt;-Phaz&lt;br /&gt;;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-3329163387619908375?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/3329163387619908375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=3329163387619908375' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/3329163387619908375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/3329163387619908375'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/08/guided-lasers.html' title='Guided Lasers'/><author><name>phasmophage</name><uri>http://www.blogger.com/profile/16113881903364804638</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm2.static.flickr.com/1437/935360493_ed63f54830.jpg?v=0'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-1134202786953476968</id><published>2007-08-03T13:32:00.000-07:00</published><updated>2007-08-03T13:44:06.204-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Stealth blinking radar'/><title type='text'>Stealth Tanks Blink on Radar</title><content type='html'>By: &lt;span style="font-weight: bold;"&gt;Phasmophage&lt;/span&gt;&lt;br /&gt;   This post assumes that you have already taken out the code that blocks you from seeing stealth tanks on your radar. If you haven't already done so, follow the directions in the post titled "See STEALTH Tanks on Radar."&lt;br /&gt;&lt;br /&gt;   Here is a great way for you not to blow your cover as a cheater. If you have Super Bullet, you don't want to hit a stealthed tank behind a wall. To make sure you know which tanks are stealthed so you can approach them with caution and not blow your cover, we will make them blink.&lt;br /&gt;&lt;br /&gt;This quick and easy edit requires that you open RadarRenderer.cxx and find these lines of code:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    if (flashTank.isOn()) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      if (!toggleTank) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        float flashcolor[3];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        flashcolor[0] = 0.0f;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        flashcolor[1] = 0.8f;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        flashcolor[2] = 0.9f;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        glColor3fv(flashcolor);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    } else {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      toggleTank = !toggleTank;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      flashTank.setClock(0.2f);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now, just put this right after it:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            //Start stealth flash&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      if ((player-&gt;getFlag() == Flags::Stealth)) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      static TimeKeeper lastTime = TimeKeeper::getCurrent();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      static bool flash = false;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      const float elapsed = float(TimeKeeper::getCurrent() - lastTime);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      if(elapsed &lt; 0.3f){&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      if(!flash)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           float flashcolor[3];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        flashcolor[0] = 0.5f; //This controls the color of the flash.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        flashcolor[1] = 0.5f;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        flashcolor[2] = 0.5f;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        glColor3fv(flashcolor);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           flash = !flash;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           lastTime = TimeKeeper::getCurrent();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      }           &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      //End stealth flash&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This will make stealthed tanks blink a gray color on your radar. If you want it to blink faster, change 0.3 to a smaller number, or a bigger number to blink more slowly. You can edit the 0.5f's to fit your tastes in color.&lt;br /&gt;&lt;br /&gt;Don't blow your cover,&lt;br /&gt;-Phaz ;)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-1134202786953476968?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/1134202786953476968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=1134202786953476968' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/1134202786953476968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/1134202786953476968'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/08/stealth-tanks-blink-on-radar.html' title='Stealth Tanks Blink on Radar'/><author><name>phasmophage</name><uri>http://www.blogger.com/profile/16113881903364804638</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm2.static.flickr.com/1437/935360493_ed63f54830.jpg?v=0'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-1259111954186866997</id><published>2007-07-28T22:30:00.000-07:00</published><updated>2007-07-28T22:47:06.292-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flag coloring Identify'/><title type='text'>Flag Coloring and Identify</title><content type='html'>By:&lt;span style="font-weight: bold;"&gt; Phasmophage&lt;/span&gt; (me)&lt;br /&gt;I first read up about Flag Coloring on BZWiki and thought it was a great idea. It is a simple cheat that allows you to mark special flags (Like Laser, GM, SW, etc) with a special color. The coloring allows you to spot a special flag from a distance, and it is even colored on the radar. Imagine always being able to get a guided missile, laser, shock wave, geno, or any flag you want.&lt;br /&gt;Are you drooling yet? I know I would be.&lt;br /&gt;So, this edit lies in the file Flag.cxx where we will find these lines of code:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;const float* FlagType::getColor() const&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;if (flagTeam == NoTeam)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    return superColor;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    return Team::getTankColor(flagTeam);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We will basically replace the above lines of code with the following:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;const float* FlagType::getColor() const&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  static const float superColor[3] = { 1.0, 1.0, 1.0 };&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  static const float LaserColor[3] = { 0.8, 0.2, 0.0 };&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  static const float ShockColor[3] = { 0.0, 0.5, 0.5 };&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  static const float GuideColor[3] = { 0.5, 0.5, 0.0 };&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  static const float GenoCColor[3] = { 0.2, 0.8, 0.2 };&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  static const float BadFlColor[3] = { 0.0, 0.0, 0.0 };&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  if(this==Flags::Laser)return LaserColor;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  else if(this==Flags::ShockWave)return ShockColor;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  else if(this==Flags::GuidedMissile)return GuideColor;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  else if(this==Flags::Genocide)return GenoCColor;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  else if(endurance==FlagSticky)return BadFlColor;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  else if (flagTeam == NoTeam)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    return superColor;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    return Team::getTankColor(flagTeam);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This colors laser flags red, SW blue, GM yellow, Geno green, and bad flags black. You can also change the colors, or add more flags if you like.&lt;br /&gt;&lt;br /&gt;To identify flags we haven't colored, we will switch identify to be permanently on. To do this, open the file playing.cxx and find these lines of code:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  else if (flagd == Flags::Identify) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    // identify closest flag&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;and oh-so-simply replace it with this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   if (1 || flagd == Flags::Identify) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    // identify closest flag&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Note: Many servers have caught on to this cheat, and have disguised all flags as Phantom Zone. But then again, some haven't, and these cheats are insanely handy. Not to mention, they are pretty subtle.&lt;br /&gt;If you like this cheat, want to critique it, or if these cheats have saved your marriage, leave a comment!&lt;br /&gt;&lt;br /&gt;Have fun with this one.&lt;br /&gt;-Phaz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-1259111954186866997?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/1259111954186866997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=1259111954186866997' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/1259111954186866997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/1259111954186866997'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/07/flag-coloring-and-identify.html' title='Flag Coloring and Identify'/><author><name>phasmophage</name><uri>http://www.blogger.com/profile/16113881903364804638</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm2.static.flickr.com/1437/935360493_ed63f54830.jpg?v=0'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-6308592111453137805</id><published>2007-07-28T22:15:00.000-07:00</published><updated>2007-08-03T13:45:03.705-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='self destruct'/><title type='text'>Instant Self Destruct</title><content type='html'>By: &lt;span style="font-weight: bold;"&gt;Phasmophage&lt;/span&gt;&lt;br /&gt;So, you're in a corner and a guy is about to shoot you. Or maybe he's locked on to you with Guided Missile. Maybe your in range of a Shock Wave.  Either way, this guy's about to kill you, and you know it. So here's a great way to kill yourself instantly and not give that little punk the point, (and totally piss him off while your at it): Instant Self Destruct!&lt;br /&gt;&lt;br /&gt;This is a really simple edit, so open up playing.cxx and find these lines:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  if (destructCountdown &gt; 0.0f) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    const int oldDestructCountdown = (int)(destructCountdown + 0.99f);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    destructCountdown -= dt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    if (destructCountdown &lt;= 0.0f) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      // now actually destruct&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Edit it so it looks like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  if (destructCountdown &gt; 0.0f) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    const int oldDestructCountdown = (int)(destructCountdown + 0.99f);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    destructCountdown -= dt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    if (1 || destructCountdown &lt;= 0.0f) {     destructCountdown = 0.0f; &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;      // now actually destruct&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;And now you can die with dignity!&lt;br /&gt;Alright, so this is one of my more stupid "cheats" but it still has its advantage.&lt;br /&gt;Enjoy it!&lt;br /&gt;-Phaz&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-6308592111453137805?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/6308592111453137805/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=6308592111453137805' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/6308592111453137805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/6308592111453137805'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/07/instant-self-destruct.html' title='Instant Self Destruct'/><author><name>phasmophage</name><uri>http://www.blogger.com/profile/16113881903364804638</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm2.static.flickr.com/1437/935360493_ed63f54830.jpg?v=0'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-120614309040949343</id><published>2007-07-28T21:44:00.000-07:00</published><updated>2007-08-03T13:45:29.425-07:00</updated><title type='text'>Ultimate Pausing</title><content type='html'>By: &lt;span style="font-weight: bold;"&gt;Phasmophage&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Alright now, this is my first real post as a contributor.&lt;br /&gt;&lt;br /&gt;Anyhoo, most of you know that it takes five seconds to pause, and you have to be on the ground or on a building, or else your pause will cancel. Also, after you pause your radar and your HUD (Heads Up Display) go completely blank, not to mention you have no sound. This leaves you vulnerable to being shot by some dude that has been waiting right behind you. Well, no more! With this cheat, you will be able to pause anywhere instantly, and be able to see what's around you. (And it's also really funny to pause in the air right in front of somebody, they'll be thinking "Why is that dude frozen in the air with a bubble around him?")&lt;br /&gt;&lt;br /&gt;First, you'll need to open clientCommands.cxx and find these lines:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    } else if (myTank-&gt;getLocation() == LocalPlayer::InBuilding) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      // custom message when trying to pause while in a building&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      // (could get stuck on un-pause if flag is taken)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      hud-&gt;setAlert(1, "Can't pause while inside a building", 1.0f, false);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    } else if (myTank-&gt;getLocation() == LocalPlayer::InAir) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      // custom message when trying to pause when jumping/falling&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      hud-&gt;setAlert(1, "Can't pause when you are in the air", 1.0f, false);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    } else if (myTank-&gt;getLocation() != LocalPlayer::OnGround &amp;&amp;amp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;           myTank-&gt;getLocation() != LocalPlayer::OnBuilding) { &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      // catch-all message when trying to pause when you should not&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      hud-&gt;setAlert(1, "Unable to pause right now", 1.0f, false);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What these lines do is make sure you're in a valid spot to begin the pause countdown. We don't want that, so what you should do is put a "&lt;span style="font-family:courier new;"&gt;0 &amp;&amp;amp;&lt;/span&gt;" to skip checking, so your code looks like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;     } else if (0 &amp;&amp;amp; myTank-&gt;getLocation() == LocalPlayer::InBuilding) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       // custom message when trying to pause while in a building&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       // (could get stuck on un-pause if flag is taken)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       hud-&gt;setAlert(1, "Can't pause while inside a building", 1.0f, false);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;     } else if (0 &amp;&amp;amp; myTank-&gt;getLocation() == LocalPlayer::InAir) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       // custom message when trying to pause when jumping/falling&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       hud-&gt;setAlert(1, "Can't pause when you are in the air", 1.0f, false);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;     } else if (0 &amp;&amp;amp;amp; myTank-&gt;getLocation() != LocalPlayer::OnGround &amp;&amp;amp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            myTank-&gt;getLocation() != LocalPlayer::OnBuilding) { &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       // catch-all message when trying to pause when you should not&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       hud-&gt;setAlert(1, "Unable to pause right now", 1.0f, false);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now we will make edits to LocalPlayer.cxx&lt;br /&gt;&lt;br /&gt;Find these lines:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  // if paused then boost the reload times by dt (so that, effectively,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  // reloading isn't performed)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  int i;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  if (isPaused()) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    for (i = 0; i &lt;&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      if (shots[i]) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    shots[i]-&gt;boostReloadTime(dt);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;and add a "&lt;span style="font-family:courier new;"&gt;0 &amp;&amp;amp;&lt;/span&gt;" before the isPaused() so the line looks like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  if (0 &amp;&amp;amp; isPaused()) {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This allows you to reload while paused.&lt;br /&gt;&lt;br /&gt;Now we need to make edits in playing.cxx&lt;br /&gt;&lt;br /&gt;Find these lines in the updatePauseCountdown function:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    if (pauseCountdown &lt;= 0.0f) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    pauseCountdown = 0.0f;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We will change this to:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    if (1 || pauseCountdown &lt;= 0.0f) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;     pauseCountdown = 0.0f;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Below these lines you will find some code similar to the ones we edited in clientCommands.cxx:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      if (myTank-&gt;getLocation() == LocalPlayer::InBuilding) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    // custom message when trying to pause while in a building&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    // (could get stuck on un-pause if flag is taken/lost)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    hud-&gt;setAlert(1, "Can't pause while inside a building", 1.0f, false);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      } else if (myTank-&gt;getLocation() == LocalPlayer::InAir) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    // custom message when trying to pause when jumping/falling&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    hud-&gt;setAlert(1, "Can't pause when you are in the air", 1.0f, false);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      } else if (myTank-&gt;getLocation() != LocalPlayer::OnGround &amp;&amp;amp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;         myTank-&gt;getLocation() != LocalPlayer::OnBuilding) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    // catch-all message when trying to pause when you should not&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    hud-&gt;setAlert(1, "Unable to pause right now", 1.0f, false);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      } else if (myTank-&gt;isPhantomZoned() ) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    // custom message when trying to pause while zoned&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    hud-&gt;setAlert(1, "Can't pause when you are in the phantom zone", 1.0f, false);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;after all the "&lt;span style="font-family:courier new;"&gt;if(&lt;/span&gt;" parts we will add "&lt;span style="font-family:courier new;"&gt;0 &amp;&amp;amp;&lt;/span&gt; " to skip the checks. (WARNING: Make sure you don't pause in a building with OO or PZ because you will lose the flag, and you may be stuck. Make sure you have the proper cheats to get out of it.) The edited code should look like this:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       if (0 &amp;&amp;amp; myTank-&gt;getLocation() == LocalPlayer::InBuilding) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;     // custom message when trying to pause while in a building&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;     // (could get stuck on un-pause if flag is taken/lost)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;     hud-&gt;setAlert(1, "Can't pause while inside a building", 1.0f, false);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       } else if (0 &amp;&amp;amp; myTank-&gt;getLocation() == LocalPlayer::InAir) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;     // custom message when trying to pause when jumping/falling&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;     hud-&gt;setAlert(1, "Can't pause when you are in the air", 1.0f, false);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       } else if (0 &amp;&amp;amp;amp; myTank-&gt;getLocation() != LocalPlayer::OnGround &amp;&amp;amp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;          myTank-&gt;getLocation() != LocalPlayer::OnBuilding) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;     // catch-all message when trying to pause when you should not&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;     hud-&gt;setAlert(1, "Unable to pause right now", 1.0f, false);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       } else if (0 &amp;&amp;amp; myTank-&gt;isPhantomZoned() ) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;     // custom message when trying to pause while zoned&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;     hud-&gt;setAlert(1, "Can't pause when you are in the phantom zone", 1.0f, false);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You'll also find these lines, which turn off the sound:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    // turn off the sound&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    if (savedVolume == -1) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      savedVolume = getSoundVolume();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      setSoundVolume(0);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You can basically delete it or comment it out so it looks like this:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    // turn off the sound&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    /*if (savedVolume == -1) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      savedVolume = getSoundVolume();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      setSoundVolume(0);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    }*/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now, to see the radar while paused, find these lines:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  if (radar) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    const bool showBlankRadar = !myTank || (myTank &amp;&amp;amp; myTank-&gt;isPaused()); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    const bool observer = myTank &amp;&amp;amp; (myTank-&gt;getTeam() == ObserverTeam);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    radar-&gt;render(*sceneRenderer, showBlankRadar, observer);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And edit the second line so it looks like this:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    const bool showBlankRadar = !myTank; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Finally, to see out the HUD while paused, find these lines:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    // turn blanking and inversion on/off as appropriate&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    sceneRenderer-&gt;setBlank(myTank &amp;&amp;amp; (myTank-&gt;isPaused() ||&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                       myTank-&gt;getFlag() == Flags::Blindness));&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And you can delete it or comment it out, so it looks like this:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    // turn blanking and inversion on/off as appropriate&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//    sceneRenderer-&gt;setBlank(myTank &amp;&amp;amp; (myTank-&gt;isPaused() ||&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;//                       myTank-&gt;getFlag() == Flags::Blindness));&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And this should let you pause anywhere instantly and see out the radar, the HUD, hear sounds while paused.&lt;br /&gt;&lt;br /&gt;Tell me what you think,&lt;br /&gt;-Phaz&lt;br /&gt;Have fun!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-120614309040949343?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/120614309040949343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=120614309040949343' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/120614309040949343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/120614309040949343'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/07/ultimate-pausing.html' title='Ultimate Pausing'/><author><name>phasmophage</name><uri>http://www.blogger.com/profile/16113881903364804638</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://farm2.static.flickr.com/1437/935360493_ed63f54830.jpg?v=0'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-5496133512440951095</id><published>2007-07-27T23:11:00.000-07:00</published><updated>2007-07-27T23:29:24.664-07:00</updated><title type='text'>View Radar on Maps without Radar</title><content type='html'>By: &lt;b&gt;Phasmophage&lt;/b&gt; (aka "Phaz")&lt;br /&gt;&lt;br /&gt;Here's a sweet little number that you won't want to pass up... How would you like radar on those maps without radar? Now you can have an advantage over with tanks by having access to your radar on maps that don't allow it! As Phaz tells us:&lt;br /&gt;&lt;br /&gt;"On maps with no radar, the radar limit is set to 0 or a negative number. This will fix it to the correct number, the size of the world. So now no more hide and seek!"&lt;br /&gt;&lt;br /&gt;For this, we visit RadarRenderer.cxx in /src/bzflag/ of the extracted source. Start by searching for "void RadarRenderer::render(SceneRenderer&amp;" and you will come to this section:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;void RadarRenderer::render(SceneRenderer&amp; renderer, bool blank, bool observer)&lt;br /&gt;{&lt;br /&gt;  RenderNode::resetTriangleCount();&lt;br /&gt;&lt;br /&gt;  const float radarLimit = BZDBCache::radarLimit;&lt;br /&gt;  if (!BZDB.isTrue("displayRadar") || (radarLimit &lt;= 0.0f)) {&lt;br /&gt;    triangleCount = 0;&lt;br /&gt;    return;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;First, look at this line from above: &lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  const float radarLimit = BZDBCache::radarLimit; &lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Change that line to this: &lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  float test = BZDBCache::radarLimit; &lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Below that, you will see this line: &lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  if (!BZDB.isTrue("displayRadar") || (radarLimit &lt;= 0.0f)) { &lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Change that line to this: &lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  if(test&lt;=0.0) { &lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Next, you will see this line: &lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;    triangleCount = 0; &lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Change that line to this: &lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;    test = BZDB.eval(StateDatabase::BZDB_WORLDSIZE); &lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;The next line you see is this: &lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;    return; &lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Change it to this (all one, single line): &lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;    BZDB.setFloat(StateDatabase::BZDB_RADARLIMIT, BZDB.eval(StateDatabase::BZDB_WORLDSIZE)); &lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;On the next line, you will see this: &lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  }&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt; &lt;br /&gt;Directly below the "}" (vertically aligned), add this line: &lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  const float radarLimit = test; &lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;So that the two lines together look like this: &lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  } &lt;br /&gt;  const float radarLimit = test; &lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;The entire edit should like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;void RadarRenderer::render(SceneRenderer&amp; renderer, bool blank, bool observer)&lt;br /&gt;{&lt;br /&gt;  RenderNode::resetTriangleCount();&lt;br /&gt;&lt;br /&gt;  float test = BZDBCache::radarLimit;&lt;br /&gt;  if(test&lt;=0.0) {&lt;br /&gt;    test = BZDB.eval(StateDatabase::BZDB_WORLDSIZE);&lt;br /&gt;    BZDB.setFloat(StateDatabase::BZDB_RADARLIMIT, BZDB.eval(StateDatabase::BZDB_WORLDSIZE));&lt;br /&gt;  }&lt;br /&gt;  const float radarLimit = test;&lt;br /&gt;  // render the frame&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Save the file, compile your client, and you're done. To view Phasmophage's original instructions, read his &lt;a href="https://www.blogger.com/comment.g?blogID=20153205&amp;postID=5782401570233241590"&gt;comment&lt;/a&gt; to "HOWTO: See Invisible Bullets and Actual Colors on Radar" at the blog &lt;a href="http://bzflagcheat.blogspot.com/"&gt;Cheating BZFlag&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;As always...&lt;br /&gt;&lt;br /&gt;Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-5496133512440951095?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/5496133512440951095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=5496133512440951095' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/5496133512440951095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/5496133512440951095'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/07/view-radar-on-maps-without-radar.html' title='View Radar on Maps without Radar'/><author><name>CRW</name><uri>http://www.blogger.com/profile/16469342749811241765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-7184108444524596354</id><published>2007-07-27T22:38:00.000-07:00</published><updated>2007-07-27T23:08:48.854-07:00</updated><title type='text'>See Invisible Bullets and Actual Colors on Radar</title><content type='html'>By: &lt;b&gt;Phasmophage&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;You may recall our previous post about being able to see Stealth tanks on radar. That's useful, we can do more to make ouur radar even more powerful. With this tip from Phasmophage, we can add the ability to see Invisible Bullets and see the actual tank colors of tanks when we have the Colorblindness flag.&lt;br /&gt;&lt;br /&gt;For this, we're revisiting RadarRenderer.cxx in /src/bzflag/ of the extracted source. Search for "if (shot &amp;&amp; (shot-&gt;getFlag() !=" and you will find this line:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;        if (shot &amp;&amp; (shot-&gt;getFlag() != Flags::InvisibleBullet || iSeeAll)) {&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Remove "&amp;&amp; (shot-&gt;getFlag() != Flags::InvisibleBullet || iSeeAll)" so that the edited line looks like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;        if (shot) {&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Look at this entire section now (includes edited line from above):&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;        if (shot) {&lt;br /&gt;          const float *shotcolor;&lt;br /&gt;          if (coloredShot) {&lt;br /&gt;            if (myTank-&gt;getFlag() == Flags::Colorblindness)&lt;br /&gt;              shotcolor = Team::getRadarColor(RogueTeam,rabbitMode);&lt;br /&gt;            else&lt;br /&gt;              shotcolor = Team::getRadarColor(player-&gt;getTeam(),rabbitMode);&lt;br /&gt;            const float cs = colorScale(shot-&gt;getPosition()[2], muzzleHeight);&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Notice the fourth line in particular:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;            if (myTank-&gt;getFlag() == Flags::Colorblindness)&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Let's remove the "== Flags::Colorblindness" so that the line now reads like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;            if (myTank-&gt;getFlag())&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Next, remove this line:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;              shotcolor = Team::getRadarColor(RogueTeam,rabbitMode);&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;... and this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;            else&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;... so that the modified section should now read like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;        if (shot) {&lt;br /&gt;          const float *shotcolor;&lt;br /&gt;          if (coloredShot) {&lt;br /&gt;            if (myTank-&gt;getFlag())&lt;br /&gt;              shotcolor = Team::getRadarColor(player-&gt;getTeam(),rabbitMode);&lt;br /&gt;            const float cs = colorScale(shot-&gt;getPosition()[2], muzzleHeight);&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Save the file, compile your client, and you're done! To view Phasmophage's original instructions, take a look at his &lt;a href="https://www.blogger.com/comment.g?blogID=20153205&amp;postID=8754616353137705503"&gt;comment&lt;/a&gt; to "HOWTO: Reverse While Sealed with Oscillation Overthruster" at the blog &lt;a href="http://bzflagcheat.blogspot.com/"&gt;Cheating BZFlag&lt;/a&gt; as well as the &lt;a href="https://www.blogger.com/comment.g?blogID=20153205&amp;postID=5782401570233241590"&gt;update&lt;/a&gt; comment to the post, "HOWTO: See Invisible Bullets and Actual Colors on Radar".&lt;br /&gt;&lt;br /&gt;As always...&lt;br /&gt;&lt;br /&gt;Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-7184108444524596354?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/7184108444524596354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=7184108444524596354' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/7184108444524596354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/7184108444524596354'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/07/see-invisible-bullets-and-actual-colors.html' title='See Invisible Bullets and Actual Colors on Radar'/><author><name>CRW</name><uri>http://www.blogger.com/profile/16469342749811241765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-2752174936986401934</id><published>2007-07-27T22:08:00.000-07:00</published><updated>2007-07-28T00:35:30.591-07:00</updated><title type='text'>Always See Actual Tank Colors</title><content type='html'>By: &lt;b&gt;Phasmophage&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Here's an edit that will allow you to see the actual tank color of players even if they have Masquerade and/or if you have Colorblindness. For this, we will go to playing.cxx in /src/bzflag/ of the extracted source. Search for "const bool colorblind = (myTank-&gt;getFlag()", and you will come to this section:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;          const bool colorblind = (myTank-&gt;getFlag() == Flags::Colorblindness);&lt;br /&gt;          player[i]-&gt;addShots(scene, colorblind);&lt;br /&gt;&lt;br /&gt;          TeamColor effectiveTeam = RogueTeam;&lt;br /&gt;          if (!colorblind){&lt;br /&gt;            if ((player[i]-&gt;getFlag() == Flags::Masquerade)&lt;br /&gt;                &amp;&amp; (myTank-&gt;getFlag() != Flags::Seer)&lt;br /&gt;                &amp;&amp; (myTank-&gt;getTeam() != ObserverTeam)) {&lt;br /&gt;              effectiveTeam = myTank-&gt;getTeam();&lt;br /&gt;            }&lt;br /&gt;            else {&lt;br /&gt;              effectiveTeam = player[i]-&gt;getTeam();&lt;br /&gt;            }&lt;br /&gt;          }&lt;br /&gt;&lt;br /&gt;          const bool inCockpt  = ROAM.isRoaming() &amp;&amp; !devDriving &amp;&amp;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Look at the first line. Replace "(myTank-&gt;getFlag() == Flags::Colorblindness);&lt;br /&gt;player[i]-&gt;addShots(scene, colorblind)" with "false" so that the edited line looks like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;          const bool colorblind = false;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Next, look at the line "TeamColor effectiveTeam = RogueTeam;". Replace "RogueTeam" with "player[i]-&gt;getTeam()" so that the edited line looks like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;          TeamColor effectiveTeam = player[i]-&gt;getTeam();&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Remove the lines between the line above and "const bool inCockpt  = ROAM.isRoaming() &amp;&amp; !devDriving &amp;&amp;" so that the section will look like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;          TeamColor effectiveTeam = player[i]-&gt;getTeam();&lt;br /&gt;   &lt;br /&gt;          const bool inCockpt  = ROAM.isRoaming() &amp;&amp; !devDriving &amp;&amp;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;The entire edited section should now look like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;          const bool colorblind = false;&lt;br /&gt;          player[i]-&gt;addShots(scene, colorblind);&lt;br /&gt;&lt;br /&gt;          TeamColor effectiveTeam = player[i]-&gt;getTeam();&lt;br /&gt;   &lt;br /&gt;          const bool inCockpt  = ROAM.isRoaming() &amp;&amp; !devDriving &amp;&amp;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;As Phasmophage said it, "This should color masqueraded tanks correctly, and take out some of the effects of colorblindness."&lt;br /&gt;&lt;br /&gt;Save the file, compile your new client, and you're done. To view Phasmophage's original instructions, read his &lt;a href="https://www.blogger.com/comment.g?blogID=20153205&amp;postID=8754616353137705503"&gt;comment&lt;/a&gt; to "HOWTO: Reverse While Sealed with Oscillation Overthruster" from the blog &lt;a href="http://bzflagcheat.blogspot.com"&gt;Cheating BZFlag&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;And,...&lt;br /&gt;&lt;br /&gt;Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-2752174936986401934?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/2752174936986401934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=2752174936986401934' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/2752174936986401934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/2752174936986401934'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/07/always-see-actual-tank-colors.html' title='Always See Actual Tank Colors'/><author><name>CRW</name><uri>http://www.blogger.com/profile/16469342749811241765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-3448624126686536459</id><published>2007-07-27T21:08:00.000-07:00</published><updated>2007-08-04T23:51:08.364-07:00</updated><title type='text'>Reverse While Sealed with Oscillation Overthruster</title><content type='html'>By: Phaz&lt;br /&gt;&lt;br /&gt;Tired of not being able to reverse into a building with your Oscillation Overthruster (OO) flag? If you poke out of a building to take a shot, can only back into the building by jumping backward which leaves you vulnerable. Or, let's say that you are sealed in a thin wall. If you want to backtrack, you will have to leave the safety of the building to turn around.&lt;br /&gt;&lt;br /&gt;No longer!&lt;br /&gt;&lt;br /&gt;Thanks to this tip from Phaz, you can back up while sealed with OO! Now you can pull out, snipe your shot, and simply back up into the safety of the building (or other obstacle where you can be sealed). That is, you are no longer limited to driving only in the forward direction.&lt;br /&gt;&lt;br /&gt;For this edit, we are going to open LocalPlayer.cxx in /src/bzflag/ of the extracted source. First let's edit the sections that prevent us from being able to back up while sealed. Search for "if (expelled &amp;&amp; phased)", and you will this section:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  if (expelled &amp;&amp; phased)&lt;br /&gt;    expelled = (obstacle-&gt;getType() == WallObstacle::getClassName() ||&lt;br /&gt;  obstacle-&gt;getType() == Teleporter::getClassName() ||&lt;br /&gt;  (getFlag() == Flags::OscillationOverthruster &amp;&amp; desiredSpeed &lt; 0.0f &amp;&amp;&lt;br /&gt;   p[2] == 0.0f));&lt;br /&gt;  return obstacle; &lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Remove The following from above:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;                                                                &lt;br /&gt;                                                                  ||&lt;br /&gt;  (getFlag() == Flags::OscillationOverthruster &amp;&amp; desiredSpeed &lt; 0.0f &amp;&amp;&lt;br /&gt;   p[2] == 0.0f));&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;The section should now read like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  if (expelled &amp;&amp; phased)&lt;br /&gt;    expelled = (obstacle-&gt;getType() == WallObstacle::getClassName() ||&lt;br /&gt;  obstacle-&gt;getType() == Teleporter::getClassName());&lt;br /&gt;  return obstacle;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Next, search for "if (expelled &amp;&amp; phased)" again, and you will find this section:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  if (expelled &amp;&amp; phased)&lt;br /&gt;    expelled = (obstacle-&gt;getType() == WallObstacle::getClassName() ||&lt;br /&gt;  obstacle-&gt;getType() == Teleporter::getClassName() ||&lt;br /&gt;  (hasOOflag &amp;&amp; desiredSpeed &lt; 0.0f &amp;&amp; p[2] == 0.0f));&lt;br /&gt;&lt;br /&gt;  if (obstacle != NULL) {&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Remove the following from above:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;                                                                 ||&lt;br /&gt;  (hasOOflag &amp;&amp; desiredSpeed &lt; 0.0f &amp;&amp; p[2] == 0.0f));&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;The section should now read like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;if (expelled &amp;&amp;amp; phased)&lt;br /&gt;  expelled = (obstacle-&gt;getType() == WallObstacle::getClassName() ||&lt;br /&gt;              obstacle-&gt;getType() == Teleporter::getClassName());&lt;br /&gt;&lt;br /&gt;if (obstacle != NULL) {&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Lastly, search for "oscillation overthruster tank in building can't" and you will find this section:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  else if (fracOfMaxSpeed &lt; -0.5f) fracOfMaxSpeed = -0.5f;&lt;br /&gt;&lt;br /&gt;  // oscillation overthruster tank in building can't back up&lt;br /&gt;  if (fracOfMaxSpeed &lt; 0.0f &amp;&amp; getLocation() == InBuilding &amp;&amp;&lt;br /&gt;      flag == Flags::OscillationOverthruster) {&lt;br /&gt;    fracOfMaxSpeed = 0.0f;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  // boost speed for certain flags&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Let's remove the portion about not being able to back up in a building so that the edited section now reads like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  else if (fracOfMaxSpeed &lt; -0.5f) fracOfMaxSpeed = -0.5f;&lt;br /&gt;&lt;br /&gt;  // boost speed for certain flags&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Save the file, compile your new client, and you're done!  For Phaz's original instructions, see his &lt;a href="https://www.blogger.com/comment.g?blogID=20153205&amp;postID=6835028000761666152"&gt;comment&lt;/a&gt; to "HOWTO: Drop Bad Flags Instantly"at &lt;a href="http://bzflagcheat.blogspot.com/"&gt;Cheating BZFlag&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Keep these tips rolling in! And as always...&lt;br /&gt;&lt;br /&gt;Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-3448624126686536459?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/3448624126686536459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=3448624126686536459' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/3448624126686536459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/3448624126686536459'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/07/reverse-while-sealed-with-oscillation.html' title='Reverse While Sealed with Oscillation Overthruster'/><author><name>CRW</name><uri>http://www.blogger.com/profile/16469342749811241765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-1685792822907526429</id><published>2007-07-27T20:27:00.000-07:00</published><updated>2007-07-27T21:03:27.711-07:00</updated><title type='text'>Respawn Instantly</title><content type='html'>Brought to you by blogger, &lt;span style="font-weight: bold;"&gt;Someone&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Someone actually brought this to us a while back, and I apologize for taking so long to post it. Anyway, here's a tip that will allow you to respawn instantly after exploding. In LocalPlayer.cxx (in /src/bzflag/ of the extracted source), search for "else if (location == Exploding)" and you will find this section:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;    } else if (location == Exploding) {&lt;br /&gt;      // see if explosing time has expired&lt;br /&gt;      if (lastTime - getExplodeTime() &gt;= BZDB.eval(StateDatabase::BZDB_EXPLODETIME)) {&lt;br /&gt;        dt -= float((lastTime - getExplodeTime()) - BZDB.eval(StateDatabase::BZDB_EXPLODETIME));&lt;br /&gt;        if (dt &lt; 0.0f) {&lt;br /&gt;          dt = 0.0f;&lt;br /&gt;        }&lt;br /&gt;        setStatus(PlayerState::DeadStatus);&lt;br /&gt;        location = Dead;&lt;br /&gt;        if (isAutoPilot()) {&lt;br /&gt;          CMDMGR.run("restart");&lt;br /&gt;        }&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      // can't control explosion motion&lt;br /&gt;      newVelocity[2] += BZDBCache::gravity * dt;&lt;br /&gt;      newAngVel = 0.0f; // or oldAngVel to spin while exploding&lt;br /&gt;    } else if ((location == OnGround) || (location == OnBuilding) ||&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;First, let's look at the first through tenth lines from above:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;    } else if (location == Exploding) {&lt;br /&gt;      // see if explosing time has expired&lt;br /&gt;      if (lastTime - getExplodeTime() &gt;= BZDB.eval(StateDatabase::BZDB_EXPLODETIME)) {&lt;br /&gt;        dt -= float((lastTime - getExplodeTime()) - BZDB.eval(StateDatabase::BZDB_EXPLODETIME));&lt;br /&gt;        if (dt &lt; 0.0f) {&lt;br /&gt;          dt = 0.0f;&lt;br /&gt;        }&lt;br /&gt;        setStatus(PlayerState::DeadStatus);&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Let's remove the second through seventh lines so that it now reads like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;    } else if (location == Exploding) {&lt;br /&gt;      setStatus(PlayerState::DeadStatus);&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Next, notice this section:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt; setStatus(PlayerState::DeadStatus);&lt;br /&gt; location = Dead;&lt;br /&gt; if (isAutoPilot()) {&lt;br /&gt;   CMDMGR.run("restart");&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Let's remove "location = Dead;" and "if (isAutoPilot()) {". Below the line "location = Dead;", add the following:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;      LocalPlayer *myTank = LocalPlayer::getMyTank();&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Below that line, add this line:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;      myTank-&gt;setJumpPressed(false);&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;The above edits should now read like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;      setStatus(PlayerState::DeadStatus);&lt;br /&gt;      LocalPlayer *myTank = LocalPlayer::getMyTank();&lt;br /&gt;      myTank-&gt;setJumpPressed(false);      &lt;br /&gt;      CMDMGR.run("restart");&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Next, notice this section:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;          CMDMGR.run("restart");&lt;br /&gt;        }&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;      // can't control explosion motion&lt;br /&gt;      newVelocity[2] += BZDBCache::gravity * dt;&lt;br /&gt;      newAngVel = 0.0f; // or oldAngVel to spin while exploding&lt;br /&gt;    } else if ((location == OnGround) || (location == OnBuilding) ||&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Let's remove the lines between "CMDMGR.run("restart");" and " } else if ((location == OnGround) || (location == OnBuilding) ||" so that the section now reads like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;      CMDMGR.run("restart");&lt;br /&gt;    } else if ((location == OnGround) || (location == OnBuilding) ||&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;All of the above edits should now look like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;    } else if (location == Exploding) {&lt;br /&gt;      setStatus(PlayerState::DeadStatus);&lt;br /&gt;      LocalPlayer *myTank = LocalPlayer::getMyTank();&lt;br /&gt;      myTank-&gt;setJumpPressed(false);      &lt;br /&gt;      CMDMGR.run("restart");&lt;br /&gt;    } else if ((location == OnGround) || (location == OnBuilding) ||&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;When you are finished, compile your client and you're done. To view Someone's original instructions, read his &lt;a href="https://www.blogger.com/comment.g?blogID=20153205&amp;amp;postID=6835028000761666152"&gt;comment&lt;/a&gt; to "HOWTO: Drop Bad Flags Instantly" at the original blog, &lt;a href="http://bzflagcheat.blogspot.com/"&gt;Cheating BZFlag&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;As always...&lt;br /&gt;&lt;br /&gt;Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-1685792822907526429?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/1685792822907526429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=1685792822907526429' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/1685792822907526429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/1685792822907526429'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/07/respawn-instantly.html' title='Respawn Instantly'/><author><name>CRW</name><uri>http://www.blogger.com/profile/16469342749811241765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-8410584261108398097</id><published>2007-07-27T18:47:00.000-07:00</published><updated>2007-07-27T19:05:58.892-07:00</updated><title type='text'>Drop Bad Flags Like Regular Flags</title><content type='html'>By: &lt;span style="font-weight: bold;"&gt;Phaz&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You may recall our earlier post about how to how to drop bad flags instantly. With that edit, you drop a bad flag as soon as you pick it up. You may not always want to do that especially on servers that do not allow players to drop bad flags since you may bring suspicion to yourself.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;TIP&lt;/span&gt;: If you are not interested in cheating... On servers where dropping bad flags is not allowed, you can usually take advantage of the drop flag after pausing feature of BZFlag to drop your bad flag. Simply pause, and your flag will drop after a few seconds.&lt;br /&gt;&lt;br /&gt;As an alternative to dropping bad flags instantly, Phaz has a simple edit for us that will allow a player to drop a bad flag like a regular flag. For this, we are going to edit clientCommands.cxx in /src/bzflag of the extracted source. Search for "flag-&gt;endurance != FlagSticky" and you will find this section:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;    if ((flag != Flags::Null) &amp;&amp; !myTank-&gt;isPaused() &amp;&amp;&lt;br /&gt;        (flag-&gt;endurance != FlagSticky) &amp;&amp; !myTank-&gt;isPhantomZoned() &amp;&amp;&lt;br /&gt;        !(flag == Flags::OscillationOverthruster &amp;&amp;&lt;br /&gt;          myTank-&gt;getLocation() == LocalPlayer::InBuilding)) {&lt;br /&gt;      serverLink-&gt;sendDropFlag(myTank-&gt;getPosition());&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;In particular, notice the second line:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;        (flag-&gt;endurance != FlagSticky) &amp;&amp; !myTank-&gt;isPhantomZoned() &amp;&amp;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Remove "(flag-&gt;endurance != FlagSticky) &amp;&amp;" so that the line now reads like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;        !myTank-&gt;isPhantomZoned() &amp;&amp;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Save the file, compile the client, and you're done! To see Phaz's original instructions, read his &lt;a href="https://www.blogger.com/comment.g?blogID=20153205&amp;postID=6835028000761666152"&gt;comment &lt;/a&gt;to HOWTO: Drop Bad Flags Instantly at &lt;a href="http://bzflagcheat.blogspot.com/"&gt;Cheating BZFlag&lt;/a&gt;. As always...&lt;br /&gt;&lt;br /&gt;Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-8410584261108398097?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/8410584261108398097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=8410584261108398097' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/8410584261108398097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/8410584261108398097'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/07/by-phaz-you-may-recall-our-earlier-post.html' title='Drop Bad Flags Like Regular Flags'/><author><name>CRW</name><uri>http://www.blogger.com/profile/16469342749811241765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-3196091192792006591</id><published>2007-07-27T18:29:00.000-07:00</published><updated>2007-07-27T18:44:36.604-07:00</updated><title type='text'>Drop Bad Flags Instantly</title><content type='html'>By: &lt;span style="font-weight: bold;"&gt;Lord Jesus&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Bad flags are annoying, are they not? This is especially true in situations such as grabbing Jamming when your opponent has Cloaking. And those time limits! On servers with bad flag drop such as 15 seconds or more, waiting can be ever so dull. Wide Angle isn't so awfully bad if you get used being able to utilize it; but, let's face it; there are certainly other more desirable flags.&lt;br /&gt;&lt;br /&gt;Here's an edit that will allow you to drop bad flags instantly even on servers that do not allow dropping of bad flags (an added bonus). Most players probably won't notice; however, there is a chance that the more experienced players might very well notice -- even if after a while -- as well as administrators especially if they're already monitoring you out of suspicion.&lt;br /&gt;&lt;br /&gt;Open LocalPlayer.cxx in the /src/bzflag/ directory of the extracted source, and find the following lines:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  // drop bad flag if timeout has expired&lt;br /&gt;  if (!isPaused() &amp;&amp; dt &gt; 0.0f &amp;&amp; World::getWorld()-&gt;allowShakeTimeout() &amp;&amp;&lt;br /&gt;      getFlag() != Flags::Null &amp;&amp; getFlag()-&gt;endurance == FlagSticky &amp;&amp;&lt;br /&gt;      flagShakingTime &gt; 0.0f) {&lt;br /&gt;    flagShakingTime -= dt;&lt;br /&gt;    if (flagShakingTime &lt;= 0.0f) {&lt;br /&gt;      flagShakingTime = 0.0f;&lt;br /&gt;      server-&gt;sendDropFlag(getPosition());&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;First, look at the second line:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  if (!isPaused() &amp;&amp; dt &gt; 0.0f &amp;&amp; World::getWorld()-&gt;allowShakeTimeout() &amp;&amp;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Let's remove "World::getWorld()-&gt;allowShakeTimeout() &amp;&amp;amp;" so that it reads like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  if (!isPaused() &amp;&amp; dt &gt; 0.0f &amp;&amp;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Next, let's look at the fifth line:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;    flagShakingTime -= dt;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Let's change "-= dt" to "= 0.0f" so that the line reads like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;    flagShakingTime = 0.0f;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;The above will allow you to drop bad flags instantly on servers that allow for dropping of bad flags. To be able to drop flags on servers that don't allow dropping, we need to edit elsewhere. Take note, however, that experienced players will most likely notice your dropping bad flags if you are playing on a server that doesn't allow it. To add the ability, find the following lines:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  // if it's bad then reset countdowns and set antidote flag&lt;br /&gt;  if (getFlag() != Flags::Null &amp;&amp; getFlag()-&gt;endurance == FlagSticky) {&lt;br /&gt;    if (World::getWorld()-&gt;allowShakeTimeout())&lt;br /&gt;      flagShakingTime = World::getWorld()-&gt;getFlagShakeTimeout();&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Look at the third line:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;    if (World::getWorld()-&gt;allowShakeTimeout())&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Remove "-&gt;allowShakeTimeout()" so that it reads like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;    if (World::getWorld())&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Next, let's look at the fourth line:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;      flagShakingTime = World::getWorld()-&gt;getFlagShakeTimeout();&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Replace "= World::getWorld()-&gt;getFlagShakeTimeout();" with "= 0.05f;" so that it reads like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;      flagShakingTime = 0.05f;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;I originally tried the number to "0.0f". When I tested it on my server not allowing bad flag dropping, and no win limit, it didn't work; I picked up a bad flag and it didn't drop. So, 0.05f "works". All of this tip works even if there are easier and/or more efficient ways of accomplishing the same ends :)&lt;br /&gt;&lt;br /&gt;When you're finished, save your file, compile your new client, and...&lt;br /&gt;&lt;br /&gt;Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-3196091192792006591?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/3196091192792006591/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=3196091192792006591' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/3196091192792006591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/3196091192792006591'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/07/drop-bad-flags-instantly.html' title='Drop Bad Flags Instantly'/><author><name>CRW</name><uri>http://www.blogger.com/profile/16469342749811241765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-2312720916070362923</id><published>2007-07-27T02:38:00.000-07:00</published><updated>2007-07-27T18:27:25.931-07:00</updated><title type='text'>Speed Hacking</title><content type='html'>Brought to you by: &lt;span style="font-weight: bold;"&gt;Felipe&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here are some tips that will allow you to get the most of your tank's speed without having to depend on the high speed flag. You can optionally add quick turn to your tank, as well. Even without extreme speed, and handful of servers may kick you. Most won't at the time of this post. A few more servers may kick you for extreme speed. Nevertheless, you will enjoy always being able to chase down other tanks...&lt;br /&gt;&lt;br /&gt;Open LocalPlayer.cxx in /src/bzflag/ of the extracted source. With your favorite text editor, find the following lines:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt; // boost speed for certain flags&lt;br /&gt; if (flag == Flags::Velocity) {&lt;br /&gt;   fracOfMaxSpeed *= BZDB.eval(StateDatabase::BZDB_VELOCITYAD);&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Look at the first line. Remove the "== Flags::Velocity" so that this section reads like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt; // boost speed for certain flags&lt;br /&gt; if (flag) {&lt;br /&gt;   fracOfMaxSpeed *= BZDB.eval(StateDatabase::BZDB_VELOCITYAD);&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;This will give you high speed regardless of flag save Thief and Burrow. Additionally, you will see further down these lines:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  } else if ((flag == Flags::Burrow) &amp;&amp; (getPosition()[2] &lt; 0.0f)) {&lt;br /&gt;    fracOfMaxSpeed *= BZDB.eval(StateDatabase::BZDB_BURROWSPEEDAD);&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;You can change "BZDB_BURROWSPEEDAD" to "BZDB_VELOCITYAD" so that the lines read like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  } else if ((flag == Flags::Burrow) &amp;&amp; (getPosition()[2] &lt; 0.0f)) {&lt;br /&gt;    fracOfMaxSpeed *= BZDB.eval(StateDatabase::BZDB_VELOCITYAD);&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;This will give you high speed with Burrow. You can also play around some of these variables. For example, I substituted "BZDB_BURROWSPEEDAD" and "BZDB_VELOCITYAD" with "BZDB_THIEFVELAD" so that I could drive at the speed of Thief on my own server. Some servers will undoubtedly kick you for driving too fast when you drive at Thief speed without Thief... but then, some won't :)&lt;br /&gt;&lt;br /&gt;For &lt;span style="font-weight: bold;"&gt;E&lt;span style="font-size:180%;"&gt;X&lt;/span&gt;TREME&lt;/span&gt; speed, find the following lines:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt; // can't go faster forward than at top speed, and backward at half speed&lt;br /&gt; if (fracOfMaxSpeed &gt; 1.0f) fracOfMaxSpeed = 1.0f;&lt;br /&gt; else if (fracOfMaxSpeed &lt; -0.5f) fracOfMaxSpeed = -0.5f; &lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Change the numbers so that the section now reads like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt; // can't go faster forward than at top speed, and backward at half speed&lt;br /&gt; if (fracOfMaxSpeed &gt; 0.0f) fracOfMaxSpeed = 9.0f;&lt;br /&gt; else if (fracOfMaxSpeed &lt; 0.0f) fracOfMaxSpeed = -9.0f;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Again, play around with the numbers to find a speed that you like. Naturally, you will stick out like a sore thumb when you drive so unbelievably faster than everyone else. Hehehe...&lt;br /&gt;&lt;br /&gt;For the original instructions, see Felipe's &lt;a href="https://www.blogger.com/comment.g?blogID=20153205&amp;postID=7769772869173477032"&gt;comments&lt;/a&gt; to Flying Without Wings &amp;amp; Extended Jumping at the original &lt;a href="http://bzflagcheat.blogspot.com/"&gt;Cheating BZFlag&lt;/a&gt; blog. When you're finished, save the file, compile your new client, and ...&lt;br /&gt;&lt;br /&gt;Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-2312720916070362923?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/2312720916070362923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=2312720916070362923' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/2312720916070362923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/2312720916070362923'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/07/speed-hacking.html' title='Speed Hacking'/><author><name>CRW</name><uri>http://www.blogger.com/profile/16469342749811241765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-126989093305729524</id><published>2007-07-27T02:22:00.000-07:00</published><updated>2007-07-27T02:27:07.873-07:00</updated><title type='text'>Quick Turn Always</title><content type='html'>Brought to you by: &lt;span style="font-weight: bold;"&gt;Felipe&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here's a simple edit that will allow you to have Quick Turn at all times without the Quick Turn Flag. Find the following lines of LocalPlayer.cxx in the /src/bzflag/ directory of the extracted source:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  // boost turn speed for other flags&lt;br /&gt;  if (flag == Flags::QuickTurn) {&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Remove "== Flags::QuickTurn" so that the lines read like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  // boost turn speed for other flags&lt;br /&gt;  if (flag) {&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;For the original instructions, see Felipe's &lt;a href="https://www.blogger.com/comment.g?blogID=20153205&amp;postID=7769772869173477032"&gt;comments&lt;/a&gt; to Flying Without Wings &amp;amp; Extended Jumping at the original &lt;a href="http://bzflagcheat.blogspot.com/"&gt;Cheating BZFlag&lt;/a&gt; blog. When you're finished, save the file, compile your new client, and ...&lt;br /&gt;&lt;br /&gt;Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-126989093305729524?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/126989093305729524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=126989093305729524' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/126989093305729524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/126989093305729524'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/07/quick-turn-always.html' title='Quick Turn Always'/><author><name>CRW</name><uri>http://www.blogger.com/profile/16469342749811241765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-9154809643600360351</id><published>2007-07-27T01:50:00.000-07:00</published><updated>2007-07-27T02:18:29.288-07:00</updated><title type='text'>Fly Without Wings &amp; Improved Jumping</title><content type='html'>Brought to you by: &lt;span style="font-weight: bold;"&gt;Felipe&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Scenario: You and another tank are jumping and shooting at one another. Wouldn't it be nice to be able to slide in one more jump in mid air? Now you can! You can 1-up those annoying players who keep coming at you with Wings. What's cool is that you are not limited to any number of jumps, and this can be especially useful on servers with Wings flap limits ;) But, this tip doesn't stop there...&lt;br /&gt;&lt;br /&gt;You can jump no matter what -- regardless of whether or not the server allows jumping (the good folks at Hepcat will love you for it, hehehe...), or if you have the Burrow flag, or even if you have the No Jumping flag! When Burrowed, the jump isn't instantaneous, so you will need to press and hold jump to get airborne. And, it doesn't matter if you are sealed in a building with Oscillation Overthruster. Now, you can jump from inside a building to pick off players who think that they are safe by staying top of your building . Muwahahahaha! &gt;:)&lt;br /&gt;&lt;br /&gt;Not only all of that, but you can also control your tank in the air while jumping.  And, you can fly regardless of what flag you have! Imagine being able to fly high to target a Winged tank with your guided missile... or shockwave in air. Or, on a CTF server with no jumping allowed, you can place your team's flag on top of a pillar since the other team won't be able to jump up to get it &gt;:) The possibilities are practically endless... See the comments to this post to see how this was updated.&lt;br /&gt;&lt;br /&gt;We're going back to LocalPlayer.cxx for this. You can find it in /src/bzflag/ after you have extracted the source. Use your favorite text editor's search function to locate "can't jump while burrowed". You will come across this section:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  FlagType* flag = getFlag();&lt;br /&gt;&lt;br /&gt;  // can't jump while burrowed&lt;br /&gt;  if (getPosition()[2] &lt; 0.0f) {&lt;br /&gt;    return;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  if (flag == Flags::Wings) {&lt;br /&gt;    if (wingsFlapCount &lt;= 0) {&lt;br /&gt;      return;&lt;br /&gt;    }&lt;br /&gt;    wingsFlapCount--;&lt;br /&gt;  } else if ((location != OnGround) &amp;&amp; (location != OnBuilding)) {&lt;br /&gt;    // can't jump unless on the ground or a building&lt;br /&gt;    if (flag != Flags::Wings)&lt;br /&gt;      return;&lt;br /&gt;    if (wingsFlapCount &lt;= 0)&lt;br /&gt;      return;&lt;br /&gt;    wingsFlapCount--;&lt;br /&gt;  } else if ((flag != Flags::Bouncy) &amp;&amp;&lt;br /&gt;      ((flag != Flags::Jumping &amp;&amp; !World::getWorld()-&gt;allowJumping()) ||&lt;br /&gt;       (flag == Flags::NoJumping))) {&lt;br /&gt;    return;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  // add jump velocity (actually, set the vertical component since you&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Let's do away with most of this section so that it reads like this:&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;pre&gt;&lt;br /&gt;FlagType* flag = getFlag();&lt;br /&gt;&lt;br /&gt;// add jump velocity (actually, set the vertical component since you&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;The above allows us to jump whenever we want. Now, let's add some ability steer in air. Search for "can't control motion in air unless have wings", and you will come to a section that looks like this:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;    // can't control motion in air unless have wings&lt;br /&gt;    if (getFlag() == Flags::Wings) {&lt;br /&gt;      float speed = desiredSpeed;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Specifically, let's look at the second line of the above:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;if (getFlag() == Flags::Wings) {&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Let's remove "== Flags::Wings" so that the line reads like this:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;if (getFlag()) {&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Save the file, compile your new client, and you're done. Many thanks to Felipe for sharing this one with us ;) You can view the original instructions in the &lt;a href="http://bzflagcheat.blogspot.com/2007/06/tip-classic-f5-cheat.html"&gt;comments&lt;/a&gt; of the &lt;a href="http://bzflagcheat.blogspot.com/"&gt;Cheating BZFlag&lt;/a&gt; blog post, The Infamous BZFlag F5 Cheat. Please take a look at our previous posts if you haven't already done so. And, let's keep those tips rolling in &gt;:) As always...&lt;br /&gt;&lt;br /&gt;Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-9154809643600360351?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/9154809643600360351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=9154809643600360351' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/9154809643600360351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/9154809643600360351'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/07/fly-without-wings-improved-jumping.html' title='Fly Without Wings &amp; Improved Jumping'/><author><name>CRW</name><uri>http://www.blogger.com/profile/16469342749811241765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-7856775660724277276</id><published>2007-07-27T01:47:00.000-07:00</published><updated>2007-07-27T01:49:18.516-07:00</updated><title type='text'>TIP:  The Infamous BZFlag F5 Cheat</title><content type='html'>&lt;span id="postmessage_115"&gt;&lt;span class="postbody"&gt;By: &lt;span style="font-weight: bold;"&gt;Lord Jesus&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Grab yourself a copy of the &lt;a href="http://my.bzflag.org/w/Download#Old:_2.0.4"&gt;2.0.4 version&lt;/a&gt; of BZFlag, and use F5 -- the screenshot function -- to insert artificial lag.  One method is to press and hold F5 to insert the lag.  This is a great technique for dodging bullets and capturing another team's flag.&lt;br /&gt;&lt;br /&gt;You can also press and hold F5 to get to other places you normally couldn't get to... like the other side of a wall.  Again, this is if you you use the older &lt;a href="http://my.bzflag.org/w/Download#Old:_2.0.4"&gt;2.0.4 version&lt;/a&gt; of BZFlag.  The delay for taking a screenshot until you release F5 was "fixed" in version 2.0.8.  You can read about how it works in this discussion:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://my.bzflag.org/bb/viewtopic.php?p=110790&amp;sid=4b5ade11d86ac9c764d0e935e1bded95"&gt;my.bzflag.org/bb/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span class="postbody"&gt;The basic case is this: the tank moves along velocity vector, then collisions are checked. If the tank has moved too far along in one time step, it is now inside (or on the other side(the &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;F5 cheat&lt;/span&gt;&lt;/span&gt;!)) of the object it 'collided' with.&lt;/span&gt;&lt;span id="postmessage_115"&gt;&lt;span class="postbody"&gt;" [emphasis added]&lt;br /&gt;&lt;br /&gt;It's briefly mentioned here, too:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.answers.com/topic/bzflag"&gt;http://www.answers.com/topic/bzflag&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;"&lt;/span&gt;&lt;/span&gt;F5: To F5 is to take a screenshot of BZFlag, which also creates a small lagspike and makes your tank unhittable for a short interval of time."&lt;br /&gt;&lt;span id="postmessage_115"&gt;&lt;span class="postbody"&gt;&lt;br /&gt;As you can imagine, this has been around for quite a while.  It's posted here at BZFlag Cheat just in case you didn't get an opportunity to take advantage of it previously &gt;:)  Some more information about the F5 technique is easy to find with your favourite search engine.  Here's an example:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.google.com/search?q=bzflag+%22f5+cheat%22&amp;amp;amp;amp;amp;hl=en&amp;filter=0"&gt;Google search&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Keep in mind that it is not entirely undetectable especially among experienced players.  Use it wisely ;)  Here's an example of a player, &lt;span style="font-style: italic; font-weight: bold;"&gt;sox&lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;s&lt;/span&gt;, who got banned for it:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://gu.bzleague.com/index.php?link=shame"&gt;http://gu.bzleague.com/index.php?link=shame&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So, now you can enjoy enhanced gaming without having to modify or add a single line of code to your client!  &lt;/span&gt;&lt;/span&gt;&lt;span id="postmessage_115"&gt;&lt;span class="postbody"&gt;To control disk space, don't forget to empty your screenshots folder when you're finished playing.  &lt;/span&gt;&lt;/span&gt;&lt;span id="postmessage_115"&gt;&lt;span class="postbody"&gt;And as always...&lt;br /&gt;&lt;br /&gt;Have fun!&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-7856775660724277276?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/7856775660724277276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=7856775660724277276' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/7856775660724277276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/7856775660724277276'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/07/tip-infamous-bzflag-f5-cheat.html' title='TIP:  The Infamous BZFlag F5 Cheat'/><author><name>CRW</name><uri>http://www.blogger.com/profile/16469342749811241765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-7896418164093799155</id><published>2007-07-27T01:34:00.000-07:00</published><updated>2007-07-27T01:44:10.748-07:00</updated><title type='text'>Shoot While Sealed with Oscillation Overthruster</title><content type='html'>By: &lt;span style="font-weight: bold;"&gt;Lord Jesus&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Imagine that you have Oscillation Overthruster (OO) and you're chasing another player with OO. The other player dodges you by hiding in a building or some other structure (for example, while playing Hide-N-Seek Hills). You can go after the player to maintain your chase; however, what if the player stops while you're both sealed? You can't shoot if you're both sealed. Moreover, you can almost imagine the other player saying something like, "Haha! You can't shoot me here!"&lt;br /&gt;&lt;br /&gt;Now, you can have the last laugh as the other tank goes Kaboom! Thrills and laughs abound now that buildings are no longer safe havens for other players with OO. But, why stop there? Snipe other players from the safety of buildings...&lt;br /&gt;&lt;br /&gt;To do that, we're going to visit LocalPlayer.cxx (in /src/bzflag/ of the extracted source).&lt;br /&gt;&lt;br /&gt;Use the search feature of your favorite text editor and look for "case Exploding". You will come to a section like this:&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;pre&gt;&lt;br /&gt;case Exploding:&lt;br /&gt;  firingStatus = Deceased;&lt;br /&gt;  break;&lt;br /&gt;case InBuilding:&lt;br /&gt;  firingStatus = (getFlag() == Flags::PhantomZone) ? Zoned : Sealed;&lt;br /&gt;  break;&lt;br /&gt;default:&lt;br /&gt;  if (isPhantomZoned())&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Let's do away with the "case InBuilding" section so that the modified file now looks like this:&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;pre&gt;&lt;br /&gt;case Exploding:&lt;br /&gt;  firingStatus = Deceased;&lt;br /&gt;  break;&lt;br /&gt;default:&lt;br /&gt;  if (isPhantomZoned())&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Next, search for "make sure we're allowed to shoot". You will come to a section that looks like this:&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;pre&gt;&lt;br /&gt;// make sure we're allowed to shoot&lt;br /&gt;if (!isAlive() || isPaused() ||&lt;br /&gt;    ((location == InBuilding) &amp;&amp;amp; !isPhantomZoned())) {&lt;br /&gt;  return false;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Let's do a quick edit so that it now looks like this:&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;pre&gt;&lt;br /&gt;// make sure we're allowed to shoot&lt;br /&gt;if (!isAlive() || isPaused()) {&lt;br /&gt;  return false;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Note that the above edit will only allow you to be able to shoot while sealed in a building; it will not affect your shooting while Phantom Zoned.&lt;br /&gt;&lt;br /&gt;Save your new file, and you're done. In case you haven't already checked, take a look at the previous HOWTO posts for more tips. When you're finished, compile your client and...&lt;br /&gt;&lt;br /&gt;Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-7896418164093799155?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/7896418164093799155/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=7896418164093799155' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/7896418164093799155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/7896418164093799155'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/07/shoot-while-in-building-with.html' title='Shoot While Sealed with Oscillation Overthruster'/><author><name>CRW</name><uri>http://www.blogger.com/profile/16469342749811241765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-2403779133981316690</id><published>2007-07-27T01:22:00.000-07:00</published><updated>2007-07-27T01:32:41.137-07:00</updated><title type='text'>See Cloaked Tanks</title><content type='html'>By: &lt;span style="font-weight: bold;"&gt;Lord Jesus&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Have you enjoyed being able to see those pesky Stealth tanks on your radar? Be sure to read the previous posts in case you've missed them :)&lt;br /&gt;&lt;br /&gt;Anyway, here's a simple trick that will allow you to see cloaked tanks. As a note, this will not affect lasers; lasers will still pass through cloaked tanks. You will be able to see them, though. Think of it as training wheels until you get better at using your radar :)&lt;br /&gt;&lt;br /&gt;I assume that you have already downloaded the source and have extracted the source from the tarball. Enter the extracted directory and go to the /src/bzflag/ directory and open Player.cxx with your favorite text editor. Use the search feature of your editor (e.g., ctrl+f for some text editors) and search for "cloak". The first thing you will find is:&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;pre&gt;&lt;br /&gt; // set the alpha target&lt;br /&gt; if (effectFlag == Flags::Cloaking) {&lt;br /&gt;   alphaTarget = 0.0f;&lt;br /&gt; } else {&lt;br /&gt;   alphaTarget = 1.0f;&lt;br /&gt; }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Notice the line "alphaTarget = 0.0f;".  Let's change 0.0f to 0.5f so that the line reads like this:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;alphaTarget = 0.5f;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;The effect will be that it is slightly translucent but not as much as zoned tanks (i.e., tanks with the Phantom Zone flag which are at 0.25f). Alternatively, you can use 1.0f instead of 0.5f.&lt;br /&gt;&lt;br /&gt;Moving on. Search for "cloak" again. You now come to a section like this:&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;pre&gt;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; // is this tank fully cloaked?&lt;br /&gt; const bool cloaked = (flagType == Flags::Cloaking) &amp;&amp;amp; (color[3] == 0.0f);&lt;br /&gt;&lt;br /&gt; if (cloaked &amp;&amp;amp; !seerView) {&lt;br /&gt;   return; // don't draw anything&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; // setup the visibility properties&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Let's remove the check for seeing if a tank is cloaked and not drawing anything if it is. The newly edited section should like this:&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;pre&gt;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; // setup the visibility properties&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Save the file, compile your client, and . . .&lt;br /&gt;&lt;br /&gt;Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-2403779133981316690?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/2403779133981316690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=2403779133981316690' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/2403779133981316690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/2403779133981316690'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/07/see-cloaked-tanks.html' title='See Cloaked Tanks'/><author><name>CRW</name><uri>http://www.blogger.com/profile/16469342749811241765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-561225162306523339</id><published>2007-07-27T01:09:00.000-07:00</published><updated>2007-07-27T01:20:46.434-07:00</updated><title type='text'>See STEALTH Tanks on Radar</title><content type='html'>By: &lt;span style="font-weight: bold;"&gt;Lord Jesus&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Have you enjoyed the Classic God Mode modification, yet? In case you haven't had a chance to try it out, read further down this blog to the previous HOWTO edition. If "god mode" isn't your thing, then you might find being able to see Stealth tanks on radar to be quite handy. Remember to keep it subtle; don't make yourself obvious. For example, if a Stealth tank is on the other side of a large wall, most players (particularly, the Stealth player) will know that you don't "coincidentally" shoot Super Bullets straight down the direction to the Stealth tank. Remember to pretend to be "surprised" when Stealth tank comes into view before you blow him up to kingdom come.&lt;br /&gt;&lt;br /&gt;Being able to see stealth on your radar is very easy in and of itself. In fact, it doesn't require any additional lines of code. More elaborate adaptations of this modification, such as stealth blinking on radar, will in fact require some code; however, we're just going to stick to the simple trick for the purpose of this blog entry. We'll come back to it in more detail with various options including blinking on radar, toggle mode (to turn on/off being able to see stealth), selective stealth radar mode (in case you want to target only specifically annoying players), and so on. So, stay tuned for more later on.&lt;br /&gt;&lt;br /&gt;After you unpack the source tarball, you will find the file "RadarRenderer.cxx" in the extracted "/bzflag-2.0.X/src/bzflag/" directory (where "X" is version number such as in version 2.0.8). Use your favorite text editor to open "RadarRenderer.cxx" and use your Find feature (e.g., ctrl+f in some graphic editors) to search for "stealth". You will come across some lines that look like this:&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;pre&gt;&lt;br /&gt;     }&lt;br /&gt;     if (!player-&gt;isAlive() &amp;&amp;amp;&lt;br /&gt;         (!useTankModels || !observer || !player-&gt;isExploding())) {&lt;br /&gt;       continue;&lt;br /&gt;     }&lt;br /&gt;     if ((player-&gt;getFlag() == Flags::Stealth) &amp;&amp;amp;&lt;br /&gt;         (myTank-&gt;getFlag() != Flags::Seer)) {&lt;br /&gt;       continue;&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;     const float* position = player-&gt;getPosition();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;All we need to do is remove the portion that indicates that we should not be able to see Stealth if we don't have the Seer flag. When you are finished, the revised lines should look like this:&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;pre&gt;&lt;br /&gt;     }&lt;br /&gt;     if (!player-&gt;isAlive() &amp;&amp;amp;&lt;br /&gt;         (!useTankModels || !observer || !player-&gt;isExploding())) {&lt;br /&gt;       continue;&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;     const float* position = player-&gt;getPosition();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Save the file, compile you client, and...&lt;br /&gt;&lt;br /&gt;Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-561225162306523339?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/561225162306523339/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=561225162306523339' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/561225162306523339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/561225162306523339'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/07/see-stealth-tanks-on-radar.html' title='See STEALTH Tanks on Radar'/><author><name>CRW</name><uri>http://www.blogger.com/profile/16469342749811241765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6287513207414970276.post-2884000349906060906</id><published>2007-07-26T21:15:00.000-07:00</published><updated>2007-07-26T22:53:31.801-07:00</updated><title type='text'>Classic God Mode</title><content type='html'>By:  &lt;span style="font-weight:bold;"&gt;Lord Jesus&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ever consider tinkering with "god mode" but just didn't quite know how?  Well, you've come to the right place!  With Classic God Mode, you will be invulnerable to shots, shock waves, guided missiles, lasers, steamroller, world weapons and so on.  You will even be able to be like Jesus and drive on water.  Tired of having your good flags stolen by Thief tanks?  That will no longer be a problem either.  A shortcoming, however, are that you will still be vulnerable to server /kill commands.  That means admins can still /kill you, you will still blow up for killing teammates, and you will still blow up if you are a rogue and another rogue gets hit with genocide on a server with rogue genocide.  Be sure to check out a later post about instant respawn ;) &lt;br /&gt;&lt;br /&gt;Let's get started.  After you've extracted the source tarball, navigate to the extracted directory. Once you're there, navigate on to the "/src/bzflag" directory. In that directory, you will find the file "playing.cxx". We'll work on some modifications to that file. Open your favorite text editor if you haven't already, open the file, and let's get going...&lt;br /&gt;&lt;br /&gt;First, you may want to open a second editor and paste something like the following to it:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;//skip this if alive&lt;br /&gt;if (myTank-&gt;isAlive()) return;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;We'll use it for quick pasting later on.&lt;br /&gt;&lt;br /&gt;Also, I recommend backing up your original playing.cxx file for later use. Alternatively, you can extract a copy of the original file from your original tarball.&lt;br /&gt;&lt;br /&gt;Now that you've got "playing.cxx" open it's time for a few changes. Use you editors "Find" feature (e.g., ctrl+f as with some graphic editors) to search for "see if" in the text of the file until you come to this section:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  // see if i've been shot&lt;br /&gt;  const ShotPath* hit = NULL;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Hmmm... see if I've been shot? I'd rather not, if you don't mind &gt;:) Let's do our paste action again so that the lines now read:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  // see if i've been shot&lt;br /&gt;  // skip this if i'm alive&lt;br /&gt;  if (myTank-&gt;isAlive()) return;&lt;br /&gt;  const ShotPath* hit = NULL;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Next...&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  // if not dead yet, see if i'm sitting on death&lt;br /&gt;  else if (myTank-&gt;getDeathPhysicsDriver() &gt;= 0) {&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;If not dead yet, then let's keep it that way. Let's paste again:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  // if not dead yet, see if i'm sitting on death&lt;br /&gt;  // skip this if i'm alive&lt;br /&gt;  if (myTank-&gt;isAlive()) return;&lt;br /&gt;  else if (myTank-&gt;getDeathPhysicsDriver() &gt;= 0) {&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;We'll continue making changes as we move along...&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  // if not dead yet, see if i've dropped below the death level&lt;br /&gt;  // skip this if i'm alive&lt;br /&gt;  if (myTank-&gt;isAlive()) return;&lt;br /&gt;  else if ((waterLevel &gt; 0.0f) &amp;&amp; (myTank-&gt;getPosition()[2] &lt;= waterLevel)) {&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;And...&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  // if not dead yet, see if i got run over by the steamroller&lt;br /&gt;  // skip this if i'm alive&lt;br /&gt;  if (myTank-&gt;isAlive()) return;&lt;br /&gt;  else {&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;You're going to run across a few other lines pertaining to things such as guided missile.  Keep searching past these entries, and you will find more "if not dead yet, see if ..." lines. Simply modify the lines as we've done above, you should be good to go on those. &lt;br /&gt;&lt;br /&gt;Ah, you should be at the end of the document. You can run through it if you want to make sure that you hit all of the right spots :)&lt;br /&gt;&lt;br /&gt;To be double sure, you can also search for "genocide". If you search from the beginning, keep using your Find Next feature, and you will find the line:&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;      // blow up if killer has genocide flag and i'm on same team as victim&lt;br /&gt;      // (and we're not rogues, unless in rabbit mode)&lt;br /&gt;      if (human &amp;&amp; killerPlayer &amp;&amp; victimPlayer &amp;&amp; victimPlayer != myTank &amp;&amp;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Now that looks intriguing. Let's add our own little touch to that, shall we?&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;      // blow up if killer has genocide flag and i'm on same team as victim&lt;br /&gt;      // (and we're not rogues, unless in rabbit mode)&lt;br /&gt;      // skip this if i'm alive&lt;br /&gt;      if (myTank-&gt;isAlive()) return;&lt;br /&gt;      if (human &amp;&amp; killerPlayer &amp;&amp; victimPlayer &amp;&amp; victimPlayer != myTank &amp;&amp;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Nothing like ignoring a teammate getting sacked with Genocide, huh? Keep in mind that some servers have rogues genocide. If you are playing on one of these servers as a rogue, then you will still get geno'd since the rogue genocide is handled by the server and sent to the client as a server kill message. Playing as a team color will eliminate that little problem.&lt;br /&gt;&lt;br /&gt;Magnifico!&lt;br /&gt;&lt;br /&gt;After that, save the file, compile your new client, and ...&lt;br /&gt;&lt;br /&gt;Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6287513207414970276-2884000349906060906?l=bzfcheat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bzfcheat.blogspot.com/feeds/2884000349906060906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6287513207414970276&amp;postID=2884000349906060906' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/2884000349906060906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6287513207414970276/posts/default/2884000349906060906'/><link rel='alternate' type='text/html' href='http://bzfcheat.blogspot.com/2007/07/classic-god-mode.html' title='Classic God Mode'/><author><name>CRW</name><uri>http://www.blogger.com/profile/16469342749811241765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
