//機能:一定時間に砦オークション開始、終了 //対象は各GVG砦のうち、2番(モロク城も考えてましたが挫折しましたorz) //オークション形式は現在の落札金額を上回った際に所有者移動。 //但し再度落札されても金は戻らず、限度金額を超えると落札金額は0に戻る。 //by ゴキブリスミス payon_in03.gat,124,126,4 script ゲフェン砦仲買人 64,{ callfunc "buy_castle","gefg_cas04.gat","ゲフェン砦仲買人",1; } payon_in03.gat,126,126,4 script フェイヨン砦仲買人 88,{ callfunc "buy_castle","payg_cas02.gat","フェイヨン砦仲買人",2; } //payon_in03.gat,128,126,4 script モロク城仲買人 99,{ // callfunc "buy_castle","moc_castle.gat","モロク砦仲買人",3; //} payon_in03.gat,130,126,4 script プロンテラ砦仲買人 83,{ callfunc "buy_castle","prtg_cas02.gat","プロンテラ砦仲買人",4; } payon_in03.gat,132,126,4 script アルデバラン砦仲買人 750,{ callfunc "buy_castle","aldeg_cas02.gat","アルデバラン砦仲買人",5; } function script buy_castle { set @auction_start,22;//開始時間 set @auction_end,@auction_start+1;//終了時間 set @auction_max,10000000;//落札限度額 set @hour,gettime(3); mes "[" + getarg(1) + "]"; mes "ただいま" + @hour + "時" + gettime(2) + "分です"; if (@hour != @auction_start){ mes "オークションは" + @auction_start + "時開始、" + @auction_end + "時終了となっております"; close; } // mes getarg(2); set @castle[1],$castle1; set @castle[2],$castle2; set @castle[4],$castle4; set @castle[5],$castle5; //GM用に落札金額確認可能ですが mes "現在オークション開催中ですよ!現在の落札額は以下のとおり"; mes "ゲフェン" + @castle[1]; mes "フェイヨン" + @castle[2]; mes "プロンテラ" + @castle[4]; mes "アルデバラン" + @castle[5]; next; mes "[" + getarg(1) + "]"; mes "では落札金額を入力してください"; next; input @CASTLEZENY; if (@CASTLEZENY > Zeny){ mes "[" + getarg(1) + "]"; mes "申し訳ありませんが、"; mes "宣言額をお手元に持った状態で"; mes "金額コールをお願いします"; close; } if (@CASTLEZENY > @castle[getarg(2)]){ mes "[" + getarg(1) + "]"; mes "おめでとうございます!落札されました"; set @WinGuildID,getcharid(2); SetCastleData getarg(0),1,@WinGuildID; set Zeny,Zeny-@CASTLEZENY; if (@CASTLEZENY < @auction_max){ callfunc "getcastle",@CASTLEZENY,@CASTLEZENY,getarg(0); set @castle[getarg(2)],@CASTLEZENY; set $castle1,@castle[1]; set $castle2,@castle[2]; set $castle4,@castle[4]; set $castle5,@castle[5]; mes "落札金額は" + @CASTLEZENY + "Zenyです"; close; }else{ callfunc "getcastle",@CASTLEZENY,0,getarg(0); set @castle[getarg(2)],0; set $castle1,@castle[1]; set $castle2,@castle[2]; set $castle4,@castle[4]; set $castle5,@castle[5]; mes "落札金額は" + @CASTLEZENY + "Zenyですが、"; mes "取引限度額を超えましたので0zより"; mes "再度オークションが開始されます。"; close; } close; }else{ mes "[" + getarg(1) + "]"; mes "その金額では落札不可能です"; close; } close; } //ギルドフラッグ payon.gat,140,247,4 script ゲフェン砦所有者 722,{ callfunc "flagsc2","gefg_cas04.gat",1,1,59,48; } payon.gat,142,247,4 script フェイヨン砦所有者 722,{ callfunc "flagsc2","payg_cas02.gat",1,1,25,266; } //payon.gat,144,247,4 script モロク城所有者 722,{ // callfunc "flagsc2","moc_castle.gat",1,1,0,0; //} payon.gat,146,247,4 script プロンテラ砦所有者 722,{ callfunc "flagsc2","prtg_cas02.gat",1,1,72,56; } payon.gat,148,247,4 script アルデバラン砦所有者 722,{ callfunc "flagsc2","aldeg_cas02.gat",1,1,80,70; } function script flagsc2 { set @GID,getcastledata(getarg(0),1); if (@GID != 0) goto LStartg; mes "[ ルーンミッドガッツ王国領 ]"; mes " "; mes "1."; switch ( getarg(1) ) { case 1: mes "こちらはルーンミッドガッツ王国と"; mes "シュバルツバルド共和国の協定により、"; break; case 2: mes "こちらはルーンミッドガッツ王国に"; mes "よって"; } mes "正式所有者がないアジトであることを"; mes "公表する。"; next; mes " "; mes "2."; mes "定時に開催されるオークションにて"; mes "落札した者には国王が"; mes "認定するアジト所有権が附与される"; close; LStartg: if ((getcharid(2) == @GID) && (getarg(2) == 1)) goto LStartg2; mes "[ ルーンミッドガッツ王国領 ]"; mes " "; mes "1."; switch ( getarg(1) ) { case 1: mes "こちらはルーンミッドガッツ王国と"; mes "シュバルツバルド共和国の協定により、"; break; case 2: mes "こちらはルーンミッドガッツ王国に"; mes "よって"; } mes "ギルド ^ff0000 " + GetGuildName(@GID) + " ^000000の"; mes "所有であることを認められている。"; next; mes " "; mes "2."; mes "^ff0000 " + GetGuildName(@GID) + " ^000000 のマスターは"; mes "^ff0000 " + getguildmaster(@GID) + " ^000000である。"; mes "これに異議のある者は、落札の上"; mes "金を以って名誉を勝ち取りなさい。"; Lclose: close; LStartg2: mes "[ 声 ]"; mes "これはご主人様"; mes "砦のものもお待ちしておりました"; next; menu "砦に帰る",-,"やめる",Lclose; warp getarg(0),getarg(3),getarg(4);end; return; } function script getcastle { set @WinGuildID,getcharid(2); if (getarg(1) == 0){ Announce "砦 [" + GetCastleName(getarg(2)) + "]を [" + GetGuildName(@WinGuildID) + "]が大金で落札しました",0; Announce "取引額が限度額を越えましたので新規にオークションが開始されます",0; }else{ Announce "砦 [" + GetCastleName(getarg(2)) + "]を [" + GetGuildName(@WinGuildID) + "]が" + getarg(1) + "zで落札しました",0; } return; } payon_in03.gat,128,126,4 script 仲買人組合会長 853,{ mes "[仲買人組合会長]"; mes "君も砦のオーナーになりに来たのかね?"; mes "それなら、がんばって稼ぐんだな?"; mes "・・・で、質問は?"; next; menu "オークションのルール",-,"砦を持てるメリット",MERIT; mes "[仲買人組合会長]"; mes "ルール?ああ、ヨーヨーでも分かるさ。"; mes "仲買人たちが指定する時間に仲買人に会って入札額を入力しろ。最高額を超えていたら仲買人が砦の所有権をくれるはずだ。"; next; mes "[仲買人組合会長]"; mes "但し、最終的に砦が手に入るのは終了時の落札者。落札に使った金はかえってこねぇから気をつけな。"; mes "あと、10MZeny!みたいに余りにもでかい金が渡されると落札金額がリセットされることもあるらしい。"; mes "ま、要するにがんばって稼げってこった。"; close; MERIT: mes "[仲買人組合会長]"; mes "メリットがなきゃ砦を買う意味なんかねぇよな。"; mes "まずは「ゴミゴミした街を離れられる」事。"; mes "あとギルド特価で色々なサービスが無料または大幅に割引がされることも言っておこうか。"; close; } //----------------------------------------------- //自動型癒しプリ(有料) Lv 2.1 を変更した ギルメン専用自動型癒しプリ(無料) //----------------------------------------------- //接近するとヒールかけてくれます。 //回復の表示は最大32767までが  //限界なのでいっそ9999にしました。 //使用料金は回復量/10、←料金は無料 //回復量10以下の場合は無料になります。 //エラー(npcskillsupport関係)が出た場合は //下の指示とおりにコメントアウトしてください。 //----------------------------------------------- function script healer { if(MaxHP == HP && MaxSP == SP) end; if(getwaitingroomstate(3) == 0) delwaitingroom; if(getnpctimer(1) == 0) stopnpctimer; set '@heel,(MaxHP - HP); if('@heel >= 10) set '@zeny,'@heel/10; if(Zeny < '@zeny) end; set Zeny,Zeny-'@zeny; //エラーが出た場合は以下の1行目をコメントアウトにし、 //2行目のコメントアウトを解除してください。 npcskillsupport 28,9999; // gmcommand "@misceffect 325"; percentheal 100,100; //以下、セリフ台詞関係。 //うるさかったらコメントアウトよろしく。 set '@talk,rand(100); if('@talk <= 4) { globalmes "頑張ってくださいね。"; emotion 30; } else if('@talk <= 9) { globalmes strcharinfo(0)+"さん、またね〜"; emotion 12; } else if('@talk <= 14) { globalmes "もう大丈夫ですね?"; emotion 33; } else if('@talk <= 19) { globalmes "お疲れ様でしたぁ♪"; emotion 14; } else if('@talk <= 24) { globalmes "ありがとうございました。"; emotion 15; } //セリフ関係終了 initnpctimer; //エモは一回の利用で一回だけ起こります。 //これでもうるさいと思う方はemotionの命令を //自動実行型NPCがたまたま動かなくなったり //するとかなり面倒なことになりますので //sleep命令は使わないほうがいいと思います。 // sleep 2000; if('@talk > 24) emotion 2; end; } gefg_cas04.gat,54,59,4 script ギルメンを癒し隊::1 8,4,4,{ if (getcharid(2) != @GID) { end; } callfunc "healer"; OnInit: waitingroom "利用料金=無料",0; end; OnTimer15000: waitingroom "ギルドの方専用",0; end; } payg_cas02.gat,20,269,4 script ギルメンを癒し隊::2 8,4,4,{ if (getcharid(2) != @GID) { end; } callfunc "healer"; OnInit: waitingroom "利用料金=無料",0; end; OnTimer15000: waitingroom "ギルドの方専用",0; end; } prtg_cas02.gat,68,57,4 script ギルメンを癒し隊::3 8,4,4,{ if (getcharid(2) != @GID) { end; } callfunc "healer"; OnInit: waitingroom "利用料金=無料",0; end; OnTimer15000: waitingroom "ギルドの方専用",0; end; } aldeg_cas02.gat,76,67,4 script ギルメンを癒し隊::4 8,4,4,{ if (getcharid(2) != @GID) { end; } callfunc "healer"; OnInit: waitingroom "利用料金=無料",0; end; OnTimer15000: waitingroom "ギルドの方専用",0; end; }