<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.1" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>BlueSunCorp &#187; Code</title>
	<link>http://bluesuncorp.co.uk</link>
	<description>Two by Two, Hands of Blue</description>
	<pubDate>Sun, 07 Sep 2008 03:18:16 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.1</generator>
	<language>en</language>
			<item>
		<title>Greasemonkey Reddit Filter</title>
		<link>http://bluesuncorp.co.uk/2008/03/14/greasemonkey-reddit-filter</link>
		<comments>http://bluesuncorp.co.uk/2008/03/14/greasemonkey-reddit-filter#comments</comments>
		<pubDate>Fri, 14 Mar 2008 20:22:28 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
		
		<category><![CDATA[Code]]></category>

		<category><![CDATA[Computing]]></category>

		<category><![CDATA[Shorts]]></category>

		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://bluesuncorp.co.uk/2008/03/14/reddit-filter</guid>
		<description><![CDATA[
I&#039;ve been learning a bit of JavaScript - and this is one of the things I&#039;ve come up with, so far.
Reddit Filter is fairly simple; it allows you to filter out submissions from certain URLs using a regular expression. Want to give it a shot? Follow these brief instructions:

Install GreaseMonkey - this is a neat [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://bluesuncorp.co.uk/files/BlueSunCorp-Articles/2008/March/reddit-filter/redditguy_thumb/200.jpg" /></p>
<p>I&#039;ve been learning a bit of JavaScript - and this is one of the things I&#039;ve come up with, so far.</p>
<p>Reddit Filter is fairly simple; it allows you to filter out submissions from certain URLs using a regular expression. Want to give it a shot? Follow these brief instructions:</p>
<ul>
<li>Install <strong><a href="https://addons.mozilla.org/en-US/firefox/addon/748">GreaseMonkey</a></strong> - this is a neat little Firefox addon, which allows you to customise the way a webpage is displayed, using JavaScript. There even <strong><a href="http://www.gm4ie.com/">appears to be</a></strong> a version that works in IE.</li>
</ul>
<ul>
<li>Restart Firefox, then click on <strong><a href="http://bluesuncorp.co.uk/files/BlueSunCorp-Articles/2008/March/reddit-filter/redditfilter.user.js">this link</a></strong>. You&#039;ll get a GreaseMonkey popup, and from there you can install the script.</li>
</ul>
<ul>
<li>You&#039;ll need to put your own regular expression into the config section of the script, to match URLs on reddit - to do this, you need to right click on the GreaseMonkey icon on the right hand side of your Firefox status bar, select &#039;Manage Use Scripts&#039;, select &#039;Reddit Filter&#039; and hit &#039;Edit&#039;.</li>
</ul>
<ul>
<li>The regular expression should match URLs in the form &#039;subdomain.domain.com&#039; - essentially the script uses <strong><a href="http://bluesuncorp.co.uk/files/BlueSunCorp-Articles/2008/March/reddit-filter/url.jpg">this string</a></strong> for each Reddit submission and matches it against your regex.</li>
</ul>
<ul>
<li>If you&#039;re not already familiar with regular expressions, take a look at <strong><a href="http://www.regular-expressions.info/tutorial.html">this guide</a></strong>. The two most important things you need to know is that | is the &#039;or&#039; operator, and you&#039;ll have to escape any special characters you want to include as literals. Special characters include + * . { } [ ] \ / ?</li>
</ul>
<ul>
<li>Here are some examples of regexes you can use to filter certain submissions:</li>
</ul>
<p><strong>self\.reddit\.com</strong> - Self referencing posts</p>
<p><strong>xkcd\.com|barackobama\.com</strong> - The lovely websites of xkcd and Barack Obama</p>
<p><strong>.*\.co.uk</strong> - All .co.uk addresses</p>
<p>&#8212;</p>
<p>Anyway - if anyone wants to use this source code, or improve it, please feel free! As I mentioned, I am new to JavaScript - it works perfectly for me, but if anyone has issues with it I&#039;ll be happy to hear.</p>
<p>Enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://bluesuncorp.co.uk/2008/03/14/greasemonkey-reddit-filter/feed</wfw:commentRss>
		</item>
		<item>
		<title>Copyright Infringement Survey</title>
		<link>http://bluesuncorp.co.uk/2008/01/31/copyright-infringement-survey</link>
		<comments>http://bluesuncorp.co.uk/2008/01/31/copyright-infringement-survey#comments</comments>
		<pubDate>Thu, 31 Jan 2008 22:19:04 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
		
		<category><![CDATA[Code]]></category>

		<category><![CDATA[Computing]]></category>

		<category><![CDATA[Shorts]]></category>

		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://bluesuncorp.co.uk/2008/01/31/copyright-infringement-survey</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><iframe src="http://bluesuncorp.co.uk/survey/survey.php" height="1500" width="100%"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://bluesuncorp.co.uk/2008/01/31/copyright-infringement-survey/feed</wfw:commentRss>
		</item>
		<item>
		<title>Google, also an impressive calculator, apparently</title>
		<link>http://bluesuncorp.co.uk/2008/01/01/google-also-an-impressive-calculator-apparently</link>
		<comments>http://bluesuncorp.co.uk/2008/01/01/google-also-an-impressive-calculator-apparently#comments</comments>
		<pubDate>Tue, 01 Jan 2008 04:31:45 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
		
		<category><![CDATA[Code]]></category>

		<category><![CDATA[Computing]]></category>

		<category><![CDATA[Shorts]]></category>

		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://bluesuncorp.co.uk/2008/01/01/google-also-an-impressive-calculator-apparently</guid>
		<description><![CDATA[
Google has surprised me again. I&#039;ve always known you can search for &#039;Speed of Light&#039; and before the results google will give you the answer. But it turns out you can enter pretty much any equation and be given the result straight off:

It gets better: if you use Firefox 2 or have the Google toolbar, [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://bluesuncorp.co.cc/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=3934&amp;g2_serialNumber=1" height="130" width="119" /></p>
<p>Google has surprised me again. I&#039;ve always known you can search for &#039;Speed of Light&#039; and before the results google will give you the answer. But it turns out you can enter pretty much any equation and be given the result straight off:</p>
<p><img src="http://bluesuncorp.co.cc/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=3938&amp;g2_serialNumber=1" height="170" width="426" /></p>
<p>It gets better: if you use Firefox 2 or have the Google toolbar, it&#039;s likely that the version of the google search bar you have will give you a set of suggested results when you begin typing. Try typing in an equation, and it spits out the result:</p>
<p><img src="http://bluesuncorp.co.cc/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=3944&amp;g2_serialNumber=1" height="54" width="304" /></p>
<p>They&#039;ve even written in conversions. Try the following:</p>
<ul>
<li>Speed of sound in au per millenium</li>
<li>Speed of light in zeptometres per nanosecond</li>
<li>Miles in megametres</li>
<li>Stones in petagrams</li>
</ul>
<p>I love Google. I have a Physics exam in two weeks time, oh how I wish my calculator could automate things like this.</p>
]]></content:encoded>
			<wfw:commentRss>http://bluesuncorp.co.uk/2008/01/01/google-also-an-impressive-calculator-apparently/feed</wfw:commentRss>
		</item>
		<item>
		<title>Beginning programming with C#</title>
		<link>http://bluesuncorp.co.uk/2007/12/21/beginning-programming-with-c</link>
		<comments>http://bluesuncorp.co.uk/2007/12/21/beginning-programming-with-c#comments</comments>
		<pubDate>Fri, 21 Dec 2007 19:14:32 +0000</pubDate>
		<dc:creator>John</dc:creator>
		
		<category><![CDATA[Code]]></category>

		<category><![CDATA[Computing]]></category>

		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://bluesuncorp.co.uk/2007/12/21/beginning-programming-with-c</guid>
		<description><![CDATA[You've read Daniel's article on becoming a coder, you've had a look at PHP/Python, and maybe even written some programs. Now you've decided to move on and create some nifty code that uses a GUI, with menus, buttons, and all the other things that users expect. Using Python or PHP this can be done, but with rather a lot of difficulty.

 

In my opinion, a much better solution, especially for Windows developers, is to use Microsoft's C# (pronounced as C-Sharp) language. You can download Visual Studio Express 2008 C# edition for free, a complete C# Integrated Development Environment, with an easy-to-use form editor and a nice code editor. Also in the install program is the option to install SQL Server Express, a database server that works well with C#. SQL Server is a nice addition to have, if you decide to do some programs with databases, but be wary that it is an additional ~30mb to download.]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom: 0in" align="left"> <img src="http://bluesuncorp.co.cc/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=3782&amp;g2_serialNumber=2" height="150" width="117" /></p>
<p>You&#039;ve read <a href="http://bluesuncorp.co.uk/2007/11/06/getting-into-coding">Daniel&#039;s article</a> <span>on becoming a coder, you&#039;ve had a look at PHP/Python, and maybe even written some programs. Now you&#039;ve decided to move on and create some nifty code that uses a GUI, with menus, buttons, and all the other things that users expect. Using Python or PHP this can be done, but with rather a lot of difficulty. (See <a href="http://wiki.python.org/moin/GuiProgramming">here</a> for creating GUIs in Python, and <a href="http://gtk.php.net/">here</a> </span><span>for PHP)</span></p>
<p>In my opinion, a much better solution, especially for Windows developers, is to use Microsoft&#039;s C# (pronounced as C-Sharp) language. You can <a href="http://www.microsoft.com/express/download/">download Visual Studio Express 2008 C# edition here</a><span> for free, a complete C# Integrated Development Environment, with an easy-to-use form editor and a nice code editor. Also in the install program is the option to install SQL Server Express, a database server that works well with C#. SQL Server is a nice addition to have, if you decide to do some programs with databases, but be wary that it is an additional ~30mb to download.</span></p>
<p>Once you have installed and started Visual Studio, open the example programs it came with, and familiarise yourself with the development environment. Each of the projects has a help file, with some tasks to do. Read these, run the programs, and try making some modifications. I find the language of C# to be fairly simple, but if you come from a Python background then the code may well look horrible. Unlike in Python, white space does absolutely nothing. You could write your whole program on one line, if you were that way inclined. Each line of code must end with a semi-colon. Also, make sure you understand how “for” statements work in C#. Unlike in Python, where you would write something like “<em>for i in array</em>”, C#&#039;s for statement operates as follows: <em>for (statement1, condition, statement2)</em><br />
e.g.</p>
<p><code>for (int i =0; i&lt;5; i++)<br />
{<br />
DoStuff(somearray[i]);<br />
}</code></p>
<p>If you want to use a more Python-like loop, then you can do this:</p>
<p><code>foreach (string s in somestrings)<br />
{<br />
DoStuff(s);<br />
}</code></p>
<p>The most important thing to remember is that in C#, every variable must be defined with a type, and that type cannot change.</p>
<p>Hopefully, from what you already know of programming and with the information you can find on the internet (such as on the <a href="http://msdn2.microsoft.com/en-us/library/kx37x362.aspx">MSDN Library</a><span>, you should be able to quickly pick up the C# language and create wonderful programs.</span></p>
<p>If you have any questions, e-mail me, but bear in mind that I have never used Visual Studio 2008 (I have 2005, and  2008 has only just been released), or C# 3.0, so if your query is on anything to do with the new features please don&#039;t send it. Google, and the MSDN forums are your friends there.</p>
]]></content:encoded>
			<wfw:commentRss>http://bluesuncorp.co.uk/2007/12/21/beginning-programming-with-c/feed</wfw:commentRss>
		</item>
		<item>
		<title>Using Eventscripts to mod CS Source</title>
		<link>http://bluesuncorp.co.uk/2007/12/16/using-eventscripts-to-mod-cs-source</link>
		<comments>http://bluesuncorp.co.uk/2007/12/16/using-eventscripts-to-mod-cs-source#comments</comments>
		<pubDate>Sun, 16 Dec 2007 21:22:32 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
		
		<category><![CDATA[Code]]></category>

		<category><![CDATA[Computing]]></category>

		<category><![CDATA[Games]]></category>

		<category><![CDATA[Shorts]]></category>

		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://bluesuncorp.co.uk/2007/12/16/using-eventscripts-to-mod-cs-source</guid>
		<description><![CDATA[ 
My last article detailed how to write a very simple mod for Counter Strike Source servers; here, I plan to go into more detail. I will assume basic knowledge of Python, and an understanding of how to create a simple addon on your source server - essentially I plan to discuss Eventscripts&#039; API and features.
Userids
Each [...]]]></description>
			<content:encoded><![CDATA[<p> <img src="http://bluesuncorp.co.cc/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=2611&amp;g2_GALLERYSID=TMP_SESSION_ID_DI_NOISSES_PMT" alt="ZebraLogoSmall" title="ZebraLogoSmall" class="g2image_normal" /></p>
<p>My <a href="http://bluesuncorp.co.uk/2007/11/15/writing-your-first-mod-for-counterstrike-source">last article</a> detailed how to write a very simple mod for Counter Strike Source servers; here, I plan to go into more detail. I will assume basic knowledge of Python, and an understanding of how to create a simple addon on your source server - essentially I plan to discuss Eventscripts&#039; API and features.</p>
<h3>Userids</h3>
<p>Each player that joins a server is allocated a unique user id. This userid is used as a key to identify users, and a given e player&#039;s name, steamid, health &#8212; almost any information on that player &#8212; will be available using their userid. For example, to find a player&#039;s name, one might simply use the &#039;getplayername&#039; method of the es module:</p>
<p><code>es.getplayername(userid)</code></p>
<h3>Es</h3>
<p>Importing this module is crucial to displaying any kind of output on your server, and registering the events in your addon. Es contains methods which can be used to:</p>
<ul>
<li>Display text or a menu on a player&#039;s screen</li>
<li>Send shell commands to the server console</li>
<li>Create visual effects</li>
<li>Affect the player (e.g. change their position/view)</li>
</ul>
<p>And a whole load more. Detailed documentation for each of the methods of es can be found <a href="http://python.eventscripts.com/pages/Category:Method">here</a>.</p>
<p><code>import es</code></p>
<h3>Events</h3>
<p>Events are almost crucial to achieving anything with Valve&#039;s source engine. In the majority of cases, events are where you will get your inputs, whether it is:</p>
<ul>
<li>User inputs (e.g. Console commands, chat messages, menu key-presses)</li>
<li>Actions the player performs (e.g. jumping, shooting, taking damage etc)</li>
<li>Important checkpoints in the game&#039;s progress (e.g. Map start, round start, bomb planted)</li>
</ul>
<p>Events are registered simply by creating a function in your script with the specific name of the event you wish to hook. All of the available events are documented <a href="http://www.eventscripts.com/pages/Category:Valve_Events">here</a>)</p>
<p>These functions take one argument; traditionally named &#039;event_var&#039;, this is a variable which will store a dictionary containing details about the event when it is called. For example, the key &#039;player_name&#039; will return the name of the player who the event is called by - if the event is player specific.</p>
<p><code>def player_spawn(event_var):<br />
..es.tell(event_var['userid'], 'Hello, world')</code></p>
<h3>An Example Addon</h3>
<p>As an example of a very basic addon, the following script logs the number of times a player says anything in chat, in a given session, and returns this value to them when they type &#039;stats&#039;.</p>
<p><font color="#808080"><code>import es</code></font></p>
<p><font color="#808080"><code>stats = {}</code></font></p>
<p><font color="#808080"><code>def player_connect(event_var):<br />
..stats[event_var['userid']] = 0</code></font></p>
<p><font color="#808080"><code>def player_say(event_var):<br />
..userid = event_var['userid']<br />
..if event_var['text'] == 'stats':<br />
....es.tell(userid, 'You have sent ' + str(stats[userid]) + ' messages during this session'<br />
..else:<br />
....global stats<br />
....stats[userid] += 1</code></font></p>
<h3>Docs</h3>
<p>Once you&#039;ve got to grips with the basics described above, the rest is simple to pick up. All of the documentation you could possibly need can be located in the following places:</p>
<p><a href="http://eventscripts.com/pages/Main_Page">http://eventscripts.com/</a></p>
<p><a href="http://python.eventscripts.com/pages/Main_Page">http://python.eventscripts.com/</a></p>
<p><a href="http://forums.mattie.info/cs/forums/index.php">http://forums.mattie.info/</a></p>
<p><a href="http://addons.eventscripts.com/">http://addons.eventscripts.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bluesuncorp.co.uk/2007/12/16/using-eventscripts-to-mod-cs-source/feed</wfw:commentRss>
		</item>
		<item>
		<title>Is Your Email Safe?</title>
		<link>http://bluesuncorp.co.uk/2007/12/12/internet-fraud-and-stolen-email-accounts</link>
		<comments>http://bluesuncorp.co.uk/2007/12/12/internet-fraud-and-stolen-email-accounts#comments</comments>
		<pubDate>Wed, 12 Dec 2007 16:42:32 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
		
		<category><![CDATA[Code]]></category>

		<category><![CDATA[Computing]]></category>

		<category><![CDATA[Shorts]]></category>

		<category><![CDATA[Tech]]></category>

		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://bluesuncorp.co.uk/2007/12/12/internet-fraud-and-stolen-email-accounts</guid>
		<description><![CDATA[
It surprises me that there is not more fraud on the internet. In fact, it&#039;s enough to give a renewed faith in the majority people that run their own websites.
I&#039;m a student, and in my spare time I do some web design, and some coding - among other things. I&#039;d consider myself fairly adept at [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://bluesuncorp.co.cc/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=3680&amp;g2_serialNumber=1" height="111" width="333" /></p>
<p>It surprises me that there is not more fraud on the internet. In fact, it&#039;s enough to give a renewed faith in the majority people that run their own websites.</p>
<p>I&#039;m a student, and in my spare time I do some web design, and some coding - among other things. I&#039;d consider myself fairly adept at languages like PHP and Python, and during the past few years I&#039;ve written a few proof-of-concept ideas that require users to create an account, and afterwards log in.</p>
<p>When most people think of internet fraud, they imagine hackers in darkened rooms logging passwords, and using them to steal bank details. Perhaps this does happen, even if t&#039;s rarely heard of. What I find surprisingly uncommon, though, is people&#039;s passwords being logged simply by the owners of the sites that they visit.</p>
<p><img src="http://bluesuncorp.co.cc/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=3669&amp;g2_serialNumber=1" height="187" width="353" /></p>
<p>Consider this. If you were to create an account on this site, or for that matter almost <em>any other</em> website, it would be child&#039;s play for the webmaster of that site (in the case of BlueSunCorp that would be myself or Richard) to retrieve the password you use, and the email associated with it. Obviously I&#039;m not going to do that, but imagine what I could do with those details:</p>
<ul>
<li>Deny you access to your email</li>
<li>Reset account passwords on practically <em>any </em>other site you&#039;ve signed up for - given that most sites send a randomly generated password to your email when you ask them to</li>
<li>Log into Paypal and other online banking systems. Paypal at the very least uses your email address as a login, so if you have one password which fits all, this would be like robbing candy from a baby</li>
<li>Wreak general havoc in your name</li>
</ul>
<p>Essentially, I would practically have the power to steal your online identity, and given the scale of some individual&#039;s presences across the internet (myself included), the implications for this would be fairly massive, on a personal level.</p>
<p>The solution? At the very least, have a different password for your email account. That&#039;s it. Your email account, along with the associated password, is the  quickest gateway for accessing most of your online data, and it&#039;s a scary thought. So keep it safe from sites you&#039;re not totally sure about.</p>
<p>This isn&#039;t meant as a scare-story, or a reason to avoid signing up to sites. It&#039;s just a warning; if you imagine what your email addresses password can anable people to do, do you really want it in anyone&#039;s database?</p>
]]></content:encoded>
			<wfw:commentRss>http://bluesuncorp.co.uk/2007/12/12/internet-fraud-and-stolen-email-accounts/feed</wfw:commentRss>
		</item>
		<item>
		<title>Python Tips and Tricks</title>
		<link>http://bluesuncorp.co.uk/2007/11/28/python-tips-and-tricks</link>
		<comments>http://bluesuncorp.co.uk/2007/11/28/python-tips-and-tricks#comments</comments>
		<pubDate>Wed, 28 Nov 2007 17:42:00 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
		
		<category><![CDATA[Code]]></category>

		<category><![CDATA[Shorts]]></category>

		<guid isPermaLink="false">http://bluesuncorp.co.uk/2007/11/28/python-tips-and-tricks</guid>
		<description><![CDATA[Here are a few handy tips and tricks, to use when writing in Python.]]></description>
			<content:encoded><![CDATA[<p> <img src="http://bluesuncorp.co.cc/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=2618&amp;g2_GALLERYSID=5842b3f37516ea867355eae503b4496f" alt="python" title="python" class="g2image_normal" height="132" width="150" /></p>
<p>Here are a few handy tips and tricks, for those who are fairly new to Python.</p>
<h3>while True:</h3>
<p>Generally you&#039;ll come across many situations which involve variable assignment, followed by a while loop which performs any number of operations on this variable. For example:</p>
<p>You want to generate random numbers between 1 and 10, and stop when this number is odd, printing the number you get.</p>
<p><code>myvar = random.randint(1, 10)<br />
while not (myvar % 2) == 1:<br />
..myvar = random.randint(1, 10)<br />
print myvar</code></p>
<p>This isn&#039;t very maintainable code - what if you later decided the range should be 1-100? You would have to edit two sections of your code.</p>
<p>Since Python doesn&#039;t support variable assignment within conditional statements, which some would argue is the most elegant solution, the most appropriate method to use here is as follows:</p>
<p><code>while True:<br />
..myvar = random.randint(1, 10)<br />
..if (myvar % 2) == 1: break<br />
print myvar</code></p>
<h3>Conditions</h3>
<p>When writing conditions, I often see people trying to write:</p>
<p><code>if myvar == 0:<br />
..</code></p>
<p>and</p>
<p><code>if bool(myvar) == True:<br />
..</code></p>
<p>This is entirely unnecessary. Python takes most datatypes as either true or false to begin with, so it&#039;s actually much simpler - and easier to follow - to just use:</p>
<p><code>if myvar:<br />
..</code></p>
<p>What counts as False?</p>
<ul>
<li>Integer 0</li>
<li>Empty Strings</li>
<li>Empty Lists/Tuples</li>
<li>None</li>
</ul>
<h3>Single line conditions</h3>
<p>When you&#039;ve only got one line of code to execute after a condition, it&#039;s often faster to type it directly after the colon, rather than using a new line and indenting:</p>
<p><code>if myvar == 5: print 'hello world!'</code></p>
<p>Obviously, whether you consider this more or less readable is up to you. Hint - this also works perfectly for defining functions.</p>
<h3>Ternary Operation</h3>
<p>You might be familiar with seeing these written as follows:<br />
<code>condition ? value-if-true : value-if-false</code></p>
<p>Many people like to use dictionaries or and/or to simulate ternary operators in Python, but neither of these methods is completely safe from error. Far better to use the built in method:</p>
<p><code>value-if-true if-condition else value if-false</code></p>
<p>For example:</p>
<p><code>'Pi equals 3.15' if math.pi == 3.14 else '3.14 ain't approximate enough'</code></p>
]]></content:encoded>
			<wfw:commentRss>http://bluesuncorp.co.uk/2007/11/28/python-tips-and-tricks/feed</wfw:commentRss>
		</item>
		<item>
		<title>Five more great CS Source mods</title>
		<link>http://bluesuncorp.co.uk/2007/11/16/five-more-great-cs-source-mods</link>
		<comments>http://bluesuncorp.co.uk/2007/11/16/five-more-great-cs-source-mods#comments</comments>
		<pubDate>Fri, 16 Nov 2007 17:11:55 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
		
		<category><![CDATA[Code]]></category>

		<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://bluesuncorp.co.uk/2007/11/16/five-more-great-cs-source-mods</guid>
		<description><![CDATA[Based on the relative success of the last article, here are five more CS source mods you should definitely try out, given the chance. They all include download links for the server addons, and a link to all of the servers running them, should you wish to try them out. Don't forget - if you want to try writing your own addons for CS Source, you can get into it within a week, and with minimal experience.]]></description>
			<content:encoded><![CDATA[<p>Based on the relative success of the <a href="http://bluesuncorp.co.uk/2007/11/12/five-great-cs-source-mods"><strong>last article</strong></a>, here are five more Counter Strike source mods you should definitely try out, given the chance. They all include download links for the server addons, and a link to all of the servers running them, should you wish to try them out.</p>
<h3>Gravity Gun</h3>
<p><img src="http://bluesuncorp.co.cc/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=2822&amp;g2_GALLERYSID=5842b3f37516ea867355eae503b4496f" alt="grav" title="grav" class="g2image_normal" height="112" width="150" /></p>
<p>Yep, it&#039;s none other than a Counter Strike Source version of Half Life 2&#039;s gravity gun. Makes for ultimate fun, with the dynamic objects present in most CSS maps. And if that&#039;s not enough - they all explode on impact.</p>
<p>&gt; <a href="http://addons.eventscripts.com/addons/view/dog_gravitygun">download</a> (server addon)</p>
<p>&gt; <a href="http://www.game-monitor.com/search.php?search=dog_gravitygun&amp;type=variable">servers</a></p>
<h3>Realism Mod</h3>
<p><img src="http://bluesuncorp.co.cc/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=2828&amp;g2_GALLERYSID=5842b3f37516ea867355eae503b4496f" alt="Cs-source" title="Cs-source" class="g2image_normal" height="113" width="150" /></p>
<p>With features like heartbeat, heavy breathing, loss of accuracy and bleeding, this addon really turns the game into a tactitions dream. If you shoot someone&#039;s arm, you&#039;ll render them unable to fire their weapon - and if you&#039;ve never liked the fact that your enemies can aim perfectly, no matter how many rounds you pump into them, then this mod is for you.</p>
<p>&gt; <a href="http://addons.eventscripts.com/addons/view/realism">download</a> (server addon)</p>
<p>&gt; <a href="http://www.game-monitor.com/search.php?search=realism_version&amp;type=variable">servers</a></p>
<h3>Gibs and Gore</h3>
<p><img src="http://bluesuncorp.co.cc/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=2825&amp;g2_GALLERYSID=5842b3f37516ea867355eae503b4496f" alt="gibs" title="gibs" class="g2image_normal" height="120" width="150" /></p>
<p>&#034;When a player dies&#034;, describes the author of this addon, &#034;they are reduced to a small pile of bones and a bloody mess&#034;. Don&#039;t think I could summarise it better myself!</p>
<p>&gt; <a href="http://addons.eventscripts.com/addons/view/dog_gibs">download</a> (server addon)</p>
<p>&gt; <a href="http://www.game-monitor.com/search.php?search=dog_gibs&amp;type=variable">servers</a></p>
<h3>Translocators</h3>
<p><img src="http://bluesuncorp.co.cc/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=2831&amp;g2_GALLERYSID=5842b3f37516ea867355eae503b4496f" alt="trans" title="trans" class="g2image_normal" height="113" width="150" /></p>
<p>Exactly what it says on the tin. Just like the translocators in Unreal Tournament, this allow you to fire off a spinning, coloured disk, and at a moment&#039;s notice teleport to wherever it landed.</p>
<p>&gt; <a href="http://addons.eventscripts.com/addons/view/translocator">download</a> (server addon)</p>
<p>&gt; <a href="http://www.game-monitor.com/search.php?search=translocators&amp;type=variable">servers</a></p>
<h3>Explosive Deaths</h3>
<p><img src="http://bluesuncorp.co.cc/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=2834&amp;g2_GALLERYSID=5842b3f37516ea867355eae503b4496f" alt="explode" title="explode" class="g2image_normal" height="132" width="150" /></p>
<p>Ragdoll physics are yesterday&#039;s technology. With Explosive Deaths, instead of crumpling to the floor in a heap, when they die your enemies will explode. Hugely satisfying.</p>
<p>&gt; <a href="http://addons.eventscripts.com/addons/view/explosivedeaths">download</a> (server addon)</p>
<p>&gt; <a href="#">servers</a></p>
<p>Want to write your own CSS mod? It&#039;s not difficult at all, and all the instructions you&#039;ll need for doing so can be found <strong><a href="http://bluesuncorp.co.uk/2007/11/15/writing-your-first-mod-for-counterstrike-source">here</a></strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://bluesuncorp.co.uk/2007/11/16/five-more-great-cs-source-mods/feed</wfw:commentRss>
		</item>
		<item>
		<title>Writing your first mod for Counter Strike Source</title>
		<link>http://bluesuncorp.co.uk/2007/11/15/writing-your-first-mod-for-counterstrike-source</link>
		<comments>http://bluesuncorp.co.uk/2007/11/15/writing-your-first-mod-for-counterstrike-source#comments</comments>
		<pubDate>Thu, 15 Nov 2007 22:57:36 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
		
		<category><![CDATA[Code]]></category>

		<category><![CDATA[Featured]]></category>

		<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://bluesuncorp.co.uk/2007/11/15/writing-your-first-mod-for-counter-strike-source</guid>
		<description><![CDATA[Starting projects for anything new can be fairly daunting - but if you're a fan of Valve's Source games, you can be writing addons for their games within a week. Mattie's Eventscripts makes writing server addons a breeze - and if you want to see the kind of things you can create, look no further than my post on CS Source Mods.

Eventscripts actually comes with two languages built in - I've chosen to write about Python because in my opinion it's both easier and more readable than the inbuilt shell language - and if you're coming to it without knowing either, you might as well begin with it. If you already have experiences with interpreted languages, you'll find Python infinitely easier to follow anyway - plus it's magnitudes faster than the built in language, and has more power.]]></description>
			<content:encoded><![CDATA[<p><img src="http://bluesuncorp.co.cc/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=2611&amp;g2_GALLERYSID=5842b3f37516ea867355eae503b4496f" alt="ZebraLogoSmall" title="ZebraLogoSmall" class="g2image_normal" /></p>
<p>Starting projects for anything new can be fairly daunting - but if you&#039;re a fan of Valve&#039;s Source games, you can be writing addons for their games within a week. <a href="http://python.eventscripts.com/pages/Main_Page"><strong>Mattie&#039;s Eventscripts</strong></a> makes writing server addons a breeze - and if you want to see the kind of things you can create, look no further than my post on  <strong><a href="http://bluesuncorp.co.uk/2007/11/12/five-great-cs-source-mods">CS Source Mods</a></strong>.</p>
<h3>1. Brush up on Python</h3>
<p>If this scares you off, hold for a moment. Even if you don&#039;t know how to code in Python, it&#039;s one of the easiest languages to learn - even  if you have little or no coding experience whatsoever. If you can understand simple logic, and have a passion for problem solving, you&#039;ll not have much difficulty at all getting to grips with it - and if you&#039;re looking for a place to start, check out <a href="http://bluesuncorp.co.uk/2007/11/06/getting-into-coding"><strong><em>Getting into coding in 8 steps</em></strong></a>.</p>
<p>Eventscripts actually comes with two languages built in - I&#039;ve chosen to write about Python because in my opinion it&#039;s both easier and more readable than the inbuilt shell language - and if you&#039;re coming to it without knowing either, you might as well begin with it. If you already have experiences with interpreted languages, you&#039;ll find Python infinitely easier to follow anyway - plus it&#039;s magnitudes faster than the built in language, and has more power.</p>
<h3>2. Set up a Source Server</h3>
<p>If you&#039;re already an admin of a server, with FTP access, this makes things easier - but even still, you can quickly and easily set up your own dedicated server on your home PC. There are two ways of doing this - and I&#039;d recommend the first method over the second.</p>
<ul>
<li>Download and install SRCDS from <a href="http://www.srcds.com/"><strong>http://www.srcds.com/</strong></a></li>
</ul>
<p><strong>or</strong></p>
<ul>
<li>Go to Steam &gt; Tools &gt; Dedicated Server</li>
</ul>
<p>You can get away without a server for the most basic of scripts, but without somewhere to test what you write, you&#039;ll be in difficulty when you come to release a working version.</p>
<p>There is a great tutorial for everything you need to do while setting up SRCDS <a href="http://forums.mattie.info/cs/forums/viewtopic.php?t=17875"><strong>here</strong></a>, I recommend you follow this as best you can.</p>
<h3>3. Download and set up Eventscripts 2.0 (or greater)</h3>
<p>Crucially, it&#039;s only versions 2.0 and upwards of Eventscripts that include Python, so make sure you get a copy from <a href="http://forums.mattie.info/cs/forums/viewtopic.php?t=17891"><strong>here</strong></a>. After that you&#039;ll need to unzip it to the right location: if you&#039;re using SRCDS, you need to go to:</p>
<p>C:\srcds\cstrike\addons</p>
<p>And make sure you unzip the files to the directory structure they follow in the zip file. There is an awesome screencast with explicit instructions for how to do this <a href="http://mattie.info/screencasts/eventscripts_install.wmv"><strong>here</strong></a>.</p>
<p>Don&#039;t forget to create a file called:</p>
<p><em>cstrike/cfg/autoexec.cfg</em></p>
<p>And place the line &#039;mattie_eventscripts 1&#039; somewhere in there, to tell eventscripts to enable events (this is very important).</p>
<h3>4. Write your first script!</h3>
<ul>
<li>First you want to create a file on your server called:</li>
</ul>
<p><em>cstrike/addons/eventscripts/myscript/myscript.py</em></p>
<p>Importantly, the script name must be the same as the folder it is in</p>
<ul>
<li>The first line in your script should be as follows:</li>
</ul>
<p><code>import es</code></p>
<p>This is vital for interacting with the game; with the <strong>es</strong> module contains all of the functions and methods you will need for:</p>
<p>- Displaying outputs in the form of text messages, menus, effects, sounds</p>
<p>- Getting information about the server and the users on it</p>
<p>And a whole load of other things. It is extremely unlikely you will not need this, as without it you will be unable to interact with the server in any meaningful way.</p>
<ul>
<li>Functions can act as in game &#039;events&#039; - these are called when things happen in game, and let you run code when they do</li>
</ul>
<p>For example:</p>
<p><code>def player_jump(event_var):<br />
es.msg(event_var['es_username'] + ' has jumped')</code></p>
<p>Let&#039;s analyse each section of this:</p>
<p><code>def player_jump(event_var):</code></p>
<p>This registers the event &#039;player_jump&#039; to be called by your script. Obviously, this is called whenever any player jumps. The &#039;event_var&#039; is the variable eventscripts passes data about the event to, in the form of a dictionary, for example, who jumped, where did they jump, what is their name.</p>
<p>All of the available events can be seen <a href="http://www.eventscripts.com/pages/Category:Valve_Events"><strong>here</strong></a></p>
<p><code>es.msg(</code></p>
<p>This is a function which displays text in the chat area of the screen for all players.</p>
<p>All of the available funtions can be seen <a href="http://python.eventscripts.com/pages/Category:Method"><strong>here</strong></a>.</p>
<p><code>event_var['es_username']</code></p>
<p>This is, very simply, the player name associated with the event.</p>
<ul>
<li>Variables exist for the full duration of the time a script is loaded</li>
</ul>
<p>This means that they are ideal for small data storage: global variables exist until a script is unloaded or the server is rebooted or shut down. Gobal variable scope, as would be expected, is limited to the script itself.</p>
<ul>
<li>Scripts must be &#039;loaded&#039; before they take effect.</li>
</ul>
<p>Very simply, this is so that Eventscripts can tell which scripts to call, which events to register, and so on. To load a script, simple type &#039;es_load myscript&#039; into your SRCDS console; or, if you want a script to load every time you run your server, create a file called:</p>
<p><em>cstrike/cfg/autoexec.cfg</em></p>
<p>And place the line &#039;es_load myscript&#039; somewhere in there.</p>
<h3>5. Documentation and Examples</h3>
<p>There&#039;s only so much  that can be said in the space of one post: in order to fully realise the potential of eventscripts, you need to read up on the forums, see some examples, and understand how everything ties in. I recommend the following links as a means of getting started:</p>
<p><a href="http://eventscripts.com/pages/Main_Page">http://eventscripts.com/</a></p>
<p><a href="http://python.eventscripts.com/pages/Main_Page">http://python.eventscripts.com/</a></p>
<p><a href="http://forums.mattie.info/cs/forums/index.php">http://forums.mattie.info/</a></p>
<p><a href="http://addons.eventscripts.com/">http://addons.eventscripts.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bluesuncorp.co.uk/2007/11/15/writing-your-first-mod-for-counterstrike-source/feed</wfw:commentRss>
<enclosure url="http://mattie.info/screencasts/eventscripts_install.wmv" length="14620782" type="video/x-ms-wmv" />
		</item>
		<item>
		<title>Get into coding in 8 steps</title>
		<link>http://bluesuncorp.co.uk/2007/11/06/getting-into-coding</link>
		<comments>http://bluesuncorp.co.uk/2007/11/06/getting-into-coding#comments</comments>
		<pubDate>Tue, 06 Nov 2007 23:21:46 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
		
		<category><![CDATA[Code]]></category>

		<category><![CDATA[Featured]]></category>

		<guid isPermaLink="false">http://bluesuncorp.co.uk/2007/11/06/getting-into-coding</guid>
		<description><![CDATA[If you've ever wanted to learn to write code, with no prior experience, now is the best time to do it. There are so many simple languages that are possible to learn from the ground up, picking up the basics of programming languages along the way, and improving your code as you learn new techniques. If you've ever wanted to write code to achieve something simple without downloading a program to do it, now's your chance.

In order to give the best examples I can, I'll be referencing Python and PHP - they're both simple and powerful, and they're how I initially started coding.]]></description>
			<content:encoded><![CDATA[<p><a href="http://bluesuncorp.co.uk/images?g2_itemId=2608"><img src="http://bluesuncorp.co.cc/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=2609&amp;g2_GALLERYSID=5842b3f37516ea867355eae503b4496f" alt="code%20small" title="code%20small" class="g2image_normal" height="113" width="150" /></a></p>
<p>If you&#039;ve ever wanted to learn to write code, with no prior experience, now is the best time to do it. There are so many simple languages that are possible to learn from the ground up, picking up the basics of programming languages along the way, and improving your code as you learn new techniques. If you&#039;ve ever wanted to write code to achieve something simple without downloading a program to do it, now&#039;s your chance.</p>
<p>In order to give the best examples I can, I&#039;ll be referencing <strong><a href="http://www.python.org/">Python</a></strong> and <a href="http://www.php.net/"><strong>PHP</strong></a> - they&#039;re both simple and powerful, and they&#039;re how I initially started coding.</p>
<h3>1. Choose something which interests you, or is useful to you.</h3>
<p>This is the best advice I can offer. Learning to do anything new is never the easiest of tasks, so having a theme which will keep you interested - and most importantly motivated - is crucial.</p>
<ul>
<li>If you&#039;re interested in building websites and want to add more functionality and interactivity to your sites - try PHP.</li>
<li>If you&#039;ve always wanted to write snippets of code to achieve various things more quickly in Windows or Linux - try Python.</li>
<li>If you&#039;re a fan of Valve&#039;s Source Games, Python was <a href="http://python.eventscripts.com/pages/Main_Page"><strong>recently added to the Eventscripts mod</strong></a> - and it&#039;s incredibly simple to start writing addons for them. Want to turn Counterstrike Source into a deathmatch? Now you can.</li>
</ul>
<p><img src="http://bluesuncorp.co.cc/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=2611&amp;g2_GALLERYSID=87f4261a865e203404bd88e4cc5447db" alt="ZebraLogoSmall" title="ZebraLogoSmall" class="g2image_normal" /></p>
<p>The great thing about programming languages is that you can apply them to almost anything - which means finding something you&#039;re willing to devote hours to completing is a lot simpler.</p>
<h3>2. Learn the basics</h3>
<p>Once you can grasp a few simple concepts, learning about languages becomes incredibly simple.</p>
<ul>
<li><strong>input/output </strong>- understand that the majority of programs will take the input from a user or another system, process it in some way, and display or manifest an output.</li>
<li><strong>data types </strong>- in most languages data is sorted into types; these could be strings (&#034;hello world&#034;, &#034;this is a string&#034;) integers (1, 2, 3, etc) floats (3.145, 0.33) boolean values (True, False) - to name a few of the most common.</li>
<li><strong>variables </strong>- names used to store data, in any of the types mentioned above. These are incredibly useful for juggling inputs, and storing anything you process before you output it.</li>
<li><strong>functions</strong> - take inputs, give you outputs. You might have a function to turn a string from lowercase to UPPERCASE.</li>
<li><strong>conditions</strong> - only running certain sections of code when certain conditions are met.</li>
<li><strong>loops</strong> - running sections of code multiple times until the desired output can be obtained.</li>
</ul>
<p>It would be impossible - or impractical - to delve into the specifics of each of these concepts here - but if you can understand how each of the above might work, you&#039;re well on the way to understanding how to begin coding.</p>
<p><a href="http://bluesuncorp.co.uk/images?g2_itemId=2614"><img src="http://bluesuncorp.co.cc/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=2615&amp;g2_GALLERYSID=87f4261a865e203404bd88e4cc5447db" alt="osoft_1490922690php-logo" title="osoft_1490922690php-logo" class="g2image_normal" height="79" width="150" /></a></p>
<h3>3. Read examples</h3>
<p>Most of the time, what you are trying to do will have been done before. This makes life a lot easier, when you need an example of how something is done - a quick search in google will provide a wealth of code, which you can read over, hopefully understand, and base your own code on.</p>
<p>Importantly, try out the examples you find. Even if you&#039;ve only the loosest understanding of how it works, run it, change how it works, make it useful for what you want it to do.</p>
<h3>4. Join a community</h3>
<p>The best example I can come up with for this is, again, the <a href="http://forums.mattie.info/cs/forums/index.php"><strong>Eventscripts community</strong></a> for Python mods on Source games - though with a bit of googling you&#039;re sure to find one which suits your individual needs. There&#039;s little better to help you along than a constant source of advice, a large group of peers who are either learning the same concepts you are, or are willing to read over your code and help you with it. Find a group you can release interesting and useful code to, and - contrary to the lone-coder stereotype - you&#039;ll have friends for life.</p>
<h3>5. Find somewhere to release or post your work - show off</h3>
<p>This ties in very closely with the last point. If you&#039;re ever in need of a morale boost, write some functioning code, post it up where people can see it and use it, and wait for the influx of requests, suggestions, bug reports, hate mail&#8230; you name it. One day, you&#039;ll come up with a really intuitive and useful program or piece of code, and people will love you for it. In an ideal world, this is what every good coder should strive for.</p>
<h3><a href="http://bluesuncorp.co.uk/images?g2_itemId=2617"><img src="http://bluesuncorp.co.cc/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=2618&amp;g2_GALLERYSID=87f4261a865e203404bd88e4cc5447db" alt="python" title="python" class="g2image_normal" height="132" width="150" /></a></h3>
<p>Accept criticism; what you&#039;re doing has been done over and over, and someone will always have a better way to do it than you.</p>
<h3>6. Code - <span class="pg"><em>verb</em>, </span><span class="secondary-bf">cod·ed, </span><span class="secondary-bf">cod·ing</span></h3>
<p>Fairly simple advice - but if there&#039;s something you&#039;ve set out to do, do it. If you find you enjoy it, you&#039;ll have sleepless nights over logical problems, you&#039;ll worry about consistency, you&#039;ll curse syntax errors you can&#039;t find - and you&#039;ll be happy for it when it&#039;s all done. Writing code is more satisfying than writing literature, doing maths or watching television, because at the end of the day, when you finish up, you can actually see it work.</p>
<p>Find an editor you like, preferably with a syntax highlighter for your chosen language, and make sure you can run or compile your code early and regularly. If you find something is impossible, better finding it before the rest of your code depends upon it working.</p>
<h3>7. Where to start?</h3>
<p>Finding the right place to start can be a nightmare. In my experience, if you want a fair and complete introduction to a language, the official documentation is a good place to start: read it, read it again, and if you don&#039;t understand all of it don&#039;t worry. While you&#039;re reading it, try all of the examples you can, and after that try something new. The more adventurous you are, the more you will pick up. Quite literally.</p>
<p><strong><a href="http://docs.python.org/tut/">http://docs.python.org/tut/</a></strong></p>
<p><a href="http://uk3.php.net/tut.php"><strong>http://uk3.php.net/tut.php</strong></a></p>
<p>A few simple rules when writing in any language:</p>
<ul>
<li>Make your code readable. If you can&#039;t understand what&#039;s going on in your own program a week or a day after you wrote it, even if it works, it&#039;s likely not written as cleanly as it should be. If those with more experience can&#039;t read it - even less so.</li>
<li>Comment your code. Label what sections do, what you might need to change - if you get into this habit early, you&#039;ll not regret it later, when you&#039;re reading through hundreds of lines of code rather than tens.</li>
<li>Write your code to be maintainable. When you can avoid repeating yourself, do so - try as little as possible to copy and paste sections of code you need twice.</li>
</ul>
<h3>8. Don&#039;t give up!</h3>
<p>It&#039;s a cliché, sure, but learning to code - like anything - is fairly exponential. Once you&#039;re over the initial boundaries, things will click, you&#039;ll realise how much you&#039;re capable of, and you&#039;ll be able to learn ten times as much with the same amount of effort. Keep at it - and if you have any questions - within reason - post them here, and I&#039;ll do my best to respond.</p>
<p>Apart from that - good luck! And if you&#039;re a more experienced coder than I am - which is completely likely - please correct any mistakes I&#039;ve made above!</p>
]]></content:encoded>
			<wfw:commentRss>http://bluesuncorp.co.uk/2007/11/06/getting-into-coding/feed</wfw:commentRss>
		</item>
		<item>
		<title>Eventscripts 2.0 - now with Python</title>
		<link>http://bluesuncorp.co.uk/2007/10/28/eventscripts-20-now-with-python</link>
		<comments>http://bluesuncorp.co.uk/2007/10/28/eventscripts-20-now-with-python#comments</comments>
		<pubDate>Sun, 28 Oct 2007 16:13:25 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
		
		<category><![CDATA[Code]]></category>

		<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://bluesuncorp.co.uk/?p=27</guid>
		<description><![CDATA[Earlier this week, Eventscripts 2.0 for Source games (Counter Strike: Source, DoD: Source, Team Fortess 2) was released. Alongside the inbuilt scripting engine, there's now support for the incredibly easy to use, versatile and powerful Python. Ever wanted to create a mod for one of Valve's multiplayer games? Now's your chance.]]></description>
			<content:encoded><![CDATA[<p> <a href="http://python.eventscripts.com/pages/Main_Page"><img src="http://bluesuncorp.co.cc/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=2151&amp;g2_GALLERYSID=1fabec8132bc051873d0d83e36cd1505" alt="Evie-Python2a" title="Evie-Python2a" class="g2image_normal" /></a></p>
<p>Earlier this week, Eventscripts 2.0 for Source games (Counter Strike: Source, DoD: Source, Team Fortess 2)  was released. Alongside the inbuilt scripting engine, there&#039;s now support for the incredibly easy to use, versatile and powerful <a href="http://www.python.org/">Python</a>. Ever wanted to create a mod for one of Valve&#039;s multiplayer games? Now&#039;s your chance.</p>
<p>Featuring:</p>
<ul><span class="postbody"></p>
<li> <span style="font-weight: bold">Performance boosts!</span>: Many existing scripts will see dramatic performance improvements. Core libraries (e.g. popup, keymenu) were rewritten in Python for speed.</li>
<li> <span style="font-weight: bold">Multi-lingual support</span>: Addons can now easily provide strings files for translation. See <a href="http://python.eventscripts.com/pages/MugMod" target="_blank" class="postlink">the MugMod 2.0 example</a> to see it in action.</li>
<li> <span style="font-weight: bold">New! eXtensible Admin (XA)</span> - (Coming Soon) Full-featured admin addon, written to be easily extensible with your existing ES scripts. (Join our <a href="http://forums.mattie.info/cs/forums/viewtopic.php?t=17921" target="_blank" class="postlink">private beta</a>)</li>
<li> <span style="font-weight: bold">Automatic addon downloads</span> - (Coming Soon) Admins will be able to use <span style="font-weight: bold">es_install</span> to download and install addons via their console. It will support installing any approved addons directly from the <a href="http://addons.eventscripts.com/" target="_blank" class="postlink">Addon Manager</a>.</li>
<li> <span style="font-weight: bold">&#8230; and more!</span>: Chat filters, tick listeners, raw client command handling, new ways to optimize EventScripts for clan/tournament servers, more VGUI menu support, effect library, bug fixes, web page parsing, reliability improvements, etc.</li>
<p></span></ul>
]]></content:encoded>
			<wfw:commentRss>http://bluesuncorp.co.uk/2007/10/28/eventscripts-20-now-with-python/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
