ref who Begin onActivate set who to GetActionRef <ここでプレイヤーは除外 略> if a000Bath.Bedcount > 2 ;同時に3人まで Activate return endif ---- これは、3人以上が入ったら無視するように----
--- ここから本番 if a000Bath.whoBedA == 0 ;一番のロッカーは空か? set a000Bath.whoBedA to who ;ロッカー使用者名を保存 set a000Bath.BEDCount to a000Bath.BEDCount +1 ;使用現在数を加える Who.RemoveAllItems BDboxA ;ロッカーに荷物を入れる who.AddScriptPackage a000AddPackx0A --- 以下同様に、WhoBedB…C、BDboxB…C、a000Packx0B…x0C a000Bathはスクリプト間で変数のやりとりをするためのクエストスクリプト WhoBedA、WhoBedB,WhoBedC、をRef で定義してます。BEDCountは整数です。
ref Who short c Begin GameMode If c == 1 Who.RemoveAllItems BDboxA set c to 2 endif if c == 2 nemakiA.RemoveAllItems who set c to 0 Who.AddscriptPackage a000addPackx01 endif if c == 3 Who.RemoveAllItems BDboxB set c to 4 endif if c == 4 nemakiB.RemoveAllItems who set c to 0 Who.AddscriptPackage a000addPackx01 endif If c == 5 Who.RemoveAllItems BDboxC set c to 6 endif if c == 6 nemakiC.RemoveAllItems who set c to 0 Who.AddscriptPackage a000addPackx01 endif end
IF IsActionRef Player == 1 Activate return endif if a000Bed.BedCount >2 Activate return endif
If a000Bed.WhoA == 0 set a000Bed.WhoA to who Dummy01.enable set c to 1 set a000Bed.BedCount to a000Bed.BedCount +1 elseIf a000Bed.WhoB == 0 set a000Bed.WhoB to who Dummy02.enable set c to 3 set a000Bed.BedCount to a000Bed.BedCount +1 elseIf a000Bed.WhoC == 0 set a000Bed.WhoC to who Dummy03.enable set c to 5 set a000Bed.BedCount to a000Bed.BedCount +1 return endif end
If a000Bed.WhoA == 0 ;クエスト変数です。寝室を使う1番目のNPC名を保持 set a000Bed.WhoA to who set c to 1 set a000Bed.BedCount to a000Bed.BedCount +1 elseIf a000Bed.WhoB == 0 (以下、同様に WhoC まで)
出口のドア(その1) SCN a000BedExit ref Who short c Begin GameMode If c == 1 Who.RemoveAllItems nemakiA set c to 2 elseif c == 2 BDboxA.RemoveAllItems who Who.AddscriptPackage a000addPackx02 set a000Bed.WhoA to 0 set c to 0 elseif c == 3 Who.RemoveAllItems nemakiB set C to 4 elseif c == 4 BDboxB.RemoveAllItems who Who.AddscriptPackage a000addPackx02 set a000Bed.WhoB to 0 set c to 0 elseif C == 5 Who.RemoveAllItems nemakiC set c to 6 elseif c == 6 BDboxC.RemoveAllItems who Who.AddscriptPackage a000addPackx02 set a000Bed.WhoC to 0 set c to 0 endif end
If who == a000Bed.WhoA set c to 1 set a000Bed.BedCount to a000Bed.BedCount -1 elseIf who == a000Bed.WhoB set c to 3 set a000Bed.BedCount to a000Bed.BedCount -1 elseIf who == a000Bed.WhoC set c to 5 set a000Bed.BedCount to a000Bed.BedCount -1 endif
if a000Bed.BedCount >2 Activate elseif Who ==a000Bed.WhoA || Who ==a000Bed.WhoB || Who ==a000Bed.WhoC ____↑___ここを修正。「クエスト変数に名前が残ったまま(脱いだまま)ならそのまま通せ。」 Activate else Activate Who.addScriptPackage a000AddPackx0A endif end
Set XXX to GetContainerの書式はOKですよ。 OnEquipの場合は持ち主がPlayerかNPCかの判定が必要になるでしょう。 でも、OnEquipはNPCがその指輪を装備するとは限らないので問題があるかも OnAddの場合は、Player、NPC、クリーチャーの判定が必要になりそうです。 こんな感じ↓
scn A0TESTTokenScript
ref Owner
begin OnAdd set Owner to GetContainer if ((Owner!=Player)&&(Owner.IsActor==1)&&(Owner.GetIsCreature==0)) message "Container is humanoid companion." endif end
scn craftybitslumberjackactivatorscript short doonce ref triggerref begin ScriptEffectStart set triggerref to getself Message "Triggered" if triggerref.GetIsID "TreeJuniper01" if doonce ==0 triggerref.pms EffectFireDamage set doonce to 1 endif endif endif end begin scripteffectupdate end begin scripteffectfinish end
scn スクリプト名 Short controlvar Short button Begin OnActivate If ( controlvar == 0 ) MessageBox "選択", "1ゴールドもらう", "2ゴールドもらう" Set controlvar to 1 endif ElseIf ( controlvar > 1 ) Activate EndIf End
Begin GameMode If ( controlvar == 1 ) Activate Set button to GetButtonPressed If ( button == -1 ) Return ElseIf ( button == 1) set controlvar to 2 player.additem f 1 ;1ゴールド手に入れる ElseIf ( button == 2) set controlvar to 2 player.additem f 2 ;2ゴールド手に入れる endif endif
If ( controlvar == 2 ) MessageBox "準備はいいですか?", "はい", "いいえ" endif If ( button == -1 ) Return ElseIf ( button == 1) Player.movetoMarker 目的地 ElseIf ( button == 2) set controlvar to 0 endif End
Begin GameMode If ( controlvar == 1 ) Set button to GetButtonPressed If ( button == -1 ) Return ElseIf ( button == 1) set controlvar to 2 player.additem f 1 ;1ゴールド手に入れる ElseIf ( button == 2) set controlvar to 2 player.additem f 2 ;2ゴールド手に入れる endif endif
If ( controlvar == 2 ) MessageBox "準備はいいですか?", "はい", "いいえ" Set controlvar to 3 endif If ( controlvar == 3 ) Set button to GetButtonPressed If ( button == -1 ) Return ElseIf ( button == 1) Player.movetoMarker 目的地 ElseIf ( button == 2) set controlvar to 0 endif endif End
Long CC Short C Ref W Ref SELF Begin OnActivate set SELF to GetSELF If IsActionRef Player set CC to 0 SaveIP 0 ;--------- LOOP ---------- set W to Player.GetInventoryObject CC If (W.IsIngredient W == 1) && (W.IsFood W == 0) set C to Player.GetItemCount W message " " message " " player.RemoveItem W ,C SELF.AddItem W ,C endif set CC to CC +1 If W != 0 RestoreIP 0 ;----------------------- endif Activate endif end
Begin OnTrigger 何かが触れた時に走る Begin OnTriggerActor アクター(プレイヤーとかNPCとか)が触れた時に走る Begin OnTriggerMob モバイルオブジェクト(アクター・矢・魔法)が触れた時に走る もちろん、落ちている矢をGrabで罠の方へ持っていっても反応はしない。弓で撃った矢、限定。
CSWikiより。 Locked doors, containers and books are activated a second time automatically when you open the lock or take the book. To find out when a door was unlocked, for example, you can wait for GetLocked == 0 in the OnActivate-block. これじゃないかな?
begin OnActivate set mySelf to GetSelf if IsActionRef player == 1 if mySelf.GetLocked == 1 && Player.GetItemCount BNN00TreasureChestKey > 0 mySelf.UnLock Message " You unlock the chest with a key." mySelf.Activate Player player.removeItem BNN00TreasureChestKey 1 player.scaonactor elseif mySelf.GetLocked == 0 mySelf.Activate Player elseif mySelf.GetLocked == 1 && Player.GetItemCount BNN00TreasureChestKey == 0 Message " You need a key to unlock this chest." endif endif end
begin OnActivate if IsActionRef player == 1 if GetLocked == 0 Activate elseif GetLocked == 1 && Player.GetItemCount BNN00TreasureChestKey > 0 UnLock Message " You unlock the chest with a key." Activate player.removeItem BNN00TreasureChestKey 1 elseif GetLocked == 1 && Player.GetItemCount BNN00TreasureChestKey == 0 Message " You need a key to unlock this chest." endif endif end
begin OnActivate if IsActionRef player == 1 if GetLocked == 0 Activate Player elseif GetLocked == 1 && Player.GetItemCount BNN00TreasureChestKey > 0 UnLock Message " You unlock the chest with a Treasure Key." Activate Player player.removeItem BNN00TreasureChestKey 1 elseif GetLocked == 1 && Player.GetItemCount BNN00TreasureChestKey == 0 set random to GetRandomPercent set pluck to Player.GetActorValue Luck set psec to Player.GetActorValue Security if pluck + psec <= random * 3 Message " Trap is activated! You need a Treasure Key to unlock this chest." cast StandardFrostDamageTarget3Journeyman Player elseif pluck + psec > random * 3 Message " You have avoided a trap! You need a Treasure Key to unlock this chest." endif endif endif end
What is the most Hotest MOD? "The Lost Spire" is! Check out Planet Elder Scrolls Top Oblivion Mods now. 初出の頃少し話題になりましたが、いかんせん英語のクエストMOD、実際にプレイされた方はあまり居ないのではないでしょうか。 新たにArcheology Guildが追加され、10を超えるクエストを追いながら古代Tamrielの謎の文明と、裏に潜む陰謀に迫ります。 ボリューム的にはKotN+α程度かな?ちょっと10時間位では終わらない感じでした。(最初は5over new gameplayと書いてあったw) 必見なのはリテクスチャーされたダンジョンや新規オブジェクト郡でしょうか?かなり綺麗です。(但し結構重いので注意) The Lost Spires http://planetelderscrolls.gamespy.com/View.php?view=OblivionMods.Detail&id=3295 (PESのページ) http://www.lostspires.com/ (DLはオフィシャルサイトからしか行えません。現在のVerは11.00です)
Readmeに明記してあるのですが、ネタバレには十分に注意を払ってください。以下Readmeから抜粋。 ***After playing, please do not reveal sensitive plot information in areas where new, potential Lost Spires players will be able to see it. The sensitive plot is easily spoiled. (訳:プレイ後、どうか繊細な筋書きを、LSのプレイヤーの目に触れる場所では明かさないで下さい。繊細な筋書きは容易に台無しにされます。)
Verupに伴い、Ver11のファイルをアップローダーから削除します。Ver11については混乱を避ける為に削除をお勧めします。 今回のVerUPではBSAファイルはVer11の物と変わらないようです。MD5 (The Lost Spires.bsa) = 31307ce6aab26de002cd2be5fafae18b VerupしたReadmeにはHints(Spoilers)やKnown Issues等が書き加えられていますね。
入れてみた。 wikiの説明から普通には買えないとは思ってたけど、店売りではないのかな? ギャラリーの「Map to the Shop」って画像のところに行けば買えるかと思って行ってみたけど魔法は追加されてなかった。
で、今中一レベルの英語力でリドミを解読中なんだけど、
To obtain these spells talk to the Vendor Midas. His shop is located to the Right as you enter 「the Arcane University Court Yard」. Before you enter the University itself.
魔法が欲しいなら売り子のミダスと話せ。 彼の店の場所は、「the Arcane University Court Yard」の右にある。 その前に大学に入らなければならない。
set diffX to targetX - (getPos x); set diffY to targetY - (getPos y); set diffZ to targetZ - (getPos z); set angleX to (atan2 diffZ, diffY); set angleY to (atan2 diffZ, diffX); set angleZ to (atan2 diffX, diffY); setAngle x, angleX; setAngle y, angleY; setAngle z, angleZ;
set diffX to targetX - (getPos x); set diffY to targetY - (getPos y); set diffZ to targetZ - (getPos z); set angleZ to (atan2 diffX, diffY); set diffR to diffX * diffX + diffY + diffY; set diffR to (squareRoot diffR); set angle to (atan2 posZ, diffR); set angleX to angleX * (sin angleZ); set angleY to angleX * - (cos angleZ); setAngle x, angleX; setAngle y, angleY; setAngle z, angleZ;
スクリプト関数のref.castの事だろ >This function can be used to force the player to cast a spell on himself, >but cannot force him to cast Touch or Target range spells at other actors or objects.
プレイヤーの場合は無理 selectPlayerSpell 唱えさせたい魔法のID; short castkey; set castkey to (getControl 7); tapKey castkey; OBSE必須になるがこういう方法で代用可能
BoogieManに拘ってるのは、睡眠不足が極限に達した時のオリジナルの台詞なのよね。 "It's a boogeyman. Run! For the love of Arkay, run!" ってなってる。
BoogieManが西洋的なナマハゲとかメジャーな悪霊(?)で、Arkayってのは誕生と死の神様らしく、 Runは逃げろとかアッチいけって感じで、For the love of Arkay は 「Arkay様助けて」とか「ご加護を〜」って意味かなぁと。 なもんで、BoogieManが出てこないとメッセージが意味不明というか、現状だと「なんでメロス?」って感じになってる・・・。
こんな物かな? 過去のセーブデータを引きずると上手く動作しないってのが見えたんで、 ここらでModの名前を「Survival Suite with Cooking」に変更して新規導入を促したいなぁって気もする。 必要なMeshとかを一纏めにした配布形式にも変更したいし。 料理パートを含まないHTSを改変してる人との混同が起こらないかも気にはなるし。
問題部分のスクリプト。 scn vdangerT(喉が渇いて死にそうの場合に付与されるScriptEffectのSpell) Begin ScriptEffectStart Set vrestore to 3 ;HTS用特殊 Idleアニメーションを取り替えるためのGlobal変数 Player.PickIdle ; 変数を変更したからIdleアニメーションに登録されたリストから選びなおせと言う命令 Player.PlayGroup Idle, 1 ;選びなおしたら強制的にアニメーション始動の命令 End
Begin ScriptEffectFinish Set vrestore to 1 Player.PickIdle Player.PlayGroup Idle, 1 Set vrestore to 0 End
ここでCSについて質問はだめ? Animation group note problem. See D:\\My Games\Oblivion\EditorWarnings.txt file. Continue Playing? "Yes to all" will disable all Warnings this session てエラーが出るんだけど、キャンセルしたらそのまま編集できるんですが、それって問題ないでしょうか?