G:p:g
I:110:6d8:20:6:5
W:4:1:0:18:500:1039
+B:SHOOT:HURT:2d7
B:HIT:HURT:1d7
B:HIT:HURT:1d7
F:MALE | HAS_LITE_1 |
F:DROP_60 | EAT_LOSE_STR | EAT_LOSE_WIS | EAT_GIVE_CON |
F:OPEN_DOOR | BASH_DOOR | WILD_WOOD |
S:1_IN_9 |
-S:ARROW_2 | MISSILE
+S:SHOOT | MISSILE
D:$An agile hunter, ready and relaxed.
D:µ¡ÉÒ¤ÊÌîÉú¤Ç¡¢¾ï¤ËÀïÆ®¤ò°Õ¼±¤·¤Æ¤¤¤ë¡£
G:h:G
I:110:3d5:10:10:10
W:5:2:0:20:0:0
+B:SHOOT:HURT:2d5
B:HIT:HURT:2d4
B:HIT:HURT:2d4
F:DROP_60 | OPEN_DOOR | BASH_DOOR | FRIENDS | DROP_CORPSE |
F:WILD_WOOD | HAS_LITE_1 |
S:1_IN_8
-S:ARROW_1
+S:SHOOT
D:$A cute, furry little animal, full of merchandising potential.
D:¤½¤ì¤Ï¾®¤µ¤ÊÌӤय¤¸¤ã¤é¤Î¤«¤ï¤¤¤¤·§¤Ç¡¢¾¦¶ÈŪ²ÁÃͤ¬¹â¤¤¡£
G:p:G
I:120:6d8:20:10:5
W:6:2:0:20:140:219
+B:SHOOT:HURT:2d5
B:HIT:HURT:1d5
B:HIT:HURT:1d5
F:MALE | HAS_LITE_1 |
F:ONLY_GOLD | DROP_1D2 | EAT_GIVE_DEX | EAT_LOSE_INT | EAT_LOSE_WIS
F:OPEN_DOOR | BASH_DOOR
S:1_IN_3 |
-S:ARROW_1
+S:SHOOT
D:$A nasty little fellow with a bow and arrow.
D:µÝ¤ÈÌð¤ò»ý¤Ã¤¿¡¢ÇؤÎÄ㤤¤ä¤Ã¤«¤¤¤ÊÅÛ¤À¡£
G:p:G
I:120:14d12:20:30:20
W:8:2:0:150:0:0
-B:HIT:HURT:1d6
-B:HIT:HURT:1d6
+B:SHOOT:HURT:3d6
+B:HIT:HURT:2d6
B:TOUCH:EAT_GOLD
B:TOUCH:EAT_ITEM
F:UNIQUE | MALE | FORCE_SLEEP | FORCE_MAXHP | CAN_SPEAK |
F:TAKE_ITEM | OPEN_DOOR | BASH_DOOR | EVIL | DROP_SKELETON | DROP_CORPSE
F:EAT_GIVE_DEX | EAT_LOSE_WIS
S:1_IN_5
-S:ARROW_2 | HEAL | TRAPS
+S:SHOOT | HEAL | TRAPS
D:$The legendary archer steals from the rich (you qualify).
D:¤³¤ÎÅÁÀâ¤Î¼Í¼ê¤Ï¶â»ý¤Á¡Ê¤¢¤Ê¤¿¤Ï¹ç³Ê¡Ë¤«¤é¶â¤òÅð¤à
G:p:g
I:110:6d8:20:6:5
W:8:1:0:18:500:1039
+B:SHOOT:HURT:2d7
B:HIT:HURT:1d7
B:HIT:HURT:1d7
F:MALE | HAS_LITE_2 |
F:FORCE_SLEEP | FRIENDS | DROP_60 | DROP_SKELETON | DROP_CORPSE
F:OPEN_DOOR | BASH_DOOR |
S:1_IN_9 |
-S:ARROW_2 | MISSILE
+S:SHOOT | MISSILE
D:$An agile hunter, ready and relaxed.
D:µ¡ÉÒ¤ÊÌîÉú¤Ç¡¢¾ï¤ËÀïÆ®¤ò°Õ¼±¤·¤Æ¤¤¤ë¡£
D:¤½¤·¤ÆÃç´Ö¤¿¤Á¤¬ÄÉÀפμê½õ¤±¤ò¤·¤Æ¤¤¤ë¡£
G:,:U
I:120:1d1:4:1:0
W:10:2:0:3:0:0
+B:SHOOT:HURT:2d5
B:SPORE:CONFUSE:1d1
F:NEVER_MOVE | COLD_BLOOD | MULTIPLY |
F:STUPID | EMPTY_MIND |
F:NO_CONF | NO_SLEEP | NO_FEAR
S:1_IN_5
-S:ARROW_1
+S:SHOOT
D:$It looks weird.
D:¤½¤ì¤Ï´ñ̯¤Ë¸«¤¨¤ë¡£
G:p:U
I:110:11d10:20:40:20
W:12:1:0:40:0:0
+B:SHOOT:HURT:4d6
B:HIT:HURT:3d4
B:HIT:HURT:3d4
F:MALE | HAS_LITE_2 |
F:DROP_1D2 |
F:OPEN_DOOR | BASH_DOOR | DROP_SKELETON | DROP_CORPSE
S:1_IN_8
-S:ARROW_2
+S:SHOOT
D:$A warrior trained in melee as well as missile weapons.
D:¼Í·â¤À¤±¤Ç¤Ê¤¯ÀܶáÀï¤Ë¤âÍ¥¤ì¤¿Àï»Î¤À¡£
G:S:b
I:110:10d13:8:30:80
W:13:2:0:55:0:0
+B:SHOOT:HURT:3d6
B:HIT:HURT:1d12
B:HIT:HURT:1d12
B:BITE:POISON:1d6
F:BASH_DOOR | DROP_SKELETON |
F:EVIL | IM_POIS
S:1_IN_8 |
-S:CONF | CAUSE_1 | DARKNESS | MISSILE | ARROW_2
+S:CONF | CAUSE_1 | DARKNESS | MISSILE | SHOOT
D:$A dark elven torso merged with the bloated form of a giant spider.
D:¤½¤ì¤Ï¾åȾ¿È¤¬¥¨¥ë¥Õ¤Ç¡¢²¼È¾¿È¤Ë¤ÏµðÂçÃØéá¤ÎÍͤÊËĤ줿ʢ¤ò»ý¤Ã¤Æ¤¤¤ë¡£
G:o:D
I:110:12d10:20:36:20
W:13:2:0:45:0:0
+B:SHOOT:HURT:2d7
B:HIT:HURT:3d4
B:HIT:HURT:3d4
F:MALE | WILD_ALL | DROP_SKELETON | DROP_CORPSE
F:OPEN_DOOR | BASH_DOOR |
F:EVIL | ORC | HURT_LITE
S:1_IN_15
-S:ARROW_1
+S:SHOOT
D:$He is a large orc with powerful arms and deep black skin.
D:Èà¤Ï¶¯¤¤ÎϤȼ¿¹õ¤ÎÈ©¤ò»ý¤Ã¤¿Â礤ʥª¡¼¥¯¤À¡£
G:o:g
I:110:20d10:20:59:20
W:16:3:0:40:0:0
+B:SHOOT:HURT:3d6
B:HIT:HURT:3d4
B:HIT:HURT:3d4
B:HIT:HURT:3d4
F:OPEN_DOOR | BASH_DOOR | ESCORT | DROP_SKELETON | DROP_CORPSE
F:EVIL | ORC | CAN_SPEAK
S:1_IN_15
-S:ARROW_1
+S:SHOOT
D:$An armoured orc with an air of authority.
D:³»¤òÃ夿¥ª¡¼¥¯¤Ç¡¢°Ò¸·¤Î¤¢¤ëÊ·°Ïµ¤¤òɺ¤ï¤»¤Æ¤¤¤ë¡£
G:o:w
I:110:8d10:20:50:20
W:18:1:0:68:0:0
+B:SHOOT:HURT:3d5
B:HIT:HURT:3d5
B:HIT:HURT:3d5
F:MALE |
F:OPEN_DOOR | BASH_DOOR | DROP_SKELETON | DROP_CORPSE | EAT_POISONOUS |
F:EVIL | ORC | IM_POIS
S:1_IN_12
-S:ARROW_1
+S:SHOOT
D:$He is a cunning orc of power, as tall as a man, and stronger. It fears
D:$little.
D:Èà¤Ï¤º¤ë¸¤¯¤ÆÎϤΤ¢¤ë¥ª¡¼¥¯¤Ç¡¢Çؾæ¤Ï¿Í´Ö¤ÈƱ¤¸¤°¤é¤¤¤À¤¬ÎϤϿʹ֤è¤ê¶¯¤¤¡£
G:P:u
I:120:66d12:20:90:20
W:28:2:0:350:2000:490
+B:SHOOT:HURT:7d6
B:HIT:HURT:9d8
B:HIT:HURT:9d8
F:FORCE_SLEEP |
F:BASH_DOOR | OPEN_DOOR | MOVE_BODY | DROP_CORPSE | EAT_GIVE_STR |
F:EVIL | IM_POIS | IM_ACID | GIANT
S:1_IN_8 |
-S:ARROW_4
+S:SHOOT
D:$A gigantic humanoid with but one eye.
D:°ì¤ÄÌܤεð¿Í¤À¡£
G:H:o
I:120:25d10:12:15:10
W:30:2:0:300:0:0
-B:HIT:HURT:3d4
-B:HIT:HURT:3d4
-B:HIT:HURT:3d4
-B:HIT:HURT:3d4
+B:SHOOT:HURT:7d6
+B:HIT:HURT:4d4
+B:HIT:HURT:4d4
+B:HIT:HURT:4d4
F:FORCE_SLEEP | FORCE_MAXHP |
F:BASH_DOOR | CAN_FLY | WILD_WOOD | DROP_CORPSE | RIDING
F:EVIL
S:1_IN_5 |
-S:ARROW_4
+S:SHOOT
D:$It is a winged lion's body with a human torso and a tail covered in
D:$vicious spikes.
D:¤½¤ì¤Ï±©¤ÎÀ¸¤¨¤¿¥é¥¤¥ª¥ó¤ÎÂΤȡ¢¿Í´Ö¤Î¾åȾ¿È¤È¡¢¼Ù°¤Ê»É¤Ëʤ¤ï¤ì¤¿¿¬Èø¤ò
G:P:u
I:120:60d12:20:90:20
W:33:5:0:1200:0:0
+B:SHOOT:HURT:9d6
B:HIT:HURT:11d8
B:HIT:HURT:11d8
F:FORCE_SLEEP |
F:BASH_DOOR | OPEN_DOOR | MOVE_BODY |
F:EVIL | IM_POIS | IM_ACID | GIANT | EAT_GIVE_STR |
S:1_IN_8 |
-S:ARROW_4
+S:SHOOT
D:$Oh, no! Aaargh! It is the most unnatural, most disgusting
D:$creature imaginable: a two-eyed cyclops! This perversion
D:$of nature must be exterminated!
G:h:U
I:110:30d9:20:40:30
W:35:1:0:330:0:0
+B:SHOOT:HURT:6d6
B:HIT:HURT:2d6
B:HIT:HURT:2d6
F:FORCE_MAXHP | OPEN_DOOR | FRIENDS | DROP_90 |
F:SMART | EVIL | IM_POIS | IM_COLD | MALE | DROP_SKELETON | DROP_CORPSE
S:1_IN_3
-S:ARROW_4
+S:SHOOT
D:$A rebel halfling who has rejected the halfling tradition of archery.
D:¥Ï¡¼¥Õ¥ê¥ó¥°¡Ê¥Û¥Ó¥Ã¥È¡Ë¤ÎµÝ½Ñ¤ÎÅÁÅý¤òµñÈݤ·¤¿¤Ï¤°¤ì¼Ô¤À¡£
F:IM_POIS | NONLIVING | REFLECTING |
F:NO_CONF | NO_SLEEP | NO_FEAR | HURT_ROCK
S:1_IN_8
-S:ARROW_4
+S:SHOOT
D:$An enormous construct resembling a titan made from stone. It strides
D:$purposefully towards you, swinging its slow fists with earth-shattering
D:$power.
F:IM_ELEC | IM_POIS | CAN_SWIM |
F:NO_CONF | NO_SLEEP | NO_FEAR | NONLIVING | RIDING
S:1_IN_6 |
-S:BLIND | SLOW | CONF | ARROW_3 |
+S:BLIND | SLOW | CONF | SHOOT |
S:BR_POIS
D:$A constructed dragon, the drolem has massive strength. Powerful spells
D:$weaved during its creation make it a fearsome adversary. Its eyes show
F:BASH_DOOR | DROP_CORPSE
F:EVIL | IM_FIRE | IM_POIS | NO_CONF | NO_SLEEP
S:1_IN_6 |
-S:SLOW | ARROW_4 | BO_MANA | BO_PLAS | BA_ELEC |
+S:SLOW | SHOOT | BO_MANA | BO_PLAS | BA_ELEC |
S:BR_WALL
D:$A fearsome bull-headed demon, Baphomet swings a mighty axe as he curses
D:$all that defy him.
G:p:g
I:130:55d100:100:100:20
W:69:1:0:36000:0:0
+B:SHOOT:HURT:10d15
B:HIT:HURT:9d15
B:HIT:HURT:9d15
B:HIT:LOSE_CON:1d30
F:EVIL | IM_POIS | IM_ELEC | IM_COLD | SMART | REGENERATE
F:OPEN_DOOR | BASH_DOOR |
S:1_IN_4 |
-S:TPORT | TELE_TO | ARROW_2 | SHRIEK | SCARE | DARKNESS |
+S:TPORT | TELE_TO | SHOOT | SHRIEK | SCARE | DARKNESS |
S:S_ANT | S_SPIDER | S_HOUND | S_HYDRA | TRAPS | BO_WATE | BO_ELEC
D:$Julian is at home in wild woodlands. He enjoys hunting a challenging
D:$prey: you. "Julian, dark hair hanging long, blue eyes containing neither
G:I:U
I:110:8d5:20:13:40
W:8:2:0:25:0:0
+B:SHOOT:HURT:4d6
F:NEVER_BLOW | RAND_25 | ANIMAL | WILD_WOOD |
S:1_IN_1
-S:ARROW_3 |
+S:SHOOT |
D:$A many legged scuttling thing, it spits pebbles with deadly force.
D:¤¿¤¯¤µ¤ó¤ÎµÓ¤Çƨ¤²²ó¤ê¡¢¾®ÀФò¶²¤í¤·¤¤¥¹¥Ô¡¼¥É¤Ç¸ý¤«¤éȯ¼Í¤¹¤ëÃî¡£
D:¡Ö¤Ç¡¢¤½¤Î¡Ô¥Ó¥Ï¥¤¥ó¥À¡¼¡Õ¤È¤ä¤é¤Ï¡¢¤É¤ó¤Ê³Ê¹¥¤ò¤·¤Æ¤¤¤ë¤Î¤«¤Í¡©¡×
G:.:B
I:120:40d15:50:10:10
W:70:6:0:2000:0:0
+B:SHOOT:HURT:15d10
B:EXPLODE:HURT:15d5
F:CHAR_CLEAR | ATTR_CLEAR
F:NEVER_MOVE | IM_POIS | NONLIVING | IM_ACID | STUPID | FORCE_MAXHP
S:1_IN_3
-S:ROCKET | ARROW_4 | BLINK | BR_POIS | BR_CHAO | BR_NEXU
+S:ROCKET | SHOOT | BLINK | BR_POIS | BR_CHAO | BR_NEXU
D:$It was left here to be used against intruders.
D:¤½¤ì¤Ï¿¯Æþ¼Ô¤ËÂФ·¤Æ»ÈÍѤ¹¤ë¤¿¤á¤ËÃÖ¤«¤ì¤Æ¤¤¤ë¡£
G:g:B
I:110:10d80:20:116:10
W:40:3:0:4000:0:0
-B:SPIT:COLD:10d10
+B:SHOOT:HURT:7d6
B:SPIT:COLD:10d10
B:SPIT:COLD:10d10
B:GAZE:BLIND
F:EMPTY_MIND | BASH_DOOR
F:IM_COLD | NO_CONF | NO_SLEEP | NO_FEAR | NONLIVING | FORCE_MAXHP
S:1_IN_5
-S:BR_LITE | BA_COLD | BR_COLD | BO_ICEE | BO_COLD | BR_TIME | ARROW_4
+S:BR_LITE | BA_COLD | BR_COLD | BO_ICEE | BO_COLD | BR_TIME | SHOOT
D:$Obsidian eyes stare at you as you bend before the shower of heavenly
D:$powers and spells...
D:Obsidian eyes stare at you as you bend before the shower of heavenly
G:h:g
I:121:15d15:15:50:10
W:25:2:0:555:0:0
+B:SHOOT:HURT:7d6
B:HIT:HURT:1d9
B:HIT:HURT:1d9
B:HIT:HURT:4d8
F:MALE | ONLY_ITEM | DROP_1D2 | DROP_GOOD | OPEN_DOOR | BASH_DOOR |
F:NO_SLEEP | FRIENDLY | GOOD |
S:1_IN_3 |
-S:HEAL | BLINK | TPORT | BA_FIRE | ARROW_2 | BA_COLD | ARROW_4
+S:HEAL | BLINK | TPORT | BA_FIRE | SHOOT | BA_COLD
D:$A powerful elven leader who knows some magic as well.
D:A powerful elven leader who knows some magic as well.
F:WILD_OCEAN | WILD_WASTE | WILD_WOOD | WILD_VOLCANO | WILD_MOUNTAIN |
F:WILD_GRASS | WILD_ALL | SELF_LITE_1 | SELF_LITE_2 |
S:1_IN_3 |
-S:SHRIEK | DISPEL | ROCKET | ARROW_1 | ARROW_2 | ARROW_3 | ARROW_4 | BR_ACID |
+S:SHRIEK | DISPEL | ROCKET | SHOOT | BR_ACID |
S:BR_ELEC | BR_FIRE | BR_COLD | BR_POIS | BR_NETH | BR_LITE | BR_DARK | BR_CONF |
S:BR_SOUN | BR_CHAO | BR_DISE | BR_NEXU | BR_TIME | BR_INER | BR_GRAV | BR_SHAR |
S:BR_PLAS | BR_WALL | BR_MANA | BA_NUKE | BR_NUKE | BA_CHAO | BR_DISI | BA_ACID |
G:h:g
I:120:10d25:20:30:10
W:22:2:0:300:0:0
+B:SHOOT:HURT:4d6
B:HIT:HURT:2d4
B:HIT:HURT:2d4
B:HIT:HURT:2d4
F:FORCE_SLEEP | DROP_CORPSE | RAND_50 | ANIMAL |
S:1_IN_2 |
-S:ARROW_3
+S:SHOOT
N:951:¥á¥Ã¥È
E:Met
G:o:B
I:110:10d10:40:20:60
W:14:3:0:40:0:0
+B:SHOOT:HURT:3d6
B:HIT:HURT:1d5
B:HIT:HURT:1d5
F:FORCE_SLEEP | DROP_1D2 | SMART | DROP_CORPSE | DROP_SKELETON |
F:ORC | HURT_LITE | EVIL |
S:1_IN_2 |
-S:ARROW_2
+S:SHOOT
N:955:¤ä¤»¤³¤±¤¿ÇÏ
E:Scrawny horse
G:h:G
I:115:50d30:20:70:20
W:40:3:0:500:0:0
+B:SHOOT:HURT:9d6
B:HIT:HURT:10d8
B:HIT:HURT:10d8
F:MALE | FRIENDS | OPEN_DOOR | BASH_DOOR |
F:GOOD | DROP_SKELETON | DROP_CORPSE | SMART |
F:IM_ACID | IM_COLD | RES_WATE | RES_NETH |
S:1_IN_2 |
-S:ARROW_4
+S:SHOOT
D:$An elf cloaked in green wielding a longbow.
D:ÎФΥ¯¥í¡¼¥¯¤ò¤Þ¤È¤¤¡¢Ä¹µÝ¤ò»È¤¦¥¨¥ë¥Õ¤À¡£
G:p:g
I:110:15d11:20:40:40
W:20:1:0:55:0:0
+B:SHOOT:HURT:5d6
B:HIT:HURT:5d4
B:HIT:HURT:5d4
F:MALE |
F:DROP_1D2 |
F:TAKE_ITEM | OPEN_DOOR | BASH_DOOR
S:1_IN_4 |
-S:ARROW_2 | ARROW_3 | MISSILE | S_MONSTER | BO_ELEC | BLINK
+S:SHOOT | MISSILE | S_MONSTER | BO_ELEC | BLINK
D:$A warrior who is at one with nature. A master of both bow and sword, with
D:$minor spellcasting skills, and animals come to do his bidding.
D:¼«Á³¤È¶¦¤ËÀ臘Àï»Î¤À¡£µÝ¤Ë¤â·õ¤Ë¤âã¼Ô¤Ç¡¢Â¿¾¯¤ÎËâË¡¤â»È¤¦¤³¤È¤¬¤Ç¤¡¢
F:b:129:3:0:0:0:0:0:14
F:!:1:3:0:42
-?:[AND [EQU $QUEST1 3] [IOR [EQU $CLASS BeastMaster] [EQU $CLASS Cavalry] [EQU $CLASS Monk] ] ]
+?:[AND [EQU $QUEST1 3] [IOR [EQU $CLASS BeastMaster] [EQU $CLASS Cavalry] ] ]
F:b:129:3:0:0:0:0:0:14
F:!:1:3:0:543
+?:[AND [EQU $QUEST1 3] [EQU $CLASS Monk] ]
+F:b:129:3:0:0:0:0:0:14
+F:!:1:3:0:126
+
?:[AND [EQU $QUEST1 3] [EQU $CLASS Priest] ]
F:b:129:3:0:0:0:0:0:14
F:!:1:3:0:55
#define RBM_INSULT 22
#define RBM_MOAN 23
#define RBM_SHOW 24
+#define RBM_SHOOT 25
/*
#define RF4_XXX1 0x00000002 /* XXX */
#define RF4_DISPEL 0x00000004 /* Dispel magic */
#define RF4_ROCKET 0x00000008 /* TY: Rocket */
-#define RF4_ARROW_1 0x00000010 /* Fire an arrow (light) */
-#define RF4_ARROW_2 0x00000020 /* Fire an arrow (heavy) */
-#define RF4_ARROW_3 0x00000040 /* Fire missiles (light) */
-#define RF4_ARROW_4 0x00000080 /* Fire missiles (heavy) */
+#define RF4_SHOOT 0x00000010 /* Fire missiles */
+#define RF4_XXX2 0x00000020
+#define RF4_XXX3 0x00000040
+#define RF4_XXX4 0x00000080
#define RF4_BR_ACID 0x00000100 /* Breathe Acid */
#define RF4_BR_ELEC 0x00000200 /* Breathe Elec */
#define RF4_BR_FIRE 0x00000400 /* Breathe Fire */
* Hack -- "bolt" spells that may hurt fellow monsters
*/
#define RF4_BOLT_MASK \
- (RF4_ROCKET | RF4_ARROW_1 | RF4_ARROW_2 | RF4_ARROW_3 | RF4_ARROW_4)
+ (RF4_ROCKET | RF4_SHOOT)
#define RF5_BOLT_MASK \
(RF5_BO_ACID | RF5_BO_ELEC | RF5_BO_FIRE | RF5_BO_COLD | \
* Hack -- "attack" spells
*/
#define RF4_ATTACK_MASK \
- (RF4_SHRIEK | RF4_DISPEL | RF4_ROCKET | RF4_ARROW_1 | RF4_ARROW_2 | \
- RF4_ARROW_3 | RF4_ARROW_4 | RF4_BR_ACID | RF4_BR_ELEC | RF4_BR_FIRE | \
+ (RF4_SHRIEK | RF4_DISPEL | RF4_ROCKET | RF4_SHOOT | \
+ RF4_BR_ACID | RF4_BR_ELEC | RF4_BR_FIRE | \
RF4_BR_COLD | RF4_BR_POIS | RF4_BR_NETH | RF4_BR_LITE | RF4_BR_DARK | \
RF4_BR_CONF | RF4_BR_SOUN | RF4_BR_CHAO | RF4_BR_DISE | RF4_BR_NEXU | \
RF4_BR_TIME | RF4_BR_INER | RF4_BR_GRAV | RF4_BR_SHAR | RF4_BR_PLAS | \
* Hack -- "indirect" spells
*/
#define RF4_INDIRECT_MASK \
- (RF4_SHRIEK | RF4_XXX1)
+ (RF4_SHRIEK | RF4_XXX1 | RF4_XXX2 | RF4_XXX3 | RF4_XXX4)
#define RF5_INDIRECT_MASK \
0L
* Hack -- "no magic" spells
*/
#define RF4_NOMAGIC_MASK \
- (RF4_SHRIEK | RF4_ROCKET | RF4_ARROW_1 | RF4_ARROW_2 | \
- RF4_ARROW_3 | RF4_ARROW_4 | RF4_BR_ACID | RF4_BR_ELEC | \
+ (RF4_SHRIEK | RF4_ROCKET | RF4_SHOOT | \
+ RF4_BR_ACID | RF4_BR_ELEC | \
RF4_BR_FIRE | RF4_BR_COLD | RF4_BR_POIS | RF4_BR_NETH | \
RF4_BR_LITE | RF4_BR_DARK | RF4_BR_CONF | RF4_BR_SOUN | \
RF4_BR_CHAO | RF4_BR_DISE | RF4_BR_NEXU | RF4_BR_SHAR | \
#define MS_XXX1 1
#define MS_DISPEL 2
#define MS_ROCKET 3
-#define MS_ARROW_1 4
-#define MS_ARROW_2 5
-#define MS_ARROW_3 6
-#define MS_ARROW_4 7
+#define MS_SHOOT 4
+#define MS_XXX2 5
+#define MS_XXX3 6
+#define MS_XXX4 7
#define MS_BR_ACID 8
#define MS_BR_ELEC 9
#define MS_BR_FIRE 10
"INSULT",
"MOAN",
"SHOW",
+ "SHOOT",
NULL
};
"XXX1",
"DISPEL",
"ROCKET",
- "ARROW_1",
- "ARROW_2",
- "ARROW_3",
- "ARROW_4",
+ "SHOOT",
+ "XXX2",
+ "XXX3",
+ "XXX4",
"BR_ACID",
"BR_ELEC",
"BR_FIRE",
fire_rocket(GF_ROCKET, dir, damage, 2);
break;
- case MS_ARROW_1:
- case MS_ARROW_2:
+ case MS_SHOOT:
if (!get_aim_dir(&dir)) return FALSE;
#ifdef JP
else msg_print("Ìð¤òÊü¤Ã¤¿¡£");
fire_bolt(GF_ARROW, dir, damage);
break;
- case MS_ARROW_3:
- case MS_ARROW_4:
- if (!get_aim_dir(&dir)) return FALSE;
-#ifdef JP
-else msg_print("¥Ü¥ë¥È¤ò·â¤Ã¤¿¡£");
-#else
- else msg_print("You fires a bolt.");
-#endif
-
- fire_bolt(GF_ARROW, dir, damage);
+ case MS_XXX2:
+ break;
+ case MS_XXX3:
+ break;
+ case MS_XXX4:
break;
case MS_BR_ACID:
if (!get_aim_dir(&dir)) return FALSE;
/* Handle "leaving" */
if (p_ptr->leaving) break;
+ if (method == RBM_SHOOT) continue;
+
/* Extract visibility (before blink) */
if (m_ptr->ml) visible = TRUE;
/* break; */
}
+ if (method == RBM_SHOOT) continue;
+
/* Extract the attack "power" */
switch (effect)
{
#endif
#ifdef JP
- if (flags4 & RF4_ARROW_1) {vp[vn] = "Ìð¤ò·â¤Ä";color[vn++] = TERM_L_UMBER;}
+ if (flags4 & RF4_SHOOT) {vp[vn] = "¼Í·â¤ò¤¹¤ë";color[vn++] = TERM_UMBER;}
#else
- if (flags4 & RF4_ARROW_1) {vp[vn] = "fire an arrow";color[vn++] = TERM_L_UMBER;}
-#endif
-
-#ifdef JP
- if (flags4 & RF4_ARROW_2) {vp[vn] = "¶¯ÎϤÊÌð¤ò·â¤Ä";color[vn++] = TERM_L_UMBER;}
-#else
- if (flags4 & RF4_ARROW_2) {vp[vn] = "fire arrows";color[vn++] = TERM_L_UMBER;}
-#endif
-
-#ifdef JP
- if (flags4 & RF4_ARROW_3) {vp[vn] = "¼Í·â¤ò¤¹¤ë";color[vn++] = TERM_UMBER;}
-#else
- if (flags4 & RF4_ARROW_3) {vp[vn] = "fire a missile";color[vn++] = TERM_UMBER;}
-#endif
-
-#ifdef JP
- if (flags4 & RF4_ARROW_4) {vp[vn] = "¶¯ÎϤʼͷâ¤ò¤¹¤ë";color[vn++] = TERM_UMBER;}
-#else
- if (flags4 & RF4_ARROW_4) {vp[vn] = "fire missiles";color[vn++] = TERM_UMBER;}
+ if (flags4 & RF4_SHOOT) {vp[vn] = "fire a missile";color[vn++] = TERM_UMBER;}
#endif
#ifdef JP
{
/* Skip non-attacks */
if (!r_ptr->blow[m].method) continue;
+ if (r_ptr->blow[m].method == RBM_SHOOT) continue;
/* Count known attacks */
if (r_ptr->r_blows[m]) n++;
/* Skip non-attacks */
if (!r_ptr->blow[m].method) continue;
+ if (r_ptr->blow[m].method == RBM_SHOOT) continue;
/* Skip unknown attacks */
if (!r_ptr->r_blows[m]) continue;
-
/* Extract the attack info */
method = r_ptr->blow[m].method;
effect = r_ptr->blow[m].effect;
d1 = r_ptr->blow[m].d_dice;
d2 = r_ptr->blow[m].d_side;
-
/* No method yet */
p = NULL;
if (int_outof(r_ptr, 150)) f5 &= ~(RF5_BO_PLAS);
if (int_outof(r_ptr, 150)) f5 &= ~(RF5_BO_ICEE);
if (int_outof(r_ptr, 150)) f5 &= ~(RF5_MISSILE);
- if (int_outof(r_ptr, 150)) f4 &= ~(RF4_ARROW_1);
- if (int_outof(r_ptr, 150)) f4 &= ~(RF4_ARROW_2);
- if (int_outof(r_ptr, 150)) f4 &= ~(RF4_ARROW_3);
- if (int_outof(r_ptr, 150)) f4 &= ~(RF4_ARROW_4);
+ if (int_outof(r_ptr, 150)) f4 &= ~(RF4_SHOOT);
}
if (smart & (SM_IMM_FREE))
break;
}
- /* RF4_ARROW_1 */
+ /* RF4_SHOOT */
case 96+4:
{
if (x!=px || y!=py) return (FALSE);
else msg_format("%^s fires an arrow.", m_name);
#endif
- dam = damroll(2, 5);
- bolt(m_idx, GF_ARROW, dam, MS_ARROW_1, learnable);
+ dam = damroll(r_ptr->blow[0].d_dice, r_ptr->blow[0].d_side);
+ bolt(m_idx, GF_ARROW, dam, MS_SHOOT, learnable);
update_smart_learn(m_idx, DRS_REFLECT);
break;
}
- /* RF4_ARROW_2 */
+ /* RF4_XXX2 */
case 96+5:
{
- if (x!=px || y!=py) return (FALSE);
- disturb(1, 0);
-#ifdef JP
-if (blind) msg_format("%^s¤¬´ñ̯¤Ê²»¤òȯ¤·¤¿¡£", m_name);
-#else
- if (blind) msg_format("%^s makes a strange noise.", m_name);
-#endif
-
-#ifdef JP
-else msg_format("%^s¤¬Ìð¤òÊü¤Ã¤¿¡£", m_name);
-#else
- else msg_format("%^s fires an arrow!", m_name);
-#endif
-
- dam = damroll(3, 6);
- bolt(m_idx, GF_ARROW, dam, MS_ARROW_2, learnable);
- update_smart_learn(m_idx, DRS_REFLECT);
+ /* XXX XXX XXX */
break;
}
- /* RF4_ARROW_3 */
+ /* RF4_XXX3 */
case 96+6:
{
- if (x!=px || y!=py) return (FALSE);
- disturb(1, 0);
-#ifdef JP
-if (blind) msg_format("%^s¤¬´ñ̯¤Ê²»¤òȯ¤·¤¿¡£", m_name);
-#else
- if (blind) msg_format("%^s makes a strange noise.", m_name);
-#endif
-
-#ifdef JP
- else msg_format("%s¤¬¥Ü¥ë¥È¤ò·â¤Ã¤¿¡£", m_name);
-#else
- else msg_format("%^s fires a bolt.", m_name);
-#endif
- dam = damroll(5, 6);
- bolt(m_idx, GF_ARROW, dam, MS_ARROW_3, learnable);
- update_smart_learn(m_idx, DRS_REFLECT);
+ /* XXX XXX XXX */
break;
}
- /* RF4_ARROW_4 */
+ /* RF4_XXX4 */
case 96+7:
{
- if (x!=px || y!=py) return (FALSE);
- disturb(1, 0);
-#ifdef JP
-if (blind) msg_format("%^s¤¬´ñ̯¤Ê²»¤òȯ¤·¤¿¡£", m_name);
-#else
- if (blind) msg_format("%^s makes a strange noise.", m_name);
-#endif
-
-#ifdef JP
- else msg_format("%s¤¬¥Ü¥ë¥È¤ò·â¤Ã¤¿¡£", m_name);
-#else
- else msg_format("%^s fires a bolt.", m_name);
-#endif
- dam = damroll(7, 6);
- bolt(m_idx, GF_ARROW, dam, MS_ARROW_4, learnable);
- update_smart_learn(m_idx, DRS_REFLECT);
+ /* XXX XXX XXX */
break;
}
break;
}
- /* RF4_ARROW_1 */
+ /* RF4_SHOOT */
case 96+4:
{
if (known)
sound(SOUND_SHOOT);
}
- dam = damroll(2, 5);
- monst_bolt_monst(m_idx, y, x, GF_ARROW, dam, MS_ARROW_1, learnable);
+ dam = damroll(r_ptr->blow[0].d_dice, r_ptr->blow[0].d_side);
+ monst_bolt_monst(m_idx, y, x, GF_ARROW, dam, MS_SHOOT, learnable);
break;
}
- /* RF4_ARROW_2 */
+ /* RF4_XXX2 */
case 96+5:
{
- if (known)
- {
- if (see_either)
- {
- if (blind)
- {
-#ifdef JP
-msg_format("%^s¤¬´ñ̯¤Ê²»¤òȯ¤·¤¿¡£", m_name);
-#else
- msg_format("%^s makes a strange noise.", m_name);
-#endif
-
- }
- else
- {
-#ifdef JP
-msg_format("%^s¤¬%s¤ËÌð¤òÊü¤Ã¤¿¡£", m_name, t_name);
-#else
- msg_format("%^s fires an arrow at %s.", m_name, t_name);
-#endif
-
- }
- }
- else
- {
- mon_fight = TRUE;
- }
-
- sound(SOUND_SHOOT);
- }
-
- dam = damroll(3, 6);
- monst_bolt_monst(m_idx, y, x, GF_ARROW, dam, MS_ARROW_2, learnable);
-
+ /* XXX XXX XXX */
break;
}
- /* RF4_ARROW_3 */
+ /* RF4_XXX3 */
case 96+6:
{
- if (known)
- {
- if (see_either)
- {
- if (blind)
- {
-#ifdef JP
-msg_format("%^s¤¬´ñ̯¤Ê²»¤òȯ¤·¤¿¡£", m_name);
-#else
- msg_format("%^s makes a strange noise.", m_name);
-#endif
-
- }
- else
- {
-#ifdef JP
-msg_format("%s¤¬%s¤Ë¥Ü¥ë¥È¤òÊü¤Ã¤¿¡£", m_name, t_name);
-#else
- msg_format("%^s fires a bolt at %s.", m_name, t_name);
-#endif
-
- }
- }
- else
- {
- mon_fight = TRUE;
- }
-
- sound(SOUND_SHOOT);
- }
-
- dam = damroll(5, 6);
- monst_bolt_monst(m_idx, y, x, GF_ARROW, dam, MS_ARROW_3, learnable);
-
+ /* XXX XXX XXX */
break;
}
- /* RF4_ARROW_4 */
+ /* RF4_XXX4 */
case 96+7:
{
- if (known)
- {
- if (see_either)
- {
- if (blind)
- {
-#ifdef JP
-msg_format("%^s¤¬´ñ̯¤Ê²»¤òȯ¤·¤¿¡£", m_name);
-#else
- msg_format("%^s makes a strange noise.", m_name);
-#endif
-
- }
- else
- {
-#ifdef JP
-msg_format("%s¤¬%s¤Ë¥Ü¥ë¥È¤òÊü¤Ã¤¿¡£", m_name, t_name);
-#else
- msg_format("%^s fires a bolt at %s.", m_name, t_name);
-#endif
-
- }
- }
- else
- {
- mon_fight = TRUE;
- }
-
- sound(SOUND_SHOOT);
- }
-
- dam = damroll(7, 6);
- monst_bolt_monst(m_idx, y, x, GF_ARROW, dam, MS_ARROW_4, learnable);
-
+ /* XXX XXX XXX */
break;
}
{
case MS_SHRIEK:
case MS_XXX1:
+ case MS_XXX2:
+ case MS_XXX3:
+ case MS_XXX4:
case MS_SCARE:
case MS_BLIND:
case MS_CONF:
case MS_ROCKET:
sprintf(p, " %s%d", s_dam, hp/4);
break;
- case MS_ARROW_1:
- sprintf(p, " %s2d5", s_dam);
- break;
- case MS_ARROW_2:
- sprintf(p, " %s3d6", s_dam);
- break;
- case MS_ARROW_3:
- sprintf(p, " %s5d6", s_dam);
- break;
- case MS_ARROW_4:
- sprintf(p, " %s7d6", s_dam);
+ case MS_SHOOT:
+ {
+ object_type *o_ptr = NULL;
+ if (buki_motteruka(INVEN_RARM)) o_ptr = &inventory[INVEN_RARM];
+ else if (buki_motteruka(INVEN_LARM)) o_ptr = &inventory[INVEN_LARM];
+ else
+ sprintf(p, " %s1", s_dam);
+ if (o_ptr)
+ sprintf(p, " %s%dd%d+%d", s_dam, o_ptr->dd, o_ptr->ds, o_ptr->to_d);
break;
+ }
case MS_BR_ACID:
case MS_BR_ELEC:
case MS_BR_FIRE:
damage = hp / 4;
fire_rocket(GF_ROCKET, dir, damage, 2);
break;
- case MS_ARROW_1:
+ case MS_SHOOT:
+ {
+ object_type *o_ptr = NULL;
+
if (!get_aim_dir(&dir)) return FALSE;
else
+ {
#ifdef JP
msg_print("Ìð¤òÊü¤Ã¤¿¡£");
#else
msg_print("You fire an arrow.");
#endif
- damage = damroll(2, 5);
- fire_bolt(GF_ARROW, dir, damage);
+ if (buki_motteruka(INVEN_RARM)) o_ptr = &inventory[INVEN_RARM];
+ else if (buki_motteruka(INVEN_LARM)) o_ptr = &inventory[INVEN_LARM];
+ else
+ damage = 1;
+ if (o_ptr)
+ {
+ damage = damroll(o_ptr->dd, o_ptr->ds)+ o_ptr->to_d;
+ if (damage < 1) damage = 1;
+ }
+ fire_bolt(GF_ARROW, dir, damage);
+ }
break;
- case MS_ARROW_2:
- if (!get_aim_dir(&dir)) return FALSE;
- else
-#ifdef JP
-msg_print("Ìð¤òÊü¤Ã¤¿¡£");
-#else
- msg_print("You fires an arrow.");
-#endif
- damage = damroll(3, 6);
- fire_bolt(GF_ARROW, dir, damage);
+ }
+ case MS_XXX2:
break;
- case MS_ARROW_3:
- if (!get_aim_dir(&dir)) return FALSE;
- else
-#ifdef JP
-msg_print("¥Ü¥ë¥È¤ò·â¤Ã¤¿¡£");
-#else
- msg_print("You fire a bolt.");
-#endif
- damage = damroll(5, 6);
- fire_bolt(GF_ARROW, dir, damage);
+ case MS_XXX3:
break;
- case MS_ARROW_4:
- if (!get_aim_dir(&dir)) return FALSE;
- else
-#ifdef JP
-msg_print("¥Ü¥ë¥È¤ò·â¤Ã¤¿¡£");
-#else
- msg_print("You fire a bolt.");
-#endif
- damage = damroll(7, 6);
- fire_bolt(GF_ARROW, dir, damage);
+ case MS_XXX4:
break;
case MS_BR_ACID:
if (!get_aim_dir(&dir)) return FALSE;
{ 10, 4, 35, 89, 40, A_INT, "²¿¤«"},
{ 40, 35, 85, 0, 40, A_INT, "ËâÎϾõî"},
{ 35, 30, 80, 800, 70, A_STR, "¥í¥±¥Ã¥È"},
-{ 2, 1, 15, 10, 15, A_DEX, "Ìð"},
-{ 5, 2, 20, 18, 20, A_DEX, "¶¯ÎϤÊÌð"},
-{ 12, 3, 25, 30, 25, A_DEX, "¥Ü¥ë¥È"},
-{ 16, 4, 30, 42, 30, A_DEX, "¶¯ÎϤʥܥë¥È"},
+{ 5, 2, 20, 18, 15, A_DEX, "¼Í·â"},
+{ 10, 4, 35, 89, 40, A_INT, "²¿¤«"},
+{ 10, 4, 35, 89, 40, A_INT, "²¿¤«"},
+{ 10, 4, 35, 89, 40, A_INT, "²¿¤«"},
{ 20, 15, 55, 1600, 95, A_CON, "»À¤Î¥Ö¥ì¥¹"},
{ 20, 15, 55, 1600, 95, A_CON, "ÅÅ·â¤Î¥Ö¥ì¥¹"},
{ 20, 15, 55, 1600, 95, A_CON, "±ê¤Î¥Ö¥ì¥¹"},
#ifdef JP
if (flags4 & RF4_SHRIEK) vp[vn++] = "ÈáÌĤǽõ¤±¤òµá¤á¤ë";
if (flags4 & RF4_ROCKET) vp[vn++] = "¥í¥±¥Ã¥È¤òȯ¼Í¤¹¤ë";
-if (flags4 & RF4_ARROW_2) vp[vn++] = "¿ô²óÌð¤ò·â¤Ä";
-if (flags4 & RF4_ARROW_2) vp[vn++] = "¿ô²óÌð¤ò·â¤Ä";
-if (flags4 & RF4_ARROW_4) vp[vn++] = "¿ô²ó¼Í·â¤ò¤¹¤ë";
-if (flags4 & RF4_ARROW_4) vp[vn++] = "¿ô²ó¼Í·â¤ò¤¹¤ë";
+if (flags4 & RF4_SHOOT) vp[vn++] = "¼Í·â¤ò¤¹¤ë";
if (flags6 & (RF6_SPECIAL)) vp[vn++] = "ÆÃÊ̤ʹÔÆ°¤ò¤¹¤ë";
#else
if (flags4 & RF4_SHRIEK) vp[vn++] = "shriek for help";
if (flags4 & RF4_ROCKET) vp[vn++] = "shoot a rocket";
- if (flags4 & RF4_ARROW_1) vp[vn++] = "fire arrows";
- if (flags4 & RF4_ARROW_2) vp[vn++] = "fire arrows";
- if (flags4 & RF4_ARROW_3) vp[vn++] = "fire missiles";
- if (flags4 & RF4_ARROW_4) vp[vn++] = "fire missiles";
+ if (flags4 & RF4_SHOOT) vp[vn++] = "fire missiles";
if (flags6 & (RF6_SPECIAL)) vp[vn++] = "do something";
#endif
{
if (!r_ptr->blow[j].method) continue;
+ if (r_ptr->blow[j].method == RBM_SHOOT) continue;
+
/* No method yet */
p = "???";