OSDN Git Service

monster_death()関数中の固定アーティファクトドロップ指定を、r_info.txtへ移管。各確率に変化はない(はず) / Fixed artifact...
authorDeskull <desull@users.sourceforge.jp>
Mon, 26 Oct 2015 09:38:05 +0000 (18:38 +0900)
committerDeskull <desull@users.sourceforge.jp>
Mon, 26 Oct 2015 09:38:05 +0000 (18:38 +0900)
先の変数型指定ミスを修正。 / Fix variable type bug.

lib/edit/r_info.txt
src/init1.c
src/xtra2.c

index e7cc718..aa39ca6 100644 (file)
@@ -760,6 +760,7 @@ F:EVIL | IM_ACID | IM_ELEC | IM_FIRE | IM_POIS | IM_COLD | UNIQUE |
 F:RES_LITE | RES_DARK | RES_NETH | RES_WATE | RES_PLAS | RES_SHAR | RES_SOUN |
 F:RES_CHAO | RES_NEXU | RES_DISE | RES_WALL | RES_INER | RES_TIME | RES_GRAV |
 F:KILL_WALL | FORCE_MAXHP | CAN_SWIM | DROP_CORPSE |
+A:192:1:100
 S:1_IN_9 |
 S:TPORT | BLINK | TELE_AWAY
 D:$This unholy abomination will crush you. Flee while you can! 
@@ -2264,6 +2265,7 @@ F:TAKE_ITEM | OPEN_DOOR | BASH_DOOR | EVIL | DROP_SKELETON | DROP_CORPSE
 F:EAT_GIVE_DEX | EAT_LOSE_WIS
 S:1_IN_5
 S:SHOOT | HEAL | TRAPS
+A:221:1:5
 D:$The legendary archer steals from the rich (you qualify).
 D:この伝説の射手は金持ち(あなたは合格)から金を盗む
 
@@ -6445,6 +6447,7 @@ F:OPEN_DOOR | BASH_DOOR | EVIL |
 F:IM_FIRE | IM_COLD | RES_DARK | RES_DISE | NO_CONF | NO_SLEEP | RES_TELE
 S:1_IN_8 | 
 S:HEAL | HASTE | BO_FIRE
+A:99:1:66
 D:$Alberich's son, born of a mortal woman won with gold.
 D:アルベリヒの息子で、金で買われた人間の女性との間に生まれた。
 D:グンター王の異父弟にあたり、奸計によってジークフリードを殺害し、
@@ -8807,6 +8810,7 @@ F:ONLY_ITEM | DROP_1D2 | DROP_GOOD |
 F:OPEN_DOOR | BASH_DOOR | 
 #F:TROLL | IM_COLD | IM_POIS
 F:IM_COLD | IM_POIS
+A:150:1:100
 
 #JZ#
 #JZ#巨人ファゾルト
@@ -12359,6 +12363,7 @@ F:ONLY_ITEM | DROP_1D2 | DROP_GOOD | DROP_GREAT | UNIQUE |
 F:TAKE_ITEM | OPEN_DOOR | BASH_DOOR | SMART | POWERFUL |
 S:1_IN_3
 S:BLIND | HEAL | BA_DARK | HASTE | CONF |
+A:43:1:15
 D:$Deriving his strength from the shadows, this king of thieves 
 D:$steals only for the challenge.
 D:薄明界の大盗賊にして、暗黒界の王の一人。
@@ -13102,6 +13107,7 @@ F:CHAR_MULTI | EVIL | IM_POIS | IM_COLD | IM_FIRE | RES_NETH | RES_CHAO |
 F:FORCE_SLEEP | UNIQUE | FORCE_MAXHP | CAN_FLY |
 F:COLD_BLOOD | BASH_DOOR | NONLIVING |
 F:NO_CONF | NO_SLEEP | NO_FEAR
+A:190:1:100
 D:$The mightiest of hellblades, a black runesword which thirsts for 
 D:$your soul.
 D:最も強力な魔剣である、この黒いルーンソードはあなたの魂を渇望している。
@@ -13907,6 +13913,7 @@ F:TAKE_ITEM | OPEN_DOOR | BASH_DOOR |
 F:IM_POIS | IM_FIRE | NO_CONF | NO_SLEEP | EVIL | RES_TELE
 S:1_IN_6 | 
 S:TRAPS | S_KIN
+A:139:1:66
 D:$He may not code worth a dime, but he certainly knows how to make money.
 D:彼の書くプログラムは一銭の価値もないかもしれないが、彼は金を儲ける方法を
 D:確かに知っている。
@@ -14708,6 +14715,7 @@ S:1_IN_4 |
 S:HEAL | BLIND | CONF | SCARE | CAUSE_3 | CAUSE_4 | BRAIN_SMASH | 
 S:FORGET | 
 S:S_MONSTERS
+A:214:1:5
 D:$He is one of the greatest dwarven priests to walk the earth.  Fundin has 
 D:$earned a high position in the church, and his skill with both weapon and 
 D:$spell only justify his position further.  His combination of both dwarven 
@@ -14740,6 +14748,7 @@ S:1_IN_4 |
 S:HEAL | BLIND | CONF | SCARE | CAUSE_4 | BRAIN_SMASH | 
 S:FORGET | S_MONSTERS | BA_CHAO | BLINK | TPORT | TELE_TO |
 S:TELE_AWAY | S_DEMON
+A:3:1:20
 D:$Once this now gnomish creature created the universe with the Jewel 
 D:$of Judgement - or so you have been told. There is little sanity left 
 D:$in his present form even if he still has the power. "He was a small 
@@ -14993,6 +15002,7 @@ S:HEAL | HASTE | TPORT | TELE_AWAY | BLIND | CONF | SCARE |
 S:CAUSE_4 | MIND_BLAST | FORGET | TRAPS | ANIM_DEAD |
 S:BO_ICEE | BA_ACID | BA_FIRE | BA_COLD | BA_WATE | 
 S:S_UNDEAD | S_DEMON | S_DRAGON | PSY_SPEAR
+A:2:1:33
 D:$Originally known as the White, Saruman fell prey to Sauron's wiles. He 
 D:$searches forever for the One Ring, to become a mighty Sorcerer-King of the 
 D:$world.
@@ -15022,6 +15032,7 @@ S:HEAL | HASTE | TPORT | TELE_AWAY | BLIND | CONF | SCARE |
 S:CAUSE_4 | BRAIN_SMASH | FORGET | TRAPS | 
 S:BA_FIRE | BO_FIRE | BO_PLAS | BO_MANA | PSY_SPEAR |
 S:S_MONSTER | S_ANGEL | S_DRAGON | S_KIN 
+A:131:1:20
 D:$The wizard who opposed Saruman, and in the end, was the only 
 D:$one of the Istari to succeed in his task. Gandalf is very 
 D:$wise and specializes in fire magic.
@@ -15056,6 +15067,8 @@ S:TPORT | BLINK | BA_FIRE | BA_COLD |
 S:DRAIN_MANA | CAUSE_4 | BA_ACID | TELE_AWAY |
 S:MIND_BLAST | TRAPS | HEAL |
 S:HASTE | BRAIN_SMASH | BA_CHAO | BA_DARK | PSY_SPEAR
+A:84:3:33
+A:126:1:25
 D:$Brand sees himself as a hero, the god creator 
 D:$and absolute monarch of a future world. Unfortunately he needs 
 D:$to erase the existing world to make his new world. "...a figure both 
@@ -15548,6 +15561,7 @@ S:SCARE | BLIND | CONF | TPORT | BLINK | TELE_AWAY | TELE_TO
 S:TRAPS | CAUSE_4 | BA_POIS | S_DEMON
 S:S_MONSTERS | PSY_SPEAR
 R:201:8d10
+A:70:1:5
 D:$She is beautiful and deadly. "...I have always been very fond of Fiona. 
 D:$She is certainly the loveliest, most civilized of (all Amberites)."
 D:彼女は美しく、また危険な存在でもある。「…フィオナの事はとても好きだ。
@@ -15626,6 +15640,7 @@ S:TPORT | TELE_TO | SHOOT | SHRIEK | SCARE | DARKNESS |
 S:S_ANT | S_SPIDER | S_HOUND | S_HYDRA | TRAPS | BO_WATE | BO_ELEC
 R:151:1d6
 R:829:5d10
+A:23:1:45
 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 
 D:$passion nor compassion. He was dressed completely in scaled white armor, 
@@ -15780,6 +15795,7 @@ S:1_IN_4 |
 S:TPORT | TELE_TO | SCARE | DARKNESS |
 S:S_DRAGON | TRAPS | BO_WATE | BO_NETH | S_UNDEAD | S_DEMON |
 S:CONF | BO_ACID | FORGET | MIND_BLAST | CAUSE_4
+A:65:1:50
 D:$Caine is perhaps the least reliable Amberite, always ready to ignore 
 D:$his pacts and promises when it suits him. "...the swarthy, dark-eyed 
 D:$countenance of Caine, dressed all in satin that was black and green, 
@@ -16358,6 +16374,7 @@ S:1_IN_2 |
 S:CAUSE_3 | TELE_TO | BA_FIRE | DRAIN_MANA | HOLD |
 S:TRAPS | BA_WATE | BO_PLAS | BA_NETH | DISPEL | PSY_SPEAR |
 S:BA_MANA | BA_DARK | S_HI_UNDEAD | BA_CHAO | HAND_DOOM | ANIM_DEAD
+A:98:1:40
 D:$Klingsor, whose hopeless effort to join the Knights of the Grail 
 D:$was thwarted, turned to black magic and became a deadly necromancer.
 D:クリングゾールは聖杯の騎士団に加わる望みを断たれ、黒魔術
@@ -16394,6 +16411,8 @@ S:CAUSE_3 | BO_ACID | BO_MANA | HOLD | BA_FIRE | BA_COLD |
 S:TRAPS | TELE_AWAY | HEAL | BRAIN_SMASH | BA_WATE | BA_NETH |
 S:FORGET | BO_WATE | BO_NETH | CAUSE_4 | DARKNESS | S_MONSTERS |
 S:BO_PLAS | S_ANGEL | PSY_SPEAR
+A:55:3:33
+A:72:1:33
 D:$Corwin is one of the most feared and respected Amberites; his skill 
 D:$and cunning are well known. "Green eyes, black hair, dressed in black 
 D:$and silver, yes. (Corwin) had on a cloak and it was slightly furled 
@@ -16911,6 +16930,8 @@ F:IM_FIRE | NO_CONF | NO_SLEEP | IM_POIS | HURT_COLD | GIANT |
 S:1_IN_5 |
 S:BR_FIRE | BR_PLAS | BLIND | TELE_TO | S_KIN | S_HI_UNDEAD |
 S:HAND_DOOM | TELE_AWAY | S_CYBER | S_DEMON
+A:245:3:100
+A:78:1:100
 D:$Surtur is also one of the most ancient of all creatures. He is a demonic 
 D:$giant of fire, who is destined to set the nine worlds afire with his 
 D:$accursed sword of doom on the day of Ragnarok.
@@ -16964,6 +16985,7 @@ S:1_IN_4 |
 S:BLIND | CONF | SCARE | 
 S:BR_FIRE | 
 S:S_DEMON | S_HI_UNDEAD
+A:71:1:50
 D:$A massive form cloaked in flame.  Lungorthin stares balefully at you with 
 D:$eyes that smoulder red.  The dungeon floor where he stands is scorched by 
 D:$the heat of his body.
@@ -17471,7 +17493,8 @@ F:IM_FIRE | IM_ELEC | NO_CONF | NO_SLEEP
 S:1_IN_3 | 
 S:BLIND | CONF | SCARE | 
 S:BR_FIRE | S_KIN |
-S:S_DEMON | S_HI_UNDEAD | S_CYBER 
+S:S_DEMON | S_HI_UNDEAD | S_CYBER
+A:212:1:33
 D:$Gothmog is the Chief Balrog in Morgoth's personal guard.  He is renowned 
 D:$for slaying Ecthelion the Warder of the Gates and he has never been 
 D:$defeated in combat.  With his whip of flame and awesome fiery breath he 
@@ -17547,6 +17570,8 @@ S:BO_ICEE | BO_MANA | BO_PLAS |
 S:BA_MANA | BA_FIRE | BA_WATE | BA_NETH | BA_DARK | 
 S:S_MONSTERS | S_DEMON | S_HI_UNDEAD | S_HI_DRAGON |
 S:HAND_DOOM | ANIM_DEAD | DISPEL | PSY_SPEAR
+A:13:10:100
+A:14:1:100
 D:$Mighty in spells and enchantments,
 D:$he created the One Ring.  His eyes glow with power and his gaze seeks to 
 D:$destroy your soul.  He has many servants, and rarely fights without them.
@@ -17638,6 +17663,8 @@ D:「オベロン、アンバーの君主。あの緑と金の服装で、目の
 D:高く、肩幅が広く、胸が厚い。白髪のいくらか混じった黒い顎ひげ。髪の毛は
 D:相変わらず。緑の石のはまった金の指輪、金色の剣。」
 D:(ロジャー・ゼラズニイ、岡部宏之訳「アンバーの九王子」早川書房、p.181)
+A:3:3:33
+A:42:1:50
 
 # Morgoth, mr normal monster!
 
@@ -17951,6 +17978,7 @@ F:OPEN_DOOR | BASH_DOOR | POWERFUL | MOVE_BODY | CAN_SWIM | RES_WATE |
 F:EVIL | IM_FIRE | IM_COLD | IM_POIS | IM_ELEC | NO_CONF | NO_SLEEP
 S:1_IN_2 | 
 S:BR_FIRE | BR_NEXU | BR_CHAO | BR_POIS | BR_DISE | BR_PLAS | BR_NUKE | BR_DARK
+A:128:1:25
 D:出雲の国に棲む伝説の蛇で、八つの首と八つの尾を持つ。
 D:いけにえを拒むと洪水を起こして人々を全滅させる。
 
@@ -17973,6 +18001,7 @@ F:RES_CHAO | RES_NEXU | RES_DISE | RES_WALL | RES_INER | RES_TIME | RES_GRAV |
 F:RES_TELE | NO_CONF | NO_SLEEP | NO_STUN |
 S:1_IN_2 | 
 S:ROCKET | HEAL | BLINK | INVULNER
+A:16:1:50
 D:$His favorite food is roasting rice noodle. 
 D:$He is the lone wolf filled with the adventurous spirit. 
 D:$His righteousness and courage are more than the average. 
@@ -18073,6 +18102,7 @@ F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_NETH | RES_DARK | HURT_LITE |
 F:NO_CONF | NO_SLEEP | RES_TIME | RES_TELE | REFLECTING |
 S:1_IN_4 | 
 S:SCARE | S_KIN | WORLD | TELE_TO
+A:146:1:20
 D:石仮面の力で不死の吸血鬼となったディオは冒険者を餌としか見ていない。
 D:『ザ・ワールド』に気をつけろ!「奴のスタンドの正体は分からないが、
 D:至近距離でしか使えないことは確かだッ」
@@ -19754,6 +19784,7 @@ F:UNIQUE | MALE | FORCE_MAXHP | DROP_60 | DROP_GOOD | HUMAN |
 F:DROP_1D2 | OPEN_DOOR | BASH_DOOR | SMART | POWERFUL | IM_FIRE |
 F:TAKE_ITEM | CAN_SPEAK | EVIL | NO_FEAR | NO_CONF | NO_SLEEP | 
 F:CAN_SWIM | DROP_CORPSE | AURA_FIRE | HAS_LITE_2 |
+A:154:1:10
 D:$Beld seeks to conquer Lodoss and will destroy anyone who stands in his way.
 D:ベルドはロードス征服をたくらみ、立ちはだかる全てを破壊しようとした。
 
@@ -19872,6 +19903,7 @@ F:UNIQUE | MALE | CAN_SPEAK | FORCE_MAXHP | ESCORT |
 F:ONLY_ITEM | DROP_1D2 | DROP_2D2 | DROP_GOOD | DROP_CORPSE |
 F:OPEN_DOOR | BASH_DOOR | CAN_SWIM | AURA_ELEC |
 F:EVIL | GIANT | IM_POIS | IM_FIRE | IM_ELEC
+A:194:1:33
 D:丹波の国の大江山をねぐらとし、京の都を襲っては財宝と娘を
 D:奪う凶悪な鬼どもの首領だ。
 
@@ -20270,6 +20302,7 @@ F:OPEN_DOOR | GOOD | CAN_SWIM |
 F:NO_CONF | NO_SLEEP | FRIENDLY | TAKE_ITEM |
 S:1_IN_5 |
 S:BA_FIRE | HOLD | BO_FIRE | HEAL
+A:179:1:50
 D:かの大魔術師マーリンが異世界から召喚した(と言い張っている)戦士だ。
 D:「若者はエクスカリバーを短くしたような怪しげな剣を持ち、
 D:稲妻だとか火の玉だとか、わけのわからぬことを呟いている。」
@@ -21973,6 +22006,7 @@ F:UNIQUE | MALE | WEIRD_MIND | HUMAN | CAN_SPEAK
 F:FORCE_MAXHP | WILD_ALL | DROP_CORPSE | KILL_BODY
 F:ONLY_ITEM | DROP_2D2 | DROP_GOOD |
 F:OPEN_DOOR | BASH_DOOR | NO_CONF | NO_FEAR
+A:248:1:80
 D:「あの君さまはいつが盛りよな」この老剣士は今、正気でも曖昧でもなく、
 D:敵であろうと味方であろうと、間合いに入った者全てを斬る魔神と化している。
 
index ec46351..33db436 100644 (file)
@@ -3066,7 +3066,7 @@ errr parse_r_info(char *buf, header *head)
        /* Process 'A' for "Artifact Flags" (multiple lines) */
        else if (buf[0] == 'A')
        {
-               u16b id, per, rarity;
+               int id, per, rarity;
 
                /* Find the next empty blow slot (if any) */
                for (i = 0; i < 4; i++) if (!r_ptr->artifact_id[i]) break;
index 20802c1..c405839 100644 (file)
@@ -1258,195 +1258,6 @@ void monster_death(int m_idx, bool drop_item)
                        chance = r_ptr->artifact_percent[i];
                }
 
-               switch (m_ptr->r_idx)
-               {
-               case MON_OBERON:
-                       if (one_in_(3))
-                       {
-                               a_idx = ART_JUDGE;
-                               chance = 33;
-                       }
-                       else
-                       {
-                               a_idx = ART_AMBER;
-                               chance = 50;
-                       }
-                       break;
-
-               case MON_GHB:
-                       a_idx = ART_GHB;
-                       chance = 100;
-                       break;
-
-               case MON_STORMBRINGER:
-                       a_idx = ART_STORMBRINGER;
-                       chance = 100;
-                       break;
-
-               case MON_ECHIZEN:
-                       a_idx = ART_CRIMSON;
-                       chance = 50;
-                       break;
-
-               case MON_GANDALF:
-                       a_idx = ART_ICANUS;
-                       chance = 20;
-                       break;
-
-               case MON_OROCHI:
-                       a_idx = ART_KUSANAGI;
-                       chance = 25;
-                       break;
-
-               case MON_DWORKIN:
-                       a_idx = ART_JUDGE;
-                       chance = 20;
-                       break;
-
-               case MON_SAURON:
-                       if (one_in_(10))
-                       {
-                               a_idx = ART_POWER;
-                               chance = 100;
-                       }
-                       else
-                       {
-                               a_idx = ART_AHO;
-                               chance = 100;
-                       }
-                       break;
-
-               case MON_BRAND:
-                       if (!one_in_(3))
-                       {
-                               a_idx = ART_BRAND;
-                               chance = 25;
-                       }
-                       else
-                       {
-                               a_idx = ART_WEREWINDLE;
-                               chance = 33;
-                       }
-                       break;
-
-               case MON_CORWIN:
-                       if (!one_in_(3))
-                       {
-                               a_idx = ART_GRAYSWANDIR;
-                               chance = 33;
-                       }
-                       else
-                       {
-                               a_idx = ART_CORWIN;
-                               chance = 33;
-                       }
-                       break;
-
-               case MON_SURTUR:
-                       if (!one_in_(3))
-                       {
-                               a_idx = ART_TWILIGHT;
-                               chance = 100;
-                       }
-                       else
-                       {
-                               a_idx = ART_ORB_OF_FATE;
-                               chance = 100;
-                       }
-                       break;
-
-               case MON_SARUMAN:
-                       a_idx = ART_ELENDIL;
-                       chance = 33;
-                       break;
-
-               case MON_FIONA:
-                       a_idx = ART_FIONA;
-                       chance = 50;
-                       break;
-
-               case MON_JULIAN:
-                       a_idx = ART_JULIAN;
-                       chance = 45;
-                       break;
-
-               case MON_KLING:
-                       a_idx = ART_DESTINY;
-                       chance = 40;
-                       break;
-
-               case MON_GOEMON:
-                       a_idx = ART_ZANTETSU;
-                       chance = 100;
-                       break;
-
-               case MON_HAGEN:
-                       a_idx = ART_HAGEN;
-                       chance = 66;
-                       break;
-
-               case MON_CAINE:
-                       a_idx = ART_CAINE;
-                       chance = 50;
-                       break;
-
-               case MON_BULLGATES:
-                       a_idx = ART_WINBLOWS;
-                       chance = 66;
-                       break;
-
-               case MON_LUNGORTHIN:
-                       a_idx = ART_CALRIS;
-                       chance = 50;
-                       break;
-
-               case MON_JACK_SHADOWS:
-                       a_idx = ART_JACK;
-                       chance = 15;
-                       break;
-
-               case MON_DIO:
-                       a_idx = ART_STONEMASK;
-                       chance = 20;
-                       break;
-
-               case MON_BELD:
-                       a_idx = ART_SOULCRUSH;
-                       chance = 10;
-                       break;
-
-               case MON_PIP:
-                       a_idx = ART_EXCALIBUR_J;
-                       chance = 50;
-                       break;
-
-               case MON_SHUTEN:
-                       a_idx = ART_SHUTEN_DOJI;
-                       chance = 33;
-                       break;
-
-               case MON_GOTHMOG:
-                       a_idx = ART_GOTHMOG;
-                       chance = 33;
-                       break;
-
-               case MON_FUNDIN:
-                       a_idx = ART_FUNDIN;
-                       chance = 5;
-                       break;
-
-               case MON_ROBIN_HOOD:
-                       a_idx = ART_ROBIN_HOOD;
-                       chance = 5;
-                       break;
-
-               case MON_KOGAN:
-                       a_idx = ART_NANACHO;
-                       chance = 80;
-                       break;
-
-               }
-
                if ((a_idx > 0) && ((randint0(100) < chance) || p_ptr->wizard))
                {
                        artifact_type *a_ptr = &a_info[a_idx];