# ---------
#
# ´ðËÜŪ¤Ë¡¢Ì¾Á°¤Î°ìÉô¤Ë¥Õ¥¡¥¤¥ë¤Ë½ñ¤¤¤¿Ê¸»úÎ󤬴ޤޤì¤Æ¤¤¤ì¤Ð¡¢
-# ¤½¤Î¥¢¥¤¥Æ¥à¤ò¼«Æ°Åª¤Ë½¦¤¤¤Þ¤¹¡£
-# ¤¿¤À¤·¡¢Æ¬¤Ë ! ¤¬¤Ä¤¤¤Æ¤¤¤ë¾ì¹ç¤Ï¤½¤Î¥¢¥¤¥Æ¥à¤ò¼«Æ°Åª¤ËÇ˲õ¤·¤Þ¤¹¡£
-# ¤Þ¤¿¡¢Æ¬¤Ë ~ ¤¬¤Ä¤¤¤Æ¤¤¤ë¾ì¹ç¤Ï¤½¤Î¥¢¥¤¥Æ¥à¤Ï½¦¤¦¤³¤È¤âÇ˲õ¤¹¤ë¤³¤È¤â¤»¤º¤Ë
-# ¤½¤Î¤Þ¤Þ¾²¤Ë»Ä¤·¤Þ¤¹¡£
+# ¤½¤Î¥¢¥¤¥Æ¥à¤ò¼«Æ°Åª¤Ë½¦¤¤¤Þ¤¹¡£¤¿¤À¤·¡¢Æ¬¤Ë ¡Ö!¡× ¤¬¤Ä¤¤¤Æ¤¤¤ë¾ì¹ç¤Ï
+# ¤½¤Î¥¢¥¤¥Æ¥à¤ò¼«Æ°Åª¤ËÇ˲õ¤·¡¢Æ¬¤Ë ¡Ö~¡× ¤¬¤Ä¤¤¤Æ¤¤¤ë¾ì¹ç¤Ï¤½¤Î¥¢¥¤¥Æ¥à¤Ï
+# ½¦¤¦¤³¤È¤âÇ˲õ¤¹¤ë¤³¤È¤â¤»¤º¤Ë¤½¤Î¤Þ¤Þ¾²¤Ë»Ä¤·¤Þ¤¹¡£
+# ¤µ¤é¤Ë¡¢¤³¤ì¤é¤Ë²Ã¤¨¤Æ¡¢¡Ö(¡×¤òÉÕ¤±²Ã¤¨¤ë»ö¤Ç¥Þ¥Ã¥×¥³¥Þ¥ó¥ÉÃæ¤Ç¤Î¤½¤Î
+# ¥¢¥¤¥Æ¥à¤Îɽ¼¨¤òÍ޻ߤ¹¤ë»ö¤¬¤Ç¤¤Þ¤¹¡£(°Ê²¼¤ÎTips¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£)
+#
# (Ãí°Õ! always_pickup ¥ª¥×¥·¥ç¥ó¤¬Í¸ú¤Î»þ¤Ï !¤È½ñ¤¤¤¿¥¢¥¤¥Æ¥à¤Ç¤â½¦¤¤¤Þ¤¹¡£)
#
# picktype.prf ¤ÎÀèƬ¤«¤é½çÈÖ¤ËÍ¥ÀèŪ¤Ëɾ²Á¤¹¤ë¤Î¤Ç¡¢ÉÔÍפʤâ¤Î¤ÎÇ˲õ¤Î
# ¤Î²¼¤Ë¤½¤Î¾¤ÎÄã¼Á¤Ê¥¢¥¤¥Æ¥à¤òÇ˲õ¤¹¤ëÀßÄê¤ò½ñ¤¯¤Î¤¬ÊØÍø¤ÊÊýË¡¤Ç¤¹¡£
#
# ¡ù Tips
-# ¡ù ¥Þ¥Ã¥×¥³¥Þ¥ó¥É('M'¥¡¼)¤Î»ÈÍÑÃæ¤Ë¤µ¤é¤Ë 'M'¤ò²¡¤¹¤³¤È¤Ç¡¢
-# ¡ù ¼«Æ°Åª¤Ë½¦¤¦¥¢¥¤¥Æ¥à¤ä¾²¤Ë»Ä¤¹¥¢¥¤¥Æ¥à¤òɽ¼¨¤¹¤ë»ö¤¬½ÐÍè¤Þ¤¹¡£
-# ¡ù ¼ÂºÝ¤Ë¤É¤Î¼ïÎà¤òɽ¼¨¤¹¤ë¤«¤Ï¡¢¥ª¥×¥·¥ç¥ó¤ÎÀßÄê( '='¥¡¼ )¤Î
-# ¡ù ¡Ö(6) ¥¢¥¤¥Æ¥à¤Î¼«Æ°½¦¤¤/Ç˲õ¡×¤ÇÀßÄê¤Ç¤¤Þ¤¹¡£
+# ¡ù ¥Þ¥Ã¥×¥³¥Þ¥ó¥É('M'¥¡¼)¤Î»ÈÍÑÃæ¤Ë¤µ¤é¤Ë 'M','N','K'¤ä'D'¤ò²¡¤¹¤³¤È¤Ç¡¢
+# ¡ù ¤½¤ì¤¾¤ì¼«Æ°Åª¤Ë½¦¤¦¥¢¥¤¥Æ¥à¡¢¾²¤ËÊüÃÖ¤¹¤ë¥¢¥¤¥Æ¥à¡¢Ç˲õ¤¹¤ë¥¢¥¤¥Æ¥à
+# ¡ù ¤òɽ¼¨¤¹¤ë»ö¤¬½ÐÍè¤Þ¤¹¡£'D'¤Ï'M'¤È'N'¤òξÊý²¡¤¹¤Î¤ÈƱ¤¸¤Ç¤¹¡£
+# ¡ù ¤¿¤À¤·¡¢¥¢¥¤¥Æ¥à̾¤ÎÀèƬ¤Ë'('¤òÉÕ¤±¤ÆÅÐÏ¿¤·¤¿¤â¤Î¤Ïɽ¼¨¤·¤Þ¤»¤ó¡£
# ¡ù
#
# °Ê²¼¤Î¤è¤¦¤Ê¥¡¼¥ï¡¼¥É¤Ç»Ï¤Þ¤ë¤â¤Î¤ÏÆÃÊÌ°·¤¤¤Ë¤Ê¤ê¤Þ¤¹¡£
̤´ÕÄê¤Î¸÷¸»:ààÍþÉÓ#!!
# *´ÕÄê*ºÑ¤ß¤Î¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È¤ò°ìÅÙ¾²¤ËÍî¤È¤·¤Æ½¦¤¦¤ÈÂÑÀ¼«Æ°¹ï¤ß'%'¤ò¤¹¤ë¡£
-~*´ÕÄê*ºÑ¤ß¤Î¡ú#%
-~*´ÕÄê*ºÑ¤ß¤Î¡ù#%
+~*´ÕÄê*ºÑ¤ß¤Î¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È#%
+
+# ´û¤Ë»ý¤Ã¤Æ¤¤¤ë¼ïÎà¤ÎÌô¡¢´¬Êª¡¢¥í¥Ã¥É¤Ï½Å¤Í¤é¤ì¤ë¤Î¤ÇÁ´¤Æ½¦¤¦¡£
+
+¼ý½¸Ãæ¤ÎÌô
+¼ý½¸Ãæ¤Î´¬Êª
+¼ý½¸Ãæ¤Î¥í¥Ã¥É
# ¤è¤¯½¦¤¦Êª
-Á´´¶ÃΤΥí¥Ã¥É#!k!!
´ÕÄê¤Î¥í¥Ã¥É#!k!!
+Á´´¶ÃΤΥí¥Ã¥É#@z0!k!!
¥¹¥Ô¡¼¥É¤Î¥í¥Ã¥É#!k!!
+
̵Ũ¤ÎÌô#!k
³ÍÆÀ#!k
·Ð¸³¤ÎÌô#!k
À¸Ì¿¤ÎÌô#!k
ÂÎÎϲóÉü#!k
-# ´û¤Ë»ý¤Ã¤Æ¤¤¤ë¼ïÎà¤ÎÌô¡¢´¬Êª¡¢¥í¥Ã¥É¤Ï½Å¤Í¤é¤ì¤ë¤Î¤ÇÁ´¤Æ½¦¤¦¡£
-
-¼ý½¸Ãæ¤ÎÌô
-¼ý½¸Ãæ¤Î´¬Êª
-¼ý½¸Ãæ¤Î¥í¥Ã¥É
-
#
# ËâÆ»¶ñ½Ñ»Î¤ÏµÛ¼ý¤Ç¤¤ë¤â¤Î¤ò¤¹¤Ù¤Æ½¦¤¦¡£
# ¥¢¡¼¥Á¥ã¡¼¤ÏÌð¤ÎºàÎÁ¤ò½¦¤¦¡£
~¸÷¸»:°Å°Ç¤Î
Å´¤Î¤¯¤µ¤Ó#@v0
?:[EQU $RACE Vampire]
-~°Å°Ç¤Î´¬Êª
-~°Å°Ç¤Î¾ó
+(~°Å°Ç¤Î´¬Êª
+(~°Å°Ç¤Î¾ó
?:1
# ¥ì¥Ù¥ë¤¬10°Ê¾å¤Ê¤éÇ˲õ¤¹¤ëÎã
# '$'¥³¥Þ¥ó¥É¤ÇÆɤ߹þ¤à¤«¥²¡¼¥à¤òºÆ³«¤¹¤ë¤È¤Á¤ã¤ó¤ÈÆɤ߹þ¤Þ¤ì¤Þ¤¹¡£
#
?:[GEQ $LEVEL 10]
-!¥ê¥ó¥´¥¸¥å¡¼¥¹¤ÎÌô
-!¶õ¤Î¥Ó¥ó
-!¿å¤ÎÌô
+(!¥ê¥ó¥´¥¸¥å¡¼¥¹¤ÎÌô
+(!¶õ¤Î¥Ó¥ó
+(!¿å¤ÎÌô
?:1
# ¥ì¥Ù¥ë¤¬20°Ê²¼¤Ê¤é¼«Æ°Ç˲õ¶Ø»ß¤Ç¾²¤ËÊüÃÖ¤¹¤ëÎã
?:[LEQ $LEVEL 20]
-~¤Î¤í¤Þ¤ÎÌô
-~̲¤ê¤ÎÌô
+(~¤Î¤í¤Þ¤ÎÌô
+(~̲¤ê¤ÎÌô
?:1
#Ê£»¨¤ÊÎã¡Êï¤â»È¤ï¤Ê¤¤¤Ç¤·¤ç¤¦¡£¤³¤Î¤Þ¤Þ¥³¥Ô¡¼¤¹¤ë¾ì¹ç°Ê³°¤Ï¡Ä¡Ë
?:[AND [GEQ $LEVEL 20] [IOR [EQU $REALM1 Life] [EQU $REALM2 Life] [EQU $REALM1 Nature] [EQU $REALM2 Nature] [EQU $REALM1 Craft] [EQU $REALM2 Craft]]]
-!¶õÊ¢½¼Â
-!¿©ÎÁ
-!¥¹¥é¥¤¥à¥â¥ë¥É
-!¥¨¥ë¥Õ¤Î¹ÔÎÈ
+(!¶õÊ¢½¼Â
+(!¿©ÎÁ
+(!¥¹¥é¥¤¥à¥â¥ë¥É
+(!¥¨¥ë¥Õ¤Î¹ÔÎÈ
?:1
~̵ÌäÎËɶñ:¥ß¥é¡¼¡¦¥·¡¼¥ë¥É
~̵ÌäÎÉð´ï:¥À¥¤¥ä¥â¥ó¥É¡¦¥¨¥Ã¥¸
~̵ÌäÎÉð´ï:Ê´ºÕ¤Î¥á¥¤¥¹
-!̵ÌäÎÉð´ï
-!̵ÌäÎËɶñ
+(!̵ÌäÎÉð´ï
+(!̵ÌäÎËɶñ
?:[GEQ $LEVEL 20]
-!̵ÌäÎÉð´ï:(+0,+0)
-!̵ÌäÎËɶñ:,+0]
+(!̵ÌäÎÉð´ï:(+0,+0)
+(!̵ÌäÎËɶñ:,+0]
?:1
#
# ÀìÌç³°¤Î²¼µéËâË¡½ñ¤Ï¥ì¥Ù¥ë30°Ê¾å¤Ê¤éÁ´¤Æ¼«Æ°Ç˲õ¤¹¤ë¡£
?:[GEQ $LEVEL 30]
-!Æɤá¤Ê¤¤1ºýÌܤÎËâË¡½ñ
-!Æɤá¤Ê¤¤2ºýÌܤÎËâË¡½ñ
-!Æɤá¤Ê¤¤3ºýÌܤÎÈë½Ñ¤ÎËâË¡½ñ
-!Æɤá¤Ê¤¤4ºýÌܤÎÈë½Ñ¤ÎËâË¡½ñ
+(!Æɤá¤Ê¤¤1ºýÌܤÎËâË¡½ñ
+(!Æɤá¤Ê¤¤2ºýÌܤÎËâË¡½ñ
+(!Æɤá¤Ê¤¤3ºýÌܤÎÈë½Ñ¤ÎËâË¡½ñ
+(!Æɤá¤Ê¤¤4ºýÌܤÎÈë½Ñ¤ÎËâË¡½ñ
?:1
# Àï»Î¤È¶¸Àï»Î¤Ï¾åµéËâË¡½ñ¤ò¼êÆ°¤ÇÇ˲õ¤¹¤ë¤È·Ð¸³Ãͤˤʤë¤Î¤Ç¡¢½¦¤¦¡£
# À¸Ì¿¥Ñ¥é¥Ç¥£¥ó¤âÀ¸Ì¿°Ê³°¤ÎËâË¡½ñ¤ò¼êÆ°¤ÇÇ˲õ¤¹¤ë¤È·Ð¸³Ãͤˤʤ롣
?:[IOR [EQU $CLASS Warrior] [EQU $CLASS Berserker] [AND [EQU $CLASS Paladin] [EQU $REALM1 Life]]]
-~Æɤá¤Ê¤¤4ºýÌܤÎÈë½Ñ¤ÎËâË¡½ñ
+(~Æɤá¤Ê¤¤4ºýÌܤÎÈë½Ñ¤ÎËâË¡½ñ
Æɤá¤Ê¤¤4ºýÌܤÎËâË¡½ñ
-~Æɤá¤Ê¤¤3ºýÌܤÎÈë½Ñ¤ÎËâË¡½ñ
+(~Æɤá¤Ê¤¤3ºýÌܤÎÈë½Ñ¤ÎËâË¡½ñ
Æɤá¤Ê¤¤3ºýÌܤÎËâË¡½ñ
?:1
# ¤½¤Î¾¤Î¾ì¹ç¤â¾åµéËâË¡½ñ¤Ï¹â¤¯Çä¤ì¤ë¤Î¤ÇÄã¥ì¥Ù¥ë¤Ç¤Ï½¦¤¦¡£
?:[LEQ $LEVEL 29]
-~Æɤá¤Ê¤¤4ºýÌܤÎÈë½Ñ¤ÎËâË¡½ñ
+(~Æɤá¤Ê¤¤4ºýÌܤÎÈë½Ñ¤ÎËâË¡½ñ
Æɤá¤Ê¤¤4ºýÌܤÎËâË¡½ñ
-~Æɤá¤Ê¤¤3ºýÌܤÎÈë½Ñ¤ÎËâË¡½ñ
+(~Æɤá¤Ê¤¤3ºýÌܤÎÈë½Ñ¤ÎËâË¡½ñ
Æɤá¤Ê¤¤3ºýÌܤÎËâË¡½ñ
?:1
+
# this kind of object. Starting a line with '~' indicates that you wish
# to leave this kind of object on the floor. Otherwise, your character
# will automatically attempt to pick up the object.
+# There is an additional command letter '('. It indicates that
+# you don't wish this item to be displayed in full map. see below.
#
# Notes:
# If you want to disable the effect of the '!' indicator temporally,
# up, followed by a general item name with '!' to destroy useless items.
#
# ! Tips
-# ! In full map command ('M'), you can press 'M' again to
-# ! display auto-pick items. The behavior of the display
-# ! is changed by options in
-# ! '(6) Object Auto-pick/Destroy Options'.
+# ! In full map command ('M'), you can press M, N, K, or D to
+# ! display locations of items for auto-pickup, leaving, auto-destroy
+# ! or both auto-pickup and leaving.
+# ! Additional command letter '(' prevents this display.
# !
#
# If you begin the last string in a line with '#', this string will
wanted corpse
wanted Skeleton
+# Berserker cannot use magical devices; rods, wands, and scrolls.
?:[EQU $CLASS Berserker]
!magical devices
?:1
unaware items
#Artifact lights
-unidentified lites:^Jewel#!!
-unidentified lites:^stone
-unidentified lites:^star#!!
-unidentified lites:^Incandescent Light
-unidentified lites:^Phial#!!
+unidentified lights:^Jewel#!!
+unidentified lights:^levitatioin stone#!!
+unidentified lights:^Palantir#!!
+unidentified lights:^stone#@A0
+unidentified lights:^star#!!
+unidentified lights:^Incandescent Light
+unidentified lights:^Phial#!!
# auto inscribe resistances...
-~*identified* weapons#%
-~*identified* armors#%
+~*identified* artifacts#%
+#
+# pick all items which can stack your inventry without inscription.
+#
+collecting rod
+collecting potion
+collecting scroll
+
+#
# good items
-~rod of Perception#!k!!
+#
+~rod of Perception#@z0!k!!
~rod of speed#!k!!
~rod of Healing#!k!!
-~rod of Enlightenment#!k!!
-~rod of Detection#!k!d!!
+~rod of Enlightenment#k!!
+~rod of Detection#!k!!
-potion of Invulnerability#!*
+potion of Invulnerability#!k
Acquirement#!k
potion of Experience
potion of Augmentation
potion of intelligence
potion of Charisma
-potion of life#!*
+potion of life#!k
healing#!k
-# pick all items which can stack your inventry
-
-collecting rod
-collecting potion
-collecting scroll
-
#
# Magic-Eaters pick up all magical device to absorb.
# Skeletons is material of missiles for Archers.
?:1
# higher rank of your spellbooks
-first realm's fourth Book of Samurai Arts#!k
-first realm's third Book of Samurai Arts#!k
+first realm's fourth Book of Kendo#!k
+first realm's third Book of Kendo#!k
first realm's fourth spellbooks#@md!k
first realm's third spellbooks#@mc!k
second realm's fourth spellbooks#@mh!k
D:ÞÕÁ³°ìÂΤȤʤꡢµ±¤¯¸î¸÷¤È¤Ê¤Ã¤Æ¤³¤Î³»¤òÊñ¤ó¤Ç¤¤¤ë¡£
N:131:¥¤¥«¥Ì¥¹¤Î
-E:of Icanus
+E:of Incanus
I:36:2:3
W:50:40:20:100000
P:2:0d0:0:0:20
F:INT | WIS | SEARCH | HIDE_TYPE | FEATHER | ACTIVATE
F:SUST_INT | SUST_WIS | FREE_ACT | SEE_INVIS | DEC_MANA |
F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD
-D:$The robe of the great wizard Gandalf, also known as Icanus in the
+D:$The robe of the great wizard Gandalf, also known as Incanus in the
D:$lands of the South. It is proof against elements, for neither the
D:$heat of the South, nor the ice of the North, nor the acidy pits of Dol
D:$Guldur were able to hold back the defiant Maia in the pursuit of
F:HIDE_TYPE | SHOW_MODS | RIDING | QUESTITEM | INSTA_ART
N:182:¤¤¤¤¤«¤²¤ó¤Ê
-E:of irresponsiblity
+E:of irresponsibility
I:19:63:7
W:127:1:50:1000000
P:0:1d1:22:22:10
D:É÷¸«½áÌõ¡Ë
N:209:¡Ø±£¼Ô¤Î»ç¡Ù
-E:'hermit's perple'
+E:'hermit's purple'
I:21:2:2
W:40:40:30:40000
P:0:1d6:10:5:0
-# CVS: Last edit by $Author$ on $Date$
# File: e_info.txt
#JZ# Zangband ÆüËܸìÌõ: ÈÄÁÒ
#JZ# ¡Ö#J0#¡×¤Ç»Ï¤Þ¤ë¥³¥á¥ó¥È¤ÏÆüËܸìÈÄ Angband ¤Î¤·¤È¤·¤ó¤µ¤ó¤Ë¤è¤ë
-# CVS: Last edit by $Author$ on $Date$
# File: f_info.txt
G:::G
N:94:Áð¤à¤é
-E:kusamura
+E:brake
G:#:g
N:95:Çîʪ´Û
-# CVS: Last edit by $Author$ on $Date$
# File: k_info.txt
#JZ# Zangband ÆüËܸìÌõ: ÈÄÁÒ
#JZ# ¡Ö#J0#¡×¤Ç»Ï¤Þ¤ë¥³¥á¥ó¥È¤ÏÆüËܸìÈÄ Angband ¤Î¤·¤È¤·¤ó¤µ¤ó¤Ë¤è¤ë
F:CON | HIDE_TYPE
N:135:ÅÅ·â
-E:Electricity
+E:Lightning
G:=:d
I:45:25:0
W:35:0:2:3000
F:INSTA_ART
N:622:& µÝ
-E:& Archery~
+E:& Yumi~
G:}:y
I:19:63:0
W:1:0:50:1000000
P:0:1d1:0:0:0
N:644:ËâË¡Æ»¶ñ»ÙÇÛ
-E:Magical Item Mastery
+E:Magic Device Mastery
G:":d
I:40:23:0
W:35:0:3:1000
-# CVS: Last edit by $Author$ on $Date$
# File: misc.txt
# Maximum number of towns
-# CVS: Last edit by $Author$ on $Date$
# q0000001.txt
# Name
-# CVS: Last edit by $Author$ on $Date$
# q0000002.txt
# Name
-# CVS: Last edit by $Author$ on $Date$
# q0000003.txt
# Name
-# CVS: Last edit by $Author$ on $Date$
# q0000004.txt
# Name
-# CVS: Last edit by $Author$ on $Date$
# q0000005.txt
# Name
-# CVS: Last edit by $Author$ on $Date$
# q0000006.txt
# Name
-# CVS: Last edit by $Author$ on $Date$
# q0000007.txt
# Name
-# CVS: Last edit by $Author$ on $Date$
# q0000019.txt
# a quick creation by Jeff Coleburn <vsp@netaxs.com>
-# CVS: Last edit by $Author$ on $Date$
# q0000020.txt
# a quick creation by Jeff Coleburn <vsp@netaxs.com>
-# CVS: Last edit by $Author$ on $Date$
# q0000021.txt
# a quick creation by Jeff Coleburn <vsp@netaxs.com>
-# CVS: Last edit by $Author$ on $Date$
# q0000022.txt
# a quick creation by Jeff Coleburn <vsp@netaxs.com>
-# CVS: Last edit by $Author$ on $Date$
# q0000023.txt
# a quick creation by Jeff Coleburn <vsp@netaxs.com>
-# CVS: Last edit by $Author$ on $Date$
# q0000027.txt
# The Old Castle
# By Shayne Steele (steele@cs.fsu.edu)
-# CVS: Last edit by $Author$ on $Date$
# q0000028.txt
# Name
-# CVS: Last edit by $Author$ on $Date$
# q00000ms.txt
# Name
-# CVS: Last edit by $Author$ on $Date$
# q000chao.txt
# Created by Topi Ylinen
-# CVS: Last edit by $Author$ on $Date$
# q000dekn.txt
# Name
-# CVS: Last edit by $Author$ on $Date$
# q000eric.txt
# Name
-# CVS: Last edit by $Author$ on $Date$
# q000lyeh.txt
# Name
-# CVS: Last edit by $Author$ on $Date$
# q000natu.txt
# Created by Topi Ylinen
-# CVS: Last edit by $Author$ on $Date$
# q000sorc.txt
# Created by Topi Ylinen
-# CVS: Last edit by $Author$ on $Date$
# q00water.txt
# Created by Oscar Nelson
-# CVS: Last edit by $Author$ on $Date$
# Killing Fields, (C) Topi Ylinen 1999
# Name
-# CVS: Last edit by $Author$ on $Date$
# q0thief1.txt
# Thieves Quest 1
# By Shayne Steele (steele@cs.fsu.edu)
-# CVS: Last edit by $Author$ on $Date$
# q0thief2.txt
# Thieves Quest 2
# By Shayne Steele (steele@cs.fsu.edu)
-# CVS: Last edit by $Author$ on $Date$
# q0willow.txt
# Old Man Willow Quest
# By Shayne Steele (steele@cs.fsu.edu)
-# CVS: Last edit by $Author$ on $Date$
# File: q_info_j.txt
# Includes all the quest files
-# CVS: Last edit by $Author$ on $Date$
# q_oberon.txt
# Name
-# CVS: Last edit by $Author$ on $Date$
# File: q_pref.txt
# Preferences for quest features
-# CVS: Last edit by $Author$ on $Date$
# q_random.txt
-# CVS: Last edit by $Author$ on $Date$
# q_serpen.txt
# Name
-# CVS: Last edit by $Author$ on $Date$
# q_warg.txt
# Name
-# CVS: Last edit by $Author$ on $Date$
# qdarkelf.txt
# Dark Elven Lords Quest
# By Shayne Steele (steele@cs.fsu.edu)
-# CVS: Last edit by $Author$ on $Date$
# Haunted House, (C) Topi Ylinen 1999
# Name
-# CVS: Last edit by $Author$ on $Date$
#JZ# Zangband ÆüËܸìÌõ: ÈÄÁÒ
#JZ# ¡Ö#J0#¡×¤Ç»Ï¤Þ¤ë¥³¥á¥ó¥È¤ÏÆüËܸìÈÄ Angband ¤Î¤·¤È¤·¤ó¤µ¤ó¤Ë¤è¤ë
#JZ# ¤â¤Î¤Ç¡¢¡Ö#JZ#¡×¤Ç»Ï¤Þ¤ë¥³¥á¥ó¥È¤ÏÆüËܸìÈÇ Zangband ¤Ç¿·¤¿¤Ë
F:OPEN_DOOR | BASH_DOOR |
#F:TROLL | IM_COLD | IM_POIS
F:IM_COLD | IM_POIS
-D:$He who laughs at Groo's brains will find there is nothing to laugh
-D:$about... erm, nobody laughs at Groo and lives.
-D:$¥°¥ë¡¼¤ÎƬ¤ò¾Ð¤¦¼Ô¤Ï¡¢¤½¤Î¤¦¤Á¾Ð¤¨¤Ê¤¤¤³¤È¤Ëµ¤¤Å¤¯¤À¤í¤¦...
-D:$¤Æ¤¤¤¦¤«¥°¥ë¡¼¤ò¾Ð¤Ã¤ÆÀ¸¤¤Î¤Ó¤¿¼Ô¤Ï¤¤¤Ê¤¤¡£
#JZ#
#JZ#µð¿Í¥Õ¥¡¥¾¥ë¥È
#JZ#¤È¤È¤â¤Ë¤Û¤È¤ó¤ÉÀäÌǤ·¤Þ¤·¤¿¤¬¡¢°ìÉô¤¬¥â¥ê¥ä¤ÇÉü³è¤·¤Æ¤¤¤Þ¤·¤¿¡£ by µ×ᤵ¤ó
#JZ#Jangband ¤Ë¤Ï¤¤¤Ê¤«¤Ã¤¿¤ó¤Ç¤¹¤Í¡£°Õ³°¡£ by ÈÄÁÒ
N:720:¥°¥ì¡¼¥¿¡¼¡¦¥Ð¥ë¥í¥°
-E:Balrog
+E:Greater Balrog
G:U:R
I:120:30d100:20:80:80
W:50:3:0:13000:0:0
D:¤¤¤±¤Ë¤¨¤òµñ¤à¤È¹¿¿å¤òµ¯¤³¤·¤Æ¿Í¡¹¤òÁ´ÌǤµ¤»¤ë¡£
N:873:¤»¤Ã¤«¤¯¤À¤«¤é¡Ø¥³¥ó¥Ð¥Ã¥È±ÛÁ°¡Ù
-E:Combat-Echizen, SEKKAKUDAKARA
+E:Combat-Echizen "Because it's time"
G:p:R
I:170:20d100:100:350:0
W:85:2:0:35000:0:0
D:ÃǤ¸¤Æ¥Þ¥ê¥ª¤ÎÎà»÷ÉʤǤϤʤ¤¡ª(ËܿͼçÄ¥)¡£
N:967:¥¬¥Â羡إ¸¥ã¥¤¥¢¥ó¡Ù
-E:Gian, the boss of the kids
+E:Jaian, the boss of the kids
G:p:o
I:110:100d10:16:100:20
W:29:3:0:500:0:0
D:(J.H.¥Ö¥ì¥Ê¥ó¡¢¿¿ºêµÁÇîÌõ °Å¹õ¾ë¤ÎËâ½Ñ»Õ)
N:1005:°Å¹õ¾ë¤ÎËâ½Ñ»Õ¡Ø¥¢¥ó¥µ¥í¥à¡Ù
-E:Antharom, Magic Master in the Castle of Darkness
+E:Ansalom, the Dark Wizard
G:p:D
I:120:22d150:50:100:0
W:55:10:0:20000:0:0
-# CVS: Last edit by $Author$ on $Date$
# File: t000001.txt
# Outpost
-# CVS: Last edit by $Author$ on $Date$
# File: t0000002.txt
# Telmora
B:$10:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
B:10:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
-B:$11:N:Rangers Guild:Trallin:Half-elf
+B:$11:N:Archers Guild:Trallin:Half-elf
B:11:N:¥¢¡¼¥Á¥ã¡¼¤Î¥®¥ë¥É:¥È¥¥¥é¥ê¥ó:¥Ï¡¼¥Õ¥¨¥ë
B:$11:A:0:Enchant missiles:20:40:a:30:0
B:11:A:0:Ìð¤äÀÐÅù¤ò¶¯²½¤¹¤ë:20:40:a:30:0
-# CVS: Last edit by $Author$ on $Date$
# Town Name: Morivant
# And in case you're wondering, that grand thing in the middle
# of town is a fountain.
B:$10:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
B:10:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
-B:$11:N:Rangers Guild:Angros:Elf
+B:$11:N:Archers Guild:Angros:Elf
B:11:N:¥¢¡¼¥Á¥ã¡¼¤Î¥®¥ë¥É:¥¢¥ó¥°¥í¥¹:¥¨¥ë¥Õ
B:$11:A:0:Enchant missiles:20:40:a:30:0
B:11:A:0:Ìð¤äÀÐÅù¤ò¶¯²½¤¹¤ë:20:40:a:30:0
-# CVS: Last edit by $Author$ on $Date$
# Town Name: Angwil
# Note: this is a mainly elven town, as you'll notice by the guild
# leaders etc.
B:$10:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
B:10:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
-B:$11:N:Rangers Tavern:Celegail:Elf
+B:$11:N:Archers Tavern:Celegail:Elf
B:11:N:¥¢¡¼¥Á¥ã¡¼¤Î¼ò¾ì:¥±¥ì¥¬¥¤¥ë:¥¨¥ë¥Õ
B:$11:A:0:Enchant missiles:22:44:a:30:0
B:11:A:0:Ìð¤äÀÐÅù¤ò¶¯²½¤¹¤ë:22:44:a:30:0
-# CVS: Last edit by $Author$ on $Date$
# t0000006.txt
# The City beneath the Sea
-# CVS: Last edit by $Author$ on $Date$
# File: t_lite.txt
# *Basic* town (vanilla style)
-# CVS: Last edit by $Author$ on $Date$
# File: t_info_j.txt
# Includes the town definitions
-# CVS: Last edit by $Author$ on $Date$
# File: t_lite.txt
# Town
B:$8:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
B:8:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
-B:$9:N:Rangers Guild:Trallin:Half-elf
+B:$9:N:Archers Guild:Trallin:Half-elf
B:9:N:¥¢¡¼¥Á¥ã¡¼¤Î¥®¥ë¥É:¥È¥¥¥é¥ê¥ó:¥Ï¡¼¥Õ¥¨¥ë
B:$9:A:0:Enchant missiles:20:40:a:30:0
B:9:A:0:Ìð¤äÀÐÅù¤ò¶¯²½¤¹¤ë:20:40:a:30:0
-# CVS: Last edit by $Author$ on $Date$
# File: t_pref.txt
# Defines the preferences for the town features
-# CVS: Last edit by $Author$ on $Date$
# File: v_info.txt
-# CVS: Last edit by $Author$ on $Date$
# File: w_info.txt
# Defines the layout of the wilderness
N:17:BIAS_MAGE
N: 7:BIAS_INT
-4
+5
'Fractal'
'Deja-Vu'
-of Martin
+for Ritual
of Talisman
+of the wiZZard
N:18:BIAS_WARRIOR
N: 6:BIAS_STR
'Turbo'
of Resist Smasher
of the Minotaur
-of the Sumo Warrior
+of Sumo Wrestler
of Daddy
N:10:BIAS_CON
'Endurance'
'Glowth Period'
'Trollism'
-'Big Tree'
+'Big Useless Fellow'
'Healthy One'
of Pro Wrestler
'Weeds'
'Radar'
'Planaria'
-of Stone
+of The Stone
of Squirrel
N:11:BIAS_CHR
of Passion
N:*:Default
-22
-of the Foo
-of the Bar
+19
'Sambo'
'Blink'
'Pizza'
of Coral
of Barahir
'Generater'
-'Dal-i-Thalion'
'Bladereturner'
'Iron Virgin'
+
5
'Registor'
of R'lyeh
-of thunder
+of Thunder
of Rubber Coat
-of 1 million volts
+of One Million Volt
N: 2:BIAS_POIS
5
5
'Gelatinous Cube'
'Skin of Dhole'
-of King Water
-of the Strongest
-of Devine Jewels
+of Aqua Regia
+of Immunity
+of the Devine Jewel
N: 3:BIAS_FIRE
4
N: 4:BIAS_COLD
6
-'While Snow'
+'White Snow'
'Icy Princess'
of Siberia
of White Ice
#N:11:BIAS_CHR
#0
+
N:12:BIAS_CHAOS
7
+'Sad Giant's Shield'
'Ever-Faithful'
'Guard of Law'
of Harmony
of Reason
of Seldon
-of the Chaotic Load
+of the Chaos Lord
N:14:BIAS_NECROMANTIC
6
-'Vecna's Hand'
+'Hand of Vecna'
'Total Eclipse'
-'Bottom of Abyss'
+'The Depth of Abyss'
'Jet-black Bird'
-of rituals
+of Rituals
of the Ruler of Wallachia
-#N:15:BIAS_LAW
-#0
+N:15:BIAS_LAW
N:13:BIAS_PRIESTLY
N: 8:BIAS_WIS
8
of Piety
of the Pious Believer
of Ceremony
-of Protection
+of Guardian Angel
of Revelation
of Rite
N:16:BIAS_ROGUE
N: 9:BIAS_DEX
-11
+10
'Silentwalker'
'Mercury'
'Darknesslurker'
of Phasing
of the Fairy
of Avoidance
-of Darkness
N:17:BIAS_MAGE
N: 7:BIAS_INT
7
'Nuts of Wisdom'
of Brilliance
-of the Magi
+of the Wizard
of Knowledge
of the Spellcaster
-for Ritual
of Arcane
+of Martin
N:18:BIAS_WARRIOR
N: 6:BIAS_STR
-7
+6
'Terminater'
'Die Hard'
'Force Shield'
-'Sad Giant's Shield'
of the Valkyrie
of Daybreak
of Diamond
'Life of Leaf'
of the Hunter
of Marinera
-of wood protection
+of Wood Protection
N:*:Default
-12
+13
+'Dal-i-Thalion'
'Guardian'
of Champion
'Defender'
1
says, 'Faugh, I'll be back...so long as human psyche has a blackness. Ho-ho.'
-N:873:Combat-Echizen, SEKKAKUDAKARA
+N:873:Combat-Echizen
1
says shiftlessly, 'Oh. No.'
1
screams, 'This CAN'T be happening!'
-N:873:Combat-Echizen, SEKKAKUDAKARA
+N:873:Combat-Echizen
3
says shiftlessly, 'Shit...!'
says shiftlessly, 'Yegg...!'
-says shiftlessly, 'Be cheated!'
+says shiftlessly, 'yariyagattana!'
N:878:Dio Brando
1
N:505:Goemon
3
says, 'Zantetsuken is sharp this night. '
-###########¡Öº£¾¬¤Î»ÂÅ´·õ¤Ï¤Ò¤ÈÌ£°ã¤¦¤¾¡ª¡×
-############# »ÂÅ´·õ¤Ã¤Æ¤É¤ó¤ÊÌõ¤Ë¤Ê¤Ã¤Æ¤ë¤ó¤À¤í¤¦¡©
-says, 'I cut an abbreviated piece of nothing again...'
+mumbles, 'Sign..Another trifling thing I've cut....'
buttons his lips, '.....'
N:1062:Groo the Wanderer
says, 'Such a doomed, pathetic gesture as yours verges on the heroic!'
says, 'Mere mortals such as you should not meddle the affair of the Powers!'
-N:873:Combat-Echizen, SEKKAKUDAKARA
+N:873:Combat-Echizen
4
says, 'Somethig comes from above! Be careful!'
says, 'What is this stair?'
-says, 'Because of a reason, I choose this red door!'
+says, 'Because it's time, I choose this red door!'
chunters, 'Tonight, someone dies again...'
N:878:Dio Brando
Old ZAngband code: (Mr) Topi Ylinen < f1toyl@uta.fi >
New ZAngband code: Robert Ruehlmann < rr9@angband.org >
ZAngband 2.3.0 - ???: The ZAngband DevTeam
- ZAngband Jap ver.: Mitsuhiro Itakera < m-itakura@geocities.co.jp >
+ ZAngband Jap ver.: Mitsuhiro Itakura < m-itakura@geocities.co.jp >
Hengband: Mr.Hoge (echizen @ s5.xrea.com) & Many others
-# CVS: Last edit by $Author$ on $Date$
# Color redefinitions
-# CVS: Last edit by $Author$ on $Date$
# File: font-ami.prf
#
-# CVS: Last edit by $Author$ on $Date$
# File: font-dos.prf
#
-# CVS: Last edit by $Author$ on $Date$
# File: font-ibm.prf
#
-# CVS: Last edit by $Author$ on $Date$
# File: font.prf
#
-# CVS: Last edit by $Author$ on $Date$
# File: font-mon.prf
#
-# CVS: Last edit by $Author$ on $Date$
# File: font-win.prf
#
-# CVS: Last edit by $Author$ on $Date$
# File: font-x11.prf
-# CVS: Last edit by $Author$ on $Date$
# File: font-xxx.prf
#
-# CVS: Last edit by $Author$ on $Date$
# File: font.prf
#
-# CVS: Last edit by $Author$ on $Date$
# File: graf-ami.prf
#
-# CVS: Last edit by $Author$ on $Date$
# File: graf-dos.prf
#
-# CVS: Last edit by $Author$ on $Date$
# File: graf-gcu.prf
#
-# CVS: Last edit by $Author$ on $Date$
# Monster attr/char definitions
# Player
-# CVS: Last edit by $Author$ on $Date$
# File: graf-mac.prf
#
-# CVS: Last edit by $Author$ on $Date$
# File: graf-new.prf
#
-# CVS: Last edit by $Author$ on $Date$
# File: graf-win.prf
#
-# CVS: Last edit by $Author$ on $Date$
# File: graf-x11.prf
V:30:0x01:0x00:0x60:0x10
V:31:0x01:0x60:0xF0:0x40
-
-# Hack -- initialization
-?:[NOT [EQU $SYS xxx]]
-
# Standard file
+?:[EQU $GRAF old]
%:graf-xxx.prf
+# New tiles
+?:[EQU $GRAF new]
+%:graf-new.prf
?:1
-# CVS: Last edit by $Author$ on $Date$
# File: graf-x11.prf
-# CVS: Last edit by $Author$ on $Date$
##### Special attr/char values #####
# Grass
F:89:0xCB:0x85
+#compact rune (same tile as dart trap, nuke me)
+F:90:0xA2:0x92
+
+#flower
+F:93:203/138
+
+#brake
+F:94:207/136
+
+#museum
+F:95:0xD3:0x98
+
# Tree
F:96:0xCB:0x86
# Mountain
F:97:0xCB:0x87
+# Building
+F:128:0xD5:0x82
+F:129:0xD5:0x82
+F:130:0xD5:0x81
+F:131:0xD5:0x82
+F:132:0xD5:0x82
+F:133:0xD5:0x82
+F:134:0xD5:0x82
+F:135:0xD5:0x80
+F:136:0xD5:0x81
+F:137:0xD5:0x84
+F:138:0xD5:0x81
+F:139:0xD5:0x80
+F:140:0xD5:0x85
+F:141:0xD5:0x83
+F:142:0xD5:0x83
+F:143:0xD5:0x83
+F:144:0xD5:0x83
+F:145:0xD5:0x83
+F:146:0xD5:0x83
+F:147:0xD5:0x83
+F:148:0xD5:0x83
+F:149:0xD5:0x83
+F:150:0xD5:0x83
+F:151:0xD5:0x83
+F:152:0xD5:0x83
+F:153:0xD5:0x83
+F:154:0xD5:0x83
+F:155:0xD5:0x83
+F:156:0xD5:0x83
+F:157:0xD5:0x83
+F:158:0xD5:0x83
+F:159:0xD5:0x83
+
+#Town
+#F:192:
+
+#Entrance to dungeon
+F:193:0x81:0x9E
+
+#Swamp
+F:194:207/146
+
+#Mirror
+F:195:203/152
# Object attr/char definitions
K:574:0xB4:0x88
K:575:0xB4:0x89
K:576:0xB4:0x8A
+K:577:0xD3:0x99
# Generic Skeleton
-K:577:0xB4:0x8B
+K:578:0xB4:0x8B
# Generic Corpse
-K:578:0xB4:0x8C
+K:579:0xB4:0x8C
+
+#T-shirt
+K:580:0xB4:0x8D
+
+#Wizardstaff
+#K:581:
+
+#Feanorian lamp
+#K:582:
+
+#Set of Gloves of Dragon
+#K:584:
+
+#Pair of Dragon Boots
+#K:585:
+
+#Gun
+#K:588:
+
+#Palantir
+#K:589:
+
+#Stone
+#K:590:
+
+#Poison Needle
+#K:592:
+
+#Capture Ball#
+#K:593:
+
+#Death Scythe
+#K:594:
+
+#Card
+#K:597:
+
+#[Handbook for Pupils]
+#K:604:
+
+#[Grade Holder's Book]
+#K:605:
+
+#[Note of Acting Master]
+#K:606:
+
+#[Spiritual Enlightenment]
+#K:607:
+
+#Levitation Stone
+#K:609:
+
+#Bead
+#K:610:
+
+#Ethereal Cloak
+#K:611:
+
+#Mirror
+#K:612:
+
+#Black Arrow
+#K:613:
+
+#Sexy Swimsuit
+#K:614:
+
+#Fishingpole
+#K:615:
+
+#Steel Bolt
+K:619:0x89:0x9C
+
+#Can of Toys
+#K:620:
+
+#Stick
+K:621:0xCD:0x98
+
+#Yumi
+K:622:0x89:0x95
+
+#Cloth
+K:623:0xB4:0x8D
+
+#Knight's Shield
+#K:627:
+
+#[Apprentice Handbook]
+#K:631:
+
+#[Minstrel's Music]
+#K:632:
+
+#[Harps of Rivendell]
+#K:633:
+
+#[Lays of Beleriand]
+#K:634:
+
+#Falcon Sword
+K:635:0xCD:0x9E
+
+#Adventurer's guide to Middle Earth
+#K:636:
+
+#[Bugei Shofu]
+#K:637:
+
+#[Yagyuu Bugeichou]
+#K:638:
+
+#[Gorinnosho]
+#K:639:
+
+#[Hokusin Ittouryuu Kaiden]
+#K:640:
+
+#Photograph of #
+#K:643:203/152
+
+#Robe
+K:645:0x88:0x95
+
+#[Dark Incantations]
+#K:646:
+
+#[Immortal Rituals]
+#K:647:
+
+#[Demonthoughts]
+#K:648:
+
+#[Hellfire Tome]
+#K:649:
+
+#Magic Whistle
+#K:651:
+
+#Amulet(pitch dark night)
+#K:652:0xB6:0x9E
+
# Load the special player pictures
%:xtra-xxx.prf
-# CVS: Last edit by $Author$ on $Date$
# File: graf.prf
#
-# CVS: Last edit by $Author$ on $Date$
# File: pref-acn.prf
# This is a minimal "pref" file for RISC OS
-# CVS: Last edit by $Author$ on $Date$
# File: pref-ami.prf
#
-# CVS: Last edit by $Author$ on $Date$
# File: pref-gcu.prf
#
-# CVS: Last edit by $Author$ on $Date$
# File: pref-mac.prf
#
X:munchkin_death
-##### nanka #####
-Y:display_pick
-X:display_nopick
-X:display_destroy
+##### Easy auto-destroyer #####
X:destroy_items
Y:leave_worth
X:leave_equip
-# CVS: Last edit by $Author$ on $Date$
# File: pref-ibm.prf
#
-# CVS: Last edit by $Author$ on $Date$
# File: pref-x11.prf
#
-# CVS: Last edit by $Author$ on $Date$
# Color redefinitions
-# CVS: Last edit by $Author$ on $Date$
# File: user.prf
#
-# CVS: Last edit by $Author$ on $Date$
# File: xtra-gcu.prf
# Rename this file to "pref-gcu.prf" to allow the VT100 cursor keys
-# CVS: Last edit by $Author$ on $Date$
# File: xtra-new.prf
#
-# CVS: Last edit by $Author$ on $Date$
# File: xtra-xxx.prf
#
##### Remap the player icon #####
?:[AND [EQU $CLASS Warrior] [EQU $RACE Human] ]
-R:0:0x8C/0x80
+R:0:0xA4/0x80
?:[AND [EQU $CLASS Warrior] [EQU $RACE Half-Elf] ]
-R:0:0x8C/0x81
+R:0:0xA4/0x81
?:[AND [EQU $CLASS Warrior] [EQU $RACE Elf] ]
-R:0:0x8C/0x82
+R:0:0xA4/0x82
?:[AND [EQU $CLASS Warrior] [EQU $RACE Hobbit] ]
-R:0:0x8C/0x83
+R:0:0xA4/0x83
?:[AND [EQU $CLASS Warrior] [EQU $RACE Gnome] ]
-R:0:0x8C/0x84
+R:0:0xA4/0x84
?:[AND [EQU $CLASS Warrior] [EQU $RACE Dwarf] ]
-R:0:0x8C/0x85
+R:0:0xA4/0x85
?:[AND [EQU $CLASS Warrior] [EQU $RACE Half-Orc] ]
-R:0:0x8C/0x86
+R:0:0xA4/0x86
?:[AND [EQU $CLASS Warrior] [EQU $RACE Half-Troll] ]
-R:0:0x8C/0x87
-?:[AND [EQU $CLASS Warrior] [EQU $RACE Dunadan] ]
-R:0:0x8C/0x88
+R:0:0xA4/0x87
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Amberite] ]
+R:0:0xA4/0x88
?:[AND [EQU $CLASS Warrior] [EQU $RACE High-Elf] ]
-R:0:0x8C/0x89
-
+R:0:0xA4/0x89
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Barbarian] ]
+R:0:0xA4/0x8A
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Half-Ogre] ]
+R:0:0xA4/0x8B
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Half-Giant] ]
+R:0:0xA4/0x8C
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Half-Titan] ]
+R:0:0xA4/0x8D
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Cyclops] ]
+R:0:0xA4/0x8E
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Yeek] ]
+R:0:0xA4/0x8F
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Klackon] ]
+R:0:0xA4/0x90
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Kobold] ]
+R:0:0xA4/0x91
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Nibelung] ]
+R:0:0xA4/0x92
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Dark-Elf] ]
+R:0:0xA4/0x93
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Draconian] ]
+R:0:0xA4/0x94
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Mindflayer] ]
+R:0:0xA4/0x95
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Imp] ]
+R:0:0xA4/0x96
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Golem] ]
+R:0:0xA4/0x97
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Skeleton] ]
+R:0:0xA4/0x98
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Zombie] ]
+R:0:0xA4/0x99
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Vampire] ]
+R:0:0xA4/0x9A
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Spectre] ]
+R:0:0xA4/0x9B
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Sprite] ]
+R:0:0xA4/0x9C
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Beastman] ]
+R:0:0xA4/0x9D
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Ent] ]
+R:0:0xA4/0x97
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Archon] ]
+R:0:0xA4/0x9C
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Balrog] ]
+R:0:0xA4/0x96
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Dunadan] ]
+R:0:0xA4/0x81
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Shadow-Fairy] ]
+R:0:0xA4/0x86
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Kuta] ]
+R:0:0xA4/0x91
+?:[AND [EQU $CLASS Warrior] [EQU $RACE Android] ]
+R:0:0xA4/0x97
?:[AND [EQU $CLASS Mage] [EQU $RACE Human] ]
-R:0:0x8C/0x8A
+R:0:0xA5/0x80
?:[AND [EQU $CLASS Mage] [EQU $RACE Half-Elf] ]
-R:0:0x8C/0x8B
+R:0:0xA5/0x81
?:[AND [EQU $CLASS Mage] [EQU $RACE Elf] ]
-R:0:0x8C/0x8C
+R:0:0xA5/0x82
?:[AND [EQU $CLASS Mage] [EQU $RACE Hobbit] ]
-R:0:0x8C/0x8D
+R:0:0xA5/0x83
?:[AND [EQU $CLASS Mage] [EQU $RACE Gnome] ]
-R:0:0x8C/0x8E
+R:0:0xA5/0x84
?:[AND [EQU $CLASS Mage] [EQU $RACE Dwarf] ]
-R:0:0x8C/0x8F
+R:0:0xA5/0x85
?:[AND [EQU $CLASS Mage] [EQU $RACE Half-Orc] ]
-R:0:0x8C/0x90
+R:0:0xA5/0x86
?:[AND [EQU $CLASS Mage] [EQU $RACE Half-Troll] ]
-R:0:0x8C/0x91
-?:[AND [EQU $CLASS Mage] [EQU $RACE Dunadan] ]
-R:0:0x8C/0x92
+R:0:0xA5/0x87
+?:[AND [EQU $CLASS Mage] [EQU $RACE Amberite] ]
+R:0:0xA5/0x88
?:[AND [EQU $CLASS Mage] [EQU $RACE High-Elf] ]
-R:0:0x8C/0x93
-
+R:0:0xA5/0x89
+?:[AND [EQU $CLASS Mage] [EQU $RACE Barbarian] ]
+R:0:0xA5/0x8A
+?:[AND [EQU $CLASS Mage] [EQU $RACE Half-Ogre] ]
+R:0:0xA5/0x8B
+?:[AND [EQU $CLASS Mage] [EQU $RACE Half-Giant] ]
+R:0:0xA5/0x8C
+?:[AND [EQU $CLASS Mage] [EQU $RACE Half-Titan] ]
+R:0:0xA5/0x8D
+?:[AND [EQU $CLASS Mage] [EQU $RACE Cyclops] ]
+R:0:0xA5/0x8E
+?:[AND [EQU $CLASS Mage] [EQU $RACE Yeek] ]
+R:0:0xA5/0x8F
+?:[AND [EQU $CLASS Mage] [EQU $RACE Klackon] ]
+R:0:0xA5/0x90
+?:[AND [EQU $CLASS Mage] [EQU $RACE Kobold] ]
+R:0:0xA5/0x91
+?:[AND [EQU $CLASS Mage] [EQU $RACE Nibelung] ]
+R:0:0xA5/0x92
+?:[AND [EQU $CLASS Mage] [EQU $RACE Dark-Elf] ]
+R:0:0xA5/0x93
+?:[AND [EQU $CLASS Mage] [EQU $RACE Draconian] ]
+R:0:0xA5/0x94
+?:[AND [EQU $CLASS Mage] [EQU $RACE Mindflayer] ]
+R:0:0xA5/0x95
+?:[AND [EQU $CLASS Mage] [EQU $RACE Imp] ]
+R:0:0xA5/0x96
+?:[AND [EQU $CLASS Mage] [EQU $RACE Golem] ]
+R:0:0xA5/0x97
+?:[AND [EQU $CLASS Mage] [EQU $RACE Skeleton] ]
+R:0:0xA5/0x98
+?:[AND [EQU $CLASS Mage] [EQU $RACE Zombie] ]
+R:0:0xA5/0x99
+?:[AND [EQU $CLASS Mage] [EQU $RACE Vampire] ]
+R:0:0xA5/0x9A
+?:[AND [EQU $CLASS Mage] [EQU $RACE Spectre] ]
+R:0:0xA5/0x9B
+?:[AND [EQU $CLASS Mage] [EQU $RACE Sprite] ]
+R:0:0xA5/0x9C
+?:[AND [EQU $CLASS Mage] [EQU $RACE Beastman] ]
+R:0:0xA5/0x9D
+?:[AND [EQU $CLASS Mage] [EQU $RACE Ent] ]
+R:0:0xA5/0x97
+?:[AND [EQU $CLASS Mage] [EQU $RACE Archon] ]
+R:0:0xA5/0x9C
+?:[AND [EQU $CLASS Mage] [EQU $RACE Balrog] ]
+R:0:0xA5/0x96
+?:[AND [EQU $CLASS Mage] [EQU $RACE Dunadan] ]
+R:0:0xA5/0x81
+?:[AND [EQU $CLASS Mage] [EQU $RACE Shadow-Fairy] ]
+R:0:0xA5/0x86
+?:[AND [EQU $CLASS Mage] [EQU $RACE Kuta] ]
+R:0:0xA5/0x91
+?:[AND [EQU $CLASS Mage] [EQU $RACE Android] ]
+R:0:0xA5/0x97
?:[AND [EQU $CLASS Priest] [EQU $RACE Human] ]
-R:0:0x8C/0x94
+R:0:0xA6/0x80
?:[AND [EQU $CLASS Priest] [EQU $RACE Half-Elf] ]
-R:0:0x8C/0x95
+R:0:0xA6/0x81
?:[AND [EQU $CLASS Priest] [EQU $RACE Elf] ]
-R:0:0x8C/0x96
+R:0:0xA6/0x82
?:[AND [EQU $CLASS Priest] [EQU $RACE Hobbit] ]
-R:0:0x8C/0x97
+R:0:0xA6/0x83
?:[AND [EQU $CLASS Priest] [EQU $RACE Gnome] ]
-R:0:0x8C/0x98
+R:0:0xA6/0x84
?:[AND [EQU $CLASS Priest] [EQU $RACE Dwarf] ]
-R:0:0x8C/0x99
+R:0:0xA6/0x85
?:[AND [EQU $CLASS Priest] [EQU $RACE Half-Orc] ]
-R:0:0x8C/0x9A
+R:0:0xA6/0x86
?:[AND [EQU $CLASS Priest] [EQU $RACE Half-Troll] ]
-R:0:0x8C/0x9B
-?:[AND [EQU $CLASS Priest] [EQU $RACE Dunadan] ]
-R:0:0x8C/0x9C
+R:0:0xA6/0x87
+?:[AND [EQU $CLASS Priest] [EQU $RACE Amberite] ]
+R:0:0xA6/0x88
?:[AND [EQU $CLASS Priest] [EQU $RACE High-Elf] ]
-R:0:0x8C/0x9D
-
+R:0:0xA6/0x89
+?:[AND [EQU $CLASS Priest] [EQU $RACE Barbarian] ]
+R:0:0xA6/0x8A
+?:[AND [EQU $CLASS Priest] [EQU $RACE Half-Ogre] ]
+R:0:0xA6/0x8B
+?:[AND [EQU $CLASS Priest] [EQU $RACE Half-Giant] ]
+R:0:0xA6/0x8C
+?:[AND [EQU $CLASS Priest] [EQU $RACE Half-Titan] ]
+R:0:0xA6/0x8D
+?:[AND [EQU $CLASS Priest] [EQU $RACE Cyclops] ]
+R:0:0xA6/0x8E
+?:[AND [EQU $CLASS Priest] [EQU $RACE Yeek] ]
+R:0:0xA6/0x8F
+?:[AND [EQU $CLASS Priest] [EQU $RACE Klackon] ]
+R:0:0xA6/0x90
+?:[AND [EQU $CLASS Priest] [EQU $RACE Kobold] ]
+R:0:0xA6/0x91
+?:[AND [EQU $CLASS Priest] [EQU $RACE Nibelung] ]
+R:0:0xA6/0x92
+?:[AND [EQU $CLASS Priest] [EQU $RACE Dark-Elf] ]
+R:0:0xA6/0x93
+?:[AND [EQU $CLASS Priest] [EQU $RACE Draconian] ]
+R:0:0xA6/0x94
+?:[AND [EQU $CLASS Priest] [EQU $RACE Mindflayer] ]
+R:0:0xA6/0x95
+?:[AND [EQU $CLASS Priest] [EQU $RACE Imp] ]
+R:0:0xA6/0x96
+?:[AND [EQU $CLASS Priest] [EQU $RACE Golem] ]
+R:0:0xA6/0x97
+?:[AND [EQU $CLASS Priest] [EQU $RACE Skeleton] ]
+R:0:0xA6/0x98
+?:[AND [EQU $CLASS Priest] [EQU $RACE Zombie] ]
+R:0:0xA6/0x99
+?:[AND [EQU $CLASS Priest] [EQU $RACE Vampire] ]
+R:0:0xA6/0x9A
+?:[AND [EQU $CLASS Priest] [EQU $RACE Spectre] ]
+R:0:0xA6/0x9B
+?:[AND [EQU $CLASS Priest] [EQU $RACE Sprite] ]
+R:0:0xA6/0x9C
+?:[AND [EQU $CLASS Priest] [EQU $RACE Beastman] ]
+R:0:0xA6/0x9D
+?:[AND [EQU $CLASS Priest] [EQU $RACE Ent] ]
+R:0:0xA6/0x97
+?:[AND [EQU $CLASS Priest] [EQU $RACE Archon] ]
+R:0:0xA6/0x9C
+?:[AND [EQU $CLASS Priest] [EQU $RACE Balrog] ]
+R:0:0xA6/0x96
+?:[AND [EQU $CLASS Priest] [EQU $RACE Dunadan] ]
+R:0:0xA6/0x81
+?:[AND [EQU $CLASS Priest] [EQU $RACE Shadow-Fairy] ]
+R:0:0xA6/0x86
+?:[AND [EQU $CLASS Priest] [EQU $RACE Kuta] ]
+R:0:0xA6/0x91
+?:[AND [EQU $CLASS Priest] [EQU $RACE Android] ]
+R:0:0xA6/0x97
?:[AND [EQU $CLASS Rogue] [EQU $RACE Human] ]
-R:0:0x8C/0x9E
+R:0:0xA7/0x80
?:[AND [EQU $CLASS Rogue] [EQU $RACE Half-Elf] ]
-R:0:0x8C/0x9F
+R:0:0xA7/0x81
?:[AND [EQU $CLASS Rogue] [EQU $RACE Elf] ]
-R:0:0x8D/0x80
+R:0:0xA7/0x82
?:[AND [EQU $CLASS Rogue] [EQU $RACE Hobbit] ]
-R:0:0x8D/0x81
+R:0:0xA7/0x83
?:[AND [EQU $CLASS Rogue] [EQU $RACE Gnome] ]
-R:0:0x8D/0x82
+R:0:0xA7/0x84
?:[AND [EQU $CLASS Rogue] [EQU $RACE Dwarf] ]
-R:0:0x8D/0x83
+R:0:0xA7/0x85
?:[AND [EQU $CLASS Rogue] [EQU $RACE Half-Orc] ]
-R:0:0x8D/0x84
+R:0:0xA7/0x86
?:[AND [EQU $CLASS Rogue] [EQU $RACE Half-Troll] ]
-R:0:0x8D/0x85
-?:[AND [EQU $CLASS Rogue] [EQU $RACE Dunadan] ]
-R:0:0x8D/0x86
+R:0:0xA7/0x87
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Amberite] ]
+R:0:0xA7/0x88
?:[AND [EQU $CLASS Rogue] [EQU $RACE High-Elf] ]
-R:0:0x8D/0x87
-
+R:0:0xA7/0x89
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Barbarian] ]
+R:0:0xA7/0x8A
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Half-Ogre] ]
+R:0:0xA7/0x8B
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Half-Giant] ]
+R:0:0xA7/0x8C
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Half-Titan] ]
+R:0:0xA7/0x8D
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Cyclops] ]
+R:0:0xA7/0x8E
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Yeek] ]
+R:0:0xA7/0x8F
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Klackon] ]
+R:0:0xA7/0x90
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Kobold] ]
+R:0:0xA7/0x91
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Nibelung] ]
+R:0:0xA7/0x92
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Dark-Elf] ]
+R:0:0xA7/0x93
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Draconian] ]
+R:0:0xA7/0x94
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Mindflayer] ]
+R:0:0xA7/0x95
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Imp] ]
+R:0:0xA7/0x96
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Golem] ]
+R:0:0xA7/0x97
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Skeleton] ]
+R:0:0xA7/0x98
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Zombie] ]
+R:0:0xA7/0x99
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Vampire] ]
+R:0:0xA7/0x9A
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Spectre] ]
+R:0:0xA7/0x9B
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Sprite] ]
+R:0:0xA7/0x9C
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Beastman] ]
+R:0:0xA7/0x9D
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Ent] ]
+R:0:0xA7/0x97
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Archon] ]
+R:0:0xA7/0x9C
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Balrog] ]
+R:0:0xA7/0x96
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Dunadan] ]
+R:0:0xA7/0x81
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Shadow-Fairy] ]
+R:0:0xA7/0x86
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Kuta] ]
+R:0:0xA7/0x91
+?:[AND [EQU $CLASS Rogue] [EQU $RACE Android] ]
+R:0:0xA7/0x97
?:[AND [EQU $CLASS Ranger] [EQU $RACE Human] ]
-R:0:0x8D/0x88
+R:0:0xA8/0x80
?:[AND [EQU $CLASS Ranger] [EQU $RACE Half-Elf] ]
-R:0:0x8D/0x89
+R:0:0xA8/0x81
?:[AND [EQU $CLASS Ranger] [EQU $RACE Elf] ]
-R:0:0x8D/0x8A
+R:0:0xA8/0x82
?:[AND [EQU $CLASS Ranger] [EQU $RACE Hobbit] ]
-R:0:0x8D/0x8B
+R:0:0xA8/0x83
?:[AND [EQU $CLASS Ranger] [EQU $RACE Gnome] ]
-R:0:0x8D/0x8C
+R:0:0xA8/0x84
?:[AND [EQU $CLASS Ranger] [EQU $RACE Dwarf] ]
-R:0:0x8D/0x8D
+R:0:0xA8/0x85
?:[AND [EQU $CLASS Ranger] [EQU $RACE Half-Orc] ]
-R:0:0x8D/0x8E
+R:0:0xA8/0x86
?:[AND [EQU $CLASS Ranger] [EQU $RACE Half-Troll] ]
-R:0:0x8D/0x8F
-?:[AND [EQU $CLASS Ranger] [EQU $RACE Dunadan] ]
-R:0:0x8D/0x90
+R:0:0xA8/0x87
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Amberite] ]
+R:0:0xA8/0x88
?:[AND [EQU $CLASS Ranger] [EQU $RACE High-Elf] ]
-R:0:0x8D/0x91
-
+R:0:0xA8/0x89
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Barbarian] ]
+R:0:0xA8/0x8A
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Half-Ogre] ]
+R:0:0xA8/0x8B
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Half-Giant] ]
+R:0:0xA8/0x8C
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Half-Titan] ]
+R:0:0xA8/0x8D
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Cyclops] ]
+R:0:0xA8/0x8E
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Yeek] ]
+R:0:0xA8/0x8F
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Klackon] ]
+R:0:0xA8/0x90
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Kobold] ]
+R:0:0xA8/0x91
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Nibelung] ]
+R:0:0xA8/0x92
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Dark-Elf] ]
+R:0:0xA8/0x93
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Draconian] ]
+R:0:0xA8/0x94
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Mindflayer] ]
+R:0:0xA8/0x95
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Imp] ]
+R:0:0xA8/0x96
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Golem] ]
+R:0:0xA8/0x97
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Skeleton] ]
+R:0:0xA8/0x98
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Zombie] ]
+R:0:0xA8/0x99
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Vampire] ]
+R:0:0xA8/0x9A
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Spectre] ]
+R:0:0xA8/0x9B
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Sprite] ]
+R:0:0xA8/0x9C
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Beastman] ]
+R:0:0xA8/0x9D
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Ent] ]
+R:0:0xA8/0x97
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Archon] ]
+R:0:0xA8/0x9C
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Balrog] ]
+R:0:0xA8/0x96
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Dunadan] ]
+R:0:0xA8/0x81
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Shadow-Fairy] ]
+R:0:0xA8/0x86
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Kuta] ]
+R:0:0xA8/0x91
+?:[AND [EQU $CLASS Ranger] [EQU $RACE Android] ]
+R:0:0xA8/0x97
?:[AND [EQU $CLASS Paladin] [EQU $RACE Human] ]
-R:0:0x8D/0x92
+R:0:0xA9/0x80
?:[AND [EQU $CLASS Paladin] [EQU $RACE Half-Elf] ]
-R:0:0x8D/0x93
+R:0:0xA9/0x81
?:[AND [EQU $CLASS Paladin] [EQU $RACE Elf] ]
-R:0:0x8D/0x94
+R:0:0xA9/0x82
?:[AND [EQU $CLASS Paladin] [EQU $RACE Hobbit] ]
-R:0:0x8D/0x95
+R:0:0xA9/0x83
?:[AND [EQU $CLASS Paladin] [EQU $RACE Gnome] ]
-R:0:0x8D/0x96
+R:0:0xA9/0x84
?:[AND [EQU $CLASS Paladin] [EQU $RACE Dwarf] ]
-R:0:0x8D/0x97
+R:0:0xA9/0x85
?:[AND [EQU $CLASS Paladin] [EQU $RACE Half-Orc] ]
-R:0:0x8D/0x98
+R:0:0xA9/0x86
?:[AND [EQU $CLASS Paladin] [EQU $RACE Half-Troll] ]
-R:0:0x8D/0x99
-?:[AND [EQU $CLASS Paladin] [EQU $RACE Dunadan] ]
-R:0:0x8D/0x9A
+R:0:0xA9/0x87
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Amberite] ]
+R:0:0xA9/0x88
?:[AND [EQU $CLASS Paladin] [EQU $RACE High-Elf] ]
-R:0:0x8D/0x9B
+R:0:0xA9/0x89
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Barbarian] ]
+R:0:0xA9/0x8A
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Half-Ogre] ]
+R:0:0xA9/0x8B
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Half-Giant] ]
+R:0:0xA9/0x8C
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Half-Titan] ]
+R:0:0xA9/0x8D
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Cyclops] ]
+R:0:0xA9/0x8E
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Yeek] ]
+R:0:0xA9/0x8F
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Klackon] ]
+R:0:0xA9/0x90
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Kobold] ]
+R:0:0xA9/0x91
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Nibelung] ]
+R:0:0xA9/0x92
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Dark-Elf] ]
+R:0:0xA9/0x93
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Draconian] ]
+R:0:0xA9/0x94
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Mindflayer] ]
+R:0:0xA9/0x95
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Imp] ]
+R:0:0xA9/0x96
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Golem] ]
+R:0:0xA9/0x97
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Skeleton] ]
+R:0:0xA9/0x98
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Zombie] ]
+R:0:0xA9/0x99
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Vampire] ]
+R:0:0xA9/0x9A
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Spectre] ]
+R:0:0xA9/0x9B
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Sprite] ]
+R:0:0xA9/0x9C
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Beastman] ]
+R:0:0xA9/0x9D
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Ent] ]
+R:0:0xA9/0x97
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Archon] ]
+R:0:0xA9/0x9C
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Balrog] ]
+R:0:0xA9/0x96
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Dunadan] ]
+R:0:0xA9/0x81
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Shadow-Fairy] ]
+R:0:0xA9/0x86
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Kuta] ]
+R:0:0xA9/0x91
+?:[AND [EQU $CLASS Paladin] [EQU $RACE Android] ]
+R:0:0xA9/0x97
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Human] ]
+R:0:0xAA/0x80
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Half-Elf] ]
+R:0:0xAA/0x81
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Elf] ]
+R:0:0xAA/0x82
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Hobbit] ]
+R:0:0xAA/0x83
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Gnome] ]
+R:0:0xAA/0x84
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Dwarf] ]
+R:0:0xAA/0x85
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Half-Orc] ]
+R:0:0xAA/0x86
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Half-Troll] ]
+R:0:0xAA/0x87
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Amberite] ]
+R:0:0xAA/0x88
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE High-Elf] ]
+R:0:0xAA/0x89
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Barbarian] ]
+R:0:0xAA/0x8A
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Half-Ogre] ]
+R:0:0xAA/0x8B
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Half-Giant] ]
+R:0:0xAA/0x8C
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Half-Titan] ]
+R:0:0xAA/0x8D
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Cyclops] ]
+R:0:0xAA/0x8E
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Yeek] ]
+R:0:0xAA/0x8F
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Klackon] ]
+R:0:0xAA/0x90
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Kobold] ]
+R:0:0xAA/0x91
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Nibelung] ]
+R:0:0xAA/0x92
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Dark-Elf] ]
+R:0:0xAA/0x93
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Draconian] ]
+R:0:0xAA/0x94
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Mindflayer] ]
+R:0:0xAA/0x95
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Imp] ]
+R:0:0xAA/0x96
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Golem] ]
+R:0:0xAA/0x97
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Skeleton] ]
+R:0:0xAA/0x98
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Zombie] ]
+R:0:0xAA/0x99
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Vampire] ]
+R:0:0xAA/0x9A
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Spectre] ]
+R:0:0xAA/0x9B
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Sprite] ]
+R:0:0xAA/0x9C
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Beastman] ]
+R:0:0xAA/0x9D
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Ent] ]
+R:0:0xAA/0x97
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Archon] ]
+R:0:0xAA/0x9C
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Balrog] ]
+R:0:0xAA/0x96
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Dunadan] ]
+R:0:0xAA/0x81
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAA/0x86
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Kuta] ]
+R:0:0xAA/0x91
+?:[AND [EQU $CLASS Warrior-Mage] [EQU $RACE Android] ]
+R:0:0xAA/0x97
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Human] ]
+R:0:0xAB/0x80
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Half-Elf] ]
+R:0:0xAB/0x81
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Elf] ]
+R:0:0xAB/0x82
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Hobbit] ]
+R:0:0xAB/0x83
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Gnome] ]
+R:0:0xAB/0x84
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Dwarf] ]
+R:0:0xAB/0x85
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Half-Orc] ]
+R:0:0xAB/0x86
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Half-Troll] ]
+R:0:0xAB/0x87
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Amberite] ]
+R:0:0xAB/0x88
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE High-Elf] ]
+R:0:0xAB/0x89
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Barbarian] ]
+R:0:0xAB/0x8A
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Half-Ogre] ]
+R:0:0xAB/0x8B
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Half-Giant] ]
+R:0:0xAB/0x8C
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Half-Titan] ]
+R:0:0xAB/0x8D
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Cyclops] ]
+R:0:0xAB/0x8E
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Yeek] ]
+R:0:0xAB/0x8F
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Klackon] ]
+R:0:0xAB/0x90
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Kobold] ]
+R:0:0xAB/0x91
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Nibelung] ]
+R:0:0xAB/0x92
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Dark-Elf] ]
+R:0:0xAB/0x93
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Draconian] ]
+R:0:0xAB/0x94
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Mindflayer] ]
+R:0:0xAB/0x95
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Imp] ]
+R:0:0xAB/0x96
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Golem] ]
+R:0:0xAB/0x97
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Skeleton] ]
+R:0:0xAB/0x98
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Zombie] ]
+R:0:0xAB/0x99
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Vampire] ]
+R:0:0xAB/0x9A
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Spectre] ]
+R:0:0xAB/0x9B
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Sprite] ]
+R:0:0xAB/0x9C
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Beastman] ]
+R:0:0xAB/0x9D
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Ent] ]
+R:0:0xAB/0x97
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Archon] ]
+R:0:0xAB/0x9C
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Balrog] ]
+R:0:0xAB/0x96
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Dunadan] ]
+R:0:0xAB/0x81
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAB/0x86
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Kuta] ]
+R:0:0xAB/0x91
+?:[AND [EQU $CLASS Chaos-Warrior] [EQU $RACE Android] ]
+R:0:0xAB/0x97
+?:[AND [EQU $CLASS Monk] [EQU $RACE Human] ]
+R:0:0xAC/0x80
+?:[AND [EQU $CLASS Monk] [EQU $RACE Half-Elf] ]
+R:0:0xAC/0x81
+?:[AND [EQU $CLASS Monk] [EQU $RACE Elf] ]
+R:0:0xAC/0x82
+?:[AND [EQU $CLASS Monk] [EQU $RACE Hobbit] ]
+R:0:0xAC/0x83
+?:[AND [EQU $CLASS Monk] [EQU $RACE Gnome] ]
+R:0:0xAC/0x84
+?:[AND [EQU $CLASS Monk] [EQU $RACE Dwarf] ]
+R:0:0xAC/0x85
+?:[AND [EQU $CLASS Monk] [EQU $RACE Half-Orc] ]
+R:0:0xAC/0x86
+?:[AND [EQU $CLASS Monk] [EQU $RACE Half-Troll] ]
+R:0:0xAC/0x87
+?:[AND [EQU $CLASS Monk] [EQU $RACE Amberite] ]
+R:0:0xAC/0x88
+?:[AND [EQU $CLASS Monk] [EQU $RACE High-Elf] ]
+R:0:0xAC/0x89
+?:[AND [EQU $CLASS Monk] [EQU $RACE Barbarian] ]
+R:0:0xAC/0x8A
+?:[AND [EQU $CLASS Monk] [EQU $RACE Half-Ogre] ]
+R:0:0xAC/0x8B
+?:[AND [EQU $CLASS Monk] [EQU $RACE Half-Giant] ]
+R:0:0xAC/0x8C
+?:[AND [EQU $CLASS Monk] [EQU $RACE Half-Titan] ]
+R:0:0xAC/0x8D
+?:[AND [EQU $CLASS Monk] [EQU $RACE Cyclops] ]
+R:0:0xAC/0x8E
+?:[AND [EQU $CLASS Monk] [EQU $RACE Yeek] ]
+R:0:0xAC/0x8F
+?:[AND [EQU $CLASS Monk] [EQU $RACE Klackon] ]
+R:0:0xAC/0x90
+?:[AND [EQU $CLASS Monk] [EQU $RACE Kobold] ]
+R:0:0xAC/0x91
+?:[AND [EQU $CLASS Monk] [EQU $RACE Nibelung] ]
+R:0:0xAC/0x92
+?:[AND [EQU $CLASS Monk] [EQU $RACE Dark-Elf] ]
+R:0:0xAC/0x93
+?:[AND [EQU $CLASS Monk] [EQU $RACE Draconian] ]
+R:0:0xAC/0x94
+?:[AND [EQU $CLASS Monk] [EQU $RACE Mindflayer] ]
+R:0:0xAC/0x95
+?:[AND [EQU $CLASS Monk] [EQU $RACE Imp] ]
+R:0:0xAC/0x96
+?:[AND [EQU $CLASS Monk] [EQU $RACE Golem] ]
+R:0:0xAC/0x97
+?:[AND [EQU $CLASS Monk] [EQU $RACE Skeleton] ]
+R:0:0xAC/0x98
+?:[AND [EQU $CLASS Monk] [EQU $RACE Zombie] ]
+R:0:0xAC/0x99
+?:[AND [EQU $CLASS Monk] [EQU $RACE Vampire] ]
+R:0:0xAC/0x9A
+?:[AND [EQU $CLASS Monk] [EQU $RACE Spectre] ]
+R:0:0xAC/0x9B
+?:[AND [EQU $CLASS Monk] [EQU $RACE Sprite] ]
+R:0:0xAC/0x9C
+?:[AND [EQU $CLASS Monk] [EQU $RACE Beastman] ]
+R:0:0xAC/0x9D
+?:[AND [EQU $CLASS Monk] [EQU $RACE Ent] ]
+R:0:0xAC/0x97
+?:[AND [EQU $CLASS Monk] [EQU $RACE Archon] ]
+R:0:0xAC/0x9C
+?:[AND [EQU $CLASS Monk] [EQU $RACE Balrog] ]
+R:0:0xAC/0x96
+?:[AND [EQU $CLASS Monk] [EQU $RACE Dunadan] ]
+R:0:0xAC/0x81
+?:[AND [EQU $CLASS Monk] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAC/0x86
+?:[AND [EQU $CLASS Monk] [EQU $RACE Kuta] ]
+R:0:0xAC/0x91
+?:[AND [EQU $CLASS Monk] [EQU $RACE Android] ]
+R:0:0xAC/0x97
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Human] ]
+R:0:0xAD/0x80
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Half-Elf] ]
+R:0:0xAD/0x81
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Elf] ]
+R:0:0xAD/0x82
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Hobbit] ]
+R:0:0xAD/0x83
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Gnome] ]
+R:0:0xAD/0x84
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Dwarf] ]
+R:0:0xAD/0x85
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Half-Orc] ]
+R:0:0xAD/0x86
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Half-Troll] ]
+R:0:0xAD/0x87
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Amberite] ]
+R:0:0xAD/0x88
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE High-Elf] ]
+R:0:0xAD/0x89
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Barbarian] ]
+R:0:0xAD/0x8A
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Half-Ogre] ]
+R:0:0xAD/0x8B
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Half-Giant] ]
+R:0:0xAD/0x8C
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Half-Titan] ]
+R:0:0xAD/0x8D
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Cyclops] ]
+R:0:0xAD/0x8E
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Yeek] ]
+R:0:0xAD/0x8F
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Klackon] ]
+R:0:0xAD/0x90
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Kobold] ]
+R:0:0xAD/0x91
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Nibelung] ]
+R:0:0xAD/0x92
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Dark-Elf] ]
+R:0:0xAD/0x93
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Draconian] ]
+R:0:0xAD/0x94
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Mindflayer] ]
+R:0:0xAD/0x95
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Imp] ]
+R:0:0xAD/0x96
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Golem] ]
+R:0:0xAD/0x97
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Skeleton] ]
+R:0:0xAD/0x98
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Zombie] ]
+R:0:0xAD/0x99
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Vampire] ]
+R:0:0xAD/0x9A
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Spectre] ]
+R:0:0xAD/0x9B
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Sprite] ]
+R:0:0xAD/0x9C
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Beastman] ]
+R:0:0xAD/0x9D
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Ent] ]
+R:0:0xAD/0x97
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Archon] ]
+R:0:0xAD/0x9C
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Balrog] ]
+R:0:0xAD/0x96
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Dunadan] ]
+R:0:0xAD/0x81
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAD/0x86
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Kuta] ]
+R:0:0xAD/0x91
+?:[AND [EQU $CLASS Mindcrafter] [EQU $RACE Android] ]
+R:0:0xAD/0x97
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Human] ]
+R:0:0xAE/0x80
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Half-Elf] ]
+R:0:0xAE/0x81
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Elf] ]
+R:0:0xAE/0x82
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Hobbit] ]
+R:0:0xAE/0x83
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Gnome] ]
+R:0:0xAE/0x84
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Dwarf] ]
+R:0:0xAE/0x85
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Half-Orc] ]
+R:0:0xAE/0x86
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Half-Troll] ]
+R:0:0xAE/0x87
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Amberite] ]
+R:0:0xAE/0x88
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE High-Elf] ]
+R:0:0xAE/0x89
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Barbarian] ]
+R:0:0xAE/0x8A
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Half-Ogre] ]
+R:0:0xAE/0x8B
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Half-Giant] ]
+R:0:0xAE/0x8C
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Half-Titan] ]
+R:0:0xAE/0x8D
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Cyclops] ]
+R:0:0xAE/0x8E
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Yeek] ]
+R:0:0xAE/0x8F
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Klackon] ]
+R:0:0xAE/0x90
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Kobold] ]
+R:0:0xAE/0x91
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Nibelung] ]
+R:0:0xAE/0x92
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Dark-Elf] ]
+R:0:0xAE/0x93
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Draconian] ]
+R:0:0xAE/0x94
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Mindflayer] ]
+R:0:0xAE/0x95
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Imp] ]
+R:0:0xAE/0x96
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Golem] ]
+R:0:0xAE/0x97
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Skeleton] ]
+R:0:0xAE/0x98
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Zombie] ]
+R:0:0xAE/0x99
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Vampire] ]
+R:0:0xAE/0x9A
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Spectre] ]
+R:0:0xAE/0x9B
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Sprite] ]
+R:0:0xAE/0x9C
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Beastman] ]
+R:0:0xAE/0x9D
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Ent] ]
+R:0:0xAE/0x97
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Archon] ]
+R:0:0xAE/0x9C
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Balrog] ]
+R:0:0xAE/0x96
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Dunadan] ]
+R:0:0xAE/0x81
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAE/0x86
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Kuta] ]
+R:0:0xAE/0x91
+?:[AND [EQU $CLASS High-Mage] [EQU $RACE Android] ]
+R:0:0xAE/0x97
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Human] ]
+R:0:0xAC/0x80
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Half-Elf] ]
+R:0:0xAC/0x81
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Elf] ]
+R:0:0xAC/0x82
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Hobbit] ]
+R:0:0xAC/0x83
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Gnome] ]
+R:0:0xAC/0x84
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Dwarf] ]
+R:0:0xAC/0x85
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Half-Orc] ]
+R:0:0xAC/0x86
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Half-Troll] ]
+R:0:0xAC/0x87
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Amberite] ]
+R:0:0xAC/0x88
+?:[AND [EQU $CLASS Tourist] [EQU $RACE High-Elf] ]
+R:0:0xAC/0x89
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Barbarian] ]
+R:0:0xAC/0x8A
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Half-Ogre] ]
+R:0:0xAC/0x8B
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Half-Giant] ]
+R:0:0xAC/0x8C
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Half-Titan] ]
+R:0:0xAC/0x8D
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Cyclops] ]
+R:0:0xAC/0x8E
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Yeek] ]
+R:0:0xAC/0x8F
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Klackon] ]
+R:0:0xAC/0x90
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Kobold] ]
+R:0:0xAC/0x91
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Nibelung] ]
+R:0:0xAC/0x92
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Dark-Elf] ]
+R:0:0xAC/0x93
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Draconian] ]
+R:0:0xAC/0x94
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Mindflayer] ]
+R:0:0xAC/0x95
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Imp] ]
+R:0:0xAC/0x96
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Golem] ]
+R:0:0xAC/0x97
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Skeleton] ]
+R:0:0xAC/0x98
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Zombie] ]
+R:0:0xAC/0x99
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Vampire] ]
+R:0:0xAC/0x9A
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Spectre] ]
+R:0:0xAC/0x9B
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Sprite] ]
+R:0:0xAC/0x9C
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Beastman] ]
+R:0:0xAC/0x9D
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Ent] ]
+R:0:0xAC/0x97
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Archon] ]
+R:0:0xAC/0x9C
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Balrog] ]
+R:0:0xAC/0x96
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Dunadan] ]
+R:0:0xAC/0x81
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAC/0x86
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Kuta] ]
+R:0:0xAC/0x91
+?:[AND [EQU $CLASS Tourist] [EQU $RACE Android] ]
+R:0:0xAC/0x97
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Human] ]
+R:0:0xAC/0x80
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Half-Elf] ]
+R:0:0xAC/0x81
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Elf] ]
+R:0:0xAC/0x82
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Hobbit] ]
+R:0:0xAC/0x83
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Gnome] ]
+R:0:0xAC/0x84
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Dwarf] ]
+R:0:0xAC/0x85
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Half-Orc] ]
+R:0:0xAC/0x86
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Half-Troll] ]
+R:0:0xAC/0x87
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Amberite] ]
+R:0:0xAC/0x88
+?:[AND [EQU $CLASS Imitator] [EQU $RACE High-Elf] ]
+R:0:0xAC/0x89
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Barbarian] ]
+R:0:0xAC/0x8A
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Half-Ogre] ]
+R:0:0xAC/0x8B
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Half-Giant] ]
+R:0:0xAC/0x8C
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Half-Titan] ]
+R:0:0xAC/0x8D
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Cyclops] ]
+R:0:0xAC/0x8E
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Yeek] ]
+R:0:0xAC/0x8F
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Klackon] ]
+R:0:0xAC/0x90
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Kobold] ]
+R:0:0xAC/0x91
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Nibelung] ]
+R:0:0xAC/0x92
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Dark-Elf] ]
+R:0:0xAC/0x93
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Draconian] ]
+R:0:0xAC/0x94
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Mindflayer] ]
+R:0:0xAC/0x95
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Imp] ]
+R:0:0xAC/0x96
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Golem] ]
+R:0:0xAC/0x97
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Skeleton] ]
+R:0:0xAC/0x98
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Zombie] ]
+R:0:0xAC/0x99
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Vampire] ]
+R:0:0xAC/0x9A
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Spectre] ]
+R:0:0xAC/0x9B
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Sprite] ]
+R:0:0xAC/0x9C
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Beastman] ]
+R:0:0xAC/0x9D
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Ent] ]
+R:0:0xAC/0x97
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Archon] ]
+R:0:0xAC/0x9C
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Balrog] ]
+R:0:0xAC/0x96
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Dunadan] ]
+R:0:0xAC/0x81
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAC/0x86
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Kuta] ]
+R:0:0xAC/0x91
+?:[AND [EQU $CLASS Imitator] [EQU $RACE Android] ]
+R:0:0xAC/0x97
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Human] ]
+R:0:0xAA/0x80
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Half-Elf] ]
+R:0:0xAA/0x81
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Elf] ]
+R:0:0xAA/0x82
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Hobbit] ]
+R:0:0xAA/0x83
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Gnome] ]
+R:0:0xAA/0x84
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Dwarf] ]
+R:0:0xAA/0x85
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Half-Orc] ]
+R:0:0xAA/0x86
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Half-Troll] ]
+R:0:0xAA/0x87
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Amberite] ]
+R:0:0xAA/0x88
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE High-Elf] ]
+R:0:0xAA/0x89
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Barbarian] ]
+R:0:0xAA/0x8A
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Half-Ogre] ]
+R:0:0xAA/0x8B
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Half-Giant] ]
+R:0:0xAA/0x8C
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Half-Titan] ]
+R:0:0xAA/0x8D
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Cyclops] ]
+R:0:0xAA/0x8E
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Yeek] ]
+R:0:0xAA/0x8F
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Klackon] ]
+R:0:0xAA/0x90
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Kobold] ]
+R:0:0xAA/0x91
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Nibelung] ]
+R:0:0xAA/0x92
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Dark-Elf] ]
+R:0:0xAA/0x93
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Draconian] ]
+R:0:0xAA/0x94
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Mindflayer] ]
+R:0:0xAA/0x95
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Imp] ]
+R:0:0xAA/0x96
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Golem] ]
+R:0:0xAA/0x97
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Skeleton] ]
+R:0:0xAA/0x98
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Zombie] ]
+R:0:0xAA/0x99
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Vampire] ]
+R:0:0xAA/0x9A
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Spectre] ]
+R:0:0xAA/0x9B
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Sprite] ]
+R:0:0xAA/0x9C
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Beastman] ]
+R:0:0xAA/0x9D
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Ent] ]
+R:0:0xAA/0x97
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Archon] ]
+R:0:0xAA/0x9C
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Balrog] ]
+R:0:0xAA/0x96
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Dunadan] ]
+R:0:0xAA/0x81
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAA/0x86
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Kuta] ]
+R:0:0xAA/0x91
+?:[AND [EQU $CLASS BeastMaster] [EQU $RACE Android] ]
+R:0:0xAA/0x97
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Human] ]
+R:0:0xA5/0x80
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Half-Elf] ]
+R:0:0xA5/0x81
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Elf] ]
+R:0:0xA5/0x82
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Hobbit] ]
+R:0:0xA5/0x83
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Gnome] ]
+R:0:0xA5/0x84
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Dwarf] ]
+R:0:0xA5/0x85
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Half-Orc] ]
+R:0:0xA5/0x86
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Half-Troll] ]
+R:0:0xA5/0x87
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Amberite] ]
+R:0:0xA5/0x88
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE High-Elf] ]
+R:0:0xA5/0x89
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Barbarian] ]
+R:0:0xA5/0x8A
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Half-Ogre] ]
+R:0:0xA5/0x8B
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Half-Giant] ]
+R:0:0xA5/0x8C
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Half-Titan] ]
+R:0:0xA5/0x8D
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Cyclops] ]
+R:0:0xA5/0x8E
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Yeek] ]
+R:0:0xA5/0x8F
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Klackon] ]
+R:0:0xA5/0x90
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Kobold] ]
+R:0:0xA5/0x91
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Nibelung] ]
+R:0:0xA5/0x92
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Dark-Elf] ]
+R:0:0xA5/0x93
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Draconian] ]
+R:0:0xA5/0x94
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Mindflayer] ]
+R:0:0xA5/0x95
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Imp] ]
+R:0:0xA5/0x96
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Golem] ]
+R:0:0xA5/0x97
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Skeleton] ]
+R:0:0xA5/0x98
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Zombie] ]
+R:0:0xA5/0x99
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Vampire] ]
+R:0:0xA5/0x9A
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Spectre] ]
+R:0:0xA5/0x9B
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Sprite] ]
+R:0:0xA5/0x9C
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Beastman] ]
+R:0:0xA5/0x9D
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Ent] ]
+R:0:0xA5/0x97
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Archon] ]
+R:0:0xA5/0x9C
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Balrog] ]
+R:0:0xA5/0x96
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Dunadan] ]
+R:0:0xA5/0x81
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Shadow-Fairy] ]
+R:0:0xA5/0x86
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Kuta] ]
+R:0:0xA5/0x91
+?:[AND [EQU $CLASS Sorcerer] [EQU $RACE Android] ]
+R:0:0xA5/0x97
+?:[AND [EQU $CLASS Archer] [EQU $RACE Human] ]
+R:0:0xA8/0x80
+?:[AND [EQU $CLASS Archer] [EQU $RACE Half-Elf] ]
+R:0:0xA8/0x81
+?:[AND [EQU $CLASS Archer] [EQU $RACE Elf] ]
+R:0:0xA8/0x82
+?:[AND [EQU $CLASS Archer] [EQU $RACE Hobbit] ]
+R:0:0xA8/0x83
+?:[AND [EQU $CLASS Archer] [EQU $RACE Gnome] ]
+R:0:0xA8/0x84
+?:[AND [EQU $CLASS Archer] [EQU $RACE Dwarf] ]
+R:0:0xA8/0x85
+?:[AND [EQU $CLASS Archer] [EQU $RACE Half-Orc] ]
+R:0:0xA8/0x86
+?:[AND [EQU $CLASS Archer] [EQU $RACE Half-Troll] ]
+R:0:0xA8/0x87
+?:[AND [EQU $CLASS Archer] [EQU $RACE Amberite] ]
+R:0:0xA8/0x88
+?:[AND [EQU $CLASS Archer] [EQU $RACE High-Elf] ]
+R:0:0xA8/0x89
+?:[AND [EQU $CLASS Archer] [EQU $RACE Barbarian] ]
+R:0:0xA8/0x8A
+?:[AND [EQU $CLASS Archer] [EQU $RACE Half-Ogre] ]
+R:0:0xA8/0x8B
+?:[AND [EQU $CLASS Archer] [EQU $RACE Half-Giant] ]
+R:0:0xA8/0x8C
+?:[AND [EQU $CLASS Archer] [EQU $RACE Half-Titan] ]
+R:0:0xA8/0x8D
+?:[AND [EQU $CLASS Archer] [EQU $RACE Cyclops] ]
+R:0:0xA8/0x8E
+?:[AND [EQU $CLASS Archer] [EQU $RACE Yeek] ]
+R:0:0xA8/0x8F
+?:[AND [EQU $CLASS Archer] [EQU $RACE Klackon] ]
+R:0:0xA8/0x90
+?:[AND [EQU $CLASS Archer] [EQU $RACE Kobold] ]
+R:0:0xA8/0x91
+?:[AND [EQU $CLASS Archer] [EQU $RACE Nibelung] ]
+R:0:0xA8/0x92
+?:[AND [EQU $CLASS Archer] [EQU $RACE Dark-Elf] ]
+R:0:0xA8/0x93
+?:[AND [EQU $CLASS Archer] [EQU $RACE Draconian] ]
+R:0:0xA8/0x94
+?:[AND [EQU $CLASS Archer] [EQU $RACE Mindflayer] ]
+R:0:0xA8/0x95
+?:[AND [EQU $CLASS Archer] [EQU $RACE Imp] ]
+R:0:0xA8/0x96
+?:[AND [EQU $CLASS Archer] [EQU $RACE Golem] ]
+R:0:0xA8/0x97
+?:[AND [EQU $CLASS Archer] [EQU $RACE Skeleton] ]
+R:0:0xA8/0x98
+?:[AND [EQU $CLASS Archer] [EQU $RACE Zombie] ]
+R:0:0xA8/0x99
+?:[AND [EQU $CLASS Archer] [EQU $RACE Vampire] ]
+R:0:0xA8/0x9A
+?:[AND [EQU $CLASS Archer] [EQU $RACE Spectre] ]
+R:0:0xA8/0x9B
+?:[AND [EQU $CLASS Archer] [EQU $RACE Sprite] ]
+R:0:0xA8/0x9C
+?:[AND [EQU $CLASS Archer] [EQU $RACE Beastman] ]
+R:0:0xA8/0x9D
+?:[AND [EQU $CLASS Archer] [EQU $RACE Ent] ]
+R:0:0xA8/0x97
+?:[AND [EQU $CLASS Archer] [EQU $RACE Archon] ]
+R:0:0xA8/0x9C
+?:[AND [EQU $CLASS Archer] [EQU $RACE Balrog] ]
+R:0:0xA8/0x96
+?:[AND [EQU $CLASS Archer] [EQU $RACE Dunadan] ]
+R:0:0xA8/0x81
+?:[AND [EQU $CLASS Archer] [EQU $RACE Shadow-Fairy] ]
+R:0:0xA8/0x86
+?:[AND [EQU $CLASS Archer] [EQU $RACE Kuta] ]
+R:0:0xA8/0x91
+?:[AND [EQU $CLASS Archer] [EQU $RACE Android] ]
+R:0:0xA8/0x97
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Human] ]
+R:0:0xAD/0x80
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Half-Elf] ]
+R:0:0xAD/0x81
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Elf] ]
+R:0:0xAD/0x82
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Hobbit] ]
+R:0:0xAD/0x83
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Gnome] ]
+R:0:0xAD/0x84
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Dwarf] ]
+R:0:0xAD/0x85
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Half-Orc] ]
+R:0:0xAD/0x86
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Half-Troll] ]
+R:0:0xAD/0x87
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Amberite] ]
+R:0:0xAD/0x88
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE High-Elf] ]
+R:0:0xAD/0x89
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Barbarian] ]
+R:0:0xAD/0x8A
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Half-Ogre] ]
+R:0:0xAD/0x8B
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Half-Giant] ]
+R:0:0xAD/0x8C
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Half-Titan] ]
+R:0:0xAD/0x8D
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Cyclops] ]
+R:0:0xAD/0x8E
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Yeek] ]
+R:0:0xAD/0x8F
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Klackon] ]
+R:0:0xAD/0x90
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Kobold] ]
+R:0:0xAD/0x91
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Nibelung] ]
+R:0:0xAD/0x92
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Dark-Elf] ]
+R:0:0xAD/0x93
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Draconian] ]
+R:0:0xAD/0x94
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Mindflayer] ]
+R:0:0xAD/0x95
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Imp] ]
+R:0:0xAD/0x96
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Golem] ]
+R:0:0xAD/0x97
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Skeleton] ]
+R:0:0xAD/0x98
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Zombie] ]
+R:0:0xAD/0x99
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Vampire] ]
+R:0:0xAD/0x9A
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Spectre] ]
+R:0:0xAD/0x9B
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Sprite] ]
+R:0:0xAD/0x9C
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Beastman] ]
+R:0:0xAD/0x9D
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Ent] ]
+R:0:0xAD/0x97
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Archon] ]
+R:0:0xAD/0x9C
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Balrog] ]
+R:0:0xAD/0x96
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Dunadan] ]
+R:0:0xAD/0x81
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAD/0x86
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Kuta] ]
+R:0:0xAD/0x91
+?:[AND [EQU $CLASS Magic-Eater] [EQU $RACE Android] ]
+R:0:0xAD/0x97
+?:[AND [EQU $CLASS Bard] [EQU $RACE Human] ]
+R:0:0xA8/0x80
+?:[AND [EQU $CLASS Bard] [EQU $RACE Half-Elf] ]
+R:0:0xA8/0x81
+?:[AND [EQU $CLASS Bard] [EQU $RACE Elf] ]
+R:0:0xA8/0x82
+?:[AND [EQU $CLASS Bard] [EQU $RACE Hobbit] ]
+R:0:0xA8/0x83
+?:[AND [EQU $CLASS Bard] [EQU $RACE Gnome] ]
+R:0:0xA8/0x84
+?:[AND [EQU $CLASS Bard] [EQU $RACE Dwarf] ]
+R:0:0xA8/0x85
+?:[AND [EQU $CLASS Bard] [EQU $RACE Half-Orc] ]
+R:0:0xA8/0x86
+?:[AND [EQU $CLASS Bard] [EQU $RACE Half-Troll] ]
+R:0:0xA8/0x87
+?:[AND [EQU $CLASS Bard] [EQU $RACE Amberite] ]
+R:0:0xA8/0x88
+?:[AND [EQU $CLASS Bard] [EQU $RACE High-Elf] ]
+R:0:0xA8/0x89
+?:[AND [EQU $CLASS Bard] [EQU $RACE Barbarian] ]
+R:0:0xA8/0x8A
+?:[AND [EQU $CLASS Bard] [EQU $RACE Half-Ogre] ]
+R:0:0xA8/0x8B
+?:[AND [EQU $CLASS Bard] [EQU $RACE Half-Giant] ]
+R:0:0xA8/0x8C
+?:[AND [EQU $CLASS Bard] [EQU $RACE Half-Titan] ]
+R:0:0xA8/0x8D
+?:[AND [EQU $CLASS Bard] [EQU $RACE Cyclops] ]
+R:0:0xA8/0x8E
+?:[AND [EQU $CLASS Bard] [EQU $RACE Yeek] ]
+R:0:0xA8/0x8F
+?:[AND [EQU $CLASS Bard] [EQU $RACE Klackon] ]
+R:0:0xA8/0x90
+?:[AND [EQU $CLASS Bard] [EQU $RACE Kobold] ]
+R:0:0xA8/0x91
+?:[AND [EQU $CLASS Bard] [EQU $RACE Nibelung] ]
+R:0:0xA8/0x92
+?:[AND [EQU $CLASS Bard] [EQU $RACE Dark-Elf] ]
+R:0:0xA8/0x93
+?:[AND [EQU $CLASS Bard] [EQU $RACE Draconian] ]
+R:0:0xA8/0x94
+?:[AND [EQU $CLASS Bard] [EQU $RACE Mindflayer] ]
+R:0:0xA8/0x95
+?:[AND [EQU $CLASS Bard] [EQU $RACE Imp] ]
+R:0:0xA8/0x96
+?:[AND [EQU $CLASS Bard] [EQU $RACE Golem] ]
+R:0:0xA8/0x97
+?:[AND [EQU $CLASS Bard] [EQU $RACE Skeleton] ]
+R:0:0xA8/0x98
+?:[AND [EQU $CLASS Bard] [EQU $RACE Zombie] ]
+R:0:0xA8/0x99
+?:[AND [EQU $CLASS Bard] [EQU $RACE Vampire] ]
+R:0:0xA8/0x9A
+?:[AND [EQU $CLASS Bard] [EQU $RACE Spectre] ]
+R:0:0xA8/0x9B
+?:[AND [EQU $CLASS Bard] [EQU $RACE Sprite] ]
+R:0:0xA8/0x9C
+?:[AND [EQU $CLASS Bard] [EQU $RACE Beastman] ]
+R:0:0xA8/0x9D
+?:[AND [EQU $CLASS Bard] [EQU $RACE Ent] ]
+R:0:0xA8/0x97
+?:[AND [EQU $CLASS Bard] [EQU $RACE Archon] ]
+R:0:0xA8/0x9C
+?:[AND [EQU $CLASS Bard] [EQU $RACE Balrog] ]
+R:0:0xA8/0x96
+?:[AND [EQU $CLASS Bard] [EQU $RACE Dunadan] ]
+R:0:0xA8/0x81
+?:[AND [EQU $CLASS Bard] [EQU $RACE Shadow-Fairy] ]
+R:0:0xA8/0x86
+?:[AND [EQU $CLASS Bard] [EQU $RACE Kuta] ]
+R:0:0xA8/0x91
+?:[AND [EQU $CLASS Bard] [EQU $RACE Android] ]
+R:0:0xA8/0x97
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Human] ]
+R:0:0xAB/0x80
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Half-Elf] ]
+R:0:0xAB/0x81
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Elf] ]
+R:0:0xAB/0x82
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Hobbit] ]
+R:0:0xAB/0x83
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Gnome] ]
+R:0:0xAB/0x84
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Dwarf] ]
+R:0:0xAB/0x85
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Half-Orc] ]
+R:0:0xAB/0x86
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Half-Troll] ]
+R:0:0xAB/0x87
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Amberite] ]
+R:0:0xAB/0x88
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE High-Elf] ]
+R:0:0xAB/0x89
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Barbarian] ]
+R:0:0xAB/0x8A
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Half-Ogre] ]
+R:0:0xAB/0x8B
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Half-Giant] ]
+R:0:0xAB/0x8C
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Half-Titan] ]
+R:0:0xAB/0x8D
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Cyclops] ]
+R:0:0xAB/0x8E
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Yeek] ]
+R:0:0xAB/0x8F
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Klackon] ]
+R:0:0xAB/0x90
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Kobold] ]
+R:0:0xAB/0x91
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Nibelung] ]
+R:0:0xAB/0x92
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Dark-Elf] ]
+R:0:0xAB/0x93
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Draconian] ]
+R:0:0xAB/0x94
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Mindflayer] ]
+R:0:0xAB/0x95
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Imp] ]
+R:0:0xAB/0x96
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Golem] ]
+R:0:0xAB/0x97
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Skeleton] ]
+R:0:0xAB/0x98
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Zombie] ]
+R:0:0xAB/0x99
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Vampire] ]
+R:0:0xAB/0x9A
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Spectre] ]
+R:0:0xAB/0x9B
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Sprite] ]
+R:0:0xAB/0x9C
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Beastman] ]
+R:0:0xAB/0x9D
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Ent] ]
+R:0:0xAB/0x97
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Archon] ]
+R:0:0xAB/0x9C
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Balrog] ]
+R:0:0xAB/0x96
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Dunadan] ]
+R:0:0xAB/0x81
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAB/0x86
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Kuta] ]
+R:0:0xAB/0x91
+?:[AND [EQU $CLASS Red-Mage] [EQU $RACE Android] ]
+R:0:0xAB/0x97
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Human] ]
+R:0:0xAA/0x80
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Half-Elf] ]
+R:0:0xAA/0x81
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Elf] ]
+R:0:0xAA/0x82
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Hobbit] ]
+R:0:0xAA/0x83
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Gnome] ]
+R:0:0xAA/0x84
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Dwarf] ]
+R:0:0xAA/0x85
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Half-Orc] ]
+R:0:0xAA/0x86
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Half-Troll] ]
+R:0:0xAA/0x87
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Amberite] ]
+R:0:0xAA/0x88
+?:[AND [EQU $CLASS Samurai] [EQU $RACE High-Elf] ]
+R:0:0xAA/0x89
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Barbarian] ]
+R:0:0xAA/0x8A
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Half-Ogre] ]
+R:0:0xAA/0x8B
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Half-Giant] ]
+R:0:0xAA/0x8C
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Half-Titan] ]
+R:0:0xAA/0x8D
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Cyclops] ]
+R:0:0xAA/0x8E
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Yeek] ]
+R:0:0xAA/0x8F
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Klackon] ]
+R:0:0xAA/0x90
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Kobold] ]
+R:0:0xAA/0x91
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Nibelung] ]
+R:0:0xAA/0x92
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Dark-Elf] ]
+R:0:0xAA/0x93
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Draconian] ]
+R:0:0xAA/0x94
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Mindflayer] ]
+R:0:0xAA/0x95
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Imp] ]
+R:0:0xAA/0x96
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Golem] ]
+R:0:0xAA/0x97
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Skeleton] ]
+R:0:0xAA/0x98
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Zombie] ]
+R:0:0xAA/0x99
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Vampire] ]
+R:0:0xAA/0x9A
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Spectre] ]
+R:0:0xAA/0x9B
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Sprite] ]
+R:0:0xAA/0x9C
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Beastman] ]
+R:0:0xAA/0x9D
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Ent] ]
+R:0:0xAA/0x97
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Archon] ]
+R:0:0xAA/0x9C
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Balrog] ]
+R:0:0xAA/0x96
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Dunadan] ]
+R:0:0xAA/0x81
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAA/0x86
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Kuta] ]
+R:0:0xAA/0x91
+?:[AND [EQU $CLASS Samurai] [EQU $RACE Android] ]
+R:0:0xAA/0x97
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Human] ]
+R:0:0xAC/0x80
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Half-Elf] ]
+R:0:0xAC/0x81
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Elf] ]
+R:0:0xAC/0x82
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Hobbit] ]
+R:0:0xAC/0x83
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Gnome] ]
+R:0:0xAC/0x84
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Dwarf] ]
+R:0:0xAC/0x85
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Half-Orc] ]
+R:0:0xAC/0x86
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Half-Troll] ]
+R:0:0xAC/0x87
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Amberite] ]
+R:0:0xAC/0x88
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE High-Elf] ]
+R:0:0xAC/0x89
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Barbarian] ]
+R:0:0xAC/0x8A
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Half-Ogre] ]
+R:0:0xAC/0x8B
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Half-Giant] ]
+R:0:0xAC/0x8C
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Half-Titan] ]
+R:0:0xAC/0x8D
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Cyclops] ]
+R:0:0xAC/0x8E
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Yeek] ]
+R:0:0xAC/0x8F
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Klackon] ]
+R:0:0xAC/0x90
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Kobold] ]
+R:0:0xAC/0x91
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Nibelung] ]
+R:0:0xAC/0x92
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Dark-Elf] ]
+R:0:0xAC/0x93
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Draconian] ]
+R:0:0xAC/0x94
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Mindflayer] ]
+R:0:0xAC/0x95
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Imp] ]
+R:0:0xAC/0x96
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Golem] ]
+R:0:0xAC/0x97
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Skeleton] ]
+R:0:0xAC/0x98
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Zombie] ]
+R:0:0xAC/0x99
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Vampire] ]
+R:0:0xAC/0x9A
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Spectre] ]
+R:0:0xAC/0x9B
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Sprite] ]
+R:0:0xAC/0x9C
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Beastman] ]
+R:0:0xAC/0x9D
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Ent] ]
+R:0:0xAC/0x97
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Archon] ]
+R:0:0xAC/0x9C
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Balrog] ]
+R:0:0xAC/0x96
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Dunadan] ]
+R:0:0xAC/0x81
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAC/0x86
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Kuta] ]
+R:0:0xAC/0x91
+?:[AND [EQU $CLASS ForceTrainer] [EQU $RACE Android] ]
+R:0:0xAC/0x97
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Human] ]
+R:0:0xAD/0x80
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Half-Elf] ]
+R:0:0xAD/0x81
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Elf] ]
+R:0:0xAD/0x82
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Hobbit] ]
+R:0:0xAD/0x83
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Gnome] ]
+R:0:0xAD/0x84
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Dwarf] ]
+R:0:0xAD/0x85
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Half-Orc] ]
+R:0:0xAD/0x86
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Half-Troll] ]
+R:0:0xAD/0x87
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Amberite] ]
+R:0:0xAD/0x88
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE High-Elf] ]
+R:0:0xAD/0x89
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Barbarian] ]
+R:0:0xAD/0x8A
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Half-Ogre] ]
+R:0:0xAD/0x8B
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Half-Giant] ]
+R:0:0xAD/0x8C
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Half-Titan] ]
+R:0:0xAD/0x8D
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Cyclops] ]
+R:0:0xAD/0x8E
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Yeek] ]
+R:0:0xAD/0x8F
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Klackon] ]
+R:0:0xAD/0x90
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Kobold] ]
+R:0:0xAD/0x91
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Nibelung] ]
+R:0:0xAD/0x92
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Dark-Elf] ]
+R:0:0xAD/0x93
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Draconian] ]
+R:0:0xAD/0x94
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Mindflayer] ]
+R:0:0xAD/0x95
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Imp] ]
+R:0:0xAD/0x96
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Golem] ]
+R:0:0xAD/0x97
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Skeleton] ]
+R:0:0xAD/0x98
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Zombie] ]
+R:0:0xAD/0x99
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Vampire] ]
+R:0:0xAD/0x9A
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Spectre] ]
+R:0:0xAD/0x9B
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Sprite] ]
+R:0:0xAD/0x9C
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Beastman] ]
+R:0:0xAD/0x9D
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Ent] ]
+R:0:0xAD/0x97
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Archon] ]
+R:0:0xAD/0x9C
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Balrog] ]
+R:0:0xAD/0x96
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Dunadan] ]
+R:0:0xAD/0x81
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAD/0x86
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Kuta] ]
+R:0:0xAD/0x91
+?:[AND [EQU $CLASS Blue-Mage] [EQU $RACE Android] ]
+R:0:0xAD/0x97
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Human] ]
+R:0:0xA4/0x80
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Half-Elf] ]
+R:0:0xA4/0x81
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Elf] ]
+R:0:0xA4/0x82
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Hobbit] ]
+R:0:0xA4/0x83
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Gnome] ]
+R:0:0xA4/0x84
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Dwarf] ]
+R:0:0xA4/0x85
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Half-Orc] ]
+R:0:0xA4/0x86
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Half-Troll] ]
+R:0:0xA4/0x87
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Amberite] ]
+R:0:0xA4/0x88
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE High-Elf] ]
+R:0:0xA4/0x89
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Barbarian] ]
+R:0:0xA4/0x8A
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Half-Ogre] ]
+R:0:0xA4/0x8B
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Half-Giant] ]
+R:0:0xA4/0x8C
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Half-Titan] ]
+R:0:0xA4/0x8D
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Cyclops] ]
+R:0:0xA4/0x8E
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Yeek] ]
+R:0:0xA4/0x8F
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Klackon] ]
+R:0:0xA4/0x90
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Kobold] ]
+R:0:0xA4/0x91
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Nibelung] ]
+R:0:0xA4/0x92
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Dark-Elf] ]
+R:0:0xA4/0x93
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Draconian] ]
+R:0:0xA4/0x94
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Mindflayer] ]
+R:0:0xA4/0x95
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Imp] ]
+R:0:0xA4/0x96
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Golem] ]
+R:0:0xA4/0x97
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Skeleton] ]
+R:0:0xA4/0x98
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Zombie] ]
+R:0:0xA4/0x99
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Vampire] ]
+R:0:0xA4/0x9A
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Spectre] ]
+R:0:0xA4/0x9B
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Sprite] ]
+R:0:0xA4/0x9C
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Beastman] ]
+R:0:0xA4/0x9D
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Ent] ]
+R:0:0xA4/0x97
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Archon] ]
+R:0:0xA4/0x9C
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Balrog] ]
+R:0:0xA4/0x96
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Dunadan] ]
+R:0:0xA4/0x81
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Shadow-Fairy] ]
+R:0:0xA4/0x86
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Kuta] ]
+R:0:0xA4/0x91
+?:[AND [EQU $CLASS Cavalry] [EQU $RACE Android] ]
+R:0:0xA4/0x97
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Human] ]
+R:0:0xAB/0x80
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Half-Elf] ]
+R:0:0xAB/0x81
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Elf] ]
+R:0:0xAB/0x82
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Hobbit] ]
+R:0:0xAB/0x83
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Gnome] ]
+R:0:0xAB/0x84
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Dwarf] ]
+R:0:0xAB/0x85
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Half-Orc] ]
+R:0:0xAB/0x86
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Half-Troll] ]
+R:0:0xAB/0x87
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Amberite] ]
+R:0:0xAB/0x88
+?:[AND [EQU $CLASS Berserker] [EQU $RACE High-Elf] ]
+R:0:0xAB/0x89
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Barbarian] ]
+R:0:0xAB/0x8A
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Half-Ogre] ]
+R:0:0xAB/0x8B
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Half-Giant] ]
+R:0:0xAB/0x8C
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Half-Titan] ]
+R:0:0xAB/0x8D
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Cyclops] ]
+R:0:0xAB/0x8E
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Yeek] ]
+R:0:0xAB/0x8F
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Klackon] ]
+R:0:0xAB/0x90
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Kobold] ]
+R:0:0xAB/0x91
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Nibelung] ]
+R:0:0xAB/0x92
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Dark-Elf] ]
+R:0:0xAB/0x93
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Draconian] ]
+R:0:0xAB/0x94
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Mindflayer] ]
+R:0:0xAB/0x95
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Imp] ]
+R:0:0xAB/0x96
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Golem] ]
+R:0:0xAB/0x97
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Skeleton] ]
+R:0:0xAB/0x98
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Zombie] ]
+R:0:0xAB/0x99
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Vampire] ]
+R:0:0xAB/0x9A
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Spectre] ]
+R:0:0xAB/0x9B
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Sprite] ]
+R:0:0xAB/0x9C
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Beastman] ]
+R:0:0xAB/0x9D
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Ent] ]
+R:0:0xAB/0x97
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Archon] ]
+R:0:0xAB/0x9C
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Balrog] ]
+R:0:0xAB/0x96
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Dunadan] ]
+R:0:0xAB/0x81
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAB/0x86
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Kuta] ]
+R:0:0xAB/0x91
+?:[AND [EQU $CLASS Berserker] [EQU $RACE Android] ]
+R:0:0xAB/0x97
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Human] ]
+R:0:0xAA/0x80
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Half-Elf] ]
+R:0:0xAA/0x81
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Elf] ]
+R:0:0xAA/0x82
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Hobbit] ]
+R:0:0xAA/0x83
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Gnome] ]
+R:0:0xAA/0x84
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Dwarf] ]
+R:0:0xAA/0x85
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Half-Orc] ]
+R:0:0xAA/0x86
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Half-Troll] ]
+R:0:0xAA/0x87
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Amberite] ]
+R:0:0xAA/0x88
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE High-Elf] ]
+R:0:0xAA/0x89
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Barbarian] ]
+R:0:0xAA/0x8A
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Half-Ogre] ]
+R:0:0xAA/0x8B
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Half-Giant] ]
+R:0:0xAA/0x8C
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Half-Titan] ]
+R:0:0xAA/0x8D
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Cyclops] ]
+R:0:0xAA/0x8E
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Yeek] ]
+R:0:0xAA/0x8F
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Klackon] ]
+R:0:0xAA/0x90
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Kobold] ]
+R:0:0xAA/0x91
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Nibelung] ]
+R:0:0xAA/0x92
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Dark-Elf] ]
+R:0:0xAA/0x93
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Draconian] ]
+R:0:0xAA/0x94
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Mindflayer] ]
+R:0:0xAA/0x95
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Imp] ]
+R:0:0xAA/0x96
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Golem] ]
+R:0:0xAA/0x97
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Skeleton] ]
+R:0:0xAA/0x98
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Zombie] ]
+R:0:0xAA/0x99
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Vampire] ]
+R:0:0xAA/0x9A
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Spectre] ]
+R:0:0xAA/0x9B
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Sprite] ]
+R:0:0xAA/0x9C
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Beastman] ]
+R:0:0xAA/0x9D
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Ent] ]
+R:0:0xAA/0x97
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Archon] ]
+R:0:0xAA/0x9C
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Balrog] ]
+R:0:0xAA/0x96
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Dunadan] ]
+R:0:0xAA/0x81
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAA/0x86
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Kuta] ]
+R:0:0xAA/0x91
+?:[AND [EQU $CLASS Weaponsmith] [EQU $RACE Android] ]
+R:0:0xAA/0x97
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Human] ]
+R:0:0xAD/0x80
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Half-Elf] ]
+R:0:0xAD/0x81
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Elf] ]
+R:0:0xAD/0x82
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Hobbit] ]
+R:0:0xAD/0x83
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Gnome] ]
+R:0:0xAD/0x84
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Dwarf] ]
+R:0:0xAD/0x85
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Half-Orc] ]
+R:0:0xAD/0x86
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Half-Troll] ]
+R:0:0xAD/0x87
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Amberite] ]
+R:0:0xAD/0x88
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE High-Elf] ]
+R:0:0xAD/0x89
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Barbarian] ]
+R:0:0xAD/0x8A
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Half-Ogre] ]
+R:0:0xAD/0x8B
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Half-Giant] ]
+R:0:0xAD/0x8C
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Half-Titan] ]
+R:0:0xAD/0x8D
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Cyclops] ]
+R:0:0xAD/0x8E
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Yeek] ]
+R:0:0xAD/0x8F
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Klackon] ]
+R:0:0xAD/0x90
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Kobold] ]
+R:0:0xAD/0x91
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Nibelung] ]
+R:0:0xAD/0x92
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Dark-Elf] ]
+R:0:0xAD/0x93
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Draconian] ]
+R:0:0xAD/0x94
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Mindflayer] ]
+R:0:0xAD/0x95
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Imp] ]
+R:0:0xAD/0x96
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Golem] ]
+R:0:0xAD/0x97
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Skeleton] ]
+R:0:0xAD/0x98
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Zombie] ]
+R:0:0xAD/0x99
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Vampire] ]
+R:0:0xAD/0x9A
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Spectre] ]
+R:0:0xAD/0x9B
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Sprite] ]
+R:0:0xAD/0x9C
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Beastman] ]
+R:0:0xAD/0x9D
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Ent] ]
+R:0:0xAD/0x97
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Archon] ]
+R:0:0xAD/0x9C
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Balrog] ]
+R:0:0xAD/0x96
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Dunadan] ]
+R:0:0xAD/0x81
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAD/0x86
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Kuta] ]
+R:0:0xAD/0x91
+?:[AND [EQU $CLASS Mirror-Master] [EQU $RACE Android] ]
+R:0:0xAD/0x97
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Human] ]
+R:0:0xAA/0x80
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Half-Elf] ]
+R:0:0xAA/0x81
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Elf] ]
+R:0:0xAA/0x82
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Hobbit] ]
+R:0:0xAA/0x83
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Gnome] ]
+R:0:0xAA/0x84
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Dwarf] ]
+R:0:0xAA/0x85
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Half-Orc] ]
+R:0:0xAA/0x86
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Half-Troll] ]
+R:0:0xAA/0x87
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Amberite] ]
+R:0:0xAA/0x88
+?:[AND [EQU $CLASS Ninja] [EQU $RACE High-Elf] ]
+R:0:0xAA/0x89
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Barbarian] ]
+R:0:0xAA/0x8A
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Half-Ogre] ]
+R:0:0xAA/0x8B
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Half-Giant] ]
+R:0:0xAA/0x8C
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Half-Titan] ]
+R:0:0xAA/0x8D
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Cyclops] ]
+R:0:0xAA/0x8E
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Yeek] ]
+R:0:0xAA/0x8F
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Klackon] ]
+R:0:0xAA/0x90
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Kobold] ]
+R:0:0xAA/0x91
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Nibelung] ]
+R:0:0xAA/0x92
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Dark-Elf] ]
+R:0:0xAA/0x93
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Draconian] ]
+R:0:0xAA/0x94
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Mindflayer] ]
+R:0:0xAA/0x95
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Imp] ]
+R:0:0xAA/0x96
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Golem] ]
+R:0:0xAA/0x97
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Skeleton] ]
+R:0:0xAA/0x98
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Zombie] ]
+R:0:0xAA/0x99
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Vampire] ]
+R:0:0xAA/0x9A
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Spectre] ]
+R:0:0xAA/0x9B
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Sprite] ]
+R:0:0xAA/0x9C
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Beastman] ]
+R:0:0xAA/0x9D
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Ent] ]
+R:0:0xAA/0x97
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Archon] ]
+R:0:0xAA/0x9C
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Balrog] ]
+R:0:0xAA/0x96
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Dunadan] ]
+R:0:0xAA/0x81
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Shadow-Fairy] ]
+R:0:0xAA/0x86
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Kuta] ]
+R:0:0xAA/0x91
+?:[AND [EQU $CLASS Ninja] [EQU $RACE Android] ]
+R:0:0xAA/0x97
+
+### old preference
+#
+#?:[AND [EQU $CLASS Warrior] [EQU $RACE Human] ]
+#R:0:0x8C/0x80
+#?:[AND [EQU $CLASS Warrior] [EQU $RACE Half-Elf] ]
+#R:0:0x8C/0x81
+#?:[AND [EQU $CLASS Warrior] [EQU $RACE Elf] ]
+#R:0:0x8C/0x82
+#?:[AND [EQU $CLASS Warrior] [EQU $RACE Hobbit] ]
+#R:0:0x8C/0x83
+#?:[AND [EQU $CLASS Warrior] [EQU $RACE Gnome] ]
+#R:0:0x8C/0x84
+#?:[AND [EQU $CLASS Warrior] [EQU $RACE Dwarf] ]
+#R:0:0x8C/0x85
+#?:[AND [EQU $CLASS Warrior] [EQU $RACE Half-Orc] ]
+#R:0:0x8C/0x86
+#?:[AND [EQU $CLASS Warrior] [EQU $RACE Half-Troll] ]
+#R:0:0x8C/0x87
+#?:[AND [EQU $CLASS Warrior] [EQU $RACE Dunadan] ]
+#R:0:0x8C/0x88
+#?:[AND [EQU $CLASS Warrior] [EQU $RACE High-Elf] ]
+#R:0:0x8C/0x89
+#
+#?:[AND [EQU $CLASS Mage] [EQU $RACE Human] ]
+#R:0:0x8C/0x8A
+#?:[AND [EQU $CLASS Mage] [EQU $RACE Half-Elf] ]
+#R:0:0x8C/0x8B
+#?:[AND [EQU $CLASS Mage] [EQU $RACE Elf] ]
+#R:0:0x8C/0x8C
+#?:[AND [EQU $CLASS Mage] [EQU $RACE Hobbit] ]
+#R:0:0x8C/0x8D
+#?:[AND [EQU $CLASS Mage] [EQU $RACE Gnome] ]
+#R:0:0x8C/0x8E
+#?:[AND [EQU $CLASS Mage] [EQU $RACE Dwarf] ]
+#R:0:0x8C/0x8F
+#?:[AND [EQU $CLASS Mage] [EQU $RACE Half-Orc] ]
+#R:0:0x8C/0x90
+#?:[AND [EQU $CLASS Mage] [EQU $RACE Half-Troll] ]
+#R:0:0x8C/0x91
+#?:[AND [EQU $CLASS Mage] [EQU $RACE Dunadan] ]
+#R:0:0x8C/0x92
+#?:[AND [EQU $CLASS Mage] [EQU $RACE High-Elf] ]
+#R:0:0x8C/0x93
+#
+#?:[AND [EQU $CLASS Priest] [EQU $RACE Human] ]
+#R:0:0x8C/0x94
+#?:[AND [EQU $CLASS Priest] [EQU $RACE Half-Elf] ]
+#R:0:0x8C/0x95
+#?:[AND [EQU $CLASS Priest] [EQU $RACE Elf] ]
+#R:0:0x8C/0x96
+#?:[AND [EQU $CLASS Priest] [EQU $RACE Hobbit] ]
+#R:0:0x8C/0x97
+#?:[AND [EQU $CLASS Priest] [EQU $RACE Gnome] ]
+#R:0:0x8C/0x98
+#?:[AND [EQU $CLASS Priest] [EQU $RACE Dwarf] ]
+#R:0:0x8C/0x99
+#?:[AND [EQU $CLASS Priest] [EQU $RACE Half-Orc] ]
+#R:0:0x8C/0x9A
+#?:[AND [EQU $CLASS Priest] [EQU $RACE Half-Troll] ]
+#R:0:0x8C/0x9B
+#?:[AND [EQU $CLASS Priest] [EQU $RACE Dunadan] ]
+#R:0:0x8C/0x9C
+#?:[AND [EQU $CLASS Priest] [EQU $RACE High-Elf] ]
+#R:0:0x8C/0x9D
+#
+#?:[AND [EQU $CLASS Rogue] [EQU $RACE Human] ]
+#R:0:0x8C/0x9E
+#?:[AND [EQU $CLASS Rogue] [EQU $RACE Half-Elf] ]
+#R:0:0x8C/0x9F
+#?:[AND [EQU $CLASS Rogue] [EQU $RACE Elf] ]
+#R:0:0x8D/0x80
+#?:[AND [EQU $CLASS Rogue] [EQU $RACE Hobbit] ]
+#R:0:0x8D/0x81
+#?:[AND [EQU $CLASS Rogue] [EQU $RACE Gnome] ]
+#R:0:0x8D/0x82
+#?:[AND [EQU $CLASS Rogue] [EQU $RACE Dwarf] ]
+#R:0:0x8D/0x83
+#?:[AND [EQU $CLASS Rogue] [EQU $RACE Half-Orc] ]
+#R:0:0x8D/0x84
+#?:[AND [EQU $CLASS Rogue] [EQU $RACE Half-Troll] ]
+#R:0:0x8D/0x85
+#?:[AND [EQU $CLASS Rogue] [EQU $RACE Dunadan] ]
+#R:0:0x8D/0x86
+#?:[AND [EQU $CLASS Rogue] [EQU $RACE High-Elf] ]
+#R:0:0x8D/0x87
+#
+#?:[AND [EQU $CLASS Ranger] [EQU $RACE Human] ]
+#R:0:0x8D/0x88
+#?:[AND [EQU $CLASS Ranger] [EQU $RACE Half-Elf] ]
+#R:0:0x8D/0x89
+#?:[AND [EQU $CLASS Ranger] [EQU $RACE Elf] ]
+#R:0:0x8D/0x8A
+#?:[AND [EQU $CLASS Ranger] [EQU $RACE Hobbit] ]
+#R:0:0x8D/0x8B
+#?:[AND [EQU $CLASS Ranger] [EQU $RACE Gnome] ]
+#R:0:0x8D/0x8C
+#?:[AND [EQU $CLASS Ranger] [EQU $RACE Dwarf] ]
+#R:0:0x8D/0x8D
+#?:[AND [EQU $CLASS Ranger] [EQU $RACE Half-Orc] ]
+#R:0:0x8D/0x8E
+#?:[AND [EQU $CLASS Ranger] [EQU $RACE Half-Troll] ]
+#R:0:0x8D/0x8F
+#?:[AND [EQU $CLASS Ranger] [EQU $RACE Dunadan] ]
+#R:0:0x8D/0x90
+#?:[AND [EQU $CLASS Ranger] [EQU $RACE High-Elf] ]
+#R:0:0x8D/0x91
+#
+#?:[AND [EQU $CLASS Paladin] [EQU $RACE Human] ]
+#R:0:0x8D/0x92
+#?:[AND [EQU $CLASS Paladin] [EQU $RACE Half-Elf] ]
+#R:0:0x8D/0x93
+#?:[AND [EQU $CLASS Paladin] [EQU $RACE Elf] ]
+#R:0:0x8D/0x94
+#?:[AND [EQU $CLASS Paladin] [EQU $RACE Hobbit] ]
+#R:0:0x8D/0x95
+#?:[AND [EQU $CLASS Paladin] [EQU $RACE Gnome] ]
+#R:0:0x8D/0x96
+#?:[AND [EQU $CLASS Paladin] [EQU $RACE Dwarf] ]
+#R:0:0x8D/0x97
+#?:[AND [EQU $CLASS Paladin] [EQU $RACE Half-Orc] ]
+#R:0:0x8D/0x98
+#?:[AND [EQU $CLASS Paladin] [EQU $RACE Half-Troll] ]
+#R:0:0x8D/0x99
+#?:[AND [EQU $CLASS Paladin] [EQU $RACE Dunadan] ]
+#R:0:0x8D/0x9A
+#?:[AND [EQU $CLASS Paladin] [EQU $RACE High-Elf] ]
+#R:0:0x8D/0x9B
-# CVS: Last edit by $Author$ on $Date$
# sound.cfg
#
# Configuration file for the Angband sound events
b j n
5/, Stay still
- < Go up staircase
- > Go down staircase
+ < Go up staircase or Enter global map mode in the wilderness.
+ > Go down staircase or return from global map mode in the wilderness
Shift+direction run
Ctrl+direction attack, open, close, or dig
Then, type these alphabet letter in 'm' command to cast from the spellbook.
- You can inscribe on *identified* items with "%" or "%all".
- Then, "%" or "%all" is automatically replaced by strings which describe the item's
- abilities.
- Example: You inscribe with "%all" on a pair of gauntlets of power which provide
- resistance to fire. The description will look like {St;Fi} which means
- bonus to Strength and resistance to fire.
- If you inscribe it with "%", its description will look like {Fi} which means
- its random added ability is resistance to fire.
+ Then, "%" or "%all" is automatically replaced by strings which describe the
+ item's abilities.
+ Example: You inscribe with "%all" on a pair of gauntlets of power which
+ provide resistance to fire. The description will look like {St;Fi} which
+ means bonus to Strength and resistance to fire.
+ If you inscribe it with "%", its description will look like {Fi} which
+ means its random added ability is resistance to fire.
----- Auto pickup
+---- Auto pickup/destroy
-Hengband offers a very powerful auto-pickup/auto-destroy system which you may customize. Please read the file "autopick_eng.txt".
+Hengband offers two different methods of auto-pickup/destroy.
+- Powerful method
+ Hengband offers a very powerful auto-pickup/auto-destroy system
+ which you may customize. Please read the file "autopick_eng.txt".
+
+- Easy method
+ Since the powerful method is slightly difficult to use
+ effectively, there is another very easy option. you can turn on
+ the destroy_items option and/or the always_pickup option to use
+ this method. These options are located in (6) Easy Auto-Destroyer
+ Options and (1) Input Options in the Set options ('=') command.
------ Play Record
-Play record will be written to a file named 'playrec-(character's name).txt'
+Play record will be written to a file named 'playrec-<character's name>.txt'
in the same directory as your user preference file. It is in ~/.angband/
Hengband/ for UNIX, or hengband/lib/user/ for other OS.
'|' command displays play record in the game.
}
MENUITEM SEPARATOR
-
+/*
POPUP "Bizarre Display"
{
MENUITEM "Term-0 window", 230
MENUITEM "Term-6 window", 236
MENUITEM "Term-7 window", 237
}
-
+*/
POPUP "Increase Tile Width"
{
MENUITEM "Term-0 window", 240
}
MENUITEM "&Sound", 410
- MENUITEM SEPARATOR
- MENUITEM "Low Priority", 420
- MENUITEM "Activate Screensaver", 430
- MENUITEM "&Map", 440
+ MENUITEM "&Back ground pict", 440
+ MENUITEM "Choose BG pict", 441
+ MENUITEM "&HTML dump", 450
}
+/*
POPUP "&Help"
{
MENUITEM "&Contents", 901
}
+*/
}
ANGBAND ICON "angband.ico"
while ((o_ptr->to_d+o_ptr->to_h) > 20)
{
if (one_in_(o_ptr->to_d) && one_in_(o_ptr->to_h)) break;
- o_ptr->to_d -= rand_int(3);
- o_ptr->to_h -= rand_int(3);
+ o_ptr->to_d -= (s16b)rand_int(3);
+ o_ptr->to_h -= (s16b)rand_int(3);
}
while ((o_ptr->to_d+o_ptr->to_h) > 10)
{
if (one_in_(o_ptr->to_d) || one_in_(o_ptr->to_h)) break;
- o_ptr->to_d -= rand_int(3);
- o_ptr->to_h -= rand_int(3);
+ o_ptr->to_d -= (s16b)rand_int(3);
+ o_ptr->to_h -= (s16b)rand_int(3);
}
}
bool pet = (randint(3) == 1);
bool group = !(pet && (plev < 50));
- if (summon_specific((pet ? -1 : 0), py, px, ((plev * 3) / 2), SUMMON_ELEMENTAL, group, FALSE, pet, FALSE, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, ((plev * 3) / 2), SUMMON_ELEMENTAL, group, FALSE, pet, FALSE, (bool)(!pet)))
{
#ifdef JP
msg_print("¥¨¥ì¥á¥ó¥¿¥ë¤¬¸½¤ì¤¿...");
bool pet = (randint(3) == 1);
bool group = !(pet && (plev < 50));
- if (summon_specific((pet ? -1 : 0), py, px, ((plev * 3) / 2), SUMMON_DEMON, group, FALSE, pet, FALSE, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, ((plev * 3) / 2), SUMMON_DEMON, group, FALSE, pet, FALSE, (bool)(!pet)))
{
#ifdef JP
msg_print("ⲫ¤Î°½¤¬½¼Ëþ¤·¤¿¡£");
}
if (summon_specific((pet ? -1 : 0), py, px, ((plev * 3) / 2), type,
- group, FALSE, pet, unique_okay, !pet))
+ group, FALSE, pet, unique_okay, (bool)(!pet)))
{
#ifdef JP
msg_print("Î䤿¤¤É÷¤¬¤¢¤Ê¤¿¤Î¼þ¤ê¤Ë¿á¤»Ï¤á¤¿¡£¤½¤ì¤ÏÉåÇÔ½¤ò±¿¤ó¤Ç¤¤¤ë...");
{"¤¢¤Ê¤¿¤ÏÇöÃ㿧¤ÎÆ·¡¢", 70, 109, 110, 50},
{"¤¢¤Ê¤¿¤ÏÎ理ÎÆ·¡¢", 80, 109, 110, 50},
{"¤¢¤Ê¤¿¤ÏÀĤ¤Æ·¡¢", 90, 109, 110, 50},
- {"¤¢¤Ê¤¿¤ÏøÀÄ¿§¤ÎÆ·¡¢", 100, 109, 110, 50}, /*tansei.cc.u-tokyo¤ÎͳÍè*/
+ {"¤¢¤Ê¤¿¤ÏøÀÄ¿§¤ÎÆ·¡¢", 100, 109, 110, 50}, /*tansei.cc.u-tokyo¤ÎͳÍè */
{"¤Ê¤á¤é¤«¤Ê", 70, 110, 111, 50},
{"ÇÈÂǤä¿", 90, 110, 111, 50},
{"¥Ë¥¯¥·¡¼¤Ç¤·¤¿¡£", 30, 125, 126, 25 },
{"¿¹¤ÎÍÅÀº¤Ç¤·¤¿¡£", 75, 125, 126, 50 },
{"¿¹¤ÎÀºÎî¤Ç¤·¤¿¡£", 90, 125, 126, 75 },
- {"ÍÅÀº¤Îµ®Â²¤Ç¤·¤¿¡£", 100, 125, 126, 85 }, /*nuke me ¥«¥¿¥«¥Ê¤Î¤Û¤¦¤¬¤¤¤¤¤«¤â*/
+ {"ÍÅÀº¤Îµ®Â²¤Ç¤·¤¿¡£", 100, 125, 126, 85 }, /*nuke me ¥«¥¿¥«¥Ê¤Î¤Û¤¦¤¬¤¤¤¤¤«¤â */
#else
{"Your parents were ", 100, 124, 125, 50 },
/* Initialize arena and rewards information -KMW- */
p_ptr->arena_number = 0;
- p_ptr->inside_arena = 0;
+ p_ptr->inside_arena = FALSE;
p_ptr->inside_quest = 0;
p_ptr->leftbldg = FALSE;
for (i = 0; i < MAX_MANE; i++)
/* Assume no cheating */
noscore = 0;
+ wizard = FALSE;
/* Not waiting to report score */
wait_report_score = FALSE;
/* Heino Vander Sanden and Jimmy De Laet */
/* Extra info */
- Term_putstr(5, 14, -1, TERM_WHITE,
#ifdef JP
+ Term_putstr(5, 14, -1, TERM_WHITE,
"ɬ¿Ü¤Î¥¯¥¨¥¹¥È(¥ª¥Ù¥í¥óµÚ¤Óº®Æ٤Υµ¡¼¥Ú¥ó¥È)¤Ë²Ã¤¨¤Æ¡¢ÄɲäΥ¯¥¨¥¹¥È¤Î");
-#else
- "You can enter the number of quests you'd like to perform in addition");
-#endif
-
Term_putstr(5, 15, -1, TERM_WHITE,
-#ifdef JP
"¿ô¤òÀßÄꤹ¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£");
-#else
- "to the two obligatory ones ( Oberon and the Serpent of Chaos )");
-#endif
-
Term_putstr(5, 17, -1, TERM_WHITE,
-#ifdef JP
"Äɲ寥¨¥¹¥È¤ò¹Ô¤Ê¤¤¤¿¤¯¤Ê¤¤¾ì¹ç¤Ï '0'¤òÆþÎϤ·¤Æ²¼¤µ¤¤¡£");
-#else
- "In case you do not want any additional quests, just enter 0");
-#endif
Term_putstr(5, 18, -1, TERM_WHITE,
-#ifdef JP
- "¥é¥ó¥À¥à¤Ë·èÄꤹ¤ë¤Ë¤Ï'*'¤òÆþÎϤ·¤Æ²¼¤µ¤¤¡£");
+"¥é¥ó¥À¥à¤Ë·èÄꤹ¤ë¤Ë¤Ï'*'¤òÆþÎϤ·¤Æ²¼¤µ¤¤¡£");
#else
- "If you want a random number of random quests, just enter *");
+ Term_putstr(5, 14, -1, TERM_WHITE,
+ "You can enter the number of quests you'd like to perform in addition");
+ Term_putstr(5, 15, -1, TERM_WHITE,
+ "to the two obligatory ones ( Oberon and the Serpent of Chaos )");
+ Term_putstr(5, 17, -1, TERM_WHITE,
+ "In case you do not want any additional quests, just enter 0");
+ Term_putstr(5, 18, -1, TERM_WHITE,
+ "If you want a random number of random quests, just enter *");
#endif
-
/* Ask the number of additional quests */
while (TRUE)
{
/* Clear */
clear_from(14);
+ /* Reset turn; before auto-roll and after choosing race */
+ if ((p_ptr->prace == RACE_VAMPIRE) ||
+ (p_ptr->prace == RACE_SKELETON) ||
+ (p_ptr->prace == RACE_ZOMBIE) ||
+ (p_ptr->prace == RACE_SPECTRE))
+ {
+ /* Undead start just after midnight */
+ turn = (60L * TOWN_DAWN) / 4 + 1;
+ }
+ else
+ {
+ turn = 1;
+ }
+ dungeon_turn = 1;
+
/*** Generate ***/
int i, j;
char buf[80];
- playtime = 0;
-
- /* Reset turn */
- dungeon_turn = 1;
+ playtime = 0;
/* Create a new character */
while (1)
if (player_birth_aux()) break;
}
-
- /* Hack -- enter the world */
- if ((p_ptr->prace == RACE_VAMPIRE) ||
- (p_ptr->prace == RACE_SKELETON) ||
- (p_ptr->prace == RACE_ZOMBIE) ||
- (p_ptr->prace == RACE_SPECTRE))
- {
- /* Undead start just after midnight */
- turn = (60L * TOWN_DAWN) / 4 + 1;
- }
- else
- {
- turn = 1;
- }
-
/* Note player birth in the message recall */
message_add(" ");
message_add(" ");
sprintf(buf,"%-40s ---- ",r_name + r_ptr->name);
prt(buf, y+7, 10);
if (kubi_r_idx[i] > 10000)
+#ifdef JP
c_put_str(TERM_RED,"ºÑ", y+7, 56);
+#else
+ c_put_str(TERM_RED,"done", y+7, 56);
+#endif
else
{
sprintf(buf,"$%d", 300 * (r_ptr->level + 1));
(quest[leaving_quest].status == QUEST_STATUS_TAKEN))
{
quest[leaving_quest].status = QUEST_STATUS_FAILED;
- quest[leaving_quest].complev = p_ptr->lev;
+ quest[leaving_quest].complev = (byte)p_ptr->lev;
if (quest[leaving_quest].type == QUEST_TYPE_RANDOM)
{
r_info[quest[leaving_quest].r_idx].flags1 &= ~(RF1_QUESTOR);
* by Robert Ruehlmann (rr9@angband.org)
*/
-static int display_autopick;
+static byte display_autopick;
static int match_autopick;
static object_type *autopick_obj;
s16b this_o_idx, next_o_idx = 0;
- int feat;
+ byte feat;
byte a;
byte c;
/* Memorized objects */
if (o_ptr->marked)
{
- if(display_autopick == 1){
+ if (display_autopick)
+ {
+ byte act;
+
match_autopick = is_autopick(o_ptr);
- if(match_autopick == -1) continue;
- else if (((autopick_action[match_autopick] == DO_AUTOPICK) && display_pick) || ((autopick_action[match_autopick] == DONT_AUTOPICK) && display_nopick) || ((autopick_action[match_autopick] == DO_AUTODESTROY) && display_destroy))
+ if(match_autopick == -1)
+ continue;
+
+ act = autopick_action[match_autopick];
+
+ if ((act & DO_DISPLAY) && (act & display_autopick))
+ {
autopick_obj = o_ptr;
+ }
else
- {match_autopick = -1; continue;}
+ {
+ match_autopick = -1;
+ continue;
+ }
}
/* Normal char */
(*cp) = object_char(o_ptr);
/* Handle monsters */
- if (c_ptr->m_idx && display_autopick==0 )
+ if (c_ptr->m_idx && display_autopick == 0 )
{
monster_type *m_ptr = &m_list[c_ptr->m_idx];
if (!streq(ANGBAND_GRAF, "new"))
{
- if (!streq(ANGBAND_SYS,"ibm"))
- {
-
- if (use_graphics && player_symbols)
- {
- a = BMP_FIRST_PC_CLASS + p_ptr->pclass;
- c = BMP_FIRST_PC_RACE + p_ptr->prace;
- }
- }
- else
+ if (streq(ANGBAND_SYS,"ibm"))
{
if (use_graphics && player_symbols)
{
{"¤ÎËâË¡½ñ", ""},
{NULL, NULL}
#else
- {"Ring of ", "="},
- {"Amulet of ", "\""},
- {"Scroll of ", "?"},
- {"Wand of " , "-"},
- {"Rod of " , "-"},
- {"Staff of " , "_"},
- {"Potion of ", "!"},
+ {"^Ring of ", "="},
+ {"^Amulet of ", "\""},
+ {"^Scroll of ", "?"},
+ {"^Scroll titled ", "?"},
+ {"^Wand of " , "-"},
+ {"^Rod of " , "-"},
+ {"^Staff of " , "_"},
+ {"^Potion of ", "!"},
{" Spellbook ",""},
- {"Book of ", ""},
+ {"^Book of ", ""},
{" Magic [", "["},
{" Book [", "["},
{" Arts [", "["},
- {"Set of ", ""},
- {"Pair of ", ""},
+ {"^Set of ", ""},
+ {"^Pair of ", ""},
{NULL, NULL}
#endif
};
for (i = 0; simplify_list[i][1]; i++)
{
cptr org_w = simplify_list[i][0];
+
+ if (*org_w == '^')
+ {
+ if (c == buf)
+ org_w++;
+ else
+ continue;
+ }
+
if (!strncmp(c, org_w, strlen(org_w)))
{
char *s = c;
autopick_obj = object_autopick_yx[y][x];
}
}
+
+ /* Clear old display */
+ Term_putstr(0, y, 12, 0, " ");
+
if (match_autopick != -1)
#if 1
display_shortened_item_name(autopick_obj, y);
/* Clear the screen */
Term_clear();
- display_autopick=0;
+ display_autopick = 0;
/* Display the map */
display_map(&cy, &cx);
/* Wait for it */
- if(max_autopick && !p_ptr->wild_mode && (display_pick || display_nopick || display_destroy))
+ if(max_autopick && !p_ptr->wild_mode)
{
+ display_autopick = ITEM_DISPLAY;
+
+ while (1)
+ {
+ int i;
+ byte flag;
+
#ifdef JP
- put_str("²¿¤«¥¡¼¤ò²¡¤¹¤È¥²¡¼¥à¤ËÌá¤ê¤Þ¤¹('M':¥¢¥¤¥Æ¥à¤Î¤ßɽ¼¨)", 23, 17);
+ put_str("²¿¤«¥¡¼¤ò²¡¤·¤Æ¤¯¤À¤µ¤¤('M':½¦¤¦ 'N':ÊüÃÖ 'D':M+D 'K':²õ¤¹¥¢¥¤¥Æ¥à¤òɽ¼¨)", 23, 1);
#else
- put_str("Hit M for display items, hit any other key to continue.", 23, 17);
+ put_str(" Hit M, N(for ~), K(for !), or D(same as M+N) to display auto-picker items.", 23, 1);
#endif
- /* Hilite the player */
- move_cursor(cy, cx);
-
- /* Get any key */
- if( inkey()=='M')
- {
+
+ /* Hilite the player */
+ move_cursor(cy, cx);
+
+ i = inkey();
+
+ if ('M' == i)
+ flag = DO_AUTOPICK;
+ else if ('N' == i)
+ flag = DONT_AUTOPICK;
+ else if ('K' == i)
+ flag = DO_AUTODESTROY;
+ else if ('D' == i)
+ flag = (DO_AUTOPICK | DONT_AUTOPICK);
+ else
+ break;
+
Term_fresh();
+ if (~display_autopick & flag)
+ display_autopick |= flag;
+ else
+ display_autopick &= ~flag;
/* Display the map */
- display_autopick=1;
display_map(&cy, &cx);
- display_autopick=0;
-#ifdef JP
- put_str("²¿¤«¥¡¼¤ò²¡¤¹¤È¥²¡¼¥à¤ËÌá¤ê¤Þ¤¹", 23, 30);
-#else
- put_str("Hit any key to continue", 23, 30);
-#endif
- /* Hilite the player */
- move_cursor(cy, cx);
- /* Get any key */
- inkey();
}
+
+ display_autopick = 0;
+
}
else
{
}
/* Add to end of temp array */
- temp_x[temp_n] = fx;
- temp_y[temp_n] = fy;
+ temp_x[temp_n] = (byte)fx;
+ temp_y[temp_n] = (byte)fy;
temp_n++;
}
}
ask.sin_family = AF_INET;
- ask.sin_port = htons(server_port);
+ ask.sin_port = htons((unsigned short)server_port);
#ifndef WINDOWS
if ((sd=socket(PF_INET,SOCK_STREAM, 0)) < 0)
#ifndef WINDOWS
-/* WinÈǤÎÃæÅÀ¤ÈÊɤÎƦÉå¤ò¥Ô¥ê¥ª¥É¤È¥·¥ã¡¼¥×¤Ë¤¹¤ë¡£*/
+/* WinÈǤÎÃæÅÀ¤ÈÊɤÎƦÉå¤ò¥Ô¥ê¥ª¥É¤È¥·¥ã¡¼¥×¤Ë¤¹¤ë¡£ */
void win2unix(int col, char *buf)
{
char kabe;
#ifdef SJIS
euc2sjis(mesg);
#endif
- (void)((*angband_term[0]->text_hook)(x, y, len, col, mesg));
+ (void)((*angband_term[0]->text_hook)(x, y, len, (byte)col, mesg));
strncpy(&Term->scr->c[y][x], mesg, len);
for (i = x; i < x+len; i++)
{
mesg[i] = mesg[0];
}
mesg[i] = '\0';
- (void)((*angband_term[0]->text_hook)(x, y, len, col, mesg));
+ (void)((*angband_term[0]->text_hook)(x, y, len, (byte)col, mesg));
strncpy(&Term->scr->c[y][x], mesg, len);
for (i = x; i < x+len; i++)
{
break;
case 's': /* °ìʸ»ú */
- (void)((*angband_term[0]->text_hook)(x, y, 1, col, mesg));
+ (void)((*angband_term[0]->text_hook)(x, y, 1, (byte)col, mesg));
strncpy(&Term->scr->c[y][x], mesg, 1);
Term->scr->a[y][x] = col;
break;
(quest[i].k_idx == o_ptr->name1))
{
quest[i].status = QUEST_STATUS_COMPLETED;
- quest[i].complev = p_ptr->lev;
+ quest[i].complev = (byte)p_ptr->lev;
#ifdef JP
msg_print("¥¯¥¨¥¹¥È¤òãÀ®¤·¤¿¡ª");
#else
/*** ¥¢¥¤¥Æ¥à¤Î¥«¥Æ¥´¥ê»ØÄêͽÌó¸ì ***/
if (!strncmp(str, "¥¢¥¤¥Æ¥à",8)) len = 8;
+ else if (!strncmp(str, "¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È", 16)){
+ if (object_known_p(o_ptr)
+ && (artifact_p(o_ptr) || o_ptr->art_name))
+ len = 16;
+ }
+
else if (!strncmp(str, "Éð´ï", 4)){
switch( o_ptr->tval ){
case TV_BOW:
o_ptr->inscription = inscribe_flags(o_ptr, autopick_insc[idx]);
if (is_autopick2(o_ptr) ||
- (idx >= 0 && autopick_action[idx] == DO_AUTOPICK))
+ (idx >= 0 && (autopick_action[idx] & DO_AUTOPICK)))
{
disturb(0,0);
}
else if ((idx == -1 && is_opt_confirm_destroy(o_ptr)) ||
- (!always_pickup && (idx != -1 && autopick_action[idx] == DO_AUTODESTROY)))
+ (!always_pickup && (idx != -1 && (autopick_action[idx] & DO_AUTODESTROY))))
{
disturb(0,0);
/* Describe the object (with {terrible/special}) */
if (autosave_l && (p_ptr->chp >= 0))
do_cmd_save_game(TRUE);
+#ifdef JP
do_cmd_write_nikki(NIKKI_STAIR, 1, "Í¸Í¤ËÍî¤Á¤¿");
+#else
+ do_cmd_write_nikki(NIKKI_STAIR, 1, "You have fallen through a trap door!");
+#endif
dun_level++;
/* Leaving */
k = damroll(ddd, dss);
- k = critical_norm(n_weight, bonus, k, bonus, 0);
+ k = critical_norm(n_weight, bonus, k, (s16b)bonus, 0);
/* Apply the player damage bonuses */
k += p_ptr->to_d_m;
}
/* Modify the damage */
- k = mon_damage_mod(m_ptr, k, (((o_ptr->tval == TV_POLEARM) && (o_ptr->sval == SV_DEATH_SCYTHE)) || ((p_ptr->pclass == CLASS_BERSERKER) && one_in_(2))));
+ k = mon_damage_mod(m_ptr, k, (bool)(((o_ptr->tval == TV_POLEARM) && (o_ptr->sval == SV_DEATH_SCYTHE)) || ((p_ptr->pclass == CLASS_BERSERKER) && one_in_(2))));
if (((o_ptr->tval == TV_SWORD) && (o_ptr->sval == SV_DOKUBARI)) || (mode == HISSATSU_KYUSHO))
{
if ((randint(randint(r_ptr->level/7)+5) == 1) && !(r_ptr->flags1 & RF1_UNIQUE) && !(r_ptr->flags7 & RF7_UNIQUE2))
monster_desc(m_name, m_ptr, 0);
/* Auto-Recall if possible and visible */
- if (m_ptr->ml) monster_race_track((m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
+ if (m_ptr->ml) monster_race_track((bool)(m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
/* Track a new monster */
if (m_ptr->ml) health_track(c_ptr->m_idx);
monster_desc(m_name, m_ptr, 0);
/* Auto-Recall if possible and visible */
- if (m_ptr->ml) monster_race_track((m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
+ if (m_ptr->ml) monster_race_track((bool)(m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
/* Track a new monster */
if (m_ptr->ml) health_track(c_ptr->m_idx);
msg_format("You push past %s.", m_name);
#endif
- m_ptr->fy = (byte)py;
- m_ptr->fx = (byte)px;
+ m_ptr->fy = py;
+ m_ptr->fx = px;
cave[py][px].m_idx = c_ptr->m_idx;
c_ptr->m_idx = 0;
update_mon(cave[py][px].m_idx, TRUE);
energy_use = 0;
/* Hack -- Enter store */
- command_new = '_';
+ command_new = 253;
}
/* Handle "building doors" -KMW- */
{
if (record_fix_quest) do_cmd_write_nikki(NIKKI_FIX_QUEST_C, p_ptr->inside_quest, NULL);
quest[p_ptr->inside_quest].status = QUEST_STATUS_COMPLETED;
- quest[p_ptr->inside_quest].complev = p_ptr->lev;
+ quest[p_ptr->inside_quest].complev = (byte)p_ptr->lev;
#ifdef JP
msg_print("¥¯¥¨¥¹¥È¤òãÀ®¤·¤¿¡ª");
#else
else if (record_fix_quest)
do_cmd_write_nikki(NIKKI_FIX_QUEST_F, leaving_quest, NULL);
quest[leaving_quest].status = QUEST_STATUS_FAILED;
- quest[leaving_quest].complev = p_ptr->lev;
+ quest[leaving_quest].complev = (byte)p_ptr->lev;
if (quest[leaving_quest].type == QUEST_TYPE_RANDOM)
r_info[quest[leaving_quest].r_idx].flags1 &= ~(RF1_QUESTOR);
}
(quest[leaving_quest].status == QUEST_STATUS_TAKEN))
{
quest[leaving_quest].status = QUEST_STATUS_FAILED;
- quest[leaving_quest].complev = p_ptr->lev;
+ quest[leaving_quest].complev = (byte)p_ptr->lev;
if (quest[leaving_quest].type == QUEST_TYPE_RANDOM)
{
r_info[quest[leaving_quest].r_idx].flags1 &= ~(RF1_QUESTOR);
(quest[leaving_quest].status == QUEST_STATUS_TAKEN))
{
quest[leaving_quest].status = QUEST_STATUS_FAILED;
- quest[leaving_quest].complev = p_ptr->lev;
+ quest[leaving_quest].complev = (byte)p_ptr->lev;
if (quest[leaving_quest].type == QUEST_TYPE_RANDOM)
{
r_info[quest[leaving_quest].r_idx].flags1 &= ~(RF1_QUESTOR);
(quest[leaving_quest].status == QUEST_STATUS_TAKEN))
{
quest[leaving_quest].status = QUEST_STATUS_FAILED;
- quest[leaving_quest].complev = p_ptr->lev;
+ quest[leaving_quest].complev = (byte)p_ptr->lev;
if (quest[leaving_quest].type == QUEST_TYPE_RANDOM)
{
r_info[quest[leaving_quest].r_idx].flags1 &= ~(RF1_QUESTOR);
/* Save old player position */
p_ptr->oldpx = px;
p_ptr->oldpy = py;
- dungeon_type = c_ptr->special;
+ dungeon_type = (byte)c_ptr->special;
}
else
{
/* Hack again -- Is there a special encounter ??? */
if(p_ptr->wild_mode && (cave[py][px].feat != FEAT_TOWN))
{
- if (((wilderness[py][px].level + 5) > (p_ptr->lev / 2)) && rand_int(120+p_ptr->lev*10 - wilderness[py][px].level+5) < (21-p_ptr->skill_stl))
+ int tmp = 120 + p_ptr->lev*10 - wilderness[py][px].level + 5;
+ if (tmp < 1)
+ tmp = 1;
+ if (((wilderness[py][px].level + 5) > (p_ptr->lev / 2)) && rand_int(tmp) < (21-p_ptr->skill_stl))
{
/* Inform the player of his horrible fate :=) */
#ifdef JP
energy_use = 0;
/* Hack -- enter store */
- command_new = '_';
+ command_new = 253;
}
/* Hack -- enter a building if we are on one -KMW- */
if (quest[q_index].type == QUEST_TYPE_FIND_EXIT)
{
quest[q_index].status = QUEST_STATUS_COMPLETED;
- quest[q_index].complev = p_ptr->lev;
+ quest[q_index].complev = (byte)p_ptr->lev;
#ifdef JP
msg_print("¥¯¥¨¥¹¥È¤ò´°Î»¤·¤¿¡ª");
#else
(quest[leaving_quest].status == QUEST_STATUS_TAKEN))
{
quest[leaving_quest].status = QUEST_STATUS_FAILED;
- quest[leaving_quest].complev = p_ptr->lev;
+ quest[leaving_quest].complev = (byte)p_ptr->lev;
if (quest[leaving_quest].type == QUEST_TYPE_RANDOM)
{
r_info[quest[leaving_quest].r_idx].flags1 &= ~(RF1_QUESTOR);
bonus = (p_ptr->to_h_b + o_ptr->to_h + j_ptr->to_h);
chance = (p_ptr->skill_thb + ((weapon_exp[0][j_ptr->sval]-4000)/200 + bonus) * BTH_PLUS_ADJ);
- /* Assume a base multiplier */
- tmul = 1;
-
- /* Analyze the launcher */
- switch (j_ptr->sval)
- {
- /* Sling and ammo */
- case SV_SLING:
- {
- tmul = 2;
- energy_use = 8000;
- break;
- }
-
- /* Short Bow and Arrow */
- case SV_SHORT_BOW:
- {
- tmul = 2;
- energy_use = 10000;
- break;
- }
-
- /* Long Bow and Arrow */
- case SV_LONG_BOW:
- {
- tmul = 3;
- energy_use = 10000;
- break;
- }
-
- case SV_NAMAKE_BOW:
- {
- tmul = 3;
- energy_use = 7777;
- break;
- }
-
- /* Light Crossbow and Bolt */
- case SV_LIGHT_XBOW:
- {
- tmul = 3;
- energy_use = 12000;
- break;
- }
-
- /* Heavy Crossbow and Bolt */
- case SV_HEAVY_XBOW:
- {
- tmul = 4;
- energy_use = 13333;
- break;
- }
- }
+ energy_use = bow_energy(j_ptr->sval);
+ tmul = bow_tmul(j_ptr->sval);
/* Get extra "power" from "extra might" */
if (p_ptr->xtra_might) tmul++;
/* Hack -- Track this monster race */
- if (m_ptr->ml) monster_race_track((m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
+ if (m_ptr->ml) monster_race_track((bool)(m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
/* Hack -- Track this monster */
if (m_ptr->ml) health_track(c_ptr->m_idx);
if (!o_idx)
{
+#ifdef JP
msg_format("%s¤Ï¤É¤³¤«¤Ø¹Ô¤Ã¤¿¡£", o_name);
+#else
+ msg_format("The %s have gone to somewhere.", o_name);
+#endif
if (q_ptr->name1)
{
a_info[j_ptr->name1].cur_num = 0;
}
/* Take a turn */
+ energy_use = 100;
+
+ /* Rogue and Ninja gets bonus */
if ((p_ptr->pclass == CLASS_ROGUE) || (p_ptr->pclass == CLASS_NINJA))
- energy_use = 100-p_ptr->lev;
- else
- energy_use = 100;
+ energy_use -= p_ptr->lev;
/* Start at the player */
y = py;
/* Hack -- Track this monster race */
- if (m_ptr->ml) monster_race_track((m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
+ if (m_ptr->ml) monster_race_track((bool)(m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
/* Hack -- Track this monster */
if (m_ptr->ml) health_track(c_ptr->m_idx);
{
if (record_fix_quest) do_cmd_write_nikki(NIKKI_FIX_QUEST_C, i, NULL);
quest[i].status = QUEST_STATUS_COMPLETED;
- quest[i].complev = p_ptr->lev;
+ quest[i].complev = (byte)p_ptr->lev;
#ifdef JP
msg_print("¥¯¥¨¥¹¥È¤òãÀ®¤·¤¿¡ª");
#else
all = TRUE;
#ifdef JP
if (!get_string("̾Á°(±Ñ¸ì¤Î¾ì¹ç¾®Ê¸»ú¤Ç²Ä)",temp, 70))
- temp[0]=0;
- else
- sprintf(buf, "̾Á°:%s¤Ë¥Þ¥Ã¥Á",temp);
#else
if (!get_string("Enter name:",temp, 70))
+#endif
+ {
temp[0]=0;
- else
- sprintf(buf, "List of '%s'",temp);
+ return;
+ }
+#ifdef JP
+ sprintf(buf, "̾Á°:%s¤Ë¥Þ¥Ã¥Á",temp);
+#else
+ sprintf(buf, "Monsters with a name \"%s\"",temp);
#endif
}
else if (ident_info[i])
all = TRUE;
#ifdef JP
if (!get_string("̾Á°(±Ñ¸ì¤Î¾ì¹ç¾®Ê¸»ú¤Ç²Ä)",temp, 70))
- temp[0]=0;
- else
- sprintf(buf, "̾Á°:%s¤Ë¥Þ¥Ã¥Á",temp);
#else
if (!get_string("Enter name:",temp, 70))
+#endif
+ {
temp[0]=0;
- else
- sprintf(buf, "List of '%s'",temp);
+ return FALSE;
+ }
+#ifdef JP
+ sprintf(buf, "̾Á°:%s¤Ë¥Þ¥Ã¥Á",temp);
+#else
+ sprintf(buf, "List of '%s'",temp);
#endif
}
else if (ident_info[i])
#include "angband.h"
+
+/*
+ * mark strings for auto dump
+ */
+static char auto_dump_header[] = "# vvvvvvv== %s ==vvvvvvv";
+static char auto_dump_footer[] = "# ^^^^^^^== %s ==^^^^^^^";
+
+/*
+ * Remove old lines automatically generated before.
+ */
+static void remove_auto_dump(cptr orig_file, cptr mark)
+{
+ FILE *tmp_fff, *orig_fff;
+
+ char tmp_file[1024];
+ char buf[1024];
+ bool between_mark = FALSE;
+ bool success = FALSE;
+ int line_num = 0;
+ long header_location = 0;
+ char header_mark_str[80];
+ char footer_mark_str[80];
+ size_t mark_len;
+
+ sprintf(header_mark_str, auto_dump_header, mark);
+ sprintf(footer_mark_str, auto_dump_footer, mark);
+
+ mark_len = strlen(footer_mark_str);
+
+ /* If original file is not exist, nothing to do */
+ orig_fff = my_fopen(orig_file, "r");
+ if (!orig_fff)
+ {
+ return;
+ }
+
+ /* Open a new file */
+ tmp_fff = my_fopen_temp(tmp_file, 1024);
+ if (!tmp_fff) {
+#ifdef JP
+ msg_format("°ì»þ¥Õ¥¡¥¤¥ë %s ¤òºîÀ®¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£", tmp_file);
+#else
+ msg_format("Failed to create temporary file %s.", tmp_file);
+#endif
+ msg_print(NULL);
+ return;
+ }
+
+ while (1)
+ {
+ if (my_fgets(orig_fff, buf, 1024))
+ {
+ if (between_mark)
+ {
+ fseek(orig_fff, header_location, SEEK_SET);
+ between_mark = FALSE;
+ continue;
+ }
+ else
+ {
+ break;
+ }
+ }
+
+ if (!between_mark)
+ {
+ if (!strcmp(buf, header_mark_str))
+ {
+ header_location = ftell(orig_fff);
+ line_num = 0;
+ between_mark = TRUE;
+ success = TRUE;
+ }
+ else
+ {
+ fprintf(tmp_fff, "%s\n", buf);
+ }
+ }
+ else
+ {
+ if (!strncmp(buf, footer_mark_str, mark_len))
+ {
+ int tmp;
+
+ if (!sscanf(buf + mark_len, " (%d)", &tmp)
+ || tmp != line_num)
+ {
+ fseek(orig_fff, header_location, SEEK_SET);
+ }
+
+ between_mark = FALSE;
+ }
+ else
+ {
+ line_num++;
+ }
+ }
+ }
+ my_fclose(orig_fff);
+ my_fclose(tmp_fff);
+
+ if (success)
+ {
+ /* copy contents of temporally file */
+
+ tmp_fff = my_fopen(tmp_file, "r");
+ orig_fff = my_fopen(orig_file, "w");
+
+ while (!my_fgets(tmp_fff, buf, 1024))
+ fprintf(orig_fff, "%s\n", buf);
+
+ my_fclose(orig_fff);
+ my_fclose(tmp_fff);
+ }
+ fd_kill(tmp_file);
+
+ return;
+}
+
+/*
+ * Open file to append auto dump.
+ */
+static FILE *open_auto_dump(cptr buf, cptr mark, int *line)
+{
+ FILE *fff;
+
+ char header_mark_str[80];
+
+ sprintf(header_mark_str, auto_dump_header, mark);
+
+ /* Remove old macro dumps */
+ remove_auto_dump(buf, mark);
+
+ /* Append to the file */
+ fff = my_fopen(buf, "a");
+
+ /* Failure */
+ if (!fff) {
+#ifdef JP
+ msg_format("%s ¤ò³«¤¯¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£", buf);
+#else
+ msg_format("Failed to open %s.", buf);
+#endif
+ msg_print(NULL);
+ return NULL;
+ }
+
+ /* Start dumping */
+ fprintf(fff, "%s\n", header_mark_str);
+
+#ifdef JP
+ fprintf(fff, "# *·Ù¹ð!!* °Ê¹ß¤Î¹Ô¤Ï¼«Æ°À¸À®¤µ¤ì¤¿¤â¤Î¤Ç¤¹¡£\n");
+ fprintf(fff, "# *·Ù¹ð!!* ¸å¤Ç¼«Æ°Åª¤Ëºï½ü¤µ¤ì¤ë¤Î¤ÇÊÔ½¸¤·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£\n");
+#else
+ fprintf(fff, "# *Warning!!* The lines below are automatic dump.\n");
+ fprintf(fff, "# *Warning!!* Don't edit these! These lines will be deleted automaticaly.\n");
+#endif
+ *line = 2;
+
+ return fff;
+}
+
+/*
+ * Append foot part and close auto dump.
+ */
+static void close_auto_dump(FILE *fff, cptr mark, int line_num)
+{
+ char footer_mark_str[80];
+
+ sprintf(footer_mark_str, auto_dump_footer, mark);
+
+ /* End of dumping */
+#ifdef JP
+ fprintf(fff, "# *·Ù¹ð!!* °Ê¾å¤Î¹Ô¤Ï¼«Æ°À¸À®¤µ¤ì¤¿¤â¤Î¤Ç¤¹¡£\n");
+ fprintf(fff, "# *·Ù¹ð!!* ¸å¤Ç¼«Æ°Åª¤Ëºï½ü¤µ¤ì¤ë¤Î¤ÇÊÔ½¸¤·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£\n");
+#else
+ fprintf(fff, "# *Warning!!* The lines above are automatic dump.\n");
+ fprintf(fff, "# *Warning!!* Don't edit these! These lines will be deleted automaticaly.\n");
+#endif
+ line_num += 2;
+
+ fprintf(fff, "%s (%d)\n", footer_mark_str, line_num);
+
+ my_fclose(fff);
+
+ return;
+}
+
+
+/*
+ * Take note to the dialy.
+ */
+
errr do_cmd_write_nikki(int type, int num, cptr note)
{
int day, hour, min;
msg = (strlen(msg) >= q) ? (msg + q) : "";
/* Dump the messages, bottom to top */
- Term_putstr(0, 21-j, -1, (i+j < num_now ? TERM_WHITE : TERM_SLATE), msg);
+ Term_putstr(0, 21-j, -1, (bool)(i+j < num_now ? TERM_WHITE : TERM_SLATE), msg);
/* Hilite "shower" */
if (shower[0])
Term_clear();
#ifdef JP
- if (page == PAGE_AUTODESTROY) c_prt(TERM_YELLOW, "°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¼«Æ°Ç˲õ¤ò»ÈÍѤ¹¤ë¤È¤¤Î¤ß͸ú", 7, 6);
+ if (page == PAGE_AUTODESTROY) c_prt(TERM_YELLOW, "°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢¼«Æ°Ç˲õ¤ò»ÈÍѤ¹¤ë¤È¤¤Î¤ß͸ú", 4, 6);
#else
- if (page == PAGE_AUTODESTROY) c_prt(TERM_YELLOW, "Following options will protect items from easy auto-destroyer.", 7, 3);
+ if (page == PAGE_AUTODESTROY) c_prt(TERM_YELLOW, "Following options will protect items from easy auto-destroyer.", 4, 3);
#endif
/* Interact with the player */
#endif
option_info[opt[i]].o_text);
- if ((page == PAGE_AUTODESTROY) && i > 3) c_prt(a, buf, i + 5, 0);
+ if ((page == PAGE_AUTODESTROY) && i > 0) c_prt(a, buf, i + 5, 0);
else c_prt(a, buf, i + 2, 0);
}
- if ((page == PAGE_AUTODESTROY) && (k > 3)) l = 3;
+ if ((page == PAGE_AUTODESTROY) && (k > 0)) l = 3;
else l = 0;
/* Hilite current option */
move_cursor(k + 2 + l, 50);
prt("(3) Game-Play Options", 6, 5);
prt("(4) Disturbance Options", 7, 5);
prt("(5) Efficiency Options", 8, 5);
- prt("(6) Object Auto-Pick/Destroy Options", 9, 5);
+ prt("(6) Easy Auto-Destroyer Options", 9, 5);
prt("(R) Play-record Options", 10, 5);
/* Special choices */
#endif
/* ¤¤¤Þ¤Þ¤Ç»È¤Ã¤Æ¤¤¤¿¥á¥â¥ê²òÊü */
for( i = 0; i < max_autopick; i++){
- free(autopick_name[i]);
- free(autopick_insc[i]);
+ string_free(autopick_name[i]);
+ string_free(autopick_insc[i]);
}
max_autopick = 0;
*/
static errr macro_dump(cptr fname)
{
- int i;
+ static cptr mark = "Macro Dump";
+
+ int i, line_num;
FILE *fff;
char buf[1024];
-
/* Build the filename */
path_build(buf, 1024, ANGBAND_DIR_USER, fname);
FILE_TYPE(FILE_TYPE_TEXT);
/* Append to the file */
- fff = my_fopen(buf, "a");
-
- /* Failure */
- if (!fff) {
-#ifdef JP
- msg_format("%s ¤ò³«¤¯¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£", buf);
-#else
- msg_format("Failed to open %s.", buf);
-#endif
- msg_print(NULL);
- return (-1);
- }
-
-
- /* Skip space */
- fprintf(fff, "\n\n");
+ fff = open_auto_dump(buf, mark, &line_num);
+ if (!fff) return (-1);
/* Start dumping */
#ifdef JP
- fprintf(fff, "# ¼«Æ°¥Þ¥¯¥í¥»¡¼¥Ö\n\n");
+ fprintf(fff, "\n# ¼«Æ°¥Þ¥¯¥í¥»¡¼¥Ö\n\n");
#else
- fprintf(fff, "# Automatic macro dump\n\n");
+ fprintf(fff, "\n# Automatic macro dump\n\n");
#endif
-
+ line_num += 3;
/* Dump them */
for (i = 0; i < macro__num; i++)
{
- /* Start the macro */
-#ifdef JP
- fprintf(fff, "# ¼«Æ°¥¡¼ÇÛÃÖ¥»¡¼¥Ö\n\n");
-#else
- fprintf(fff, "# Macro '%d'\n\n", i);
-#endif
-
-
/* Extract the action */
ascii_to_text(buf, macro__act[i]);
fprintf(fff, "P:%s\n", buf);
/* End the macro */
- fprintf(fff, "\n\n");
- }
-
- /* Start dumping */
- fprintf(fff, "\n\n\n\n");
+ fprintf(fff, "\n");
+ /* count number of lines */
+ line_num += 3;
+ }
/* Close */
- my_fclose(fff);
+ close_auto_dump(fff, mark, line_num);
/* Success */
return (0);
*/
static errr keymap_dump(cptr fname)
{
+ static cptr mark = "Keymap Dump";
+ int line_num;
int i;
FILE *fff;
int mode;
-
/* Roguelike */
if (rogue_like_commands)
{
FILE_TYPE(FILE_TYPE_TEXT);
/* Append to the file */
- fff = my_fopen(buf, "a");
-
- /* Failure */
- if (!fff) {
-#ifdef JP
- msg_format("%s ¤ò³«¤¯¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£", buf);
-#else
- msg_format("Failed to open %s.", buf);
-#endif
- msg_print(NULL);
- return (-1);
- }
-
-
- /* Skip space */
- fprintf(fff, "\n\n");
+ fff = open_auto_dump(buf, mark, &line_num);
+ if (!fff) return -1;
/* Start dumping */
#ifdef JP
- fprintf(fff, "# ¼«Æ°¥¡¼ÇÛÃÖ¥»¡¼¥Ö\n\n");
+ fprintf(fff, "\n# ¼«Æ°¥¡¼ÇÛÃÖ¥»¡¼¥Ö\n\n");
#else
- fprintf(fff, "# Automatic keymap dump\n\n");
+ fprintf(fff, "\n# Automatic keymap dump\n\n");
#endif
-
+ line_num += 3;
/* Dump them */
for (i = 0; i < 256; i++)
/* Dump the macro */
fprintf(fff, "A:%s\n", buf);
fprintf(fff, "C:%d:%s\n", mode, key);
+ line_num += 2;
}
- /* Start dumping */
- fprintf(fff, "\n\n\n");
-
-
/* Close */
- my_fclose(fff);
+ close_auto_dump(fff, mark, line_num);
/* Success */
return (0);
/* Dump monster attr/chars */
else if (i == '2')
{
+ static cptr mark = "Monster attr/chars";
+ int line_num;
+
/* Prompt */
#ifdef JP
prt("¥³¥Þ¥ó¥É: ¥â¥ó¥¹¥¿¡¼¤Î[¿§/ʸ»ú]¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤½Ð¤·¤Þ¤¹", 15, 0);
safe_setuid_drop();
/* Append to the file */
- fff = my_fopen(buf, "a");
+ fff = open_auto_dump(buf, mark, &line_num);
+ if (!fff) continue;
/* Grab priv's */
safe_setuid_grab();
- /* Failure */
- if (!fff) {
-#ifdef JP
- msg_format("%s ¤ò³«¤¯¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£", buf);
-#else
- msg_format("Failed to open %s.", buf);
-#endif
- msg_print(NULL);
- continue;
- }
-
/* Start dumping */
- fprintf(fff, "\n\n");
#ifdef JP
- fprintf(fff, "# ¥â¥ó¥¹¥¿¡¼¤Î[¿§/ʸ»ú]¤ÎÀßÄê\n\n");
+ fprintf(fff, "\n# ¥â¥ó¥¹¥¿¡¼¤Î[¿§/ʸ»ú]¤ÎÀßÄê\n\n");
#else
- fprintf(fff, "# Monster attr/char definitions\n\n");
+ fprintf(fff, "\n# Monster attr/char definitions\n\n");
#endif
-
+ line_num += 3;
/* Dump monsters */
for (i = 0; i < max_r_idx; i++)
/* Dump a comment */
fprintf(fff, "# %s\n", (r_name + r_ptr->name));
-
+ line_num++;
/* Dump the monster attr/char info */
fprintf(fff, "R:%d:0x%02X:0x%02X\n\n", i,
(byte)(r_ptr->x_attr), (byte)(r_ptr->x_char));
+ line_num += 2;
}
- /* All done */
- fprintf(fff, "\n\n\n\n");
-
/* Close */
- my_fclose(fff);
+ close_auto_dump(fff, mark, line_num);
/* Message */
#ifdef JP
/* Dump object attr/chars */
else if (i == '3')
{
+ static cptr mark = "Object attr/chars";
+ int line_num;
+
/* Prompt */
#ifdef JP
prt("¥³¥Þ¥ó¥É: ¥¢¥¤¥Æ¥à¤Î[¿§/ʸ»ú]¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤½Ð¤·¤Þ¤¹", 15, 0);
safe_setuid_drop();
/* Append to the file */
- fff = my_fopen(buf, "a");
+ fff = open_auto_dump(buf, mark, &line_num);
+ if (!fff) continue;
/* Grab priv's */
safe_setuid_grab();
- /* Failure */
- if (!fff) {
-#ifdef JP
- msg_format("%s ¤ò³«¤¯¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£", buf);
-#else
- msg_format("Failed to open %s.", buf);
-#endif
- msg_print(NULL);
- continue;
- }
-
/* Start dumping */
- fprintf(fff, "\n\n");
#ifdef JP
- fprintf(fff, "# ¥¢¥¤¥Æ¥à¤Î[¿§/ʸ»ú]¤ÎÀßÄê\n\n");
+ fprintf(fff, "\n# ¥¢¥¤¥Æ¥à¤Î[¿§/ʸ»ú]¤ÎÀßÄê\n\n");
#else
- fprintf(fff, "# Object attr/char definitions\n\n");
+ fprintf(fff, "\n# Object attr/char definitions\n\n");
#endif
-
+ line_num += 3;
/* Dump objects */
for (i = 0; i < max_k_idx; i++)
/* Dump a comment */
fprintf(fff, "# %s\n", (k_name + k_ptr->name));
-
+ line_num++;
/* Dump the object attr/char info */
fprintf(fff, "K:%d:0x%02X:0x%02X\n\n", i,
(byte)(k_ptr->x_attr), (byte)(k_ptr->x_char));
+ line_num += 2;
}
- /* All done */
- fprintf(fff, "\n\n\n\n");
-
/* Close */
- my_fclose(fff);
+ close_auto_dump(fff, mark, line_num);
/* Message */
#ifdef JP
/* Dump feature attr/chars */
else if (i == '4')
{
+ static cptr mark = "Feature attr/chars";
+ int line_num;
+
/* Prompt */
#ifdef JP
prt("¥³¥Þ¥ó¥É: ÃÏ·Á¤Î[¿§/ʸ»ú]¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤½Ð¤·¤Þ¤¹", 15, 0);
safe_setuid_drop();
/* Append to the file */
- fff = my_fopen(buf, "a");
+ fff = open_auto_dump(buf, mark, &line_num);
+ if (!fff) continue;
/* Grab priv's */
safe_setuid_grab();
- /* Failure */
- if (!fff) {
-#ifdef JP
- msg_format("%s ¤ò³«¤¯¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£", buf);
-#else
- msg_format("Failed to open %s.", buf);
-#endif
- msg_print(NULL);
- continue;
- }
-
/* Start dumping */
- fprintf(fff, "\n\n");
#ifdef JP
- fprintf(fff, "# ÃÏ·Á¤Î[¿§/ʸ»ú]¤ÎÀßÄê\n\n");
+ fprintf(fff, "\n# ÃÏ·Á¤Î[¿§/ʸ»ú]¤ÎÀßÄê\n\n");
#else
- fprintf(fff, "# Feature attr/char definitions\n\n");
+ fprintf(fff, "\n# Feature attr/char definitions\n\n");
#endif
-
+ line_num += 3;
/* Dump features */
for (i = 0; i < max_f_idx; i++)
/* Dump a comment */
fprintf(fff, "# %s\n", (f_name + f_ptr->name));
+ line_num++;
/* Dump the feature attr/char info */
fprintf(fff, "F:%d:0x%02X:0x%02X\n\n", i,
(byte)(f_ptr->x_attr), (byte)(f_ptr->x_char));
+ line_num += 2;
}
- /* All done */
- fprintf(fff, "\n\n\n\n");
-
/* Close */
- my_fclose(fff);
+ close_auto_dump(fff, mark, line_num);
/* Message */
#ifdef JP
monster_race *r_ptr = &r_info[r];
byte da = (r_ptr->d_attr);
- char dc = (r_ptr->d_char);
+ byte dc = (r_ptr->d_char);
byte ca = (r_ptr->x_attr);
- char cc = (r_ptr->x_char);
+ byte cc = (r_ptr->x_char);
/* Label the object */
#ifdef JP
object_kind *k_ptr = &k_info[k];
byte da = (byte)k_ptr->d_attr;
- char dc = (byte)k_ptr->d_char;
+ byte dc = (byte)k_ptr->d_char;
byte ca = (byte)k_ptr->x_attr;
- char cc = (byte)k_ptr->x_char;
+ byte cc = (byte)k_ptr->x_char;
/* Label the object */
#ifdef JP
feature_type *f_ptr = &f_info[f];
byte da = (byte)f_ptr->d_attr;
- char dc = (byte)f_ptr->d_char;
+ byte dc = (byte)f_ptr->d_char;
byte ca = (byte)f_ptr->x_attr;
- char cc = (byte)f_ptr->x_char;
+ byte cc = (byte)f_ptr->x_char;
/* Label the object */
#ifdef JP
/* Dump colors */
else if (i == '2')
{
+ static cptr mark = "Colors";
+ int line_num;
+
/* Prompt */
#ifdef JP
prt("¥³¥Þ¥ó¥É: ¥«¥é¡¼¤ÎÀßÄê¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤½Ð¤·¤Þ¤¹", 8, 0);
safe_setuid_drop();
/* Append to the file */
- fff = my_fopen(buf, "a");
+ fff = open_auto_dump(buf, mark, &line_num);
+ if (!fff) continue;
/* Grab priv's */
safe_setuid_grab();
- /* Failure */
- if (!fff) {
-#ifdef JP
- msg_format("%s ¤ò³«¤¯¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£", buf);
-#else
- msg_format("Failed to open %s.", buf);
-#endif
- msg_print(NULL);
- continue;
- }
-
/* Start dumping */
- fprintf(fff, "\n\n");
#ifdef JP
- fprintf(fff, "# ¥«¥é¡¼¤ÎÀßÄê\n\n");
+ fprintf(fff, "\n# ¥«¥é¡¼¤ÎÀßÄê\n\n");
#else
- fprintf(fff, "# Color redefinitions\n\n");
+ fprintf(fff, "\n# Color redefinitions\n\n");
#endif
-
+ line_num += 3;
/* Dump colors */
for (i = 0; i < 256; i++)
#else
fprintf(fff, "# Color '%s'\n", name);
#endif
-
+ line_num++;
/* Dump the monster attr/char info */
fprintf(fff, "V:%d:0x%02X:0x%02X:0x%02X:0x%02X\n\n",
i, kv, rv, gv, bv);
+ line_num += 2;
}
- /* All done */
- fprintf(fff, "\n\n\n\n");
-
/* Close */
- my_fclose(fff);
+ close_auto_dump(fff, mark, line_num);
/* Message */
#ifdef JP
store_type *st_ptr;
object_type *o_ptr;
- int tval;
+ byte tval;
int i=0;
int j=0;
#ifdef JP
show_file(TRUE, file_name, "*´ÕÄê*ºÑ¤ßÉð´ï/Ëɶñ¤ÎÂÑÀ¥ê¥¹¥È", 0, 0);
#else
- show_file(TRUE, file_name, "Resistances of *identifyed* equipment", 0, 0);
+ show_file(TRUE, file_name, "Resistances of *identified* equipment", 0, 0);
#endif
/* Remove the file */
{
char buf[1024], tmp[256] = "screen.html";
+#ifdef JP
if (!get_string("¥Õ¥¡¥¤¥ë̾: ", tmp, 80))
+#else
+ if (!get_string("File name: ", tmp, 80))
+#endif
return;
/* Build the filename */
object_prep(q_ptr, z);
/* Make it an artifact */
- q_ptr->name1 = who[k];
+ q_ptr->name1 = (byte)who[k];
/* Describe the artifact */
object_desc_store(base_name, q_ptr, FALSE, 0);
if(p_ptr->realm1 != REALM_NONE)
{
+#ifdef JP
fprintf(fff,"%s¤ÎËâË¡½ñ\n",realm_names[p_ptr->realm1]);
+#else
+ fprintf(fff,"%s Spellbook\n",realm_names[p_ptr->realm1]);
+#endif
for (i = 0; i < 32; i++)
{
if (!is_magic(p_ptr->realm1))
if(p_ptr->realm2 != REALM_NONE)
{
- fprintf(fff,"\n%s¤ÎËâË¡½ñ\n",realm_names[p_ptr->realm2]);
+ fprintf(fff,"\n%s Spellbook\n",realm_names[p_ptr->realm2]);
for (i = 0; i < 32; i++)
{
if (!is_magic(p_ptr->realm1))
if (!r_info[d_info[i].final_guardian].max_num) seiha = TRUE;
}
else if (max_dlv[i] == d_info[i].maxdepth) seiha = TRUE;
+#ifdef JP
fprintf(fff,"%c%-12s : %3d ³¬\n", seiha ? '!' : ' ', d_name + d_info[i].name, max_dlv[i]);
+#else
+ fprintf(fff,"%c%-16s : level %3d\n", seiha ? '!' : ' ', d_name + d_info[i].name, max_dlv[i]);
+#endif
}
}
fprintf(fff, tmp_str);
}
}
+#ifdef JP
if (!total) fprintf(fff, "¤Ê¤·\n");
+#else
+ if (!total) fprintf(fff, "Nothing.\n");
+#endif
}
/* Close the file */
fd_kill(file_name);
}
+
+/*
+ * Check the status of "autopick"
+ */
+static void do_cmd_knowledge_autopick(void)
+{
+ int k;
+ FILE *fff;
+ char file_name[1024];
+
+ /* Open a new file */
+ fff = my_fopen_temp(file_name, 1024);
+
+ if (!fff)
+ {
+#ifdef JP
+ msg_format("°ì»þ¥Õ¥¡¥¤¥ë %s ¤òºîÀ®¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£", file_name);
+#else
+ msg_format("Failed to create temporary file %s.", file_name);
+#endif
+ msg_print(NULL);
+ return;
+ }
+
+ if (!max_autopick)
+ {
+#ifdef JP
+ fprintf(fff, "¼«Æ°Ç˲õ/½¦¤¤¤Ë¤Ï²¿¤âÅÐÏ¿¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
+#else
+ fprintf(fff, "No preference for auto picker/destroyer.");
+#endif
+ }
+ else
+ {
+#ifdef JP
+ fprintf(fff, " ¼«Æ°½¦¤¤/Ç˲õ¤Ë¤Ï¸½ºß %d¹ÔÅÐÏ¿¤µ¤ì¤Æ¤¤¤Þ¤¹¡£\n\n", max_autopick);
+#else
+ fprintf(fff, " There are %d registered lines for auto picker/destroyer.\n\n", max_autopick);
+#endif
+ }
+
+ for (k = 0; k < max_autopick; k++)
+ {
+ if (!(autopick_action[k] & DO_AUTOPICK))
+ {
+#ifdef JP
+ fprintf(fff, " [ÊüÃÖ]");
+#else
+ fprintf(fff, " [Leave]");
+#endif
+ }
+ else if ((autopick_action[k] & DO_AUTODESTROY))
+ {
+#ifdef JP
+ fprintf(fff, " [Ç˲õ]");
+#else
+ fprintf(fff, " [Destroy]");
+#endif
+ }
+ else
+ {
+#ifdef JP
+ fprintf(fff, " [½¦¤¦]");
+#else
+ fprintf(fff, " [Pickup]");
+#endif
+ }
+
+ fprintf(fff, " %s", autopick_name[k]);
+ if(autopick_insc[k] != NULL)
+ fprintf(fff, " {%s}", autopick_insc[k]);
+ fprintf(fff, "\n");
+ }
+ /* Close the file */
+ my_fclose(fff);
+ /* Display the file contents */
+#ifdef JP
+ show_file(TRUE, file_name, "¼«Æ°½¦¤¤/Ç˲õ ÀßÄê¥ê¥¹¥È", 0, 0);
+#else
+ show_file(TRUE, file_name, "Auto-picker/Destroyer", 0, 0);
+#endif
+
+ /* Remove the file */
+ fd_kill(file_name);
+}
+
+
+
/*
* Interact with "knowledge"
*/
void do_cmd_knowledge(void)
{
- int i;
-
+ int i,p=0;
/* File type is "TEXT" */
FILE_TYPE(FILE_TYPE_TEXT);
-
/* Save the screen */
screen_save();
-
/* Interact until done */
while (1)
{
/* Clear screen */
Term_clear();
-
/* Ask for a choice */
#ifdef JP
- prt("¸½ºß¤ÎÃ챤ò³Îǧ¤¹¤ë", 2, 0);
+ prt(format("%d/2 ¥Ú¡¼¥¸", (p+1)), 2, 65);
+ prt("¸½ºß¤ÎÃ챤ò³Îǧ¤¹¤ë", 3, 0);
#else
- prt("Display current knowledge", 2, 0);
+ prt(format("page %d/2", (p+1)), 2, 65);
+ prt("Display current knowledge", 3, 0);
#endif
-
/* Give some choices */
#ifdef JP
- prt("(1) ´ûÃΤÎÅÁÀâ¤Î¥¢¥¤¥Æ¥à ¤Î°ìÍ÷", 4, 5);
- prt("(2) ´ûÃΤÎÀ¸¤¤Æ¤¤¤ë¥æ¥Ë¡¼¥¯¡¦¥â¥ó¥¹¥¿¡¼ ¤Î°ìÍ÷", 5, 5);
- prt("(3) Åݤ·¤¿¥æ¥Ë¡¼¥¯¡¦¥â¥ó¥¹¥¿¡¼ ¤Î°ìÍ÷", 6, 5);
- prt("(4) ´ûÃΤΥ¢¥¤¥Æ¥à ¤Î°ìÍ÷", 7, 5);
- prt("(5) Åݤ·¤¿Å¨¤Î¿ô ¤Î°ìÍ÷", 8, 5);
- prt("(6) ÆÍÁ³ÊÑ°Û ¤Î°ìÍ÷", 9, 5);
- prt("(7) ¸½ºß¤Î¥Ú¥Ã¥È ¤Î°ìÍ÷", 10, 5);
- prt("(8) ¼Â¹ÔÃæ¤Î¥¯¥¨¥¹¥È ¤Î°ìÍ÷", 11, 5);
- prt("(9) ¥×¥ì¥¤¥ä¡¼¤ÎÆÁ ¤Î°ìÍ÷", 12, 5);
- prt("(a) Éð´ï¤Î·Ð¸³ÃÍ ¤Î°ìÍ÷", 13, 5);
- prt("(b) ËâË¡¤Î·Ð¸³ÃÍ ¤Î°ìÍ÷", 14, 5);
- prt("(c) µ»Ç½¤Î·Ð¸³ÃÍ ¤Î°ìÍ÷", 15, 5);
- prt("(d) ¾Þ¶â¼ó ¤Î°ìÍ÷", 16, 5);
- prt("(e) ²æ¤¬²È¤Î¥¢¥¤¥Æ¥à ¤Î°ìÍ÷", 17, 5);
- prt("(f) *´ÕÄê*ºÑ¤ßÁõÈ÷¤ÎÂÑÀ ¤Î°ìÍ÷", 18, 5);
- prt("(g) ¼«Ê¬¤Ë´Ø¤¹¤ë¾ðÊó ¤Î°ìÍ÷", 19, 5);
- prt("(h) Æþ¤Ã¤¿¥À¥ó¥¸¥ç¥ó ¤Î°ìÍ÷", 20, 5);
-#else
- prt("(1) Display known artifacts", 4, 5);
- prt("(2) Display known uniques", 5, 5);
- prt("(3) Display dead uniques", 6, 5);
- prt("(4) Display known objects", 7, 5);
- prt("(5) Display kill count", 8, 5);
- prt("(6) Display mutations", 9, 5);
- prt("(7) Display current pets", 10, 5);
- prt("(8) Display current quests", 11, 5);
- prt("(9) Display virtues", 12, 5);
- prt("(a) Display weapon proficiency", 13, 5);
- prt("(b) Display spell proficiency", 14, 5);
- prt("(c) Display misc. proficiency", 15, 5);
- prt("(d) Display wanted monsters", 16, 5);
- prt("(e) Display home inventory", 17, 5);
- prt("(f) Display *identifyed* equip.", 18, 5);
- prt("(g) Display about yourself", 19, 5);
- prt("(h) Display dungeons", 20, 5);
+ if (p == 0) {
+ prt("(1) ´ûÃΤÎÅÁÀâ¤Î¥¢¥¤¥Æ¥à ¤Î°ìÍ÷", 6, 5);
+ prt("(2) ´ûÃΤΥ¢¥¤¥Æ¥à ¤Î°ìÍ÷", 7, 5);
+ prt("(3) ´ûÃΤÎÀ¸¤¤Æ¤¤¤ë¥æ¥Ë¡¼¥¯¡¦¥â¥ó¥¹¥¿¡¼ ¤Î°ìÍ÷", 8, 5);
+ prt("(4) Åݤ·¤¿¥æ¥Ë¡¼¥¯¡¦¥â¥ó¥¹¥¿¡¼ ¤Î°ìÍ÷", 9, 5);
+ prt("(5) Åݤ·¤¿Å¨¤Î¿ô ¤Î°ìÍ÷", 10, 5);
+ prt("(6) ¾Þ¶â¼ó ¤Î°ìÍ÷", 11, 5);
+ prt("(7) ¸½ºß¤Î¥Ú¥Ã¥È ¤Î°ìÍ÷", 12, 5);
+ prt("(8) ²æ¤¬²È¤Î¥¢¥¤¥Æ¥à ¤Î°ìÍ÷", 13, 5);
+ prt("(9) *´ÕÄê*ºÑ¤ßÁõÈ÷¤ÎÂÑÀ ¤Î°ìÍ÷", 14, 5);
+ } else {
+ prt("(a) ¼«Ê¬¤Ë´Ø¤¹¤ë¾ðÊó ¤Î°ìÍ÷", 6, 5);
+ prt("(b) ÆÍÁ³ÊÑ°Û ¤Î°ìÍ÷", 7, 5);
+ prt("(c) Éð´ï¤Î·Ð¸³ÃÍ ¤Î°ìÍ÷", 8, 5);
+ prt("(d) ËâË¡¤Î·Ð¸³ÃÍ ¤Î°ìÍ÷", 9, 5);
+ prt("(e) µ»Ç½¤Î·Ð¸³ÃÍ ¤Î°ìÍ÷", 10, 5);
+ prt("(f) ¥×¥ì¥¤¥ä¡¼¤ÎÆÁ ¤Î°ìÍ÷", 11, 5);
+ prt("(g) Æþ¤Ã¤¿¥À¥ó¥¸¥ç¥ó ¤Î°ìÍ÷", 12, 5);
+ prt("(h) ¼Â¹ÔÃæ¤Î¥¯¥¨¥¹¥È ¤Î°ìÍ÷", 13, 5);
+ prt("(i) ¸½ºß¤Î¼«Æ°½¦¤¤/Ç˲õÀßÄê ¤Î°ìÍ÷", 14, 5);
+ }
+#else
+ if (p == 0) {
+ prt("(1) Display known artifacts", 6, 5);
+ prt("(2) Display known objects", 7, 5);
+ prt("(3) Display known uniques", 8, 5);
+ prt("(4) Display dead uniques", 9, 5);
+ prt("(5) Display kill count", 10, 5);
+ prt("(6) Display wanted monsters", 11, 5);
+ prt("(7) Display current pets", 12, 5);
+ prt("(8) Display home inventory", 13, 5);
+ prt("(9) Display *identified* equip.", 14, 5);
+ } else {
+ prt("(a) Display about yourself", 6, 5);
+ prt("(b) Display mutations", 7, 5);
+ prt("(c) Display weapon proficiency", 8, 5);
+ prt("(d) Display spell proficiency", 9, 5);
+ prt("(e) Display misc. proficiency", 10, 5);
+ prt("(f) Display virtues", 11, 5);
+ prt("(g) Display dungeons", 12, 5);
+ prt("(h) Display current quests", 13, 5);
+ prt("(i) Display auto pick/destroy", 14, 5);
+ }
#endif
-
/* Prompt */
#ifdef JP
- prt("¥³¥Þ¥ó¥É:", 22, 0);
+ prt("-³¤¯-", 16, 8);
+ prt("ESC) È´¤±¤ë", 21, 1);
+ prt("SPACE) ¼¡¥Ú¡¼¥¸", 21, 30);
+ /*prt("-) Á°¥Ú¡¼¥¸", 21, 60);*/
+ prt("¥³¥Þ¥ó¥É:", 20, 0);
#else
- prt("Command: ", 22, 0);
+ prt("-more-", 16, 8);
+ prt("ESC) Exit menu", 21, 1);
+ prt("SPACE) Next page", 21, 30);
+ /*prt("-) Previous page", 21, 60);*/
+ prt("Command: ", 20, 0);
#endif
-
/* Prompt */
i = inkey();
-
/* Done */
if (i == ESCAPE) break;
-
switch (i)
{
+ case ' ': /* Page change */
+ case '-':
+ p = 1 - p;
+ break;
case '1': /* Artifacts */
do_cmd_knowledge_artifacts();
break;
- case '2': /* Uniques */
- do_cmd_knowledge_uniques();
+ case '2': /* Objects */
+ do_cmd_knowledge_objects();
break;
case '3': /* Uniques */
- do_cmd_knowledge_uniques_dead();
+ do_cmd_knowledge_uniques();
break;
- case '4': /* Objects */
- do_cmd_knowledge_objects();
+ case '4': /* Uniques */
+ do_cmd_knowledge_uniques_dead();
break;
case '5': /* Kill count */
do_cmd_knowledge_kill_count();
break;
- case '6': /* Mutations */
- do_cmd_knowledge_mutations();
+ case '6': /* wanted */
+ do_cmd_knowledge_kubi();
break;
case '7': /* Pets */
do_cmd_knowledge_pets();
break;
- case '8': /* Quests */
- do_cmd_knowledge_quests();
+ case '8': /* Home */
+ do_cmd_knowledge_home();
break;
- case '9': /* Virtues */
- do_cmd_knowledge_virtues();
+ case '9': /* Resist list */
+ do_cmd_knowledge_inven();
+ break;
+ /* Next page */
+ case 'a': /* Max stat */
+ do_cmd_knowledge_stat();
break;
- case 'a': /* weapon-exp */
+ case 'b': /* Mutations */
+ do_cmd_knowledge_mutations();
+ break;
+ case 'c': /* weapon-exp */
do_cmd_knowledge_weapon_exp();
break;
- case 'b': /* spell-exp */
+ case 'd': /* spell-exp */
do_cmd_knowledge_spell_exp();
break;
- case 'c': /* skill-exp */
+ case 'e': /* skill-exp */
do_cmd_knowledge_skill_exp();
break;
- case 'd': /* skill-exp */
- do_cmd_knowledge_kubi();
- break;
- case 'e': /* skill-exp */
- do_cmd_knowledge_home();
+ case 'f': /* Virtues */
+ do_cmd_knowledge_virtues();
break;
- case 'f': /* Resist list */
- do_cmd_knowledge_inven();
+ case 'g': /* Dungeon */
+ do_cmd_knowledge_dungeon();
break;
- case 'g': /* Max stat */
- do_cmd_knowledge_stat();
+ case 'h': /* Quests */
+ do_cmd_knowledge_quests();
break;
- case 'h': /* Dungeon */
- do_cmd_knowledge_dungeon();
+ case 'i': /* Autopick */
+ do_cmd_knowledge_autopick();
break;
default: /* Unknown option */
bell();
}
-
/* Flush messages */
msg_print(NULL);
}
-
/* Restore the screen */
screen_load();
}
(void)self_knowledge();
break;
case 21: /* Teleport Level */
+#ifdef JP
if (!get_check("ËÜÅö¤Ë¾¤Î³¬¤Ë¥Æ¥ì¥Ý¡¼¥È¤·¤Þ¤¹¤«¡©")) return FALSE;
+#else
+ if (!get_check("Are you sure? (Teleport Level)")) return FALSE;
+#endif
(void)teleport_player_level();
break;
case 22: /* Word of Recall */
bool pet = (randint(3) == 1);
bool group = !(pet && (plev < 50));
- if (summon_specific((pet ? -1 : 0), py, px, (plev * 3) / 2, SUMMON_DEMON, group, FALSE, pet, FALSE, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, (plev * 3) / 2, SUMMON_DEMON, group, FALSE, pet, FALSE, (bool)(!pet)))
{
#ifdef JP
msg_print("ⲫ¤Î°½¤¬½¼Ëþ¤·¤¿¡£");
group = TRUE;
}
- if (summon_specific((pet ? -1 : 0), py, px, (plev * 3) / 2, type, group, FALSE, pet, !pet, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, (plev * 3) / 2, type, group, FALSE, pet, (bool)(!pet), (bool)(!pet)))
{
#ifdef JP
msg_print("Î䤿¤¤É÷¤¬¤¢¤Ê¤¿¤Î¼þ¤ê¤Ë¿á¤»Ï¤á¤¿¡£¤½¤ì¤ÏÉåÇÔ½¤ò±¿¤ó¤Ç¤¤¤ë...");
#endif
- if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_SPIDER, TRUE, FALSE, pet, FALSE, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_SPIDER, TRUE, FALSE, pet, FALSE, (bool)(!pet)))
{
if (!pet)
#ifdef JP
#endif
- if (summon_specific((pet ? -1 : 0), py, px, summon_lev, type, group, FALSE, pet, FALSE, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, summon_lev, type, group, FALSE, pet, FALSE, (bool)(!pet)))
{
if (!pet)
#ifdef JP
type = SUMMON_KAMIKAZE;
}
- if (summon_specific((pet ? -1 : 0), y, x, summon_lev, type, group, FALSE, pet, FALSE, !pet))
+ if (summon_specific((pet ? -1 : 0), y, x, summon_lev, type, group, FALSE, pet, FALSE, (bool)(!pet)))
{
if (!pet)
#ifdef JP
#endif
- if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_UNDEAD, group, FALSE, pet, FALSE, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_UNDEAD, group, FALSE, pet, FALSE, (bool)(!pet)))
{
if (!pet)
#ifdef JP
#endif
- if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HYDRA, group, FALSE, pet, FALSE, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HYDRA, group, FALSE, pet, FALSE, (bool)(!pet)))
{
if (!pet)
#ifdef JP
type = 0;
}
- if (summon_specific((pet ? -1 : 0), py, px, summon_lev, type, group, FALSE, pet, unique_okay, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, summon_lev, type, group, FALSE, pet, unique_okay, (bool)(!pet)))
{
if (!pet)
#ifdef JP
#endif
- if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HOUND, TRUE, FALSE, pet, FALSE, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HOUND, TRUE, FALSE, pet, FALSE, (bool)(!pet)))
{
if (!pet)
#ifdef JP
#endif
- if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_CYBER, FALSE, FALSE, pet, FALSE, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_CYBER, FALSE, FALSE, pet, FALSE, (bool)(!pet)))
{
if (!pet)
#ifdef JP
#endif
- if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_DRAGON, group, FALSE, pet, FALSE, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_DRAGON, group, FALSE, pet, FALSE, (bool)(!pet)))
{
if (!pet)
#ifdef JP
#endif
- if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_DEMON, group, FALSE, pet, FALSE, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_DEMON, group, FALSE, pet, FALSE, (bool)(!pet)))
{
if (!pet)
#ifdef JP
#endif
- if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HI_UNDEAD, group, FALSE, pet, unique_okay, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HI_UNDEAD, group, FALSE, pet, unique_okay, (bool)(!pet)))
{
if (!pet)
#ifdef JP
#endif
- if (summon_specific((pet ? -1 : 0), py, px, summon_lev, type, group, FALSE, pet, unique_okay, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, summon_lev, type, group, FALSE, pet, unique_okay, (bool)(!pet)))
{
if (!pet)
#ifdef JP
no_trump = TRUE;
break;
case 26: /* Teleport Level */
+#ifdef JP
if (!get_check("ËÜÅö¤Ë¾¤Î³¬¤Ë¥Æ¥ì¥Ý¡¼¥È¤·¤Þ¤¹¤«¡©")) return FALSE;
+#else
+ if (!get_check("Are you sure? (Teleport Level)")) return FALSE;
+#endif
(void)teleport_player_level();
break;
case 27: /* Teleport Away */
bool pet = (randint(3) != 1);
bool group = !(pet && (plev < 50));
- if (summon_specific((pet ? -1 : 0), py, px, plev*2/3+randint(plev/2), SUMMON_DEMON, group, FALSE, pet, FALSE, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, plev*2/3+randint(plev/2), SUMMON_DEMON, group, FALSE, pet, FALSE, (bool)(!pet)))
{
#ifdef JP
msg_print("ⲫ¤Î°½¤¬½¼Ëþ¤·¤¿¡£");
switch (spell)
{
- case 0: /* Song of Holding ÃÙÆߤβÎ*/
+ case 0: /* Song of Holding ÃÙÆߤβΠ*/
#ifdef JP
msg_print("¤æ¤Ã¤¯¤ê¤È¤·¤¿¥á¥í¥Ç¥£¤ò¸ý¤º¤µ¤ß»Ï¤á¤¿¡¥¡¥¡¥");
#else
}
else if ((o_ptr->tval == TV_MUSIC_BOOK) && (randint(200) < spell))
{
+#ifdef JP
msg_print("¤¤¤ä¤Ê²»¤¬¶Á¤¤¤¿");
+#else
+msg_print("An infernal sound echoed.");
+#endif
aggravate_monsters(0);
}
(void)do_res_stat(A_INT);
(void)do_res_stat(A_CHR);
(void)set_shero(0,TRUE);
+ update_stuff();
hp_player(5000);
ident = TRUE;
break;
}
case ART_MURAMASA:
{
+#ifdef JP
if (get_check("ËÜÅö¤Ë»È¤¤¤Þ¤¹¤«¡©"))
+#else
+ if (get_check("Are you sure?!"))
+#endif
{
#ifdef JP
msg_print("¼Àµ¤¬¿Ì¤¨¤¿¡¥¡¥¡¥");
{
bool pet = (randint(5) != 1);
- if (summon_specific((pet ? -1 : 0), py, px, ((p_ptr->lev * 3) / 2), SUMMON_HOUND, TRUE, FALSE, pet, FALSE, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, ((p_ptr->lev * 3) / 2), SUMMON_HOUND, TRUE, FALSE, pet, FALSE, (bool)(!pet)))
{
if (pet)
{
if (!o_ptr->xtra4 && ((o_ptr->sval == SV_LITE_TORCH) || (o_ptr->sval == SV_LITE_LANTERN)))
{
+#ifdef JP
msg_print("dzÎÁ¤¬¤Ê¤¤¡£");
+#else
+ msg_print("It has no fuel.");
+#endif
energy_use = 0;
return;
}
{
if (tval == TV_ROD)
{
- strcat(dummy, format(" %-22.22s ½¼Å¶:%2d/%2d%3d%%", k_name + k_info[k_idx].name, p_ptr->magic_num1[ctr+ext] ? (p_ptr->magic_num1[ctr+ext] - 1) / (0x10000L * k_info[k_idx].pval) +1 : 0, p_ptr->magic_num2[ctr+ext], chance));
+strcat(dummy, format(
+#ifdef JP
+ " %-22.22s ½¼Å¶:%2d/%2d%3d%%",
+#else
+ " %-22.22s (%2d/%2d) %3d%%",
+#endif
+ k_name + k_info[k_idx].name,
+ p_ptr->magic_num1[ctr+ext] ?
+ (p_ptr->magic_num1[ctr+ext] - 1) / (0x10000L * k_info[k_idx].pval) +1 : 0,
+ p_ptr->magic_num2[ctr+ext], chance));
if (p_ptr->magic_num1[ctr+ext] > k_info[k_idx].pval * (p_ptr->magic_num2[ctr+ext]-1) * 0x10000L) col = TERM_RED;
}
else
#define MIND_MIRROR_MASTER 3
#define MIND_NINJUTSU 4
-/* A hack for cave.c */
-#define BMP_FIRST_PC_CLASS 164
-#define BMP_FIRST_PC_RACE 128
-
/*
* Size of memory reserved for initialization of some arrays
#define MFLAG_NOPET 0x02 /* Cannot make monster pet */
#define MFLAG_NOGENO 0x04 /* Cannot genocide */
#define MFLAG_CHAMELEON 0x08 /* Monster is chameleon */
+#define MFLAG_NOFLOW 0x10 /* Monster is in no_flow_by_smell mode */
/*
#define is_friendly(A) \
- (((A)->smart & SM_FRIENDLY) ? TRUE : FALSE)
+ (bool)(((A)->smart & SM_FRIENDLY) ? TRUE : FALSE)
#define is_pet(A) \
- (((A)->smart & SM_PET) ? TRUE : FALSE)
+ (bool)(((A)->smart & SM_PET) ? TRUE : FALSE)
#define is_hostile(A) \
- ((is_friendly(A) || is_pet(A)) ? FALSE : TRUE)
+ (bool)((is_friendly(A) || is_pet(A)) ? FALSE : TRUE)
/*** Macro Definitions ***/
#define MON_JIZOTAKO 1065
#define MAX_AUTOPICK 1009
-#define DONT_AUTOPICK 0
-#define DO_AUTOPICK 1
-#define DO_AUTODESTROY 2
+#define DO_AUTOPICK 0x01
+#define DO_AUTODESTROY 0x02
+#define DO_DISPLAY 0x04
+#define DONT_AUTOPICK 0x08
+#define ITEM_DISPLAY 0x10
#define MAGIC_GLOVE_REDUCE_MANA 0x0001
#define MAGIC_FAIL_5PERCENT 0x0002
{
new_mana *= 32;
p_ptr->csp--;
- p_ptr->csp_frac += 0x10000L;
-
p_ptr->csp -= (s16b)(new_mana >> 16); /* div 65536 */
- new_mana_frac = p_ptr->csp_frac - (new_mana & 0xFFFF);
+ new_mana_frac = p_ptr->csp_frac + 0x10000L - (new_mana & 0xFFFF);
}
else
{
}
-static void gere_music(s16b music)
+static void gere_music(s32b music)
{
switch(music)
{
static void check_music()
{
magic_type *s_ptr;
- int shouhimana;
+ u32b shouhimana;
/* Music singed by player */
if(p_ptr->pclass != CLASS_BARD) return;
else
{
p_ptr->csp -= shouhimana / 0x10000;
- shouhimana = (shouhimana % 0x10000);
+ shouhimana = (shouhimana & 0xffff);
if (p_ptr->csp_frac < shouhimana)
{
p_ptr->csp--;
- p_ptr->csp_frac += 0x10000;
+ p_ptr->csp_frac += (u16b)(0x10000L - shouhimana);
+ }
+ else
+ {
+ p_ptr->csp_frac -= (u16b)shouhimana;
}
- p_ptr->csp_frac -= shouhimana;
p_ptr->redraw |= PR_MANA;
if (p_ptr->magic_num1[1])
{
p_ptr->magic_num1[0] = p_ptr->magic_num1[1];
p_ptr->magic_num1[1] = 0;
+#ifdef JP
msg_print("²Î¤òºÆ³«¤·¤¿¡£");
+#else
+ msg_print("You restart singing.");
+#endif
p_ptr->action = ACTION_SING;
/* Recalculate bonuses */
else if ((cave[py][px].feat == FEAT_DEEP_WATER) && !p_ptr->ffall && !p_ptr->can_swim)
{
- if (p_ptr->total_weight > ((adj_str_wgt[p_ptr->stat_ind[A_STR]] * (p_ptr->pclass == CLASS_BERSERKER ? 150 : 100)) / 2))
+ if (p_ptr->total_weight > (((u32b)adj_str_wgt[p_ptr->stat_ind[A_STR]] * (p_ptr->pclass == CLASS_BERSERKER ? 150 : 100)) / 2))
{
/* Take damage */
#ifdef JP
!p_ptr->anti_magic && (randint(6666) == 666))
{
bool pet = (randint(6) == 1);
+ bool not_pet = (bool)(!pet);
if (summon_specific((pet ? -1 : 0), py, px,
- dun_level, SUMMON_DEMON, TRUE, FALSE, pet, !pet, !pet))
+ dun_level, SUMMON_DEMON, TRUE, FALSE, pet, not_pet, not_pet))
{
#ifdef JP
msg_print("¤¢¤Ê¤¿¤Ï¥Ç¡¼¥â¥ó¤ò°ú¤´ó¤»¤¿¡ª");
!p_ptr->anti_magic && one_in_(7000))
{
bool pet = (randint(3) == 1);
+ bool not_pet = (bool)(!pet);
if (summon_specific((pet ? -1 : 0), py, px, dun_level, SUMMON_ANIMAL,
- TRUE, FALSE, pet, !pet, !pet))
+ TRUE, FALSE, pet, not_pet, not_pet))
{
#ifdef JP
msg_print("ưʪ¤ò°ú¤´ó¤»¤¿¡ª");
!p_ptr->anti_magic && one_in_(3000))
{
bool pet = (randint(5) == 1);
+ bool not_pet = (bool)(!pet);
if (summon_specific((pet ? -1 : 0), py, px, dun_level, SUMMON_DRAGON,
- TRUE, FALSE, pet, !pet, !pet))
+ TRUE, FALSE, pet, not_pet, not_pet))
{
#ifdef JP
msg_print("¥É¥é¥´¥ó¤ò°ú¤´ó¤»¤¿¡ª");
(quest[leaving_quest].status == QUEST_STATUS_TAKEN))
{
quest[leaving_quest].status = QUEST_STATUS_FAILED;
- quest[leaving_quest].complev = p_ptr->lev;
+ quest[leaving_quest].complev = (byte)p_ptr->lev;
if (quest[leaving_quest].type == QUEST_TYPE_RANDOM)
{
r_info[quest[leaving_quest].r_idx].flags1 &= ~(RF1_QUESTOR);
(quest[i].level < dun_level))
{
quest[i].status = QUEST_STATUS_FAILED;
- quest[i].complev = p_ptr->lev;
+ quest[i].complev = (byte)p_ptr->lev;
r_info[quest[i].r_idx].flags1 &= ~(RF1_QUESTOR);
}
}
/*** Stairs and Doors and Chests and Traps ***/
/* Enter store */
- case '_':
+ case 253:
{
if (!p_ptr->wild_mode) do_cmd_store();
break;
}
else
{
- p_ptr->csp -= (hoge / 0x10000L);
+ p_ptr->csp -= (s16b)(hoge >> 16);
hoge &= 0xFFFFL;
if (p_ptr->csp_frac < hoge)
{
- p_ptr->csp_frac += 0x10000L;
- p_ptr->csp --;
+ p_ptr->csp_frac += 0x10000L - hoge;
+ p_ptr->csp--;
}
- p_ptr->csp_frac -= hoge;
+ else
+ p_ptr->csp_frac -= hoge;
}
p_ptr->redraw |= PR_MANA;
}
/* Update stuff */
p_ptr->update |= (PU_VIEW | PU_LITE | PU_FLOW | PU_DISTANCE | PU_MON_LITE);
- p_ptr->update |= (PU_MONSTERS);/*¼«Ê¬¤Ç¸÷¤Ã¤Æ¤¤¤ë¥â¥ó¥¹¥¿¡¼¤Î°Ù*/
+ p_ptr->update |= (PU_MONSTERS);/*¼«Ê¬¤Ç¸÷¤Ã¤Æ¤¤¤ë¥â¥ó¥¹¥¿¡¼¤Î°Ù */
/* Update stuff */
update_stuff();
/* Start in town */
dun_level = 0;
p_ptr->inside_quest = 0;
- p_ptr->inside_arena = 0;
+ p_ptr->inside_arena = FALSE;
p_ptr->inside_battle = FALSE;
write_level = TRUE;
death = FALSE;
dun_level = 0;
- p_ptr->inside_arena = 0;
- p_ptr->inside_battle = 0;
+ p_ptr->inside_arena = FALSE;
+ p_ptr->inside_battle = FALSE;
leaving_quest = 0;
p_ptr->inside_quest = 0;
p_ptr->recall_dungeon = dungeon_type;
if (p_ptr->action == ACTION_KAMAE)
{
+#ifdef JP
msg_print("¹½¤¨¤¬¤È¤±¤¿¡£");
+#else
+ msg_print("Your posture gets loose.");
+#endif
p_ptr->special_defense &= ~(KAMAE_MASK);
p_ptr->update |= (PU_BONUS);
p_ptr->redraw |= (PR_STATE);
}
else if (p_ptr->action == ACTION_KATA)
{
+#ifdef JP
msg_print("·¿¤¬Êø¤ì¤¿¡£");
+#else
+ msg_print("Your posture gets loose.");
+#endif
p_ptr->special_defense &= ~(KATA_MASK);
p_ptr->update |= (PU_BONUS);
p_ptr->update |= (PU_MONSTERS);
if (p_ptr->special_defense & KATA_MASK)
{
+#ifdef JP
msg_print("·¿¤¬Êø¤ì¤¿¡£");
+#else
+ msg_print("Your posture gets loose.");
+#endif
p_ptr->special_defense &= ~(KATA_MASK);
p_ptr->update |= (PU_BONUS);
p_ptr->update |= (PU_MONSTERS);
}
if (p_ptr->special_defense & KATA_MASK)
{
+#ifdef JP
msg_print("·¿¤¬Êø¤ì¤¿¡£");
+#else
+ msg_print("Your posture gets loose.");
+#endif
p_ptr->special_defense &= ~(KATA_MASK);
p_ptr->update |= (PU_BONUS);
p_ptr->update |= (PU_MONSTERS);
if (record_danger && (old_chp > warning))
{
+#ifdef JP
sprintf(tmp,"%s¤Ë¤è¤Ã¤Æ¥Ô¥ó¥Á¤Ë´Ù¤¤¤Ã¤¿¡£",hit_from);
+#else
+ sprintf(tmp,"A critical situation because of %s.",hit_from);
+#endif
do_cmd_write_nikki(NIKKI_BUNSHOU, 0, tmp);
}
extern int level_up;
extern int max_autopick;
-extern char *autopick_name[MAX_AUTOPICK];
-extern char *autopick_insc[MAX_AUTOPICK];
-extern s16b autopick_action[MAX_AUTOPICK];
+extern cptr autopick_name[MAX_AUTOPICK];
+extern cptr autopick_insc[MAX_AUTOPICK];
+extern byte autopick_action[MAX_AUTOPICK];
/* tables.c */
extern s16b ddd[9];
extern bool use_command;
extern bool center_player;
extern bool center_running;
-extern bool display_pick;
-extern bool display_nopick;
-extern bool display_destroy;
extern bool destroy_items;
extern bool leave_worth;
extern bool leave_equip;
extern s16b panel_row_min, panel_row_max;
extern s16b panel_col_min, panel_col_max;
extern s16b panel_col_prt, panel_row_prt;
-extern s16b py;
-extern s16b px;
+extern int py;
+extern int px;
extern s16b target_who;
extern s16b target_col;
extern s16b target_row;
extern byte feat_wall_outer;
extern byte feat_wall_inner;
extern byte feat_wall_solid;
-extern s16b floor_type[100], fill_type[100];
+extern byte floor_type[100], fill_type[100];
extern bool now_damaged;
extern s16b now_message;
extern bool use_menu;
#ifdef JP
extern errr get_rnd_line_jonly(cptr file_name, int entry, char *output, int count);
#endif
+extern errr counts_write(int where, u32b count);
+extern u32b counts_read(int where);
+
/* generate.c */
extern void place_closed_door(int y, int x);
extern void generate_cave(void);
extern void mon_take_hit_mon(bool is_psy_spear, int m_idx, int dam, bool *fear, cptr note, int who);
extern bool process_the_world(int num, int who, bool vs_player);
extern void monster_gain_exp(int m_idx, int s_idx);
-extern s32b gain_energy(void);
/* monster1.c */
extern void screen_roff(int r_idx, int remember);
extern bool tgt_pt (int *x, int *y);
extern void do_poly_wounds(void);
extern int mon_damage_mod(monster_type *m_ptr, int dam, bool is_psy_spear);
+extern s16b gain_energy(void);
+extern s16b bow_energy(int sval);
+extern int bow_tmul(int sval);
/* mspells1.c */
extern bool clean_shot(int y1, int x1, int y2, int x2, bool friend);
extern void flush_ringbuf(void);
#endif
-extern errr counts_write(int where, s32b count);
-extern s32b counts_read(int where);
char *zz[16];
- /* Skip "empty" lines */
- if (!buf[0]) return (0);
-
- /* Skip "blank" lines */
- if (isspace(buf[0])) return (0);
-
- /* Skip comments */
- if (buf[0] == '#') return (0);
-
/* Require "?:*" format */
if (buf[1] != ':') return (1);
}
+
+/*
+ * Process line for auto picker/destroyer.
+ */
+static errr process_pickpref_file_line(char *buf)
+{
+ char *s, *s2;
+ int i;
+ byte act = 0;
+
+ /* Nuke illegal char */
+ for(i = 0; buf[i]; i++)
+ {
+#ifdef JP
+ if (iskanji(buf[i]))
+ {
+ i++;
+ continue;
+ }
+#endif
+ if (isspace(buf[i]) && buf[i] != ' ')
+ break;
+ }
+ buf[i] = 0;
+
+ s = buf;
+
+ act = DO_AUTOPICK | DO_DISPLAY;
+ while (1)
+ {
+ if (*s == '!')
+ {
+ act &= ~DO_AUTOPICK;
+ act |= DO_AUTODESTROY;
+ s++;
+ }
+ else if (*s == '~')
+ {
+ act &= ~DO_AUTOPICK;
+ act |= DONT_AUTOPICK;
+ s++;
+ }
+ else if (*s == '(')
+ {
+ act &= ~DO_DISPLAY;
+ s++;
+ }
+ else
+ break;
+ }
+
+ /* don't mind upper or lower case */
+ s2 = NULL;
+ for (i = 0; s[i]; i++)
+ {
+#ifdef JP
+ if (iskanji(s[i]))
+ {
+ i++;
+ continue;
+ }
+#endif
+ if (isupper(s[i]))
+ s[i] = tolower(s[i]);
+
+ /* Auto-inscription? */
+ if (s[i] == '#')
+ {
+ s[i] = '\0';
+ s2 = s + i + 1;
+ break;
+ }
+ }
+
+ /* Skip empty line */
+ if (*s == 0)
+ return 0;
+ if (max_autopick == MAX_AUTOPICK)
+ return 1;
+
+ /* Already has the same entry? */
+ for(i = 0; i < max_autopick; i++)
+ if(!strcmp(s, autopick_name[i]))
+ return 0;
+
+ autopick_name[max_autopick] = string_make(s);
+ autopick_action[max_autopick] = act;
+
+ autopick_insc[max_autopick] = string_make(s2);
+ max_autopick++;
+ return 0;
+}
+
+
+
/*
* Open the "user pref file" and parse it.
*/
-static errr process_pref_file_aux(cptr name)
+static errr process_pref_file_aux(cptr name, bool read_pickpref)
{
FILE *fp;
/* Count lines */
line++;
-
/* Skip "empty" lines */
if (!buf[0]) continue;
/* Skip "blank" lines */
+#ifdef JP
+ if (!iskanji(buf[0]))
+#endif
if (isspace(buf[0])) continue;
/* Skip comments */
if (buf[0] == '%')
{
/* Process that file if allowed */
- (void)process_pref_file(buf + 2);
+ if (read_pickpref)
+ (void)process_pickpref_file(buf + 2);
+ else
+ (void)process_pref_file(buf + 2);
/* Continue */
continue;
/* Process the line */
err = process_pref_file_command(buf);
- /* Oops */
- if (err) break;
+ /* This is not original pref line... */
+ if (err)
+ {
+ if (!read_pickpref)
+ break;
+ err = process_pickpref_file_line(buf);
+ }
}
path_build(buf, 1024, ANGBAND_DIR_PREF, name);
/* Process the pref file */
- err = process_pref_file_aux(buf);
+ err = process_pref_file_aux(buf, FALSE);
/* Stop at parser errors, but not at non-existing file */
if (err < 1)
path_build(buf, 1024, ANGBAND_DIR_USER, name);
/* Process the pref file */
- err = process_pref_file_aux(buf);
+ err = process_pref_file_aux(buf, FALSE);
}
/* Result */
if (inventory[INVEN_BOW].k_idx)
{
- switch (inventory[INVEN_BOW].sval)
- {
- /* Sling and ammo */
- case SV_SLING:
- {
- tmul = 2;
- break;
- }
-
- /* Short Bow and Arrow */
- case SV_SHORT_BOW:
- {
- tmul = 2;
- break;
- }
-
- /* Long Bow and Arrow */
- case SV_LONG_BOW:
- case SV_NAMAKE_BOW:
- {
- tmul = 3;
- break;
- }
-
- /* Light Crossbow and Bolt */
- case SV_LIGHT_XBOW:
- {
- tmul = 3;
- break;
- }
-
- /* Heavy Crossbow and Bolt */
- case SV_HEAVY_XBOW:
- {
- tmul = 4;
- break;
- }
-
- /* Long Bow and Arrow */
- {
- tmul = 5;
- break;
- }
- }
+ tmul = bow_tmul(inventory[INVEN_BOW].sval);
/* Get extra "power" from "extra might" */
if (p_ptr->xtra_might) tmul++;
if (p_ptr->prace == RACE_ANDROID)
{
-put_str("·Ð¸³ÃÍ ", 10, 28);
+#ifdef JP
+put_str("·Ð¸³ÃÍ ", 10, 28);
+#else
+put_str("Experience ", 10, 28);
+#endif
c_put_str(TERM_L_GREEN, " *****", 10, 28+11);
}
else if (p_ptr->exp >= p_ptr->max_exp)
if (p_ptr->prace == RACE_ANDROID)
{
-put_str("ºÇÂç·Ð¸³ ", 11, 28);
+#ifdef JP
+put_str("ºÇÂç·Ð¸³ ", 11, 28);
+#else
+put_str("Max Exo ", 11, 28);
+#endif
c_put_str(TERM_L_GREEN, " *****", 11, 28+11);
}
else
put_str("¼¡¥ì¥Ù¥ë ", 12, 28);
c_put_str(TERM_L_GREEN, " *****", 12, 28+11);
#else
- put_str("Exp to Adv.", 12, 28);
+ put_str("Exp to Adv", 12, 28);
c_put_str(TERM_L_GREEN, " *****", 12, 28+11);
#endif
#ifdef JP
prt_lnum("¼¡¥ì¥Ù¥ë ",
#else
- prt_lnum("Exp to Adv.",
+ prt_lnum("Exp to Adv ",
#endif
(s32b)(player_exp[p_ptr->lev - 1] * p_ptr->expfact / 100L),
cptr desc;
int muta_att = 0;
u32b f1, f2, f3;
- int energy_fire = 100;
int shots, shot_frac;
object_type *o_ptr;
/* If the player is wielding one? */
if (o_ptr->k_idx)
{
- /* Analyze the launcher */
- switch (o_ptr->sval)
- {
- /* Sling and ammo */
- case SV_SLING:
- {
- energy_fire = 8000;
- break;
- }
+ s16b energy_fire = bow_energy(o_ptr->sval);
- /* Short Bow and Arrow */
- case SV_SHORT_BOW:
- {
- energy_fire = 10000;
- break;
- }
-
- /* Long Bow and Arrow */
- case SV_LONG_BOW:
- {
- energy_fire = 10000;
- break;
- }
-
- case SV_NAMAKE_BOW:
- {
- energy_fire = 7777;
- break;
- }
-
- /* Light Crossbow and Bolt */
- case SV_LIGHT_XBOW:
- {
- energy_fire = 12000;
- break;
- }
-
- /* Heavy Crossbow and Bolt */
- case SV_HEAVY_XBOW:
- {
- energy_fire = 13333;
- break;
- }
- }
/* Calculate shots per round */
shots = p_ptr->num_fire * 100;
shot_frac = (shots * 100 / energy_fire) % 100;
object_flags_known(o_ptr, &f[0], &f[1], &f[2]);
/* Default */
- c_put_str(vuln ? TERM_RED : TERM_SLATE, ".", row, col);
+ c_put_str((byte)(vuln ? TERM_RED : TERM_SLATE), ".", row, col);
/* Check flags */
- if (f[n - 1] & flag1) c_put_str(vuln ? TERM_L_RED : TERM_WHITE, "+", row, col);
+ if (f[n - 1] & flag1) c_put_str((byte)(vuln ? TERM_L_RED : TERM_WHITE), "+", row, col);
if (f[n - 1] & flag2) c_put_str(TERM_WHITE, "*", row, col);
/* Advance */
player_flags(&f[0], &f[1], &f[2]);
/* Default */
- c_put_str(vuln ? TERM_RED : TERM_SLATE, ".", row, col);
+ c_put_str((byte)(vuln ? TERM_RED : TERM_SLATE), ".", row, col);
/* Check flags */
- if (f[n-1] & flag1) c_put_str(vuln ? TERM_L_RED : TERM_WHITE, "+", row, col);
+ if (f[n-1] & flag1) c_put_str((byte)(vuln ? TERM_L_RED : TERM_WHITE), "+", row, col);
/* Timed player flags */
tim_player_flags(&f[0], &f[1], &f[2], TRUE);
/* Check flags */
- if (f[n-1] & flag1) c_put_str(vuln ? TERM_ORANGE : TERM_YELLOW, "#", row, col);
+ if (f[n-1] & flag1) c_put_str((byte)(vuln ? TERM_ORANGE : TERM_YELLOW), "#", row, col);
/* Immunity */
if (im_f[2] & flag1) c_put_str(TERM_YELLOW, "*", row, col);
b[3] |= (f2 >> 16);
b[4] |= (f3 & 0xFFFF);
b[5] |= (f3 >> 16);
- color[0] = (f1 & 0xFFFF);
- color[1] = (f1 >> 16);
- color[2] = (f2 & 0xFFFF);
- color[3] = (f2 >> 16);
- color[4] = (f3 & 0xFFFF);
- color[5] = (f3 >> 16);
+ color[0] = (u16b)(f1 & 0xFFFF);
+ color[1] = (u16b)(f1 >> 16);
+ color[2] = (u16b)(f2 & 0xFFFF);
+ color[3] = (u16b)(f2 >> 16);
+ color[4] = (u16b)(f3 & 0xFFFF);
+ color[5] = (u16b)(f3 >> 16);
/* Scan cols */
for (x = 0; x < 6; x++)
b[n][3] |= (f2 >> 16);
b[n][4] |= (f3 & 0xFFFF);
b[n][5] |= (f3 >> 16);
- color[0] = (f1 & 0xFFFF);
- color[1] = (f1 >> 16);
- color[2] = (f2 & 0xFFFF);
- color[3] = (f2 >> 16);
- color[4] = (f3 & 0xFFFF);
- color[5] = (f3 >> 16);
+ color[0] = (u16b)(f1 & 0xFFFF);
+ color[1] = (u16b)(f1 >> 16);
+ color[2] = (u16b)(f2 & 0xFFFF);
+ color[3] = (u16b)(f2 >> 16);
+ color[4] = (u16b)(f3 & 0xFFFF);
+ color[5] = (u16b)(f3 >> 16);
/* Scan cols */
for (lc_buf_ptr = lc_buf; *lc_buf_ptr != 0; lc_buf_ptr++)
{
- lc_buf[lc_buf_ptr-lc_buf] = tolower(*lc_buf_ptr);
+#ifdef JP
+ if (iskanji(*lc_buf_ptr))
+ lc_buf_ptr++;
+ else
+#endif
+ lc_buf[lc_buf_ptr-lc_buf] = tolower(*lc_buf_ptr);
}
/* Hack -- keep searching */
/* Make finder lowercase */
for (cnt = 0; finder[cnt] != 0; cnt++)
{
- finder[cnt] = tolower(finder[cnt]);
+#ifdef JP
+ if (iskanji(finder[cnt]))
+ cnt++;
+ else
+#endif
+ finder[cnt] = tolower(finder[cnt]);
}
/* Show it */
{
/* Use the name */
strcpy(player_name, tmp);
-
- /* Process the player name */
- process_player_name(FALSE);
}
- else if (strlen(player_name))
+ else if (0 == strlen(player_name))
{
- /* Process the player name */
- process_player_name(FALSE);
+ /* Use default name */
+ strcpy(player_name, "PLAYER");
}
+ /* Process the player name */
+ process_player_name(FALSE);
+
strcpy(tmp,ap_ptr->title);
#ifdef JP
if(ap_ptr->no == 1)
}
}
-
+
/* Get the number of entries */
while (TRUE)
{
/* Count the lines */
line_num++;
-#ifdef JP
- while(TRUE){
- test=my_fgets(fp, buf, 1024);
- if(test || buf[0]!='#')break;
- }
- if (test==0){
-#else
- /* Try to read the line */
- if (my_fgets(fp, buf, 1024) == 0)
+ while(TRUE)
{
-#endif
+ test = my_fgets(fp, buf, 1024);
+ if(test || buf[0] != '#')
+ break;
+ }
+ if (test==0)
+ {
/* Found the line */
if (counter == line) break;
}
result=get_rnd_line(file_name, entry, output);
if(result)break;
kanji=0;
- for(j=0 ; j<strlen(output) ; j++) kanji|=iskanji( output[j] );
+ for(j=0; output[j]; j++) kanji |= iskanji(output[j]);
if(kanji)break;
}
return(result);
}
#endif
-
-/*AUTOPICK*/
+/*
+ * Process file for auto picker/destroyer.
+ */
errr process_pickpref_file(cptr name)
{
- FILE *fp;
-
- char buf[1024] , *s, *s2, isnew;
-
- int i;
-
- int num = -1;
+ char buf[1024];
errr err = 0;
- bool bypass = FALSE;
-
/* Build the filename */
path_build(buf, 1024, ANGBAND_DIR_USER, name);
- /* Open the file */
- fp = my_fopen(buf, "r");
-
- /* No such file */
- if (!fp) return (-1);
-
-
- /* Process the file */
- while (0 == my_fgets(fp, buf, 1024))
- {
- /* Count lines */
- num++;
+ err = process_pref_file_aux(buf, TRUE);
- /* Skip "empty" lines */
- if (buf[0] == '\0') continue;
-
- /* Skip comments */
- if (buf[0] == '#') continue;
-
- /* Process "?:<expr>" */
- if ((buf[0] == '?') && (buf[1] == ':'))
- {
- char f;
- cptr v;
- char *s;
-
- /* Start */
- s = buf + 2;
-
- /* Parse the expr */
- v = process_pref_file_expr(&s, &f);
-
- /* Set flag */
- bypass = (streq(v, "0") ? TRUE : FALSE);
-
- /* Continue */
- continue;
- }
-
- /* Apply conditionals */
- if (bypass) continue;
-
- /* Process "%:<file>" */
- if (buf[0] == '%')
- {
- /* Process that file if allowed */
- (void)process_pickpref_file(buf + 2);
-
- /* Continue */
- continue;
- }
-
- /* Nuke illegal char */
- for(i=0 ; buf[i]; i++)
- {
-#ifdef JP
- if (iskanji(buf[i]))
- {
- i++;
- continue;
- }
-#endif
- if (isspace(buf[i]) && buf[i] != ' ')
- break;
- }
- buf[i]=0;
-
- s = buf;
- /* Skip '!','~' */
- if(buf[0] == '!' || buf[0] == '~') s++;
-
- /* Auto-inscription? */
- s2=strchr(s,'#');
- if (s2) {*s2=0; s2++;}
-
- /* Skip empty line */
- if (*s == 0) continue;
-
- /* don't mind upper or lower case */
- for (i = 0; s[i]; i++)
- {
-#ifdef JP
- if (iskanji(s[i]))
- {
- i++;
- continue;
- }
-#endif
- if ('#' == s[i])
- break;
- else if (isupper(s[i]))
- s[i] = tolower(s[i]);
- }
-
- /* Already has the same entry? */
- isnew=1;
- for(i=0;i<max_autopick;i++)
- if( !strcmp(s,autopick_name[i]) ){isnew=0;break;}
-
- if(isnew==0) continue;
- autopick_name [max_autopick] = malloc(strlen(s) + 1);
- strcpy(autopick_name [max_autopick], s);
- switch(buf[0]){
- case '~':
- autopick_action[max_autopick] = DONT_AUTOPICK;
- break;
- case '!':
- autopick_action[max_autopick] = DO_AUTODESTROY;
- break;
- default:
- autopick_action[max_autopick] = DO_AUTOPICK;
- break;
- }
- if( s2 ) {
- autopick_insc[max_autopick] = malloc(strlen(s2) + 1);
- strcpy(autopick_insc[max_autopick], s2);
- } else {
- autopick_insc[max_autopick]=NULL;
- }
- max_autopick++;
- if(max_autopick==MAX_AUTOPICK) break;
- }
-
- /* Close the file */
- my_fclose(fp);
/* Result */
return (err);
}
-static errr counts_seek(int fd, s32b where, bool flag)
+static errr counts_seek(int fd, u32b where, bool flag)
{
huge seekpoint;
char temp1[128], temp2[128];
- s32b zero_header[3] = {0L, 0L, 0L};
+ u32b zero_header[3] = {0L, 0L, 0L};
int i;
#ifdef SAVEFILE_USE_UID
seekpoint = 0;
while (1)
{
- if (fd_seek(fd, seekpoint + 3 * sizeof(s32b)))
+ if (fd_seek(fd, seekpoint + 3 * sizeof(u32b)))
return 1;
if (fd_read(fd, (char*)(temp2), sizeof(temp2)))
{
return 1;
/* add new name */
fd_seek(fd, seekpoint);
- fd_write(fd, (char*)zero_header, 3*sizeof(s32b));
+ fd_write(fd, (char*)zero_header, 3*sizeof(u32b));
fd_write(fd, (char*)(temp1), sizeof(temp1));
break;
}
if (strcmp(temp1, temp2) == 0)
break;
- seekpoint += 128 + 3 * sizeof(s32b);
+ seekpoint += 128 + 3 * sizeof(u32b);
}
- return fd_seek(fd, seekpoint + where * sizeof(s32b));
+ return fd_seek(fd, seekpoint + where * sizeof(u32b));
}
-s32b counts_read(int where)
+u32b counts_read(int where)
{
int fd;
- s32b count = 0;
+ u32b count = 0;
char buf[1024];
#ifdef JP
fd = fd_open(buf, O_RDONLY);
if (counts_seek(fd, where, FALSE) ||
- fd_read(fd, (char*)(&count), sizeof(s32b)))
+ fd_read(fd, (char*)(&count), sizeof(u32b)))
count = 0;
(void)fd_close(fd);
return count;
}
-errr counts_write(int where, s32b count)
+errr counts_write(int where, u32b count)
{
int fd;
char buf[1024];
if (fd_lock(fd, F_WRLCK)) return 1;
counts_seek(fd, where, TRUE);
- fd_write(fd, (char*)(&count), sizeof(s32b));
+ fd_write(fd, (char*)(&count), sizeof(u32b));
if (fd_lock(fd, F_UNLCK)) return 1;
(bow_ptr->sval == SV_HEAVY_XBOW)) && (o_ptr->tval == TV_BOLT))))
{
int avgdam = 10;
- int tmul,energy_fire;
+ int tmul;
+ s16b energy_fire;
avgdam = o_ptr->dd * (o_ptr->ds + 1) * 10 / 2;
/* effect of ammo */
if (known) avgdam += (o_ptr->to_d * 10);
- /* Stop compiler warnings */
- energy_fire = 100;
- tmul = 1;
-
- /* Analyze the launcher */
- switch (bow_ptr->sval)
- {
- /* Sling and ammo */
- case SV_SLING:
- {
- tmul = 2;
- energy_fire = 8000;
- break;
- }
-
- /* Short Bow and Arrow */
- case SV_SHORT_BOW:
- {
- tmul = 2;
- energy_fire = 10000;
- break;
- }
-
- /* Long Bow and Arrow */
- case SV_LONG_BOW:
- {
- tmul = 3;
- energy_fire = 10000;
- break;
- }
-
- case SV_NAMAKE_BOW:
- {
- tmul = 3;
- energy_fire = 7777;
- break;
- }
-
- /* Light Crossbow and Bolt */
- case SV_LIGHT_XBOW:
- {
- tmul = 3;
- energy_fire = 12000;
- break;
- }
-
- /* Heavy Crossbow and Bolt */
- case SV_HEAVY_XBOW:
- {
- tmul = 4;
- energy_fire = 13333;
- break;
- }
- }
+ energy_fire = bow_energy(bow_ptr->sval);
+ tmul = bow_tmul(bow_ptr->sval);
/* Get extra "power" from "extra might" */
if (p_ptr->xtra_might) tmul++;
t = object_desc_num(t, avgdam);
t = object_desc_chr(t, '/');
- tmul = p_ptr->num_fire;
- if (tmul == 0)
+ if (p_ptr->num_fire == 0)
{
t = object_desc_chr(t, '0');
}
/* The dungeon is ready */
character_dungeon = TRUE;
- if (p_ptr->pseikaku == SEIKAKU_MUNCHKIN) wiz_lite(TRUE, (p_ptr->pclass == CLASS_NINJA));
+ if (p_ptr->pseikaku == SEIKAKU_MUNCHKIN) wiz_lite(TRUE, (bool)(p_ptr->pclass == CLASS_NINJA));
/* Remember when this level was "created" */
old_turn = turn;
{
/*
* Divide path in half and call routine twice.
- */
+ */
dx = (x2 - x1) / 2;
dy = (y2 - y1) / 2;
# define iskanji(x) ((((int)(x) & 0xff) >= 0xa1 && ((int)(x) & 0xff) <= 0xfe) || ((int)(x) & 0xff) == 0x8e)
# define iskana(x) (0)
# elif defined(SJIS)
-# define iskanji(x) ((0x81<=(unsigned char)(x) && (unsigned char)(x)<=0x9f)|| (0xe0<=(unsigned char)(x) && (unsigned char)(x)<=0xfc))
-# define iskana(x) (((x) >= 0xA0) && ((x)<= 0xDF))
+# define iskanji(x) ((0x81<=((int)(x) & 0xff) && ((int)(x) & 0xff)<=0x9f)|| (0xe0<=((int)(x) & 0xff) && ((int)(x) & 0xff)<=0xfc))
+# define iskana(x) ((((int)(x) & 0xff) >= 0xA0) && (((int)(x) & 0xff)<= 0xDF))
# elif defined(MSDOS)
# include <jctype.h>
# else
char m_name[80];
monster_desc(m_name, &m_list[c_ptr->m_idx], 0);
+#ifdef JP
msg_format("%s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤¤¡ª", m_name);
+#else
+ msg_format("%s is unharmed!", m_name);
+#endif
}
else py_attack(y, x, HISSATSU_SEKIRYUKA);
}
path_build(buf, 1024, ANGBAND_DIR_PREF, "proxy.prf");
- /* ¥Õ¥¡¥¤¥ë¤«¤éÀßÄê¤òÆɤࡣ*/
+ /* ¥Õ¥¡¥¤¥ë¤«¤éÀßÄê¤òÆɤࡣ */
fp = my_fopen(buf, "r");
if (!fp)
my_fclose(fp);
- /* ¥Ý¥¤¥ó¥¿¤òÍÑ°Õ¡£*/
+ /* ¥Ý¥¤¥ó¥¿¤òÍÑ°Õ¡£ */
s = buf;
- /* "http://" ¤«¤é»Ï¤Þ¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¤½¤ÎÉôʬ¤ò¥«¥Ã¥È¤¹¤ë¡£*/
+ /* "http://" ¤«¤é»Ï¤Þ¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¤½¤ÎÉôʬ¤ò¥«¥Ã¥È¤¹¤ë¡£ */
#if defined(WINDOWS)
if (!strnicmp(s, "http://", 7))
{
len = strlen(s);
proxy = malloc(len + 1);
- /* ¥Ý¡¼¥ÈÈֹ椬¤¢¤ë¤«¤É¤¦¤«¤òÄ´¤Ù¡¢¤¢¤ì¤Ðproxy_port¤ËÀßÄê¡£*/
+ /* ¥Ý¡¼¥ÈÈֹ椬¤¢¤ë¤«¤É¤¦¤«¤òÄ´¤Ù¡¢¤¢¤ì¤Ðproxy_port¤ËÀßÄê¡£ */
--len;
while (len > 0 && isdigit(s[len]))
--len;
val.it_value.tv_sec = timeout;
val.it_value.tv_usec = 0;
- /* ¥¿¥¤¥à¥¢¥¦¥È¡¢¤â¤·¤¯¤ÏÃæÃǤ·¤¿»þ¤Î½èÍý¡£*/
+ /* ¥¿¥¤¥à¥¢¥¦¥È¡¢¤â¤·¤¯¤ÏÃæÃǤ·¤¿»þ¤Î½èÍý¡£ */
if ((ret = sigsetjmp(env,1)) != 0)
{
#ifdef JP
to.sin_family = AF_INET;
if(proxy && proxy[0] && proxy_port)
- to.sin_port = htons(proxy_port);
+ to.sin_port = htons((unsigned short int)proxy_port);
else
- to.sin_port = htons(port);
+ to.sin_port = htons((unsigned short int)port);
#ifndef WINDOWS
if ((sd = socket(PF_INET, SOCK_STREAM, 0)) < 0)
/* Read arena and rewards information */
rd_s16b(&p_ptr->arena_number);
- rd_s16b(&p_ptr->inside_arena);
+ rd_s16b(&tmp16s);
+ p_ptr->inside_arena = (bool)tmp16s;
rd_s16b(&p_ptr->inside_quest);
if (z_older_than(10, 3, 5)) p_ptr->inside_battle = FALSE;
- else rd_s16b(&p_ptr->inside_battle);
+ else
+ {
+ rd_s16b(&tmp16s);
+ p_ptr->inside_battle = (bool)tmp16s;
+ }
rd_byte(&p_ptr->exit_bldg);
rd_byte(&p_ptr->leftbldg);
}
else
{
- byte max = max_d_idx;
+ byte max = (byte)max_d_idx;
rd_byte(&max);
if (z_older_than(10, 3, 8))
p_ptr->recall_dungeon = DUNGEON_ANGBAND;
else
- rd_s16b(&p_ptr->recall_dungeon);
+ {
+ rd_s16b(&tmp16s);
+ p_ptr->recall_dungeon = (byte)tmp16s;
+ }
rd_s16b(&p_ptr->see_infra);
rd_s16b(&p_ptr->tim_infra);
rd_s16b(&p_ptr->oppose_fire);
}
if (!z_older_than(11, 0, 5))
{
- rd_s32b(&p_ptr->count);
+ rd_u32b(&p_ptr->count);
}
}
rd_s16b(&base_level);
rd_s16b(&num_repro);
- rd_s16b(&py);
- rd_s16b(&px);
+ rd_s16b(&tmp16s);
+ py = (int)tmp16s;
+ rd_s16b(&tmp16s);
+ px = (int)tmp16s;
if (z_older_than(10, 3, 13) && !dun_level && !p_ptr->inside_arena) {py = 33;px = 131;}
rd_s16b(&cur_hgt);
rd_s16b(&cur_wid);
-/* CVS: Last edit by $Author$ on $Date$ */
/* File: main-dos.c */
/*
*/
static errr term_force_font(term_data *td, cptr path)
{
- int i;
-
int wid, hgt;
+#ifndef JP
+ int i;
char *base;
-
char buf[1024];
-
+#endif
/* Forget the old font (if needed) */
if (td->font_id) DeleteObject(td->font_id);
{
#ifdef JP
CHOOSEFONT cf;
- LOGFONT lf;
memset(&cf, 0, sizeof(cf));
cf.lStructSize = sizeof(cf);
term_data *td;
+#ifndef JP
char buf[1024];
-
+#endif
/* Main window */
td = &data[0];
-# CVS: Last edit by $Author$ on $Date$
# File: Makefile.dos
# Purpose: Makefile support for "main-dos.c"
-# CVS: Last edit by $Author$ on $Date$
# File: Makefile.ibm
# Purpose: Makefile support for "main-ibm.c" and Gnu C
-# CVS: Last edit by $Author$ on $Date$
# File: Makefile
# This is not a very "nice" Makefile, but it usually works.
##
## Variation -- compile for FreeBSD
##
-#CFLAGS = -Wall -O2 -fno-strength-reduce -m486 -pipe -g -D"USE_X11" $(JP_OPT) -D"USE_GCU" -I/usr/X11R6/include -DUSE_NCURSES
+# (for Japanese ver.)
+#CFLAGS = -Wall -O2 -fno-strength-reduce -m486 -pipe -g -D"USE_X11" -D"JP" -D"EUC" -D"USE_GCU" -I/usr/X11R6/include -DUSE_NCURSES -DDEFAULT_LOCALE="\"ja_JP.EUC\""
#LIBS = -L/usr/X11R6/lib -lX11 -lncurses -lmytinfo -lxpg4
##
if (p_ptr->special_defense & KATA_IAI)
{
+#ifdef JP
msg_print("Áê¼ê¤¬½±¤¤¤«¤«¤ëÁ°¤ËÁÇÁ᤯Éð´ï¤ò¿¶¤ë¤Ã¤¿¡£");
+#else
+ msg_format("You took sen, draw and cut in one motion before %s move.", m_name);
+#endif
if (py_attack(m_ptr->fy, m_ptr->fx, HISSATSU_IAI)) return TRUE;
}
msg_format("·âÂष¤¿¡£");
else
msg_format("%^s¤Ï·âÂव¤ì¤¿¡£", m_name);
- syouryaku = 1;/*£²²óÌܰʹߤϾÊά*/
+ syouryaku = 1;/*£²²óÌܰʹߤϾÊά */
#else
msg_format("%^s is repelled.", m_name);
#endif
msg_format("%s", act);
else /*if(syouryaku==-1)*/
msg_format("%^s%s", m_name, act);
- syouryaku = 1;/*£²²óÌܰʹߤϾÊά*/
+ syouryaku = 1;/*£²²óÌܰʹߤϾÊά */
#else
msg_format("%^s %s", m_name, act);
#endif
msg_format("%s¤«¤ï¤·¤¿¡£", (p_ptr->special_attack & ATTACK_SUIKEN) ? "´ñ̯¤ÊÆ°¤¤Ç" : "");
else
msg_format("%s%^s¤Î¹¶·â¤ò¤«¤ï¤·¤¿¡£", (p_ptr->special_attack & ATTACK_SUIKEN) ? "´ñ̯¤ÊÆ°¤¤Ç" : "", m_name);
- syouryaku = 1;/*£²²óÌܰʹߤϾÊά*/
+ syouryaku = 1;/*£²²óÌܰʹߤϾÊά */
#else
msg_format("%^s misses you.", m_name);
#endif
monster_desc(m_name, m_ptr, 0);
p_ptr->csp -= 7;
+#ifdef JP
msg_format("%^s¤ËÈ¿·â¤·¤¿¡ª", m_name);
+#else
+ msg_format("Your counterattack to %s!", m_name);
+#endif
py_attack(m_ptr->fy, m_ptr->fx, HISSATSU_COUNTER);
fear = FALSE;
}
/*
* Run (sometimes) if at 10% or less of max hit points,
* or (usually) when hit for half its current hit points
- */
+ */
if (((percentage <= 10) && (rand_int(10) < percentage)) ||
((dam >= m_ptr->hp) && (rand_int(100) < 80)))
{
if (!cave_floor_grid(c_ptr)) continue;
/* Check for "availability" (if monsters can flow) */
- if (!stupid_monsters && !p_ptr->no_flowed)
+ if (!stupid_monsters && !(m_ptr->mflag2 & MFLAG_NOFLOW))
{
/* Ignore grids very far from the player */
if (c_ptr->when < cave[py][px].when) continue;
bool done = FALSE;
bool will_run = mon_will_run(m_idx);
cave_type *c_ptr;
- bool no_flow = (p_ptr->no_flowed && (cave[m_ptr->fy][m_ptr->fx].cost > 2));
+ bool no_flow = ((m_ptr->mflag2 & MFLAG_NOFLOW) && (cave[m_ptr->fy][m_ptr->fx].cost > 2));
bool can_pass_wall;
/* Flow towards the player */
{
/* Dump a message */
#ifdef JP
-msg_format("%^s¤Ï%s¤ò½¦¤ª¤¦¤È¤·¤¿¤¬¡¢¤À¤á¤À¤Ã¤¿¡£",
+msg_format("%^s¤Ï%s¤ò½¦¤ª¤¦¤È¤·¤¿¤¬¡¢¤À¤á¤À¤Ã¤¿¡£", m_name, o_name);
#else
- msg_format("%^s tries to pick up %s, but fails.",
+msg_format("%^s tries to pick up %s, but fails.", m_name, o_name);
#endif
-
- m_name, o_name);
}
}
}
if (do_turn) break;
}
+ /*
+ * Forward movements failed, but now recieved LOS attack!
+ * Try to flow by smell.
+ */
+ if (p_ptr->no_flowed && i > 2 && m_ptr->target_y)
+ m_ptr->mflag2 &= ~MFLAG_NOFLOW;
/* If we haven't done anything, try casting a spell again */
if (!do_turn && !do_move && !m_ptr->monfear && !stupid_monsters && !(p_ptr->riding == m_idx) && aware)
fx = m_ptr->fx;
fy = m_ptr->fy;
+ /* Flow by smell is allowed */
+ if (!stupid_monsters && !p_ptr->no_flowed)
+ {
+ m_ptr->mflag2 &= ~MFLAG_NOFLOW;
+ }
/* Assume no move */
test = FALSE;
/* Hack -- Monsters can "smell" the player from far away */
/* Note that most monsters have "aaf" of "20" or so */
- else if (!stupid_monsters && !p_ptr->no_flowed &&
+ else if (!stupid_monsters && !(m_ptr->mflag2 & MFLAG_NOFLOW) &&
(cave_floor_bold(py, px) || (cave[py][px].feat == FEAT_TREES)) &&
(cave[py][px].when == cave[fy][fx].when) &&
(cave[fy][fx].dist < MONSTER_FLOW_DEPTH) &&
m_ptr->target_y = 0;
m_ptr->target_x = 0;
+ /* Give up flow_by_smell when it might useless */
+ if (p_ptr->no_flowed && one_in_(3))
+ m_ptr->mflag2 |= MFLAG_NOFLOW;
+
/* Hack -- notice death or departure */
if (!alive || death) break;
if (is_pet(m_ptr) || m_ptr->ml)
{
+#ifdef JP
msg_format("%s¤Ï%s¤Ë¿Ê²½¤·¤¿¡£", m_name, r_name + r_ptr->name);
+#else
+ msg_format("%^s evolved into %s.", m_name, r_name + r_ptr->name);
+#endif
r_info[old_r_idx].r_xtra1 |= MR1_SINKA;
}
update_mon(m_idx, FALSE);
}
if (m_idx == p_ptr->riding) p_ptr->update |= PU_BONUS;
}
-
-
-/*
- * ¥¨¥Í¥ë¥®¡¼¤ÎÁý²ÃÎÌ10d5¤ò®¤¯·×»»¤¹¤ë¤¿¤á¤Î´Ø¿ô
- */
-
-#define Go_no_JuuJou 5*5*5*5*5*5*5*5*5*5
-
-s32b gain_energy(void)
-{
- int i;
- s32b energy_result = 10;
- s32b tmp;
-
- tmp = rand_int(Go_no_JuuJou);
-
- for (i = 0; i < 9; i ++){
- energy_result += tmp % 5;
- tmp /= 5;
- }
-
- return energy_result + tmp;
-}
if (use_menu)
{
+#ifdef JP
if (i == (menu_line-1)) strcpy(psi_desc, " ¡Õ ");
+#else
+ if (i == (menu_line-1)) strcpy(psi_desc, " > ");
+#endif
else strcpy(psi_desc, " ");
}
else
{
if ((use_mind == MIND_KI) && (n != 5) && p_ptr->magic_num1[0])
{
+#ifdef JP
msg_print("µ¤¤¬»¶¤Ã¤Æ¤·¤Þ¤Ã¤¿¡¥¡¥¡¥");
+#else
+ msg_print("Your improved Force has gone away...");
+#endif
p_ptr->magic_num1[0] = 0;
}
"°ìÄê»þ´Ö¡¢AC¤ò¾å¾º¤µ¤»¤ë¡£¥ì¥Ù¥ë¤¬¾å¤¬¤ë¤È¡¢»À¡¢±ê¡¢Î䵤¡¢ÅÅ·â¡¢ÆǤÎÂÑÀ¤âÆÀ¤é¤ì¤ë¡£",
"¥ì¥Ù¥ë25̤Ëþ¤Ç¡¢¥¢¥¤¥Æ¥à¤ÎÊ·°Ïµ¤¤òÃΤ롣¥ì¥Ù¥ë25°Ê¾å¤Ç¡¢¥¢¥¤¥Æ¥à¤ò´ÕÄꤹ¤ë¡£",
"¥ì¥Ù¥ë25̤Ëþ¤Ç¡¢¼«Ê¬¤òÃæ¿´¤È¤·¤¿Àº¿À¹¶·â¤Îµå¤òȯÀ¸¤µ¤»¤ë¡£¥ì¥Ù¥ë25°Ê¾å¤Ç¡¢»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ËÂФ·¤ÆÀº¿À¹¶·â¤ò¹Ô¤¦¡£",
- "¶²ÉݤȽý¤«¤é²óÉü¤·¡¢¥Ò¡¼¥íµ¤Ê¬¤«¤Ä²Ã®¾õÂ֤Ǥʤ±¤ì¤ÐHP¤¬¾¯¤·²óÉü¤¹¤ë¡£¤µ¤é¤Ë¡¢°ìÄê»þ´Ö¥Ò¡¼¥í¡¼µ¤Ê¬¤Ë¤Ê¤ê¡¢²Ã®¤¹¤ë¡£",
+ "¶²ÉݤÈۯ۰¤«¤é²óÉü¤·¡¢¥Ò¡¼¥íµ¤Ê¬¤«¤Ä²Ã®¾õÂ֤Ǥʤ±¤ì¤ÐHP¤¬¾¯¤·²óÉü¤¹¤ë¡£¤µ¤é¤Ë¡¢°ìÄê»þ´Ö¥Ò¡¼¥í¡¼µ¤Ê¬¤Ë¤Ê¤ê¡¢²Ã®¤¹¤ë¡£",
"¥¢¥¤¥Æ¥à¤ò¼«Ê¬¤Î¸µ¤Ø°ÜÆ°¤µ¤»¤ë¡£",
"Àº¿À¹¶·â¤Îµå¤òÊü¤Ä¡£¥â¥ó¥¹¥¿¡¼¤ËÌ¿Ã椹¤ë¤È¡¢0¡Á1.5¥¿¡¼¥ó¾ÃÈñ¤¹¤ë¡£Äñ¹³¤µ¤ì¤Ê¤±¤ì¤Ð¡¢MP¤¬²óÉü¤¹¤ë¡£",
"̵½ýµå¤ò¤âÀÚ¤êÎö¤¯½ã¿è¤Ê¥¨¥Í¥ë¥®¡¼¤Î¥Ó¡¼¥à¤òÊü¤Ä¡£",
"gives stone skin and some resistance to elements for a while. The level increased, the more number of resistances given.",
"gives feeling of an item. or identify an item at level 25.",
"generate a ball centered on you which inflict monster with PSI damage. or inflict all monsters with PSI damage at level 25",
- "removes fear and cut. gives hiroism and speed. heals HP a little unless you already have hiroism and temporal speed boost.",
+ "removes fear and stun. gives hiroism and speed. heals HP a little unless you already have hiroism and temporal speed boost.",
"pulls a distant item close to you.",
"fires a ball which damages monsters and absorbs monsters' mind power. absorbing is takes more turns which from 0 to 1.5.",
"fires a beam of pure energy which penetrate the invulnerability barrier.",
/* Describe movement */
if (r_idx == MON_CHAMELEON)
{
+#ifdef JP
roff("¡¢Â¾¤Î¥â¥ó¥¹¥¿¡¼¤Ë²½¤±¤ë¡£");
+#else
+ roff("and can take the shape of other monster.");
+#endif
return;
}
else
(long)1000 / (p_ptr->max_plv+2) + 5) / 10);
/* Mention the experience */
- roff(format(" is worth %s%ld.%02ld point%s",
- (r_ptr->flags1 & RF1_UNIQUE) ? "" : "about ",
+ roff(format(" is worth about %ld.%02ld point%s",
(long)i, (long)j,
(((i == 1) && (j == 0)) ? "" : "s")));
* Notice "Quest" monsters, but only if you
* already encountered the monster.
*/
- if ((flags1 & RF1_QUESTOR) && (cheat_know || ((r_ptr->r_sights) && (r_ptr->max_num) && ((r_idx == MON_OBERON) || (r_idx == MON_SERPENT)))))
+ if ((flags1 & RF1_QUESTOR) && ((r_ptr->r_sights) && (r_ptr->max_num) && ((r_idx == MON_OBERON) || (r_idx == MON_SERPENT))))
{
#ifdef JP
c_roff(TERM_VIOLET, "¤¢¤Ê¤¿¤Ï¤³¤Î¥â¥ó¥¹¥¿¡¼¤ò»¦¤·¤¿¤¤¤È¤¤¤¦¶¯¤¤Íß˾¤ò´¶¤¸¤Æ¤¤¤ë...");
}
else
{
- return monster_dungeon;
+ return (monster_hook_type)monster_dungeon;
}
}
switch (cave[y][x].feat)
{
case FEAT_SHAL_WATER:
- return monster_shallow_water;
+ return (monster_hook_type)monster_shallow_water;
case FEAT_DEEP_WATER:
- return monster_deep_water;
+ return (monster_hook_type)monster_deep_water;
case FEAT_DEEP_LAVA:
case FEAT_SHAL_LAVA:
- return monster_lava;
+ return (monster_hook_type)monster_lava;
default:
return NULL;
}
case SUMMON_DEMON:
{
- okay = (r_ptr->flags3 & RF3_DEMON);
+ okay = (bool)(r_ptr->flags3 & RF3_DEMON);
break;
}
case SUMMON_UNDEAD:
{
- okay = (r_ptr->flags3 & RF3_UNDEAD);
+ okay = (bool)(r_ptr->flags3 & RF3_UNDEAD);
break;
}
case SUMMON_DRAGON:
{
- okay = (r_ptr->flags3 & RF3_DRAGON);
+ okay = (bool)(r_ptr->flags3 & RF3_DRAGON);
break;
}
case SUMMON_ANIMAL:
{
- okay = (r_ptr->flags3 & (RF3_ANIMAL));
+ okay = (bool)(r_ptr->flags3 & (RF3_ANIMAL));
break;
}
if (m_idx == p_ptr->riding)
{
+ char m_name[80];
+ monster_desc(m_name, m_ptr, 0);
+#ifdef JP
msg_format("ÆÍÁ³%s¤¬ÊѿȤ·¤¿¡£", old_m_name);
+#else
+ msg_format("Suddenly, %s transforms!", old_m_name);
+#endif
if (!(r_ptr->flags7 & RF7_RIDING))
+#ifdef JP
if (rakuba(0, TRUE)) msg_print("ÃÏÌ̤ËÍî¤È¤µ¤ì¤¿¡£");
+#else
+ if (rakuba(0, TRUE)) msg_format("You have fallen from %s.", m_name);
+#endif
}
/* Extract the monster base speed */
return FALSE;
/* Create a new monster (awake, no groups) */
- if (!place_monster_aux(y, x, m_ptr->r_idx, FALSE, FALSE, friendly, pet, TRUE, (m_ptr->mflag2 & MFLAG_NOPET)))
+ if (!place_monster_aux(y, x, m_ptr->r_idx, FALSE, FALSE, friendly, pet, TRUE, (bool)(m_ptr->mflag2 & MFLAG_NOPET)))
return FALSE;
if (clone)
{
p_ptr->magic_num1[1] = p_ptr->magic_num1[0];
p_ptr->magic_num1[0] = 0;
+#ifdef JP
msg_print("²Î¤¬ÅÓÀڤ줿¡£");
+#else
+ msg_print("Your singing is interrupted.");
+#endif
p_ptr->action = ACTION_NONE;
/* Recalculate bonuses */
if (p_ptr->health_who == p_ptr->riding) p_ptr->redraw |= PR_HEALTH;
p_ptr->redraw |= (PR_UHEALTH);
}
+
+#ifdef JP
if ((p_ptr->pseikaku == SEIKAKU_COMBAT) || (inventory[INVEN_BOW].name1 == ART_CRIMSON))
msg_print("¤ä¤ê¤ä¤¬¤Ã¤¿¤Ê¡ª");
+#endif
learn_spell(MS_DISPEL);
break;
}
{
disturb(1, 0);
if (m_ptr->r_idx == MON_JAIAN)
+#ifdef JP
msg_format("¡Ö¥Ü¥©¥¨¡Á¡Á¡Á¡Á¡Á¡Á¡×");
+#else
+ msg_format("'Booooeeeeee'");
+#endif
#ifdef JP
else if (blind) msg_format("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name);
#else
{
disturb(1, 0);
if (m_ptr->r_idx == MON_BOTEI)
+#ifdef JP
msg_format("¡Ö¥ÜÄë¥Ó¥ë¥«¥Ã¥¿¡¼¡ª¡ª¡ª¡×");
+#else
+ msg_format("'Boty-Build cutter!!!'");
+#endif
#ifdef JP
else if (blind) msg_format("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name);
#else
if((f3 & TR3_TELEPORT) || (p_ptr->muta1 & MUT1_VTELEPORT) || (p_ptr->pclass == CLASS_IMITATOR))
{
+#ifdef JP
if(get_check("¤Ä¤¤¤Æ¤¤¤¤Þ¤¹¤«¡©"))
+#else
+ if(get_check("Do you follow it? "))
+#endif
{
if (randint(3) == 1)
{
teleport_player(200);
+#ifdef JP
msg_print("¼ºÇÔ¡ª");
+#else
+ msg_print("Failed!");
+#endif
}
else teleport_player_to(m_ptr->fy, m_ptr->fx, TRUE);
p_ptr->energy -= 100;
bool friendly = is_friendly(m_ptr);
bool pet = is_pet(m_ptr);
+ bool not_pet = (bool)(!pet);
/* Cannot cast spells when confused */
if (m_ptr->confused) return (FALSE);
disturb(1, 0);
if (m_ptr->r_idx == MON_JAIAN)
+#ifdef JP
msg_format("¡Ö¥Ü¥©¥¨¡Á¡Á¡Á¡Á¡Á¡Á¡×");
+#else
+ msg_format("'Booooeeeeee'");
+#endif
else if (blind)
{
#ifdef JP
disturb(1, 0);
if (m_ptr->r_idx == MON_BOTEI)
+#ifdef JP
msg_format("¡Ö¥ÜÄë¥Ó¥ë¥«¥Ã¥¿¡¼¡ª¡ª¡ª¡×");
+#else
+ msg_format("'Boty-Build cutter!!!'");
+#endif
else if (blind)
{
#ifdef JP
if (m_ptr->r_idx == MON_ROLENTO)
{
-if (blind) msg_format("%^s¤¬²¿¤«¤òÅꤲ¤¿¡£", m_name);
-else msg_format("%^s¤¬%^s¤Ë¸þ¤«¤Ã¤Æ¼êÜØÃƤòÅꤲ¤¿¡£", m_name, t_name);
+#ifdef JP
+if (blind)
+ msg_format("%^s¤¬²¿¤«¤òÅꤲ¤¿¡£", m_name);
+else
+ msg_format("%^s¤¬%^s¤Ë¸þ¤«¤Ã¤Æ¼êÜØÃƤòÅꤲ¤¿¡£", m_name, t_name);
+#else
+if (blind)
+ msg_format("%^s throws something.", m_name);
+else
+ msg_format("%^s throws a hand grenade.", m_name);
+#endif
}
else
{
if((f3 & TR3_TELEPORT) || (p_ptr->muta1 & MUT1_VTELEPORT) || (p_ptr->pclass == CLASS_IMITATOR))
{
+#ifdef JP
if(get_check("¤Ä¤¤¤Æ¤¤¤¤Þ¤¹¤«¡©"))
+#else
+ if(get_check("Do you follow it? "))
+#endif
{
if (randint(3) == 1)
{
teleport_player(200);
+#ifdef JP
msg_print("¼ºÇÔ¡ª");
+#else
+ msg_print("Failed!");
+#endif
}
else teleport_player_to(m_ptr->fy, m_ptr->fx, TRUE);
p_ptr->energy -= 100;
}
}
- count += summon_specific(m_idx, y, x, rlev, 0, FALSE, friendly, pet, !pet, FALSE);
+ count += summon_specific(m_idx, y, x, rlev, 0, FALSE, friendly, pet, not_pet, FALSE);
if (known && !see_t && count)
{
for (k = 0; k < s_num_6; k++)
{
- count += summon_specific(m_idx, y, x, rlev, 0, TRUE, friendly, pet, !pet, FALSE);
+ count += summon_specific(m_idx, y, x, rlev, 0, TRUE, friendly, pet, not_pet, FALSE);
}
if (known && !see_t && count)
for (k = 0; k < s_num_6; k++)
{
- count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_UNDEAD, TRUE, friendly, pet, !pet, FALSE);
+ count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_UNDEAD, TRUE, friendly, pet, not_pet, FALSE);
}
if (known && !see_t && count)
for (k = 0; k < s_num_4; k++)
{
- count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_DRAGON, TRUE, friendly, pet, !pet, FALSE);
+ count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_DRAGON, TRUE, friendly, pet, not_pet, FALSE);
}
if (known && !see_t && count)
if (use_menu)
{
+#ifdef JP
if (i == (menu_line-1)) strcpy(psi_desc, " ¡Õ");
+#else
+ if (i == (menu_line-1)) strcpy(psi_desc, " > ");
+#endif
else strcpy(psi_desc, " ");
}
else sprintf(psi_desc, " %c)", I2A(i));
int damage = 0;
bool unique_okay = FALSE;
bool pet = success;
+ bool not_pet = (bool)(!pet);
bool no_trump = FALSE;
if (!success || (randint(50+plev) < plev/10)) unique_okay = TRUE;
break;
case MS_WORLD:
world_player = TRUE;
+#ifdef JP
msg_print("¡Ö»þ¤è¡ª¡×");
+#else
+ msg_print("'Time!'");
+#endif
msg_print(NULL);
p_ptr->energy += (randint(200)+1200);
if (summon_kin_player(pet, summon_lev, py, px, FALSE))
{
if (!pet)
+#ifdef JP
msg_print("¾¤´Ô¤µ¤ì¤¿Ãç´Ö¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned fellows is angry!");
+#endif
}
else
{
msg_print("You summons Cyberdemons!");
#endif
for (k = 0 ;k < 1 ; k++)
- if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_CYBER, FALSE, FALSE, pet, FALSE, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_CYBER, FALSE, FALSE, pet, FALSE, not_pet))
{
if (!pet)
+#ifdef JP
msg_print("¾¤´Ô¤µ¤ì¤¿¥µ¥¤¥Ð¡¼¥Ç¡¼¥â¥ó¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned Cyberdemons are angry!");
+#endif
}
else
{
msg_print("You summons help.");
#endif
for (k = 0;k < 1; k++)
- if (summon_specific((pet ? -1 : 0), py, px, summon_lev, 0, FALSE, FALSE, pet, FALSE, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, summon_lev, 0, FALSE, FALSE, pet, FALSE, not_pet))
{
if (!pet)
+#ifdef JP
msg_print("¾¤´Ô¤µ¤ì¤¿¥â¥ó¥¹¥¿¡¼¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned monster is angry!");
+#endif
}
else
{
msg_print("You summons monsters!");
#endif
for (k = 0;k < plev / 15 + 2; k++)
- if(summon_specific((pet ? -1 : 0), py, px, summon_lev, 0, FALSE, FALSE, pet, unique_okay, !pet))
+ if(summon_specific((pet ? -1 : 0), py, px, summon_lev, 0, FALSE, FALSE, pet, unique_okay, not_pet))
{
if (!pet)
+#ifdef JP
msg_print("¾¤´Ô¤µ¤ì¤¿¥â¥ó¥¹¥¿¡¼¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned monsters are angry!");
+#endif
}
else
{
msg_print("You summons ants.");
#endif
for (k = 0;k < 1; k++)
- if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_ANT, TRUE, FALSE, pet, FALSE, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_ANT, TRUE, FALSE, pet, FALSE, not_pet))
{
if (!pet)
+#ifdef JP
msg_print("¾¤´Ô¤µ¤ì¤¿¥¢¥ê¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned ants are angry!");
+#endif
}
else
{
msg_print("You summons spiders.");
#endif
for (k = 0;k < 1; k++)
- if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_SPIDER, TRUE, FALSE, pet, FALSE, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_SPIDER, TRUE, FALSE, pet, FALSE, not_pet))
{
if (!pet)
+#ifdef JP
msg_print("¾¤´Ô¤µ¤ì¤¿ÃØéá¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned spiders are angry!");
+#endif
}
else
{
msg_print("You summons hounds.");
#endif
for (k = 0;k < 1; k++)
- if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HOUND, TRUE, FALSE, pet, FALSE, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HOUND, TRUE, FALSE, pet, FALSE, not_pet))
{
if (!pet)
+#ifdef JP
msg_print("¾¤´Ô¤µ¤ì¤¿¥Ï¥¦¥ó¥É¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned hounds are angry!");
+#endif
}
else
{
msg_print("You summons hydras.");
#endif
for (k = 0;k < 1; k++)
- if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HYDRA, !pet, FALSE, pet, FALSE, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HYDRA, not_pet, FALSE, pet, FALSE, not_pet))
{
if (!pet)
+#ifdef JP
msg_print("¾¤´Ô¤µ¤ì¤¿¥Ò¥É¥é¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned hydras are angry!");
+#endif
}
else
{
msg_print("You summons angel!");
#endif
for (k = 0;k < 1; k++)
- if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_ANGEL, !pet, FALSE, pet, FALSE, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_ANGEL, not_pet, FALSE, pet, FALSE, not_pet))
{
if (!pet)
+#ifdef JP
msg_print("¾¤´Ô¤µ¤ì¤¿Å·»È¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned angel is angry!");
+#endif
}
else
{
msg_print("You summons a demon from the Courts of Chaos!");
#endif
for (k = 0;k < 1; k++)
- if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_DEMON, !pet, FALSE, pet, FALSE, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_DEMON, not_pet, FALSE, pet, FALSE, not_pet))
{
if (!pet)
+#ifdef JP
msg_print("¾¤´Ô¤µ¤ì¤¿¥Ç¡¼¥â¥ó¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned demon is angry!");
+#endif
}
else
{
msg_print("You summons an undead adversary!");
#endif
for (k = 0;k < 1; k++)
- if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_UNDEAD, !pet, FALSE, pet, FALSE, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_UNDEAD, not_pet, FALSE, pet, FALSE, not_pet))
{
if (!pet)
+#ifdef JP
msg_print("¾¤´Ô¤µ¤ì¤¿¥¢¥ó¥Ç¥Ã¥É¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned undead is angry!");
+#endif
}
else
{
msg_print("You summons dragon!");
#endif
for (k = 0;k < 1; k++)
- if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_DRAGON, !pet, FALSE, pet, FALSE, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_DRAGON, not_pet, FALSE, pet, FALSE, not_pet))
{
if (!pet)
+#ifdef JP
msg_print("¾¤´Ô¤µ¤ì¤¿¥É¥é¥´¥ó¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned dragon is angry!");
+#endif
}
else
{
msg_print("You summons greater undead!");
#endif
for (k = 0;k < 1; k++)
- if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HI_UNDEAD, !pet, FALSE, pet, unique_okay, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HI_UNDEAD, not_pet, FALSE, pet, unique_okay, not_pet))
{
if (!pet)
+#ifdef JP
msg_print("¾¤´Ô¤µ¤ì¤¿¾åµé¥¢¥ó¥Ç¥Ã¥É¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned greater undead is angry!");
+#endif
}
else
{
msg_print("You summons ancient dragons!");
#endif
for (k = 0;k < 1; k++)
- if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HI_DRAGON, !pet, FALSE, pet, unique_okay, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HI_DRAGON, not_pet, FALSE, pet, unique_okay, not_pet))
{
if (!pet)
+#ifdef JP
msg_print("¾¤´Ô¤µ¤ì¤¿¸ÅÂå¥É¥é¥´¥ó¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned ancient dragon is angry!");
+#endif
}
else
{
msg_print("You summons Lords of Amber!");
#endif
for (k = 0;k < 1; k++)
- if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_AMBERITES, !pet, FALSE, pet, unique_okay, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_AMBERITES, not_pet, FALSE, pet, unique_okay, not_pet))
{
if (!pet)
+#ifdef JP
msg_print("¾¤´Ô¤µ¤ì¤¿¥¢¥ó¥Ð¡¼¤Î²¦¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned Lords of Amber are angry!");
+#endif
}
else
{
msg_print("You summons special opponents!");
#endif
for (k = 0;k < 1; k++)
- if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_UNIQUE, !pet, FALSE, pet, TRUE, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_UNIQUE, not_pet, FALSE, pet, TRUE, not_pet))
{
count++;
if (!pet)
+#ifdef JP
msg_print("¾¤´Ô¤µ¤ì¤¿¥æ¥Ë¡¼¥¯¡¦¥â¥ó¥¹¥¿¡¼¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned special opponents are angry!");
+#endif
}
for (k = count;k < 1; k++)
- if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HI_UNDEAD, !pet, FALSE, pet, TRUE, !pet))
+ if (summon_specific((pet ? -1 : 0), py, px, summon_lev, SUMMON_HI_UNDEAD, not_pet, FALSE, pet, TRUE, not_pet))
{
count++;
if (!pet)
+#ifdef JP
msg_print("¾¤´Ô¤µ¤ì¤¿¾åµé¥¢¥ó¥Ç¥Ã¥É¤ÏÅܤäƤ¤¤ë¡ª");
+#else
+msg_print("Summoned greater undead are angry!");
+#endif
}
if (!count)
{
}
if (no_trump)
{
+#ifdef JP
msg_print("²¿¤â¸½¤ì¤Ê¤«¤Ã¤¿¡£");
+#else
+msg_print("No one have appeared.");
+#endif
}
return TRUE;
if (randint(p_ptr->lev + 70) > monster_powers[monspell].level + 40)
{
p_ptr->magic_num2[monspell] = 1;
+#ifdef JP
msg_format("%s¤ò³Ø½¬¤·¤¿¡ª", monster_powers[monspell].name);
+#else
+ msg_format("You have studyed %s!", monster_powers[monspell].name);
+#endif
gain_exp(monster_powers[monspell].level * monster_powers[monspell].smana);
/* Sound */
muta_class = &(p_ptr->muta1);
muta_which = MUT1_MIDAS_TCH;
#ifdef JP
-muta_desc = "¡Ö¥ß¥À¥¹²¦¤Î¼ê¡×¤ÎǽÎϤòÆÀ¤¿¡£";/*¥È¥¥¡¼¥à¥ì¥¤¥À¡¼¥¹¤Ë¤¢¤ê¤Þ¤·¤¿¤Í¡£*/
+muta_desc = "¡Ö¥ß¥À¥¹²¦¤Î¼ê¡×¤ÎǽÎϤòÆÀ¤¿¡£";/*¥È¥¥¡¼¥à¥ì¥¤¥À¡¼¥¹¤Ë¤¢¤ê¤Þ¤·¤¿¤Í¡£ */
#else
muta_desc = "You gain the Midas touch.";
#endif
}
+bool py_pickup_floor_aux(void)
+{
+ s16b this_o_idx;
+
+ object_type *o_ptr;
+
+ cptr q, s;
+
+ int item;
+
+ /* Restrict the choices */
+ item_tester_hook = inven_carry_okay;
+
+ /* Get an object */
+#ifdef JP
+ q = "¤É¤ì¤ò½¦¤¤¤Þ¤¹¤«¡©";
+ s = "¤â¤¦¥¶¥Ã¥¯¤Ë¤Ï¾²¤Ë¤¢¤ë¤É¤Î¥¢¥¤¥Æ¥à¤âÆþ¤é¤Ê¤¤¡£";
+#else
+ q = "Get which item? ";
+ s = "You no longer have any room for the objects on the floor.";
+#endif
+
+ if (get_item(&item, q, s, (USE_FLOOR)))
+ {
+ this_o_idx = 0 - item;
+ }
+ else
+ {
+ return (FALSE);
+ }
+
+ /* Access the object */
+ o_ptr = &o_list[this_o_idx];
+
+ /* Pick up the object */
+ py_pickup_aux(this_o_idx);
+
+ return (TRUE);
+}
+
+
/*
* Make the player carry everything in a grid
*
int can_pickup = 0;
- bool do_ask = TRUE;
-
/* Scan the pile of objects */
for (this_o_idx = cave[py][px].o_idx; this_o_idx; this_o_idx = next_o_idx)
{
/* Build a prompt */
#ifdef JP
- (void)sprintf(out_val, "%s¤ò½¦¤¤¤Þ¤¹¤«? ", o_name);
+ (void) sprintf(out_val, "%s¤ò½¦¤¤¤Þ¤¹¤«? ", o_name);
#else
(void) sprintf(out_val, "Pick up %s? ", o_name);
#endif
}
}
- /* Don't ask */
- do_ask = FALSE;
-
- /* Remember the object to pick up */
- this_o_idx = floor_o_idx;
- }
-
- /* Allow the user to choose an object */
- if (do_ask)
- {
- cptr q, s;
-
- int item;
+ /* Access the object */
+ o_ptr = &o_list[floor_o_idx];
#ifdef ALLOW_EASY_SENSE
/* Option: Make object sensing easy */
if (easy_sense)
{
- int i;
-
- /* Sense each object in the stack */
- for (i = 0; i < floor_num; i++)
- {
- /* Access the object */
- o_ptr = &o_list[floor_list[i]];
-
- /* Sense the object */
- (void) sense_object(o_ptr);
- }
+ /* Sense the object */
+ (void) sense_object(o_ptr);
}
#endif /* ALLOW_EASY_SENSE */
- /* Restrict the choices */
- item_tester_hook = inven_carry_okay;
-
- /* Get an object */
-#ifdef JP
- q = "¤É¤ì¤ò½¦¤¤¤Þ¤¹¤«¡©";
- s = "¤Ê¤Ë¤â¤¢¤ê¤Þ¤»¤ó¡£";
-#else
- q = "Get which item? ";
- s = "You see nothing there.";
-#endif
-
- if (get_item(&item, q, s, (USE_FLOOR)))
- {
- this_o_idx = 0 - item;
- }
- else
- {
- return;
- }
+ /* Pick up the object */
+ py_pickup_aux(floor_o_idx);
}
- /* Access the object */
- o_ptr = &o_list[this_o_idx];
-
-#ifdef ALLOW_EASY_SENSE
-
- /* Option: Make object sensing easy */
- if (easy_sense)
+ /* Allow the user to choose an object */
+ else
{
- /* Sense the object */
- (void) sense_object(o_ptr);
+ while (can_pickup--)
+ {
+ if (!py_pickup_floor_aux()) break;
+ }
}
-
-#endif /* ALLOW_EASY_SENSE */
-
- /* Pick up the object */
- py_pickup_aux(this_o_idx);
}
#endif /* ALLOW_EASY_FLOOR */
/* "no more" ¤Î¾ì¹ç¤Ï¤³¤Á¤é¤Çɽ¼¨¤¹¤ë */
if (o_ptr->number <= 0)
{
- /*FIRST*//*¤³¤³¤Ï¤â¤¦Ä̤é¤Ê¤¤¤«¤â*/
+ /*FIRST*//*¤³¤³¤Ï¤â¤¦Ä̤é¤Ê¤¤¤«¤â */
msg_format("¤â¤¦%s¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£", o_name);
}
else
u32b old_f1, old_f2, old_f3, new_f1, new_f2, new_f3;
object_type *o_ptr;
cptr q, s;
- byte iy, ix, marked;
- s16b next_o_idx, weight, number;
+ byte iy, ix, marked, number;
+ s16b next_o_idx, weight;
for (i = 0; i < MAX_ESSENCE; i++)
drain_value[i] = 0;
q = "¤É¤Î¥¢¥¤¥Æ¥à¤ÎËâÎϤò¼è¤ê¹þ¤ß¤Þ¤¹¤«? ";
s = "ËâÎϤò¼è¤ê¹þ¤á¤ë¥¢¥¤¥Æ¥à¤¬¤Ê¤¤¡£";
#else
- q = "Gain power which item? ";
+ q = "Gain power of which item? ";
s = "You have nothing to gain power.";
#endif
if (!object_known_p(o_ptr))
{
+#ifdef JP
msg_print("´ÕÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤È¼è¤ê¹þ¤á¤Ê¤¤¡£");
+#else
+ msg_print("You need to identify before absorbing.");
+#endif
return FALSE;
}
if (o_ptr->timeout)
{
+#ifdef JP
msg_print("½¼Å¶Ãæ¤Î¥¢¥¤¥Æ¥à¤Ï¼è¤ê¹þ¤á¤Ê¤¤¡£");
+#else
+ msg_print("This item is still charging.");
+#endif
return FALSE;
}
if (cave[y][x].m_idx)
{
if (one_in_(2))
+#ifdef JP
msg_print("¤¢¡¼¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¡ª¡ª¡ª");
+#else
+msg_print("Ahhhtatatatatatatatatatatatatatataatatatatattaaaaa!!!!");
+#endif
else
+#ifdef JP
msg_print("¥ª¥é¥ª¥é¥ª¥é¥ª¥é¥ª¥é¥ª¥é¥ª¥é¥ª¥é¥ª¥é¥ª¥é¥ª¥é¥ª¥é¡ª¡ª¡ª");
+#else
+msg_print("Oraoraoraoraoraoraoraoraoraoraoraoraoraoraoraoraora!!!!");
+#endif
py_attack(y, x, 0);
if (cave[y][x].m_idx)
{
if (p_ptr->riding)
{
+#ifdef JP
msg_print("º£¤Ï¾èÇÏÃæ¤À¡£");
+#else
+ msg_print("You ARE riding.");
+#endif
return FALSE;
}
if (!do_riding(TRUE)) return TRUE;
m_ptr = &m_list[p_ptr->riding];
r_ptr = &r_info[m_ptr->r_idx];
monster_desc(m_name, m_ptr, 0);
+#ifdef JP
msg_format("%s¤Ë¾è¤Ã¤¿¡£",m_name);
+#else
+ msg_format("You ride on %s.",m_name);
+#endif
if (is_pet(m_ptr)) break;
rlev = r_ptr->level;
if (r_ptr->flags1 & RF1_UNIQUE) rlev = rlev * 3 / 2;
if (rlev > 60) rlev = 60+(rlev-60)/2;
if ((randint(skill_exp[GINOU_RIDING]/120+p_ptr->lev*2/3) > rlev) && one_in_(2) && !p_ptr->inside_arena && !p_ptr->inside_battle && !(r_ptr->flags7 & (RF7_GUARDIAN)) && !(r_ptr->flags1 & (RF1_QUESTOR)) && (rlev < p_ptr->lev*3/2+rand_int(p_ptr->lev/5)))
{
+#ifdef JP
msg_format("%s¤ò¼ê¤Ê¤º¤±¤¿¡£",m_name);
+#else
+ msg_format("You tame %s.",m_name);
+#endif
set_pet(m_ptr);
}
else
{
+#ifdef JP
msg_format("%s¤Ë¿¶¤êÍî¤È¤µ¤ì¤¿¡ª",m_name);
+#else
+ msg_format("You have thrown off by %s.",m_name);
+#endif
rakuba(1,TRUE);
}
}
/*#define SCORE_PATH "http://www.kmc.gr.jp/~habu/local/scoretest/score.cgi" */
/*
- simple buffer library
+ * simple buffer library
*/
-typedef struct _buf{
- size_t max_size;
- size_t size;
- char *data;
+typedef struct {
+ size_t max_size;
+ size_t size;
+ char *data;
} BUF;
#define BUFSIZE (65536)
#ifdef SUNOS4
static int Vasprintf(char **buf, const char *fmt, va_list ap)
{
- int ret;
+ int ret;
- *buf = malloc(BUFSIZE);
+ *buf = malloc(BUFSIZE);
- ret = vsnprintf(*buf, BUFSIZE, fmt, ap);
+ ret = vsnprintf(*buf, BUFSIZE, fmt, ap);
- return ret;
+ return ret;
}
#endif
#if defined(WINDOWS) || defined(MACINTOSH) || defined(SGI)
static int Vasprintf(char **buf, const char *fmt, va_list ap)
{
- int ret;
- *buf = malloc(BUFSIZE * 4);
+ int ret;
+ *buf = malloc(BUFSIZE * 4);
- ret = vsprintf(*buf, fmt, ap);
+ ret = vsprintf(*buf, fmt, ap);
- return ret;
+ return ret;
}
#endif
static BUF* buf_new(void)
{
- BUF *p;
-
- p = malloc(sizeof(BUF));
- if((p = malloc(sizeof(BUF))) == NULL)
- return NULL;
-
- p->size = 0;
- p->max_size = BUFSIZE;
- if((p->data = malloc(BUFSIZE)) == NULL){
- free(p);
- return NULL;
- }
- return p;
+ BUF *p;
+
+ if ((p = malloc(sizeof(BUF))) == NULL)
+ return NULL;
+
+ p->size = 0;
+ p->max_size = BUFSIZE;
+ if ((p->data = malloc(BUFSIZE)) == NULL)
+ {
+ free(p);
+ return NULL;
+ }
+ return p;
}
#if 0
static void buf_delete(BUF *b)
{
- free(b->data);
- free(b);
+ free(b->data);
+ free(b);
}
#endif
static int buf_append(BUF *buf, const char *data, size_t size)
{
- while(buf->size + size > buf->max_size){
- char *tmp;
- if((tmp = malloc(buf->max_size * 2)) == NULL) return -1;
+ while (buf->size + size > buf->max_size)
+ {
+ char *tmp;
+ if ((tmp = malloc(buf->max_size * 2)) == NULL) return -1;
- memcpy(tmp, buf->data, buf->max_size);
- free(buf->data);
+ memcpy(tmp, buf->data, buf->max_size);
+ free(buf->data);
- buf->data = tmp;
+ buf->data = tmp;
- buf->max_size *= 2;
- }
- memcpy(buf->data + buf->size, data, size);
- buf->size += size;
+ buf->max_size *= 2;
+ }
+ memcpy(buf->data + buf->size, data, size);
+ buf->size += size;
- return buf->size;
+ return buf->size;
}
static int buf_sprintf(BUF *buf, const char *fmt, ...)
{
- int ret;
- char *tmpbuf;
- va_list ap;
+ int ret;
+ char *tmpbuf;
+ va_list ap;
- va_start(ap, fmt);
- vasprintf(&tmpbuf, fmt, ap);
- va_end(ap);
+ va_start(ap, fmt);
+ vasprintf(&tmpbuf, fmt, ap);
+ va_end(ap);
- if(!tmpbuf)
- return -1;
+ if(!tmpbuf) return -1;
- ret = buf_append(buf, tmpbuf, strlen(tmpbuf));
+ ret = buf_append(buf, tmpbuf, strlen(tmpbuf));
- free(tmpbuf);
+ free(tmpbuf);
- return ret;
+ return ret;
}
#if 0
static int buf_read(BUF *buf, int fd)
{
- int len;
+ int len;
#ifndef MACINTOSH
- char tmp[BUFSIZE];
+ char tmp[BUFSIZE];
#else
char *tmp;
tmp = calloc( BUFSIZE , sizeof(char) );
#endif
- while((len = read(fd, tmp, BUFSIZE)) > 0)
- buf_append(buf, tmp, len);
+ while ((len = read(fd, tmp, BUFSIZE)) > 0)
+ buf_append(buf, tmp, len);
- return buf->size;
+ return buf->size;
}
#endif
#if 0
static int buf_write(BUF *buf, int fd)
{
- write(fd, buf->data, buf->size);
+ write(fd, buf->data, buf->size);
- return buf->size;
+ return buf->size;
}
static int buf_search(BUF *buf, const char *str)
{
- char *ret;
+ char *ret;
- ret = strstr(buf->data, str);
+ ret = strstr(buf->data, str);
- if(!ret)
- return -1;
+ if (!ret) return -1;
- return ret - buf->data;
+ return ret - buf->data;
}
static BUF * buf_subbuf(BUF *buf, int pos1, size_t sz)
{
- BUF *ret;
+ BUF *ret;
- if(pos1 < 0)
- return NULL;
+ if (pos1 < 0) return NULL;
- ret = buf_new();
+ ret = buf_new();
- if(sz <= 0)
- sz = buf->size - pos1;
+ if (sz <= 0) sz = buf->size - pos1;
- buf_append(ret, buf->data + pos1, sz);
+ buf_append(ret, buf->data + pos1, sz);
- return ret;
+ return ret;
}
#endif
static void http_post(int sd, char *url, BUF *buf)
{
- BUF *output;
+ BUF *output;
- output = buf_new();
- buf_sprintf(output, "POST %s HTTP/1.0\r\n", url);
- buf_sprintf(output, "User-Agent: Hengband %d.%d.%d\r\n",
- FAKE_VER_MAJOR-10, FAKE_VER_MINOR, FAKE_VER_PATCH);
+ output = buf_new();
+ buf_sprintf(output, "POST %s HTTP/1.0\r\n", url);
+ buf_sprintf(output, "User-Agent: Hengband %d.%d.%d\r\n",
+ FAKE_VER_MAJOR-10, FAKE_VER_MINOR, FAKE_VER_PATCH);
- buf_sprintf(output, "Content-Length: %d\r\n", buf->size);
- buf_sprintf(output, "Content-Encoding: binary\r\n");
- buf_sprintf(output, "Content-Type: application/octet-stream\r\n");
- buf_sprintf(output, "\r\n");
- buf_append(output, buf->data, buf->size);
+ buf_sprintf(output, "Content-Length: %d\r\n", buf->size);
+ buf_sprintf(output, "Content-Encoding: binary\r\n");
+ buf_sprintf(output, "Content-Type: application/octet-stream\r\n");
+ buf_sprintf(output, "\r\n");
+ buf_append(output, buf->data, buf->size);
- soc_write(sd, output->data, output->size);
+ soc_write(sd, output->data, output->size);
}
/* Open a new file */
fff = my_fopen_temp(file_name, 1024);
- if (!fff) {
+ if (!fff)
+ {
#ifdef JP
- msg_format("°ì»þ¥Õ¥¡¥¤¥ë %s ¤òºîÀ®¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£", file_name);
+ msg_format("°ì»þ¥Õ¥¡¥¤¥ë %s ¤òºîÀ®¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£", file_name);
#else
- msg_format("Failed to create temporary file %s.", file_name);
+ msg_format("Failed to create temporary file %s.", file_name);
#endif
- msg_print(NULL);
- return 1;
+ msg_print(NULL);
+ return 1;
}
/* °ìö°ì»þ¥Õ¥¡¥¤¥ë¤òºî¤ë¡£Ä̾ï¤Î¥À¥ó¥×½ÐÎϤȶ¦Ä̲½¤¹¤ë¤¿¤á¡£ */
#endif
#ifdef WINDOWS
- WSADATA wsaData;
- WORD wVersionRequested =(WORD) (( 1) | ( 1 << 8));
+ WSADATA wsaData;
+ WORD wVersionRequested =(WORD) (( 1) | ( 1 << 8));
#endif
+ BUF *score;
+ int sd;
+ char seikakutmp[128];
- BUF *score;
- int sd;
- char date[10];
- char seikakutmp[128];
- time_t ct = time(NULL);
-
- score = buf_new();
+ score = buf_new();
#ifdef JP
- sprintf(seikakutmp, "%s%s", ap_ptr->title, (ap_ptr->no ? "¤Î" : ""));
+ sprintf(seikakutmp, "%s%s", ap_ptr->title, (ap_ptr->no ? "¤Î" : ""));
#else
- sprintf(seikakutmp, "%s ", ap_ptr->title);
+ sprintf(seikakutmp, "%s ", ap_ptr->title);
#endif
- /* HiperMegaHack -- ʸ»ú¥³¡¼¥É¤òÁ÷¤ë */
-#if defined(EUC)
- buf_sprintf(score, "code: 0\n");
-#elif defined(SJIS)
- buf_sprintf(score, "code: 1\n");
-#elif defined(JIS)
- buf_sprintf(score, "code: 2\n");
-#endif
- buf_sprintf(score, "name: %s\n", player_name);
+ buf_sprintf(score, "name: %s\n", player_name);
#ifdef JP
- buf_sprintf(score, "version: ÊѶòÈÚÅÜ %d.%d.%d\n",
- FAKE_VER_MAJOR-10, FAKE_VER_MINOR, FAKE_VER_PATCH);
+ buf_sprintf(score, "version: ÊѶòÈÚÅÜ %d.%d.%d\n",
+ FAKE_VER_MAJOR-10, FAKE_VER_MINOR, FAKE_VER_PATCH);
#else
- buf_sprintf(score, "version: Hengband %d.%d.%d\n",
- FAKE_VER_MAJOR-10, FAKE_VER_MINOR, FAKE_VER_PATCH);
+ buf_sprintf(score, "version: Hengband %d.%d.%d\n",
+ FAKE_VER_MAJOR-10, FAKE_VER_MINOR, FAKE_VER_PATCH);
#endif
- buf_sprintf(score, "score: %d\n", total_points());
- buf_sprintf(score, "level: %d\n", p_ptr->lev);
- buf_sprintf(score, "depth: %d\n", dun_level);
- buf_sprintf(score, "maxlv: %d\n", p_ptr->max_plv);
- buf_sprintf(score, "maxdp: %d\n", max_dlv[DUNGEON_ANGBAND]);
- buf_sprintf(score, "au: %d\n", p_ptr->au);
- buf_sprintf(score, "turns: %d\n", turn_real(turn));
- buf_sprintf(score, "sex: %d\n", p_ptr->psex);
- buf_sprintf(score, "race: %s\n", rp_ptr->title);
- buf_sprintf(score, "class: %s\n", cp_ptr->title);
- buf_sprintf(score, "seikaku: %s\n", seikakutmp);
- buf_sprintf(score, "realm1: %s\n", realm_names[p_ptr->realm1]);
- buf_sprintf(score, "realm2: %s\n", realm_names[p_ptr->realm2]);
- buf_sprintf(score, "killer: %s\n", died_from);
- strftime(date, 9, "%Y/%m/%d", localtime(&ct));
- buf_sprintf(score, "date: %s\n", date);
- buf_sprintf(score, "-----charcter dump-----\n");
-
- make_dump(score);
+ buf_sprintf(score, "score: %d\n", total_points());
+ buf_sprintf(score, "level: %d\n", p_ptr->lev);
+ buf_sprintf(score, "depth: %d\n", dun_level);
+ buf_sprintf(score, "maxlv: %d\n", p_ptr->max_plv);
+ buf_sprintf(score, "maxdp: %d\n", max_dlv[DUNGEON_ANGBAND]);
+ buf_sprintf(score, "au: %d\n", p_ptr->au);
+ buf_sprintf(score, "turns: %d\n", turn_real(turn));
+ buf_sprintf(score, "sex: %d\n", p_ptr->psex);
+ buf_sprintf(score, "race: %s\n", rp_ptr->title);
+ buf_sprintf(score, "class: %s\n", cp_ptr->title);
+ buf_sprintf(score, "seikaku: %s\n", seikakutmp);
+ buf_sprintf(score, "realm1: %s\n", realm_names[p_ptr->realm1]);
+ buf_sprintf(score, "realm2: %s\n", realm_names[p_ptr->realm2]);
+ buf_sprintf(score, "killer: %s\n", died_from);
+ buf_sprintf(score, "-----charcter dump-----\n");
+
+ make_dump(score);
#ifdef WINDOWS
- if(WSAStartup(wVersionRequested, &wsaData)){
- msg_print("Report: WSAStartup failed.");
- goto report_end;
- }
+ if (WSAStartup(wVersionRequested, &wsaData))
+ {
+ msg_print("Report: WSAStartup failed.");
+ goto report_end;
+ }
#endif
#ifdef MACINTOSH
#else
err = InitOpenTransport();
#endif
- if (err != noErr){
+ if (err != noErr)
+ {
msg_print("Report: OpenTransport failed.");
return 1;
}
Term_clear();
- while(1)
+ while (1)
{
char buff[160];
#ifdef JP
(void)inkey();
#ifdef JP
- if(!get_check("¤â¤¦°ìÅÙÀܳ¤ò»î¤ß¤Þ¤¹¤«? "))
+ if (!get_check("¤â¤¦°ìÅÙÀܳ¤ò»î¤ß¤Þ¤¹¤«? "))
#else
- if(!get_check("Try again? "))
+ if (!get_check("Try again? "))
#endif
{
err = 1;
#endif
Term_fresh();
http_post(sd, SCORE_PATH, score);
-
+
disconnect_server(sd);
report_end:
#ifdef WINDOWS
}
#endif /* WORLD_SCORE */
-
-
-
-
* Scale factor for middle points:
* About sqrt(2) * 256 - correct for a square lattice
* approximately correct for everything else.
- */
+ */
diagsize = 362;
/* maximum of xsize and ysize */
/* Max Player and Dungeon Levels */
wr_s16b(p_ptr->max_plv);
- tmp8u = max_d_idx;
+ tmp8u = (byte)max_d_idx;
wr_byte(tmp8u);
for (i = 0; i < tmp8u; i++)
wr_s16b(max_dlv[i]);
wr_s32b(p_ptr->visit);
- wr_s32b(p_ptr->count);
+ wr_u32b(p_ptr->count);
}
wr_byte(dungeon_type);
wr_u16b(base_level);
wr_u16b(num_repro);
- wr_u16b(py);
- wr_u16b(px);
+ wr_u16b((u16b)py);
+ wr_u16b((u16b)px);
wr_u16b(cur_hgt);
wr_u16b(cur_wid);
wr_u16b(max_panel_rows);
character_loaded = TRUE;
{
- s32b tmp = counts_read(2);
+ u32b tmp = counts_read(2);
if (tmp > p_ptr->count)
p_ptr->count = tmp;
if (counts_read(0) > playtime || counts_read(1) == playtime)
/* Is the monster "seen"? */
bool seen = m_ptr->ml;
- bool slept = m_ptr->csleep;
+ bool slept = (bool)(m_ptr->csleep > 0);
/* Were the effects "obvious" (if seen)? */
bool obvious = FALSE;
if (is_pet(m_ptr) || (r_ptr->flags1 & (RF1_UNIQUE | RF1_QUESTOR)) || (r_ptr->flags7 & (RF7_UNIQUE_7 | RF7_UNIQUE2)))
{
+#ifdef JP
note = "¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£";
+#else
+ note = " is unaffected!";
+#endif
}
else
{
else
{
delete_monster_idx(c_ptr->m_idx);
+#ifdef JP
msg_format("%s¤Ï¾ÃÌǤ·¤¿¡ª",m_name);
+#else
+ msg_format("%^s disappered!",m_name);
+#endif
+#ifdef JP
take_hit(DAMAGE_GENO, randint((r_ptr->level+1)/2), "¥â¥ó¥¹¥¿¡¼¾ÃÌǤμöʸ¤ò¾§¤¨¤¿ÈèÏ«", -1);
+#else
+ take_hit(DAMAGE_GENO, randint((r_ptr->level+1)/2), "the strain of casting Genocide One", -1);
+#endif
dam = 0;
chg_virtue(V_VITALITY, -1);
/* Modify the damage */
tmp = dam;
- dam = mon_damage_mod(m_ptr, dam, (typ == GF_PSY_SPEAR));
+ dam = mon_damage_mod(m_ptr, dam, (bool)(typ == GF_PSY_SPEAR));
#ifdef JP
if ((tmp > 0) && (dam == 0)) note = "¤Ï¥À¥á¡¼¥¸¤ò¼õ¤±¤Æ¤¤¤Ê¤¤";
#else
chg_virtue(V_VALOUR, -1);
/* Teleport */
- teleport_away(c_ptr->m_idx, do_dist, !who);
+ teleport_away(c_ptr->m_idx, do_dist, (bool)(!who));
/* Hack -- get new location */
y = m_ptr->fy;
{
pet = TRUE;
}
- count += summon_specific((pet ? -1 : 0), py, px, (pet ? p_ptr->lev*2/3+randint(p_ptr->lev/2) : dun_level), 0, TRUE, friendly, pet, FALSE, !pet);
+ count += summon_specific((pet ? -1 : 0), py, px, (pet ? p_ptr->lev*2/3+randint(p_ptr->lev/2) : dun_level), 0, TRUE, friendly, pet, FALSE, (bool)(!pet));
if (randint(6) != 1) break;
}
case 23: case 24: case 25:
* We return "TRUE" if any "obvious" effects were observed. XXX XXX Actually,
* we just assume that the effects were obvious, for historical reasons.
*/
-static bool project_p(int who, int r, int y, int x, int dam, int typ, int a_rad, int monspell)
+static bool project_p(int who, cptr who_name, int r, int y, int x, int dam, int typ, int a_rad, int monspell)
{
int k = 0;
/* Get the monster name */
monster_desc(m_name, m_ptr, 0);
- /* Get the monster's real name */
- monster_desc(killer, m_ptr, 0x88);
-
+ /* Get the monster's real name (gotten before polymorph!) */
+ strcpy(killer, who_name);
/* Analyze the damage */
switch (typ)
else if ((inventory[INVEN_RARM].name1 == ART_ZANTETSU) || (inventory[INVEN_LARM].name1 == ART_ZANTETSU))
{
+#ifdef JP
msg_print("Ìð¤ò»Â¤ê¼Î¤Æ¤¿¡ª");
+#else
+ msg_print("You cut down the arrow!");
+#endif
break;
}
take_hit(DAMAGE_ATTACK, dam, killer, monspell);
bool jump = FALSE;
+ /* Attacker's name (prepared before polymorph)*/
+ char who_name[80];
+
rakubadam_p = 0;
rakubadam_m = 0;
{
x1 = m_list[who].fx;
y1 = m_list[who].fy;
+ monster_desc(who_name, &m_list[who], 0x88);
}
/* Oops */
monster_type *m_ptr = &m_list[cave[project_m_y][project_m_x].m_idx];
/* Hack -- auto-recall */
- if (m_ptr->ml) monster_race_track((m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
+ if (m_ptr->ml) monster_race_track((bool)(m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
/* Hack - auto-track */
if (m_ptr->ml) health_track(cave[project_m_y][project_m_x].m_idx);
monster_type *m_ptr = &m_list[cave[project_m_y][project_m_x].m_idx];
/* Hack -- auto-recall */
- if (m_ptr->ml) monster_race_track((m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
+ if (m_ptr->ml) monster_race_track((bool)(m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
/* Hack - auto-track */
if (m_ptr->ml) health_track(cave[project_m_y][project_m_x].m_idx);
monster_type *m_ptr = &m_list[cave[project_m_y][project_m_x].m_idx];
/* Hack -- auto-recall */
- if (m_ptr->ml) monster_race_track((m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
+ if (m_ptr->ml) monster_race_track((bool)(m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
/* Hack - auto-track */
if (m_ptr->ml) health_track(cave[project_m_y][project_m_x].m_idx);
{
flg &= ~(PROJECT_HIDE);
- breath_shape(path_g, dist, &grids, gx, gy, gm, &gm_rad, rad, y1, x1, y2, x2, (typ == GF_DISINTEGRATE), TRUE);
+ breath_shape(path_g, dist, &grids, gx, gy, gm, &gm_rad, rad, y1, x1, y2, x2, (bool)(typ == GF_DISINTEGRATE), TRUE);
}
else
{
monster_type *m_ptr = &m_list[cave[y][x].m_idx];
/* Hack -- auto-recall */
- if (m_ptr->ml) monster_race_track((m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
+ if (m_ptr->ml) monster_race_track((bool)(m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
/* Hack - auto-track */
if (m_ptr->ml) health_track(cave[y][x].m_idx);
/* Affect the player */
if ((y == y2) && (x == x2) && (y == py) && (x == px) && (flg & PROJECT_MONSTER))
{
- if (project_p(who, d+1, y, x, dam, typ, rad, monspell)) notice = TRUE;
+ if (project_p(who, who_name, d+1, y, x, dam, typ, rad, monspell)) notice = TRUE;
}
- else if (project_p(who, d, y, x, dam, typ, rad, monspell)) notice = TRUE;
+ else if (project_p(who, who_name, d, y, x, dam, typ, rad, monspell)) notice = TRUE;
}
else
{
{
if (!((flg & PROJECT_BEAM) || (flg & PROJECT_STOP)))
{
- if (project_p(who, dist+1, y, x, dam, typ, rad, monspell)) notice = TRUE;
+ if (project_p(who, who_name, dist+1, y, x, dam, typ, rad, monspell)) notice = TRUE;
}
}
- else if (project_p(who, dist, y, x, dam, typ, rad, monspell)) notice = TRUE;
+ else if (project_p(who, who_name, dist, y, x, dam, typ, rad, monspell)) notice = TRUE;
}
}
}
}
if (!okay || p_ptr->riding)
{
+#ifdef JP
if (!get_check("ËÜÅö¤ËÁ´¥Ú¥Ã¥È¤òÇúÇˤ·¤Þ¤¹¤«¡©"))
+#else
+ if (!get_check("You will blast all pets. Are you sure? "))
+#endif
return;
}
for (i = 1; i < m_max; i++)
{
char m_name[80];
monster_desc(m_name, m_ptr, 0x00);
+#ifdef JP
msg_format("%s¤ÏÇúÇˤµ¤ì¤ë¤Î¤ò·ù¤¬¤ê¡¢¾¡¼ê¤Ë¼«Ê¬¤ÎÀ¤³¦¤Ø¤Èµ¢¤Ã¤¿¡£", m_name);
+#else
+ msg_format("%^s resists to be blasted, and run away.", m_name);
+#endif
delete_monster_idx(i);
continue;
}
if (d_info[dungeon_type].flags1 & DF1_DARKNESS)
{
+#ifdef JP
msg_print("¥À¥ó¥¸¥ç¥ó¤¬¸÷¤òµÛ¼ý¤·¤¿¡£");
+#else
+ msg_print("The darkness of this dungeon absorb your light.");
+#endif
return FALSE;
}
c_ptr->m_idx = p_ptr->riding;
/* Move the monster */
- m_ptr->fy = (byte)py;
- m_ptr->fx = (byte)px;
+ m_ptr->fy = py;
+ m_ptr->fx = px;
/* Move the player */
px = tx;
{
int i;
int count = 0;
- bool pet = FALSE, friendly = FALSE;
+ bool pet = FALSE, friendly = FALSE, not_pet;
int summon_lev;
if (can_pet)
pet = TRUE;
}
}
+ not_pet = (bool)(!pet);
+
summon_lev = (pet ? p_ptr->lev * 2 / 3 + randint(p_ptr->lev / 2) : dun_level);
for (i = 0; i < (randint(7) + (dun_level / 40)); i++)
switch (randint(25) + (dun_level / 20))
{
case 1: case 2:
- count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_ANT, TRUE, friendly, pet, FALSE, !pet);
+ count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_ANT, TRUE, friendly, pet, FALSE, not_pet);
break;
case 3: case 4:
- count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_SPIDER, TRUE, friendly, pet, FALSE, !pet);
+ count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_SPIDER, TRUE, friendly, pet, FALSE, not_pet);
break;
case 5: case 6:
- count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_HOUND, TRUE, friendly, pet, FALSE, !pet);
+ count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_HOUND, TRUE, friendly, pet, FALSE, not_pet);
break;
case 7: case 8:
- count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_HYDRA, TRUE, friendly, pet, FALSE, !pet);
+ count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_HYDRA, TRUE, friendly, pet, FALSE, not_pet);
break;
case 9: case 10:
- count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_ANGEL, TRUE, friendly, pet, FALSE, !pet);
+ count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_ANGEL, TRUE, friendly, pet, FALSE, not_pet);
break;
case 11: case 12:
- count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_UNDEAD, TRUE, friendly, pet, FALSE, !pet);
+ count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_UNDEAD, TRUE, friendly, pet, FALSE, not_pet);
break;
case 13: case 14:
- count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_DRAGON, TRUE, friendly, pet, FALSE, !pet);
+ count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_DRAGON, TRUE, friendly, pet, FALSE, not_pet);
break;
case 15: case 16:
- count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_DEMON, TRUE, friendly, pet, FALSE, !pet);
+ count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_DEMON, TRUE, friendly, pet, FALSE, not_pet);
break;
case 17:
if (pet || friendly) break;
- count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_AMBERITES, TRUE, friendly, pet, TRUE, !pet);
+ count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_AMBERITES, TRUE, friendly, pet, TRUE, not_pet);
break;
case 18: case 19:
if (pet || friendly) break;
- count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_UNIQUE, TRUE, friendly, pet, TRUE, !pet);
+ count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_UNIQUE, TRUE, friendly, pet, TRUE, not_pet);
break;
case 20: case 21:
- count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_HI_UNDEAD, TRUE, friendly, pet, (!friendly && !pet), !pet);
+ count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_HI_UNDEAD, TRUE, friendly, pet, (bool)(!friendly && !pet), not_pet);
break;
case 22: case 23:
- count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_HI_DRAGON, TRUE, friendly, pet, (!friendly && !pet), !pet);
+ count += summon_specific((pet ? -1 : 0), y, x, summon_lev, SUMMON_HI_DRAGON, TRUE, friendly, pet, (bool)(!friendly && !pet), not_pet);
break;
case 24:
- count += summon_specific((pet ? -1 : 0), y, x, 100, SUMMON_CYBER, TRUE, friendly, pet, FALSE, !pet);
+ count += summon_specific((pet ? -1 : 0), y, x, 100, SUMMON_CYBER, TRUE, friendly, pet, FALSE, not_pet);
break;
default:
- count += summon_specific((pet ? -1 : 0), y, x,pet ? summon_lev : (((summon_lev * 3) / 2) + 5), 0, TRUE, friendly, pet, (!friendly && !pet), !pet);
+ count += summon_specific((pet ? -1 : 0), y, x,pet ? summon_lev : (((summon_lev * 3) / 2) + 5), 0, TRUE, friendly, pet, (bool)(!friendly && !pet), not_pet);
}
}
#ifdef JP
if ((p_ptr->pseikaku == SEIKAKU_COMBAT) || (inventory[INVEN_BOW].name1 == ART_CRIMSON))
- msg_format("¡Ø¤³¤Ã¤Á¤À¤¡¡¢%s¡Ù", player_name);
+ msg_format("¡Ø¤³¤Ã¤Á¤À¤¡¡¢%s¡Ù", player_name);
#endif
/* Save the old location */
(quest[leaving_quest].status == QUEST_STATUS_TAKEN))
{
quest[leaving_quest].status = QUEST_STATUS_FAILED;
- quest[leaving_quest].complev = p_ptr->lev;
+ quest[leaving_quest].complev = (byte)p_ptr->lev;
if (quest[leaving_quest].type == QUEST_TYPE_RANDOM)
{
r_info[quest[leaving_quest].r_idx].flags1 &= ~(RF1_QUESTOR);
}
+bool item_tester_hook_identify(object_type *o_ptr)
+{
+ return (bool)!object_known_p(o_ptr);
+}
+
+bool item_tester_hook_identify_weapon_armour(object_type *o_ptr)
+{
+ if (object_known_p(o_ptr))
+ return FALSE;
+ return item_tester_hook_weapon_armour(o_ptr);
+}
+
/*
* Identify an object in the inventory (or on the floor)
* This routine does *not* automatically combine objects.
item_tester_no_ryoute = TRUE;
if (only_equip)
- item_tester_hook = item_tester_hook_weapon_armour;
+ item_tester_hook = item_tester_hook_identify_weapon_armour;
+ else
+ item_tester_hook = item_tester_hook_identify;
/* Get an item */
#ifdef JP
q = "¤É¤Î¥¢¥¤¥Æ¥à¤ò´ÕÄꤷ¤Þ¤¹¤«? ";
-s = "´ÕÄê¤Ç¤¤ë¥¢¥¤¥Æ¥à¤¬¤Ê¤¤¡£";
+s = "´ÕÄꤹ¤ë¤Ù¤¥¢¥¤¥Æ¥à¤¬¤Ê¤¤¡£";
#else
q = "Identify which item? ";
s = "You have nothing to identify.";
+bool item_tester_hook_identify_fully(object_type *o_ptr)
+{
+ return (bool)(!object_known_p(o_ptr) || !(o_ptr->ident & IDENT_MENTAL));
+}
+
+bool item_tester_hook_identify_fully_weapon_armour(object_type *o_ptr)
+{
+ if (!item_tester_hook_identify_fully(o_ptr))
+ return FALSE;
+ return item_tester_hook_weapon_armour(o_ptr);
+}
+
/*
* Fully "identify" an object in the inventory -BEN-
* This routine returns TRUE if an item was identified.
item_tester_no_ryoute = TRUE;
if (only_equip)
- item_tester_hook = item_tester_hook_weapon_armour;
+ item_tester_hook = item_tester_hook_identify_fully_weapon_armour;
+ else
+ item_tester_hook = item_tester_hook_identify_fully;
/* Get an item */
#ifdef JP
q = "¤É¤Î¥¢¥¤¥Æ¥à¤ò´ÕÄꤷ¤Þ¤¹¤«? ";
-s = "´ÕÄê¤Ç¤¤ë¥¢¥¤¥Æ¥à¤¬¤Ê¤¤¡£";
+s = "´ÕÄꤹ¤ë¤Ù¤¥¢¥¤¥Æ¥à¤¬¤Ê¤¤¡£";
#else
q = "Identify which item? ";
s = "You have nothing to identify.";
case 16: sprintf(p, " %s25+d25", s_dur); break;
case 17: sprintf(p, " %s", s_random); break;
case 18: sprintf(p, " %s%dd8", s_dam, (4 + ((plev - 5) / 4))); break;
- case 19: sprintf(p, " ºÇÂç%s50", s_dur); break;
+ case 19: sprintf(p, " %s25+d25", s_dur); break;
case 21: sprintf(p, " %s3*100", s_dam); break;
case 22: sprintf(p, " %sd%d", s_dam, plev * 3); break;
case 23: sprintf(p, " %s%d", s_dam, 100 + plev * 2); break;
delete_monster_idx(c_ptr->m_idx);
/* Create a new monster (no groups) */
- if (place_monster_aux(y, x, new_r_idx, FALSE, FALSE, friendly, pet, FALSE, (m_ptr->mflag2 & MFLAG_NOPET)))
+ if (place_monster_aux(y, x, new_r_idx, FALSE, FALSE, friendly, pet, FALSE, (bool)(m_ptr->mflag2 & MFLAG_NOPET)))
{
/* Success */
polymorphed = TRUE;
monster_terrain_sensitive = FALSE;
/* Placing the new monster failed */
- place_monster_aux(y, x, old_r_idx, FALSE, FALSE, friendly, pet, TRUE, (m_ptr->mflag2 & MFLAG_NOPET));
+ place_monster_aux(y, x, old_r_idx, FALSE, FALSE, friendly, pet, TRUE, (bool)(m_ptr->mflag2 & MFLAG_NOPET));
monster_terrain_sensitive = TRUE;
}
summon_kin_type = 'V';
break;
}
- return summon_specific((pet ? -1 : 0), y, x, level, SUMMON_KIN, group, FALSE, pet, FALSE, !pet);
+ return summon_specific((pet ? -1 : 0), y, x, level, SUMMON_KIN, group, FALSE, pet, FALSE, (bool)(!pet));
}
/* Mage */
{
/*"¸«½¬¤¤",*/
- "Îý½¬À¸", /*ÃúÃÕ¡¢Îý½¬À¸*/
- "´ñ½Ñ»Õ", /*º¾µ½»Õ¡¢¥Ú¥Æ¥ó»Õ*/
+ "Îý½¬À¸", /*ÃúÃÕ¡¢Îý½¬À¸ */
+ "´ñ½Ñ»Õ", /*º¾µ½»Õ¡¢¥Ú¥Æ¥ó»Õ */
"¸¸½Ñ»Õ",
"¼ö½Ñ»Õ",
"¾¤Îî»Õ",
/* Priest */
{
- "¿®¼Ô", /*¿®ÅÌ*/
- "»øÁÎ", /*¶µ²ñÊô»Å¼Ô¡¢¸«½¬¤¤ÁΡ¢È¼ÁΡ¢½¾¼Ô*/
+ "¿®¼Ô", /*¿®ÅÌ */
+ "»øÁÎ", /*¶µ²ñÊô»Å¼Ô¡¢¸«½¬¤¤ÁΡ¢È¼ÁΡ¢½¾¼Ô */
"½ÏÎýÁÎ",
- "À»¿¦¼Ô", /*À»¿¦¼Ô*/
- "ÅÁÆ»»Õ", /*»Êº×ɾµÄ°÷¡¢½¤Æ»²ñ²ñ°÷*/
- "ËÒ»Õ", /*¥é¥Þ¶µ¤ÎÁÎ*/
- "À»¿Í", /*Âç»Ê¶µ¡¢Áí¼ç¶µ¡¢ÁíÂç»Ê¶µ*/
- "º×»Ê", /*º×»Ê¡¢»Êº×*/
- "º×»ÊĹ", /*Âçº×»Ê¡¢º×»ÊĹ*/
+ "À»¿¦¼Ô", /*À»¿¦¼Ô */
+ "ÅÁÆ»»Õ", /*»Êº×ɾµÄ°÷¡¢½¤Æ»²ñ²ñ°÷ */
+ "ËÒ»Õ", /*¥é¥Þ¶µ¤ÎÁÎ */
+ "À»¿Í", /*Âç»Ê¶µ¡¢Áí¼ç¶µ¡¢ÁíÂç»Ê¶µ */
+ "º×»Ê", /*º×»Ê¡¢»Êº× */
+ "º×»ÊĹ", /*Âçº×»Ê¡¢º×»ÊĹ */
"¶µ¹Ä",
},
/* Rogues */
{
- /* "¤´¤í¤Ä¤",*/ /*¤´¤í¤Ä¤¡¢É÷ÍèË·¡¢Éâϲ¼Ô*/
+ /* "¤´¤í¤Ä¤",*/ /*¤´¤í¤Ä¤¡¢É÷ÍèË·¡¢Éâϲ¼Ô */
"¤¹¤ê",
- "Äɤ¤¤Ï¤®", /*Äɤ¤Çí¤®¡¢¶¯Åð¡¢Å¥ËÀ*/
- "ÌëÅð", /*¶¯Åð¡¢ÌëÅð¡¢Å¥ËÀ*/
- "¤³¤½Å¥", /*¤³¤½Å¥¡¢¾®Å¥ËÀ*/
- "¥Ú¥Æ¥ó»Õ", /*ÇîÅÌ¡¢¥Ú¥Æ¥ó»Õ¡¢º¾µ½»Õ*/
+ "Äɤ¤¤Ï¤®", /*Äɤ¤Çí¤®¡¢¶¯Åð¡¢Å¥ËÀ */
+ "ÌëÅð", /*¶¯Åð¡¢ÌëÅð¡¢Å¥ËÀ */
+ "¤³¤½Å¥", /*¤³¤½Å¥¡¢¾®Å¥ËÀ */
+ "¥Ú¥Æ¥ó»Õ", /*ÇîÅÌ¡¢¥Ú¥Æ¥ó»Õ¡¢º¾µ½»Õ */
"¥í¥¦¥·¡¼¥Õ",
"¥Ï¥¤¥·¡¼¥Õ",
"¥Þ¥¹¥¿¡¼¥·¡¼¥Õ",
{
"»È¤¤Áö¤ê",
"ÃÚÉ×",
- "À͸õ", /*À͸õ¡¢¸«Ä¥¤ê¡¢Ä廡ʼ*/
+ "À͸õ", /*À͸õ¡¢¸«Ä¥¤ê¡¢Ä廡ʼ */
"¼í¿Í",
"ÄÉÀ×¼Ô",
"ÀèƳ¼Ô",
- "õ¸±¼Ô", /*³«Âó¼Ô¡¢Ãµ¸±¼Ô*/
+ "õ¸±¼Ô", /*³«Âó¼Ô¡¢Ãµ¸±¼Ô */
"ÌîÉú",
"ÌîÉúƬ",
"ÌîÉú¤ÎÁíÎÎ",
/* Paladins */
{
- "ͦ»Î", /*¿§ÃË¡¢°¦¿Í¡¢¤·¤ã¤ì¼Ô¡¢Í¦´º¤Ê¿Í*/
+ "ͦ»Î", /*¿§ÃË¡¢°¦¿Í¡¢¤·¤ã¤ì¼Ô¡¢Í¦´º¤Ê¿Í */
"±Ò»Î",
"Êݸî¼Ô",
"ËɱҼÔ",
/* Warrior-Mage */
{
"¸«½¬¤¤",
- "ÅÌÄï", /*ÃúÃÕ¡¢Îý½¬À¸*/
+ "ÅÌÄï", /*ÃúÃÕ¡¢Îý½¬À¸ */
"°ì¿ÍÁ°",
"¸Å»²Ê¼",
"Ëâ½Ñʼ»Î",
/* High Mage; same as Mage */
{
/*"¸«½¬¤¤",*/
- "Îý½¬À¸", /*ÃúÃÕ¡¢Îý½¬À¸*/
- "´ñ½Ñ»Õ", /*º¾µ½»Õ¡¢¥Ú¥Æ¥ó»Õ*/
+ "Îý½¬À¸", /*ÃúÃÕ¡¢Îý½¬À¸ */
+ "´ñ½Ñ»Õ", /*º¾µ½»Õ¡¢¥Ú¥Æ¥ó»Õ */
"¸¸½Ñ»Õ",
"¼ö½Ñ»Õ",
"¾¤Îî»Õ",
/* Sorcerer; same as Mage */
{
/*"¸«½¬¤¤",*/
- "Îý½¬À¸", /*ÃúÃÕ¡¢Îý½¬À¸*/
- "´ñ½Ñ»Õ", /*º¾µ½»Õ¡¢¥Ú¥Æ¥ó»Õ*/
+ "Îý½¬À¸", /*ÃúÃÕ¡¢Îý½¬À¸ */
+ "´ñ½Ñ»Õ", /*º¾µ½»Õ¡¢¥Ú¥Æ¥ó»Õ */
"¸¸½Ñ»Õ",
"¼ö½Ñ»Õ",
"¾¤Îî»Õ",
/* Red Mage; same as Warrior-Mage */
{
"¸«½¬¤¤",
- "ÅÌÄï", /*ÃúÃÕ¡¢Îý½¬À¸*/
+ "ÅÌÄï", /*ÃúÃÕ¡¢Îý½¬À¸ */
"°ì¿ÍÁ°",
"¸Å»²Ê¼",
"Ëâ½Ñʼ»Î",
/* Blue Mage; same as Mage */
{
/*"¸«½¬¤¤",*/
- "Îý½¬À¸", /*ÃúÃÕ¡¢Îý½¬À¸*/
- "´ñ½Ñ»Õ", /*º¾µ½»Õ¡¢¥Ú¥Æ¥ó»Õ*/
+ "Îý½¬À¸", /*ÃúÃÕ¡¢Îý½¬À¸ */
+ "´ñ½Ñ»Õ", /*º¾µ½»Õ¡¢¥Ú¥Æ¥ó»Õ */
"¸¸½Ñ»Õ",
"¼ö½Ñ»Õ",
"¾¤Îî»Õ",
#endif
- /*** Object Auto-Pick/Destroy ***/
-
-#ifdef JP
- { &display_pick, TRUE, 7, 7, 8,
- "display_pick", "Á´ÂΥޥåפǼ«Æ°½¦¤¤¥¢¥¤¥Æ¥à¤òɽ¼¨¤¹¤ë" },
-#else
- { &display_pick, TRUE, 7, 7, 8,
- "display_pick", "Display auto-pick items on the small scale map" },
-#endif
-
-#ifdef JP
- { &display_nopick, FALSE, 7, 7, 9,
- "display_nopick", "Á´ÂΥޥåפǾ²¤ËÊüÃÖ¤¹¤ë¥¢¥¤¥Æ¥à¤òɽ¼¨¤¹¤ë" },
-#else
- { &display_nopick, FALSE, 7, 7, 9,
- "display_nopick", "Display ignored items on the small scale map" },
-#endif
-
-#ifdef JP
- { &display_destroy, FALSE, 7, 7, 10,
- "display_destroy", "Á´ÂΥޥåפǼ«Æ°Ç˲õ¥¢¥¤¥Æ¥à¤òɽ¼¨¤¹¤ë" },
-#else
- { &display_destroy, FALSE, 7, 7, 10,
- "display_destroy", "Display auto-destroy items on the small scale map" },
-#endif
+ /*** Easy Object Auto-Destroyer ***/
#ifdef JP
{ &destroy_items, FALSE, 7, 7, 0,
s16b unused; /* Extra bytes (unused) */
byte d_attr; /* Default feature attribute */
- char d_char; /* Default feature character */
+ byte d_char; /* Default feature character */
byte x_attr; /* Desired feature attribute */
- char x_char; /* Desired feature character */
+ byte x_char; /* Desired feature character */
};
byte d_attr; /* Default object attribute */
- char d_char; /* Default object character */
+ byte d_char; /* Default object character */
byte x_attr; /* Desired object attribute */
- char x_char; /* Desired object character */
+ byte x_char; /* Desired object character */
byte flavor; /* Special object flavor (or zero) */
byte d_attr; /* Default monster attribute */
- char d_char; /* Default monster character */
+ byte d_char; /* Default monster character */
byte x_attr; /* Desired monster attribute */
- char x_char; /* Desired monster character */
+ byte x_char; /* Desired monster character */
byte max_num; /* Maximum population allowed per level */
char *name;
byte d_attr; /* Default object attribute */
- char d_char; /* Default object character */
+ byte d_char; /* Default object character */
byte x_attr; /* Desired object attribute */
- char x_char; /* Desired object character */
+ byte x_char; /* Desired object character */
byte flavor; /* Special object flavor (or zero) */
s16b town_num; /* Current town number */
s16b arena_number; /* monster number in arena -KMW- */
- s16b inside_arena; /* Is character inside arena? */
+ bool inside_arena; /* Is character inside arena? */
s16b inside_quest; /* Inside quest level */
- s16b inside_battle; /* Is character inside tougijou? */
+ bool inside_battle; /* Is character inside tougijou? */
s16b rewards[MAX_BACT]; /* Status of rewards in town */
s16b stat_max_max[6]; /* Maximal "maximal" stat values */
s16b stat_cur[6]; /* Current "natural" stat values */
- s32b count;
+ u32b count;
s16b fast; /* Timed -- Fast */
s16b slow; /* Timed -- Slow */
s16b vir_types[8];
s16b word_recall; /* Word of recall counter */
- s16b recall_dungeon;
+ byte recall_dungeon;
s16b energy; /* Current energy */
int town;
int road;
u32b seed;
- byte level;
+ s16b level;
byte entrance;
};
byte dy;
byte dx;
- s16b floor1; /* Floor tile 1 */
+ byte floor1; /* Floor tile 1 */
byte floor_percent1; /* Chance of type 1 */
- s16b floor2; /* Floor tile 2 */
+ byte floor2; /* Floor tile 2 */
byte floor_percent2; /* Chance of type 2 */
- s16b floor3; /* Floor tile 3 */
+ byte floor3; /* Floor tile 3 */
byte floor_percent3; /* Chance of type 3 */
- s16b outer_wall; /* Outer wall tile */
- s16b inner_wall; /* Inner wall tile */
+ byte outer_wall; /* Outer wall tile */
+ byte inner_wall; /* Inner wall tile */
s16b stream1; /* stream tile */
s16b stream2; /* stream tile */
- s16b fill_type1; /* Cave tile 1 */
+ byte fill_type1; /* Cave tile 1 */
byte fill_percent1; /* Chance of type 1 */
- s16b fill_type2; /* Cave tile 2 */
+ byte fill_type2; /* Cave tile 2 */
byte fill_percent2; /* Chance of type 2 */
- s16b fill_type3; /* Cave tile 3 */
+ byte fill_type3; /* Cave tile 3 */
byte fill_percent3; /* Chance of type 3 */
s16b mindepth; /* Minimal depth */
s16b maxdepth; /* Maximal depth */
int min_m_alloc_level; /* Minimal number of monsters per level */
int max_m_alloc_chance; /* There is a 1/max_m_alloc_chance chance per round of creating a new monster */
- s32b flags1; /* Flags 1 */
+ u32b flags1; /* Flags 1 */
- s32b mflags1; /* The monster flags that are allowed */
- s32b mflags2;
- s32b mflags3;
- s32b mflags4;
- s32b mflags5;
- s32b mflags6;
- s32b mflags7;
- s32b mflags8;
- s32b mflags9;
+ u32b mflags1; /* The monster flags that are allowed */
+ u32b mflags2;
+ u32b mflags3;
+ u32b mflags4;
+ u32b mflags5;
+ u32b mflags6;
+ u32b mflags7;
+ u32b mflags8;
+ u32b mflags9;
char r_char[5]; /* Monster race allowed */
int final_object; /* The object you'll find at the bottom */
int obj_great;
int obj_good;
};
+
+
+
+
#ifdef CAPITALIZE_USER_NAME
/* Hack -- capitalize the user name */
- if (islower(buf[0])) buf[0] = toupper(buf[0]);
+#ifdef JP
+ if (!iskanji(buf[0]))
+#endif
+ if (islower(buf[0]))
+ buf[0] = toupper(buf[0]);
#endif /* CAPITALIZE_USER_NAME */
return;
char buf[1024];
- /* Hack : ¥¡¼ÆþÎÏÂÔ¤Á¤Ç»ß¤Þ¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢Î®¤ì¤¿¹Ô¤Îµ²±¤ÏÉÔÍס£*/
+ /* Hack : ¥¡¼ÆþÎÏÂÔ¤Á¤Ç»ß¤Þ¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢Î®¤ì¤¿¹Ô¤Îµ²±¤ÏÉÔÍס£ */
num_more = 0;
/* Wait for a keypress */
}
else
{
- num_more++;/*ή¤ì¤¿¹Ô¤Î¿ô¤ò¿ô¤¨¤Æ¤ª¤¯*/
+ num_more++;/*ή¤ì¤¿¹Ô¤Î¿ô¤ò¿ô¤¨¤Æ¤ª¤¯ */
now_message++;
}
}
now_damaged = FALSE;
- if (!nagasu)
+ if (!alive || !nagasu)
{
/* Pause for response */
#ifdef JP
{
int cmd = inkey();
if (cmd == ESCAPE) {
- num_more = -9999; /*auto_more¤Î¤È¤¡¢Á´¤Æή¤¹¡£*/
+ num_more = -9999; /*auto_more¤Î¤È¤¡¢Á´¤Æή¤¹¡£ */
break;
} else if (cmd == ' ') {
- num_more = 0; /*£±²èÌ̤À¤±Î®¤¹¡£*/
+ num_more = 0; /*£±²èÌ̤À¤±Î®¤¹¡£ */
break;
} else if ((cmd == '\n') || (cmd == '\r')) {
- num_more--; /*£±¹Ô¤À¤±Î®¤¹¡£*/
+ num_more--; /*£±¹Ô¤À¤±Î®¤¹¡£ */
break;
}
if (quick_messages) break;
/* Dump */
#ifdef JP
- Term_addch(a|0x10, ch);
+ Term_addch((byte)(a|0x10), ch);
#else
Term_addch(a, ch);
#endif
s++;
x++;
ch = *s;
- Term_addch(a|0x20, ch);
+ Term_addch((byte)(a|0x20), ch);
}
#endif
/* Advance */
return;
}
+
/* ¥ì¥Ù¥ë¥¢¥Ã¥×¤Î»þ¤Ë¾å¾ºÎ̤òɽ¼¨¤¹¤ë¤Î¤Ë»È¤¦ */
int level_up = 0;
int max_autopick=0;
-char *autopick_name[MAX_AUTOPICK];
-char *autopick_insc[MAX_AUTOPICK];
-s16b autopick_action[MAX_AUTOPICK];
+cptr autopick_name[MAX_AUTOPICK];
+cptr autopick_insc[MAX_AUTOPICK];
+byte autopick_action[MAX_AUTOPICK];
/*
* Executable version
/*
* Player location in dungeon
*/
-s16b py;
-s16b px;
+int py;
+int px;
/*
* Targetting variables
bool center_player;
bool center_running;
-bool display_pick;
-bool display_nopick;
-bool display_destroy;
-
/* Auto-destruction options */
bool destroy_items;
bool leave_worth;
byte feat_wall_outer;
byte feat_wall_inner;
byte feat_wall_solid;
-s16b floor_type[100], fill_type[100];
+byte floor_type[100], fill_type[100];
bool now_damaged;
s16b now_message;
for (i = 0; i < lim; i++)
{
/* Make a resident */
- (void)alloc_monster((generate_encounter==TRUE)?0:3, ((generate_encounter==TRUE) || (one_in_(2) && (!p_ptr->town_num)))?FALSE:TRUE);
+ (void)alloc_monster(generate_encounter ? 0 : 3, (bool)!(generate_encounter || (one_in_(2) && (!p_ptr->town_num))));
}
if(generate_encounter) ambush_flag = TRUE;
{
int terrain; /* Terrain type */
int town; /* Town number */
- byte level; /* Level of the wilderness */
+ s16b level; /* Level of the wilderness */
byte road; /* Road */
char name[32]; /* Name of the town/wilderness */
};
int i, j;
int tmp_int;
long tmp_long;
+ s16b tmp_s16b;
char tmp_val[160];
char ppp[80];
#endif
/* Extract */
- tmp_long = atol(tmp_val);
+ tmp_s16b = atoi(tmp_val);
/* Verify */
- if (tmp_long < 0) tmp_long = 0L;
- if (tmp_long > 8000) tmp_long = 8000L;
+ if (tmp_s16b < 0) tmp_s16b = 0L;
+ if (tmp_s16b > 8000) tmp_s16b = 8000L;
for (j = 0; j <= TV_SWORD - TV_BOW;j++)
{
for (i = 0;i < 64;i++)
{
- weapon_exp[j][i] = tmp_long;
+ weapon_exp[j][i] = tmp_s16b;
if (weapon_exp[j][i] > weapon_exp_settei[p_ptr->pclass][j][i][1]) weapon_exp[j][i] = weapon_exp_settei[p_ptr->pclass][j][i][1];
}
}
for (j = 0; j < 10; j++)
{
- skill_exp[j] = tmp_long;
+ skill_exp[j] = tmp_s16b;
if (skill_exp[j] > skill_exp_settei[p_ptr->pclass][j][1]) skill_exp[j] = skill_exp_settei[p_ptr->pclass][j][1];
}
for (j = 0; j < 32; j++)
- spell_exp[j] = (tmp_long > 1600 ? 1600 : tmp_long);
+ spell_exp[j] = (tmp_s16b > 1600 ? 1600 : tmp_s16b);
for (; j < 64; j++)
- spell_exp[j] = (tmp_long > 1400 ? 1400 : tmp_long);
+ spell_exp[j] = (tmp_s16b > 1400 ? 1400 : tmp_s16b);
/* Default */
sprintf(tmp_val, "%ld", (long)(p_ptr->au));
dun_level = command_arg;
if (!dun_level) dungeon_type = 0;
- p_ptr->inside_arena = 0;
+ p_ptr->inside_arena = FALSE;
leaving_quest = p_ptr->inside_quest;
/* Leaving an 'only once' quest marks it as failed */
(quest[leaving_quest].status == QUEST_STATUS_TAKEN))
{
quest[leaving_quest].status = QUEST_STATUS_FAILED;
- quest[leaving_quest].complev = p_ptr->lev;
+ quest[leaving_quest].complev = (byte)p_ptr->lev;
if (record_fix_quest)
do_cmd_write_nikki(NIKKI_FIX_QUEST_F, leaving_quest, NULL);
}
/* Wizard Light the Level */
case 'w':
- wiz_lite(TRUE, (p_ptr->pclass == CLASS_NINJA));
+ wiz_lite(TRUE, (bool)(p_ptr->pclass == CLASS_NINJA));
break;
/* Increase Experience */
for (i = 0; i < h; i++)
{
/* Dump the message on the appropriate line */
- Term_putstr(0, (h - 1) - i, -1, (i < now_message) ? TERM_WHITE : TERM_SLATE, message_str((s16b)i));
+ Term_putstr(0, (h - 1) - i, -1, (byte)((i < now_message) ? TERM_WHITE : TERM_SLATE), message_str((s16b)i));
/* Cursor */
Term_locate(&x, &y);
int speed = m_list[p_ptr->riding].mspeed;
if (m_list[p_ptr->riding].mspeed > 110)
{
- p_ptr->pspeed = 110 + ((speed-110)*(skill_exp[GINOU_RIDING]*3 + p_ptr->lev*160L - 10000L)/(22000L));
+ p_ptr->pspeed = 110 + (s16b)((speed-110)*(skill_exp[GINOU_RIDING]*3 + p_ptr->lev*160L - 10000L)/(22000L));
if (p_ptr->pspeed < 110) p_ptr->pspeed = 110;
}
else
if (record_fix_quest) do_cmd_write_nikki(NIKKI_FIX_QUEST_C, i, NULL);
/* completed quest */
quest[i].status = QUEST_STATUS_COMPLETED;
- quest[i].complev = p_ptr->lev;
+ quest[i].complev = (byte)p_ptr->lev;
if (!(quest[i].flags & QUEST_FLAG_SILENT))
{
else
{
quest[i].status = QUEST_STATUS_COMPLETED;
- quest[i].complev = p_ptr->lev;
+ quest[i].complev = (byte)p_ptr->lev;
#ifdef JP
msg_print("¥¯¥¨¥¹¥È¤òãÀ®¤·¤¿¡ª");
#else
if (record_rand_quest && (quest[i].type == QUEST_TYPE_RANDOM)) do_cmd_write_nikki(NIKKI_RAND_QUEST_C, i, NULL);
/* completed quest */
quest[i].status = QUEST_STATUS_COMPLETED;
- quest[i].complev = p_ptr->lev;
+ quest[i].complev = (byte)p_ptr->lev;
if (!(quest[i].flags & QUEST_FLAG_PRESET))
{
create_stairs = TRUE;
if (record_fix_quest) do_cmd_write_nikki(NIKKI_FIX_QUEST_C, i, NULL);
/* completed quest */
quest[i].status = QUEST_STATUS_COMPLETED;
- quest[i].complev = p_ptr->lev;
+ quest[i].complev = (byte)p_ptr->lev;
if (!quest[i].flags & QUEST_FLAG_SILENT)
{
else if (r_ptr->r_tkills < MAX_SHORT) r_ptr->r_tkills++;
/* Hack -- Auto-recall */
- monster_race_track((m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
+ monster_race_track((bool)(m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
}
if ((m_ptr->r_idx == MON_BANOR) || (m_ptr->r_idx == MON_LUPART))
monster_desc(m_name, m_ptr, 0x08);
/* Hack -- track this monster race */
- monster_race_track((m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
+ monster_race_track((bool)(m_ptr->mflag2 & MFLAG_KAGE), m_ptr->r_idx);
/* Hack -- health bar for this monster */
health_track(c_ptr->m_idx);
if (p_ptr->prace == RACE_ANDROID)
{
+#ifdef JP
msg_print("¤·¤«¤·²¿¤âµ¯¤³¤é¤Ê¤«¤Ã¤¿¡£");
+#else
+ msg_print("But, nothing happen.");
+#endif
}
else if (p_ptr->exp < PY_MAX_EXP)
{
if (p_ptr->prace == RACE_ANDROID)
{
+#ifdef JP
msg_print("¤·¤«¤·²¿¤âµ¯¤³¤é¤Ê¤«¤Ã¤¿¡£");
+#else
+ msg_print("But, nothing happen.");
+#endif
}
else
{
if (!buki_motteruka(INVEN_RARM)) break;
object_desc(o_name, &inventory[INVEN_RARM], TRUE, 0);
(void)curse_weapon(FALSE, INVEN_RARM);
+#ifdef JP
reward = format("%s¤¬Ç˲õ¤µ¤ì¤¿¡£", o_name);
+#else
+ reward = format("destroying %s", o_name);
+#endif
}
else
{
if (!inventory[INVEN_BODY].k_idx) break;
object_desc(o_name, &inventory[INVEN_BODY], TRUE, 0);
(void)curse_armor();
+#ifdef JP
reward = format("%s¤¬Ç˲õ¤µ¤ì¤¿¡£", o_name);
+#else
+ reward = format("destroying %s", o_name);
+#endif
}
break;
default:
/* A "valid" direction was entered */
return (TRUE);
}
+
+
+/*
+ * ¥¨¥Í¥ë¥®¡¼¤ÎÁý²ÃÎÌ10d5¤ò®¤¯·×»»¤¹¤ë¤¿¤á¤Î´Ø¿ô
+ */
+
+#define Go_no_JuuJou 5*5*5*5*5*5*5*5*5*5
+
+s16b gain_energy(void)
+{
+ int i;
+ s32b energy_result = 10;
+ s32b tmp;
+
+ tmp = rand_int(Go_no_JuuJou);
+
+ for (i = 0; i < 9; i ++){
+ energy_result += tmp % 5;
+ tmp /= 5;
+ }
+
+ return (s16b)(energy_result + tmp);
+}
+
+
+/*
+ * Return bow energy
+ */
+s16b bow_energy(int sval)
+{
+ int energy = 100;
+
+ /* Analyze the launcher */
+ switch (sval)
+ {
+ /* Sling and ammo */
+ case SV_SLING:
+ {
+ energy = 8000;
+ break;
+ }
+
+ /* Short Bow and Arrow */
+ case SV_SHORT_BOW:
+ {
+ energy = 10000;
+ break;
+ }
+
+ /* Long Bow and Arrow */
+ case SV_LONG_BOW:
+ {
+ energy = 10000;
+ break;
+ }
+
+ /* Bow of irresponsiblity and Arrow */
+ case SV_NAMAKE_BOW:
+ {
+ energy = 7777;
+ break;
+ }
+
+ /* Light Crossbow and Bolt */
+ case SV_LIGHT_XBOW:
+ {
+ energy = 12000;
+ break;
+ }
+
+ /* Heavy Crossbow and Bolt */
+ case SV_HEAVY_XBOW:
+ {
+ energy = 13333;
+ break;
+ }
+ }
+
+ return (energy);
+}
+
+
+/*
+ * Return bow tmul
+ */
+int bow_tmul(int sval)
+{
+ int tmul = 0;
+
+ /* Analyze the launcher */
+ switch (sval)
+ {
+ /* Sling and ammo */
+ case SV_SLING:
+ {
+ tmul = 2;
+ break;
+ }
+
+ /* Short Bow and Arrow */
+ case SV_SHORT_BOW:
+ {
+ tmul = 2;
+ break;
+ }
+
+ /* Long Bow and Arrow */
+ case SV_LONG_BOW:
+ {
+ tmul = 3;
+ break;
+ }
+
+ /* Bow of irresponsiblity and Arrow */
+ case SV_NAMAKE_BOW:
+ {
+ tmul = 3;
+ break;
+ }
+
+ /* Light Crossbow and Bolt */
+ case SV_LIGHT_XBOW:
+ {
+ tmul = 3;
+ break;
+ }
+
+ /* Heavy Crossbow and Bolt */
+ case SV_HEAVY_XBOW:
+ {
+ tmul = 4;
+ break;
+ }
+ }
+
+ return (tmul);
+}
if (!isspace(tmp[q]))
{
/* Capitalize if possible */
- if (islower(tmp[q])) tmp[q] = toupper(tmp[q]);
+#ifdef JP
+ if (!iskanji(tmp[q]))
+#endif
+ if (islower(tmp[q]))
+ tmp[q] = toupper(tmp[q]);
/* Done */
break;