From b7c03f64054728fbc44912f23072e2dc581a1dcc Mon Sep 17 00:00:00 2001 From: maruhiro Date: Mon, 11 Feb 2013 21:00:29 +0900 Subject: [PATCH] =?utf8?q?=E6=97=A5=E6=9C=AC=E8=AA=9E=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- JAPANESE | 2 + doc/CVS/Entries | 7 - doc/CVS/Entries.Log | 2 - doc/CVS/Repository | 1 - doc/CVS/Root | 1 - doc/USERS_GUIDE_JP | 611 ++++++ doc/engine_extension_and_design/CVS/Entries | 5 - doc/engine_extension_and_design/CVS/Repository | 1 - doc/engine_extension_and_design/CVS/Root | 1 - doc/users_guide_jp.html | 2425 ++++++++++++++++++++++++ doc/world_building/CVS/Entries | 10 - doc/world_building/CVS/Repository | 1 - doc/world_building/CVS/Root | 1 - haxima.desktop | 4 +- icons/CVS/Entries | 4 - icons/CVS/Repository | 1 - icons/CVS/Root | 1 - src/Arms.cpp | 8 +- src/Party.cpp | 14 +- src/ascii.c | 110 ++ src/ascii.h | 1 + src/character.cpp | 108 +- src/clock.c | 74 +- src/cmd.c | 638 ++++--- src/cmd.h | 4 +- src/cmdwin.c | 364 ++++ src/cmdwin.h | 9 + src/combat.c | 16 +- src/common.c | 8 +- src/console.c | 49 +- src/conv.c | 103 +- src/ctrl.c | 94 +- src/dtable.c | 6 +- src/escape.c | 16 +- src/event.c | 2 +- src/foogod.c | 17 +- src/kern.c | 72 +- src/menus.c | 130 +- src/nazghul.c | 2 +- src/object.c | 22 +- src/place.c | 22 +- src/play.c | 14 +- src/player.cpp | 52 +- src/screen.c | 8 +- src/session.c | 4 +- src/status.c | 35 +- src/vehicle.cpp | 2 +- src/wind.c | 4 +- src/ztats.c | 8 +- src/ztats_arms.c | 4 +- src/ztats_items.c | 2 +- src/ztats_misc.c | 2 +- src/ztats_pm.c | 42 +- src/ztats_reagents.c | 2 +- src/ztats_spells.c | 4 +- worlds/haxima-1.002/abandoned-cellar.scm | 4 +- worlds/haxima-1.002/abandoned-farm.scm | 6 +- worlds/haxima-1.002/abe.scm | 135 +- worlds/haxima-1.002/abigail.scm | 24 +- worlds/haxima-1.002/ability.scm | 89 +- worlds/haxima-1.002/absalot.scm | 4 +- worlds/haxima-1.002/ai.scm | 25 +- worlds/haxima-1.002/alchemist.scm | 310 ++- worlds/haxima-1.002/alex.scm | 51 +- worlds/haxima-1.002/altar-room.scm | 2 +- worlds/haxima-1.002/amy.scm | 43 +- worlds/haxima-1.002/anaxes.scm | 123 +- worlds/haxima-1.002/ancient-derelict.scm | 2 +- worlds/haxima-1.002/angela.scm | 94 +- worlds/haxima-1.002/angriss-lair.scm | 6 +- worlds/haxima-1.002/angriss.scm | 126 +- worlds/haxima-1.002/ankh-shrine.scm | 4 +- worlds/haxima-1.002/anne.scm | 31 +- worlds/haxima-1.002/arms.scm | 230 +-- worlds/haxima-1.002/bandit-hideout.scm | 4 +- worlds/haxima-1.002/bart.scm | 69 +- worlds/haxima-1.002/beds.scm | 2 +- worlds/haxima-1.002/bill.scm | 124 +- worlds/haxima-1.002/blendterrains.scm | 52 +- worlds/haxima-1.002/bole.scm | 4 +- worlds/haxima-1.002/books.scm | 1505 +++++++-------- worlds/haxima-1.002/bridge.scm | 4 +- worlds/haxima-1.002/brundegardt.scm | 42 +- worlds/haxima-1.002/cast-ui.scm | 16 +- worlds/haxima-1.002/chanticleer.scm | 274 +-- worlds/haxima-1.002/charset.png | Bin 8605 -> 3442 bytes worlds/haxima-1.002/chester.scm | 119 +- worlds/haxima-1.002/containers.scm | 62 +- worlds/haxima-1.002/conv.scm | 760 ++++++-- worlds/haxima-1.002/crypt.scm | 2 +- worlds/haxima-1.002/dank-cave.scm | 4 +- worlds/haxima-1.002/demo.scm | 16 +- worlds/haxima-1.002/demon-gate.scm | 26 +- worlds/haxima-1.002/dennis.scm | 40 +- worlds/haxima-1.002/deric.scm | 219 +-- worlds/haxima-1.002/disarm-trap.scm | 6 +- worlds/haxima-1.002/door.scm | 58 +- worlds/haxima-1.002/doris.scm | 118 +- worlds/haxima-1.002/douglas.scm | 56 +- worlds/haxima-1.002/drawbridge.scm | 2 +- worlds/haxima-1.002/earl.scm | 90 +- worlds/haxima-1.002/eastpass.scm | 2 +- worlds/haxima-1.002/edward.scm | 96 +- worlds/haxima-1.002/effects.scm | 134 +- worlds/haxima-1.002/enchanter.scm | 316 ++- worlds/haxima-1.002/enchanters-tower-mech.scm | 38 +- worlds/haxima-1.002/enchanters-tower.scm | 6 +- worlds/haxima-1.002/endless-deeps-mech.scm | 20 +- worlds/haxima-1.002/endless-deeps.scm | 14 +- worlds/haxima-1.002/engineer.scm | 229 ++- worlds/haxima-1.002/engineers-hut.scm | 4 +- worlds/haxima-1.002/eye-of-brune.scm | 18 +- worlds/haxima-1.002/fields.scm | 30 +- worlds/haxima-1.002/fing.scm | 64 +- worlds/haxima-1.002/fire_sea.scm | 4 +- worlds/haxima-1.002/florinth.scm | 8 +- worlds/haxima-1.002/food.scm | 6 +- worlds/haxima-1.002/forsaken-prison.scm | 2 +- worlds/haxima-1.002/game.scm | 46 +- worlds/haxima-1.002/gamestart-mech.scm | 26 +- worlds/haxima-1.002/gamestart-statues.scm | 122 +- worlds/haxima-1.002/gamestart.scm | 10 +- worlds/haxima-1.002/gate-guard.scm | 18 +- worlds/haxima-1.002/gen.scm | 233 ++- worlds/haxima-1.002/ghertie.scm | 117 +- worlds/haxima-1.002/gholet.scm | 100 +- worlds/haxima-1.002/glasdrin.scm | 2 +- worlds/haxima-1.002/goblin-kingdoms.scm | 12 +- worlds/haxima-1.002/green-tower-lower.scm | 2 +- worlds/haxima-1.002/green-tower.scm | 2 +- worlds/haxima-1.002/gregor.scm | 256 ++- worlds/haxima-1.002/gregors-hut.scm | 4 +- worlds/haxima-1.002/gwen.scm | 91 +- worlds/haxima-1.002/hackle.scm | 120 +- worlds/haxima-1.002/henry.scm | 92 +- worlds/haxima-1.002/hidden.scm | 2 +- worlds/haxima-1.002/ilya.scm | 138 +- worlds/haxima-1.002/ini.scm | 135 +- worlds/haxima-1.002/jake.scm | 71 +- worlds/haxima-1.002/janice.scm | 32 +- worlds/haxima-1.002/jeffreys.scm | 139 +- worlds/haxima-1.002/jess.scm | 83 +- worlds/haxima-1.002/jewelry.scm | 8 +- worlds/haxima-1.002/jim.scm | 112 +- worlds/haxima-1.002/joel.scm | 44 +- worlds/haxima-1.002/jones.scm | 36 +- worlds/haxima-1.002/jorn.scm | 43 +- worlds/haxima-1.002/kalcifax.scm | 52 +- worlds/haxima-1.002/kama.scm | 110 +- worlds/haxima-1.002/kanji.png | Bin 0 -> 186738 bytes worlds/haxima-1.002/kathryn.scm | 132 +- worlds/haxima-1.002/keep.scm | 10 +- worlds/haxima-1.002/keep_crypt_mech.scm | 2 +- worlds/haxima-1.002/kern-init.scm | 1 + worlds/haxima-1.002/keys.scm | 4 +- worlds/haxima-1.002/kraken-lakes.scm | 10 +- worlds/haxima-1.002/kun.scm | 2 +- worlds/haxima-1.002/landslide.scm | 4 +- worlds/haxima-1.002/lever.scm | 4 +- worlds/haxima-1.002/lia.scm | 106 +- worlds/haxima-1.002/lich-tomb.scm | 2 +- worlds/haxima-1.002/lost-halls.scm | 30 +- worlds/haxima-1.002/luximene.scm | 131 +- worlds/haxima-1.002/mans-hideout.scm | 2 +- worlds/haxima-1.002/may.scm | 119 +- worlds/haxima-1.002/meaney.scm | 132 +- worlds/haxima-1.002/melvin.scm | 81 +- worlds/haxima-1.002/merciful-death.scm | 4 +- worlds/haxima-1.002/mesmeme.scm | 34 +- worlds/haxima-1.002/miggs.scm | 34 +- worlds/haxima-1.002/mimic.scm | 2 +- worlds/haxima-1.002/minimal-start.scm | 2 +- worlds/haxima-1.002/money.scm | 2 +- worlds/haxima-1.002/moon.scm | 48 +- worlds/haxima-1.002/moongate-clearing.scm | 10 +- worlds/haxima-1.002/moongate.scm | 4 +- worlds/haxima-1.002/mouse.scm | 81 +- worlds/haxima-1.002/mushroom-cave.scm | 2 +- worlds/haxima-1.002/nate.scm | 94 +- worlds/haxima-1.002/naz.scm | 47 +- worlds/haxima-1.002/necromancer.scm | 248 ++- worlds/haxima-1.002/necromancers-lair.scm | 2 +- worlds/haxima-1.002/nossifer.scm | 24 +- worlds/haxima-1.002/npc-types.scm | 168 +- worlds/haxima-1.002/occs.scm | 12 +- worlds/haxima-1.002/old-absalot.scm | 2 +- worlds/haxima-1.002/old-mine.scm | 2 +- worlds/haxima-1.002/oparine.scm | 6 +- worlds/haxima-1.002/oscar.scm | 97 +- worlds/haxima-1.002/parties.scm | 110 +- worlds/haxima-1.002/patch.scm | 81 +- worlds/haxima-1.002/pitfalls.scm | 34 +- worlds/haxima-1.002/poor-house.scm | 2 +- worlds/haxima-1.002/portals.scm | 40 +- worlds/haxima-1.002/portcullis.scm | 4 +- worlds/haxima-1.002/potions.scm | 58 +- worlds/haxima-1.002/powers.scm | 101 +- worlds/haxima-1.002/prison.scm | 2 +- worlds/haxima-1.002/quests-data-static.scm | 371 ++-- worlds/haxima-1.002/quests-data.scm | 142 +- worlds/haxima-1.002/quests-mech.scm | 8 +- worlds/haxima-1.002/r2a_mech.scm | 4 +- worlds/haxima-1.002/raise-merciful-death.scm | 4 +- worlds/haxima-1.002/reagents.scm | 18 +- worlds/haxima-1.002/road_to_absalot.scm | 14 +- worlds/haxima-1.002/roland.scm | 69 +- worlds/haxima-1.002/runes.scm | 22 +- worlds/haxima-1.002/scrolls.scm | 32 +- worlds/haxima-1.002/selene.scm | 43 +- worlds/haxima-1.002/shard.scm | 2 +- worlds/haxima-1.002/shroom.scm | 192 +- worlds/haxima-1.002/silas.scm | 304 ++- worlds/haxima-1.002/skills.scm | 32 +- worlds/haxima-1.002/slimy-cavern.scm | 7 +- worlds/haxima-1.002/slywan.scm | 35 +- worlds/haxima-1.002/special.scm | 33 +- worlds/haxima-1.002/species.scm | 84 +- worlds/haxima-1.002/spells.scm | 184 +- worlds/haxima-1.002/spider.scm | 9 +- worlds/haxima-1.002/start-new-game.scm | 22 +- worlds/haxima-1.002/statue-of-justice.scm | 57 +- worlds/haxima-1.002/steward.scm | 139 +- worlds/haxima-1.002/talking-ankh.scm | 16 +- worlds/haxima-1.002/terrains.scm | 454 ++--- worlds/haxima-1.002/tetzl.scm | 9 +- worlds/haxima-1.002/the-man.scm | 152 +- worlds/haxima-1.002/thiefs_den.scm | 2 +- worlds/haxima-1.002/thorald.scm | 76 +- worlds/haxima-1.002/thud.scm | 43 +- worlds/haxima-1.002/tim.scm | 44 +- worlds/haxima-1.002/timer.scm | 2 +- worlds/haxima-1.002/tools.scm | 52 +- worlds/haxima-1.002/tooth.scm | 123 +- worlds/haxima-1.002/traps.scm | 28 +- worlds/haxima-1.002/traps_1.scm | 44 +- worlds/haxima-1.002/traps_2.scm | 8 +- worlds/haxima-1.002/traps_3.scm | 2 +- worlds/haxima-1.002/traps_4.scm | 2 +- worlds/haxima-1.002/treasury.scm | 2 +- worlds/haxima-1.002/trigrave.scm | 10 +- worlds/haxima-1.002/tutorial.scm | 16 +- worlds/haxima-1.002/tutorial_cave.scm | 8 +- worlds/haxima-1.002/tutorial_town.scm | 66 +- worlds/haxima-1.002/tutorial_wilderness.scm | 38 +- worlds/haxima-1.002/valus.scm | 96 +- worlds/haxima-1.002/vehicles.scm | 8 +- worlds/haxima-1.002/void-temple.scm | 2 +- worlds/haxima-1.002/voidgap-passage.scm | 14 +- worlds/haxima-1.002/warritrix.scm | 111 +- worlds/haxima-1.002/weather-vane.scm | 2 +- worlds/haxima-1.002/westpass.scm | 2 +- worlds/haxima-1.002/wind-bridge.scm | 2 +- worlds/haxima-1.002/zane.scm | 93 +- worlds/haxima-1.002/ztats-quest-ui.scm | 2 +- 254 files changed, 11500 insertions(+), 7367 deletions(-) create mode 100644 JAPANESE delete mode 100644 doc/CVS/Entries delete mode 100644 doc/CVS/Entries.Log delete mode 100644 doc/CVS/Repository delete mode 100644 doc/CVS/Root create mode 100644 doc/USERS_GUIDE_JP delete mode 100644 doc/engine_extension_and_design/CVS/Entries delete mode 100644 doc/engine_extension_and_design/CVS/Repository delete mode 100644 doc/engine_extension_and_design/CVS/Root create mode 100644 doc/users_guide_jp.html delete mode 100644 doc/world_building/CVS/Entries delete mode 100644 doc/world_building/CVS/Repository delete mode 100644 doc/world_building/CVS/Root delete mode 100644 icons/CVS/Entries delete mode 100644 icons/CVS/Repository delete mode 100644 icons/CVS/Root create mode 100644 worlds/haxima-1.002/kanji.png diff --git a/JAPANESE b/JAPANESE new file mode 100644 index 0000000..abe7527 --- /dev/null +++ b/JAPANESE @@ -0,0 +1,2 @@ +“ú–{ŒêƒtƒHƒ“ƒg‚́uo…ƒSƒVƒbƒN 16dotv‚ðŽg—p‚µ‚Ä‚¢‚Ü‚·. +http://members.at.infoseek.co.jp/yu_izumi/izumi-bf/dl-jp.html diff --git a/doc/CVS/Entries b/doc/CVS/Entries deleted file mode 100644 index 41cfae4..0000000 --- a/doc/CVS/Entries +++ /dev/null @@ -1,7 +0,0 @@ -/GAME_RULES/1.3/Tue Jan 23 08:32:13 2007// -/GHULSCRIPT/1.4/Mon Jun 30 09:42:47 2003// -/MAP_HACKERS_GUIDE/1.7/Tue Jan 23 08:32:13 2007// -/USERS_GUIDE/1.31/Sat Oct 10 23:31:19 2009// -/null.gif/1.1/Mon Aug 28 12:39:23 2006/-kb/ -/users_guide.html/1.8/Sat Oct 27 05:46:49 2007// -D diff --git a/doc/CVS/Entries.Log b/doc/CVS/Entries.Log deleted file mode 100644 index 3fe78de..0000000 --- a/doc/CVS/Entries.Log +++ /dev/null @@ -1,2 +0,0 @@ -A D/engine_extension_and_design//// -A D/world_building//// diff --git a/doc/CVS/Repository b/doc/CVS/Repository deleted file mode 100644 index fe6e416..0000000 --- a/doc/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -nazghul/doc diff --git a/doc/CVS/Root b/doc/CVS/Root deleted file mode 100644 index 4d8737a..0000000 --- a/doc/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:gmcnutt@nazghul.cvs.sourceforge.net:/cvsroot/nazghul diff --git a/doc/USERS_GUIDE_JP b/doc/USERS_GUIDE_JP new file mode 100644 index 0000000..4f7ed01 --- /dev/null +++ b/doc/USERS_GUIDE_JP @@ -0,0 +1,611 @@ + + + Nazghulà–¾‘ + +Nazghul(ƒiƒYƒOƒ‹)‚͐̉ù‚©‚µ‚¢A‘S·Šú‚ɂ͐”‘½‚­Ì—p‚³‚ꂽAƒgƒbƒvƒ_ƒEƒ“A2Dƒ^ +ƒCƒ‹ƒOƒ‰ƒtƒBƒbƒN‚ÌRPG‚̃Nƒ[ƒ“‚Å‚ ‚éB‹ï‘Ì“I‚É‚ÍUltima V‚̃VƒXƒeƒ€‚ðÌ—p‚µ‚Ä +‚¢‚āA‚±‚̃Q[ƒ€‚Å—V‚ñ‚¾‚±‚Æ‚ª‚ ‚ê‚ΐe‚µ‚Ý‚â‚·‚¢‚à‚Ì‚É‚È‚Á‚Ä‚¢‚éB + + + ƒQ[ƒ€‚̃Cƒ“ƒXƒg[ƒ‹ + +ƒ\[ƒX‚ðƒ_ƒEƒ“ƒ[ƒh‚µ‚½‚Ì‚Å‚ ‚ê‚΁AINSTALLƒtƒ@ƒCƒ‹‚ð“Ç‚Þ‚±‚ƁB + +Windows—pƒoƒCƒiƒŠ‚ðƒ_ƒEƒ“ƒ[ƒh‚µ‚½‚È‚çAWinzip“™‚Å“WŠJ‚·‚邱‚ƁB + + + ƒQ[ƒ€ŠJŽn + + +Linux/UNIX‚È‚ç‚Î: + + $ haxima.sh + +Windows‚È‚ç‚Î: + + ƒXƒ^[ƒgƒƒjƒ…[‚Ü‚½‚̓fƒXƒNƒgƒbƒv‚̃AƒCƒRƒ“‚©‚ç‹N“®‚·‚é + +Å‰‚Ƀ`ƒ…[ƒgƒŠƒAƒ‹‚Å—V‚Ô‚©A”ò‚΂µ‚čŏ‰‚©‚çŽn‚߂邱‚Æ‚ª‚Å‚«‚éB + + + ƒQ[ƒ€‚Ì•Û‘¶ + +ƒQ[ƒ€’†‚Í‚¢‚‚łàCTRL-SƒL[‚Å•Û‘¶‚·‚邱‚Æ‚ª‚Å‚«‚éB•Û‘¶‚̐”‚Í–³§ŒÀ‚Å‚ ‚éBÄ +ŠJ‚·‚é‚Æ‚«‚́AÅ‰‚̉æ–Ê‚ÅJ)—·‚𑱂¯‚é‚©‚ç•Û‘¶‚µ‚½ƒtƒ@ƒCƒ‹‚ð‘I‘ð‚·‚éB + +‚à‚µŽ€‚ñ‚Å‚µ‚Ü‚Á‚½‚çƒQ[ƒ€‚͏I—¹‚·‚éBÄŠJ‚·‚é‚Æ‚«‚ÍJ)—·‚𑱂¯‚é‚ōŌã‚É•Û‘¶‚µ +‚½‘I‘ð‚·‚é‚±‚Æ‚É‚È‚éB + + + ƒQ[ƒ€I—¹ + +Q‚ð‰Ÿ‚¹‚΂¢‚‚łàI—¹‚Å‚«‚éBI—¹‚·‚é‘O‚É•Û‘¶‚·‚é‚©‚Ì‘I‘ð‚ª‚ ‚éB + + + ‘€ì + +U5‚Å—V‚ñ‚¾‚±‚Æ‚ª‚È‚¯‚ê‚΍ŏ‰‚̉æ–Ê‚Å‘I‘ð‚Å‚«‚éT)ƒ`ƒ…[ƒgƒŠƒAƒ‹‚ðŠ©‚ß‚éB‚»‚±‚É +‚̓Q[ƒ€‚ðŽn‚߂邽‚ß‚Ì‚¢‚­‚‚©‚̃qƒ“ƒg‚ª‚ ‚éB + + ’Tõ‚·‚é + +ƒQ[ƒ€‚ðŽn‚ß‚é‚ƍŏ‰‚́u–À‚¢lvˆêl‚µ‚©‚¢‚È‚¢B‚»‚̃AƒCƒRƒ“‚͍¶‚Ì’n}ã‚Ì’†‰› +‚ÉŒ©‚¦‚éB‚ ‚½‚è‚ð’Tõ‚·‚邽‚߂ɂ̓eƒ“ƒL[‚ňړ®‚·‚é•K—v‚ª‚ ‚éB‰º‚ɂ͏¬‚³‚ȃv +ƒƒ“ƒvƒg‚̃EƒBƒ“ƒhƒE‚ª‚ ‚éB‚»‚±‚É‚Í‘I‘ð‚µ‚½–½—ß‚ÅŽŸ‚ɉ½‚ð“ü—Í‚µ‚È‚¯‚ê‚΂Ȃç‚È +‚¢‚©•\Ž¦‚³‚ê‚éB—Ⴆ‚΁AX)‚ ‚½‚è‚𒲂ׂ閽—߂ł̓vƒƒ“ƒvƒg‚ÍŽŸ‚̂悤‚É‚È‚éB + + ’²‚ׂé-<‘ΏÛ> (ESC‚Å’†Ž~) + +‚±‚ê‚̓eƒ“ƒL[‚ŃJ[ƒ\ƒ‹‚ð“®‚©‚·‚±‚Æ‚ð—v‹‚µ‚Ä‚¢‚邱‚Æ‚ð•\‚µ‚Ä‚¢‚éBESCƒL[‚ð +‰Ÿ‚·‚Æ–½—ß‚Í’†’f‚³‚ê‚éB‚Ù‚Æ‚ñ‚Ç‚Ì–½—ß‚ÍESC‚Å’†’f‚Å‚«‚éB + +‚Ç‚±‚É‚¢‚é‚©A‚»‚µ‚ĉ½Žž‚©‚ð’m‚肽‚¢‚Æ‚«‚Í@ƒL[‚ð‰Ÿ‚·B‚±‚̃Q[ƒ€‚É‚ÍŽžŒv‚Í‚È +‚¢BŽž‚ð’m‚é—Bˆê‚Ì•û–@‚Í‘¾—z‚ÌŠp“x‚©‚ç—ސ„‚·‚邱‚Æ‚Å‚ ‚éB + + ‰ï˜b‚·‚é + +“ì‚ɍŏ‰‚ÌNPC(ƒvƒŒƒCƒ„[‚Å‚È‚¢l•¨)‚ªŒ©‚¦‚éBNPC‚Æ‚ÍT‚Řb‚·‚±‚Æ‚ª‚Å‚«‚éB‘ÎÛ +‚ðŽ¦‚·ƒJ[ƒ\ƒ‹‚ªŒ»‚ê‚é‚̂ŁAƒJ[ƒ\ƒ‹ƒL[‚ňړ®‚³‚¹ANPC‚ɍ‡‚킹ENTERƒL[‚ð‰Ÿ‚· +‚ƁANPC‚Ü‚½‚Í‚ ‚È‚½‚©‚ç‰ï˜b‚ªŽn‚Ü‚éB + +‚±‚ꂪ‰ï˜b‚ÌŽn‚ß•û‚Å‚ ‚éB‰ï˜b‚̍Œ†‚ɃL[ƒ[ƒh‚ð“ü—Í‚·‚é‚ƁANPC‚ª‚»‚ê‚ɉž‚¦ +‚éB—Ⴆ‚΁Au–¼‘Ov‚âuŽdŽ–v‚Æ“ü—Í‚·‚é‚ÆNPC‚Ì‚»‚ꂪ‚í‚©‚éB‰ï˜b‚ðI‚¦‚½‚¢‚È +‚çAu‚³‚æ‚È‚çv‚Ü‚½‚͉½‚à“ü—Í‚¹‚¸ENTER‚ð‰Ÿ‚·B + + •¨‚ðŽæ‚é + +‚ ‚È‚½‚Í‚¢‚¸‚ꓹ‚ð‚½‚Ç‚Á‚趉º‚Ì•”‰®‚É“ü‚邱‚ƂɂȂ邾‚낤B•”‰®‚Ì•Ç‚Í•s‰ÂŽv‹c +‚ȌÑ㕶Žš‚ŏü‚ç‚ê‚Ä‚¢‚éB•”‰®‚Ì’†‚É‚Í” ‚ª‚ ‚éB + +” ‚Ì‚Æ‚È‚è‚ÖˆÚ“®‚µAO‚ð‰Ÿ‚µA•ó” ‚Ì•ûŒü‚̃eƒ“ƒL[‚ð‰Ÿ‚·B‚·‚é‚Æ” ‚ªŠJ‚«A’†‚Ì +—lX‚È•¨‚ª°‚̏ã‚ÉŒ»‚ê‚éB + +Žæ‚邽‚ß‚É‚ÍG‚ð‰Ÿ‚·BŠî–{“I‚È•Ší‚ÆŠZAŽô•¶‚Ì‚½‚ß‚Ì”é–òA‚¢‚­‚‚©‚Ì–ò‚ÆŠª•¨‚ª +Žè‚É“ü‚éB + + ‘•”õ‚·‚é + +Ž‚¿•¨‚ðŒ©‚é‚½‚߂ɂ́AZ‚ð‰Ÿ‚µ‚ăXƒNƒ[ƒ‹‚³‚¹‚éB¶‰E‚̃L[‚Å•\Ž¦‚·‚鍀–Ú‚ðØ +‚è‘Ö‚¦‚ç‚ê‚éB‚ ‚È‚½Ž©g‚⎝‚¿•¨‚ðŒ©I‚¦‚½‚çESC‚ð‰Ÿ‚µ‚Ä–ß‚éB + +R‚ð‰Ÿ‚µ‚Ä‘•”õ‚·‚镐Ší‚âŠZ‚ð‘I‚сAENTER‚Å‘•”õ‚·‚éB‘•”õ‚µI‚í‚Á‚½‚çESC‚Å–ß‚éB + + Žô•¶‚𒲍‡‚·‚é + +‰ñ•œ‚ÌŽô•¶‚ð‡¬‚·‚éB‚Ü‚¸M‚ð‰Ÿ‚·BŽŸ‚ÉŽô•¶‚Ì–¼Ì‚ð“ü—Í‚·‚éB‚±‚̏ꍇ‚Í"Mani" +‚̐擪‚ÌM‚ð‰Ÿ‚µAENTER‚ð‰Ÿ‚·BŽŸ‚ɐlŽQ‚Æ’w偂̎…‚ð”é–ò‚̈ꗗ‚©‚ç‘I‚ԁB‚»‚µ‚ÄM +‚ð‰Ÿ‚·BÅŒã‚Ɉê“x‚É’²‡‚·‚éŽô•¶‚̐”‚ð“ü—Í‚Å‚«‚é‚̂ŁA•K—v‚ÈMani‚ÌŽô•¶‚̐”‚ð“ü +—Í‚·‚éB‚±‚±‚Å1‚ð“ü—Í‚·‚é‚ƁA1‚‚ÌManiA‰ñ•œ‚ÌŽô•¶‚ªì‚ç‚ê‚éBŽô•¶‚ÍŒã‚Å‚æ‚èÚ +‚µ‚­à–¾‚·‚éB + + ’¬‚ɏo“ü‚è‚·‚é + +L‚¢¢ŠE‚ɏo‚čs‚­€”õ‚ª‚Å‚«‚½‚È‚çA’n}‚Ì’[‚֍s‚«A—E‹C‚ðo‚µ‚Ä“¥‚ݏo‚·BLˆæ +’n}‚̍r–ì‚É‚È‚èA‘Sˆõ‚ª’†‰›‚Ì1‚‚Ì(‚ ‚È‚½‚Ì)ƒAƒCƒRƒ“‚Å•\Ž¦‚³‚ê‚éBÄ‚Ñ“ü‚邽 +‚߂ɂ́A“ì‚Ö1i‚Ý(‚ ‚È‚½‚ª‚¢‚½êŠ‚ɍՒd‚̃AƒCƒRƒ“‚ªŒ©‚¦‚邾‚낤)AÄ‚Ñ–k‚É1i +‚ށB‚±‚ê‚Å’¬‚ւ̏o“ü‚è‚Ì•û–@‚ª‚ª‚í‚©‚Á‚½‚Í‚¸‚¾B + +’¬‚É“ü‚Á‚½‚Æ‚«‚́A“G‚ª‚»‚±‚É‚¢‚È‚¢ŒÀ‚èAu’ǐՁvó‘Ô‚É‚È‚Á‚Ä‚¢‚éB‚±‚̏ó‘Ô‚Å‚Í +‚ ‚È‚½‚Í’‡ŠÔ‚½‚¿‚̐擪‚Æ‚È‚èA‘¼‚ÌŽÒ‚½‚¿‚Í‚ ‚È‚½‚ɂ‚¢‚čs‚±‚¤‚Æ‚·‚éB‚µ‚©‚µA +‚à‚µ’¬‚É“G‚ª‚¢‚ê‚΁Au‡”ԁvó‘Ô‚É‚È‚éB‚±‚̏ó‘Ô‚Å‚Í‚ ‚È‚½‚Í’‡ŠÔ‚Ì‚»‚ꂼ‚ê‚ð‡ +”Ô‚É‘€ì‚·‚邱‚Æ‚É‚È‚éB2‚‚̏ó‘Ô‚ÍFƒL[‚Ő؂è‘Ö‚¦‚ç‚ê‚éB‚±‚Ì‚±‚Æ‚Í’‡ŠÔ‚ª‰Á‚í +‚Á‚½‚Æ‚«‚É‚í‚©‚邾‚낤B + +d—v: ’‡ŠÔ‚ª‰Á‚í‚Á‚½‚çA’ǐÕ(FƒL[)‚É‚·‚邱‚Æ‚ð–Y‚ê‚Ä‚Í‚È‚ç‚È‚¢Bí‚ɌX‚ð‘€ + ì‚·‚é‚æ‚èAŽålŒö‚ð‘Sˆõ‚ª’Ç‚¤‚悤‚É‚·‚é•û‚ªŠÈ’P‚Å‚ ‚éB + + + ‰æ–Ê + +“V‘Ì + + ’n}‚̏ã‚ɘg‚É–„‚ߍž‚܂ꂽ¬‚³‚ȃEƒBƒ“ƒhƒE‚ª‚ ‚èA‘¾—z‚Æ2‚‚̌Ž‚̈ʒu‚ª•\ + Ž¦‚³‚ê‚Ä‚¢‚éBŒŽ‚Ì‘Š‚à•\Ž¦‚³‚ê‚Ä‚¢‚éB‚±‚ê‚ÍŒŽ‚Ì–å‚É‚æ‚éˆÚ“®‚ŏd—v‚ȈӖ¡‚ð + Ž‚B + +•—Œü‚« + + ’n}‚̉º‚̘g‚É–„‚ߍž‚܂ꂽ•”•ª‚É‚Í•—Œü‚«‚ª•\Ž¦‚³‚ê‚Ä‚¢‚éB•—‚ÍŒ»Ý‚Å‚Í‘D‚É + ‚æ‚éˆÚ“®‚݂̂ɉe‹¿‚ª‚ ‚éB•—‚ð‰¡Ø‚éê‡‚ªÅ‚àŒø—¦‚ª‚æ‚­AŽŸ‚ª•—‚ðŒã‚ë‚©‚ç + Žó‚¯‚éê‡‚Å‚ ‚éB‚»‚µ‚Ä•—‚ÉŒü‚©‚¤ê‡‚ªÅ‚àŒø—¦‚ªˆ«‚¢B•—Œü‚«‚Í•—‚ª‚Ç‚Ì•û + Œüu‚©‚çv‚¢‚Ä‚¢‚é‚©‚ð•\‚µ‚Ä‚¢‚邱‚Æ‚É’ˆÓ‚·‚邱‚ƁB + +–½—߃vƒƒ“ƒvƒg + + U4/U5/U6‚Ƃ͈ႢA–½—߃vƒƒ“ƒvƒg‚à“ÆŽ©‚̃EƒBƒ“ƒhƒE‚ª•—Œü‚«‚̉º‚É‚ ‚éB–½—ß + ‚Ì“ü—Í‚ª•\Ž¦‚³‚ê‚éB‰ï˜b‚ł̃vƒŒƒCƒ„[‚Ì“ü—Í‚à“¯—l‚É‚±‚±‚É•\Ž¦‚³‚ê‚éB + +ó‘Ô + + ‰Eã‚É‚ÍŽ‚¿•¨‚ðŒ©‚éA‚Ü‚½‚Í‘I‘ð‚·‚éƒEƒBƒ“ƒhƒE‚ª‚ ‚éB’ʏí‚Í’‡ŠÔ‚ÌŠî–{“I‚È + î•ñ‚ª•\Ž¦‚³‚ê‚Ä‚¢‚邪A‚»‚Ì“à—e‚Í–½—ß‚É‚æ‚Á‚Ä•Ï‚í‚éB—Ⴆ‚ÎR‚ð‰Ÿ‚·‚ƈꗗ + ‚©‚ç‚Ì‘I‘ð‚É‚È‚éB + + ’ʏíA‚±‚̃EƒBƒ“ƒhƒE‚É‚Í’‡ŠÔ‘Sˆõ‚ÌŒ»Ý‚̗̑͂Əó‘Ԃ̈ꗗ‚ª•\Ž¦‚³‚ê‚Ä‚¢‚éB + ó‘Ô‚Í1‚‚܂½‚Í•¡”‚̏¬‚³‚ȃAƒCƒRƒ“‚Å•\‚³‚ê‚éB—Ⴆ‚ΓłɔƂ³‚ê‚é‚Ə¬‚³‚È + —ΐF‚̃hƒNƒ‚ÆŒð·‚·‚鍜‚̃AƒCƒRƒ“‚ª•\Ž¦‚³‚ê‚éBZƒL[‚ð‰Ÿ‚·‚Æ’‡ŠÔ‚̌X‚Ì + Ú‚µ‚¢ó‘Ô‚ð•\Ž¦‚·‚邱‚Æ‚ª‚Å‚«‚éB + +H—¿/‹à + + (Œ´•¶‚Ìfoogod‚Í)•s“¹“¿‚È‹¿‚«‚¾‚ªA’P‚ɐH—¿/‹àƒEƒBƒ“ƒhƒE‚Ì“ª•¶Žš‚ð•À‚ׂ½‚¾ + ‚¯‚Å‚ ‚éB‚±‚̏ó‘ÔƒEƒBƒ“ƒhƒE‚̉º‚É‚ ‚鏬‚³‚ȃEƒBƒ“ƒhƒE‚ɂ͉ñ”AH—¿A‚»‚µ + ‚‹à‚ªAŒ»Ý‚̐퓬ó‘Ô‚âŒp‘±’†‚̏ó‘Ô‚Æ‹¤‚É•\Ž¦‚³‚ê‚Ä‚¢‚éBó‘Ԃ͈͆‚Ì + ‚悤‚ȏ¬‚³‚È•¶Žš‚Å•\Ž¦‚³‚ê‚Ä‚¢‚éB—Ⴆ‚Î"N"‚Í’¾–Ù‚ð•\‚µ‚Ä‚¢‚éBæ‚蕨‚ɏæ + ‚Á‚Ä‚¢‚é‚Æ‚«‚́A‚³‚ç‚ɏæ‚蕨‚Ì‘Ï‹v—Í‚à•\Ž¦‚³‚ê‚éB•¶Žš‚̈Ӗ¡‚͈ȉº‚Ì’Ê‚è‚Å + ‚ ‚éB + + ’¾–Ù + + –‚–@‚ðŽg‚¤‚±‚Æ‚ª‚Å‚«‚È‚¢B + + ‚‘¬‰» + + ‘Sˆõ‚ªŽ©•ª‚̔Ԃɕ¡”‰ñs“®‚Å‚«‚éB + + ‰ÂŽ‹ + + Œ©‚¦‚È‚¢‚à‚Ì‚ªŒ©‚¦‚éB + + ŽžŠÔ’âŽ~ + + ‘Sˆõ‚ªs“®‚·‚éŠÔA¢ŠE’†‚Ì‚à‚Ì‚ªŽ~‚Ü‚éB + + “§Ž‹ + + ‘Sˆõ‚ª•Ç‚ÌŒü‚±‚¤‚ðŒ©‚é‚±‚Æ‚ª‚Å‚«‚éB + +—š—ð + + ÅŒã‚̉E‰º‚̃EƒBƒ“ƒhƒE‚ɂ̓Q[ƒ€’†‚̃ƒbƒZ[ƒW‚Ì—š—ð‚ª•\Ž¦‚³‚ê‚éB + + + ƒvƒŒƒCƒ„[‚Ì–½—ß + + +ƒ}ƒEƒX‚ɂ‚¢‚½Š¾‚ð@‚­‚É‚Í‚æ‚¢‹@‰ï‚¾ - ‘S‚Ä‚Ì–½—߂̓L[ƒ{[ƒh‚Å“ü—Í‚·‚éB‚±‚ê +‚Í“–‘R‚Ì‚±‚Æ‚Å‚ ‚éB–¢—ˆ‰i…‚ɁBƒA[ƒƒ“B + +’Ç‹L: ƒ}ƒEƒXˆ¤D‰Æ‚͑Ώۂ̑I‘ð‚ðƒ}ƒEƒX‚ōs‚¤‚±‚Æ‚à‚Å‚«‚éB‚µ‚©‚µƒL[ƒ{[ƒh‚Ì‚Ù +‚¤‚ª‘‚¢‚Å‚ ‚낤B + +ŠT—v + +<•ûŒü> = ƒeƒ“ƒL[‚Ì8•ûŒü‚Ì“à‚Ì1‚ +<’‡ŠÔ> = ’‡ŠÔ‚ðˆê——‚©‚çƒeƒ“ƒL[‚Å‘I‘ð‚µENTER‚Ü‚½‚ÍSPACE‚ð‰Ÿ‚· +<Ž‚¿•¨> = Ž‚¿•¨‚ðˆê——‚©‚ç‘I‘ð‚·‚é +<Žô•¶> = Žô•¶‚ðˆê——‚©‚ç‘I‘ð‚·‚é + = SPACEƒo[ +<‘ΏÛ> = í“¬‚̑ΏۂðƒJ[ƒ\ƒ‹‚ð“®‚©‚µENTER‚Ü‚½‚ÍSPACE‚ð‰Ÿ‚µ‚Ä‘I‘ð‚·‚é + (‚Ü‚½‚̓}ƒEƒX‚̍¶ƒNƒŠƒbƒN) +<*> = •¶–¬‚É‚æ‚Á‚ĈقȂé + +’ʏí‚Ì–½—ß: + + <•ûŒü>................–½—ß‚µ‚½•ûŒü‚Ɉړ®‚·‚é + A-<•ûŒü>..............í“¬‚ðŠJŽn‚·‚é (Attack) + B.....................‘D‚â”n‚̂悤‚ȏæ‚蕨‚ɏæ‚é/‚©‚ç~‚è‚é (Board) + C-<’‡ŠÔ>-<Žô•¶>-<*>...Žô•¶‚ð¥‚¦‚é(I‚í‚è‚Ì•”•ª‚ÍŽô•¶‚Ɉˑ¶‚·‚é) (Cast) + E.....................“ü‚éB‚Í‚µ‚²‚̏ã‚艺‚è‚àŠÜ‚Ü‚ê‚é (Enter) + F-<•ûŒü>..............æ‚蕨‚Ì•Ší‚ð”­ŽË‚·‚é(—Ⴆ‚ΑD‚Ì‘å–C) (Fire) + G-<•ûŒü>..............’u‚¢‚Ä‚ ‚镨‚ðŽæ‚é (Get) + H-<’‡ŠÔ>-<•ûŒü>.......ƒXƒCƒbƒ`‚⃌ƒo[‚𑀍삷‚é (Handle) + L-<0-9>...............”ŽžŠÔ‚¤‚ë‚‚­ (Loiter) + N-<’‡ŠÔ>-<’‡ŠÔ>.......’‡ŠÔ‚̏‡”Ô‚ð•ÏX‚·‚é (New-order) + O-<•ûŒü>..............“ü‚ꕨ‚â”à‚ðŠJ‚¯‚é (Open) + Q.....................I—¹‚µ•Û‘¶‚·‚éA‚Ü‚½‚Í‚µ‚È‚¢ (Quit) + R-<’‡ŠÔ>-<Ž‚¿•¨>.....•Ší‚⏂‚È‚Ç‚ð‘•”õ‚·‚é (Ready) + S-<•ûŒü>..............’ˆÓ[‚­Œ©‚é (Search) + T-............NPC‚Ƙb‚· (Talk) + U-<’‡ŠÔ>-<Ž‚¿•¨>.....¼–¾‚â–ò‚̂悤‚È‚à‚Ì‚ðŽg‚¤ (Use) + X-<‘ΏÛ>..............’n}ã‚Ì‚à‚̂𒲂ׂé (eXamine) + Z.....................’‡ŠÔ‚ÌŽ‚¿•¨‚â‘•”õ‚È‚Ç‚ðŒ©‚é (Ztats) + @.....................Œ»Ý‚Ç‚±‚É‚¢‚é‚©‚È‚Ç‚ð•\Ž¦‚·‚é (at) + SPACE.................‰½‚à‚µ‚È‚¢ + CTRL-S................ƒQ[ƒ€‚ð•Û‘¶‚·‚é (Save) + CTRL-R................ƒQ[ƒ€‚ð“ǂݍž‚Þ (Reload) + +r–ì‚Ì‚Ý‚Ì–½—ß: + + K-<0-9/–é–¾‚¯>--<’‡ŠÔ> + ......................r–ì‚Å(‘Ì—Í‚Æ–‚—Í‚ð‰ñ•œ‚³‚¹‚邽‚ß)A‚Ü‚½‚Í‘D‚̏ã‚Å + (‘D‚ðC—‚·‚邽‚ß)‹x‘§‚ðŽæ‚é (Kamp) + +’¬/–À‹{/í“¬‚Ì‚Ý‚Ì–½—ß: + + A-<‘ΏÛ>..............‘ΏۂðUŒ‚‚·‚é (Attack) + C-<Žô•¶>-<*>..........Žô•¶‚ð¥‚¦‚é (Cast) + F.....................u’ǐՁv(’‡ŠÔ‚½‚¿‚͐擪‚ÌŽÒ‚ðŽ©“®“I‚É’Ç‚¤)‚Æ + u‡”ԁv(‡”Ô‚ª‰ñ‚Á‚Ä‚«‚½‚Æ‚«’‡ŠÔ‚ðŒÂX‚É‘€ì‚·‚é)‚ð + Ø‚è‘Ö‚¦‚é (Follow) + 1-9...................u’P“Ɓv‚É‚·‚é’‡ŠÔ‚ð‘I‚Ô + 0.....................u‡”ԁv‚É‚·‚é + K-<0-9/–é–¾‚¯>........ƒxƒbƒh‚Å–°‚é (Kamp) + +“ÁŽê‚È–½—ß: + + ESC...................–½—ß‚ð’†’f‚·‚é + Tab...................‰ï˜b’†‚Ƀ[ƒ}Žš‚ƃAƒ‹ƒtƒ@ƒxƒbƒg‚ðØ‚è‘Ö‚¦‚é + (“ú–{Œê”Å‚Ì‚Ý) + +ƒfƒoƒbƒO–½—ß (nazghul‚ð-d‚ð‚‚¯‚Ä‹N“®‚·‚é): + + CTRL-E)valuate........Scheme‚ðƒQ[ƒ€’†‚ÉŽÀs‚·‚éB—Ⴆ‚Î + (kern-obj-relocate ch_wanderer + (list p_shard 51 47) nil) + ‚̓vƒŒƒCƒ„[‚ð[51, 47]‚ɏuŠÔˆÚ“®‚³‚¹‚é (Evaluate) + CTRL-O)...............Œ»Ý‚Ì’n}‚ð•Û‘¶‚·‚é + CTRL-T)erraform.......’nŒ`‚ð•Ï‚¦‚é (Terraform) [1] + CTRL-Z)oom............Šg‘åk¬‚·‚é(•óÎ‚Æ“¯‚¶‚±‚Æ‚ð•óÎ‚È‚µ‚ōs‚¤) (Zoom) + +’Zk + + +/=...................UŒ‚‚̑Ώۂð‘I‘ð‚·‚é‚Æ‚«AŽŸ‚Ì“G‘ΓI‚ÈNPC‚ð‘I‘ð‚·‚é + -.....................UŒ‚‚̑Ώۂð‘I‘ð‚·‚é‚Æ‚«A‘O‚Ì“G‘ΓI‚ÈNPC‚ð‘I‘ð‚·‚é + ESC...................r–ì‚ł̐퓬‚ªI‚í‚Á‚½ŒãAr–ì‚Ì’n}‚É–ß‚é + + ˆÚ“® + + +‘Sˆõ(r–ì) + + ‘Sˆõ‚͉æ–Ê‚Ì’†‰›‚Ì1‚‚̃AƒCƒRƒ“‚Æ‚µ‚Ä•\Ž¦‚³‚ê‚éB + +’ǐÕ(’¬/í“¬/–À‹{) + + æ“ª‚̎҂𑀍삵A‘¼‚Ì’‡ŠÔ‚½‚¿‚͐擪‚ð’Ç‚¤BUŒ‚‚·‚é‚ÆŽ©“®“I‚Ɂu‡”ԁv‚É‚È + ‚éBæ“ª‚É‚È‚é‚̂͏í‚É’n}ã‚É‚¢‚ж‚«‚Ä‚¢‚éˆê——‚̈ê”ԏã‚ÌŽÒ‚Å‚ ‚éB + u’ǐՁv‚©‚çu‡”ԁv‚É‚·‚邽‚ß‚É‚ÍF‚ð‰Ÿ‚·B + +’P“Æ(’¬/í“¬/–À‹{) + + ’‡ŠÔ‚Ì“à‚Ì1l‚𑀍삷‚éB‘¼‚̎҂͉½‚à‚¹‚¸Œ©‚Ä‚¢‚éB”ŽšƒL[‚ð‰Ÿ‚·‚ƁA’‡ŠÔ + ‚̈ꗗ‚̑Ήž‚µ‚½ŽÒ‚ª’P“Ƃōs“®‚·‚éB1‚ªˆê——‚̍łàã‚Å‚ ‚éB + + ƒƒ‚: u’P“Ɓv‚Í’‡ŠÔ‚Ì“à‚Ì1l‚ª‘¼‚æ‚è‚à‚‚¢”\—Í‚ðŽ‚Á‚Ä‚¢‚éê‡‚É•Ö—˜‚Å‚  + ‚éB—Ⴆ‚΁AƒQƒCƒU[‚ª’‡ŠÔ‚ɉÁ‚í‚Á‚Ä‚¢‚ê‚΁A”ނ𐅗­‚è‚ÌŒü‚±‚¤‚֍s‚© + ‚¹‚邱‚Æ‚ª‚Å‚«‚éB—H—삪’‡ŠÔ‚É‚È‚Á‚½‚ç‚Ç‚¤‚©‘z‘œ‚µ‚Ă݂悤B + +‡”Ô(’¬/í“¬/–À‹{) + + ’‡ŠÔ‚½‚¿‚ð‡”Ô‚É‘€ì‚·‚éB‚±‚ê‚͐퓬‚ªŽn‚Ü‚Á‚½‚炱‚̏ó‘Ô‚É‚È‚éBu’P“Ɓv‚© + ‚çu‡”ԁv‚É‚·‚邽‚ß‚É‚Í0‚ð‰Ÿ‚·Bu’ǐՁv‚©‚ç‚ÍF‚ð‰Ÿ‚·B‚»‚¤A¬—‚µ‚»‚¤‚¾ + ‚ª2‚‚̕û–@‚ª‚ ‚éB‚±‚ê‚Í‚¢‚‚©C³‚·‚é‚‚à‚肾BˆÓŒ©‚ª‚ ‚ê‚Ε·‚©‚¹‚Ä—~‚µ + ‚¢B + + + êŠ + +r–ì: + + ’¬‚ÌŠO‚âr–ì‚Å‚Í‘Sˆõ‚ª1‚‚̏W’c‚Æ‚µ‚čs“®‚·‚éB“G‚ÌNPC‚ƂԂ‚©‚éA‚Ü‚½‚Í“G + ‚ªUŒ‚‚·‚é‚Ì‚ð‘҂‚Ɛ퓬‚É‚È‚éB“¯—l‚É’¬A–À‹{AŒŽ‚Ì–å‚ɂ́A’P‚É‚»‚Ì•ûŒü‚É + ˆÚ“®‚·‚é‚Æ“ü‚邱‚Æ‚ª‚Å‚«‚éB + +r–ì‚ł̐퓬: + + r–ì‚Å“G‚ÌNPC‚̏W’c‚Ɖ‚ƁA“Á•Ê‚Ȑ퓬—p‚Ì’n}‚ɐ؂è‘Ö‚í‚éB‚±‚±‚ł͌X + ‚ð‡”Ô‚É‘€ì‚·‚éB¶‚«‚Ä‚¢‚éŽÒ‚ª‘S‚Ä’n}‚Ì’[‚©‚çŠO‚ɏo‚é‚ƍr–ì‚É–ß‚ê‚éB + (ƒƒ‚: í“¬‚ªI‚í‚Á‚½‚ç<ƒL[‚Å‘f‘‚­í“¬‚Ì’n}‚©‚ç—£‚ê‚邱‚Æ‚ª‚Å‚«‚éB) + +’¬/–À‹{: + + ’¬‚â–À‹{‚ł̈ړ®‚͐퓬‚Æ“¯‚¶‚Å‚ ‚éBŒÂX‚ð‡”Ô‚É‘€ì‚Å‚«Au’P“Ɓv‚È‚ç1l + ‚Å‚ ‚½‚è‚𒲂ׂ邱‚Æ‚ª‚Å‚«‚éB‚Ü‚½‚́Aæ“ª‚𑀍삵‚Ä‘¼‚ÌŽÒ‚ð’ǂ킹‚邱‚Æ‚à + ‚Å‚«‚éB + + + í“¬ + + +‰½‚©Œ¾‚¤‚ׂ«‚±‚Æ‚ª‚ ‚邾‚낤‚©? U5‚Æ‚Ù‚Æ‚ñ‚Ç“¯‚¶‚Å‚ ‚éB‰Î‰Šƒrƒ“‚ð–é’†‚â’n‰º‚É +“Š‚°‚Ă݂悤B‚ ‚ AƒQƒCƒU[‚É’ˆÓ‚µ‚ëB”Þ‚ç‚Í‚ ‚È‚½‚𗸂ɂ·‚邱‚Æ‚ª‚Å‚«‚éB‚· +‚®‚ɔނç‚ð“|‚·‚©A—¸‚É‚µ‚ëB + + + ƒŒƒxƒ‹ã¸ + + +’ʏíA\•ª‚ÈŒoŒ±’l‚𓾂é‚ƃŒƒxƒ‹‚ªã‚ª‚éBƒŒƒxƒ‹‚ɏãŒÀ‚Í‚È‚¢B‘Ì—Í‚Æ–‚—͂̍őå +’l‚̏㏸‚́AE‹ÆAŽí‘°AŒÂl‚Ì“ÁŽ¿‚ÅŒˆ‚Ü‚éBƒŒƒxƒ‹‚ªã‚ª‚é‚Æ‘Ì—Í‚Æ–‚—Í‚ª‰ñ•œ‚µ +V‚µ‚¢ƒŒƒxƒ‹‚ł̍őå’l‚É‚È‚éB + + ƒŒƒxƒ‹ã¸‚É•K—v‚ÈŒoŒ± +============================================================================ +ƒŒƒxƒ‹ | ŒoŒ±’l +============================================================================ +1 | 0 +2 | 32 +3 | 64 +4 | 128 +5 | 256 +6 | 512 +n | 2^(n+5) +============================================================================ + + “Á« + +l•¨‚É‚Í3‚‚̊î–{“I‚È“Á«A˜r—́A•q·‚³A‚»‚µ‚Ä’m”\‚ª‚ ‚éB‚±‚ê‚ç‚Ì’l‚͌Œè +‚ŁAˆê“xŒˆ‚ß‚é‚ƃQ[ƒ€’†‚͕ω»‚µ‚È‚¢B + +˜r—Í + + ˜r—͉͂”\‚È•Ší‚ÆŠZ‚̏d—ʂ̏ãŒÀ‚ðŒˆ‚ß‚éB˜r—Í‚ª‚‚¢‚Æ—^‚¦‚éƒ_ƒ[ƒW‚ª‘ + ‚µAd‚¢•Ší‚Ì–½’†—¦‚ªã‚ª‚éBƒNƒ‚‚Ì‘ƒ‚ð”j‚è’Eo‚·‚é‚Æ‚«‚à˜r—Í‚ªŽg‚í‚ê‚é + (‚Ù‚Æ‚ñ‚ǂ̃gƒƒ‹‚Í’·‚¢ŠÔ•ß‚炦‚邱‚Æ‚ª‚Å‚«‚È‚¢c)B + +•q·‚³ + + •q·‚³‚Í”ò‚Ñ“¹‹ï‚ÆŒy‚¢•Ší‚ł̍UŒ‚‚ÉŽg‚í‚êA“G‚̍UŒ‚‚ð”ð‚¯‚é•‚¯‚É‚È‚éBù + ‘O‚ð‚±‚¶ŠJ‚¯‚é‚Æ‚«‚âA” ‚Ì㩂ð‰ðœ‚·‚邽‚ß‚É‚à•K—v‚Å‚ ‚éB + +’m”\ + + ’m”\‚ÍŽô•¶‚ÌŒø‰Ê‚ð‚‚ßA¬Œ÷‚µ‚â‚·‚­‚·‚éB + + + –‚–@ + + +‚±‚̃Q[ƒ€‚É‚ÍŠ®‘S‚È–‚–@‚ª‚ ‚éB–‚–@‚Ì‘ÌŒn‚ÍUltima 5‚âUltima 6‚ÆŽ—‚Ä‚¢‚āA‚ ‚È +‚½‚Í–‚–@‚ÍŽô•¶‚̉¹‚ð“ü—Í‚·‚éBŽô•¶‚Ì–¼‘O‚Í1‚‚©‚ç4‚‚̉¹‚Ì‘g‚ݍ‡‚킹‚Å‚ ‚éB + +‚±‚̃Q[ƒ€‚̉¹AŽô•¶A‚»‚µ‚Ä”é–ò‚Ì’²‡‚Í‘S‚ÄUltima 5‚Ì‚à‚Ì‚Å‚ ‚éB‚à‚µU5‚Ìà–¾ +‘‚ðŽ‚Á‚Ä‚¢‚È‚¯‚ê‚΁AˆÈ‰º‚Ì•\‚ª•‚¯‚ɂȂ邾‚낤B + + •\1: ”é–ò +============================================================================ +–¼Ì | Žô•¶•\‚Å‚Ì—ªÌ +============================================================================ +•^Žì | • +ŒŒ‚Ì‘Û | ŒŒ +‘å•f | ‘å +lŽQ | l +ƒ}ƒ“ƒhƒŒƒCƒN | ƒ} +ƒiƒCƒgƒVƒFƒCƒh | ƒi +’w偂̎… | ’w +—°‰©‚ÌŠD | —° +============================================================================ + + •\2: Žô•¶ +============================================================================ +Žô•¶ | Œø‰Ê | ”é–ò | ‘Sˆõ/í“¬ +=================================(1)======================================== +An Nox | ‰ð“Å | l ‘å | ‘S/í +An Zu | ŠoÁ | l ‘å | ‘S/í +Grav Por | –‚–@‚Ì–î | —° • | í +In Lor | Œõ | —° | ‘S/í +Mani | ¬‰ñ•œ | l ’w | ‘S/í +Wis Sanct | 㩒T’m | —° | ‘S/í +An Sanct Ylem | ã©‰ðœ | ŒŒ | ‘S/í +---------------------------------(2)---------------------------------------- +An Sanct | ŠJù | —° ŒŒ | ‘S/í +An Xen Corp | •sŽ€ŠÒ | ‘å —° | í +In Wis | ˆÊ’u | ƒi | ‘S +Rel Hur | •—•Ï‰» | —° ŒŒ | ‘S +In Nox Por | “ÅŒ‚ | ƒi ŒŒ • | í +Bet Flam Hur | ‰Î–¶ | • —° ŒŒ | í +In Bet Xen | ’Ž¢ŠÒ | ’w ŒŒ —° | í +---------------------------------(3)---------------------------------------- +In Flam Grav | ‰Î‰Šê | —° • ’w | í +In Zu Grav | Ã–°ê | l • ’w | í +In Nox Grav | “ŏê | ƒi • ’w | í +Vas Flam | ‰Î‹… | • —° | í +Vas Lor | ‹­Œõ | —° ƒ} | ‘S/í +---------------------------------(4)---------------------------------------- +An Grav | ’E–‚–@ê | • —° | ‘S/í +In Sanct Grav | á•Ç | ƒ} • ’w | í +In Sanct | •ÛŒì | —° l ‘å | ‘S/í +Wis Quas | ‰ÂŽ‹ | ƒi —° | ‘S/í +Bet Por | ’µ–ô | • ŒŒ | í +---------------------------------(5)---------------------------------------- +In Ex Por | ••ˆó‰ðœ | —° ŒŒ | ‘S/í +An Ex Por | ••ˆó | —° ŒŒ ‘å | ‘S/í +In Zu | ‘SÃ–° | l ƒi ’w | í +Vas Mani | ‘å‰ñ•œ | l ’w ƒ} | ‘S/í +Rel Tym | ‚‘¬‰» | —° ŒŒ ƒ} | ‘S/í +Kal Xen | b¢ŠÒ | ’w ƒ} | í +---------------------------------(6)---------------------------------------- +An Xen Ex | –£—¹ | • ƒi ’w | í +In An | ’¾–Ù | ‘å ƒ} —° | í +In Vas Por Ylem | ’nk | ŒŒ ƒ} —° | í +Quas An Wis | ¬— | ƒ} ƒi | í +Wis An Ylen | “§Ž‹ | ƒ} —° | ‘S/í +In Rel Por | ”O—Í | • ŒŒ ’w | í +Vas Por | uŠÔˆÚ“® | ƒ} • ŒŒ | ‘S +---------------------------------(7)---------------------------------------- +In Nox Hur | “Å•— | ƒi —° ŒŒ | í +In Zu Hur | Ã–°•— | ƒ} l ŒŒ | í +In Quas Corp | ‹°•| | ƒi ƒ} ‘å | í +In Quas Xen | •¡» | ƒi ƒ} —° ’w ŒŒ l | í +Sanct Lor | •s‰ÂŽ‹ | ƒi ƒ} ŒŒ | í +Xen Corp | Ž€ | ƒi • | í +---------------------------------(8)---------------------------------------- +An Tym | ŽžŠÔ’âŽ~ | ƒ} ‘å ŒŒ | ‘S/í +In Flam Hur | ‰Š•— | ƒ} —° ŒŒ | í +In Vas Grav Corp | Ž€•— | ƒ} —° ƒi | í +In Mani Corp | ‘h¶ | ‘å l ’w —° ŒŒ ƒ} | ‘S/í +Kal Xen Corp | •sŽ€¢ŠÒ | ’w ƒ} ƒi | í +Vas Rel Por | –å | —° ƒ} • | ‘S +============================================================================ + +[1] ’¬‚â–À‹{‚ł̏uŠÔˆÚ“®‚ÌŽô•¶‚́Aí“¬‚ªI—¹‚µu’ǐՁv‚É‚È‚Á‚Ä‚¢‚È‚¯‚ê‚ÎŽ¸”s‚· + ‚éB + + Œø‰Ê + +Žž‚É‚Í–‚–@‚É‚æ‚éUŒ‚AŽ©‘RÐŠQA‚Ü‚½‚ÍŽ©g‚ÌŽð‚̎コ‚É‚æ‚菬‚³‚È–â‘è‚ð•ø‚¦‚邾 +‚낤B‚ ‚í‚Ä‚é‚ȁB‘½‚­‚ÌŒø‰Ê‚Í’v–½“I‚Å‚Í‚È‚¢B‚¾‚ªA‚¢‚‚­‚©‚Í‚»‚¤‚Å‚ ‚éB + +‡–° (S) + + –°‚Á‚Ä‚¢‚éŽÒ‚Í‚¢‚¸‚ê‚ÍŽ©•ª‚Å–ÚŠo‚ß‚éB‚à‚µ‘Ò‚Ä‚È‚¯‚ê‚ÎAn Zu‚ÌŽô•¶‚ðŽg‚¦‚Î + ‚æ‚¢B + +–£—¹ (C) + + “G‚Ì–‚pŽt‚É–£—¹‚³‚ꂽŽÒ‚Í’‡ŠÔ‚ðUŒ‚‚·‚éB–£—¹‚ÌŒø‰Ê‚Í10•ª‚Ő؂ê‚éB + +•a‹C (D) + + ‚¢‚­‚‚©‚̉ö•¨‚Í’‡ŠÔ‚ð•a‹C‚É‚·‚éB•a‹C‚ÅŽ€‚Ê‚±‚Æ‚Í‚È‚¢‚ªA‘Ì—Í‚ª‚È‚­‚Ȃ鐡 + ‘O‚Ü‚ÅŽ¡‚邱‚Æ‚Í‚È‚¢B + +çÇç (A) + + Žð‚𔃂¤‚©A’u‚¢‚Ä‚ ‚éŽð‚ðŽæ‚é‚ƐŒ‚¤BŒ‚¢‚Í1ŽžŠÔ‘±‚«A•à‚¢‚Ä‚¢‚é‚Æ‚«•¨‚É + ‚Ԃ‚©‚邱‚Æ‚ª‚ ‚éB + +—‚Ü‚è (E) + + ƒNƒ‚‚Ì‘ƒ‚É—‚Ü‚é‚ƁA‘ƒ‚ð”j‚낤‚Æ‚à‚ª‚­‚±‚Æ‚É‚È‚éB•K—v‚ÈŽžŠÔ‚͘r—Í‚É‚æ‚Á‚Ä + Œˆ‚Ü‚éB + +–ƒáƒ (Z) + + ƒNƒ‚‚Í‘ŠŽè‚ðH‚ׂ邽‚ß–ƒáƒ‚̓ł𒍓ü‚·‚éB–ƒáƒ‚Í’Z‚¢ƒ‰ƒ“ƒ_ƒ€‚ÈŽžŠÔ‚ʼnñ•œ‚· + ‚éB + +“Å (P) + + ƒKƒX‚Ü‚½‚ÍŽô•¶‚œłɔƂ³‚ê‚é‚ƁA–‚–@‚©–ò‚ʼnñ•œ‚·‚é‚܂ŏ‡”Ô‚ª‰ñ‚Á‚Ä‚­‚é“x‚É + ‘Ì—Í‚ªŽ¸‚í‚ê‚éB“Å‚Í’v–½‚ɂȂ肤‚é! •a‹C‚̂悤‚ÉŽ©‘R‚ɂ͉ñ•œ‚µ‚È‚¢B + + + ‰ï˜b + + +NPC‚Ƃ̉ï˜b‚ðŽn‚߂邽‚ß‚É‚ÍT‚ð‰Ÿ‚·B‰ï˜b‚̍Œ†‚ł́AŠÈ’P‚ÈŽ¿–â‚ð“ü—Í‚·‚é‚ÆNPC +‚ª‚»‚ê‚É“š‚¦‚邪A‘ŠŽè‚ªŽ¿–₵‚Ä‚­‚邱‚Æ‚à‚ ‚éB“Xˆõ‚Æ‚Ì‚Å‚Í•¨‚Ì”„‚蔃‚¢‚ª‚Å‚« +‚éB‚Ù‚Æ‚ñ‚Ç‚ÌNPC‚́u–¼‘Ov‚âuŽdŽ–vAZ‚ñ‚Å‚¢‚é’¬‚â’¬‚Ì‘¼‚̐l•¨‚ɂ‚¢‚Ä“š‚¦ +‚éB‘½‚­‚Ì”½‰ž‚ɂ͐V‚µ‚¢Ž¿–â‚̎肪‚©‚肪ŠÜ‚Ü‚ê‚Ä‚¢‚éB‚Ü‚½Au’‡ŠÔv‚ÅNPC‚ª‚  +‚È‚½‚Ì’‡ŠÔ‚ɉÁ‚í‚ê‚é‚©‚ð–₤‚±‚Æ‚ª‚Å‚«‚é(’‡ŠÔ‚É‚È‚éŽÒ‚à‚¢‚邪A‚ ‚È‚½‚ª‚»‚¤Œ¾ +‚í‚È‚¢A‚Ü‚½‚͔ނç‚ð“®‚©‚·‚悤‚È‚±‚Æ‚ðŒ¾‚í‚È‚¢ŒÀ‚è’‡ŠÔ‚É‚Í‚È‚ç‚È‚¢)B + + + ‚»‚Ì‘¼ + +H—¿‚Í1“ú‚É3‰ñA¶‚«‚Ä‚¢‚é’‡ŠÔ‚Ì•ª‚ªÁ”‚ê‚éB‚à‚µH—¿‚ª‚È‚¯‚ê‚΁A’‡ŠÔ‚͐HŽ– +‚ÌŽžŠÔ‚Ì‚½‚Ñ‚É‘Ì—Í‚ªŒ¸‚éB + + + •t˜^A: ’n}‚̍쐬 + +‘½‚­‚̃Q[ƒ€‚Æ“¯—l‚ɁA"nazghul"‚̓Q[ƒ€ƒGƒ“ƒWƒ“[2]‚ƃf[ƒ^‚ª•ª—£‚³‚ê‚Ä‚¢‚éBƒf +[ƒ^ƒtƒ@ƒCƒ‹‚̓vƒƒOƒ‰ƒ€Œ¾Œê‚ÌScheme‚ŏ‘‚©‚ê‚Ä‚¢‚éBÅ‰‚ÉŽÀs‚·‚éƒtƒ@ƒCƒ‹‚Í +'session.scm'‚ŁA‚»‚±‚ɂ͓ǂݍž‚Ü‚ê‚éScheme‚Ì‘¼‚̃tƒ@ƒCƒ‹‚Ə‰Šú‰»‚Ì—lX‚È’è‹` +‚ª‘‚©‚ê‚Ä‚¢‚éB + +Ž©•ªŽ©g‚̃Q[ƒ€‚ðì¬‚·‚邽‚߁A‚±‚̃Tƒ“ƒvƒ‹ƒtƒ@ƒCƒ‹‚̉ü‘¢‚µŠî‘b‚Æ‚·‚邱‚Ƃ𐄠+§‚·‚éBƒTƒ“ƒvƒ‹‚̃R[ƒh‚Í‘S‚ăpƒuƒŠƒbƒNEƒhƒƒCƒ“‚Æ‚·‚éB‰æ‘œ‚Ɖ¹º‚Í—lX‚ȏŠ +‚©‚ç—ˆ‚½‚à‚Ì‚Å‚ ‚éBCOPYINGƒtƒ@ƒCƒ‹‚É‚Í‚Ç‚±‚©‚ç—ˆ‚½‚Ì‚©Ú×‚ª‘‚©‚ê‚Ä‚¢‚éB + +‚à‚µƒTƒ“ƒvƒ‹‚̃R[ƒh‚ðŽg—p‚µ‚Ä(¤—pƒ\ƒtƒg“™‚Ì)§ŒÀ‚Ì‚ ‚éƒQ[ƒ€‚ðì‚肽‚¢ê‡ +‚́AŽ©•ª‚ʼn摜‚Ɖ¹ºƒtƒ@ƒCƒ‹‚𑼂̃I[ƒvƒ“ƒ\[ƒX‚âƒtƒŠ[ƒEƒFƒAƒvƒƒWƒFƒNƒgA‚» +‚µ‚Ä’˜ìŒ ŽÒ‚ªŒ —˜‚ð—L‚·‚é‚à‚Ì‚©‚ç—pˆÓ‚µ‚È‚¯‚ê‚΂Ȃç‚È‚¢‚¾‚낤B + + + •t˜^B: ƒlƒ^ƒoƒŒ + +‚±‚ê‚ç‚ÍHaxima‚É“Á‰»‚µ‚Ä‚¢‚āA‘¼‚ÌNazghul‚ōì‚ç‚ꂽƒQ[ƒ€‚Å‚Í•K—v‚È‚¢B + + ”ò‚Ñ“¹‹ï +============================================================================ +–¼Ì –½’† ‘ÅŒ‚ ‰ñ”ð Žè ŽË’ö ’e d—Ê +============================================================================ +“ŠÎ•R 1d2-2 1d4 -1 1 4 Î 0 ++4 “ŠÎ•R 3 1d4+4 0 1 6 Î 0 +‹| 1d3-2 2d4 -2 2 6 –î 2 +ƒNƒƒXƒ{ƒE 1d4-2 4d4 -1 2 4 ƒNƒƒXƒ{ƒE‚Ì–î 3 +”j–ł̏ñ 1d4 1 +2 2 5 - 2 +ÕŒ‚‚Ì–_ [1] -2 1d4 -1 1 6 - 2 +============================================================================ +[1] ˆêŽž“I‚ɑΏۂð–ƒáƒ‚³‚¹‚é + + “Š±•Ší +============================================================================ +–¼Ì –½’† ‘ÅŒ‚ ‰ñ”ð Žè ŽË’ö d—Ê +============================================================================ +‰Î‰Šƒrƒ“ [1] -1 1d6 -2 1 4 1 +“Š‘„ 0 1d8 +1 1 4 2 +‰s‚¢Î -2 3d4+1 -2 2 5 10 +============================================================================ +[1] ˆêŽž“I‚É’n–ʂɉŠ‚ðŽc‚· + + Ú‹ßí—p•Ší +============================================================================ +–¼Ì –½’† ‘ÅŒ‚ ‰ñ”ð Žè ŽË’ö d—Ê +============================================================================ +’ZŒ• 1d4 1d4 1d2 1 1 0 ++4 ’ZŒ• 1d4+4 1d4+4 1d2+4 1 1 0 +’Æ–µ 1d4 1d6+2 +0 1 1 3 +•€ 1d2 2d3+2 +0 1 1 3 +Œ• 1d2 1d8+1 1d2 1 1 2 ++2 Œ• 1d2+2 1d8+3 1d2+2 1 1 2 ++4 Œ• 1d2+4 1d8+5 1d2+4 1 1 2 +—¼Žè•€ 0 4d3+2 -2 2 1 4 +—¼ŽèŒ• 0 2d8+2 1 2 1 4 +Žh•t‚«“S‹… 1d2+2 1d6+1 -1 1 2 3 ++2 Žh•t‚«“S‹… 1d2+4 1d6+3 2 1 2 3 +•€‘„ 1d3+1 2d8-2 1d2 2 2 4 +ñ 1d3 1d4 1d3 2 2 2 +•s‹C–¡‚Ȑn 2 2d8+5 +0 2 1 2 +_”é‚ÌŒ• +3 1d10+5 +2 1 1 1 +‰Š‚ÌŒ• 1d2 1d10+3 1d2 1 1 2 +============================================================================ + + –h‹ï +============================================================================ +–¼Ì –½’† ‘ÅŒ‚ –hŒä ‰ñ”ð d—Ê +============================================================================ +”犕 -1 - 1d2 - 0 ++2 ”犕 0 - 1d2+2 - 0 ++4 ”犕 0 - 1d2+4 - 0 +½“ª‹Ð -1 - 1d3 - 1 ++4 ½“ª‹Ð 0 - 1d3+4 - 1 +“SŠ• -1 - 1d4 - 2 ++4 “SŠ• 0 - 1d4+4 - 2 +”çŠZ -1 - 1d4 - 2 ++2 ”çŠZ 0 - 1d4+2 - 2 ++4 ”çŠZ 0 - 1d4+4 - 2 +½‚©‚ç‚Ñ‚ç -2 - 2d4 - 4 ++4 ½‚©‚ç‚Ñ‚ç 0 - 2d4+4 - 4 +b™h -4 - 4d4 - 8 ++4 b™h 0 - 4d4+4 - 8 +¬Œ^‚̏‚ -1 - 0 2 2 ++4 ¬Œ^‚̏‚ 0 - 0 6 2 +Žh•t‚«‚ 0 1d5 0 1 3 +Žh•t‚«Š• 0 1d4 3 0 2 +============================================================================ + + +--gmcnutt (gmcnutt@cableone.net) + + +’Žß + +[1] ‚ ‚ A‚¾‚ªA‚Ü‚¾ŽÀ‘•‚³‚ê‚Ä‚¢‚È‚¢B + +[2] Ž„‚́uƒJ[ƒlƒ‹v‚Æ‚¢‚¤ŒÄ‚Ñ–¼‚ðD‚ށB + ‚±‚¿‚ç‚Ì•û‚ªŠiD‚ª‚æ‚­AƒŠ[ƒiƒXEƒg[ƒoƒ‹ƒX‚àŽ„‚à“¯‚¶¢‘ã‚ŁAƒJ[ƒlƒ‹‚ðì + ‚Á‚½‚Æ‚¢‚¤“_‚ÅŽ„‚à•‰‚¯‚Ä‚¢‚È‚¢‹C‚ª‚·‚éB diff --git a/doc/engine_extension_and_design/CVS/Entries b/doc/engine_extension_and_design/CVS/Entries deleted file mode 100644 index 6789c80..0000000 --- a/doc/engine_extension_and_design/CVS/Entries +++ /dev/null @@ -1,5 +0,0 @@ -/ENGINE_CLEANUP/1.2/Sat Nov 6 23:41:45 2004// -/ENGINE_DESIGN_NOTES/1.2/Sat Nov 6 23:41:45 2004// -/README/1.1/Thu Aug 5 01:53:27 2004// -/my_TODO.2004.05.05.txt/1.1/Thu Aug 5 01:53:27 2004// -D diff --git a/doc/engine_extension_and_design/CVS/Repository b/doc/engine_extension_and_design/CVS/Repository deleted file mode 100644 index 4125aad..0000000 --- a/doc/engine_extension_and_design/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -nazghul/doc/engine_extension_and_design diff --git a/doc/engine_extension_and_design/CVS/Root b/doc/engine_extension_and_design/CVS/Root deleted file mode 100644 index 4d8737a..0000000 --- a/doc/engine_extension_and_design/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:gmcnutt@nazghul.cvs.sourceforge.net:/cvsroot/nazghul diff --git a/doc/users_guide_jp.html b/doc/users_guide_jp.html new file mode 100644 index 0000000..05d342c --- /dev/null +++ b/doc/users_guide_jp.html @@ -0,0 +1,2425 @@ + + + + + +Nazghulà–¾‘ + + + + +

+ NAZGHULà–¾‘ +

+

+Nazghul(ƒiƒYƒOƒ‹)‚͐̉ù‚©‚µ‚¢A‘S·Šú‚ɂ͐”‘½‚­Ì—p‚³‚ꂽAƒgƒbƒvƒ_ƒEƒ“A2Dƒ^ƒCƒ‹ƒOƒ‰ƒtƒBƒbƒN‚ÌRPG‚̃Nƒ[ƒ“‚Å‚ ‚éB +‹ï‘Ì“I‚É‚ÍUltima V‚̃VƒXƒeƒ€‚ðÌ—p‚µ‚Ä‚¢‚āA‚±‚̃Q[ƒ€‚Å—V‚ñ‚¾‚±‚Æ‚ª‚ ‚ê‚ΐe‚µ‚Ý‚â‚·‚¢‚à‚Ì‚É‚È‚Á‚Ä‚¢‚éB +

+ + +

+ –ÚŽŸ +

+ + + +

+ ƒQ[ƒ€‚̃Cƒ“ƒXƒg[ƒ‹ +

+ +

+ƒ\[ƒX‚ðƒ_ƒEƒ“ƒ[ƒh‚µ‚½‚Ì‚Å‚ ‚ê‚΁AINSTALLƒtƒ@ƒCƒ‹‚ð“Ç‚Þ‚±‚ƁB +

+

+Windows—pƒoƒCƒiƒŠ‚ðƒ_ƒEƒ“ƒ[ƒh‚µ‚½‚È‚çAWinzip“™‚Å“WŠJ‚·‚邱‚ƁB +

+ + + +

+ ƒQ[ƒ€ŠJŽn +

+ +

+Linux/UNIX‚È‚ç‚Î: +

+

+ $ haxima.sh +

+

+Windows‚È‚ç‚Î: +

+

+ ƒXƒ^[ƒgƒƒjƒ…[‚Ü‚½‚̓fƒXƒNƒgƒbƒv‚̃AƒCƒRƒ“‚©‚ç‹N“®‚·‚é +

+

+Å‰‚Ƀ`ƒ…[ƒgƒŠƒAƒ‹‚Å—V‚Ô‚©A”ò‚΂µ‚čŏ‰‚©‚çŽn‚߂邱‚Æ‚ª‚Å‚«‚éB +

+ + +

+ ƒQ[ƒ€‚Ì•Û‘¶ +

+

+ƒQ[ƒ€’†‚Í‚¢‚‚łàCTRL-SƒL[‚Å•Û‘¶‚·‚邱‚Æ‚ª‚Å‚«‚éB +•Û‘¶‚̐”‚Í–³§ŒÀ‚Å‚ ‚éB +ÄŠJ‚·‚é‚Æ‚«‚́AÅ‰‚̉æ–Ê‚ÅJ)—·‚𑱂¯‚é‚©‚ç•Û‘¶‚µ‚½ƒtƒ@ƒCƒ‹‚ð‘I‘ð‚·‚éB +

+

+‚à‚µŽ€‚ñ‚Å‚µ‚Ü‚Á‚½‚çƒQ[ƒ€‚͏I—¹‚·‚éB +ÄŠJ‚·‚é‚Æ‚«‚ÍJ)—·‚𑱂¯‚é‚ōŌã‚É•Û‘¶‚µ‚½‘I‘ð‚·‚é‚±‚Æ‚É‚È‚éB +

+ + +

+ ƒQ[ƒ€I—¹ +

+

+Q‚ð‰Ÿ‚¹‚΂¢‚‚łàI—¹‚Å‚«‚éB +I—¹‚·‚é‘O‚É•Û‘¶‚·‚é‚©‚Ì‘I‘ð‚ª‚ ‚éB +

+ + +

+ ‘€ì +

+

+U5‚Å—V‚ñ‚¾‚±‚Æ‚ª‚È‚¯‚ê‚΍ŏ‰‚̉æ–Ê‚Å‘I‘ð‚Å‚«‚éT)ƒ`ƒ…[ƒgƒŠƒAƒ‹‚ðŠ©‚ß‚éB +‚»‚±‚ɂ̓Q[ƒ€‚ðŽn‚߂邽‚ß‚Ì‚¢‚­‚‚©‚̃qƒ“ƒg‚ª‚ ‚éB +

+ + +

+ ’Tõ‚·‚é +

+

+ƒQ[ƒ€‚ðŽn‚ß‚é‚ƍŏ‰‚́u–À‚¢lvˆêl‚µ‚©‚¢‚È‚¢B +‚»‚̃AƒCƒRƒ“‚͍¶‚Ì’n}ã‚Ì’†‰›‚ÉŒ©‚¦‚éB +‚ ‚½‚è‚ð’Tõ‚·‚邽‚߂ɂ̓eƒ“ƒL[‚ňړ®‚·‚é•K—v‚ª‚ ‚éB +‰º‚ɂ͏¬‚³‚ȃvƒƒ“ƒvƒg‚̃EƒBƒ“ƒhƒE‚ª‚ ‚éB +‚»‚±‚É‚Í‘I‘ð‚µ‚½–½—ß‚ÅŽŸ‚ɉ½‚ð“ü—Í‚µ‚È‚¯‚ê‚΂Ȃç‚È‚¢‚©•\Ž¦‚³‚ê‚éB +—Ⴆ‚΁AX)‚ ‚½‚è‚𒲂ׂ閽—߂ł̓vƒƒ“ƒvƒg‚ÍŽŸ‚̂悤‚É‚È‚éB +

+

+ ’²‚ׂé-<‘ΏÛ> (ESC‚Å’†Ž~) +

+

+‚±‚ê‚̓eƒ“ƒL[‚ŃJ[ƒ\ƒ‹‚ð“®‚©‚·‚±‚Æ‚ð—v‹‚µ‚Ä‚¢‚邱‚Æ‚ð•\‚µ‚Ä‚¢‚éB +ESCƒL[‚ð‰Ÿ‚·‚Æ–½—ß‚Í’†’f‚³‚ê‚éB +‚Ù‚Æ‚ñ‚Ç‚Ì–½—ß‚ÍESC‚Å’†’f‚Å‚«‚éB +

+

+‚Ç‚±‚É‚¢‚é‚©A‚»‚µ‚ĉ½Žž‚©‚ð’m‚肽‚¢‚Æ‚«‚Í@ƒL[‚ð‰Ÿ‚·B +‚±‚̃Q[ƒ€‚É‚ÍŽžŒv‚Í‚È‚¢BŽž‚ð’m‚é—Bˆê‚Ì•û–@‚Í‘¾—z‚ÌŠp“x‚©‚ç—ސ„‚·‚邱‚Æ‚Å‚ ‚éB +

+ + +

+ ‰ï˜b‚·‚é +

+

+“ì‚ɍŏ‰‚ÌNPC(ƒvƒŒƒCƒ„[‚Å‚È‚¢l•¨)‚ªŒ©‚¦‚éB +NPC‚Æ‚ÍT‚Řb‚·‚±‚Æ‚ª‚Å‚«‚éB +‘ÎÛ‚ðŽ¦‚·ƒJ[ƒ\ƒ‹‚ªŒ»‚ê‚é‚̂ŁA +ƒJ[ƒ\ƒ‹ƒL[‚ňړ®‚³‚¹ANPC‚ɍ‡‚킹ENTERƒL[‚ð‰Ÿ‚·‚ƁANPC‚Ü‚½‚Í‚ ‚È‚½‚©‚ç‰ï˜b‚ªŽn‚Ü‚éB +

+

+‚±‚ꂪ‰ï˜b‚ÌŽn‚ß•û‚Å‚ ‚éB +‰ï˜b‚̍Œ†‚ɃL[ƒ[ƒh‚ð“ü—Í‚·‚é‚ƁANPC‚ª‚»‚ê‚ɉž‚¦‚éB +—Ⴆ‚΁Au–¼‘Ov‚âuŽdŽ–v‚Æ“ü—Í‚·‚é‚ÆNPC‚Ì‚»‚ꂪ‚í‚©‚éB +‰ï˜b‚ðI‚¦‚½‚¢‚È‚çAu‚³‚æ‚È‚çv‚Ü‚½‚͉½‚à“ü—Í‚¹‚¸ENTER‚ð‰Ÿ‚·B +

+ + +

+ •¨‚ðŽæ‚é +

+

+‚ ‚È‚½‚Í‚¢‚¸‚ꓹ‚ð‚½‚Ç‚Á‚趉º‚Ì•”‰®‚É“ü‚邱‚ƂɂȂ邾‚낤B +•”‰®‚Ì•Ç‚Í•s‰ÂŽv‹c‚ȌÑ㕶Žš‚ŏü‚ç‚ê‚Ä‚¢‚éB +•”‰®‚Ì’†‚É‚Í” ‚ª‚ ‚éB +

+

+” ‚Ì‚Æ‚È‚è‚ÖˆÚ“®‚µAO‚ð‰Ÿ‚µA•ó” ‚Ì•ûŒü‚̃eƒ“ƒL[‚ð‰Ÿ‚·B +‚·‚é‚Æ” ‚ªŠJ‚«A’†‚Ì—lX‚È•¨‚ª°‚̏ã‚ÉŒ»‚ê‚éB +

+

+Žæ‚邽‚ß‚É‚ÍG‚ð‰Ÿ‚·B +Šî–{“I‚È•Ší‚ÆŠZAŽô•¶‚Ì‚½‚ß‚Ì”é–òA‚¢‚­‚‚©‚Ì–ò‚ÆŠª•¨‚ªŽè‚É“ü‚éB +

+ + +

+ ‘•”õ‚·‚é +

+

+Ž‚¿•¨‚ðŒ©‚é‚½‚߂ɂ́AZ‚ð‰Ÿ‚µ‚ăXƒNƒ[ƒ‹‚³‚¹‚éB +¶‰E‚̃L[‚Å•\Ž¦‚·‚鍀–Ú‚ðØ‚è‘Ö‚¦‚ç‚ê‚éB +‚ ‚È‚½Ž©g‚⎝‚¿•¨‚ðŒ©I‚¦‚½‚çESC‚ð‰Ÿ‚µ‚Ä–ß‚éB +

+

+R‚ð‰Ÿ‚µ‚Ä‘•”õ‚·‚镐Ší‚âŠZ‚ð‘I‚сAENTER‚Å‘•”õ‚·‚éB +‘•”õ‚µI‚í‚Á‚½‚çESC‚Å–ß‚éB +

+ + +

+ Žô•¶‚𒲍‡‚·‚é +

+

+‰ñ•œ‚ÌŽô•¶‚ð‡¬‚·‚éB +‚Ü‚¸M‚ð‰Ÿ‚·B +ŽŸ‚ÉŽô•¶‚Ì–¼Ì‚ð“ü—Í‚·‚éB +‚±‚̏ꍇ‚Í"Mani"‚̐擪‚ÌM‚ð‰Ÿ‚µAENTER‚ð‰Ÿ‚·B +ŽŸ‚ɐlŽQ‚Æ’w偂̎…‚ð”é–ò‚̈ꗗ‚©‚ç‘I‚ԁB +‚»‚µ‚ÄM‚ð‰Ÿ‚·B +ÅŒã‚Ɉê“x‚É’²‡‚·‚éŽô•¶‚̐”‚ð“ü—Í‚Å‚«‚é‚̂ŁA•K—v‚ÈMani‚ÌŽô•¶‚̐”‚ð“ü—Í‚·‚éB +‚±‚±‚Å1‚ð“ü—Í‚·‚é‚ƁA1‚‚ÌManiA‰ñ•œ‚ÌŽô•¶‚ªì‚ç‚ê‚éB +Žô•¶‚ÍŒã‚Å‚æ‚èÚ‚µ‚­à–¾‚·‚éB +

+ +

+ ’¬‚ɏo“ü‚è‚·‚é +

+

+L‚¢¢ŠE‚ɏo‚čs‚­€”õ‚ª‚Å‚«‚½‚È‚çA’n}‚Ì’[‚֍s‚«A—E‹C‚ðo‚µ‚Ä“¥‚ݏo‚·B +Lˆæ’n}‚̍r–ì‚É‚È‚èA‘Sˆõ‚ª’†‰›‚Ì1‚‚Ì(‚ ‚È‚½‚Ì)ƒAƒCƒRƒ“‚Å•\Ž¦‚³‚ê‚éB +Ä‚Ñ“ü‚邽‚߂ɂ́A“ì‚Ö1i‚Ý(‚ ‚È‚½‚ª‚¢‚½êŠ‚ɍՒd‚̃AƒCƒRƒ“‚ªŒ©‚¦‚邾‚낤)AÄ‚Ñ–k‚É1i‚ށB +‚±‚ê‚Å’¬‚ւ̏o“ü‚è‚Ì•û–@‚ª‚ª‚í‚©‚Á‚½‚Í‚¸‚¾B +

+

+’¬‚É“ü‚Á‚½‚Æ‚«‚́A“G‚ª‚»‚±‚É‚¢‚È‚¢ŒÀ‚èAu’ǐՁvó‘Ô‚É‚È‚Á‚Ä‚¢‚éB +‚±‚̏ó‘Ô‚Å‚Í‚ ‚È‚½‚Í’‡ŠÔ‚½‚¿‚̐擪‚Æ‚È‚èA‘¼‚ÌŽÒ‚½‚¿‚Í‚ ‚È‚½‚ɂ‚¢‚čs‚±‚¤‚Æ‚·‚éB +‚µ‚©‚µA‚à‚µ’¬‚É“G‚ª‚¢‚ê‚΁Au‡”ԁvó‘Ô‚É‚È‚éB +‚±‚̏ó‘Ô‚Å‚Í‚ ‚È‚½‚Í’‡ŠÔ‚Ì‚»‚ꂼ‚ê‚ð‡”Ô‚É‘€ì‚·‚邱‚Æ‚É‚È‚éB +2‚‚̏ó‘Ô‚ÍFƒL[‚Ő؂è‘Ö‚¦‚ç‚ê‚éB +‚±‚Ì‚±‚Æ‚Í’‡ŠÔ‚ª‰Á‚í‚Á‚½‚Æ‚«‚É‚í‚©‚邾‚낤B +

+

+d—v: +’‡ŠÔ‚ª‰Á‚í‚Á‚½‚çA’ǐÕ(FƒL[)‚É‚·‚邱‚Æ‚ð–Y‚ê‚Ä‚Í‚È‚ç‚È‚¢B +í‚ɌX‚𑀍삷‚é‚æ‚èAŽålŒö‚ð‘Sˆõ‚ª’Ç‚¤‚悤‚É‚·‚é•û‚ªŠÈ’P‚Å‚ ‚éB +

+ + +

+ ‰æ–Ê +

+ +

+“V‘Ì +

+

+’n}‚̏ã‚ɘg‚É–„‚ߍž‚܂ꂽ¬‚³‚ȃEƒBƒ“ƒhƒE‚ª‚ ‚èA‘¾—z‚Æ2‚‚̌Ž‚̈ʒu‚ª•\Ž¦‚³‚ê‚Ä‚¢‚éB +ŒŽ‚Ì‘Š‚à•\Ž¦‚³‚ê‚Ä‚¢‚éB +‚±‚ê‚ÍŒŽ‚Ì–å‚É‚æ‚éˆÚ“®‚ŏd—v‚ȈӖ¡‚ðŽ‚ÂB +

+ +

+•—Œü‚« +

+

+’n}‚̉º‚̘g‚É–„‚ߍž‚܂ꂽ•”•ª‚É‚Í•—Œü‚«‚ª•\Ž¦‚³‚ê‚Ä‚¢‚éB +•—‚ÍŒ»Ý‚Å‚Í‘D‚É‚æ‚éˆÚ“®‚݂̂ɉe‹¿‚ª‚ ‚éB +•—‚ð‰¡Ø‚éê‡‚ªÅ‚àŒø—¦‚ª‚æ‚­AŽŸ‚ª•—‚ðŒã‚ë‚©‚çŽó‚¯‚éê‡‚Å‚ ‚éB +‚»‚µ‚Ä•—‚ÉŒü‚©‚¤ê‡‚ªÅ‚àŒø—¦‚ªˆ«‚¢B +•—Œü‚«‚Í•—‚ª‚Ç‚Ì•ûŒüu‚©‚çv‚¢‚Ä‚¢‚é‚©‚ð•\‚µ‚Ä‚¢‚邱‚Æ‚É’ˆÓ‚·‚邱‚ƁB +

+ +

+–½—߃vƒƒ“ƒvƒg +

+

+U4/U5/U6‚Ƃ͈ႢA–½—߃vƒƒ“ƒvƒg‚à“ÆŽ©‚̃EƒBƒ“ƒhƒE‚ª•—Œü‚«‚̉º‚É‚ ‚éB +–½—ß‚Ì“ü—Í‚ª•\Ž¦‚³‚ê‚éB +‰ï˜b‚ł̃vƒŒƒCƒ„[‚Ì“ü—Í‚à“¯—l‚É‚±‚±‚É•\Ž¦‚³‚ê‚éB +

+ +

+ó‘Ô +

+

+‰Eã‚É‚ÍŽ‚¿•¨‚ðŒ©‚éA‚Ü‚½‚Í‘I‘ð‚·‚éƒEƒBƒ“ƒhƒE‚ª‚ ‚éB +’ʏí‚Í’‡ŠÔ‚ÌŠî–{“I‚ȏî•ñ‚ª•\Ž¦‚³‚ê‚Ä‚¢‚邪A‚»‚Ì“à—e‚Í–½—ß‚É‚æ‚Á‚Ä•Ï‚í‚éB +—Ⴆ‚ÎR‚ð‰Ÿ‚·‚ƈꗗ‚©‚ç‚Ì‘I‘ð‚É‚È‚éB +

+

+’ʏíA‚±‚̃EƒBƒ“ƒhƒE‚É‚Í’‡ŠÔ‘Sˆõ‚ÌŒ»Ý‚̗̑͂Əó‘Ԃ̈ꗗ‚ª•\Ž¦‚³‚ê‚Ä‚¢‚éB +ó‘Ô‚Í1‚‚܂½‚Í•¡”‚̏¬‚³‚ȃAƒCƒRƒ“‚Å•\‚³‚ê‚éB +—Ⴆ‚ΓłɔƂ³‚ê‚é‚Ə¬‚³‚ȗΐF‚̃hƒNƒ‚ÆŒð·‚·‚鍜‚̃AƒCƒRƒ“‚ª•\Ž¦‚³‚ê‚éB +ZƒL[‚ð‰Ÿ‚·‚Æ’‡ŠÔ‚̌X‚̏ڂµ‚¢ó‘Ô‚ð•\Ž¦‚·‚邱‚Æ‚ª‚Å‚«‚éB +

+ +

+H—¿/‹à +

+

+(Œ´•¶‚Ìfoogod‚Í)•s“¹“¿‚È‹¿‚«‚¾‚ªA’P‚ɐH—¿/‹àƒEƒBƒ“ƒhƒE‚Ì“ª•¶Žš‚ð•À‚ׂ½‚¾‚¯‚Å‚ ‚éB +‚±‚̏ó‘ÔƒEƒBƒ“ƒhƒE‚̉º‚É‚ ‚鏬‚³‚ȃEƒBƒ“ƒhƒE‚ɂ͉ñ”AH—¿A‚»‚µ‚‹à‚ªAŒ»Ý‚̐퓬ó‘Ô‚âŒp‘±’†‚̏ó‘Ô‚Æ‹¤‚É•\Ž¦‚³‚ê‚Ä‚¢‚éB +ó‘Ԃ͈͆‚̂悤‚ȏ¬‚³‚È•¶Žš‚Å•\Ž¦‚³‚ê‚Ä‚¢‚éB +—Ⴆ‚Î"N"‚Í’¾–Ù‚ð•\‚µ‚Ä‚¢‚éB +æ‚蕨‚ɏæ‚Á‚Ä‚¢‚é‚Æ‚«‚́A‚³‚ç‚ɏæ‚蕨‚Ì‘Ï‹v—Í‚à•\Ž¦‚³‚ê‚éB +•¶Žš‚̈Ӗ¡‚͈ȉº‚Ì’Ê‚è‚Å‚ ‚éB +

+ +
+ +
+ ’¾–Ù +
+
–‚–@‚ðŽg‚¤‚±‚Æ‚ª‚Å‚«‚È‚¢B
+ +
+ ‚‘¬‰» +
+
‘Sˆõ‚ªŽ©•ª‚̔Ԃɕ¡”‰ñs“®‚Å‚«‚éB
+ +
+ ‰ÂŽ‹ +
+
Œ©‚¦‚È‚¢‚à‚Ì‚ªŒ©‚¦‚éB
+ +
+ ŽžŠÔ’âŽ~ +
+
‘Sˆõ‚ªs“®‚·‚éŠÔA¢ŠE’†‚Ì‚à‚Ì‚ªŽ~‚Ü‚éB
+ +
+ “§Ž‹ +
+
‘Sˆõ‚ª•Ç‚ÌŒü‚±‚¤‚ðŒ©‚é‚±‚Æ‚ª‚Å‚«‚éB
+
+ + +

+—š—ð +

+

+ÅŒã‚̉E‰º‚̃EƒBƒ“ƒhƒE‚ɂ̓Q[ƒ€’†‚̃ƒbƒZ[ƒW‚Ì—š—ð‚ª•\Ž¦‚³‚ê‚éB +

+ + +

+ ƒvƒŒƒCƒ„[‚Ì–½—ß +

+

+ƒ}ƒEƒX‚ɂ‚¢‚½Š¾‚ð@‚­‚É‚Í‚æ‚¢‹@‰ï‚¾ - ‘S‚Ä‚Ì–½—߂̓L[ƒ{[ƒh‚Å“ü—Í‚·‚éB +‚±‚ê‚Í“–‘R‚Ì‚±‚Æ‚Å‚ ‚éB–¢—ˆ‰i…‚ɁBƒA[ƒƒ“B +

+

+’Ç‹L: +ƒ}ƒEƒXˆ¤D‰Æ‚͑Ώۂ̑I‘ð‚ðƒ}ƒEƒX‚ōs‚¤‚±‚Æ‚à‚Å‚«‚éB +‚µ‚©‚µƒL[ƒ{[ƒh‚Ì‚Ù‚¤‚ª‘‚¢‚Å‚ ‚낤B +

+ + +

+ŠT—v +

+
+
•ûŒü
+
ƒeƒ“ƒL[‚Ì8•ûŒü‚Ì“à‚Ì1‚Â
+
’‡ŠÔ
+
’‡ŠÔ‚ðˆê——‚©‚çƒeƒ“ƒL[‚Å‘I‘ð‚µENTER‚Ü‚½‚ÍSPACE‚ð‰Ÿ‚·
+
Ž‚¿•¨
+
Ž‚¿•¨‚ðˆê——‚©‚ç‘I‘ð‚·‚é
+
Žô•¶
+
Žô•¶‚ðˆê——‚©‚ç‘I‘ð‚·‚é
+
SPACE
+
SPACEƒo[
+
‘ΏÛ
+
í“¬‚̑ΏۂðƒJ[ƒ\ƒ‹‚ð“®‚©‚µ + ENTER‚Ü‚½‚ÍSPACE‚ð‰Ÿ‚µ‚Ä‘I‘ð‚·‚é (‚Ü‚½‚̓}ƒEƒX‚̍¶ƒNƒŠƒbƒN)
+
*
+
•¶–¬‚É‚æ‚Á‚ĈقȂé
+
+ + +

+’ʏí‚Ì–½—ß +

+
+
•ûŒü
+
–½—ß‚µ‚½•ûŒü‚Ɉړ®‚·‚é
+
A-•ûŒü
+
í“¬‚ðŠJŽn‚·‚é (Attack)
+
B
+
‘D‚â”n‚̂悤‚ȏæ‚蕨‚ɏæ‚é/‚©‚ç~‚è‚é (Board)
+
C-’‡ŠÔ-Žô•¶-*
+
Žô•¶‚ð¥‚¦‚é(I‚í‚è‚Ì•”•ª‚ÍŽô•¶‚Ɉˑ¶‚·‚é) (Cast)
+
E
+
“ü‚éB‚Í‚µ‚²‚̏ã‚艺‚è‚àŠÜ‚Ü‚ê‚é (Enter)
+
F-•ûŒü
+
æ‚蕨‚Ì•Ší‚ð”­ŽË‚·‚é(—Ⴆ‚ΑD‚Ì‘å–C) (Fire)
+
G-•ûŒü
+
’u‚¢‚Ä‚ ‚镨‚ðŽæ‚é (Get)
+
H-’‡ŠÔ-•ûŒü
+
ƒXƒCƒbƒ`‚⃌ƒo[‚𑀍삷‚é (Handle)
+
L-0-9ŽžŠÔ
+
”ŽžŠÔ‚¤‚ë‚‚­ (Loiter)
+
N-’‡ŠÔ-’‡ŠÔ
+
’‡ŠÔ‚̏‡”Ô‚ð•ÏX‚·‚é (New-order)
+
O-•ûŒü
+
“ü‚ꕨ‚â”à‚ðŠJ‚¯‚é (Open)
+
Q
+
I—¹‚µ•Û‘¶‚·‚éA‚Ü‚½‚Í‚µ‚È‚¢ (Quit)
+
R-’‡ŠÔ-Ž‚¿•¨
+
•Ší‚⏂‚È‚Ç‚ð‘•”õ‚·‚é (Ready)
+
S-•ûŒü
+
’ˆÓ[‚­Œ©‚é (Search)
+
T-‘ΏÛ
+
NPC‚Ƙb‚· (Talk)
+
U-’‡ŠÔ-Ž‚¿•¨
+
¼–¾‚â–ò‚̂悤‚È‚à‚Ì‚ðŽg‚¤ (Use)
+
X-‘ΏÛ
+
’n}ã‚Ì‚à‚̂𒲂ׂé (eXamine)
+
Z
+
’‡ŠÔ‚ÌŽ‚¿•¨‚â‘•”õ‚È‚Ç‚ðŒ©‚é (Ztats)
+
@
+
Œ»Ý‚Ç‚±‚É‚¢‚é‚©‚È‚Ç‚ð•\Ž¦‚·‚é (at)
+
SPACE
+
‰½‚à‚µ‚È‚¢
+
CTRL-S
+
ƒQ[ƒ€‚ð•Û‘¶‚·‚é (Save)
+
CTRL-R)eload
+
ƒQ[ƒ€‚ð“ǂݍž‚Þ (Reload)
+
+ + +

+r–ì‚Ì‚Ý‚Ì–½—ß +

+
+
K-0-9/–é–¾‚¯-Y/N-’‡ŠÔ
+
r–ì‚Å(‘Ì—Í‚Æ–‚—Í‚ð‰ñ•œ‚³‚¹‚邽‚ß)A‚Ü‚½‚Í‘D‚̏ã‚Å(‘D‚ðC—‚·‚邽‚ß)‹x‘§‚ðŽæ‚é (Kamp)
+
+ + +

+’¬/–À‹{/í“¬‚Ì‚Ý‚Ì–½—ß +

+
+
A-‘ΏÛ
+
‘ΏۂðUŒ‚‚·‚é (Attack)
+
C-Žô•¶-*
+
Žô•¶‚ð¥‚¦‚é (Cast)
+
F
+
u’ǐՁv(’‡ŠÔ‚½‚¿‚͐擪‚ÌŽÒ‚ðŽ©“®“I‚É’Ç‚¤)‚Ɓu‡”ԁv(‡”Ô‚ª‰ñ‚Á‚Ä‚«‚½‚Æ‚«’‡ŠÔ‚ðŒÂX‚É‘€ì‚·‚é)‚ðØ‚è‘Ö‚¦‚é (Follow)
+
1`9
+
u’P“Ɓv‚É‚·‚é’‡ŠÔ‚ð‘I‚Ô
+
0
+
u‡”ԁv‚É‚·‚é
+
K-0-9/–é–¾‚¯
+
ƒxƒbƒh‚Å–°‚é (Kamp)
+
+ + +

+“ÁŽê‚È–½—ß +

+
+
ESC
+
–½—ß‚ð’†’f‚·‚é
+
Tab
+
‰ï˜b’†‚Ƀ[ƒ}Žš‚ƃAƒ‹ƒtƒ@ƒxƒbƒg‚ðØ‚è‘Ö‚¦‚é (“ú–{Œê”Å‚Ì‚Ý)
+
+ + +

+’Zk +

+
+
+/=
+
UŒ‚‚̑Ώۂð‘I‘ð‚·‚é‚Æ‚«AŽŸ‚Ì“G‘ΓI‚ÈNPC‚ð‘I‘ð‚·‚é
+
-
+
UŒ‚‚̑Ώۂð‘I‘ð‚·‚é‚Æ‚«A‘O‚Ì“G‘ΓI‚ÈNPC‚ð‘I‘ð‚·‚é
+
<
+
r–ì‚ł̐퓬‚ªI‚í‚Á‚½ŒãAr–ì‚Ì’n}‚É–ß‚é
+
+ + +

+ƒfƒoƒbƒO–½—ß +

+
+
CTRL-T)erraform
+
’nŒ`‚ð•Ï‚¦‚é1 (Terraform)
+
CTRL-Z)oom
+
Šg‘åk¬‚·‚é(•óÎ‚Æ“¯‚¶‚±‚Æ‚ð•óÎ‚È‚µ‚ōs‚¤) (Zoom)
+ + +

+ ˆÚ“® +

+ +

+‘Sˆõ(r–ì) +

+

+‘Sˆõ‚͉æ–Ê‚Ì’†‰›‚Ì1‚‚̃AƒCƒRƒ“‚Æ‚µ‚Ä•\Ž¦‚³‚ê‚éB +

+ + +

+’ǐÕ(’¬/í“¬/–À‹{) +

+

+æ“ª‚̎҂𑀍삵A‘¼‚Ì’‡ŠÔ‚½‚¿‚͐擪‚ð’Ç‚¤B +UŒ‚‚·‚é‚ÆŽ©“®“I‚Ɂu‡”ԁv‚É‚È‚éB +æ“ª‚É‚È‚é‚̂͏í‚É’n}ã‚É‚¢‚ж‚«‚Ä‚¢‚éˆê——‚̈ê”ԏã‚ÌŽÒ‚Å‚ ‚éB +u’ǐՁv‚©‚çu‡”ԁv‚É‚·‚邽‚ß‚É‚ÍF‚ð‰Ÿ‚·B +

+ + +

+’P“Æ(’¬/í“¬/–À‹{) +

+

+’‡ŠÔ‚Ì“à‚Ì1l‚𑀍삷‚éB +‘¼‚̎҂͉½‚à‚¹‚¸Œ©‚Ä‚¢‚éB +”ŽšƒL[‚ð‰Ÿ‚·‚ƁA’‡ŠÔ‚̈ꗗ‚̑Ήž‚µ‚½ŽÒ‚ª’P“Ƃōs“®‚·‚éB +1‚ªˆê——‚̍łàã‚Å‚ ‚éB +

+

+ƒƒ‚: +u’P“Ɓv‚Í’‡ŠÔ‚Ì“à‚Ì1l‚ª‘¼‚æ‚è‚à‚‚¢”\—Í‚ðŽ‚Á‚Ä‚¢‚éê‡‚É•Ö—˜‚Å‚ ‚éB +—Ⴆ‚΁AƒQƒCƒU[‚ª’‡ŠÔ‚ɉÁ‚í‚Á‚Ä‚¢‚ê‚΁A”ނ𐅗­‚è‚ÌŒü‚±‚¤‚֍s‚©‚¹‚邱‚Æ‚ª‚Å‚«‚éB +—H—삪’‡ŠÔ‚É‚È‚Á‚½‚ç‚Ç‚¤‚©‘z‘œ‚µ‚Ă݂悤B +

+ + +

+‡”Ô(’¬/í“¬/–À‹{) +

+

+’‡ŠÔ‚½‚¿‚ð‡”Ô‚É‘€ì‚·‚éB +‚±‚ê‚͐퓬‚ªŽn‚Ü‚Á‚½‚炱‚̏ó‘Ô‚É‚È‚éB +u’P“Ɓv‚©‚çu‡”ԁv‚É‚·‚邽‚ß‚É‚Í0‚ð‰Ÿ‚·B +u’ǐՁv‚©‚ç‚ÍF‚ð‰Ÿ‚·B +‚»‚¤A¬—‚µ‚»‚¤‚¾‚ª2‚‚̕û–@‚ª‚ ‚éB +‚±‚ê‚Í‚¢‚‚©C³‚·‚é‚‚à‚肾B +ˆÓŒ©‚ª‚ ‚ê‚Ε·‚©‚¹‚Ä—~‚µ‚¢B +

+ + +

+ êŠ +

+ + +

+r–ì +

+

+’¬‚ÌŠO‚âr–ì‚Å‚Í‘Sˆõ‚ª1‚‚̏W’c‚Æ‚µ‚čs“®‚·‚éB +“G‚ÌNPC‚ƂԂ‚©‚éA‚Ü‚½‚Í“G‚ªUŒ‚‚·‚é‚Ì‚ð‘҂‚Ɛ퓬‚É‚È‚éB +“¯—l‚É’¬A–À‹{AŒŽ‚Ì–å‚ɂ́A’P‚É‚»‚Ì•ûŒü‚Ɉړ®‚·‚é‚Æ“ü‚邱‚Æ‚ª‚Å‚«‚éB +

+ + +

+r–ì‚ł̐퓬 +

+

+r–ì‚Å“G‚ÌNPC‚̏W’c‚Ɖ‚ƁA“Á•Ê‚Ȑ퓬—p‚Ì’n}‚ɐ؂è‘Ö‚í‚éB +‚±‚±‚ł͌X‚ð‡”Ô‚É‘€ì‚·‚éB +¶‚«‚Ä‚¢‚éŽÒ‚ª‘S‚Ä’n}‚Ì’[‚©‚çŠO‚ɏo‚é‚ƍr–ì‚É–ß‚ê‚éB +(ƒƒ‚: í“¬‚ªI‚í‚Á‚½‚ç<ƒL[‚Å‘f‘‚­í“¬‚Ì’n}‚©‚ç—£‚ê‚邱‚Æ‚ª‚Å‚«‚éB) +

+ + +

+’¬/–À‹{ +

+

+’¬‚â–À‹{‚ł̈ړ®‚͐퓬‚Æ“¯‚¶‚Å‚ ‚éB +ŒÂX‚ð‡”Ô‚É‘€ì‚Å‚«Au’P“Ɓv‚È‚ç1l‚Å‚ ‚½‚è‚𒲂ׂ邱‚Æ‚ª‚Å‚«‚éB +‚Ü‚½‚́Aæ“ª‚𑀍삵‚Ä‘¼‚ÌŽÒ‚ð’ǂ킹‚邱‚Æ‚à‚Å‚«‚éB +

+ + +

+í“¬ +

+

+‰½‚©Œ¾‚¤‚ׂ«‚±‚Æ‚ª‚ ‚邾‚낤‚©? +U5‚Æ‚Ù‚Æ‚ñ‚Ç“¯‚¶‚Å‚ ‚éB +‰Î‰Šƒrƒ“‚ð–é’†‚â’n‰º‚É“Š‚°‚Ă݂悤B +‚ ‚ AƒQƒCƒU[‚É’ˆÓ‚µ‚ëB +”Þ‚ç‚Í‚ ‚È‚½‚𗸂ɂ·‚邱‚Æ‚ª‚Å‚«‚éB +‚·‚®‚ɔނç‚ð“|‚·‚©A—¸‚É‚µ‚ëB +

+ + +

+ƒŒƒxƒ‹ã¸ +

+

+’ʏíA\•ª‚ÈŒoŒ±’l‚𓾂é‚ƃŒƒxƒ‹‚ªã‚ª‚éB +ƒŒƒxƒ‹‚ɏãŒÀ‚Í‚È‚¢B +‘Ì—Í‚Æ–‚—͂̍őå’l‚̏㏸‚́AE‹ÆAŽí‘°AŒÂl‚Ì“ÁŽ¿‚ÅŒˆ‚Ü‚éB +ƒŒƒxƒ‹‚ªã‚ª‚é‚Æ‘Ì—Í‚Æ–‚—Í‚ª‰ñ•œ‚µV‚µ‚¢ƒŒƒxƒ‹‚ł̍őå’l‚É‚È‚éB +

+ + +

+ƒŒƒxƒ‹ã¸‚É•K—v‚ÈŒoŒ± +

+ + + + + + + + + + + + + + + + + + +
+ ƒŒƒxƒ‹ + + ŒoŒ±’l +
+ 1 + + 0 +
+ 2 + + 32 +
+ 3 + + 64 +
+ 4 + + 128 +
+ 5 + + 256 +
+ 6 + + 512 +
+ n + + 2^(n+5) +
+ + +

+ “Á« +

+

+l•¨‚É‚Í3‚‚̊î–{“I‚È“Á«A˜r—́A•q·‚³A‚»‚µ‚Ä’m”\‚ª‚ ‚éB +‚±‚ê‚ç‚Ì’l‚͌Œè‚ŁAˆê“xŒˆ‚ß‚é‚ƃQ[ƒ€’†‚͕ω»‚µ‚È‚¢B +

+ + +

+˜r—Í +

+

+˜r—͉͂”\‚È•Ší‚ÆŠZ‚̏d—ʂ̏ãŒÀ‚ðŒˆ‚ß‚éB +˜r—Í‚ª‚‚¢‚Æ—^‚¦‚éƒ_ƒ[ƒW‚ª‘‚µAd‚¢•Ší‚Ì–½’†—¦‚ªã‚ª‚éB +ƒNƒ‚‚Ì‘ƒ‚ð”j‚è’Eo‚·‚é‚Æ‚«‚à˜r—Í‚ªŽg‚í‚ê‚é(‚Ù‚Æ‚ñ‚ǂ̃gƒƒ‹‚Í’·‚¢ŠÔ•ß‚炦‚邱‚Æ‚ª‚Å‚«‚È‚¢c)B +

+ +

+•q·‚³ +

+

+•q·‚³‚Í”ò‚Ñ“¹‹ï‚ÆŒy‚¢•Ší‚ł̍UŒ‚‚ÉŽg‚í‚êA“G‚̍UŒ‚‚ð”ð‚¯‚é•‚¯‚É‚È‚éB +ù‘O‚ð‚±‚¶ŠJ‚¯‚é‚Æ‚«‚âA” ‚Ì㩂ð‰ðœ‚·‚邽‚ß‚É‚à•K—v‚Å‚ ‚éB +

+ +

+’m”\ +

+

+’m”\‚ÍŽô•¶‚ÌŒø‰Ê‚ð‚‚ßA¬Œ÷‚µ‚â‚·‚­‚·‚éB +

+ + +

+–‚–@ +

+

+‚±‚̃Q[ƒ€‚É‚ÍŠ®‘S‚È–‚–@‚ª‚ ‚éB +–‚–@‚Ì‘ÌŒn‚ÍUltima 5‚âUltima 6‚ÆŽ—‚Ä‚¢‚āA‚ ‚È‚½‚Í–‚–@‚ÍŽô•¶‚̉¹‚ð“ü—Í‚·‚éB +Žô•¶‚Ì–¼‘O‚Í1‚‚©‚ç4‚‚̉¹‚Ì‘g‚ݍ‡‚킹‚Å‚ ‚éB +

+

+‚±‚̃Q[ƒ€‚̉¹AŽô•¶A‚»‚µ‚Ä”é–ò‚Ì’²‡‚Í‘S‚ÄUltima 5‚Ì‚à‚Ì‚Å‚ ‚éB +‚à‚µU5‚Ìà–¾‘‚ðŽ‚Á‚Ä‚¢‚È‚¯‚ê‚΁AˆÈ‰º‚Ì•\‚ª•‚¯‚ɂȂ邾‚낤B +

+ + +

+•\1: ”é–ò +

+ + + + + + + + + + + + + + + + + + + + +
+ –¼Ì + + Žô•¶•\‚Å‚Ì—ªÌ +
+ •^Žì + + • +
+ ŒŒ‚Ì‘Û + + ŒŒ +
+ ‘å•f + + ‘å +
+ lŽQ + + l +
+ ƒ}ƒ“ƒhƒŒƒCƒN + + ƒ} +
+ ƒiƒCƒgƒVƒFƒCƒh + + ƒi +
+ ’w偂̎… + + ’w +
+ —°‰©‚ÌŠD + + —° +
+ + +

+ •\2: Žô•¶ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Žô•¶ + + Œø‰Ê + + ”é–ò + + ‘Sˆõ/í“¬ +
+ 1 +
+ An Nox + + ‰ð“Å + + l ‘å + + ‘S/í +
+ An Zu + + ŠoÁ + + l ‘å + + ‘S/í +
+ Grav Por + + –‚–@‚Ì–î + + —° • + + í +
+ In Lor + + Œõ + + —° + + ‘S/í +
+ Mani + + ¬‰ñ•œ + + l ’w + + ‘S/í +
+ Wis Sanct + + 㩒T’m + + —° + + ‘S/í +
+ An Sanct Ylem + + ã©‰ðœ + + ŒŒ + + ‘S/í +
+ 2 +
+ An Sanct + + ŠJù + + —° ŒŒ + + ‘S/í +
+ An Xen Corp + + •sŽ€ŠÒ + + ‘å —° + + í +
+ In Wis + + ˆÊ’u + + ƒi + + ‘S +
+ Rel Hur + + •—•Ï‰» + + —° ŒŒ + + ‘S +
+ In Nox Por + + “ÅŒ‚ + + ƒi ŒŒ • + + í +
+ In Bet Xen + + ’Ž¢ŠÒ + + ’w ŒŒ —° + + í +
+ 3 +
+ In Flam Grav + + ‰Î‰Šê + + —° • ’w + + í +
+ In Zu Grav + + Ã–°ê + + l • ’w + + í +
+ In Nox Grav + + “ŏê + + ƒi • ’w + + í +
+ Vas Flam + + ‰Î‹… + + • —° + + í +
+ Vas Lor + + ‹­Œõ + + —° ƒ} + + ‘S/í +
+ 4 +
+ An Grav + + ’E–‚–@ê + + • —° + + ‘S/í +
+ In Sanct Grav + + á•Ç + + ƒ} • ’w + + í +
+ In Sanct + + •ÛŒì + + —° l ‘å + + ‘S/í +
+ Wis Quas + + ‰ÂŽ‹ + + ƒi —° + + ‘S/í +
+ Bet Por + + ’µ–ô + + • ŒŒ + + í +
+ 5 +
+ In Ex Por + + ••ˆó‰ðœ + + —° ŒŒ + + ‘S/í +
+ An Ex Por + + ••ˆó + + —° ŒŒ ‘å + + ‘S/í +
+ Kal Xen + + b¢ŠÒ + + ’w ƒ} + + í +
+ In Zu + + ‘SÃ–° + + l • ’w + + í +
+ Vas Mani + + ‘å‰ñ•œ + + l ’w ƒ} + + ‘S/í +
+ Rel Tym + + ‚‘¬‰» + + —° ŒŒ ƒ} + + ‘S/í +
+ 6 +
+ An Xen Ex + + –£—¹ + + • ƒi ’w + + í +
+ In An + + ’¾–Ù + + ‘å ƒ} —° + + í +
+ In Vas Por Ylem + + ’nk + + ŒŒ ƒ} —° + + í +
+ Quas An Wis + + ¬— + + ƒ} ƒi + + í +
+ Wis An Ylen + + “§Ž‹ + + ƒ} —° + + ‘S/í +
+ In Rel Por + + ”O—Í + + • ŒŒ ’w + + í +
+ Vas Por + + uŠÔˆÚ“® + + ƒ} • ŒŒ + + ‘S +
+ 7 +
+ In Nox Hur + + “Å•— + + ƒi —° ŒŒ + + í +
+ In Quas Corp + + ‹°•| + + ƒi ƒ} ‘å + + í +
+ In Quas Wis + + ç—¢Šá + + ƒi ƒ} + + ‘S/í +
+ In Quas Xen + + •¡» + + ƒi ƒ} —° ’w ŒŒ l + + í +
+ Sanct Lor + + •s‰ÂŽ‹ + + ƒi ƒ} ŒŒ + + í +
+ Xen Corp + + Ž€ + + ƒi • + + í +
+ 8 +
+ An Tym + + ŽžŠÔ’âŽ~ + + ƒ} ‘å ŒŒ + + WC +
+ In Flam Hur + + ‰Š•— + + ƒ} —° ŒŒ + + í +
+ In Vas Grav Corp + + Ž€•— + + ƒ} —° ƒi + + í +
+ In Mani Corp + + ‘h¶ + + ‘å l ’w —° ŒŒ ƒ} + + ‘S/í +
+ Kal Xen Corp + + •sŽ€¢ŠÒ + + ’w ƒ} ƒi + + í +
+ Vas Rel Por + + –å + + —° ƒ} • + + ‘S +
+

+[1] +’¬‚â–À‹{‚ł̏uŠÔˆÚ“®‚ÌŽô•¶‚́Aí“¬‚ªI—¹‚µu’ǐՁv‚É‚È‚Á‚Ä‚¢‚È‚¯‚ê‚ÎŽ¸”s‚·‚éB +

+ + +

+Œø‰Ê +

+

+Žž‚É‚Í–‚–@‚É‚æ‚éUŒ‚AŽ©‘RÐŠQA‚Ü‚½‚ÍŽ©g‚ÌŽð‚̎コ‚É‚æ‚菬‚³‚È–â‘è‚ð•ø‚¦‚邾‚낤B +‚ ‚í‚Ä‚é‚ȁB +‘½‚­‚ÌŒø‰Ê‚Í’v–½“I‚Å‚Í‚È‚¢B +‚¾‚ªA‚¢‚‚­‚©‚Í‚»‚¤‚Å‚ ‚éB +

+
+
+ +‡–° +
+
+–°‚Á‚Ä‚¢‚éŽÒ‚Í‚¢‚¸‚ê‚ÍŽ©•ª‚Å–ÚŠo‚ß‚éB +‚à‚µ‘Ò‚Ä‚È‚¯‚ê‚ÎAn Zu‚ÌŽô•¶‚ðŽg‚¦‚΂悢B +
+
+ +–£—¹ +
+
+“G‚Ì–‚pŽt‚É–£—¹‚³‚ꂽŽÒ‚Í’‡ŠÔ‚ðUŒ‚‚·‚éB +–£—¹‚ÌŒø‰Ê‚Í10•ª‚Ő؂ê‚éB +
+
+ +•a‹C +
+
+‚¢‚­‚‚©‚̉ö•¨‚Í’‡ŠÔ‚ð•a‹C‚É‚·‚éB +•a‹C‚ÅŽ€‚Ê‚±‚Æ‚Í‚È‚¢‚ªA‘Ì—Í‚ª‚È‚­‚Ȃ鐡‘O‚Ü‚ÅŽ¡‚邱‚Æ‚Í‚È‚¢B +
+
+ +çÇç +
+
+Žð‚𔃂¤‚©A’u‚¢‚Ä‚ ‚éŽð‚ðŽæ‚é‚ƐŒ‚¤B +Œ‚¢‚Í1ŽžŠÔ‘±‚«A•à‚¢‚Ä‚¢‚é‚Æ‚«•¨‚ɂԂ‚©‚邱‚Æ‚ª‚ ‚éB +
+
+ +—‚Ü‚è +
+
+ƒNƒ‚‚Ì‘ƒ‚É—‚Ü‚é‚ƁA‘ƒ‚ð”j‚낤‚Æ‚à‚ª‚­‚±‚Æ‚É‚È‚éB +•K—v‚ÈŽžŠÔ‚͘r—Í‚É‚æ‚Á‚ÄŒˆ‚Ü‚éB +
+
+ +–ƒáƒ +
+
+ƒNƒ‚‚Í‘ŠŽè‚ðH‚ׂ邽‚ß–ƒáƒ‚̓ł𒍓ü‚·‚éB +–ƒáƒ‚Í’Z‚¢ƒ‰ƒ“ƒ_ƒ€‚ÈŽžŠÔ‚ʼnñ•œ‚·‚éB +
+
+ +“Å +
+
+ƒKƒX‚Ü‚½‚ÍŽô•¶‚œłɔƂ³‚ê‚é‚ƁA–‚–@‚©–ò‚ʼnñ•œ‚·‚é‚܂ŏ‡”Ô‚ª‰ñ‚Á‚Ä‚­‚é“x‚É‘Ì—Í‚ªŽ¸‚í‚ê‚éB +“Å‚Í’v–½‚ɂȂ肤‚é! +•a‹C‚̂悤‚ÉŽ©‘R‚ɂ͉ñ•œ‚µ‚È‚¢B +
+
+ + +

+‰ï˜b +

+

+NPC‚Ƃ̉ï˜b‚ðŽn‚߂邽‚ß‚É‚ÍT‚ð‰Ÿ‚·B +‰ï˜b‚̍Œ†‚ł́AŠÈ’P‚ÈŽ¿–â‚ð“ü—Í‚·‚é‚ÆNPC‚ª‚»‚ê‚É“š‚¦‚邪A‘ŠŽè‚ªŽ¿–₵‚Ä‚­‚邱‚Æ‚à‚ ‚éB +“Xˆõ‚Æ‚Ì‚Å‚Í•¨‚Ì”„‚蔃‚¢‚ª‚Å‚«‚éB +‚Ù‚Æ‚ñ‚Ç‚ÌNPC‚́u–¼‘Ov‚âuŽdŽ–vAZ‚ñ‚Å‚¢‚é’¬‚â’¬‚Ì‘¼‚̐l•¨‚ɂ‚¢‚Ä“š‚¦‚éB +‘½‚­‚Ì”½‰ž‚ɂ͐V‚µ‚¢Ž¿–â‚̎肪‚©‚肪ŠÜ‚Ü‚ê‚Ä‚¢‚éB +‚Ü‚½Au’‡ŠÔv‚ÅNPC‚ª‚ ‚È‚½‚Ì’‡ŠÔ‚ɉÁ‚í‚ê‚é‚©‚ð–₤‚±‚Æ‚ª‚Å‚«‚é(’‡ŠÔ‚É‚È‚éŽÒ‚à‚¢‚邪A‚ ‚È‚½‚ª‚»‚¤Œ¾‚í‚È‚¢A‚Ü‚½‚͔ނç‚ð“®‚©‚·‚悤‚È‚±‚Æ‚ðŒ¾‚í‚È‚¢ŒÀ‚è’‡ŠÔ‚É‚Í‚È‚ç‚È‚¢)B +

+ + +

+‚»‚Ì‘¼ +

+

+H—¿‚Í1“ú‚É3‰ñA¶‚«‚Ä‚¢‚é’‡ŠÔ‚Ì•ª‚ªÁ”‚ê‚éB +‚à‚µH—¿‚ª‚È‚¯‚ê‚΁A’‡ŠÔ‚͐HŽ–‚ÌŽžŠÔ‚Ì‚½‚Ñ‚É‘Ì—Í‚ªŒ¸‚éB +

+ + +

+•t˜^A: ’n}‚̍쐬 +

+

+‘½‚­‚̃Q[ƒ€‚Æ“¯—l‚ɁA"nazghul"‚̓Q[ƒ€ƒGƒ“ƒWƒ“2‚ƃf[ƒ^‚ª•ª—£‚³‚ê‚Ä‚¢‚éB +ƒf[ƒ^ƒtƒ@ƒCƒ‹‚̓vƒƒOƒ‰ƒ€Œ¾Œê‚ÌScheme‚ŏ‘‚©‚ê‚Ä‚¢‚éB +Å‰‚ÉŽÀs‚·‚éƒtƒ@ƒCƒ‹‚Í'session.scm'‚ŁA‚»‚±‚ɂ͓ǂݍž‚Ü‚ê‚éScheme‚Ì‘¼‚̃tƒ@ƒCƒ‹‚Ə‰Šú‰»‚Ì—lX‚È’è‹`‚ª‘‚©‚ê‚Ä‚¢‚éB +

+

+Ž©•ªŽ©g‚̃Q[ƒ€‚ðì¬‚·‚邽‚߁A‚±‚̃Tƒ“ƒvƒ‹ƒtƒ@ƒCƒ‹‚̉ü‘¢‚µŠî‘b‚Æ‚·‚邱‚Ƃ𐄏§‚·‚éB +ƒTƒ“ƒvƒ‹‚̃R[ƒh‚Í‘S‚ăpƒuƒŠƒbƒNEƒhƒƒCƒ“‚Æ‚·‚éB +‰æ‘œ‚Ɖ¹º‚Í—lX‚ȏŠ‚©‚ç—ˆ‚½‚à‚Ì‚Å‚ ‚éB +COPYINGƒtƒ@ƒCƒ‹‚É‚Í‚Ç‚±‚©‚ç—ˆ‚½‚Ì‚©Ú×‚ª‘‚©‚ê‚Ä‚¢‚éB +

+

+‚à‚µƒTƒ“ƒvƒ‹‚̃R[ƒh‚ðŽg—p‚µ‚Ä(¤—pƒ\ƒtƒg“™‚Ì)§ŒÀ‚Ì‚ ‚éƒQ[ƒ€‚ðì‚肽‚¢ê‡‚́AŽ©•ª‚ʼn摜‚Ɖ¹ºƒtƒ@ƒCƒ‹‚𑼂̃I[ƒvƒ“ƒ\[ƒX‚âƒtƒŠ[ƒEƒFƒAƒvƒƒWƒFƒNƒgA‚»‚µ‚Ä’˜ìŒ ŽÒ‚ªŒ —˜‚ð—L‚·‚é‚à‚Ì‚©‚ç—pˆÓ‚µ‚È‚¯‚ê‚΂Ȃç‚È‚¢‚¾‚낤B +

+ + +

+•t˜^B: ƒlƒ^ƒoƒŒ +

+

+‚±‚ê‚ç‚ÍHaxima‚É“Á‰»‚µ‚Ä‚¢‚āA‘¼‚ÌNazghul‚ōì‚ç‚ꂽƒQ[ƒ€‚Å‚Í•K—v‚È‚¢B +

+ + +

+”ò‚Ñ“¹‹ï +

+ + + + + + + + + + + + + + + + +
+ –¼Ì + + –½’† + + ‘ÅŒ‚ + + ‰ñ”ð + + Žè + + ŽË’ö + + ’e + + d—Ê +
+ “ŠÎ•R + + 1d2-2 + + 1d4 + + -1 + + 1 + + 4 + + Î 1 + + 0 +
+ +4 “ŠÎ•R + + 3 + + 1d4+4 + + 0 + + 1 + + 6 + + Î 1 + + 0 +
+ ‹| + + 1d3-2 + + 2d4 + + -2 + + 2 + + 6 + + –î + + 2 +
+ ƒNƒƒXƒ{ƒE + + 1d4-2 + + 4d4 + + -1 + + 2 + + 4 + + ƒNƒƒXƒ{ƒE‚Ì–î + + 3 +
+ ”j–ł̏ñ 2 + + 1d4 + + 1 + + +2 + + 2 + + 6 + + - + + 2 +
+ ÕŒ‚‚Ì–_ 3 + + -2 + + 1d4 + + -1 + + 1 + + 6 + + - + + 2 +
+

+ +[1] u‚Ç‚±‚É‚Å‚à‚ ‚év‚±‚Æ‚É’ˆÓ (Œ¾‚¢Š·‚¦‚é‚Əí‚ɏ\•ª‚È’e‚ª‚ ‚é) +

+

+ +[2] ‰Š‚É‚æ‚éƒ_ƒ[ƒW‚ª’ljÁ‚³‚ê‚é +

+

+ +[3] ˆêŽž“I‚ɑΏۂð–ƒáƒ‚³‚¹‚é +

+ + +

+“Š±•Ší +

+ + + + + + + + + + +
+ –¼Ì + + –½’† + + ‘ÅŒ‚ + + ‰ñ”ð + + Žè + + ŽË’ö + + d—Ê +
+ ‰Î‰Šƒrƒ“ 1 + + -1 + + 1d6 + + -2 + + 1 + + 4 + + 1 +
+ “Š‘„ + + 0 + + 1d8 + + +1 + + 1 + + 4 + + 2 +
+ ‰s‚¢Î + + -2 + + 3d4+1 + + -2 + + 2 + + 5 + + 10 +
+

+ +[1] ˆêŽž“I‚É’n–ʂɉŠ‚ðŽc‚· +

+ + +

+Ú‹ßí—p•Ší +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ –¼Ì + + –½’† + + ‘ÅŒ‚ + + ‰ñ”ð + + Žè + + ŽË’ö + + d—Ê +
+ ’ZŒ• + + 1d4 + + 1d4 + + 1d2 + + 1 + + 1 + + 0 +
+ +4 ’ZŒ• + + 1d4+4 + + 1d4+4 + + 1d2+4 + + 1 + + 1 + + 0 +
+ ’Æ–µ + + 1d4 + + 1d6+2 + + +0 + + 1 + + 1 + + 3 +
+ •€ + + 1d2 + + 2d3+2 + + +0 + + 1 + + 1 + + 3 +
+ Υ + + 1d2 + + 1d8+1 + + 1d2 + + 1 + + 1 + + 2 +
+ +2 Υ + + 1d2+2 + + 1d8+3 + + 1d2+2 + + 1 + + 1 + + 2 +
+ +4 Υ + + 1d2+4 + + 1d8+5 + + 1d2+4 + + 1 + + 1 + + 2 +
+ —¼Žè•€ + + 0 + + 4d3+2 + + -2 + + 2 + + 1 + + 4 +
+ —¼ŽèŒ• + + 0 + + 2d8+2 + + 1 + + 2 + + 1 + + 4 +
+ Žh•t‚«“S‹… + + 1d2+2 + + 1d6+1 + + -1 + + 1 + + 2 + + 3 +
+ +2 Žh•t‚«“S‹… + + 1d2+4 + + 1d6+3 + + 2 + + 1 + + 2 + + 3 +
+ •€‘„ + + 1d3+1 + + 2d8-2 + + 1d2 + + 2 + + 2 + + 4 +
+ ñ + + 1d3 + + 1d4 + + 1d3 + + 2 + + 2 + + 2 +
+ •s‹C–¡‚Ȑn + + 2 + + 2d8+5 + + +0 + + 2 + + 1 + + 2 +
+ _”é‚ÌŒ• + + +3 + + 1d10+5 + + +2 + + 1 + + 1 + + 1 +
+ ‰Š‚ÌŒ• + + 1d2 + + 1d10+3 + + 1d2 + + 1 + + 1 + + 2 +
+ + +

+–h‹ï +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ –¼Ì + + –½’† + + ‘ÅŒ‚ + + –hŒä + + ‰ñ”ð + + d—Ê +
+ ”犕 + + -1 + + - + + 1d2 + + - + + 0 +
+ +2 ”犕 + + 0 + + - + + 1d2+2 + + - + + 0 +
+ +4 ”犕 + + 0 + + - + + 1d2+4 + + - + + 0 +
+ ½“ª‹Ð + + -1 + + - + + 1d3 + + - + + 1 +
+ +4 ½“ª‹Ð + + 0 + + - + + 1d3+4 + + - + + 1 +
+ “SŠ• + + -1 + + - + + 1d4 + + - + + 2 +
+ +4 “SŠ• + + 0 + + - + + 1d4+4 + + - + + 2 +
+ ”çŠZ + + -1 + + - + + 1d4 + + - + + 2 +
+ +2 ”çŠZ + + 0 + + - + + 1d4+2 + + - + + 2 +
+ +4 ”çŠZ + + 0 + + - + + 1d4+4 + + - + + 2 +
+ ½‚©‚ç‚Ñ‚ç + + -2 + + - + + 2d4 + + - + + 4 +
+ +4 ½‚©‚ç‚Ñ‚ç + + 0 + + - + + 2d4+4 + + - + + 4 +
+ b™h + + -4 + + - + + 4d4 + + - + + 8 +
+ +4 b™h + + 0 + + - + + 4d4+4 + + - + + 8 +
+ ¬Œ^‚̏‚ + + -1 + + - + + 0 + + 2 + + 2 +
+ +4 ¬Œ^‚̏‚ + + 0 + + - + + 0 + + 6 + + 2 +
+ Žh•t‚«‚ + + 0 + + 1d5 + + 0 + + 1 + + 3 +
+ Žh•t‚«Š• + + 0 + + 1d4 + + 3 + + 0 + + 2 +
+ + +

+’Žß +

+

+ +[1] ‚ ‚ A‚¾‚ªA‚Ü‚¾ŽÀ‘•‚³‚ê‚Ä‚¢‚È‚¢B +

+ +

+[2] Ž„‚́uƒJ[ƒlƒ‹v‚Æ‚¢‚¤ŒÄ‚Ñ–¼‚ðD‚ށB +‚±‚¿‚ç‚Ì•û‚ªŠiD‚ª‚æ‚­AƒŠ[ƒiƒXEƒg[ƒoƒ‹ƒX‚àŽ„‚à“¯‚¶¢‘ã‚ŁAƒJ[ƒlƒ‹‚ðì‚Á‚½‚Æ‚¢‚¤“_‚ÅŽ„‚à•‰‚¯‚Ä‚¢‚È‚¢‹C‚ª‚·‚éB +

+

+--gmcnutt (gmcnutt@cableone.net) +

+ + diff --git a/doc/world_building/CVS/Entries b/doc/world_building/CVS/Entries deleted file mode 100644 index 9b21877..0000000 --- a/doc/world_building/CVS/Entries +++ /dev/null @@ -1,10 +0,0 @@ -/advancement.rogue.txt/1.1/Thu Sep 2 05:52:22 2004// -/advancement.warrior.txt/1.1/Thu Sep 2 05:52:22 2004// -/advancement.wizard.txt/1.1/Thu Sep 2 05:52:22 2004// -/advancement.wright.txt/1.1/Thu Sep 2 05:52:22 2004// -/being_tile_media.txt/1.3/Thu Sep 2 05:52:22 2004// -/music_loop_media.txt/1.2/Thu Sep 2 05:52:22 2004// -/sound_sample_media.txt/1.3/Tue Jan 23 08:32:14 2007// -/town_scale_tile_media.txt/1.2/Thu Sep 2 05:52:22 2004// -/wilderness_scale_tile_media.txt/1.2/Thu Sep 2 05:52:22 2004// -D diff --git a/doc/world_building/CVS/Repository b/doc/world_building/CVS/Repository deleted file mode 100644 index 90c5636..0000000 --- a/doc/world_building/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -nazghul/doc/world_building diff --git a/doc/world_building/CVS/Root b/doc/world_building/CVS/Root deleted file mode 100644 index 4d8737a..0000000 --- a/doc/world_building/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:gmcnutt@nazghul.cvs.sourceforge.net:/cvsroot/nazghul diff --git a/haxima.desktop b/haxima.desktop index abf77e6..4ce0c63 100644 --- a/haxima.desktop +++ b/haxima.desktop @@ -1,8 +1,8 @@ [Desktop Entry] Encoding=UTF-8 -Name=Haxima +Name=Haxima日本語版 GenericName=Role Playing Game -Comment=An old school role playing game +Comment=昔懐かしいロールプレイングゲーム Exec=haxima Icon=haxima.png Terminal=false diff --git a/icons/CVS/Entries b/icons/CVS/Entries deleted file mode 100644 index dc8fb22..0000000 --- a/icons/CVS/Entries +++ /dev/null @@ -1,4 +0,0 @@ -/haxima.ico/1.2/Fri Jan 26 22:42:48 2007// -/haxima.png/1.2/Fri Jan 26 22:42:48 2007// -/haxima.xcf/1.2/Fri Jan 26 22:42:48 2007// -D diff --git a/icons/CVS/Repository b/icons/CVS/Repository deleted file mode 100644 index 2ddffbb..0000000 --- a/icons/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -nazghul/icons diff --git a/icons/CVS/Root b/icons/CVS/Root deleted file mode 100644 index 4d8737a..0000000 --- a/icons/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:ext:gmcnutt@nazghul.cvs.sourceforge.net:/cvsroot/nazghul diff --git a/src/Arms.cpp b/src/Arms.cpp index e9c91bf..ff36787 100644 --- a/src/Arms.cpp +++ b/src/Arms.cpp @@ -261,9 +261,9 @@ bool ArmsType::fireInDirection(struct place *place, int ox, int oy, if (!missile->hitTarget() || !missile->getStruck()) return false; - log_begin("%s hit ", getName()); + log_begin("%s¤Ï", getName()); missile->getStruck()->describe(); - log_end("!"); + log_end("¤ËÌ¿Ã椷¤¿¡ª"); // Reference the object while damaging it, since damage can remove it // from the map. @@ -272,9 +272,9 @@ bool ArmsType::fireInDirection(struct place *place, int ox, int oy, missile->getStruck()->damage(dice_roll(damageDice)); if (missile->getStruck()->isDestroyed()) { - log_begin("%s destroyed ", getName()); + log_begin("%s¤Ï", getName()); missile->getStruck()->describe(); - log_end("!"); + log_end("¤òÅݤ·¤¿¡ª"); mapSetDirty(); } diff --git a/src/Party.cpp b/src/Party.cpp index 56614c1..33a1c6c 100644 --- a/src/Party.cpp +++ b/src/Party.cpp @@ -739,17 +739,11 @@ void Party::describe() { assert(Session->subject); const char *diplstr = diplomacy_string(this, Session->subject); - if (isvowel(diplstr[0])) - log_continue("an "); - else - log_continue("a "); - - log_continue("%s %s", diplstr, getName()); - if (vehicle) { - log_continue(" in "); vehicle->describe(); + log_continue("¤Ë¾è¤Ã¤¿¡£"); } + log_continue("%s¤Ê%s", diplstr, getName()); } static bool member_examine(class Character *member, void *data) @@ -1080,7 +1074,7 @@ Object *Party::getSpeaker() } // The player has to choose. Poke the list into the status state. - statusSetGenericList("Choose Speaker", list_sz, statlist); + statusSetGenericList("Ïä¹Áê¼ê", list_sz, statlist); // Switch the status mode over to list selection. statusSetMode(GenericList); @@ -1093,7 +1087,7 @@ Object *Party::getSpeaker() // Push the handler and wait for the player to make a selection. eventPushKeyHandler(&kh); - cmdwin_spush(""); + cmdwin_push("<ÁªÂò>"); eventHandle(); cmdwin_pop(); eventPopKeyHandler(); @@ -658,7 +658,7 @@ struct inv_entry *ui_select_item(void) ie = (struct inv_entry *) sc.selection; if (ie == NULL) { - cmdwin_push("none!"); + cmdwin_push("²¿¤â¤·¤Ê¤¤¡ª"); return NULL; } @@ -692,7 +692,7 @@ class Character *select_party_member(void) kh.data = ≻ eventPushKeyHandler(&kh); - cmdwin_push(""); + cmdwin_push("<ÁªÂò>"); statlist[0].sprite = mech->getSprite(); snprintf(statlist[0].line1, sizeof(statlist[0].line1), "%s", @@ -946,7 +946,7 @@ bool cmdOpen(class Character * pc) foogodSetHintText(SCROLLER_HINT); foogodSetMode(FOOGOD_HINT); omode = statusGetMode(); - statusSetGenericList("Choose Target", 2, statlist); + statusSetGenericList("ÂоÝ", 2, statlist); statusSetMode(GenericList); data.selection = NULL; @@ -981,8 +981,8 @@ bool cmdOpen(class Character * pc) /* Nothing to open */ if (NULL == container) { - cmdwin_push("abort!"); - log_msg("Open - nothing there!"); + cmdwin_push("Ãæ»ß¡ª"); + log_msg("³«¤¯ - ²¿¤â¤Ê¤¤¡ª"); return false; } @@ -995,7 +995,7 @@ bool cmdOpen(class Character * pc) cmdwin_push("%s!", container->getName()); // Describe the contents of the container. - log_msg("You find:"); + log_msg("¸«¤Ä¤±¤¿¤â¤Î:"); container->forEach(cmd_describe_inv_entry, NULL); // Open the container (automagically spills all the contents onto the @@ -1046,33 +1046,33 @@ bool cmdQuit(void) eventPushQuitHandler(&qh); cmdwin_clear(); - cmdwin_spush("Quit"); + cmdwin_spush("½ªÎ»¤¹¤ë"); cmdwin_spush(""); getkey(&yesno, yesnokey); cmdwin_pop(); /* Cancel quit? */ if (yesno == 'n') { - cmdwin_spush("abort!"); + cmdwin_spush("Ãæ»ß¡ª"); Quit = false; goto pop_qh; } - cmdwin_spush("save"); + cmdwin_spush("Êݸ¤¹¤ë"); cmdwin_spush(""); getkey(&yesno, yesnokey); cmdwin_pop(); /* Don't save? */ if (yesno == 'n') { - cmdwin_spush("not saving!"); + cmdwin_spush("Êݸ¤·¤Ê¤¤¡ª"); Quit = true; goto pop_qh; } if (cmdSave()) { - cmdwin_spush("saved!"); - log_msg("Goodbye!\n"); + cmdwin_spush("Êݸ¤·¤¿¡ª"); + log_msg("¤µ¤è¤¦¤Ê¤é¡ª\n"); Quit = true; } else { Quit = false; @@ -1098,12 +1098,12 @@ void cmdAttack(void) // Get the direction cmdwin_clear(); - cmdwin_spush("Attack"); - cmdwin_spush(""); + cmdwin_spush("¹¶·â¤¹¤ë"); + cmdwin_spush("<Êý¸þ>"); getkey(&dir, cardinaldirkey); cmdwin_pop(); if (dir == CANCEL) { - cmdwin_spush("none!"); + cmdwin_spush("²¿¤â¤·¤Ê¤¤¡ª"); return; } cmdwin_spush("%s", directionToString(dir)); @@ -1117,8 +1117,8 @@ void cmdAttack(void) info.npc_party = place_get_Party(info.place, info.x, info.y); if (info.npc_party == NULL) { - cmdwin_spush("nobody there!"); - log_msg("Attack - nobody there!"); + cmdwin_spush("ï¤â¤¤¤Ê¤¤¡ª"); + log_msg("¹¶·â¤¹¤ë - ï¤â¤¤¤Ê¤¤¡ª"); return; } info.px = player_party->getX(); @@ -1129,23 +1129,23 @@ void cmdAttack(void) // If the npc is not hostile then get player confirmation. if (! are_hostile(info.npc_party, player_party)) { int yesno; - cmdwin_spush("attack non-hostile"); + cmdwin_spush("Ũ¤Ç¤Ê¤¤¼Ô¤ò¹¶·â¤¹¤ë"); cmdwin_spush(""); getkey(&yesno, yesnokey); cmdwin_pop(); if (yesno == 'n') { - cmdwin_spush("no"); + cmdwin_spush("¤¤¤¤¤¨"); return; } - cmdwin_spush("yes"); + cmdwin_spush("¤Ï¤¤"); make_hostile(info.npc_party, player_party); } // Log the attack. - log_begin("You attack "); + log_begin(""); info.npc_party->describe(); - log_end("."); + log_end("¤ò¹¶·â¤·¤¿¡£"); // Enter combat combat_enter(&cinfo); @@ -1181,7 +1181,7 @@ void cmdFire(void) int dir; cmdwin_clear(); - cmdwin_spush("Fire"); + cmdwin_spush("ˤ·â¤¹¤ë"); class Vehicle *vehicle = player_party->getVehicle(); if ((!vehicle || @@ -1189,18 +1189,18 @@ void cmdFire(void) // SAM: // In future, we may check for adjacent "cannon" // mechanisms here (as in U5). - cmdwin_spush("No cannons available!"); - log_msg("Fire - no cannons!"); + cmdwin_spush("ˤ·â¤Ç¤­¤Ê¤¤¡ª"); + log_msg("ˤ·â¤¹¤ë - Âçˤ¤¬¤Ê¤¤¡ª"); return; } cmdwin_spush("%s", vehicle->getOrdnance()->getName()); - cmdwin_spush(""); + cmdwin_spush("<Êý¸þ>"); getkey(&dir, dirkey); cmdwin_pop(); if (dir == CANCEL) { - cmdwin_spush("none!"); + cmdwin_spush("²¿¤â¤·¤Ê¤¤¡ª"); return; } @@ -1208,8 +1208,8 @@ void cmdFire(void) if (! vehicle->fire_weapon(directionToDx(dir), directionToDy(dir), player_party)) { - cmdwin_spush("Not a broadside!"); - log_msg("Fire - not a broadside!"); + cmdwin_spush("¦ÌÌÊý¸þ¤Ç¤Ê¤¤¡ª"); + log_msg("ˤ·â¤¹¤ë - ¦ÌÌÊý¸þ¤Ç¤Ê¤¤¡ª"); return; } } @@ -1223,7 +1223,7 @@ bool cmdReady(class Character * member) const char *msg = 0; cmdwin_clear(); - cmdwin_spush("Ready"); + cmdwin_spush("ÁõÈ÷¤¹¤ë"); // Select user if (member) { @@ -1234,15 +1234,15 @@ bool cmdReady(class Character * member) return false; if (member->isCharmed()) { - cmdwin_push("Charmed!"); - log_msg("Ready - charmed!"); + cmdwin_push("ËâË¡¤¬¤«¤±¤é¤ì¤Æ¤¤¤ë¡ª"); + log_msg("ÁõÈ÷¤¹¤ë - ËâË¡¤¬¤«¤±¤é¤ì¤Æ¤¤¤ë¡ª"); return false; } } log_begin_group(); - log_msg("%s readies arms:", member->getName()); + log_msg("%s¤ÎÁõÈ÷:", member->getName()); statusSelectCharacter(member->getOrder()); @@ -1255,7 +1255,7 @@ bool cmdReady(class Character * member) kh.data = ≻ eventPushKeyHandler(&kh); - cmdwin_spush(""); + cmdwin_spush("Ç㤦"); + cmdwin_spush("<ÁªÂò/ESC>"); eventPushKeyHandler(&kh); eventHandle(); eventPopKeyHandler(); @@ -3229,7 +3254,7 @@ int ui_buy(struct merchant *merch) trade = (struct trade_info *) sc.selection; if (!trade) { - cmdwin_spush("none!"); + cmdwin_spush("²¿¤â¤·¤Ê¤¤¡ª"); break; } @@ -3243,7 +3268,7 @@ int ui_buy(struct merchant *merch) if (player_party->gold < trade->cost) { int dummy; - cmdwin_spush("not enough gold! "); + cmdwin_spush("¶â²ß¤¬Â­¤ê¤Ê¤¤¡ª <¥­¡¼¤ò²¡¤¹>"); getkey(&dummy, anykey); continue; } @@ -3255,7 +3280,7 @@ int ui_buy(struct merchant *merch) cmdwin_pop_to_mark(); if (quantity == 0) { - cmdwin_spush("none!"); + cmdwin_spush("²¿¤â¤·¤Ê¤¤¡ª"); continue; } @@ -3267,9 +3292,9 @@ int ui_buy(struct merchant *merch) // *** trade *** class ObjectType *type = (class ObjectType*)trade->data; - cmdwin_spush("ok"); - log_msg("You buy %d %s%s for %d gold\n", quantity, - trade->name, quantity > 1 ? "s" : "", cost); + cmdwin_spush("Çã¤Ã¤¿"); + log_msg("¤¢¤Ê¤¿¤Ï%s¤ò¶â²ß%dËç¤Ç%d¤ÄÇã¤Ã¤¿¡£\n", trade->name, + cost, quantity); player_party->gold -= cost; if (type->canBuy()) { @@ -3341,7 +3366,7 @@ int ui_sell(struct merchant *merch) // Allocate the trade list. trades = new struct trade_info[merch->n_trades]; if (!trades) { - log_msg("^c+%c%s:^c- I don't need anything.\n", + log_msg("^c+%c%s:^c- ¤½¤ì¤Ï¤¤¤é¤Ê¤¤¡£\n", CONV_NPC_COLOR, merch->name); return 0; } @@ -3362,8 +3387,8 @@ int ui_sell(struct merchant *merch) sc.selection = NULL; cmdwin_clear(); - cmdwin_spush("Sell"); - cmdwin_spush(""); + cmdwin_push("<ÁªÂò>"); eventHandle(); cmdwin_pop(); eventPopKeyHandler(); @@ -3701,16 +3729,16 @@ static class Character *cmd_front_end(class Character *pc, const char *cmdstr) /* dead actor? */ if (pc->isDead()) { - log_msg("%s - %s is too dead!", cmdstr, pc->getName()); - cmdwin_push("can't!"); + log_msg("%s - %s¤Ï»à¤ó¤Ç¤¤¤ë¡ª", cmdstr, pc->getName()); + cmdwin_push("¤Ç¤­¤Ê¤¤¡ª"); return 0; } /* sleeping actor? */ if (pc->isAsleep()) { - log_msg("%s - %s rolls over and snores!", cmdstr, + log_msg("%s - %s¤Ï¤Ò¤Ã¤¯¤êÊ֤äƤ¤¤Ó¤­¤ò¤«¤¤¤Æ¤¤¤ë¡ª", cmdstr, pc->getName()); - cmdwin_push("can't!"); + cmdwin_push("¤Ç¤­¤Ê¤¤¡ª"); return 0; } @@ -3791,7 +3819,7 @@ static int cmd_paint_skill(struct stat_super_generic_data *self, /* level, ap, mp */ screenPrint(rect, SP_RIGHTJUSTIFIED, - "^c+GLvl:^c+y%d^c- MP:^c+b%d^c- AP:^c+r%d^c-^c-", + "^c+G¥ì¥Ù¥ë:^c+y%d^c- ËâÎÏ:^c+b%d^c- ¹ÔÆ°:^c+r%d^c-^c-", ssent->level, skill->mp, skill->ap); @@ -3903,7 +3931,7 @@ static struct skill_set_entry *cmd_select_skill(class Character *pc) /* setup the status browser data */ memset(&data, 0, sizeof(data)); cmd_build_skill_list(&data.list, pc); - data.title = "Yuse"; + data.title = "ǽÎÏ"; data.paint = cmd_paint_skill; data.unref = cmd_skill_list_unref; @@ -3920,7 +3948,7 @@ static struct skill_set_entry *cmd_select_skill(class Character *pc) cmdwin_push(ssent->skill->name); } else { ssent = 0; - cmdwin_push("none"); + cmdwin_push("²¿¤â¤·¤Ê¤¤"); } /* restore browser status mode */ @@ -3938,7 +3966,7 @@ void cmdYuse(class Character *actor) int cant = 0, result = 0, yused = 0; /* select/verify the actor */ - if (!(actor = cmd_front_end(actor, "Yuse"))) { + if (!(actor = cmd_front_end(actor, "ǽÎÏ"))) { return; } @@ -3953,19 +3981,19 @@ void cmdYuse(class Character *actor) if (! skill->wilderness_ok && place_is_wilderness(actor->getPlace())) { cant = 1; - log_msg("Not in the wilderness!"); + log_msg("¹ÓÌî¤Ç¤Ï»È¤¨¤Ê¤¤¡ª"); } /* check level */ if (actor->getLevel() < ssent->level) { cant = 1; - log_msg("Must be level %d!", ssent->level); + log_msg("¥ì¥Ù¥ë%d°Ê¾åɬÍפÀ¡ª", ssent->level); } /* check mana */ if (actor->getMana() < skill->mp) { cant = 1; - log_msg("Not enough mana!"); + log_msg("ËâÎϤ¬Â­¤ê¤Ê¤¤¡ª"); } /* check tools */ @@ -3976,7 +4004,7 @@ void cmdYuse(class Character *actor) struct inv_entry *ie=player_party->inventory-> search(tool); if (!ie || !ie->count) { - log_msg("Need %s!", tool->getName()); + log_msg("%s¤¬É¬ÍפÀ¡ª", tool->getName()); cant = 1; } } @@ -3995,7 +4023,7 @@ void cmdYuse(class Character *actor) ie = player_party->inventory->search(objtype); if (!ie || ie->count < mat->quantity) { cant = 1; - log_msg("Need %d %s!", mat->quantity, + log_msg("%d¤Ä¤Î%s¤¬É¬ÍפÀ¡ª", mat->quantity, objtype->getName()); } } @@ -4009,8 +4037,8 @@ void cmdYuse(class Character *actor) /* cant? */ if (cant) { - cmdwin_push("failed!"); - log_end("^c+rFailed!^c-"); + cmdwin_push("¼ºÇÔ¡ª"); + log_end("^c+r¼ºÇÔ¡ª^c-"); return; } @@ -4052,7 +4080,7 @@ bool cmdSetSoloMode(int party_member_index) ) { if (solo_member->engagedInTask()) { - log_msg("%s is engaged in %s, abort?", solo_member->getName(), solo_member->getTaskName()); + log_msg("%s¤Ï%s¤·¤Æ¤¤¤ë¡£ÃæÃǤ¹¤ë¤«¡©", solo_member->getName(), solo_member->getTaskName()); if (! ui_get_yes_no(solo_member->getName())) { return false; } @@ -4066,13 +4094,13 @@ bool cmdSetSoloMode(int party_member_index) bool cmdToggleFollowMode(void) { - log_begin("Follow mode "); + log_begin("ÄÉÀ×"); if (player_party->getPartyControlMode() == PARTY_CONTROL_FOLLOW) { - log_end("OFF"); + log_end("¤·¤Ê¤¤¡£"); player_party->enableRoundRobinMode(); return false; } else { - log_end("ON"); + log_end("¤¹¤ë¡£"); player_party->enableFollowMode(); return true; } diff --git a/src/cmd.h b/src/cmd.h index e3ce7cc..7b967eb 100644 --- a/src/cmd.h +++ b/src/cmd.h @@ -65,8 +65,8 @@ typedef struct ui_select_target_req } ui_select_target_req_t; -#define SCROLLER_HINT "\005\006=scroll ENT=select ESC=exit" -#define PAGER_HINT "\005\006=scroll ESC=exit" +#define SCROLLER_HINT "\005\006=ÁªÂò ENT=·èÄê ESC=Ìá¤ë" +#define PAGER_HINT "\005\006=ɽ¼¨ ESC=Ìá¤ë" extern int dirkey(struct KeyHandler *kh, int key, int keymod); extern int cardinaldirkey(struct KeyHandler *kh, int key, int keymod); diff --git a/src/cmdwin.c b/src/cmdwin.c index 118549f..56eb1f7 100644 --- a/src/cmdwin.c +++ b/src/cmdwin.c @@ -66,6 +66,8 @@ static struct { static FILE *log = NULL; #endif +struct dictionary *dictionary = NULL; + static inline void cmdwin_clear_no_repaint() { memset(cmdwin.buf, 0, cmdwin.blen); @@ -298,3 +300,365 @@ void cmdwin_flush(void) log_msg("%s\n", cmdwin.buf); cmdwin_clear(); } + +int kana_to_english(char *kana, char *english, char *kanji) +{ + int i; + + for (i = 0; dictionary[i].kana != NULL; i++) { + if (!strcmp(kana, dictionary[i].kana)) { + if (english) { + strcpy(english, dictionary[i].english); + } + if (kanji) { + strcpy(kanji, dictionary[i].kanji); + } + return true; + } + } + + if (english) { + strcpy(english, kana); + } + if (kanji) { + strcpy(kanji, kana); + } + return false; +} + +int alpha_to_kana(int key, char *buf) +{ + const static struct { + const char *alpha; + const char *kana; + } kana[] = { + { "ayb", "¥Ó¥ã" }, + { "iyb", "¥Ó¥£" }, + { "uyb", "¥Ó¥å" }, + { "eyb", "¥Ó¥§" }, + { "oyb", "¥Ó¥ç" }, + { "ayc", "¥Á¥ã" }, + { "iyc", "¥Á¥£" }, + { "uyc", "¥Á¥å" }, + { "eyc", "¥Á¥§" }, + { "oyc", "¥Á¥ç" }, + { "ayd", "¥Â¥ã" }, + { "iyd", "¥Â¥£" }, + { "uyd", "¥Â¥å" }, + { "eyd", "¥Â¥§" }, + { "oyd", "¥Â¥ç" }, + { "ayf", "¥Õ¥ã" }, + { "iyf", "¥Õ¥£" }, + { "uyf", "¥Õ¥å" }, + { "eyf", "¥Õ¥§" }, + { "oyf", "¥Õ¥ç" }, + { "ayg", "¥®¥ã" }, + { "iyg", "¥®¥£" }, + { "uyg", "¥®¥å" }, + { "eyg", "¥®¥§" }, + { "oyg", "¥®¥ç" }, + { "ayh", "¥Ò¥ã" }, + { "iyh", "¥Ò¥£" }, + { "uyh", "¥Ò¥å" }, + { "eyh", "¥Ò¥§" }, + { "oyh", "¥Ò¥ç" }, + { "ayj", "¥¸¥ã" }, + { "iyj", "¥¸¥£" }, + { "uyj", "¥¸¥å" }, + { "eyj", "¥¸¥§" }, + { "oyj", "¥¸¥ç" }, + { "ayk", "¥­¥ã" }, + { "iyk", "¥­¥£" }, + { "uyk", "¥­¥å" }, + { "eyk", "¥­¥§" }, + { "oyk", "¥­¥ç" }, + { "aym", "¥ß¥ã" }, + { "iym", "¥ß¥£" }, + { "uym", "¥ß¥å" }, + { "eym", "¥ß¥§" }, + { "oym", "¥ß¥ç" }, + { "ayn", "¥Ë¥ã" }, + { "iyn", "¥Ë¥£" }, + { "uyn", "¥Ë¥å" }, + { "eyn", "¥Ë¥§" }, + { "oyn", "¥Ë¥ç" }, + { "ayp", "¥Ô¥ã" }, + { "iyp", "¥Ô¥£" }, + { "uyp", "¥Ô¥å" }, + { "eyp", "¥Ô¥§" }, + { "oyp", "¥Ô¥ç" }, + { "ayq", "¥¯¥¡" }, + { "iyq", "¥¯¥£" }, + { "uyq", "¥¯¥¥" }, + { "eyq", "¥¯¥§" }, + { "oyq", "¥¯¥©" }, + { "ayr", "¥ê¥ã" }, + { "iyr", "¥ê¥£" }, + { "uyr", "¥ê¥å" }, + { "eyr", "¥ê¥§" }, + { "oyr", "¥ê¥ç" }, + { "ays", "¥·¥ã" }, + { "iys", "¥·¥£" }, + { "uys", "¥·¥å" }, + { "eys", "¥·¥§" }, + { "oys", "¥·¥ç" }, + { "ayt", "¥Á¥ã" }, + { "iyt", "¥Á¥£" }, + { "uyt", "¥Á¥å" }, + { "eyt", "¥Á¥§" }, + { "oyt", "¥Á¥ç" }, + { "ayv", "¥ô¥ã" }, + { "iyv", "¥ô¥£" }, + { "uyv", "¥ô¥å" }, + { "eyv", "¥ô¥§" }, + { "oyv", "¥ô¥ç" }, + { "ayx", "¥ã" }, + { "iyx", "¥£" }, + { "uyx", "¥å" }, + { "eyx", "¥§" }, + { "oyx", "¥ç" }, + { "ayz", "¥¸¥ã" }, + { "iyz", "¥¸¥£" }, + { "uyz", "¥¸¥å" }, + { "eyz", "¥¸¥§" }, + { "oyz", "¥¸¥ç" }, + { "ahc", "¥Á¥ã" }, + { "ihc", "¥Á" }, + { "uhc", "¥Á¥å" }, + { "ehc", "¥Á¥§" }, + { "ohc", "¥Á¥ç" }, + { "ahd", "¥Ç¥ã" }, + { "ihd", "¥Ç¥£" }, + { "uhd", "¥Ç¥å" }, + { "ehd", "¥Ç¥§" }, + { "ohd", "¥Ç¥ç" }, + { "ahp", "¥Õ¥¡" }, + { "ihp", "¥Õ¥£" }, + { "uhp", "¥Õ" }, + { "ehp", "¥Õ¥§" }, + { "ohp", "¥Õ¥©" }, + { "ahs", "¥·¥ã" }, + { "ihs", "¥·" }, + { "uhs", "¥·¥å" }, + { "ehs", "¥·¥§" }, + { "ohs", "¥·¥ç" }, + { "aht", "¥Æ¥ã" }, + { "iht", "¥Æ¥£" }, + { "uht", "¥Æ¥å" }, + { "eht", "¥Æ¥§" }, + { "oht", "¥Æ¥ç" }, + { "ahw", "¥¦¥¡" }, + { "ihw", "¥¦¥£" }, + { "uhw", "¥¦" }, + { "ehw", "¥¦¥§" }, + { "ohw", "¥¦¥©" }, + { "ast", "¥Ä¥¡" }, + { "ist", "¥Ä¥£" }, + { "ust", "¥Ä" }, + { "est", "¥Ä¥§" }, + { "ost", "¥Ä¥©" }, + { "ab", "¥Ð" }, + { "ib", "¥Ó" }, + { "ub", "¥Ö" }, + { "eb", "¥Ù" }, + { "ob", "¥Ü" }, + { "ac", "¥«" }, + { "ic", "¥­" }, + { "uc", "¥¯" }, + { "ec", "¥±" }, + { "oc", "¥³" }, + { "ad", "¥À" }, + { "id", "¥Â" }, + { "ud", "¥Å" }, + { "ed", "¥Ç" }, + { "od", "¥É" }, + { "af", "¥Õ¥¡" }, + { "if", "¥Õ¥£" }, + { "uf", "¥Õ" }, + { "ef", "¥Õ¥§" }, + { "of", "¥Õ¥©" }, + { "ag", "¥¬" }, + { "ig", "¥®" }, + { "ug", "¥°" }, + { "eg", "¥²" }, + { "og", "¥´" }, + { "ah", "¥Ï" }, + { "ih", "¥Ò" }, + { "uh", "¥Õ" }, + { "eh", "¥Ø" }, + { "oh", "¥Û" }, + { "aj", "¥¸¥ã" }, + { "ij", "¥¸" }, + { "uj", "¥¸¥å" }, + { "ej", "¥¸¥§" }, + { "oj", "¥¸¥ç" }, + { "ak", "¥«" }, + { "ik", "¥­" }, + { "uk", "¥¯" }, + { "ek", "¥±" }, + { "ok", "¥³" }, + { "al", "¥¡" }, + { "il", "¥£" }, + { "ul", "¥¥" }, + { "el", "¥§" }, + { "ol", "¥©" }, + { "am", "¥Þ" }, + { "im", "¥ß" }, + { "um", "¥à" }, + { "em", "¥á" }, + { "om", "¥â" }, + { "an", "¥Ê" }, + { "in", "¥Ë" }, + { "un", "¥Ì" }, + { "en", "¥Í" }, + { "on", "¥Î" }, + { "nn", "¥ó" }, + { "ap", "¥Ñ" }, + { "ip", "¥Ô" }, + { "up", "¥×" }, + { "ep", "¥Ú" }, + { "op", "¥Ý" }, + { "aq", "¥¯¥¡" }, + { "iq", "¥¯¥£" }, + { "uq", "¥¯¥¥" }, + { "eq", "¥¯¥§" }, + { "oq", "¥¯¥©" }, + { "ar", "¥é" }, + { "ir", "¥ê" }, + { "ur", "¥ë" }, + { "er", "¥ì" }, + { "or", "¥í" }, + { "as", "¥µ" }, + { "is", "¥·" }, + { "us", "¥¹" }, + { "es", "¥»" }, + { "os", "¥½" }, + { "at", "¥¿" }, + { "it", "¥Á" }, + { "ut", "¥Ä" }, + { "et", "¥Æ" }, + { "ot", "¥È" }, + { "av", "¥ô¥¡" }, + { "iv", "¥ô¥£" }, + { "uv", "¥ô" }, + { "ev", "¥ô¥§" }, + { "ov", "¥ô¥©" }, + { "aw", "¥ï" }, + { "iw", "¥ð" }, + { "uw", "¥¦" }, + { "ew", "¥¦¥§" }, + { "ow", "¥ò" }, + { "ax", "¥¡" }, + { "ix", "¥£" }, + { "ux", "¥¥" }, + { "ex", "¥§" }, + { "ox", "¥©" }, + { "ay", "¥ä" }, + { "iy", "¥¤" }, + { "uy", "¥æ" }, + { "ey", "¥¤¥§" }, + { "oy", "¥è" }, + { "az", "¥¶" }, + { "iz", "¥¸" }, + { "uz", "¥º" }, + { "ez", "¥¼" }, + { "oz", "¥¾" }, + { "'n", "¥ó" }, + { "a", "¥¢" }, + { "i", "¥¤" }, + { "u", "¥¦" }, + { "e", "¥¨" }, + { "o", "¥ª" }, + { " ", "¡¡" }, + { "!", "¡ª" }, + { "\"", "¡É" }, + { "#", "¡ô" }, + { "$", "¡ð" }, + { "%", "¡ó" }, + { "&", "¡õ" }, + { "'", "¡Ç" }, + { "(", "¡Ê" }, + { ")", "¡Ë" }, + { "*", "¡ö" }, + { "+", "¡Ü" }, + { ",", "¡¢" }, + { "-", "¡¼" }, + { ".", "¡£" }, + { "/", "¡¦" }, + { "0", "£°" }, + { "1", "£±" }, + { "2", "£²" }, + { "3", "£³" }, + { "4", "£´" }, + { "5", "£µ" }, + { "6", "£¶" }, + { "7", "£·" }, + { "8", "£¸" }, + { "9", "£¹" }, + { ":", "¡§" }, + { ";", "¡¨" }, + { "<", "¡ã" }, + { "=", "¡á" }, + { ">", "¡ä" }, + { "?", "¡©" }, + { "@", "¡÷" }, + { "[", "¡Ö" }, + { "\\", "¡ï" }, + { "]", "¡×" }, + { "^", "¡°" }, + { "_", "¡²" }, + { "`", "¡Æ" }, + { "{", "¡Ð" }, + { "|", "¡Ã" }, + { "}", "¡Ñ" }, + { "~", "¡Á" }, + { NULL, NULL } + }; + static int roman = true; + static char roman_buf[] = { "\0\0\0\0\0" }; + int i; + int len; + int n; + int soku; + + if (key == 0) { /* Clear roman buffer */ + memset(roman_buf, 0, sizeof(roman_buf)); + return 0; + } + if (key == -1) { /* Roman mode off */ + roman = false; + return 0; + } + if (key == '\t') { /* Toggle roman mode */ + roman = !roman; + memset(roman_buf, 0, sizeof(roman_buf)); + return 0; + } + + if (!roman || (key & 0x80) || !isprint(key)) { + memset(roman_buf, 0, sizeof(roman_buf)); + return 0; + } + + memmove(roman_buf + 1, roman_buf, sizeof (roman_buf) - 1); + roman_buf[0] = key; + + for (i = 0; kana[i].alpha != NULL; i++) { + len = strlen(kana[i].alpha); + + if (!strncasecmp(roman_buf, kana[i].alpha, len)) { + soku = (roman_buf[len - 1] == roman_buf[len]); + + if(soku) + n = (roman_buf[len + 1] == 'n'); + else + n = (roman_buf[len] == 'n'); + + sprintf (buf, "%.*s%s%s%s", len + n + soku, "\b\b\b\b\b", (n ? "¥ó": ""), (soku ? "¥Ã": ""), kana[i].kana); + + memset(roman_buf, 0, sizeof (roman_buf)); + return strlen(buf); + } + } + return 0; +} diff --git a/src/cmdwin.h b/src/cmdwin.h index 27dec74..d5ffc31 100644 --- a/src/cmdwin.h +++ b/src/cmdwin.h @@ -64,4 +64,13 @@ extern void cmdwin_push_mark(); * does not pop the mark itself (use cmdwin_pop for that). */ extern void cmdwin_pop_to_mark(); +struct dictionary { + char *kana; + char *english; + char *kanji; +}; +extern struct dictionary *dictionary; +extern int alpha_to_kana(int, char *); +extern int kana_to_english(char *, char *, char *); + #endif diff --git a/src/combat.c b/src/combat.c index d2ee791..2e4861d 100644 --- a/src/combat.c +++ b/src/combat.c @@ -136,13 +136,13 @@ void combat_set_state(enum combat_state new_state) case COMBAT_STATE_DONE: switch (new_state) { case COMBAT_STATE_FIGHTING: - log_banner("^c+mCOMBAT^c-"); + log_banner("^c+mÀïÆ®^c-"); sound_play(Combat.sound_enter, SOUND_MAX_VOLUME); break; case COMBAT_STATE_LOOTING: break; case COMBAT_STATE_CAMPING: - log_banner("CAMPING"); + log_banner("µÙ©"); break; default: assert(false); @@ -153,12 +153,12 @@ void combat_set_state(enum combat_state new_state) case COMBAT_STATE_FIGHTING: switch (new_state) { case COMBAT_STATE_LOOTING: - log_banner("^c+gVICTORY^c-"); + log_banner("^c+g¾¡Íø^c-"); sound_play(Combat.sound_victory, SOUND_MAX_VOLUME); player_party->addExperience(COMBAT_VICTORY_XP); break; case COMBAT_STATE_DONE: - log_banner("^c+rDEFEAT^c-"); + log_banner("^c+rÇÔËÌ^c-"); sound_play(Combat.sound_defeat, SOUND_MAX_VOLUME); break; default: @@ -170,7 +170,7 @@ void combat_set_state(enum combat_state new_state) case COMBAT_STATE_LOOTING: switch (new_state) { case COMBAT_STATE_FIGHTING: - log_banner("^c+mCOMBAT^c-"); + log_banner("^c+mÀïÆ®^c-"); sound_play(Combat.sound_enter, SOUND_MAX_VOLUME); break; case COMBAT_STATE_DONE: @@ -184,7 +184,7 @@ void combat_set_state(enum combat_state new_state) case COMBAT_STATE_CAMPING: switch (new_state) { case COMBAT_STATE_FIGHTING: - log_banner("^c+mCOMBAT^c-"); + log_banner("^c+mÀïÆ®^c-"); sound_play(Combat.sound_enter, SOUND_MAX_VOLUME); break; case COMBAT_STATE_LOOTING: @@ -1628,8 +1628,8 @@ bool combat_enter(struct combat_info * info) if (!combat_position_enemy(info->move->npc_party, info->move->dx, info->move->dy, !info->defend, Place)) { - log_begin("*** FORFEIT ***"); - log_msg("Your opponent slips away!"); + log_begin("*** ÁÓ¼º ***"); + log_msg("Áê¼ê¤ò¸«¼º¤Ã¤¿¡ª"); log_end(NULL); combat_set_state(COMBAT_STATE_LOOTING); } diff --git a/src/common.c b/src/common.c index de6db29..fe99e76 100644 --- a/src/common.c +++ b/src/common.c @@ -51,10 +51,10 @@ int commonInit(void) // fixme -- obsolete, use the next one static const char *dir_str[] = { - "Northwest", "North", "Northeast", - "West", "Here", "East", - "Southwest", "South", "Southeast", - "Up", "Down" + "ËÌÀ¾", "ËÌ", "ËÌÅì", + "À¾", "¤³¤³", "Åì", + "ÆîÀ¾", "Æî", "ÆîÅì", + "¾å", "²¼" }; static unsigned char dir_facing[] = { diff --git a/src/console.c b/src/console.c index 49c2fd7..0b85255 100644 --- a/src/console.c +++ b/src/console.c @@ -150,7 +150,7 @@ static int console_handle_repeated_msg(void) } // Print the repeat notice for the first time. snprintf(Console.lines[Console.line], CONSOLE_MAX_MSG_SZ, - "[again]"); + "[·«¤êÊÖ¤·]"); Console.room -= strlen(Console.lines[Console.line]); Console.cursor += strlen(Console.lines[Console.line]); @@ -160,7 +160,7 @@ static int console_handle_repeated_msg(void) // with the updated repeat count. memset(Console.lines[Console.line], 0, CONSOLE_MAX_MSG_SZ + 1); snprintf(Console.lines[Console.line], CONSOLE_MAX_MSG_SZ, - "[%d times]", Console.repeat); + "[%d²óÌÜ]", Console.repeat); } consoleRepaint(); @@ -236,7 +236,7 @@ void consolePrint(const char *fmt, ...) if (Console.room == CONSOLE_MAX_MSG_SZ) { /* Rule 2 */ - while (isspace(*ptr) && printed) { + while (isspace((unsigned char )*ptr) && printed) { if (!wrapped) { if (*ptr == '\n') { @@ -256,22 +256,33 @@ void consolePrint(const char *fmt, ...) } /* Rule 3 */ - while (!isspace(*ptr) && printed && Console.room) { - - /* copy the char */ - *Console.cursor = *ptr; + if ((*ptr & 0x80) && printed >= 2 && Console.room >= 2) { + /* copy the char (kanji) */ + *(Console.cursor + 0) = *(ptr + 0); + *(Console.cursor + 1) = *(ptr + 1); /* advance source and destination */ - printed--; - ptr++; - Console.room--; - Console.cursor++; + printed -= 2; + ptr += 2; + Console.room -= 2; + Console.cursor += 2; + } else { + while (!isspace((unsigned char )*ptr) && !(*ptr & 0x80) && printed && Console.room) { + /* copy the char */ + *Console.cursor = *ptr; + + /* advance source and destination */ + printed--; + ptr++; + Console.room--; + Console.cursor++; + } } words++; /* Check for end-of-line */ - if (!Console.room) { + if (!Console.room || Console.room == 1) { wrapped = 1; goto newline; } @@ -284,7 +295,7 @@ void consolePrint(const char *fmt, ...) wrapped = 0; - while (isspace(*ptr) && Console.room && printed) { + while (isspace((unsigned char )*ptr) && Console.room && printed) { if (*ptr == '\n') { ptr++; @@ -302,7 +313,7 @@ void consolePrint(const char *fmt, ...) Console.cursor++; } - if (!Console.room) { + if (!Console.room || ((*ptr & 0x80) && Console.room == 1)) { wrapped = 1; goto newline; } @@ -312,11 +323,13 @@ void consolePrint(const char *fmt, ...) /* All right. At this point I know I have space left and * another word to print. Rule 5. */ - eow = strpbrk(ptr, " \t\n\r"); - if (eow) + if (*ptr & 0x80) + wlen = 2; + else { + for (eow = ptr; *eow != 0 && *eow != ' ' && *eow != '\t' && *eow != '\n' && *eow != '\r' && !(*eow & 0x80); eow++) + ; wlen = eow - ptr; - else - wlen = printed; + } if (wlen > Console.room) { wrapped = 1; diff --git a/src/conv.c b/src/conv.c index bce92b1..460eea5 100644 --- a/src/conv.c +++ b/src/conv.c @@ -70,6 +70,10 @@ static int conv_keyword_highlighting = 1; */ static int conv_get_player_query(struct KeyHandler *kh, int key, int keymod) { + char kana_buf[128]; + int kana_len; + int i; + if (key == CANCEL) { while (conv_ptr > conv_query) { conv_ptr--; @@ -77,30 +81,48 @@ static int conv_get_player_query(struct KeyHandler *kh, int key, int keymod) cmdwin_pop(); conv_room++; } + alpha_to_kana(key, NULL); return 1; } if (key == '\n') { + alpha_to_kana(key, NULL); return 1; } if (key == '\b') { if (conv_ptr != conv_query) { - conv_ptr--; - *conv_ptr = 0; - conv_room++; - cmdwin_pop(); + if (*(conv_ptr - 1) & 0x80) { + conv_ptr -= 2; + *conv_ptr = 0; + conv_room += 2; + cmdwin_pop(); + cmdwin_pop(); + } else { + conv_ptr--; + *conv_ptr = 0; + conv_room++; + cmdwin_pop(); + } } + alpha_to_kana(key, NULL); return 0; } - if (isprintable(key) + if ((isprintable(key) || (key & 0x80)) && conv_room) { cmdwin_push("%c", key); *conv_ptr++ = key; conv_room--; } + kana_len = alpha_to_kana (key, kana_buf); + if (kana_len) { + for (i = 0; i < kana_len; i++) { + conv_get_player_query (kh, kana_buf[i], keymod); + } + } + return 0; } @@ -363,6 +385,8 @@ void conv_end() void conv_enter(Object *npc, Object *pc, struct conv *conv) { struct KeyHandler kh; + char english[MAX_KEYWORD_SZ]; + char kanji[MAX_KEYWORD_SZ]; assert(conv); @@ -377,7 +401,7 @@ void conv_enter(Object *npc, Object *pc, struct conv *conv) Session->subject = (class Being*)pc; } - log_banner("^c+yCONVERSATION^c-"); + log_banner("^c+y²ñÏÃ^c-"); session_run_hook(Session, conv_start_hook, "pp", pc, npc); @@ -410,7 +434,7 @@ void conv_enter(Object *npc, Object *pc, struct conv *conv) conv_ptr = conv_query; cmdwin_clear(); - cmdwin_push("Say: "); + cmdwin_push("¸À¤¦: "); /*** Get next query ***/ @@ -421,9 +445,11 @@ void conv_enter(Object *npc, Object *pc, struct conv *conv) conv_query[MAX_KEYWORD_SZ] = 0; conv_len = strlen(conv_query); if (! conv_len) - sprintf(conv_query, "bye"); - log_msg("^c+%c%s:^c- %s", CONV_PC_COLOR, - pc->getName(), conv_query); + sprintf(conv_query, "¥µ¥è¥Ê¥é"); + kana_to_english(conv_query, english, kanji); + strcpy(conv_query, english); + log_msg("^c+%c%s: ^c-%s", CONV_PC_COLOR, + pc->getName(), kanji); /*** Check if player ended conversation ***/ @@ -458,12 +484,46 @@ int isprintable(int c) ); } +int iskanji(int c) +{ + return c & 0x80; +} + +int conv_lookup_dictionary(char *word, struct dictionary **dic) +{ + size_t found_len = 0; + size_t kanji_len; + int i; + + *dic = NULL; + + for(i = 0; dictionary[i].kana != NULL; i++) { + kanji_len = strlen(dictionary[i].kanji); + if (kanji_len > found_len && !strncmp(word, dictionary[i].kanji, kanji_len)) { + found_len = kanji_len; + *dic = &dictionary[i]; + } + } + + return (int )found_len; +} + int conv_get_word(char *instr, char **beg, char **end) { + struct dictionary *dic; + int len; char *inp = instr; - while (*inp && !isalpha(*inp)) { - inp++; + if (iskanji(*inp)) { + *beg = instr; + + if((len = conv_lookup_dictionary(instr, &dic)) <= 0) { + len = 2; + } + + *end = instr + len; + + return 1; } if (!*inp) { @@ -472,8 +532,14 @@ int conv_get_word(char *instr, char **beg, char **end) *beg = inp; - while (*inp && isalpha(*inp)) { - inp++; + if (isalpha(*inp)) { + while (*inp && isalpha(*inp)) { + inp++; + } + } else { + while(*inp && !isalpha(*inp) && !iskanji(*inp)) { + inp++; + } } *end = inp; @@ -483,12 +549,19 @@ int conv_get_word(char *instr, char **beg, char **end) int conv_is_keyword(struct conv *conv, char *word) { + struct dictionary *dic; int index; if (! conv_keyword_highlighting) { return 0; } + if(iskanji(*word)) { + if(conv_lookup_dictionary(word, &dic) > 0) { + word = dic->english; + } + } + index = conv_lookup_keyword(conv, word); if (index == -1) { return 0; @@ -979,7 +1052,7 @@ static void conv_op_run(struct applet *applet, SDL_Rect *dims, struct session *s ca->conv_ptr = ca->conv_query; cmdwin_clear(); - cmdwin_push("Say: "); + cmdwin_push("¸À¤¦¡§"); /*** Get next query ***/ diff --git a/src/ctrl.c b/src/ctrl.c index e0ef26d..8185be5 100644 --- a/src/ctrl.c +++ b/src/ctrl.c @@ -183,7 +183,7 @@ static int ctrl_party_key_handler(struct KeyHandler *kh, int key, int keymod) break; case ' ': party->endTurn(); - log_msg("Pass"); + log_msg("²¿¤â¤·¤Ê¤¤¡£"); break; case '>': // This key was chosen to be a cognate for '>' in @@ -221,7 +221,7 @@ static int ctrl_party_key_handler(struct KeyHandler *kh, int key, int keymod) /* Return true when done processing commands. */ if(!party->isTurnEnded()) - cmdwin_push("Party [%d ap]:",party->getActionPoints()); + cmdwin_push("Á´°÷ [¹ÔÆ°%d]:",party->getActionPoints()); return party->isTurnEnded(); @@ -354,7 +354,7 @@ static int ctrl_calc_to_hit(class Character *character, int attackBonus = character->getAttackBonus(weapon); int val = base + weaponBonus + attackBonus + penalty; - log_continue("to-hit: %d=%d+%d+%d", val, base, weaponBonus, + log_continue("Ì¿Ãæ: %d=%d+%d+%d", val, base, weaponBonus, attackBonus); if (penalty >= 0) { log_continue("+"); @@ -370,7 +370,7 @@ static int ctrl_calc_to_defend(class Character *target) int bonus = target->getAvoidBonus(); int val = base + bonus; - log_continue("to-def: %d=%d+%d\n", val, base, bonus); + log_continue("²óÈò: %d=%d+%d\n", val, base, bonus); return val; } @@ -394,7 +394,7 @@ static int ctrl_calc_damage(class Character *character, int val = weaponDamage + characterBonus + criticalBonus + memberBonus; - log_continue("damage: %d=%d+%d", val, weaponDamage, characterBonus); + log_continue("ÂÇ·â: %d=%d+%d", val, weaponDamage, characterBonus); if (memberBonus) { log_continue("+%d", memberBonus); } @@ -414,7 +414,7 @@ static int ctrl_calc_armor(class Character *target, int critical) armor = target->getArmor(); } - log_continue(" armor: %d\n", armor); + log_continue("Ëɸæ: %d\n", armor); return armor; } @@ -442,12 +442,12 @@ void ctrl_do_attack(class Character *character, class ArmsType *weapon, * factions */ harm_relations(character, target); - log_begin("^c%c%s^cw attacks ^c%c%s^cw with %s: " + log_begin("^c%c%s^cw¤Ï%s¤Ç^c%c%s^cw¤ò¹¶·â:" , (are_hostile(character, player_party)?'r':'g') , character->getName() + , weapon->getName() , (are_hostile(target, player_party)?'r':'g') , target->getName() - , weapon->getName() ); if (weapon->canOnAttack()) @@ -460,7 +460,7 @@ void ctrl_do_attack(class Character *character, class ArmsType *weapon, if (miss) { - log_end("obstructed!"); + log_end("¾¤ËÅö¤¿¤Ã¤¿¡ª"); weapon->fireHitLoc(character, NULL, character->getPlace(),misx,misy,-1); return; } @@ -471,7 +471,7 @@ void ctrl_do_attack(class Character *character, class ArmsType *weapon, def = ctrl_calc_to_defend(target); if (hit < def) { - log_end("evaded!"); + log_end("Ì¿Ã椷¤Ê¤«¤Ã¤¿¡ª"); weapon->fireHitLoc(character, NULL, character->getPlace(),misx,misy,-1); return; } @@ -480,7 +480,7 @@ void ctrl_do_attack(class Character *character, class ArmsType *weapon, if (20 <= (dice_roll("1d20") + logBase2(character->getBaseAttackBonus(weapon)))) { critical = 1; - log_continue("^c+yCritical hit!^c-\n"); + log_continue("^c+yµÞ½ê¤ËÌ¿Ã椷¤¿¡ª^c-\n"); } /* roll for damage */ @@ -491,7 +491,7 @@ void ctrl_do_attack(class Character *character, class ArmsType *weapon, if (damage <= 0) { - log_end("blocked!"); + log_end("Ëɸ椷¤¿¡ª"); weapon->fireHitLoc(character, target, character->getPlace(),misx,misy,0); return; } @@ -623,7 +623,7 @@ static void ctrl_attack_ui(class Character *character) // turn-based mode. if (player_party->getPartyControlMode() == PARTY_CONTROL_FOLLOW && player_party->getSize() > 1) { - log_msg("Switching from Follow to Round Robin Mode.\n"); + log_msg("¡ÖÄÉÀספ«¤é¡Ö½çÈ֡פËÀÚ¤êÂؤï¤Ã¤¿¡£\n"); player_party->enableRoundRobinMode(); } @@ -637,7 +637,7 @@ static void ctrl_attack_ui(class Character *character) // prompt the user cmdwin_clear(); - cmdwin_spush("Attack"); + cmdwin_spush("¹¶·â¤¹¤ë"); // Determine AP for this (potential) attack, // as a discount may be applied for dual weapon attacks and such, @@ -663,7 +663,7 @@ static void ctrl_attack_ui(class Character *character) if (weapon->isMissileWeapon()) { // SAM: It would be nice to get ammo name, too... - cmdwin_spush("%s (%d AP, range %d, %d ammo)", + cmdwin_spush("%s(¹ÔÆ°%d, ¼ÍÄø%d, »Ä%d)", weapon->getName(), this_wpn_AP, weapon->getRange(), @@ -671,14 +671,14 @@ static void ctrl_attack_ui(class Character *character) } else if (weapon->isThrownWeapon()) { // SAM: It would be nice to get ammo name, too... - cmdwin_spush("%s (%d AP, range %d, %d left)", + cmdwin_spush("%s(¹ÔÆ°%d, ¼ÍÄø%d, »Ä%d)", weapon->getName(), this_wpn_AP, weapon->getRange(), character->hasAmmo(weapon)); } else { - cmdwin_spush("%s (%d AP, reach %d)", + cmdwin_spush("%s(¹ÔÆ°%d, ¼ÍÄø%d)", weapon->getName(), this_wpn_AP, weapon->getRange() ); @@ -687,8 +687,8 @@ static void ctrl_attack_ui(class Character *character) // Check ammo if (!character->hasAmmo(weapon)) { - cmdwin_spush("no ammo!"); - log_msg("%s: %s - no ammo!\n", + cmdwin_spush("ÃƤ¬¤Ê¤¤¡ª"); + log_msg("%s: %s - ÃƤ¬¤Ê¤¤¡ª\n", character->getName(), weapon->getName()); continue; @@ -700,8 +700,8 @@ static void ctrl_attack_ui(class Character *character) class Character *near; near = ctrl_get_interfering_hostile(character); if (near) { - cmdwin_spush("blocked!"); - log_msg("%s: %s - blocked by %s!\n", + cmdwin_spush("˸³²¡ª"); + log_msg("%s: %s - %s¤Ë˸³²¤µ¤ì¤¿¡ª\n", character->getName(), weapon->getName(), near->getName()); @@ -750,7 +750,7 @@ static void ctrl_attack_ui(class Character *character) &x, &y, weapon->getRange(), &info.suggest)) { - cmdwin_spush("abort!"); + cmdwin_spush("ÃæÃÇ¡ª"); continue; } @@ -792,7 +792,7 @@ static void ctrl_attack_ui(class Character *character) if (miss) { - log_end("obstructed!"); + log_end("Ëɸ桪"); } weapon->fireHitLoc(character, NULL, character->getPlace(),misx,misy,-1); @@ -805,10 +805,10 @@ static void ctrl_attack_ui(class Character *character) mech = place_get_object(character->getPlace(), x, y, mech_layer); if (mech && mech->getName()) { - log_end("%s hit!", mech->getName()); + log_end("%s¤ËÌ¿Ã椷¤¿¡ª", mech->getName()); mech->attack(character); } else { - log_end("%s hit!", terrain->name); + log_end("%s¤ËÌ¿Ã椷¤¿¡ª", terrain->name); } } @@ -818,7 +818,7 @@ static void ctrl_attack_ui(class Character *character) * next weapon". This allows players to quickly jump to * the next weapon if no target is in range and they * aren't interested in attacking the ground. */ - cmdwin_spush("skip weapon!"); + cmdwin_spush("¼¡¤ÎÉð´ï¤Ø¡ª"); // no attack made, so don't increment this_is_nth_attack continue; } else { @@ -835,15 +835,15 @@ static void ctrl_attack_ui(class Character *character) // If the npc is not hostile then get player confirmation. if (! are_hostile(character, target)) { int yesno; - cmdwin_spush("attack non-hostile"); + cmdwin_spush("Ũ¤Ç¤Ê¤¤¼Ô¤ò¹¶·â¤¹¤ë"); cmdwin_spush(""); getkey(&yesno, yesnokey); cmdwin_pop(); if (yesno == 'n') { - cmdwin_spush("no"); + cmdwin_spush("¤¤¤¤¤¨"); continue; } - cmdwin_spush("yes"); + cmdwin_spush("¤Ï¤¤"); } // Strike the target @@ -861,7 +861,7 @@ static void ctrl_attack_ui(class Character *character) * still be okay now that getToHitPenalty() is outside of this * loop, but not sure why it' would be preferred. */ if (! character->hasAmmo(weapon)) - log_msg("%s : %s now out of ammo\n", + log_msg("%s : %s¤ÏÃÆÀÚ¤ì\n", character->getName(), weapon->getName()); character->decActionPoints(this_wpn_AP); @@ -899,17 +899,17 @@ static void ctrl_move_character(class Character *character, int dir) switch (move_result) { case OffMap: - result = "no place to go!"; + result = "¹Ô¤±¤ë¾ì½ê¤¬¤Ê¤¤¡ª"; break; case ExitedMap: - result = "exit!"; + result = "æ½Ð¡ª"; character->endTurn(); break; case EngagedEnemy: - cmdwin_spush("enter combat!"); + cmdwin_spush("ÀïÆ®¾õÂÖ¡ª"); break; case WasOccupied: - result = "occupied!"; + result = "¿Ê¤á¤Ê¤¤¡ª"; break; case WasImpassable: { @@ -932,7 +932,7 @@ static void ctrl_move_character(class Character *character, int dir) mech->getObjectType()->handle(mech, character); character->decActionPoints(kern_intvar_get("AP_COST:handle_mechanism")); mapSetDirty(); - result = "handled!"; + result = "Áàºî¤·¤¿¡ª"; } else if (mech && mech->getObjectType()->canBump()) { @@ -942,24 +942,24 @@ static void ctrl_move_character(class Character *character, int dir) } else { - result = "impassable!"; + result = "Ä̤ì¤Ê¤¤¡ª"; } } break; case SlowProgress: - result = "slow progress!"; + result = "ÃÙ¤¤¡ª"; break; case SwitchedOccupants: - result = "switch!"; + result = "Æþ¤ìÂؤï¤Ã¤¿!"; break; case NotFollowMode: - result = "must be in follow mode!"; + result = "ÄÉÀ×Ãæ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡ª"; break; case CantRendezvous: - result = "party can't rendezvous!"; + result = "Ãç´Ö¤È½¸¹ç¤·¤Æ¤¤¤Ê¤¤¡ª"; break; case CouldNotSwitchOccupants: - result = "can't switch places!"; + result = "Æþ¤ìÂؤï¤ì¤Ê¤¤¡ª"; break; default: break; @@ -1029,7 +1029,7 @@ static int ctrl_character_key_handler(struct KeyHandler *kh, int key, character->endTurn(); } } else { - foogod_set_title("Round Robin: %s", character->getName()); + foogod_set_title("%s: %s", "½çÈÖ", character->getName()); foogodRepaint(); } break; @@ -1201,7 +1201,7 @@ static int ctrl_character_key_handler(struct KeyHandler *kh, int key, cmdAT(character); break; case ' ': - log_msg("Pass"); + log_msg("²¿¤â¤·¤Ê¤¤¡£"); character->endTurn(); break; case '?': @@ -1224,7 +1224,7 @@ static int ctrl_character_key_handler(struct KeyHandler *kh, int key, // log_msg(""); break; } - log_msg("To exit this combat map, use '<', \nor walk off the edge of the map."); + log_msg("'<'¤ò²¡¤¹¤«¡¢¤³¤ÎÃϿޤγ°¤Ë°ÜÆ°¤¹¤ë¤ÈÀïÆ®¤«¤éÈ´¤±¤é¤ì¤ë¡£"); break; case '<': @@ -1237,14 +1237,14 @@ static int ctrl_character_key_handler(struct KeyHandler *kh, int key, if (!place_is_wilderness_combat(character->getPlace())) { - log_msg("Must use an exit!"); + log_msg("ÀïÆ®Ãæ¤Ç¤Ê¤¤¡ª"); break; } if (place_contains_hostiles(character->getPlace(), character)) { - log_msg("Not while foes remain!"); + log_msg("Ũ¤¬¤Þ¤À¤¤¤ë¡ª"); break; } @@ -1694,7 +1694,7 @@ void ctrl_party_ui(class PlayerParty *party) /* ready the cmdwin prompt */ cmdwin_clear(); - cmdwin_push("Party [%d ap]:",party->getActionPoints()); + cmdwin_push("Á´°÷ [¹ÔÆ°%d]:",party->getActionPoints()); kh.fx = &ctrl_party_key_handler; kh.data = party; diff --git a/src/dtable.c b/src/dtable.c index aa9d21f..5e22e17 100644 --- a/src/dtable.c +++ b/src/dtable.c @@ -163,9 +163,9 @@ extern const char *dtable_describe(struct dtable *dtable, int f1, int f2) int level = dtable_get(dtable, f1, f2); if (level <= dtable->hostile) - return "hostile"; + return "ŨÂÐŪ"; else if (level >= dtable->allies) - return "allied"; + return "ͧ¹¥Åª"; else - return "neutral"; + return "ÃæΩŪ"; } diff --git a/src/escape.c b/src/escape.c index 9f34bb9..fd984b4 100644 --- a/src/escape.c +++ b/src/escape.c @@ -31,12 +31,12 @@ static struct KeyHandler esc_key_hndlr; static void esc_help(void) { - log_begin("F)ollow mode\n"); - log_continue("Q)uit\n"); - log_continue("[1-9] Solo mode\n"); - log_continue("CTRL-R)eload\n"); - log_continue("CTRL-S)ave\n"); - log_end("ESC to continue game\n"); + log_begin("F)ÄÉÀ×\n"); + log_continue("Q)½ªÎ»\n"); + log_continue("1-9)ñÆÈ\n"); + log_continue("CTRL-R)Æɹþ\n"); + log_continue("CTRL-S)Êݸ\n"); + log_end("ESC¤Ç³¤±¤ë\n"); } static int esc_menu_key_fx(struct KeyHandler *kh, int key, int keymod) @@ -69,7 +69,7 @@ static int esc_menu_key_fx(struct KeyHandler *kh, int key, int keymod) cmdSettings(); break; case SDLK_ESCAPE: - log_msg("Continue"); + log_msg("³¤±¤ë¡£"); return 1; case '?': esc_help(); @@ -89,7 +89,7 @@ static int esc_key_fx(struct KeyHandler *esckh, int key, int keymod) return 0; } - log_banner("ESC mode - press '?' for help"); + log_banner("ESC¾õÂÖ - '?'¤ÇÀâÌÀ¤òɽ¼¨¤¹¤ë¡£"); kh.fx = esc_menu_key_fx; eventPushKeyHandler(&kh); diff --git a/src/event.c b/src/event.c index a90548b..3cb19a0 100644 --- a/src/event.c +++ b/src/event.c @@ -113,7 +113,7 @@ static int mapKey(SDL_keysym * keysym) /* If the key has a UNICODE representation and its from the default * Basic Latin code page then return it as an ASCII character. */ /* fixme: unicode is messing up ctrl+key sequences */ - if (keysym->unicode) { + if (keysym->unicode && !(key >= SDLK_KP0 && key <= SDLK_KP9)) { /* Map CR to LF (legacy code expects this) */ if (keysym->unicode == 0x000d) diff --git a/src/foogod.c b/src/foogod.c index 05afb12..690745f 100644 --- a/src/foogod.c +++ b/src/foogod.c @@ -226,16 +226,16 @@ static void foogodPaintEffects() static void foogodPaintSessionInfo() { - screenPrint(&Foogod.turnRect, 0, "Turn: %d", session_get_turn_count()); + screenPrint(&Foogod.turnRect, 0, "²ó¿ô: %d", session_get_turn_count()); foogodPaintEffects(); if (player_party) { - screenPrint(&Foogod.foodRect, 0, "Food: %d", + screenPrint(&Foogod.foodRect, 0, "¿©ÎÁ: %d", player_party->food); - screenPrint(&Foogod.goldRect, SP_RIGHTJUSTIFIED, "Gold: %d", + screenPrint(&Foogod.goldRect, SP_RIGHTJUSTIFIED, "¶â: %d", player_party->gold); if (player_party->getVehicle()) { - screenPrint(&Foogod.hullRect, 0, "Hull: %d", + screenPrint(&Foogod.hullRect, 0, "Á¥ÂÎ: %d", player_party->getVehicle()->getHp()); } } @@ -291,8 +291,15 @@ void foogodRepaint(void) if (Session) { foogodPaintSessionInfo(); } + const char *combat_state_jp; + switch (combatGetState()) { + case 'N': combat_state_jp = "̵"; break; + case 'Y': combat_state_jp = "Àï"; break; + case 'V': combat_state_jp = "¾¡"; break; + default: combat_state_jp = ""; + } screenPrint(&Foogod.combatRect, SP_RIGHTJUSTIFIED, - "Combat: %c", combatGetState()); + "ÀïÆ®¾õÂÖ: %s", combat_state_jp); break; case FOOGOD_HINT: diff --git a/src/kern.c b/src/kern.c index 15f841a..29ac44c 100644 --- a/src/kern.c +++ b/src/kern.c @@ -2745,11 +2745,11 @@ static pointer kern_conv_say(scheme *sc, pointer args) } if (speaker->isKnown()) { - log_begin("^c+%c%s:^c- ", CONV_NPC_COLOR, speaker->getName()); + log_begin("^c+%c%s: ^c-", CONV_NPC_COLOR, speaker->getName()); } else { log_begin("^c+%c", CONV_NPC_COLOR); speaker->describe(); - log_continue(":^c- "); + log_continue(": ^c-"); } args = scm_car(sc, args); @@ -2811,7 +2811,7 @@ static pointer kern_conv_get_yes_no(scheme *sc, pointer args) static pointer kern_conv_get_amount(scheme *sc, pointer args) { cmdwin_clear(); - cmdwin_spush("How much"); + cmdwin_spush("¤¤¤¯¤é"); return scm_mk_integer(sc, ui_get_quantity(-1)); } @@ -3595,11 +3595,11 @@ static pointer kern_conv_begin(scheme *sc, pointer args) return sc->F; } - log_begin("You are accosted by "); + log_begin(""); Session->subject = player_party; npc->describe(); Session->subject = NULL; - log_end("."); + log_end("¤¬Ïä·¤«¤±¤Æ¤­¤¿¡£"); conv_enter(npc, member, conv); @@ -6990,7 +6990,7 @@ KERN_API_CALL(kern_ui_page_text) foogodSetMode(FOOGOD_HINT); statusSetPageText(title, text); statusSetMode(Page); - consolePrint("[Hit ESC to continue]\n"); + consolePrint("[ESC¥­¡¼¤ò²¡¤¹¤È³¤±¤ë]\n"); kh.fx = scroller; kh.data = NULL; @@ -10063,6 +10063,64 @@ KERN_OBSOLETE_CALL(kern_set_ascii); KERN_OBSOLETE_CALL(kern_set_frame); KERN_OBSOLETE_CALL(kern_set_cursor); +static int cmp_dictionary(const void *a, const void *b) +{ + int a_len = strlen(((struct dictionary *)a)->kana); + int b_len = strlen(((struct dictionary *)b)->kana); + + if (a_len > b_len) { + return 1; + } else if (a_len < b_len) { + return -1; + } else { + return 0; + } +} + +static int find_dictionary(const char *kana) +{ + int i; + + for (i = 0; dictionary[i].kana != NULL; i++) + if (strcmp(dictionary[i].kana, kana) == 0) + return i; + return -1; +} + +static void kern_dictionary(scheme *sc, pointer pp) +{ + int i, j; + char *kana, *english, *kanji; + + if (dictionary == NULL) { + dictionary = (struct dictionary *)malloc(sizeof (struct dictionary)); + dictionary[0].kana = NULL; + } + + for (i = 0; scm_is_pair(sc, pp); i++) { + unpack(sc, &pp, "sss", &kana, &english, &kanji); + + if ((j = find_dictionary(kana)) < 0) { + for(j = 0; dictionary[j].kana != NULL; j++) + ; + dictionary = (struct dictionary *)realloc(dictionary, sizeof(struct dictionary) * (j + 2)); + + dictionary[j].kana = (char *)malloc(strlen(kana) + 1); + dictionary[j].english = (char *)malloc(strlen(english) + 1); + dictionary[j].kanji = (char *)malloc(strlen(kanji) + 1); + + strcpy(dictionary[j].kana, kana); + strcpy(dictionary[j].english, english); + strcpy(dictionary[j].kanji, kanji); + dictionary[j + 1].kana = NULL; + } + } + + for(j = 0; dictionary[j].kana != NULL; j++) + ; + qsort(dictionary, j, sizeof(struct dictionary), cmp_dictionary); +} + static int fincount=0; /* for debug */ static void kern_finalize(scheme *sc, pointer pp) { @@ -10523,6 +10581,8 @@ scheme *kern_init(void) API_DECL(sc, "kern-set-cursor", kern_set_cursor); API_DECL(sc, "kern-set-ascii", kern_set_ascii); + /* kern-dictionary api */ + API_DECL(sc, "kern-dictionary", kern_dictionary); /* Revisit: probably want to provide some kind of custom port here. */ scheme_set_output_port_file(sc, stderr); diff --git a/src/menus.c b/src/menus.c index 738910b..0638add 100644 --- a/src/menus.c +++ b/src/menus.c @@ -50,7 +50,7 @@ #include #include -#define LOADSAVE_HINT "\005\006=scroll ENT=select DEL=delete ESC=exit" +#define LOADSAVE_HINT "\005\006=ÁªÂò ENT=·èÄê DEL=ºï½ü ESC=Ìá¤ë" /** * Enable this option to have the a "L)oad Game" menu item in addition to the @@ -107,7 +107,7 @@ static saved_game_t *menu_current_saved_game = 0; /** * This is what the Save Game menu shows for the new game option. */ -static const char *MENU_NEW_GAME_STR = "N)ew Saved Game"; +static const char *MENU_NEW_GAME_STR = "N)¿·¤·¤¤Êݸ¥Õ¥¡¥¤¥ë"; /** * This is a hack added to support demo mode. I'll try to explain, because it's @@ -280,7 +280,7 @@ static bool main_menu_quit_handler(struct QuitHandler *kh) static void show_credits(void) { struct KeyHandler kh; - const char *title = "Credits"; + const char *title = "À©ºî¼Ô"; const char *text = "Engine Programming\n"\ "...Gordon McNutt\n"\ @@ -309,7 +309,7 @@ static void show_credits(void) statusSetPageText(title, text); statusSetMode(Page); - consolePrint("[Hit ESC to continue]\n"); + consolePrint("[ESC¤ò²¡¤¹¤ÈÌá¤ë]\n"); kh.fx = scroller; kh.data = NULL; @@ -326,19 +326,19 @@ static void show_credits(void) static int confirm_selection() { int yesno; - log_msg("Existing saved game will be overwritten! Are you sure?"); + log_msg("º£¤¢¤ëÊݸ¥Õ¥¡¥¤¥ë¤ò¾å½ñ¤­¤·¤Æ¤è¤¤¤«¡©"); cmdwin_clear(); - cmdwin_spush("Confirm"); + cmdwin_spush("³Îǧ"); cmdwin_spush(""); getkey(&yesno, yesnokey); cmdwin_pop(); if (yesno=='y') { - cmdwin_spush("yes!"); - log_msg("Ok!"); + cmdwin_spush("¤Ï¤¤¡ª"); + log_msg("¾å½ñ¤­¡ª"); return 1; } else { - cmdwin_spush("no!"); - log_msg("Canceled!"); + cmdwin_spush("¤¤¤¤¤¨¡ª"); + log_msg("¼è¤ê¾Ã¤·¡ª"); return 0; } } @@ -500,7 +500,7 @@ static saved_game_t *saved_game_lookup(char *fname) */ static void menu_show_screenshot(SDL_Surface *screenshot) { - static const char *MENU_SCREEN_SHOT_STR = "^c+ySCREEN SHOT^c-"; + static const char *MENU_SCREEN_SHOT_STR = "^c+y»£¤é¤ì¤¿²èÌÌ^c-"; SDL_Rect rect; mapSetImage(screenshot); @@ -590,26 +590,26 @@ static void menu_prompt_to_delete(menu_scroll_data_t *data) return; /* Prompt to confirm. */ - log_begin("Delete %s?", save->fname); + log_begin("%s¤òºï½ü¤¹¤ë¤«¡©", save->fname); log_flush(); cmdwin_clear(); - cmdwin_push("Delete-"); + cmdwin_push("ºï½ü-"); cmdwin_push(""); getkey(&yesno, yesnokey); cmdwin_pop(); /* If confirmation denied then cancel. */ if (yesno == 'n') { - cmdwin_spush("abort!"); - log_end(" Canceled!"); + cmdwin_spush("¼è¤ê¾Ã¤·¡ª"); + log_end(" ¼è¤ê¾Ã¤·¡ª"); return; } /* Confirmed, try to delete the save file. Abort if it doesn't work. */ - cmdwin_push("yes!"); + cmdwin_push("¤Ï¤¤¡ª"); statusFlashSelected(Red); if (unlink(save->path)) { - log_continue(" WARNING! Failed to delete save file %s: %s", + log_continue(" ·Ù¹ð¡ªÊݸ¥Õ¥¡¥¤¥ë%s¤Îºï½ü¤Ë¼ºÇÔ¤·¤¿: %s", save->path, strerror(errno)); } @@ -618,9 +618,8 @@ static void menu_prompt_to_delete(menu_scroll_data_t *data) if (save->screenshot) { char *scr_fname = saved_game_mk_screenshot_fname(save); if (unlink(scr_fname)) { - log_continue(" WARNING! Failed to delete screenshot "\ - "file %s: %s:", scr_fname, - strerror(errno)); + log_continue(" ·Ù¹ð¡ª¥¹¥¯¥ê¡¼¥ó¥·¥ç¥Ã¥È%s¤Îºï½ü¤Ë¼ºÇÔ¤·¤¿: %s:", + scr_fname, strerror(errno)); } free(scr_fname); } @@ -655,7 +654,7 @@ static void menu_prompt_to_delete(menu_scroll_data_t *data) statusSetSelectedIndex(i1 ? (i1 - 1) : 0); /*statusRepaint();*/ - log_end(" Removed!"); + log_end(" ºï½ü¤·¤¿¡ª"); } /** @@ -869,7 +868,7 @@ char * load_game_menu(void) assert(data.hotkeys); data.menu = menu; data.n_menu = n; - data.title = "Load Game"; + data.title = "Æɤ߹þ¤ß"; /* Add each saved game to the menu list. */ menubufptr = menubuf; @@ -935,6 +934,12 @@ char * load_game_menu(void) */ static int menu_fname_filter(int key) { + if (key == '\t') { + return 0; + } + if (key & 0x80) { + return 1; + } if (isalnum(key) || (key=='_') || (key=='-') @@ -953,13 +958,16 @@ static char *prompt_for_fname() { char buf[32]; - log_msg("Enter the new filename."); + log_msg("¿·¤·¤¤¥Õ¥¡¥¤¥ë̾¤Ï¡©"); cmdwin_clear(); - cmdwin_push("Filename: "); + cmdwin_push("¥Õ¥¡¥¤¥ë̾: "); + alpha_to_kana(-1, NULL); /* No roman mode. */ if (ui_getline_filtered(buf, sizeof(buf), menu_fname_filter)) { + alpha_to_kana('\t', NULL); /* Roman mode */ return strdup(buf); } + alpha_to_kana('\t', NULL); /* Roman mode */ return 0; } @@ -997,7 +1005,7 @@ char * save_game_menu(void) assert(data.hotkeys); data.menu = menu; data.n_menu = n; - data.title = "Save Game"; + data.title = "Êݸ"; /* Prepare to fill in the menu list. */ i = 0; @@ -1195,14 +1203,14 @@ static bool menus_demo_tick_handler(struct TickHandler *th) char * main_menu(void) { - static const char *START_NEW_GAME="S)tart New Game"; - static const char *JOURNEY_ONWARD="J)ourney Onward"; - static const char *LOAD_GAME="L)oad Game"; - static const char *CREDITS="C)redits"; - static const char *QUIT="Q)uit"; - static const char *TUTORIAL="T)utorial"; - static const char *SETTINGS = "S(e)ttings"; - static const char *DEMO = "Show (I)ntro"; + static const char *START_NEW_GAME="S)»Ï¤á¤«¤é"; + static const char *JOURNEY_ONWARD="J)ι¤ò³¤±¤ë"; + static const char *LOAD_GAME="L)¥²¡¼¥à¤òÆɤ߹þ¤à"; + static const char *CREDITS="C)À½ºî¼Ô"; + static const char *QUIT="Q)½ªÎ»"; + static const char *TUTORIAL="T)¥Á¥å¡¼¥È¥ê¥¢¥ë"; + static const char *SETTINGS = "E)ÀßÄê"; + static const char *DEMO = "I)¥Ç¥â"; const char *menu[8]; char hotkeys[8+1]; int n_items = 0; @@ -1322,9 +1330,9 @@ char * main_menu(void) hotkeys[n_items] = 0; - foogodSetHintText("\005\006=scroll ENT=select"); + foogodSetHintText("\005\006=ÁªÂò ENT=·èÄê"); foogodSetMode(FOOGOD_HINT); - statusSetStringList("Main Menu", n_items, menu); + statusSetStringList("ÁªÂò", n_items, menu); statusSetMode(StringList); data.hotkeys = hotkeys; @@ -1495,14 +1503,14 @@ static void option_music(struct option *opt); { name, comment, key, 0, 0, 0, handler, ctrl, 0, 0, roo } static struct option options[OPTION_NUMOPTIONS] = { - DECL_OPTION("Screen Size", "Set the dimensions of the game screen.", + DECL_OPTION("²èÌ̤ÎÂ礭¤µ", "²èÌ̤ÎÂ礭¤µ¤ò·è¤á¤ë¡£", "screen-dims", option_screen_dims), - DECL_YESNO_OPTION("Sound", "Turn sound on or off.", + DECL_YESNO_OPTION("¸ú²Ì²»", "¸ú²Ì²»¤ò½Ð¤¹/½Ð¤µ¤Ê¤¤¡£", "sound-enabled", option_yes_no, sound_enable, 1), - DECL_OPTION("Music Volume", "Adjust volume of builtin music.", + DECL_OPTION("²»³Ú¤Î²»ÎÌ", "²»³Ú¤Î²»Î̤òÄ´À°¤¹¤ë¡£", "music-volume", option_music), - DECL_YESNO_OPTION("Keyword Highlighting", - "Highlight keywords in conversations with NPC's.", + DECL_YESNO_OPTION("¥­¡¼¥ï¡¼¥É¤Î¶¯Ä´", + "NPC¤È¤Î²ñÏäǥ­¡¼¥ï¡¼¥É¤ò¶¯Ä´¤·¤Æɽ¼¨¤¹¤ë¡£", "keyword-highlighting", option_yes_no, conv_enable_keyword_highlighting, 0), }; @@ -1517,12 +1525,12 @@ static void option_screen_dims(struct option *opt) struct KeyHandler kh; struct ScrollerContext data; - log_msg("Choose your screen size"); + log_msg("²èÌ̤ÎÂ礭¤µ¤Ï¡©"); cmdwin_clear(); - cmdwin_spush("Screen size"); - cmdwin_spush(""); + cmdwin_spush("²»³Ú¤Î²»ÎÌ"); + cmdwin_spush("<ÁªÂò>"); - statusSetStringList("Music Volume", array_sz(menu), menu); + statusSetStringList("²»ÎÌ", array_sz(menu), menu); statusSetMode(StringList); data.selection = NULL; data.selector = String; @@ -1679,11 +1687,11 @@ void options_menu(void) /* Setup status browser (do this every time through the loop, * as the handler functions might change things) */ cmdwin_clear(); - cmdwin_spush("Settings"); - cmdwin_push("