<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0">
<channel>
	 
	<link>http://www.moddb.com/members/masternerdguy/blog</link>
	<title>Blog RSS feed &#45; masternerdguy - Mod DB</title>
	<description>Subscribe to the Mod DB masternerdguy blog feed, and get the latest updates as they are posted.</description>
	<language>en-us</language>
	<pubDate>Sun, 29 Nov 2009 22:45:56 -0600</pubDate>
	<copyright>Copyright 2009, DesuraNET Pty Ltd</copyright>
	<category>Articles</category>
	<ttl>180</ttl>
	<image>
		<title>Mod DB</title>
		<url>http://static.moddb.com/cutoff/images/logos/rss.png</url>
		<link>http://www.moddb.com/</link>
		<width>120</width>
		<height>90</height>
	</image>
	 
	<item>
		<title>Green Duck Update</title>
		<link>http://www.moddb.com/members/masternerdguy/blog/green-duck-update</link>
		<pubDate>Sun, 25 Oct 2009 17:16:55 -0500</pubDate>
		<description>GreenDuck has hit its first milestone!!!! I have added the ability for it to preserve the cash, last place docked, name, and description for the character in question!

YES!

Now I just need to just make it preserve reps!

Also, greenduck has a saaavy new logo:
&lt;img src=&quot;http://media.moddb.com/images/games/1/1/81/duckshuttle.png&quot; alt=&quot;&quot; width=&quot;428&quot; height=&quot;360&quot; /&gt;
Hehe, nice. I&#39;m still waiting for ModDB to approve the first release, then I will post the next one. It&#39;s cool stuff.</description>
		<guid isPermaLink="false">articles45371</guid>
		<enclosure url="http://static.moddb.com/cutoff/images/logos/articles.png" length="" type="" />	</item>
	 
	<item>
		<title>IT WORKS</title>
		<link>http://www.moddb.com/members/masternerdguy/blog/it-works</link>
		<pubDate>Sat, 24 Oct 2009 22:29:36 -0500</pubDate>
		<description>Finally, my code to cause a player to lose their ship upon death works!
ServerWatch.vb
[code=vbnet]Imports System.IO

Public Class serverWatch
    Dim oldPlayerLocation As String = &quot;Bw01_01&quot;
    Dim oldPlayerCredits As String = &quot;150000&quot;
    Dim oldPlayerName As String = &quot;&quot;
    Dim oldPlayerDescription As String = &quot;&quot;
    Dim commodity As String = &quot;cargo = 2695487054&quot;
    &#39;For the GUI
    Public iterations As Integer = 0
    Public actedUpon As Integer = 0
    Public notActedUpon As Integer = 0
    &#39;This class watches the files the server is loading and saving in real time and looks for modifictions
    &#39;such as player deaths and makes the appropriate adjustments.
    Dim fIO As New fIO()
    Dim indir As String = &quot;C:\Users\masternerdguy\Documents\My Games\Freelancer\Accts\MultiPlayer&quot;
    Dim outdir As String = &quot;H:\out&quot;
    Public Sub copy()
        fIO.copy()
    End Sub
    Public Sub updateServerRealTimeMode()
        fIO.decodeSaveFiles(indir, outdir) &#39;Decode the files so they can be parsed
        &#39;Ok, heres how it works.
        &#39;1. Decode the player and check for our commodity
        &#39;cargo = 2695487054, 1, , , 0
        &#39;2. If not present, reload them with a patriot.
        Dim all As String = &quot;&quot;
        Try
            &#39;iterate through the command list in output folder
            For index As Integer = 0 To fIO.publicOut.Length
                all = all + fIO.publicOut(index)
                &#39;MessageBox.Show(fIO.publicOut(index) + &quot; &quot;, &quot;&quot; &amp; fIO.publicOut.Length &amp; &quot; &quot; &amp; index, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)

                If ((fIO.publicOut(index)).Contains(&quot;.fl.txt&quot;)) Then
                    &#39;read in the file
                    Dim fileReader As String = &quot;&quot;
                    Dim hasCom As Boolean = True
                    fileReader = My.Computer.FileSystem.ReadAllText(fIO.publicOut(index))
                    &#39;and scan it
                    hasCom = fileReader.Contains(commodity)
                    &#39;and if it doesnt
                    iterations = iterations + 1
                    Select Case hasCom
                        Case False
                            actedUpon += 1
                            &#39;Mwuahahahaaa
                            &#39;Lets find their generic information
                            Dim array1 As Char() = fileReader.ToCharArray
                            &#39;Scan for the start, [ P l a y e r ] d e s c r i p t i o n = 
                            &#39;This is always at the start of the file
                            Dim tmpString1 As String = &quot;&quot;
                            For v As Integer = 0 To 22
                                tmpString1 = tmpString1 + array1(v)
                            Next v
                            Dim vu As Integer = 22
                            tmpString1 = tmpString1 + &quot;~&quot;
                            &#39;TEMPORARY CODE
                            &#39;Now gather the rest of the description
                            Dim break As Boolean = False
                            While (break = False)
                                vu += 1
                                If (array1(vu) = &quot;t&quot;) Then
                                    break = True
                                End If
                                If (array1(vu) = &quot;t&quot;) = False Then
                                    oldPlayerDescription = oldPlayerDescription + array1(vu)
                                End If
                            End While
                            break = False
                            &#39;Now use vu&#39;s position to determine the name
                            While (break = False)
                                vu += 1
                                If (array1(vu) = &quot;n&quot;) Then
                                    break = True
                                End If
                            End While
                            break = False
                            &#39;Now we count up until we reach r
                            vu += 6 &#39;skip 6
                            While (break = False)
                                vu += 1
                                If (array1(vu) = &quot;r&quot;) Then
                                    break = True
                                End If
                                If (array1(vu) = &quot;r&quot;) = False Then
                                    oldPlayerName = oldPlayerName + array1(vu)
                                End If
                            End While
                            break = False
                            &#39;Ok, now pass this onto the dealer, to keep this segment simple
                            Me.dealWithPlayerNotHavingPermit(fIO.publicOut, index)
                            My.Computer.FileSystem.WriteAllText(&quot;C:\deathLog.txt&quot;, _
                                &quot;ACTION TAKEN ON &quot; &amp; fIO.publicOut(index) &amp; &quot; &quot; &amp; oldPlayerName &amp; ControlChars.NewLine, True)
                        Case True
                            notActedUpon += 1
                            My.Computer.FileSystem.WriteAllText(&quot;C:\deathLog.txt&quot;, _
                                &quot;No issues with &quot; &amp; fIO.publicOut(index) &amp; ControlChars.NewLine, True)
                            &#39;Do nothing
                    End Select
                    &#39;Clean up
                    Me.oldPlayerDescription = &quot;&quot;
                    Me.oldPlayerCredits = &quot;&quot;
                    Me.oldPlayerLocation = &quot;&quot;
                    Me.oldPlayerName = &quot;&quot;
                End If
            Next
        Catch ex As Exception
            &#39;MessageBox.Show(ex.StackTrace.ToString(), &quot;&quot;, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            Console.WriteLine(ex.StackTrace.ToString())
        End Try
        &#39;Clean up
        Me.oldPlayerDescription = &quot;&quot;
        Me.oldPlayerCredits = &quot;&quot;
        Me.oldPlayerLocation = &quot;&quot;
        Me.oldPlayerName = &quot;&quot;
    End Sub
    Public Sub dealWithPlayerNotHavingPermit(ByVal cmdList As String(), ByVal index As Integer)
        &#39;Ok, decode the template
        Dim exeDir As String = &quot;C:\greenDuckEXE&quot;
        &#39;load the file to memory
        Dim fileReader As String = &quot;&quot;
        fileReader = My.Computer.FileSystem.ReadAllText(exeDir + &quot;/template.txt&quot;)
        &#39;Then we get to do a find&#45;replace
        fileReader = Replace(fileReader, &quot;00310030002f00320034002f00300039002000310039003a00340035003a00300035&quot;, Me.oldPlayerDescription)
        fileReader = Replace(fileReader, &quot;name = 005&quot;, &quot;name = &quot; &amp; Me.oldPlayerName)
        &#39;and write it out temporarily
        My.Computer.FileSystem.WriteAllText(exeDir + &quot;\issue.txt&quot;, _
                                fileReader, False)
        &#39;and parse it
        Dim cmdLocation As String = &quot;C:\greenDuckEXE\flcodec.exe&quot;
        &#39;do the command
        Dim cmd As String = &quot; &#45;e &quot; + exeDir + &quot;\issue.txt &quot; + exeDir + &quot;\tocopy.fl&quot;
        &#39;Shell(cmd)
        Dim flcodec As Process = New Process
        flcodec.StartInfo.Arguments = cmd
        flcodec.StartInfo.FileName = cmdLocation
        flcodec.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
        flcodec.Start()
        &#39;and copy it over
        My.Computer.FileSystem.CopyFile(exeDir + &quot;\tocopy.fl&quot;, fIO.publicIn(index), True)
    End Sub
End Class[/code] 
fIO.vb
[code=vbnet]Imports System.IO
Public Class fIO
    Public publicOut As String() = New String() {}
    Public publicIn As String() = New String() {}
    Public indir As String = &quot;&quot;
    Public outdir As String = &quot;&quot;
    &#39;Controls the loading and saving (and conversion) of data so that this program can analyze it.
    Public Sub decodeSaveFiles(ByVal indira As String, ByVal outdira As String)
        indir = indira
        outdir = outdira
        &#39;backup the FLServer folder
        Try
            &#39;MkDir(&quot;H:\.greenDuckBackup&quot;)
        Catch ex As Exception
        End Try
        &#39;My.Computer.FileSystem.CopyDirectory(indir, &quot;H:\.greenDuckBackup&quot;, True)
        Dim tmpFList As String = &quot;&quot;
        &#39;declare the final input and final output
        Dim commandInFileList() As String
        Dim commandOutFileList() As String
        &#39;first get the sub folders
        Dim count As Integer = 0
        Dim dir As String = &quot;temp&quot;
        Dim dirs() As String = Directory.GetDirectories(indir)
        Dim subfolders(dirs.Length) As String
        For Each dir In dirs
            count = count + 1
            subfolders(count) = dir
        Next
        &#39;then create the needed directory structure in outdir
        For u As Integer = 0 To dirs.Length &#45; 1
            dir = dirs(u)
            &#39;MessageBox.Show(dir, dir, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)

            Dim tmpFolders() As String
            tmpFolders = dir.Split(&quot;\&quot;)

            Dim finalFolder As String = outdir + &quot;\&quot; + tmpFolders(tmpFolders.Length &#45; 1)
            &#39;MessageBox.Show(finalFolder, dir, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            Try
                MkDir(finalFolder)
            Catch ex As Exception
                &#39;Nothing it works, it throws a random exception for no reason
            End Try
            &#39;so we need to analyze each subdirectory and create each sub director first
            Dim files As String = &quot;&quot;
            Dim fileList() As String = Directory.GetFiles(finalFolder)
            fileList = Directory.GetFiles(dir)
            For x As Integer = 0 To fileList.Length &#45; 1
                tmpFList = tmpFList + fileList(x) + &quot;~&quot;
            Next
            &#39;and finally, delete the folder
            Dim fso As New Scripting.FileSystemObject
        Next u
        &#39;parse the file list
        commandInFileList = tmpFList.Split(&quot;~&quot;)
        commandOutFileList = commandInFileList
        For r As Integer = 0 To commandInFileList.Length &#45; 2
            Dim tmp() As String = commandInFileList(r).Split(&quot;\&quot;)
            &#39;merge the last 2, they are the folder and the file
            Dim finalFile As String = tmp(tmp.Length &#45; 2) + &quot;\&quot; + tmp(tmp.Length &#45; 1)
            &#39;we can take that and smack it onto the end of the final folder!
            commandOutFileList(r) = outdir + &quot;\&quot; + finalFile

        Next r
        &#39;restore the folder
        &#39;My.Computer.FileSystem.CopyDirectory(&quot;H:\.greenDuckBackup&quot;, indir, True)
        &#39;My.Computer.FileSystem.CopyDirectory(indir, outdir, True)
        &#39;then we need to run the flcodec command in each of them
        Dim cmdLocation As String = &quot;C:\greenDuckEXE\flcodec.exe&quot;
        For a As Integer = 0 To commandOutFileList.Length &#45; 2
            commandInFileList = tmpFList.Split(&quot;~&quot;)
            &#39;do the command
            Dim cmd As String = &quot; &#45;d &quot; + commandOutFileList(a) + &quot; &quot; + commandOutFileList(a) + &quot;.txt&quot;
            &#39;Shell(cmd)
            Dim flcodec As Process = New Process
            flcodec.StartInfo.Arguments = cmd
            flcodec.StartInfo.FileName = cmdLocation
            flcodec.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
            flcodec.Start()
            &#39;make a CHAR array
            Dim array1 As Char() = commandOutFileList(a).ToCharArray
            If (array1(array1.Length &#45; 1) = &quot;l&quot; And array1(array1.Length &#45; 2) = &quot;f&quot;) Then
                commandOutFileList(a) = commandOutFileList(a) + &quot;.txt&quot;
            End If
        Next a
        publicOut = commandOutFileList
        publicIn = commandInFileList
    End Sub
    Public Sub copy()
        My.Computer.FileSystem.CopyDirectory(indir, outdir, True)
    End Sub
End Class
[/code]</description>
		<guid isPermaLink="false">articles45335</guid>
		<enclosure url="http://static.moddb.com/cutoff/images/logos/articles.png" length="" type="" />	</item>
	 
	<item>
		<title>Wow</title>
		<link>http://www.moddb.com/members/masternerdguy/blog/wow3</link>
		<pubDate>Sun, 18 Oct 2009 22:33:40 -0500</pubDate>
		<description>Imports System.IO

Public Class fIO
    &#39;Controls the loading and saving (and conversion) of data so that this program can analyze it.
    Public Sub decodeSaveFiles(ByVal indir As String, ByVal outdir As String)
        &#39;backup the FLServer folder
        Try
            MkDir(&quot;c:\.greenDuckBackup&quot;)
        Catch ex As Exception
        End Try

        My.Computer.FileSystem.CopyDirectory(indir, &quot;C:\.greenDuckBackup&quot;, True)
        Dim tmpFList As String = &quot;&quot;
        &#39;declare the final input and final output
        Dim commandInFileList() As String
        Dim commandOutFileList() As String
        &#39;first get the sub folders
        Dim count As Integer = 0
        Dim dir As String = &quot;temp&quot;
        Dim dirs() As String = Directory.GetDirectories(indir)
        Dim subfolders(dirs.Length) As String
        For Each dir In dirs
            count = count + 1
            subfolders(count) = dir
        Next
        &#39;then create the needed directory structure in outdir
        For u As Integer = 0 To dirs.Length &#45; 1
            dir = dirs(u)
            &#39;MessageBox.Show(dir, dir, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)

            Dim tmpFolders() As String
            tmpFolders = dir.Split(&quot;\&quot;)

            Dim finalFolder As String = outdir + &quot;\&quot; + tmpFolders(tmpFolders.Length &#45; 1)
            &#39;MessageBox.Show(finalFolder, dir, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            Try
                MkDir(finalFolder)
            Catch ex As Exception
                &#39;Nothing it works, it throws a random exception for no reason
            End Try

            &#39;so we need to analyze each subdirectory and create each sub director first
            Dim files As String = &quot;&quot;
            Dim fileList() As String = Directory.GetFiles(finalFolder)

            fileList = Directory.GetFiles(dir)
            For x As Integer = 0 To fileList.Length &#45; 1
                tmpFList = tmpFList + fileList(x) + &quot;~&quot;
            Next
            &#39;and finally, delete the folder
            Dim fso As New Scripting.FileSystemObject
        Next
        &#39;parse the file list
        commandInFileList = tmpFList.Split(&quot;~&quot;)
        commandOutFileList = commandInFileList
        For r As Integer = 0 To commandInFileList.Length &#45; 2
            Dim tmp() As String = commandInFileList(r).Split(&quot;\&quot;)
            &#39;merge the last 2, they are the folder and the file
            Dim finalFile As String = tmp(tmp.Length &#45; 2) + &quot;\&quot; + tmp(tmp.Length &#45; 1)
            &#39;we can take that and smack it onto the end of the final folder!
            commandOutFileList(r) = outdir + &quot;\&quot; + finalFile + &quot;.txt&quot;

        Next
        &#39;restore the folder
        My.Computer.FileSystem.CopyDirectory(&quot;C:\.greenDuckBackup&quot;, indir, True)
        &#39;then we need to run the flcodec command in each of them
        Dim cmdLocation As String = &quot;C:\greenDuckEXE\flcodec.exe&quot;
        For a As Integer = 0 To commandOutFileList.Length &#45; 2
            commandInFileList = tmpFList.Split(&quot;~&quot;)
            &#39;do the command
            &#39;myprocess.StartInfo.Arguments = &quot;&#45;d &quot; + commandInFileList(a) + &quot; &quot; + commandOutFileList(a)
            Dim cmd As String = cmdLocation + &quot; &#45;d &quot; + commandInFileList(a) + &quot; &quot; + commandOutFileList(a)
            Shell(cmd)
        Next
    End Sub
End Class</description>
		<guid isPermaLink="false">articles45058</guid>
		<enclosure url="http://static.moddb.com/cutoff/images/logos/articles.png" length="" type="" />	</item>
	 
	<item>
		<title>Projects</title>
		<link>http://www.moddb.com/members/masternerdguy/blog/projects1</link>
		<pubDate>Thu, 15 Oct 2009 22:46:01 -0500</pubDate>
		<description>Well I&#39;m temporarily not working on ASoD because I am feeling a bit burned out on it, I am focusing my attention for now on a Freelancer mod.

My mod (well, mine for now, im trying to get a team together) will be player driven, similair to the 0.0 in EVE Online. I just put out a public alpha today.

In a nutshell, FL: OLG is a mod that is going to, eventually, become a 100% player driven clan conquest type server. However, it is in the Alpha&#45;1 stage, and the first public alpha was just released. In addition, OLG&#39;s systems are based on real stars within 100ly from the sun, and the data we know about these stars.

 The Mod Page: &lt;a href=&quot;http://www.moddb.com/mods/our&#45;local&#45;group&quot; rel=&quot;nofollow&quot;&gt;Moddb.com&lt;/a&gt; 

 If you are skilled in...

 &lt;ul&gt;&lt;li&gt;Freelancer Modding/Mapping&lt;/li&gt;&lt;li&gt;Concept Design&lt;/li&gt;&lt;li&gt;Scripting&lt;/li&gt;&lt;/ul&gt; or if you want to...

 &lt;ul&gt;&lt;li&gt;Host this mod on your server&lt;/li&gt;&lt;li&gt;Playtest this mod&lt;/li&gt;&lt;/ul&gt; Then please contact me either in this thread or at &lt;a href=&quot;mailto:masternerdguy@yahoo.com&quot;&gt;masternerdguy@yahoo.com&lt;/a&gt; .

 Current Goals:

 &lt;ul&gt;&lt;li&gt;Make Zeta Tuacanae the starting system.&lt;/li&gt;&lt;li&gt;Increase credit limit to 500 million.&lt;/li&gt;&lt;li&gt;Develop a consistent way for clans to claim systems.&lt;/li&gt;&lt;/ul&gt; Available Jobs:

 &lt;ul&gt;&lt;li&gt;General Modder &#45;&#45; help with whatever your good at.&lt;/li&gt;&lt;li&gt;Weekly&#45;updater &#45;&#45; Use information gathered via the web based portal (i&#39;m writing it rite now) to change NPC patrols and standings to match the current state of the game. *This job is not needed until it goes online*&lt;/li&gt;&lt;li&gt;Concept Designer &#45;&#45; come up with new ideas&lt;/li&gt;&lt;li&gt;Fact Checker &#45;&#45; make sure the systems we are making are plausible representations of the real one out there.&lt;/li&gt;&lt;/ul&gt;</description>
		<guid isPermaLink="false">articles44953</guid>
		<enclosure url="http://static.moddb.com/cutoff/images/logos/articles.png" length="" type="" />	</item>
	 
	<item>
		<title>CVA Emorage</title>
		<link>http://www.moddb.com/members/masternerdguy/blog/cva-emorage</link>
		<pubDate>Sat, 19 Sep 2009 22:20:22 -0500</pubDate>
		<description>2009.09.20 03:18
We of the Holy Amarrian Battlemonks have found you lacking in moral fibre and have thus sentenced you, masternerdguy to death.

In Retribution for your sins against the Holy Amarr Empire, the sentence was carried out today at 02:56:00 in Providence space. Your lifeless corpse shall be put on display to remind all the enemies of the Holy Amarr Empire of their fate. Should you wish to dispute our God given right to dispense punishment please direct your appeals to the wisdom of our Beloved Leader Edeity.

I urge you to take stock of your new life and repent. Take heed in the writings of Pax Amarria and renounce your sinful ways. Continue your heretic ways and your worthless life shall be extinguished again and again.

Yours Faithfully,

sentinel22uk,

Master Artificer</description>
		<guid isPermaLink="false">articles43915</guid>
		<enclosure url="http://static.moddb.com/cutoff/images/logos/articles.png" length="" type="" />	</item>
	 
	<item>
		<title>Ti&#45;83+ Drawing Program</title>
		<link>http://www.moddb.com/members/masternerdguy/blog/ti-83-drawing-program</link>
		<pubDate>Sat, 15 Aug 2009 12:28:58 -0500</pubDate>
		<description>I wrote a drawing program for the Ti&#45;83+ yay.

ZStandard
ClrHome
5&#45;&gt;X
5&#45;&gt;Y
Output(X,Y,&quot;.&quot;
&#45;100&#45;&gt;O
While O&lt;100000
getKey&#45;&gt;O
If O=24:Then
Y&#45;1&#45;&gt;Y
End
If O=26:Then
 Y+1&#45;&gt;Y
 End
 If O=25:Then
 X&#45;1&#45;&gt;X
 End
If O=34:Then
 X+1&#45;&gt;X
 End 
If X&gt;8 or X&lt;1 or Y&gt;16 or Y&lt;1:Then
 5&#45;&gt;X
5&#45;&gt;Y
ClrHome
End
Output(X,Y,&quot;.
End

Basically this program is like an electronic etch n sketch. You move the cursor and it draws the dot at the new position. If you go off the screen, the screen clears and the program resets and you can keep drawing.</description>
		<guid isPermaLink="false">articles42404</guid>
		<enclosure url="http://static.moddb.com/cutoff/images/logos/articles.png" length="" type="" />	</item>
	 
	<item>
		<title>Ti&#45;83+ Programming</title>
		<link>http://www.moddb.com/members/masternerdguy/blog/ti-83-programming</link>
		<pubDate>Sat, 15 Aug 2009 01:19:20 -0500</pubDate>
		<description>I got a Ti 83 Plus for Algebra II and I am trying to program it (i want to write my own game for it eventually).

:Disp &quot;HELLO&quot;
 :2&#45;&gt;X
 :While X&lt;10E50
 :Disp X
 :2X&#45;&gt;X
 :If X &gt; 10E49Then
 2&#45;&gt;X
 End
 End 

That&#39;s my first working program for it. It takes 2, doubles it and displays the output until it reaches 1x10 to the 49th and sets it back to 0 and loops.</description>
		<guid isPermaLink="false">articles42392</guid>
		<enclosure url="http://static.moddb.com/cutoff/images/logos/articles.png" length="" type="" />	</item>
	 
	<item>
		<title>EVE Article</title>
		<link>http://www.moddb.com/members/masternerdguy/blog/eve-article</link>
		<pubDate>Tue, 28 Jul 2009 00:52:11 -0500</pubDate>
		<description>&lt;strong&gt;Introduction&lt;/strong&gt;
 The Raven has long been a staple of the EVE Universe. Loved by mission runners and (to a lesser extent) pvpers alike, this ship has proven itself many times over. However, it has some downsides that may render it up to useless or simply impractical in certain situations.

 This article will explore the strengths and weaknesses of the Raven today and whether or not certain ships may be more useful.

 &lt;strong&gt;Raven Strengths&lt;/strong&gt;
 The Raven has several endearing traits that should be considered.

 &lt;ul&gt;&lt;li&gt;Ability to be fit to tank a DDD (meaning over 75k EHP).&lt;/li&gt;&lt;li&gt;Highest DPS of any Caldari battleship.&lt;/li&gt;&lt;li&gt;No effective range issues except with torpedoes.&lt;/li&gt;&lt;li&gt;75m3 drone bay, significant for a Caldari ship.&lt;/li&gt;&lt;li&gt;Cheap, for a non&#45;rigged t1 fit you only lose 17m after insurance.&lt;/li&gt;&lt;/ul&gt; &lt;strong&gt;Raven Weaknesses&lt;/strong&gt;
 The Raven has several drawbacks that also should be considered.

 &lt;ul&gt;&lt;li&gt;Slow, even for a battleship.&lt;/li&gt;&lt;li&gt;Less DPS than most other battleships.&lt;/li&gt;&lt;li&gt;High align time.&lt;/li&gt;&lt;li&gt;Must be active tanked, potentially limited capacitor.*&lt;/li&gt;&lt;li&gt;Vulnerable to capacitor based electronic warfare.&lt;/li&gt;&lt;/ul&gt; &lt;strong&gt;Scenario 1: L4 Mission&lt;/strong&gt;
 The level 4 mission is how many people make their ISK. A typical level 4 nets the mission runner about 20 mill if you loot and salvage. Some level 4s may be worth up to 50 mill. These missions are the gold standard in isk/hour (level 5 payouts are mainly LP and have highest LP/hour rate) and finance projects from an interceptor to a carrier.

 The raven has absolutely no issues whatsoever in a level 4. It slices through it like butter. However, this is not a unique ability: all battleships can solo any level 4. In addition, most battlecruisers can do this as well. The drake for instance can do any level 4 a Raven can and, in some cases, can outperform a Raven!
 &lt;img src=&quot;http://media.moddb.com/cache/images/groups/1/2/1432/thumb_620x2000/l4indrake2.jpg&quot; alt=&quot;&quot; width=&quot;525&quot; height=&quot;336&quot; /&gt;
 In the above image you see a very difficult level 4 storyline mission called the Inorium Hijacking. You have to fight off 15 top of the line Minmattar battleships and salvage (yes a mission requiring a salvager. CCP has its fingers in your skills after all) a container to get Inorium.

 Although the shields appear low, this drake is doing perfectly. Using EVE&#45;Survival (which most Raven&#45;flying missioners use anyway) you can solo this mission in a drake with maybe one warp out. Price tag wise, a fully tricked out PVE drake costs the same as a Raven (unfitted and unrigged).

 Another advantage befalls the drake: passive tanking. Many missions involve capacitor warfare and in the Raven it can break your tank (which is why CCP added it in the first place!). Even a permaboost setup often can be broken this way since the capacitor can fall below the recharge threshold required to permarun the tank.**

 The only thing the raven has going for it in the level 4 is higher DPS. It is able to kill a battleship faster than a drake could. However, the trade offs can outweigh this quickly. Many people have even begun to see the light and switched to mission drakes for their level 4s.

 &lt;strong&gt;Scenario 2: The Fleet Op&lt;/strong&gt;
 In a fleet, ships are typically chosen for a specific attribute (the exception of course are &#39;grab bag&#39; FCs that do not have a fleet plan but simply are glad someone has a ship) such as speed. The Raven is good for scenerios where you will...

 &lt;ul&gt;&lt;li&gt;Be sitting still such as a gate camp, or moving slowly in a large roaming gang (like the ones that go 40 jumps to enemy space in 0.0 to kill a carrier).&lt;/li&gt;&lt;li&gt;Attacking capital ships and starbases.&lt;/li&gt;&lt;li&gt;Bait (drakes are far too obvious bait ships).&lt;/li&gt;&lt;li&gt;Battleship gangs that are going head on with other battleship gangs.&lt;/li&gt;&lt;/ul&gt; If these criteria are met, the Raven will do fine. In PVP, it will not have an active tank (more likely to be a buffer tank) and is thus not affected by capacitor warfare (to a great extent). In addition, the Raven can be made DDD proof (I have never seen a drake fit that can do that) which means it can contribute to taking down a titan.

 &lt;strong&gt;Scenario 3: The Solo PVPer&lt;/strong&gt;
 Typically, solo pvp and Caldari do not mix well. This is because of the usage of mid slots for tank. This means that adding a warp disruptor (vital to solo pvp) and webifier (also important) will severely compromise the tank.

 The Raven is no exception. Without a gang it will perish quickly and expensively. The only viable solo pvp ships for the Caldari are the crow and the Rohk. Rokh is viable because it can fit a lot of blasters and still get bonuses, and crow because it does not tank it hunts things cruiser and down and survives from speed.

 *Yes, permatank fits are doable. However they typically require high skills or a capacitor booster.
 **The best part is permaboost ravens typically have a weaker tank than ones that are not cap stable. This is due to the slot changes to accommodate for the permaboosting support modules.</description>
		<guid isPermaLink="false">articles41602</guid>
		<enclosure url="http://static.moddb.com/cutoff/images/logos/articles.png" length="" type="" />	</item>
	 
	<item>
		<title>ASoD 0.65 Released</title>
		<link>http://www.moddb.com/members/masternerdguy/blog/asod-065-released</link>
		<pubDate>Sun, 19 Jul 2009 14:39:57 -0500</pubDate>
		<description>&lt;strong&gt;ASoD 0.65&lt;/strong&gt;
 This release is for July 19, 2009. It adds the long promised NPC vs NPC combat system. It also adds 2 new solar systems and finished the Core worlds.

 &lt;strong&gt;Overview&lt;/strong&gt;
 Among Seas of Dust 0.65 has added some of the final touches to the AI of the game. It has allowed them to identify a target getting too close to them, determine if it is hostile, and engage it. It can then return to normal patrol duty if it survives; if it dies it respawns as a new patroller.

 &lt;strong&gt;How it Works&lt;/strong&gt;
 The AI obeys a few very simple rules. These rules include....

 &lt;ul&gt;&lt;li&gt;Try to get on top of your target.&lt;/li&gt;&lt;li&gt;If you run into an allied NPC, bounce back about 135 pixels. (This prevents them from getting ontop of each other and it diversifies the fight when the target of a fleet jumps position from an impact).&lt;/li&gt;&lt;li&gt;Like engaging a player, warp drives may only be activated when greater than 600 from the target.&lt;/li&gt;&lt;li&gt;The bullets can only damage the player or the target. (This saves so many CPU cycles, i tried it damaging all NPCs, and wow. It slowed the game to a screeching 3 fps)&lt;/li&gt;&lt;li&gt;When you have nothing to engage, resume normal patrol.&lt;/li&gt;&lt;li&gt;The player &gt; the NPC in the standings war. This keeps the player involved while still allowing NPCs to select NPC targets.&lt;/li&gt;&lt;/ul&gt; These simple rules allow an amazing diversity of behaviors such as piracy (rogue pirate patrols selecting a trader as a target), base defenses, attacks, and battle sizes from epic fleets to duels. That is how I write AI code, I try to make rules and allow the emergent behaviors to do the rest. I spelled out nothing about any specific type of behavior besides identify &#45;&gt; check reputation &#45;&gt; engage or ignore.
 &lt;img src=&quot;http://media.moddb.com/images/members/1/322/321330/asod0point7_0001.jpg&quot; alt=&quot;&quot; width=&quot;563&quot; height=&quot;410&quot; /&gt;
 In the above image you can see how it works. This image is of the new improved Debug mode that is infinitely helpful in bug hunting. Notice that the details are complete, it looks just like any other combat situation.

 The best part is that the player is preserved. Even when engaged in a full scale fleet battle of 20 vs 20 if the player has bad standings he is included and moved somewhat to the top of the possible target list. The target is a factor of distance and standings, and often times the player wins.

 I would like to thank the rectangle for making this possible. Yes, the rectangle. Without the rectangle there would be no games. This code uses many rectangles. It has a rectangle for the damage zone of an NPC (color by faction), one for identifying a target (red) and of course rectangles for the bullets. It has rectangles for no warp zones (blue) and rectangles for the destination for a patrol or trade AI (yellow and magenta respectively).
 &lt;strong&gt;Fixes&lt;/strong&gt;

 &lt;ul&gt;&lt;li&gt;Fixed death&#45;game restart bug, but you have to undock twice after death.&lt;/li&gt;&lt;li&gt;Fixed commodity issue for Sigos&lt;/li&gt;&lt;li&gt;Adjusted Sigos prices so clothing no longer is bought for 600.&lt;/li&gt;&lt;li&gt;Sigos commodity issue fixed, Sigos&#39;s commodities now display.&lt;/li&gt;&lt;li&gt;Fixed same&#45;speed issue with player&#39;s ship. Also, configureLoadedShip() is now reachable.&lt;/li&gt;&lt;li&gt;Warp Field _____ status indicator updated so it updates when you attempt to warp.&lt;/li&gt;&lt;li&gt;Ship name fixes for Encyclopedic search&lt;/li&gt;&lt;/ul&gt; &lt;strong&gt;Additions&lt;/strong&gt;

 &lt;ul&gt;&lt;li&gt;New starbridge type for Mycerian space&lt;/li&gt;&lt;li&gt;Added full information on ships to the encyclopedia.&lt;/li&gt;&lt;li&gt;Fine controls over speed using + (equals) and &#45; (dash) sign added.&lt;/li&gt;&lt;li&gt;NPC vs NPC combat!&lt;/li&gt;&lt;/ul&gt; &lt;strong&gt;Balancing&lt;/strong&gt;

 &lt;ul&gt;&lt;li&gt;Luina and Verdis rogue pirates now no longer autokill you.&lt;/li&gt;&lt;li&gt;Luina and Verdis rogue pirates obey the current standing system&lt;/li&gt;&lt;li&gt;Player &gt; NPCs in combat &lt;/li&gt;&lt;/ul&gt; &lt;strong&gt;Comments&lt;/strong&gt;
 Please send your comments to me. You can also reach my by &lt;a href=&quot;mailto:masternerdguy@yahoo.com&quot;&gt;masternerdguy@yahoo.com&lt;/a&gt; . Your opinion matters!&lt;span style=&quot;color: #ff0000;&quot;&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: Please remember to delete your old ASoD 0.6 and before files before attempting to run this program, otherwise it will corrupt the new stuff that was added in ASoD 0.65 . This is due to the way it saves the position of objects. These files are located in /home/you on linux and c:\ on windows xp and Public in vista. They may be hidden. They are called &quot;.amongSeasOfDust&quot;, &quot;.amongSeasOfDustStandings*, and &quot;.amongSeasOfDustStarMap&quot; .&lt;/span&gt;</description>
		<guid isPermaLink="false">articles41252</guid>
		<enclosure url="http://static.moddb.com/cutoff/images/logos/articles.png" length="" type="" />	</item>
	 
	<item>
		<title>It got me featured.</title>
		<link>http://www.moddb.com/members/masternerdguy/blog/it-got-me-featured</link>
		<pubDate>Thu, 16 Jul 2009 10:20:45 -0500</pubDate>
		<description>&lt;span style=&quot;text&#45;decoration: underline;&quot;&gt;&lt;strong&gt;9+ months of work&lt;/strong&gt;&lt;/span&gt;
 The other day I was looking at some old files on my SVN repository, ones I have not edited since I first started. I saw this: 

 &lt;img src=&quot;https://asod.dev.java.net/files/documents/9403/138811/9months.jpg&quot; alt=&quot;A snap of my SVN web interface.&quot; title=&quot;A snap of my SVN web interface.&quot; width=&quot;571&quot; height=&quot;200&quot; /&gt; 
 Yes, I have been, basically alone, writing Among Seas of Dust for over 9 months. The most time other people were helping was 2 days, and they contributed very little and got bored of the project very quickly. ASoD has come a long way since version zero.

 &lt;span style=&quot;text&#45;decoration: underline;&quot;&gt;&lt;strong&gt;Where We&#39;ve Been&lt;/strong&gt;&lt;/span&gt;
 &lt;strong&gt;In versions 0&#45;1&lt;/strong&gt;, NPCs did not patrol, trade, or even engage the player automatically. They sat perfectly still around a static spawn point and waited for the player to either bump into them or shoot them once. This did not make for a realistic or exciting game in the least. In addition, there were only 3 solar systems and no actual factions or standing system.

 &lt;img src=&quot;http://media.moddb.com/images/games/1/13/12023/v2.2.jpg&quot; alt=&quot;ASoD 0.2&quot; title=&quot;ASoD 0.2&quot; width=&quot;537&quot; height=&quot;391&quot; /&gt; 
 &lt;strong&gt;However, in version 0.2&lt;/strong&gt;, the first one I released to you, I added the ability for them to trade and patrol. There was also a standings system, although it was basically invisible to the player, that prevented you from simply docking at a random station whom&#39;s people hate you.

 But there was a problem: the player could take control of a trader by sheer luck because some of the destination nodes would spawn at 0,0 which is always at the same spot on the screen. This meant a player could lead a trader to a new position.

 To solve this problem, I added a mode that has been infinitely helpful ever since: the debug overlay. This overlay has not changed much since then, today the only change is that it shows the no warp zones for NPCs.

 &lt;img src=&quot;https://asod.dev.java.net/files/documents/9403/138812/debugmode.jpg&quot; alt=&quot;ASoD 0.7prerelease Overlay&quot; title=&quot;ASoD 0.7prerelease Overlay&quot; width=&quot;552&quot; height=&quot;401&quot; /&gt; 
 The overlay draws the source and destination of NPCs and draws a line between them and their destination. It also tells who is going where from where. Using this, I determined that undeclared cosmics were being read into the pathfinding code and were always at 0.0 . I found that by capping the cosmics, making the array only large enough for the universe to exist, the problem was solved. This release was under ASoD 0.25, because of its very minor changes.

 &lt;strong&gt;ASoD 0.3&lt;/strong&gt; was an interesting release that was mainly cosmetic. For example, it added a main menu and sub menus. It also added an indicator that showed if you were out of mining ammo. But the main features it added were a new ship, a research frigate, and modifiers. Game modifiers allowed you to have random mindless fun with ASoD and allowed me to debug the game without worrying about saved games or being shot.

 &lt;img src=&quot;https://asod.dev.java.net/files/documents/9403/138813/asod0pint7bmodifiers.jpg&quot; alt=&quot;ASoD 0.6 Modifiers&quot; title=&quot;ASoD 0.6 Modifiers&quot; width=&quot;565&quot; height=&quot;411&quot; /&gt; 
 These modifiers, initially also included the ability to turn sameSpeed off. sameSpeed was a piece of code that forced the player and all NPCs to move at the same speed (1) and forced NPCs not to warp.

 This new tool allowed the player to access the debug overlay and some cheats such as not dying. It also has some tools that allow NPC aggression to be isolated instead of spreading to the others in their group. All of these were useful tools.

 &lt;strong&gt;ASoD 0.4&lt;/strong&gt; added some very good features. Not only did it add random pirate spawns (and the framework for more stuff like random lawful spawns that has yet to be used), but it also added the starmap. The starmap was a feature people has been wanting for a while. People were having trouble navigating interstellar space without a map. So, instead of only having to remember the route, you can now see the route. 

 &lt;img src=&quot;https://asod.dev.java.net/files/documents/9403/138814/starmap0point7b.jpg&quot; alt=&quot;Partial ASoD 0.7prerelease Starmap&quot; title=&quot;Partial ASoD 0.7prerelease Starmap&quot; width=&quot;563&quot; height=&quot;409&quot; /&gt; 
 The starmap also allowed you to see your position in space, making it much harder to get lost. Most importantly, the starmap renders as you explore the universe. This means that if you want more navigational information, you have to explore.

 An in&#45;system map was never added and never will be because of the navigational system in&#45;game. Thanks to everything being based around your coordinates, you do not need to visualize anything to navigate.

 A few other things were changed, such as no longer being able to kill something simply by lining atop it and opening fire until it dies. Now they move off of you to the left. Some performance was gained as well by grouping several FOR loops.

 &lt;strong&gt;ASoD 0.5&lt;/strong&gt; was mainly a balance release. It expanded and balanced NPC vs Player combat by equalizing their ships. Now, a player&#39;s celeric class frigate has 200 HP just as an NPC&#39;s does. Before this patch, NPCs were significantly weaker than the player. To compensate, passive shield regeneration was added to both the player and the NPCs. The gun damage was also re factored by 2n+2 so that both sides have a better chance at each other.

 &lt;strong&gt;ASoD 0.6&lt;/strong&gt; took the old ASoD and turned it upside down. It added two new tools, such as the trade tool and the standings tool. These tools added a new level to ASoD. It combined this with new gameplay such as NPCs properly warping, new explosive effects, new standings system, and finally warp drives being disrupted by weapons fire.

 &lt;img src=&quot;https://asod.dev.java.net/files/documents/9403/138815/trade.jpg&quot; alt=&quot;Trade tool&quot; title=&quot;Trade tool&quot; width=&quot;567&quot; height=&quot;412&quot; /&gt; 
 In the above image from my current development of 0.7, you can see 0.6&#39;s trade tool. It&#39;s as simple as Googling something, except that it only cares about places you have visited. So, if you need to know prices in Geol you must visit Geol at some point.

 &lt;img src=&quot;https://asod.dev.java.net/files/documents/9403/138816/standings.jpg&quot; alt=&quot;Standings tool&quot; title=&quot;Standings tool&quot; width=&quot;565&quot; height=&quot;410&quot; /&gt; 
 The standings tool on the other hand allows you to see if you can sell to those groups. In the ASoD 0.6 standing system, being negative is hostile, and being positive is friendly. However, if you go somewhere where these factions exist and they see you, they will all warp to you and engage you. Having a standings indicator that shows everyone allows you to plan ahead.

 &lt;strong&gt;&lt;span style=&quot;text&#45;decoration: underline;&quot;&gt;Where we are Going&lt;/span&gt;&lt;/strong&gt;
 ASoD has come a long way since version 0. The future, of course, is detailed in this image that shows my original sketch for the ASoD universe. The completion of this drawing is the final release. However, it should go a lot faster now that most of the gameplay code is in place. Only a few tiny bugs and a few tiny missing features need to be in ASoD, and these will be added in 0.7 .

 &lt;img src=&quot;http://media.moddb.com/images/games/1/13/12023/sketch_universe1.gif&quot; alt=&quot;ASoD Universe&quot; title=&quot;ASoD Universe&quot; width=&quot;574&quot; height=&quot;787&quot; /&gt; 
 &lt;span style=&quot;text&#45;decoration: underline;&quot;&gt;&lt;strong&gt;Feedback&lt;/strong&gt;
 &lt;/span&gt;If you have a suggestion for ASoD&#39;s future, please, this is now the time to get it to me. Version 0.7 is being developed, and after that only 3 versions more will be released (unless an expansion pack is done). Now is the time for you to send me your comments. Until then, fly safe.</description>
		<guid isPermaLink="false">articles41114</guid>
		<enclosure url="http://static.moddb.com/cutoff/images/logos/articles.png" length="" type="" />	</item>
	  
</channel>
</rss>