Codebase list dopewars / scrub-obsolete/main doc / configfile.html
scrub-obsolete/main

Tree @scrub-obsolete/main (Download .tar.gz)

configfile.html @scrub-obsolete/mainraw · history · blame

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<head>
<title>dopewars configuration files</title>
</head>

<body>
<h1>dopewars configuration files</h1>

<p>A dopewars <a href="server.html">server</a>, or a <a href="clientplay.html">
client</a> (in single-player mode) can be heavily configured by the means
of dopewars configuration files. Clients used to connect to multiplayer
servers can also be configured by the same means, but almost all of these
settings will be overridden on connecting to the server (although the server
location settings <i>Port</i> and <i>Server</i> are still useful).</p>

<p>Example configuration files:</p>
<ul>
<li><a href="example-cfg">Simple example, to show syntax only
(incomplete)</a></li>
<li><a href="example-igneous">Igneous's mod (complete)</a></li>
</ul>

<p>The order of making dopewars settings is as follows:-</p>
<ol>
<li>The global configuration file (if present) <b>/etc/dopewars</b></li>
<li>The user-specific file (if present) <b>~/.dopewars</b></li>
<li><i>(Windows only)</i> The file <b>dopewars-config.txt</b> in the current
directory</li>
<li>Options specified on the <a href="commandline.html">command line</a></li>
</ol>

<p>Settings in a configuration file can set numbers, booleans, strings or
"string lists". A numerical value is set with a command such as
<b>Port=7902</b> (which sets the TCP port for mulitplayer connections to
7902). Booleans are "on/off" or "true/false" variables, set with commands
such as <b>Sanitized=TRUE</b> (which removes drug references from random
events in the game).</p>

<p>String (text) values are set with commands such as <b>BankName='the bank'</b>
(which sets the name of the bank). Notice that string values <b>must</b> be
enclosed in quotes. Strings in double quotes understand escapes such as "\t";
strings in single quotes do not treat backslash characters specially, and
so should be used for Windows pathnames.</p>

<p>A string list is used for setting an array of strings; for example
<b>SubwaySaying = { "Saying 1", "Saying 2", "Saying 3" }</b> sets up three
"subway sayings". A string list consists of a list of strings, separated by
commas and wrapped with braces - { and } characters. Single strings in a
string list can be replaced individually - for example
<b>SubwaySaying[3]="Third Saying"</b> replaces the third string (which was
previously "Saying 3"). The <i>number</i> of strings in the list
<i>"List"</i> can be set with the variable <i>NumList</i> - for example,
<b>NumSubwaySaying=4</b> dimensions the <b>SubwaySaying</b> list to contain
four strings.</p>

<p>Whitespace and line breaks are ignored in the configuration files; comments
can be used, and extend from a '#' character to the end of the current line,
or are enclosed by C-style /* and */ symbols. See the 
<a href="example-cfg">example configuration file</a> for a demonstration.
Valid configuration file settings are listed below. The examples given
generally reproduce the default behaviour; obviously you are free to replace
the parts in italics to customise your own server and client.</p>

<ul>
<li><a href="#fileloc">General configuration: file and server
locations</a></li>
<li><a href="#metaserver">Metaserver configuration</a></li>
<li><a href="#places">Basic configuration: places in the game</a></li>
<li><a href="#drugs">Basic configuration: drug prices</a></li>
<li><a href="#combat">Basic configuration: guns and fighting</a></li>
<li><a href="#advanced">Advanced configuration</a></li>
<li><a href="#commands">Special configuration file commands</a></li>
</ul>

<h2><a id="fileloc">General configuration: file and server locations</a></h2>

<dl>
<dt><a id="Port"><b>Port=<i>7902</i></b></a></dt>
<dd>Tells the dopewars client to look for a server on port <i>7902</i>, and
tells the dopewars server to bind to port <i>7902</i> and wait for connections.
This can be overridden with the -p <a href="commandline.html#port">
command line option</a>.</dd>

<dt><a id="Server"><b>Server=<i>"localhost"</i></b></a></dt>
<dd>Tells the dopewars client to look for a server at the address
<i>localhost</i>. Dotted quad (e.g. 127.0.0.1) addresses may also be used here.
If this variable is set to one of the three "special" names
<b>(MetaServer)</b>, <b>(Prompt)</b>, or <b>(Single)</b> (including the 
brackets) then the client will not connect to a server but instead
list the servers available at the metaserver, prompt the user to enter a
server name and port, or play in single player mode, respectively.
This option can be overridden with the -o <a href="commandline.html#server">
command line option</a> (but be sure to protect the brackets from the shell
if you use one of the "special" names). <b>Note</b> that this only changes
the name of the server that the client connects to - if you're running your
own server it does not change the address that it binds to. For that, see
the <b>BindAddress</b> variable.</dd>

<dt><b>ServerMOTD=<i>"Welcome to my dopewars server"</i></b></dt>
<dd>When running a server, any client that connects displays the welcome
"message of the day" <i>"Welcome to my dopewars server"</i>. This can
be used, for example, to inform users of any special features that the
server has.</dd>

<dt><b>BindAddress=<i>"localhost"</i></b></dt>
<dd>Forces your dopewars server (if you run one) to accept network connections
only on the <i>localhost</i> network interface. (This can be a host name,
or an IP address.) If this is left blank (the default) then the server will
accept connections coming in on any valid network interface.
</dd>

<dt><b>Socks.Active=<i>FALSE</i></b></dt>
<dd>Instructs the dopewars client to connect directly to the given server,
without using an intermediate SOCKS server. If this is set to TRUE, all
connections go via the SOCKS server. By default, SOCKS is not used for
metaserver communications - see the MetaServer.UseSocks variable. N.B. You
cannot run a dopewars server behind a SOCKS server, due to limitations in
the SOCKS protocol.</dd>

<dt><b>Socks.NumUID=<i>FALSE</i></b></dt>
<dd>When connecting to a SOCKS version 4 server, the protocol demands that
the name of the current user be sent for simple authentication; the SOCKS
server then queries identd on your machine to check if you are who you say
you are. dopewars complies with this requirement if this variable is set to
FALSE. However, some Unix implementations of identd send numeric user IDs
rather than user names; dopewars will do the same if you set this variable 
to TRUE. (N.B. Not supported on Windows systems.)</dd>

<dt><b>Socks.User=<i>"fred"</i></b></dt>
<dd>Overrides the username detection (discussed above) completely, and instead
sends the user name <i>"fred"</i> to a SOCKS4 server. If this is set to the
blank string ("") - the default - this does not happen.</dd>

<dt><b>Socks.Name=<i>"socks"</i></b></dt>
<dd>If using SOCKS, sets the hostname of the SOCKS server to connect to to
be <i>"socks"</i>.</dd>

<dt><b>Socks.Port=<i>1080</i></b></dt>
<dd>Connects to the SOCKS server on TCP port <i>1080</i>.</dd>

<dt><b>Socks.Version=<i>4</i></b></dt>
<dd>Uses SOCKS version <i>4</i>. Version 5 is also supported; SOCKS5 servers
support username/password authentication, unlike SOCKS4.</dd>

<dt><b>Socks.Auth.User=<i>""</i></b></dt>
<dd>If using SOCKS5 with user/password authentication, with the server or AI
player (which can both run unattended) then setting this variable to something
other than "" will enable them to authenticate themselves with the SOCKS
server, provided Socks.Auth.Password is also set. (The game clients prompt
the user for a username and password on each connect instead.)</dd>

<dt><b>Socks.Auth.Password=<i>""</i></b></dt>
<dd>The corresponding password for Socks.Auth.User, above.</dd>

<dt><a id="HiScoreFile"><b>HiScoreFile=<i>"/var/lib/dopewars.sco"</i></b></a>
</dt>
<dd>Tells the dopewars server (or the client, if running in single-player
mode, not connected to a server) to use the file <i>/var/lib/dopewars.sco</i>
to store high scores. This can be overridden with the -f
<a href="commandline.html#hiscore">command line option</a>.
(N.B. This option cannot be used to get dopewars to open a high
score file with privilege when running setuid/setgid; all privileges are
dropped by this point for security.)</dd>

<dt><b>MinToSysTray=<i>TRUE</i></b></dt>
<dd>Rather than behaving as a normal window, the dopewars server window adds
an icon to the Windows System Tray, and, when the window is minimized, it
vanishes completely. Clicking on the System Tray icon will restore the
window to its normal state. If FALSE, the System Tray is not used. Only
supported on Windows systems.</dd>

<dt><b>Daemonize=<i>TRUE</i></b></dt>
<dd>When the Unix server is successfully started, it immediately uses the
fork() function to become a daemon, running in the background. Since this
can cause problems with debugging, or with other programs that need to keep
track of the process, setting Daemonize to FALSE will run the program in the
foreground. Only supported on Unix systems.</dd>

<dt><b>WebBrowser=<i>/usr/bin/mozilla</i></b></dt>
<dd>Sets the program used to display website URLs. This is used only by the
Unix version, as under Windows the standard mechanism for associating file
types with applications is used.</dd>

<dt><b>ConfigVerbose=<i>FALSE</i></b></dt>
<dd>Prints extra feedback information when processing the config. file if set
to TRUE; this only takes effect, of course, after the ConfigVerbose variable is
set, and then remains in force until it is reset again.</dd>
</dl>

<h2><a id="metaserver">Metaserver configuration</a></h2>
<dl>
<dt><a id="MetaServerActive"><b>MetaServer.Active=<i>TRUE</i></b></a></dt>
<dd>Tells the dopewars server to report its status to the
<a href="metaserver.html">metaserver</a>. If <i>TRUE</i>
is replaced by <i>FALSE</i> the server will not report to the metaserver.
This setting, if set to TRUE, can be overridden by the -S
<a href="commandline.html#privateserver">command line option</a>.</dd>

<dt><b>MetaServer.Name=<i>"dopewars.sourceforge.net"</i></b></dt>
<dd>Tells dopewars that the metaserver is located at
<i>dopewars.sourceforge.net</i>. See the
<a href="metaserver.html">metaserver</a> page, and below, for information
about connecting to the dopewars metaserver via a proxy web server.</dd>

<dt><b>MetaServer.Port=<i>80</i></b></dt>
<dd>Instructs dopewars that the metaserver can be found on TCP port
<i>80</i>. This is the standard HTTP port for Web access. (You shouldn't need
to change this, even if you connect via a proxy.)</dd>

<dt><b>MetaServer.ProxyName=<i>"proxy.com"</i></b></dt>
<dd>Sends all requests to the metaserver via the web proxy at <i>proxy.com</i>.
If this is set to a blank string (the default) then the connection to the
metaserver is made directly.</dd>

<dt><b>MetaServer.ProxyPort=<i>8080</i></b></dt>
<dd>Connects to the web proxy on port <i>8080</i>. (It then connects to the
metaserver on the port specified by MetaServer.Port.) This variable is ignored
if MetaServer.ProxyName is blank.</dd>

<dt><b>MetaServer.Path=<i>"/metaserver.php"</i></b></dt>
<dd>Tells dopewars that the PHP script on the metaserver, for server
registration (server mode) or listing the available servers (client mode) is
<i>/metaserver.php</i>.</dd>

<dt><a id="MetaServerComment"><b>MetaServer.Comment=<i>"dopewars
server"</i></b></a></dt>
<dd>Sets the comment for your server, which appears on the list of servers
maintained by the metaserver, to <i>dopewars server</i>.</dd>

<dt><b>MetaServer.LocalName=<i>"dope-serv.com"</i></b></dt>
<dd>Tells the metaserver that the preferred hostname of your dopewars server
machine is <i>dope-serv.com</i>. By default, the metaserver tries to ascertain
your domain name from the connection, and this can fail if you connect via
a proxy server, or if DNS does not properly translate your IP address to your
domain name. You must also set MetaServer.Password to the password given to
you by the <a href="mailto:benwebb@users.sf.net">metaserver
maintainer</a> for this to work. A blank LocalName can also be used with a
suitable password to identify "your" server, even if its IP changes.
See the <a href="metaserver.html">metaserver page</a> for more details.</dd>

<dt><b>MetaServer.Password=<i>"auth"</i></b></dt>
<dd>Uses the password <i>auth</i> to authenticate your dopewars server's
hostname (see MetaServer.LocalName above) with the metaserver.</dd>

<dt><b>MetaServer.UseSocks=<i>FALSE</i></b></dt>
<dd>Even if "Socks.Active" is TRUE, do not use SOCKS for metaserver
communication - connect directly to the metaserver or proxy.</dd>

<dt><b>MetaServer.Auth.User=<i>""</i></b></dt>
<dd>If the metaserver webpage is on a restricted access server (i.e. it
requires HTTP Basic authentication), and you wish to connect with the server
or AI player (which can both run unattended) then setting this variable to
something other than "" will enable them to authenticate themselves,
provided MetaServer.Auth.Password is also set. (The game clients prompt
the user for a username and password on each connect instead.)</dd>

<dt><b>MetaServer.Auth.Password=<i>""</i></b></dt>
<dd>The corresponding password for MetaServer.Auth.User, above.</dd>

<dt><b>MetaServer.Proxy.User=<i>""</i></b></dt>
<dd>In a similar way to MetaServer.Auth.User, above, this enables a dopewars
server or AI player to authenticate itself with a web proxy.</dd>

<dt><b>MetaServer.Proxy.Password=<i>""</i></b></dt>
<dd>The corresponding password for MetaServer.Proxy.User, above.</dd>

</dl>

<h2><a id="places">Basic configuration: places in the game</a></h2>

<dl>
<dt><b>NumLocation=<i>8</i></b></dt>
<dd>Sets the number of locations in the game to <i>8</i>. Note that if too
many locations are specified, the client may not be able to display them
all!</dd>

<dt><b>Location[<i>4</i>].Name=<i>"Manhattan"</i></b></dt>
<dd>Sets the name of the <i>4th</i> location in the game to <i>Manhattan</i>.
The index within the square brackets can range from 1 to whatever
NumLocation is set to above, or an error will be reported.</dd>

<dt><b>Location[<i>4</i>].PolicePresence=<i>90</i></b></dt>
<dd>Sets the police presence in the <i>4th</i> location to <i>90%</i>. This
affects how likely it is for the police to attack players at each location
when arriving, dropping drugs, or attacking other players.</dd>

<dt><b>Location[<i>4</i>].MinDrug=<i>4</i></b></dt>
<dd>Sets the minimum possible number of different drugs that will be on sale
to players in location number <i>4</i> to <i>4</i>.</dd>

<dt><b>Location[<i>4</i>].MaxDrug=<i>10</i></b></dt>
<dd>Sets the maximum possible number of different drugs that will be on sale
to players in location number <i>4</i> to <i>10</i>.</dd>

<dt><b>LoanShark=<i>1</i></b></dt>
<dd>Makes the loan shark pop up when players visit location number <i>1</i>.
To stop the loan shark from appearing at all (making it rather difficult to
pay off debts) set this number to something which is not a valid location,
such as 0 (zero).</dd>

<dt><b>Bank=<i>1</i></b></dt>
<dd>Makes the bank appear when a player visits location <i>1</i> (the
Bronx).</dd>

<dt><b>GunShop=<i>2</i></b></dt>
<dd>Players can visit the gun shop in location number <i>2</i> (the
Ghetto).</dd>

<dt><b>RoughPub=<i>2</i></b></dt>
<dd>Players can visit the rough pub to hire bitches in location number
<i>2</i>.</dd>

<dt><b>LoanSharkName=<i>"the Loan Shark"</i></b></dt>
<dd>The loan shark is known by the name <i>"the Loan Shark"</i> during the
game.</dd>

<dt><b>BankName=<i>"the bank"</i></b></dt>
<dd>The bank is known by the name <i>"the bank"</i> during the game.</dd>

<dt><b>GunShopName=<i>"Dan's House of Guns"</i></b></dt>
<dd>The gun shop is known by the name <i>"Dan's House of Guns"</i> during
the game.</dd>

<dt><b>RoughPubName=<i>"the pub"</i></b></dt>
<dd>The pub is known by the name <i>"the pub"</i> during the game.</dd>
</dl>

<h2><a id="drugs">Basic configuration: drug prices</a></h2>
<dl>
<dt><b>NumDrug=<i>12</i></b></dt>
<dd>Sets there to be <i>12</i> different types of drug in the game.</dd>

<dt><b>Drug[<i>6</i>].Name=<i>"MDA"</i></b></dt>
<dd>Sets the name of the <i>6th</i> drug to be <i>MDA</i>.</dd>

<dt><b>Drug[<i>6</i>].MinPrice=<i>1500</i></b></dt>
<dd>Sets the usual minimum price of the <i>6th</i> drug (in the absence of
"special events" such as drug busts) to be <i>$1,500</i>.</dd>

<dt><b>Drug[<i>6</i>].MaxPrice=<i>4400</i></b></dt>
<dd>Sets the usual maximum price of drug number <i>6</i> to be
<i>$4,400</i>.</dd>

<dt><b>Drug[<i>1</i>].Cheap=<i>TRUE</i></b></dt>
<dd>Tells dopewars that drug <i>1</i> (by default, Acid) can occasionally
be especially cheap (if this is set to FALSE, this does not happen).</dd>

<dt><b>Drug[<i>1</i>].CheapStr=<i>"The market is flooded with cheap
home-made acid!"</i></b></dt>
<dd>Sets the message to display to alert players that drug number <i>1</i>
is especially cheap.</dd>

<dt><b>Drugs.CheapDivide=<i>4</i></b></dt>
<dd>Tells dopewars that whenever a drug is "specially" cheap, divide the 
normal price distribution (between Drug[x].MinPrice and Drug[x].MaxPrice) by
<i>4</i>.</dd>

<dt><b>Drug[<i>4</i>].Expensive=<i>TRUE</i></b></dt>
<dd>Tells dopewars that drug <i>4</i> (normally Heroin) can occasionally be
particuarly expensive (FALSE cancels this).</dd>

<dt><b>Drugs.ExpensiveStr1=<i>"Cops made a big %tde bust! Prices are
outrageous!"</i></b></dt>
<dd>Sets the string that is displayed when <b>any</b> drug is particularly
expensive. This is similar to a standard C-style format string - i.e. the
%tde is replaced by the name of the drug which is expensive. (See the
<a href="i18n.html">Internationalization page</a> for further information
on this notation.) This string is displayed 50% of the time for expensive
drugs.</dd>

<dt><b>Drugs.ExpensiveStr2=<i>"Addicts are buying %tde at ridiculous
prices!"</i></b></dt>
<dd>Sets the string which is used for expensive drugs the other 50% of the 
time.</dd>

<dt><b>Drugs.ExpensiveMultiply=<i>4</i></b></dt>
<dd>Tells dopewars that whenever a drug is "specially" expensive, multiply the
normal price distribution (between Drug[x].MinPrice and Drug[x].MaxPrice) by
<i>4</i>.</dd>
</dl>

<h2><a id="combat">Basic configuration: guns and fighting</a></h2>
<dl>
<dt><b>NumGun=<i>4</i></b></dt>
<dd>Configures the game to have <i>4</i> guns available to players at the
gun shop. (If you set this to zero, you will be unable to buy guns, you
will never be attacked by the cops, and you will be unable to shoot at other
players.)</dd>

<dt><b>Gun[<i>3</i>].Name=<i>"Ruger"</i></b></dt>
<dd>Sets the name of the <i>3rd</i> gun to <i>Ruger</i>.</dd>

<dt><b>Gun[<i>3</i>].Price=<i>2900</i></b></dt>
<dd>Sets the price in the gun shop of the <i>3rd</i> gun to <i>$2,900</i>.
Guns offered "on the street" (i.e. by random events) will be priced at 10%
of the value set here.</dd>

<dt><b>Gun[<i>3</i>].Space=<i>4</i></b></dt>
<dd>Tells dopewars that gun number <i>3</i> uses <i>4</i> spaces in the 
inventory - i.e. carrying one of these guns uses the same spaces as 4
drugs.</dd>

<dt><b>Gun[<i>3</i>].Damage=<i>4</i></b></dt>
<dd>Defines gun number <i>3</i> to do up to <i>4</i> points of damage.</dd>

<dt><b>PlayerArmour=<i>100</i></b></dt>
<dd>Sets the percentage armour rating of each player to <i>100</i> - this
defines the amount of health that you lose when you are successfully hit.
If 100, you lose the same number of health points as the gun's damage.
If more than 100, you lose fewer health points, and if less than 100, you lose
<b>more</b> health points than the gun's damage. This rating applies only
when you have no bitches.</dd>

<dt><b>BitchArmour=<i>50</i></b></dt>
<dd>Sets the percentage armour rating of each bitch to <i>50</i>.</dd>

<dt><b>NumCop=<i>3</i></b></dt>
<dd>Configures the game to have <i>3</i> cops. If you kill the first one, you
will later be attacked by the second one, and so on. (The last cop is 'undead'
and will return even if you kill him.) If you set this to zero, then you
will never be attacked by the cops.</dd>

<dt><b>Cop[<i>1</i>].Name=<i>Officer Hardass</i></b></dt>
<dd>Names the first cop to attack you <i>"Officer Hardass"</i>.</dd>

<dt><b>Cop[<i>1</i>].DeputyName=<i>deputy</i></b></dt>
<dd>Names a solitary deputy accompanying the first cop <i>"deputy"</i>.</dd>

<dt><b>Cop[<i>1</i>].DeputiesName=<i>deputies</i></b></dt>
<dd>Names more than one deputy accompanying the first cop
<i>"deputies"</i>.</dd>

<dt><b>Cop[<i>1</i>].Armour=<i>4</i></b></dt>
<dd>Sets the armour rating of the first cop to <i>4%</i>.</dd>

<dt><b>Cop[<i>1</i>].DeputyArmour=<i>3</i></b></dt>
<dd>Sets the armour rating of the first cop's deputies to <i>3%</i>.</dd>

<dt><b>Cop[<i>1</i>].AttackPenalty=<i>30</i></b></dt>
<dd>When attacking another player, whether you successfully hit them depends
on whether your attack rating is greater than their defence rating, which are
generally numbers between 0 and 100 (think of them as percentages). This
penalises the first cop (and his deputies) by <i>30%</i> when attacking
you.</dd>

<dt><b>Cop[<i>1</i>].DefendPenalty=<i>30</i></b></dt>
<dd>Penalises the first cop (and his deputies) by <i>30%</i> when defending
against a player.</dd>

<dt><b>Cop[<i>1</i>].MinDeputies=<i>2</i></b></dt>
<dd>The first cop will be accompanied by a minimum of <i>2</i> deputies.</dd>

<dt><b>Cop[<i>1</i>].MaxDeputies=<i>8</i></b></dt>
<dd>The first cop will be accompanied by a maximum of <i>8</i> deputies.</dd>

<dt><b>Cop[<i>1</i>].GunIndex=<i>0</i></b></dt>
<dd>The first cop, and his deputies, will carry gun number <i>0</i>
(zero-based).</dd>

<dt><b>Cop[<i>1</i>].CopGun=<i>1</i></b></dt>
<dd>The first cop will carry <i>1</i> gun.</dd>

<dt><b>Cop[<i>1</i>].DeputyGun=<i>1</i></b></dt>
<dd>The first cop's deputies will each carry <i>1</i> gun.</dd>
</dl>

<h2><a id="advanced">Advanced configuration</a></h2>
<dl>
<dt><b>DebtInterest=<i>10</i></b></dt>
<dd>Increases your debt to the loan shark by <i>10%</i> every turn. Negative
numbers can also be used here, to have the debt shrink every day.</dd>

<dt><b>BankInterest=<i>5</i></b></dt>
<dd>Adds interest at a rate of <i>5%</i> per turn to your bank balance.
</dd>

<dt><b>Currrency.Symbol=<i>$</i></b></dt>
<dd>Uses the dollar (<i>$</i>) symbol to display all prices of drugs, guns,
etc.</dd>

<dt><b>Currrency.Prefix=<i>TRUE</i></b></dt>
<dd>Prints Currency.Symbol in front of any price - e.g. "$1,000"; if
FALSE, prints it after the price - e.g. "1,000 $".</dd>

<dt><b>Log.File=<i>dopewars.log</i></b></dt>
<dd>By default, server log messages are printed to the screen (standard
output). By setting this variable, they will instead be written to the file
<i>dopewars.log</i>.</dd>

<dt><b>Log.Level=<i>2</i></b></dt>
<dd>Most server log messages are given a priority level, from 0 (most urgent)
to 5 (most verbose). This setting instructs the server only to log messages
from level 0 up to <i>2</i>, inclusive.</dd>

<dt><b>Log.Timestamp=<i>"[%H:%M:%S] "</i></b></dt>
<dd>Prefixes all log messages with a timestamp of the form (e.g.)
<i>[16:34:49]</i>. This is a string which is passed as input to the
<tt>strftime(3)</tt> function. If this is set to a blank string, then no
timestamp is added to log messages.</dd>

<dt><b>NumTurns=<i>31</i></b></dt>
<dd>Defines the game to end after <i>31</i> "days" or turns. If this is set
to 0 (zero) the game never ends for a player, unless they quit or are
killed.</dd>

<dt><b>Sanitized=<i>FALSE</i></b></dt>
<dd>If set to TRUE, this "sanitizes" the game by removing all drug references
from the random events. To completely remove drug references, of course, you
must also alter the drug names above.</dd>

<dt><b>DrugSortMethod=<i>1</i></b></dt>
<dd>Tells the dopewars client how to sort the names of available drugs at
each location for display. The default, <i>1</i>, sorts them in alphabetical
order by their names. The choices are as follows:-
<ul>
<li><b>1</b>. Sort in forward alphabetical order by name</li>
<li><b>2</b>. Sort in reverse alphabetical order by name</li>
<li><b>3</b>. Sort in order of current price, cheapest first</li>
<li><b>4</b>. Sort in order of current price, most expensive first</li>
</ul>
</dd>

<dt><b>FightTimeout=<i>5</i></b></dt>
<dd>If a player in a firefight with another player fails to fire back
within <i>5</i> seconds, lets his/her enemy have another shot. If this
is set to 0 (zero) timeouts are disabled, and players may take as long
as they like to fire back.</dd>

<dt><b>IdleTimeout=<i>14400</i></b></dt>
<dd>If a connected player in a game does nothing to interact with the
server for <i>14400</i> seconds, he/she will be automatically disconnected.</dd>

<dt><b>ConnectTimeout=<i>300</i></b></dt>
<dd>If a player takes more than <i>300</i> seconds to complete the process
of connecting or disconnecting to the server, the server will sever the
connection.</dd>

<dt><a id="MaxClients"><b>MaxClients=<i>20</i></b></a></dt>
<dd>Prevents more than <i>20</i> clients from connecting to the server at
any one time.</dd>

<dt><a id="AITurnPause"><b>AITurnPause=<i>5</i></b></a></dt>
<dd>Makes computer-controlled client players run from this machine (not
necessarily AI players that connect to a server run on this machine) wait
<i>5</i> seconds between moving from location to location - i.e. a turn
takes at least 5 seconds.</dd>

<dt><b>StartCash=<i>2000</i></b></dt>
<dd>Each player will start the game with <i>$2,000</i> in cash.</dd>

<dt><b>StartDebt=<i>5000</i></b></dt>
<dd>Each player will start the game with a debt to the loan shark of
<i>$5,000</i>.</dd>

<dt><b>Names.Bitch=<i>"bitch"</i></b></dt>
<dd>Sets the word used to describe a single "bitch" in the game. Bitch, gun
and drug names are automatically capitalised where necessary by the dopewars
code.</dd>

<dt><b>Names.Bitches=<i>"bitches"</i></b></dt>
<dd>Sets the word used to describe two or more "bitches".</dd>

<dt><b>Names.Gun=<i>"gun"</i></b></dt>
<dd>Sets the word used to describe a single "gun" (for example, it could be
replaced by "knife").</dd>

<dt><b>Names.Guns=<i>"guns"</i></b></dt>
<dd>Sets the word used to describe two or more "guns".</dd>

<dt><b>Names.Drug=<i>"drug"</i></b></dt>
<dd>Sets the word used to describe a single "drug" (for example, it could be
replaced by "candy bar" or something similarly innocuous).</dd>

<dt><b>Names.Drugs=<i>"drugs"</i></b></dt>
<dd>Sets the word used to describe two or more "drugs".</dd>

<dt><b>Names.Date=<i>"%m-%d-%Y"</i></b></dt>
<dd>Sets the format string (which is passed to the strftime() function) for
displaying the current game date. This example (the default) displays the
date in MM-DD-YYYY format, as is commonplace in the US. Only date (not time)
formats can be used, and the special format %T is used to display the
current game turn.</dd>

<dt><b>StartDate.Day=<i>"1"</i></b></dt>
<dd>Sets the day of the month on which the game starts to <i>1</i>.</dd>

<dt><b>StartDate.Month=<i>"12"</i></b></dt>
<dd>Sets the month in which the game starts to <i>12</i> (i.e. December).</dd>

<dt><b>StartDate.Year=<i>"1984"</i></b></dt>
<dd>Sets the year in which the game starts to <i>1984</i>.</dd>

<dt><b>Prices.Spy=<i>20000</i></b></dt>
<dd>Sets the price to pay a bitch to spy on another player to be
<i>$20,000</i>.</dd>

<dt><b>Prices.Tipoff=<i>10000</i></b></dt>
<dd>Sets the price to pay a bitch to tip off the cops to another player to be
<i>$10,000</i>.</dd>

<dt><b>Bitch.MinPrice=<i>50000</i></b></dt>
<dd>Sets the minimum price for a bitch at the Rough Pub to be <i>$50,000</i>.
Note that prices for bitches "on the street" (i.e. those that are offered
by random events) are produced by dividing the normal bitch price
distribution by 10.</dd>

<dt><b>Bitch.MaxPrice=<i>150000</i></b></dt>
<dd>Sets the maximum price for a bitch to <i>$150,000</i>.</dd>

<dt><b>SubwaySaying= <i>{ "First saying", "Second saying",
"Third saying" }</i></b></dt>
<dd>Sets the list of things which the lady you sometimes meet on the subway 
says to you; one of <i>"First saying"</i>, <i>"Second saying"</i> and
<i>"Third saying"</i> will be displayed each time. Any previous sayings will
be erased. Note that individual sayings can be overwritten by appending an
array suffix to the variable name - for example, to replace
<i>"Third saying"</i> with <i>"3rd saying"</i> the following command would
suffice:-<br />
<b>SubwaySaying[3]="3rd saying"</b></dd>

<dt><b>NumSubwaySaying=<i>5</i></b></dt>
<dd>Sets there to be <i>5</i> distinct things that the lady on the subway
says to you. If this number is greater than the old number of sayings, the
newly added sayings will be blank; if it is smaller, the sayings that are now
beyond the end of the list will be deleted. If set to zero, the lady will
be mercifully silent.</dd>

<dt><b>Playing= <i>{ "Song 1", "Song 2", "Song 3" }</i></b></dt>
<dd>Sets the list of things which you can sometimes hear playing while
jetting; one of <i>"Song 1"</i>, <i>"Song 2"</i> or <i>"Song 3"</i> will be
displayed. See the help for <b>SubwaySaying</b> for more details.</dd>

<dt><b>NumPlaying=<i>4</i></b></dt>
<dd>Sets there to be <i>4</i> distinct things which you can sometimes hear
playing. (Set this to zero to disable this feature.)</dd>

<dt><b>StoppedTo= <i>{ "have a beer", "smoke a joint", "smoke a cigar",
"smoke a Djarum", "smoke a cigarette" }</i></b></dt>
<dd>Sets the list of things which you sometimes stop to do while jetting;
see <b>SubwaySaying</b> for more details. (Set this to zero to disable this
feature.)</dd>

<dt><b>NumStoppedTo=<i>5</i></b></dt>
<dd>Sets there to be <i>5</i> distinct things which you can stop to do.</dd>

<dt><b>DrugValue=<i>TRUE</i></b></dt>
<dd>If TRUE, then the server will keep track of the price you paid for
any drugs, and clients will display this information if available.</dd>

<dt><b>Sounds.FightHit=<i>"hit.wav"</i></b></dt>
<dd>Plays the sound file <i>"hit.wav"</i> when you fire a gun and hit your
target. The sound must be installed on your system, and you must be using
a functioning sound system, in order to hear anything. Other sounds that
can be configured in the same way are: <b>FightMiss</b>, <b>FightReload</b>,
<b>Jet</b>, <b>TalkToAll</b>, <b>TalkPrivate</b>, <b>JoinGame</b>, and
<b>LeaveGame</b>.</dd>

</dl>

<h2><a id="commands">Special configuration file commands</a></h2>
<dl>
<dt><b>include <i>"foo"</i></b></dt>
<dd>Reads in the additional configuration file, <i>"foo"</i>.</dd>

<dt><b>encoding <i>"UTF-8"</i></b></dt>
<dd>Specifies that any text following this directive (in this configuration
file only) is in <i>"UTF-8"</i> encoding. This directive is only supported
if dopewars is built on a Unix system and linked against GLib version 2.
If unspecifed, then it will be assumed that your configuration files are
in the locale's default encoding - e.g. ISO-8859-1 for C or POSIX locales,
ISO-8859-2 for pl_PL, ISO-8859-15 for es_ES@euro, or UTF-8 for en_GB.UTF-8.</dd>

</dl>

<hr />
<ul>
<li><a href="index.html">Main index</a></li>
</ul>
<p>
  Last update: <b>11-08-2002</b><br />
  Valid <a href="http://validator.w3.org/check/referer">XHTML 1.1</a>
</p>
</body>
</html>