A new user interface for you! Read more...

File user-manual.html of Package kbang

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
 <script type="text/javascript">
 
 (function(){
function a(c){this.t={};this.tick=function(d,g,b){var e=b?b:(new Date).getTime();this.t[d]=e};this.tick("start",null,c)}var f=new a;window.jstiming={Timer:a,load:f};try{window.jstiming.pt=window.external.pageT}catch(h){};
})();

 
 
 
 var codesite_token = null;
 
 
 var logged_in_user_email = null;
 
 </script>
 <title>UserManual - 
 kbang -
 
 This is the user manual of the SVN trunk version of KBang - Google Code</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
 
 <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/6209364925050224960/css/ph_core.css">
 
 <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/6209364925050224960/css/ph_detail.css" >
 
 
 
 
<!--[if IE]>
 <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/6209364925050224960/css/d_ie.css" >
<![endif]-->
</head>
<body class="t6">
 <div id="gaia">
 
 <span>
 
 
 <a href="#" id="projects-dropdown" onclick="return false;">My favorites</a>
 
 | <a href="https://www.google.com/accounts/ServiceLogin?service=code&ltmpl=phosting&continue=http%3A%2F%2Fcode.google.com%2Fp%2Fkbang%2Fwiki%2FUserManual&amp;followup=http%3A%2F%2Fcode.google.com%2Fp%2Fkbang%2Fwiki%2FUserManual" onclick="_CS_click('/gb/ph/signin');">Sign in</a>
 
 </span>

 </div>
 <div class="gbh" style="left: 0pt;"></div>
 <div class="gbh" style="right: 0pt;"></div>
 
 
 <div style="height: 1px"></div>
 <table style="padding:0px; margin: 20px 0px 0px 0px; width:100%" cellpadding="0" cellspacing="0">
 <tr style="height: 58px;">
 <td style="width: 55px; text-align:center;">
 <a href="/p/kbang/">
 
 
 
 <img src="/p/kbang/logo?logo_id=1244471642" alt="Logo">
 
 
 </a>
 </td>
 <td style="padding-left: 0.8em">
 
 <div id="pname" style="margin: 0px 0px -3px 0px">
 <a href="/p/kbang/" style="text-decoration:none; color:#000">kbang</a>
 </div>
 <div id="psum">
 <i><a id="project_summary_link" href="/p/kbang/" style="text-decoration:none; color:#000">KBang is a multiplayer wild west-themed card game.</a></i>
 </div>
 
 </td>
 <td style="white-space:nowrap; text-align:right">
 
 <form action="/hosting/search">
 <input size="30" name="q" value="">
 <input type="submit" name="projectsearch" value="Search projects" >
 </form>
 
 </tr>
 </table>



 <table id="mt" cellspacing="0" cellpadding="0" width="100%" border="0">
 <tr>
 <th onclick="if (!cancelBubble) _go('/p/kbang/');">
 <div class="tab inactive">
 <div class="round4"></div>
 <div class="round2"></div>
 <div class="round1"></div>
 <div class="box-inner">
 <a onclick="cancelBubble=true;" href="/p/kbang/">Project&nbsp;Home</a>
 </div>
 </div>
 </th><td>&nbsp;&nbsp;</td>
 
 
 
 
 <th onclick="if (!cancelBubble) _go('/p/kbang/downloads/list');">
 <div class="tab inactive">
 <div class="round4"></div>
 <div class="round2"></div>
 <div class="round1"></div>
 <div class="box-inner">
 <a onclick="cancelBubble=true;" href="/p/kbang/downloads/list">Downloads</a>
 </div>
 </div>
 </th><td>&nbsp;&nbsp;</td>
 
 
 
 
 
 <th onclick="if (!cancelBubble) _go('/p/kbang/w/list');">
 <div class="tab active">
 <div class="round4"></div>
 <div class="round2"></div>
 <div class="round1"></div>
 <div class="box-inner">
 <a onclick="cancelBubble=true;" href="/p/kbang/w/list">Wiki</a>
 </div>
 </div>
 </th><td>&nbsp;&nbsp;</td>
 
 
 
 
 
 <th onclick="if (!cancelBubble) _go('/p/kbang/issues/list');">
 <div class="tab inactive">
 <div class="round4"></div>
 <div class="round2"></div>
 <div class="round1"></div>
 <div class="box-inner">
 <a onclick="cancelBubble=true;" href="/p/kbang/issues/list">Issues</a>
 </div>
 </div>
 </th><td>&nbsp;&nbsp;</td>
 
 
 
 
 
 <th onclick="if (!cancelBubble) _go('/p/kbang/source/checkout');">
 <div class="tab inactive">
 <div class="round4"></div>
 <div class="round2"></div>
 <div class="round1"></div>
 <div class="box-inner">
 <a onclick="cancelBubble=true;" href="/p/kbang/source/checkout">Source</a>
 </div>
 </div>
 </th><td>&nbsp;&nbsp;</td>
 
 
 <td width="100%">&nbsp;</td>
 </tr>
</table>
<table cellspacing="0" cellpadding="0" width="100%" align="center" border="0" class="st">
 <tr>
 
 
 
 <td>
 <div class="issueDetail">
<div class="isf">
 
 <span class="inIssueList"> 
 <span>Search</span>
 <form action="/p/kbang/w/list" method="GET" style="display:inline">
 <select id="can" name="can" style="font-size:92%">
 <option disabled="disabled">Search within:</option>
 
 <option value="1" >&nbsp;All wiki pages</option>
 <option value="3" >&nbsp;Featured pages</option>
 <option value="2" selected="selected">&nbsp;Current pages</option>
 
 
 <option value="4" >&nbsp;Deprecated pages</option>
 
 </select>
 <span>for</span>
 <span id="qq"><input type="text" size="32" id="q" name="q" value="" style="font-size:92%" ></span>
 
 
 <input type="submit" value="Search" style="font-size:92%" >
 </form>
 </span>

 
 
 
 
 
 
 

</div>
</div>

 </td>
 
 
 
 
 
 
 
 
 <td height="4" align="right" valign="top" class="bevel-right">
 <div class="round4"></div>
 <div class="round2"></div>
 <div class="round1"></div>
 </td>
 </tr>
</table>
<script type="text/javascript">
 var cancelBubble = false;
 function _go(url) { document.location = url; }
</script>


<div id="maincol"
 
>

 
<!-- IE -->






 <style type="text/css">
 .artifactcomment, #commentform {
 margin: .5em 0 0 0;
 padding: .3em 0 .3em .3em;
 border-top: 3px solid #c3d9ff;
 }
 #commentform { padding-top: 1em; }
 .delcom { background: #e8e8e8 }
 .commentcontent { margin: 1em 0;}
 </style>


 <div id="wikicontent">
 <table width="100%" border="0" cellspacing="0" cellpadding="0">
 <tr>
 
 <td class="vt" id="wikimaincol" width="100%">
 
 <div style="float:right; width:18em" id="wikimeta">
 <div class="pmeta_bubble_bg">
 <div class="round4"></div>
 <div class="round2"></div>
 <div class="round1"></div>
 <div class="box-inner">
 <table style="padding: 5px">
 <tr><td colspan="2" style="padding-bottom:5px">Updated <span title="Sun Jul  5 06:24:55 2009">Jul 05 (3 days ago)</span>
 
 by <a style="white-space: nowrap" href="/u/MacJariel/">MacJariel</a>
 </td></tr>
 
 <tr><th class="vt">Labels:</th>
 <td>
 
 <a href="/p/kbang/w/list?q=label:Featured"
 title=""
 >Featured</a>
 
 </td>
 </tr>
 
 
 
 </table>
 </div>
 <div class="round1"></div>
 <div class="round2"></div>
 <div class="round4"></div>
 </div>
 </div>
 
 <div id="wikiheader" style="margin-bottom:1em">
 
 <span style="font-size:120%;font-weight:bold">UserManual</span>
 &nbsp;
 
 
 <div style="font-style:italic; margin-top: 3px">This is the user manual of the SVN trunk version of KBang</div>
 
 </div>
 <h1><a name="Introduction"/>Introduction</h1><p>KBang is a <a href="http://en.wikipedia.org/wiki/Cross-platform" rel="nofollow">cross-platform</a> <a href="http://en.wikipedia.org/wiki/Open_source" rel="nofollow">open source</a> implementation of <a href="http://en.wikipedia.org/wiki/Bang!" rel="nofollow">Bang!</a>, the card game designed by Emiliano Sciarra. The goal of this project is to allow Bang! enthusiasts play the game online with another folks from around the world. </p><p><ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Installation">Installation</a></li><li><a href="#Windows">Windows</a></li><ul><li><a href="#Precompiled_package">Precompiled package</a></li><li><a href="#Compiling_from_sources">Compiling from sources</a></li></ul><li><a href="#Linux">Linux</a></li><ul><li><a href="#Compiling_from_sources">Compiling from sources</a></li></ul><li><a href="#Client">Client</a></li><ul><li><a href="#Connecting_to_server">Connecting to server</a></li><li><a href="#Creating_games">Creating games</a></li><li><a href="#Joining_games">Joining games</a></li><li><a href="#Gameplay">Gameplay</a></li></ul></ul> </p><h1><a name="Installation"/>Installation</h1><p>KBang supports several platforms and operating systems. Unfortunately there is only Windows build now - for other platforms you have to compile sources yourself. This will hopefully change in the future, as we plan to support various Linux distributions, as well as provide Mac OS X binaries. </p><h1><a name="Windows"/>Windows</h1><p>The preferred method is to use the binary package, although you can compile KBang yourself (for example to verify a bugfix in the SVN).  </p><h2><a name="Precompiled_package"/>Precompiled package</h2><p>The Windows version of KBang is distributed in a zipped archive. This archive contains compiled KBang binaries for both client and server, graphics files and bundled Qt4 runtime files. To install KBang on your Windows, simply unpack the archive to a folder. You can then execute one of the <i>exe</i> files to run client or server. </p><h2><a name="Compiling_from_sources"/>Compiling from sources</h2><p>If you want to, you can compile KBang from sources by yourself. First of all get the sources. You can get them either from the download section, or from SVN.  </p><h3><a name="Checking-out_sources_from_SVN"/>Checking-out sources from SVN</h3><p>If you are not familiar with SVN, I recommend you to download and install <a href="http://tortoisesvn.net/downloads" rel="nofollow">TortoiseSVN</a>. After you install it, it will extend the context menu in Windows. </p><p>Go to the folder where you want to download the sources and with right click open the context menu. From the context menu select <strong>SVN checkout</strong>. Enter <strong><a href="http://kbang.googlecode.com/svn/trunk/*" rel="nofollow">http://kbang.googlecode.com/svn/trunk/*</a> to the <i>URL of repository</i> field and press <i>OK</i>. It should download the sources now. </strong></p><p>In the future you can update the repository by the <strong>SVN update</strong> option from the context menu. </p><h3><a name="Compiling_with_MinGW"/>Compiling with MinGW</h3><p>The easiest way how to compile KBang on Windows is to use the <strong>Qt SDK for Windows</strong>. You can download it from the <a href="http://www.qtsoftware.com/downloads" rel="nofollow">QtSoftware download site</a>. After you have installed Qt SDK, run <strong>Qt Creator</strong> and open the <strong>kbang.pro</strong> file, that is located in the root directory of the sources. Then click <strong>Build all</strong> from the <strong>Build</strong> menu. </p><p>When the compilation is finished (the small vertical bar on the left panel is green), it should create files <strong>kbang-client.exe</strong> and <strong>kbang-server.exe</strong> in debug or release subdirectory. </p><p>To run those files, you need to supply gfx directory and dll files. The best thing is to use them from the binary package. Just download the latest binary package, unzip it somewhere and replace the exe files with those compiled ones. </p><h3><a name="Compiling_with_Visual_Studio"/>Compiling with Visual Studio</h3><p>Visual Studio is not currently supported, but I would appreciate if someone would like to make it work. I am afraid that there need to be some fixes in code to be done to make it compile. If you send me the compile log with errors, I can fix them in SVN. </p><p><i>Note that KBang supports Windows XP and newer. You can experience problems (or not be able to run KBang at all) on older Windows.</i> </p><h1><a name="Linux"/>Linux</h1><p>At the current state we do not provide Linux binaries so you need to compile KBang yourself. </p><h2><a name="Compiling_from_sources"/>Compiling from sources</h2><p>First you need to get source files. You can get them either from the download section, or from SVN.  </p><p>You also need Qt4 library. </p><p>On Debian/Ubuntu: </p><pre class="prettyprint">$ sudo apt-get install libqt4-dev</pre><p>On Gentoo: </p><pre class="prettyprint">$ emerge qt:4</pre><p>Then download the sources and unpack them into a directory. </p><pre class="prettyprint">$ tar xzf kbang-x.y.z.tar.gz
$ cd kbang-x.y.z</pre><p>Finally compile the sources. </p><pre class="prettyprint">$ qmake kbang.pro
$ make</pre><p><strong>Note:</strong> if you have both Qt3 and Qt4 installed, you may need to use <strong>qmake-qt4</strong> instead of <strong>qmake</strong>. If you use Qt3 version of qmake, the compilation will fail on missing header files (QIODevice, ...). </p><p>You can then execute client or server. </p><pre class="prettyprint">$ ./kbang-client
$ ./kbang-server</pre><h1><a name="Client"/>Client</h1><p>For end users the most interesting part of KBang project would be the <i>client</i>. If you want to play over the Internet, you do not have to run the server yourself and connect to the official KBang server <strong>alderan.cz</strong>. </p><h2><a name="Connecting_to_server"/>Connecting to server</h2><p>After you start the client, you need to connect to a server. Select <i>Connect to server</i> from <i>Game</i> menu and the server dialog will pop up. To play over the internet you can connect to <strong>alderan.cz</strong>, which is the default server. If you do not have access to the internet, you can still play on your LAN or run the server yourself. To connect to the server that runs on your machine, add a server with address <strong>localhost</strong>. </p><h2><a name="Creating_games"/>Creating games</h2><p>When you connect to a server, you can create a new game. Select <strong>Create new game</strong> from the <strong>Game</strong> menu. In the dialog that pops up you can set the parameters of the game: <ul><li><i>Game Name</i> - the game will be listed under this name. </li><li><i>Game Description</i> - additional description of the game, can be left empty. </li><li><i>Number of Players</i> - the expected minimal and maximal count of players. The game can be started only if enough players connect. </li><li><i>Number of AI Players</i> - set this number if you want to have AI players in your game. </li><li><i>Max. Number of Spectators</i> <tt>(not implemented yet)</tt> - you can limit the number of spectators with this option. </li><li><i>Password for Players</i> - this option allows you to protect your game with password. Players that want to join your game need to know this password. Leave this option empty to disable password. </li><li><i>Password for Spectators</i> - this option allows you to protect your game with password. Anyone that wants to spectate your game need to know this password. Leave this option empty to disable password. </li><li><i>Order of Players</i> - if set to <i>chronological</i>, the order of players around the table is kept as the players connect to the game. If set to <i>random</i>, players are shuffled after the game starts. </li></ul></p><p>When you create a new game, you automatically join it as a new player. You can set the player properties as well. This properties are described in the <i>Joining games</i> section. </p><h2><a name="Joining_games"/>Joining games</h2><p>You can join a game by selecting <strong>Join Game</strong> option from the <strong>Game</strong> menu. The <i>Join Game</i> dialog appears. In the left part you can see all the games on the server. If you select a game from the list, you can see the information about the game and the list of players in the left part of the dialog. </p><p>To join a game, select the game and then select a player that you want to join to. If the game is in the <i>waiting</i> state, you can create a new player. In this case, select <i>Create new player</i> in the player list. </p><p>Finally you can set the player properties: <ul><li><i>Player Name</i> - the name of the player. </li><li><i>Player Password</i> - the password of the player. This password is used in case of reconnecting to a player. For example if you by an accident disconnect from a game, you can reconnect back and continue in game. To prevent misuse of this feature, you need to enter the same password as before. </li><li><i>Avatar</i> - you can set an avatar which is then displayed next to your name in game. Click on the <strong>Avatar</strong> area and select the file with your avatar. The image is automatically resized. </li></ul></p><h2><a name="Gameplay"/>Gameplay</h2><p>Every game starts in the <i>waiting</i> state. As soon as enough players connect to the game, it can be started by the creator by pressing the <strong>Start</strong> button in the middle of the table. The cards are then dealt and the game starts. </p><p>The further text assumes that you are familiar with the rules of the Bang! game. If you are new to Bang!, please read the official rules. They can be found on the <a href="http://www.davincigames.com/page_eng.cfm?sez=01&amp;gioco=bang!" rel="nofollow">official Bang! site</a> in various languages. </p><h3><a name="Zooming_cards"/>Zooming cards</h3><p>If you want to read the text on a card, you can zoom it by clicking on it with right mouse button. </p><h3><a name="Beginning_of_the_turn"/>Beginning of the turn</h3><p>The turn typically starts by drawing two cards from the deck. You can do this by clicking on the deck. If you have Jail (or Dynamite) in front of you, you need to &quot;Draw!&quot; to check its effect. You can do it by clicking on the Jail (or Dynamite) card. Note that you always check the Dynamite first. </p><p>Certain characters have the ability to draw differently: <ul><li><i>Kit Carlson</i> may draw 3 cards, select 2 of them and return the remaining back to the top of the deck. To use this ability, click on the Kit Carlson card, instead of clicking the deck. Three cards then gather in the middle of the table. Click on the cards that you want to take. </li><li><i>Pedro Ramirez</i> may draw the first card from the top of the discard pile. To use this ability, click on the Pedro Ramirez card, instead of clicking the deck. </li><li><i>Jesse Jones</i> may draw the first card from the hand of arbitrary player. To use this ability, click on the Jesse Jones card and select the target player. </li></ul></p><h3><a name="Main_phase"/>Main phase</h3><p>In the main phase you can play cards from your hand. You can play most of the cards by simply clicking on them. To play a card that requires to specify target player or target card, click the card and then click on the target player or target card. </p><h3><a name="Reactions"/>Reactions</h3><p>When someone plays a card that effects you, you can either decide not to react by clicking the <strong>Pass</strong> button or you can counter the effect by another card by clicking on that card. To use Barrel, simply click it. Do not forget, that Barrel can be played only against Bang! and Gatling. </p><p>You can also use the Jourdonnais ability. Jourdonnais is considered to have one implicit barrel. To draw a card on that barrel, click on the Jourdonnais card. </p><p>When someone plays General Store, you can pick a card by clicking on it. </p><h3><a name="End_of_turn"/>End of turn</h3><p>If you want to end your turn, click on the <strong>End Turn</strong> button. If you have more cards in your hand than your life points, you need to discard some cards. Click on the <strong>Discard</strong> button and then select cards you want to discard. </p><h3><a name="Using_character_abilities"/>Using character abilities</h3><p>Most of the character abilities are applied automatically, so you do not have to remember them. However some of them are voluntary, so you can use them only if you want. Some of the character abilities have been discussed in corresponding sections above. The following character abilities that need to be activated are: <ul><li><i>Sid Ketchum</i> - he can discard two cards and to regain one life point. To use this ability, click on the Sid Ketchum card and select two cards from your hand. <i>According to Bang! rules, this ability can be used at any time in the game (with a little exception when Panic or Cat Balou is played), however in KBang you can use this ability only in your main phase or when you are about to lose your last life point. </li></ul></i></p>
 </td> 
 </tr>
 </table>
 </div>


 
 
 
 
 <br>
 <div class="artifactcomment">
 <img src="http://www.gstatic.com/codesite/ph/images/triangle.gif"><a href="https://www.google.com/accounts/ServiceLogin?service=code&ltmpl=phosting&continue=http%3A%2F%2Fcode.google.com%2Fp%2Fkbang%2Fwiki%2FUserManual&amp;followup=http%3A%2F%2Fcode.google.com%2Fp%2Fkbang%2Fwiki%2FUserManual"
 >Sign in</a> to add a comment
 </div>
 
 

<form name="delcom" action="../w/delComment.do" method="POST">
 <input type="hidden" name="sequence_num" value="" >
 <input type="hidden" name="mode" value="" >
 <input type="hidden" name="pagename" value="UserManual" >
 <input type="hidden" name="token" value="" >
</form>



<script src="http://www.gstatic.com/codesite/ph/6209364925050224960/js/prettify/prettify.js"></script>
<script type="text/javascript">
 prettyPrint();
</script>
<script type="text/javascript" src="http://www.gstatic.com/codesite/ph/6209364925050224960/js/dit_scripts_20081013.js"></script>



  
 <script type="text/javascript" src="http://www.gstatic.com/codesite/ph/6209364925050224960/js/core_scripts_20081103.js"></script>
 <script type="text/javascript" src="/js/codesite_product_dictionary_ph.pack.04102009.js"></script>
 
 
 
 </div>
<div id="footer" dir="ltr">
 
 <div class="text">
 
 &copy;2009 Google -
 <a href="/">Code Home</a> -
 <a href="/tos.html">Terms of Service</a> -
 <a href="http://www.google.com/privacy.html">Privacy Policy</a> -
 <a href="/more/">Site Directory</a> -
 <a href="/p/support/">Project Hosting Help</a>
 
 </div>
</div>
<script type="text/javascript">
/**
 * Reports analytics.
 * It checks for the analytics functionality (window._gat) every 100ms
 * until the analytics script is fully loaded in order to invoke siteTracker.
 */
function _CS_reportAnalytics() {
 window.setTimeout(function() {
 if (window._gat) {
 try {
 siteTracker = _gat._getTracker(CS_ANALYTICS_ACCOUNT);
 siteTracker._trackPageview();
 } catch (e) {}
 
 } else {
 _CS_reportAnalytics();
 }
 }, 100);
}
</script>

 
 
 <div class="hostedBy" style="margin-top: -20px;">
 <span style="vertical-align: top;">Hosted by</span>
 <a href="/hosting/">
 <img src="http://www.gstatic.com/codesite/ph/images/google_code_tiny.png" width="107" height="24" alt="Google Code">
 </a>
 </div>
 
 
 
 


 
 
 <script type="text/javascript">_CS_reportToCsi();</script>
 
 </body>
</html>