| 229 | | 6. The next step is to create your configuration file. In the game |
|---|
| 230 | | directory is a file called "mush.cnf". You may want to rename it <your |
|---|
| 231 | | MUSH name>.cnf. This is a list of all runtime configuration options |
|---|
| 232 | | with their default settting. Change them as you see fit. IMPORTANT: do |
|---|
| 233 | | not _delete_ any parameters. They all need to be there. |
|---|
| 234 | | |
|---|
| 235 | | Under win32 using the Microsoft compiler, DO NOT rename mush.cnf. |
|---|
| 236 | | Also, ignore the restart script. In the configuration file, turn |
|---|
| 237 | | off disk database compression; it is not supported. Remove the |
|---|
| 238 | | .Z endings from all the database names. If this is you first |
|---|
| 239 | | time starting a MUSH (or you want to start a new MUSH), copy |
|---|
| 240 | | game/data/minimal.db to game/data/outdb. Then go to the game |
|---|
| 241 | | directory and run PennMUSH.exe. Poof, you're done. |
|---|
| 242 | | |
|---|
| 243 | | For anyone using something other than win32 with the Microsoft |
|---|
| 244 | | compiler, you must edit the restart script. You must change GAMEDIR |
|---|
| 245 | | to whatever directory the restart script is in, and should change |
|---|
| 246 | | CONF_FILE to the name of the configuration file if it's not mush.cnf. |
|---|
| 247 | | The restart script is written for sh, and assumes a fairly standard |
|---|
| 248 | | Berkeley UNIX setup. If you're on a HP-UX or SysV machine, for example, |
|---|
| 249 | | you may need to change the restart script a bit (the ps options, for |
|---|
| 250 | | example). |
|---|
| 251 | | |
|---|
| 252 | | |
|---|
| 253 | | You should now be ready to start the game. This distribution comes |
|---|
| 254 | | packaged with a basic database - a God character, starting room, and |
|---|
| 255 | | master room. This file is called game/data/minimal.db. The restart |
|---|
| 256 | | script will load this database if it doesn't find another database to |
|---|
| 257 | | load. The god character "One" has no password, so you can log in |
|---|
| 258 | | without one. Of course, you should immediately set one (via @newpasswd). |
|---|
| 259 | | options.h has the Master Room as #2 by default; in the provided |
|---|
| 260 | | database, this room is created for you. |
|---|
| 261 | | |
|---|
| 262 | | Now you should be set -- all you have to do now is customize the |
|---|
| 263 | | .txt files in the game directory. |
|---|
| 264 | | |
|---|
| 265 | | The logfiles in the "log" directory generally contain useful |
|---|
| 266 | | information. You will probably want to read your main logfile (defined |
|---|
| 267 | | in the restart script) every time, since errors and other important |
|---|
| 268 | | messages get printed to that logfile. |
|---|
| 269 | | |
|---|
| 270 | | If you have any problems, see the section on Getting Help below - it |
|---|
| 271 | | has important information about how and where to get help! |
|---|
| 272 | | |
|---|
| 273 | | ============================================================================ |
|---|
| 274 | | |
|---|
| 275 | | III. Conversion Guide (previous users) |
|---|
| 276 | | |
|---|
| 277 | | This section explains how to upgrade to a new version of PennMUSH. |
|---|
| 278 | | It assumes that you've got your older version of PennMUSH in |
|---|
| 279 | | a directory called oldpenn/, and the new one unpacked into pennmush/ |
|---|
| 280 | | All of the steps below can be taken before running Configure |
|---|
| 281 | | for the new version, and definitely should be taken before running |
|---|
| 282 | | 'make' (or you'll have to do it again). |
|---|
| 283 | | |
|---|
| 284 | | 1. options.h and game/mush.cnf |
|---|
| 285 | | |
|---|
| 286 | | You can copy the options.h file and game/mush.cnf file from your |
|---|
| 287 | | old version to the new version. The 'make update' command |
|---|
| 288 | | (run after Configure) will compare your files with the newly |
|---|
| 289 | | distributed ones and tell you about options that have been |
|---|
| 290 | | added or removed. If you have any options defined that the |
|---|
| 291 | | new version doesn't recognize, you'll be asked if you want |
|---|
| 292 | | to retain them (which is safe). |
|---|
| 293 | | |
|---|
| 294 | | If your mush.cnf file is called something else, copy it to |
|---|
| 295 | | mush.cnf in pennmush/game anyway, since that's the file that |
|---|
| 296 | | gets updated. Then make a symbolic link to that file called |
|---|
| 297 | | whatever.cnf if you want to use that. |
|---|
| 298 | | |
|---|
| 299 | | If you've modified the restart script, you'll have to decide |
|---|
| 300 | | if your modified script is still appropriate, or modify the |
|---|
| 301 | | distributed game/restart script again as you like it. |
|---|
| 302 | | |
|---|
| 303 | | You can also copy your old game/access.cnf, game/sitelock.cnf, |
|---|
| 304 | | and game/txt/*.txt files into the appropriate locations. |
|---|
| 305 | | |
|---|
| 306 | | 2. src/*local.c |
|---|
| 307 | | |
|---|
| 308 | | You should copy local.c, cmdlocal.c, and funlocal.c from oldpenn/src |
|---|
| 309 | | to pennmush/src if you want to retain this local code. Of course, |
|---|
| 310 | | it may not still work, but it's quite likely that it will. |
|---|
| 311 | | |
|---|
| 312 | | 3. Databases |
|---|
| 313 | | |
|---|
| 314 | | This MUSH version will read databases along the main branch of MUSH |
|---|
| 315 | | evolution -- TinyMUD, vanilla TinyMUSH, MicroMUSH, and all |
|---|
| 316 | | Pern/PennMUSH versions. If you need to convert a TinyMUSH 2.0 database, |
|---|
| 317 | | please contact Amberyl, and she'll mail you an extension to 2.0 that |
|---|
| 318 | | will dump a 1.50-readable flatfile. |
|---|
| 319 | | |
|---|
| 320 | | PennMUSH 1.7.x uses the version header in the database to automatically |
|---|
| 321 | | read the db correctly, no matter what options you have set, and to |
|---|
| 322 | | write a db which reflects those options. If you plan to convert a |
|---|
| 323 | | PennMUSH db to TinyMUSH 2.0, you'll have to unset all the options which |
|---|
| 324 | | add to the db, start up like that, and then shutdown to dump a plain |
|---|
| 325 | | PennMUSH 1.50pl10 db. You will lose all special info (warnings, etc.) |
|---|
| 326 | | in that db, so keep a copy of the original! |
|---|
| 327 | | |
|---|
| 328 | | Be sure that your options.h settings correctly reflect the type |
|---|
| 329 | | of password encryption that was used on your database. The default |
|---|
| 330 | | has changed to SHS, so if your db used crypt(3) encryption, be |
|---|
| 331 | | sure you set the appropriate definition in options.h. |
|---|
| 332 | | |
|---|
| 333 | | 4. Other local source code hacks |
|---|
| 334 | | |
|---|
| 335 | | If you have made other hacks to the Penn source code that don't live |
|---|
| 336 | | solely in the src/*local.c files, you'll need to apply these to your |
|---|
| 337 | | new version. |
|---|
| 338 | | |
|---|
| 339 | | The best way to do this is described in the Guide for Gods, and |
|---|
| 340 | | involves creating a set of patches from the distributed old |
|---|
| 341 | | version of pennmush (e.g. 1.7.2p32) to your hacked version of |
|---|
| 342 | | pennmush (e.g. 1.7.2p32 with hacks), and then applying those |
|---|
| 343 | | patches to the new version of PennMUSH (e.g. 1.7.3p0) to create |
|---|
| 344 | | a hacked version thereof. If some patch hunks fail, you'll have |
|---|
| 345 | | to apply them manually. |
|---|
| 346 | | |
|---|
| 347 | | Even easier may be to keep all multiple versions of the code |
|---|
| 348 | | (old distributed, old hacked, new distributed, new hacked) under |
|---|
| 349 | | a source code control system like prcs that can merge changes |
|---|
| 350 | | between versions. See the Guide for Gods. |
|---|
| 351 | | |
|---|
| 352 | | ============================================================================ |
|---|
| 353 | | |
|---|
| 354 | | IV. Binary Guide (pre-built binary users) |
|---|
| 355 | | |
|---|
| 356 | | A pre-built binary is frequently available for win32 users who don't |
|---|
| 357 | | want to customize their MUSH server, and don't feel like compiling |
|---|
| 358 | | it themselves. This binary distribution does not contain the src, |
|---|
| 359 | | hdrs, hints, or os2 directories and is missing several key files |
|---|
| 360 | | (like Configure) from the top-level directory. It does include the |
|---|
| 361 | | dune.h and options.h that it was built with, as an aid to those who |
|---|
| 362 | | decide late that they want to customize the server; they are useful |
|---|
| 363 | | as a baseline to work from. |
|---|
| 364 | | |
|---|
| 365 | | Using the pre-built binary is fairly simple; adjust your configuration |
|---|
| 366 | | file as in II.6, then go to the game directory and run PennMUSH.exe. |
|---|
| 367 | | Alternately, if you want the MUSH to automatically start each time |
|---|
| 368 | | you turn on your machine, you can install it as a system service |
|---|
| 369 | | by running 'PennMUSH /install'. PennMUSH can be removed from service |
|---|
| 370 | | status via 'PennMUSH /remove'. |
|---|
| 371 | | |
|---|
| 372 | | ============================================================================ |
|---|
| 373 | | |
|---|
| 374 | | V. Additional Options, including Internationalization |
|---|
| 375 | | |
|---|
| 376 | | PennMUSH 1.7.3 has extensive support for running in non-English |
|---|
| 377 | | environments. There are two parts to this. First, what the mush |
|---|
| 378 | | considers to be valid characters, what's upper-case, what's |
|---|
| 379 | | lower-case, how they are sorted, and so on. The second is translating |
|---|
| 380 | | the messages produced by the game into another language. Helpfiles |
|---|
| 381 | | aren't translated. |
|---|
| 382 | | |
|---|
| 383 | | There's only a few languages currently supported, as it takes someone |
|---|
| 384 | | fluent in one to add support for it. If you'd like to help out with |
|---|
| 385 | | this, see http://www.pennmush.org/translation.html. |
|---|
| 386 | | |
|---|
| 387 | | Both of these parts is controlled by the LANG or LC_ALL environment |
|---|
| 388 | | variables, which have the form "la_DI", where la is a language code |
|---|
| 389 | | and DI is a dialect. For example, "en_US" stands for English, United |
|---|
| 390 | | States dialect. The language codes are usually the same as a country's |
|---|
| 391 | | top level domain in URLs. Spanish is 'es', Russian is 'ru', and so on. |
|---|
| 392 | | |
|---|
| 393 | | The LANG environment variable that controls what language the mush |
|---|
| 394 | | uses is normally set in the pennmush/game/restart script. There's an |
|---|
| 395 | | example for using French in the script already that can be used as a |
|---|
| 396 | | starting point. |
|---|
| 397 | | |
|---|
| 398 | | Your server account might be set up with a non-english language as the |
|---|
| 399 | | default. If so, and you don't set LANG in the restart script, that |
|---|
| 400 | | default language will be used. |
|---|
| 401 | | |
|---|
| 402 | | Note that Huffman attribute compression (Or none) is the only mode |
|---|
| 403 | | that works properly with non-ASCII characters. |
|---|
| 404 | | |
|---|
| 405 | | The files with the translations for game messages have to be compiled |
|---|
| 406 | | to an effecient internal form before starting up the mush, so the LANG |
|---|
| 407 | | setting in the restart script won't affect it. This means you have to |
|---|
| 408 | | set the LANG variable before compiling the translation file. |
|---|
| 409 | | |
|---|
| 410 | | To do this using the common bash shell, 'export LANG=en_US', or whatever |
|---|
| 411 | | your setting is. If that gives an error, try the tcsh shell form 'setenv |
|---|
| 412 | | LANG en_US'. If that still doesn't work, consult the documentation for |
|---|
| 413 | | the shell you're using. |
|---|
| 414 | | |
|---|
| 415 | | The files with the translation tables are located at |
|---|
| 416 | | ftp://ftp.pennmush.org/pub/PennMUSH/Source/translations/. Get the one |
|---|
| 417 | | for your patchlevel and language, put it in your pennmush/po/ directory, |
|---|
| 418 | | and run make install with the LANG environment variable set to the |
|---|
| 419 | | proper language. If there is no translation file for your language, |
|---|
| 420 | | see the URL above for information on helping to create one. |
|---|
| 421 | | |
|---|
| 422 | | |
|---|
| 423 | | A final thing you may want to think about is compiling announce.c or |
|---|
| 424 | | portmsg.c. These are port announcers; if your MUSH ever goes down, you |
|---|
| 425 | | can set one up, and a message will be given to a person attempting to |
|---|
| 426 | | connect to that port. Read that file for details. It is not an |
|---|
| 427 | | official MUSH piece of code; rather, it is a freely distributable |
|---|
| 428 | | program available via anonymous FTP that is included in this code |
|---|
| 429 | | because it happens to be fairly useful. Javelin suggests using portmsg |
|---|
| 430 | | - it appears to be more stable. |
|---|
| 431 | | |
|---|
| 432 | | ============================================================================ |
|---|
| 433 | | |
|---|
| 434 | | VI. Trouble-shooting |
|---|
| 435 | | |
|---|
| 436 | | If you ever run into trouble, the your first reaction should ALWAYS be |
|---|
| 437 | | to back up your database. indb.Z.old is the file that the MUSH saves |
|---|
| 438 | | indb.Z to when the game, restarted, indb.Z is the file that the MUSH |
|---|
| 439 | | loaded at startup, and outdb.Z is the file to which the MUSH is |
|---|
| 440 | | currently dumping the database. |
|---|
| 441 | | |
|---|
| 442 | | You can tell if a dump is (theoretically) complete by doing a |
|---|
| 443 | | "zcat <database file name> | tail -10". The last line should read |
|---|
| 444 | | "***END OF DUMP***". If it doesn't, your database has been truncated |
|---|
| 445 | | for some reason. Check the logfile. Possible causes include a full |
|---|
| 446 | | process table, a full disk partition, or running out of disk quota. |
|---|
| 447 | | |
|---|
| 448 | | Occasionally the dump process may dump core. This is caused by some |
|---|
| 449 | | sort of corruption in an attribute, normally. You can tell if the dump |
|---|
| 450 | | process has died by looking in your data directory; you will see |
|---|
| 451 | | something like "outdb.Z.#5#". Wait a few moments and check on the file |
|---|
| 452 | | again. If it has grown, then the game is in the process of a normal |
|---|
| 453 | | dump. If it hasn't, and there's a core file, then something has gone |
|---|
| 454 | | wrong. You should definitely shout a warning that building is not being |
|---|
| 455 | | saved. |
|---|
| 456 | | |
|---|
| 457 | | To attempt to fix the problem, do a @dbck to take care of any possible |
|---|
| 458 | | minor weirdness in the database, then try doing a "@dump/paranoid", and |
|---|
| 459 | | reading the checkpoint logfile (default is log/checkpt.log). This is |
|---|
| 460 | | slow, but it will write out an uncorrupted database, and tell you what |
|---|
| 461 | | it fixed. Back up that database and indb.Z, then figure out what you're |
|---|
| 462 | | going to do next: you can take the game down with a kill -9, or attempt |
|---|
| 463 | | to manually fix the problem by either @destroying the offending object, |
|---|
| 464 | | or attempting to reset the attributes on the object that are causing a |
|---|
| 465 | | problem. If "@dump/paranoid" dies, you are more or less out of luck. |
|---|
| 466 | | |
|---|
| 467 | | The game may crash from time to time. It will generate a core file, |
|---|
| 468 | | usually; if you don't limit the coredumpsize or strip the executable, |
|---|
| 469 | | you should be able to get some useful information out of it, using a |
|---|
| 470 | | debugger. Javelin is interested in stack traces. You can do a stack |
|---|
| 471 | | trace in the following manner: Go into the directory where you keep |
|---|
| 472 | | your source code, and type |
|---|
| 473 | | <name of debugger> netmud ../game/core |
|---|
| 474 | | If you don't call your executable "netmud", substitute in whatever |
|---|
| 475 | | you do call it. |
|---|
| 476 | | |
|---|
| 477 | | You are looking for variables set to bizarre values - attempts to |
|---|
| 478 | | access objects that aren't there, attempts to use pointers which point |
|---|
| 479 | | to nothing, and the like. |
|---|
| 480 | | |
|---|
| 481 | | If you are using the "adb" debugger (don't do this unless you really |
|---|
| 482 | | have absolutely nothing else available), you will see nothing. It's |
|---|
| 483 | | loaded and ready, though. Type "$c". This will print out a list of the |
|---|
| 484 | | functions it called. Type "$q" to quit. You can't really get much more |
|---|
| 485 | | useful information out of adb. |
|---|
| 486 | | |
|---|
| 487 | | If you are using the "dbx" debugger, type "where" to see the stack |
|---|
| 488 | | trace. You can move through it using "up" and "down", and see exactly |
|---|
| 489 | | what the sequence of calls was. You can also use "print <variable |
|---|
| 490 | | name>" to see the value of a variable at the time the game crashed. |
|---|
| 491 | | The "gdb" debugger is similar to "dbx"; with that, you can abbreviate |
|---|
| 492 | | "print" as "p". |
|---|
| 493 | | |
|---|
| 494 | | Javelin appreciates news of any bugs found, and any patches that have |
|---|
| 495 | | been written to deal with them. He is also interested in any extensions |
|---|
| 496 | | that people make to the code, and requests that ones that are of more |
|---|
| 497 | | than just local interest be sent to him for inclusion in the next |
|---|
| 498 | | release of this code. |
|---|
| 499 | | |
|---|
| 500 | | One important thing to remember is, if the MUSH refuses to start, there |
|---|
| 501 | | is probably a good reason. Check the MUSH log, and the core file, if |
|---|
| 502 | | there is one. Make sure to back up your database before attempting to |
|---|
| 503 | | restart -- remember that every time it restarts, it overwrites |
|---|
| 504 | | indb.Z.old. If you restart three times and somehow manage to trash your |
|---|
| 505 | | database each time (for example, a full process table zero'ing out your |
|---|
| 506 | | files), you won't have a backup to restart from, unless you've backed |
|---|
| 507 | | up your database before trying! |
|---|
| 508 | | |
|---|
| 509 | | You can also find helpful tips in Javelin's Guide for Gods, |
|---|
| 510 | | which is available on the WWW as |
|---|
| 511 | | http://pennmush.org/~alansz/guide.html |
|---|
| 512 | | and by ftp from pennmush.org as |
|---|
| 513 | | /pub/DuneMUSH/Guide/guide-single.txt |
|---|
| | 229 | 6. Read game/README and follow those instructions. |
|---|
| | 230 | |
|---|
| 546 | | VII. Getting Help, Reporting Bugs |
|---|
| | 263 | III. Conversion Guide (previous users) |
|---|
| | 264 | |
|---|
| | 265 | This section explains how to upgrade to a new version of PennMUSH. |
|---|
| | 266 | It assumes that you've got your older version of PennMUSH in |
|---|
| | 267 | a directory called oldpenn/, and the new one unpacked into pennmush/ |
|---|
| | 268 | All of the steps below can be taken before running Configure |
|---|
| | 269 | for the new version, and definitely should be taken before running |
|---|
| | 270 | 'make' (or you'll have to do it again). |
|---|
| | 271 | |
|---|
| | 272 | 1. options.h and game/mush.cnf |
|---|
| | 273 | |
|---|
| | 274 | You can copy the options.h file and game/mush.cnf file from your |
|---|
| | 275 | old version to the new version. The 'make update' command |
|---|
| | 276 | (run after Configure) will compare your files with the newly |
|---|
| | 277 | distributed ones and tell you about options that have been |
|---|
| | 278 | added or removed. If you have any options defined that the |
|---|
| | 279 | new version doesn't recognize, you'll be asked if you want |
|---|
| | 280 | to retain them (which is safe). |
|---|
| | 281 | |
|---|
| | 282 | If your mush.cnf file is called something else, copy it to |
|---|
| | 283 | mush.cnf in pennmush/game anyway, since that's the file that |
|---|
| | 284 | gets updated. Then make a symbolic link to that file called |
|---|
| | 285 | whatever.cnf if you want to use that. |
|---|
| | 286 | |
|---|
| | 287 | If you've modified the restart script, you'll have to decide |
|---|
| | 288 | if your modified script is still appropriate, or modify the |
|---|
| | 289 | distributed game/restart script again as you like it. |
|---|
| | 290 | |
|---|
| | 291 | You can also copy your old game/access.cnf, game/sitelock.cnf, |
|---|
| | 292 | and game/txt/*.txt files into the appropriate locations. |
|---|
| | 293 | |
|---|
| | 294 | 2. src/*local.c |
|---|
| | 295 | |
|---|
| | 296 | You should copy local.c, cmdlocal.c, and funlocal.c from oldpenn/src |
|---|
| | 297 | to pennmush/src if you want to retain this local code. Of course, |
|---|
| | 298 | it may not still work, but it's quite likely that it will. |
|---|
| | 299 | |
|---|
| | 300 | 3. Databases |
|---|
| | 301 | |
|---|
| | 302 | This MUSH version will read databases along the main branch of MUSH |
|---|
| | 303 | evolution -- TinyMUD, vanilla TinyMUSH, MicroMUSH, and all |
|---|
| | 304 | Pern/PennMUSH versions. If you need to convert a TinyMUSH 2.0 database, |
|---|
| | 305 | please contact Amberyl, and she'll mail you an extension to 2.0 that |
|---|
| | 306 | will dump a 1.50-readable flatfile. |
|---|
| | 307 | |
|---|
| | 308 | PennMUSH 1.7.x uses the version header in the database to automatically |
|---|
| | 309 | read the db correctly, no matter what options you have set, and to |
|---|
| | 310 | write a db which reflects those options. If you plan to convert a |
|---|
| | 311 | PennMUSH db to TinyMUSH 2.0, you'll have to unset all the options which |
|---|
| | 312 | add to the db, start up like that, and then shutdown to dump a plain |
|---|
| | 313 | PennMUSH 1.50pl10 db. You will lose all special info (warnings, etc.) |
|---|
| | 314 | in that db, so keep a copy of the original! |
|---|
| | 315 | |
|---|
| | 316 | Be sure that your options.h settings correctly reflect the type |
|---|
| | 317 | of password encryption that was used on your database. The default |
|---|
| | 318 | has changed to SHS, so if your db used crypt(3) encryption, be |
|---|
| | 319 | sure you set the appropriate definition in options.h. |
|---|
| | 320 | |
|---|
| | 321 | 4. Other local source code hacks |
|---|
| | 322 | |
|---|
| | 323 | If you have made other hacks to the Penn source code that don't live |
|---|
| | 324 | solely in the src/*local.c files, you'll need to apply these to your |
|---|
| | 325 | new version. |
|---|
| | 326 | |
|---|
| | 327 | The best way to do this is described in the Guide for Gods, and |
|---|
| | 328 | involves creating a set of patches from the distributed old |
|---|
| | 329 | version of pennmush (e.g. 1.7.2p32) to your hacked version of |
|---|
| | 330 | pennmush (e.g. 1.7.2p32 with hacks), and then applying those |
|---|
| | 331 | patches to the new version of PennMUSH (e.g. 1.7.3p0) to create |
|---|
| | 332 | a hacked version thereof. If some patch hunks fail, you'll have |
|---|
| | 333 | to apply them manually. |
|---|
| | 334 | |
|---|
| | 335 | Even easier may be to keep all multiple versions of the code |
|---|
| | 336 | (old distributed, old hacked, new distributed, new hacked) under |
|---|
| | 337 | a source code control system like prcs that can merge changes |
|---|
| | 338 | between versions. See the Guide for Gods. |
|---|
| | 339 | |
|---|
| | 340 | ============================================================================ |
|---|
| | 341 | |
|---|
| | 342 | IV. Binary Guide (pre-built binary users) |
|---|
| | 343 | |
|---|
| | 344 | A pre-built binary is frequently available for win32 users who don't |
|---|
| | 345 | want to customize their MUSH server, and don't feel like compiling |
|---|
| | 346 | it themselves. This binary distribution does not contain the src, |
|---|
| | 347 | hdrs, hints, or os2 directories and is missing several key files |
|---|
| | 348 | (like Configure) from the top-level directory. It does include the |
|---|
| | 349 | dune.h and options.h that it was built with, as an aid to those who |
|---|
| | 350 | decide late that they want to customize the server; they are useful |
|---|
| | 351 | as a baseline to work from. |
|---|
| | 352 | |
|---|
| | 353 | Using the pre-built binary is fairly simple; adjust your configuration |
|---|
| | 354 | file as in II.6, then go to the game directory and run PennMUSH.exe. |
|---|
| | 355 | Alternately, if you want the MUSH to automatically start each time |
|---|
| | 356 | you turn on your machine, you can install it as a system service |
|---|
| | 357 | by running 'PennMUSH /install'. PennMUSH can be removed from service |
|---|
| | 358 | status via 'PennMUSH /remove'. |
|---|
| | 359 | |
|---|
| | 360 | ============================================================================ |
|---|
| | 361 | |
|---|
| | 362 | V. Additional Options, including Internationalization |
|---|
| | 363 | |
|---|
| | 364 | PennMUSH 1.7.3 and later have extensive support for running in non-English |
|---|
| | 365 | environments. There are two parts to this. First, what the mush considers |
|---|
| | 366 | to be valid characters, what's upper-case, what's lower-case, how they |
|---|
| | 367 | are sorted, and so on. The second is translating the messages produced |
|---|
| | 368 | by the game into another language. Helpfiles aren't translated. |
|---|
| | 369 | |
|---|
| | 370 | There's a few languages currently supported, as it takes someone fluent |
|---|
| | 371 | in one to add support for it. If you'd like to help out with this, |
|---|
| | 372 | see http://www.pennmush.org/translation.html. |
|---|
| | 373 | |
|---|
| | 374 | Both of these parts is controlled by the LANG or LC_ALL environment |
|---|
| | 375 | variables, which have the form "la_DI", where la is a language code |
|---|
| | 376 | and DI is a dialect. For example, "en_US" stands for English, United |
|---|
| | 377 | States dialect. The language codes are usually the same as a country's |
|---|
| | 378 | top level domain in URLs. Spanish is 'es', Russian is 'ru', and so on. |
|---|
| | 379 | |
|---|
| | 380 | The LANG environment variable that controls what language the mush |
|---|
| | 381 | uses is normally set in the pennmush/game/restart script. There's an |
|---|
| | 382 | example for using French in the script already that can be used as a |
|---|
| | 383 | starting point. |
|---|
| | 384 | |
|---|
| | 385 | Your server account might be set up with a non-english language as the |
|---|
| | 386 | default. If so, and you don't set LANG in the restart script, that |
|---|
| | 387 | default language will be used. |
|---|
| | 388 | |
|---|
| | 389 | Note that Huffman attribute compression (Or none) is the only mode |
|---|
| | 390 | that works properly with non-ASCII characters. |
|---|
| | 391 | |
|---|
| | 392 | The files with the translations for game messages have to be compiled |
|---|
| | 393 | to an effecient internal form before starting up the mush, so the LANG |
|---|
| | 394 | setting in the restart script won't affect it. This means you have to |
|---|
| | 395 | set the LANG variable before compiling the translation file. |
|---|
| | 396 | |
|---|
| | 397 | To do this using the common bash shell, 'export LANG=en_US', or whatever |
|---|
| | 398 | your setting is. If that gives an error, try the tcsh shell form 'setenv |
|---|
| | 399 | LANG en_US'. If that still doesn't work, consult the documentation for |
|---|
| | 400 | the shell you're using. |
|---|
| | 401 | |
|---|
| | 402 | The files with the translation tables are located at |
|---|
| | 403 | ftp://ftp.pennmush.org/pub/PennMUSH/Source/translations/. Get the one |
|---|
| | 404 | for your patchlevel and language, put it in your pennmush/po/ directory, |
|---|
| | 405 | and run make install with the LANG environment variable set to the |
|---|
| | 406 | proper language. If there is no translation file for your language, |
|---|
| | 407 | see the URL above for information on helping to create one. |
|---|
| | 408 | |
|---|
| | 409 | |
|---|
| | 410 | A final thing you may want to think about is compiling announce.c or |
|---|
| | 411 | portmsg.c. These are port announcers; if your MUSH ever goes down, you |
|---|
| | 412 | can set one up, and a message will be given to a person attempting to |
|---|
| | 413 | connect to that port. Read that file for details. It is not an |
|---|
| | 414 | official MUSH piece of code; rather, it is a freely distributable |
|---|
| | 415 | program available via anonymous FTP that is included in this code |
|---|
| | 416 | because it happens to be fairly useful. Javelin suggests using portmsg |
|---|
| | 417 | - it appears to be more stable. |
|---|
| | 418 | |
|---|
| | 419 | ============================================================================ |
|---|
| | 420 | |
|---|
| | 421 | VI. Getting Help, Reporting Bugs |
|---|