約 5,432,895 件
https://w.atwiki.jp/lineeditor/pages/47.html
//行挿入 void line_insert(char *txtname) { //ほぼ行削除と同じ構造 int i , j ; FILE *shadow; char c = 1, line[10], str[LINE_SIZE], shadow_name[L_tmpnam] ; tmpnam(shadow_name); printf("挿入したい行番号を入力して下さい\n"); fgets(line,9,stdin);//挿入したい行を入力してもらう。 if( atoi(line) = 0 ) { printf("行番号が不正です。\n"); return; } shadow = fopen(shadow_name,"w"); if( atoi(line) == 1 )//もし1行目に挿入したい場合は先に入力をする { printf("挿入したい文章を入力して下さい\n"); printf("%8d ", 1); fgets(str,LINE_SIZE,stdin);//挿入する内容を入力 fputs(str,shadow);//それをコピー }//あとは2行目以降に挿入したい場合と同じ動きをする for(i=1;c != EOF;i++) { if((c = fgetc(txtfile)) == EOF )//その行の一文字目がEOFなら { break ;//終了 } else if( c == \n )//その行が単なる改行なら { j = 0 ; str[j] = \n ;//改行をstrにおさめて goto input ;//読み込み作業は飛ばす } str[0] = c ;//一文字目がEOFでも改行でもなかったら for(j=1;(c = fgetc(txtfile)) != \n ;j++)//改行するまでその行を読み込む { str[j] = c ; if( c == EOF )//ファイルの最後が改行せずに終わっていたら { goto input;//改行を入れることなく飛ばす } } str[j] = \n ;//改行をstrに入れる input ; str[++j] = \0 ;//最後にNULL文字を入れる if( i != atoi(line) -1 )//挿入する手前以外の行は普通にshadowにコピー { fputs(str,shadow); } else//挿入する手前の行は { fputs(str,shadow);//まず手前の行の内容をコピー printf("挿入したい文章を入力して下さい\n"); printf("%8d ", atoi(line)); fgets(str,LINE_SIZE,stdin);//挿入する内容を入力 fputs(str,shadow);//それをコピー //通常の動きに戻る } } if( atoi(line) i ) { printf("このコマンドは無効です。\n"); } txtfile = freopen(txtname,"w",txtfile);//両方のファイルをオープンし直して shadow = freopen(shadow_name,"r",shadow); for(;(c = fgetc(shadow)) != EOF;)//shadowの中身をtxtfileにコピー { for(;c != \n c != EOF;c = fgetc(shadow)) { fputc(c,txtfile); } fputc( \n ,txtfile); } fclose(shadow); remove(shadow_name); return; }
https://w.atwiki.jp/sdvx/pages/3672.html
ネメシス SDVX Edit/ Larca 元曲は東方二次創作RPGツクール作品『東方自然癒』のEX通常戦闘曲「ネメシス」で、そのゲームサイズアレンジ版 東方二次作品からの楽曲ではあるが、曲自体はオリジナルのため「東方アレンジ」からは選曲できない Larcaは「トラウィスカルパンテクートリ」や「World s end」のNoahの別名義 Lv CHAIN 譜面属性 BPM TIME Version Genre Illustrator Effect NOVICE 05 0581 146 III28 FLOOR Polymorphic being 浮世マシーン ADVANCED 11 0924 EXHAUST 17 1880 Lv変更[EXH] 15→17(2016/12/21) +難易度投票 NOVICE 選択肢 投票数 投票 詐称 0 強 0 中 0 弱 0 逆詐称 0 ADVANCED 選択肢 投票数 投票 詐称 1 強 1 中 2 弱 0 逆詐称 0 EXHAUST 選択肢 投票数 投票 詐称 0 強 15 中 8 弱 0 逆詐称 0 動画 [部分編集] 攻略・解説 譜面・楽曲の攻略についてはこちらへどうぞ 見辛さ解消の為に改行や文頭の編集、不適切なコメントを削除することがあります 名前 コメント ※文頭に[ bgcolor(#aaf){NOV}]、[ bgcolor(#ffa){ADV}]、[ bgcolor(#faa){EXH}]をコピー ペーストすると見やすくなります コメント 楽曲やイラストなどのコメントについてはこちらへどうぞ なんか面倒くさい立ち位置の曲だね -- (名無しさん) 2015-08-10 08 23 23 クソみたいに楽しくない譜面 -- (名無しさん) 2017-05-30 16 57 52 俺は譜面好きだけどね。意外とスコア出しやすかったりする -- (名無しさん) 2017-06-25 14 27 39 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/asagaolabo/pages/1791.html
流星RAVE / RYUSEI RAVE 【りゅうせいレイヴ】 あたし流星☆ハニー コズミックローラー 星空に舞い光輝く 流星RAVE / RYUSEI RAVE 他のBEMANIシリーズへの収録 収録作品 ロング版収録 関連リンク ポップンミュージック12 いろはで登場した楽曲。担当キャラクターは流星ハニー。 流星☆ハニー / 新谷あきら BPM 148 5b-10 N-17 H-35 EX-× 新難易度 5Buttons NORMAL HYPER EXTRA × 23 41 × IIDXREDの「INJECTION OF LOVE」で異色のコラボレーションを果たしたAKIRA YAMAOKAとSanaによるユニット、新谷あきら。IIDXからポップンにこの曲と隠し曲でデビューした彼だが、IIDXでもそうであったように独特のビートと旋律が効いたものになっている。レイブにしては4分のリズムがアクセントになっており、未来を感じさせるような音使いが特徴的だろう。キャッチコピーがロケテストと異なる理由は、「流血」が曲のイメージを悪くするということで、やはりキャッチコピーが曲の第1印象に関わっていることに改めて気付くことができる。それでも歌詞に「流血」が使われているけど。 珍しくSana曲の中では高難度。前作の曲では結構判定が甘かったが、今作は例によって判定の辛い曲が混じっている。その中にこの曲は該当するが、COOL判定は結構甘い。ノーマルは4分押しをきっちりとこなし、16分と途中のボイス部分に注意すればスコアは稼ぎやすい。ハイパーは打って変わって16分の旋律が増えてリズムが難解な部分が増える。難所は2度目のAメロ部分の片手リズムが意外と取りづらく、また終盤のアウトロ部分にある階段+同時押しなどの複合がゲージを削られやすい。ハイパーがLv35と難度が高かった割には、EXが存在しなかったことが珍しい。基本的にSana曲は難度が抑え目というイメージが関係しているのでは、と考えられる。 他のBEMANIシリーズへの収録 REFLEC BEAT ジャケット iPad版「REFLEC BEAT plus」の「Sana pack」に収録。この曲が収録された4thアルバム『蜜月 〜honey moon〜』のジャケットを使用。なおSunnyParkのBEMANIフォルダの対象外。 ロケテストでの曲説明文は以下のようなものであった。 あたしはハニー、流星ハニー☆宇宙を駆け抜け恋をする☆流血するわよさせるわよ☆ さすがにイメージを考慮したか、アーティストアルバムに収録されたLONG版では歌詞中に「流血」は一切使われていない。 収録作品 AC版 ポップンミュージック12 いろはからの全作品 CS版 ポップンミュージック12 いろは ロング版収録 蜜月 〜honey moon〜 Sana Coffret 関連リンク 彗星RAVE AKIRA YAMAOKA Sana 楽曲一覧/ポップンミュージック12 いろは
https://w.atwiki.jp/javamock/pages/43.html
テキストエディタソースver1.2 テキストエディタソースver1.2Main.java TextEditor.java TextEditorModel.java Constants.java TextAreaProperties.java Logic.java LogicImpl.java ActionLogic.java ActionLogicImpl.java Main.java /** * * メインクラスです。 * @author mock * @version 1.2 * */ public class Main { /** * メインメソッドです * @param args */ public static void main(String[] args) { new TextEditor(); } } TextEditor.java import java.awt.HeadlessException; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JTextArea; /** * テキストエディタクラスです * * @author mock */ public class TextEditor extends JFrame implements ActionListener { /** serialVersionUID */ private static final long serialVersionUID = 1L; /** テキストエリア */ public JTextArea textArea; /** ファイル選択 */ public JFileChooser fileChooser = new JFileChooser(); /** logic */ public Logic logic = new LogicImpl(); /** actionLogic */ public ActionLogic actionLogic = new ActionLogicImpl(); /** * コンストラクタ * * @throws HeadlessException */ public TextEditor() throws HeadlessException { TextAreaProperties textAreaProperties = logic.getInitProperties(); setTitle(Constants.UNDIFINED_TITLE); logic.createMenuBar(getRootPane(), this); textArea = logic.createTextArea(textAreaProperties, this); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); pack(); } /* * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent) */ @Override public void actionPerformed(ActionEvent actionEvent) { String actionCommand = actionEvent.getActionCommand(); TextEditorModel model = new TextEditorModel(); model.setFrame(this); model.setTextArea(textArea); model.setFileChooser(fileChooser); if (actionCommand.equals(Constants.MenuItem.NEW.toString())) { fileChooser = actionLogic.newFile(model); } else if (actionCommand.equals(Constants.MenuItem.OPEN.toString())) { actionLogic.openFile(model); } else if (actionCommand.equals(Constants.MenuItem.SAVE.toString())) { actionLogic.save(model); } else if (actionCommand.equals(Constants.MenuItem.SAVE_AS.toString())) { actionLogic.saveAs(model); } else if (actionCommand.equals(Constants.MenuItem.VERSION.toString())) { actionLogic.showVersionInfo(model); } } } TextEditorModel.java import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JTextArea; /** * テキストエディタに関するモデルです * @author mock * */ public class TextEditorModel { /** フレーム */ private JFrame frame; /** ファイルチューザ */ private JFileChooser fileChooser; /** テキストエリア */ private JTextArea textArea; /** * @return the frame */ public JFrame getFrame() { return frame; } /** * @param frame the frame to set */ public void setFrame(JFrame frame) { this.frame = frame; } /** * @return the fileChooser */ public JFileChooser getFileChooser() { return fileChooser; } /** * @param fileChooser the fileChooser to set */ public void setFileChooser(JFileChooser fileChooser) { this.fileChooser = fileChooser; } /** * @return the textArea */ public JTextArea getTextArea() { return textArea; } /** * @param textArea the textArea to set */ public void setTextArea(JTextArea textArea) { this.textArea = textArea; } } Constants.java import java.awt.event.KeyEvent; /** * 定数を集めたクラスです。 * * @author mock * */ public class Constants { /** 新規のタイトル名 */ public static final String UNDIFINED_TITLE = "UNDIFINED_TITLE"; /** バージョン */ public static final String VERSION = "ver1.2"; /** バージョン情報タイトル */ public static final String VERSION_TITLE = "VERSION"; /** ファイル(F)メニューラベル */ public static final String MENU_FILE_LABEL = "ファイル(F)"; /** ヘルプ(H)メニューラベル */ public static final String MENU_HELP_LABEL = "ヘルプ(H)"; public static final String INI_FILE_NAME = "texteditor.ini"; /** * メニュー項目に関する定数 * * @author mock * */ public enum MenuItem { NEW("新規(N)", KeyEvent.VK_N), OPEN("開く(O)", KeyEvent.VK_O), SAVE("上書き保存(S)", KeyEvent.VK_S), SAVE_AS("名前を付けて保存(A)", KeyEvent.VK_A), VERSION("バージョン情報(A)", KeyEvent.VK_A), ; /** メニュー項目ラベル */ private String label; /** メニュー項目ニーモニック */ private int mnemonic; /** * @param label * メニュー項目ラベル * @param mnemonic * メニュー項目ニーモニック */ MenuItem(String label, int mnemonic) { this.label = label; this.mnemonic = mnemonic; } /** * @return メニュー項目ラベル */ public final String getLabel() { return this.label; } /** * @return メニュー項目ニーモニック */ public final int getMnemonic() { return this.mnemonic; } } } TextAreaProperties.java /** * テキストエリアに関するプロパティクラスです * @author mock */ public class TextAreaProperties { /** 幅 */ private int width; /** 高さ */ private int height; /** タブサイズ */ private int tabSize; /** フォントサイズ */ private int fontSize; /** * @return the width */ public int getWidth() { return width; } /** * @param width the width to set */ public void setWidth(int width) { this.width = width; } /** * @return the height */ public int getHeight() { return height; } /** * @param height the height to set */ public void setHeight(int height) { this.height = height; } /** * @return the tabSize */ public int getTabSize() { return tabSize; } /** * @param tabSize the tabSize to set */ public void setTabSize(int tabSize) { this.tabSize = tabSize; } /** * @return the fontSize */ public int getFontSize() { return fontSize; } /** * @param fontSize the fontSize to set */ public void setFontSize(int fontSize) { this.fontSize = fontSize; } } Logic.java import java.awt.event.ActionListener; import java.io.File; import javax.swing.JFrame; import javax.swing.JMenuItem; import javax.swing.JRootPane; import javax.swing.JTextArea; /** * テキストエディタに関するロジックのインターフェースです * * @author mock */ public interface Logic { /** * 初期設定プロパティを取得します * * @return テキストエリアに関するプロパティ */ public TextAreaProperties getInitProperties(); /** * メニューバーを作成します * * @param rootPane * コンテナ * @param actionListener * アクションリスナー */ public void createMenuBar(JRootPane rootPane, ActionListener actionListener); /** * メニュー項目を設定します * * @param item * メニュー項目 * @param actionListener * アクションリスナー * @return メニュー項目 */ public JMenuItem setMenuItem(Constants.MenuItem item, ActionListener actionListener); /** * テキストエリアを作成します * * @param properties * テキストエリアに関するプロパティ * @param frame * フレーム * @return テキストエリア */ public JTextArea createTextArea(TextAreaProperties properties, JFrame frame); /** * ファイルにテキスト内容を書き込みます * * @param file * ファイル * @param text * テキスト内容 * @return 処理結果 */ public boolean writeFile(File file, String text); } LogicImpl.java import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; import java.io.IOException; import java.util.Properties; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JRootPane; import javax.swing.JScrollPane; import javax.swing.JTextArea; /** * テキストエディタに関するロジックの実装クラスです * * @author mock */ public class LogicImpl implements Logic { /* * @see Logic#getInitProperties() */ @Override public TextAreaProperties getInitProperties() { TextAreaProperties textAreaProperties = new TextAreaProperties(); try { Properties properties = new Properties(); properties.load(new FileInputStream(Constants.INI_FILE_NAME)); // 幅の設定 String width = properties.getProperty("textAreaWidth"); textAreaProperties.setWidth(Integer.parseInt(width)); // 高さの設定 String height = properties.getProperty("textAreaHeight"); textAreaProperties.setHeight(Integer.parseInt(height)); // タブサイズの設定 String tabSize = properties.getProperty("tabSize"); textAreaProperties.setTabSize(Integer.parseInt(tabSize)); // フォントサイズの設定 String fontSize = properties.getProperty("fontSize"); textAreaProperties.setFontSize(Integer.parseInt(fontSize)); } catch (IOException e) { e.printStackTrace(); } return textAreaProperties; } /* * @see Logic#createMenuBar(javax.swing.JRootPane, * java.awt.event.ActionListener) */ @Override public void createMenuBar(JRootPane rootPane, ActionListener actionListener) { JMenuBar menuBar = new JMenuBar(); rootPane.setJMenuBar(menuBar); // ファイル(F) JMenu menuFile = new JMenu(Constants.MENU_FILE_LABEL); menuFile.setMnemonic(KeyEvent.VK_F); menuBar.add(menuFile); // ファイル(F)>新規(N) JMenuItem menuItemNew = setMenuItem(Constants.MenuItem.NEW, actionListener); menuFile.add(menuItemNew); // ファイル(F)>開く(O) JMenuItem menuItemOpen = setMenuItem(Constants.MenuItem.OPEN, actionListener); menuFile.add(menuItemOpen); // ファイル(F)>上書き保存(S) JMenuItem menuItemSave = setMenuItem(Constants.MenuItem.SAVE, actionListener); menuFile.add(menuItemSave); // ファイル(F)>名前を付けて保存(A) JMenuItem menuItemSaveAs = setMenuItem(Constants.MenuItem.SAVE_AS, actionListener); menuFile.add(menuItemSaveAs); // ヘルプ(H) JMenu menuHelp = new JMenu(Constants.MENU_HELP_LABEL); menuHelp.setMnemonic(KeyEvent.VK_H); menuBar.add(menuHelp); // ヘルプ(H)>バージョン情報(A) JMenuItem menuItemVersion = setMenuItem(Constants.MenuItem.VERSION, actionListener); menuHelp.add(menuItemVersion); } /* * @see Logic#setMenuItem(Constants.MenuItem, java.awt.event.ActionListener) */ @Override public JMenuItem setMenuItem(Constants.MenuItem item, ActionListener actionListener) { JMenuItem menuItem = new JMenuItem(item.getLabel()); menuItem.setMnemonic(item.getMnemonic()); menuItem.setActionCommand(item.toString()); menuItem.addActionListener(actionListener); return menuItem; } /* * @see Logic#createTextArea(TextAreaProperties, javax.swing.JFrame) */ @Override public JTextArea createTextArea(TextAreaProperties properties, JFrame frame) { JTextArea textArea = new JTextArea(); JScrollPane scrollPane = new JScrollPane(textArea); scrollPane.setPreferredSize(new Dimension(properties.getWidth(), properties.getHeight())); frame.getContentPane().add(scrollPane); textArea.setBackground(Color.BLACK); textArea.setForeground(Color.WHITE); textArea.setSelectionColor(Color.BLUE); textArea.setSelectedTextColor(Color.PINK); textArea.setFont(new Font(Font.MONOSPACED, Font.PLAIN, properties .getFontSize())); textArea.setTabSize(properties.getTabSize()); textArea.setCaretColor(Color.WHITE); textArea.setLineWrap(true); textArea.grabFocus(); return textArea; } /* * @see Logic#writeFile(java.io.File, java.lang.String) */ @Override public boolean writeFile(File file, String text) { try { FileWriter fileWriter = new FileWriter(file); fileWriter.write(text); fileWriter.close(); } catch (IOException e) { e.printStackTrace(); } return true; } } ActionLogic.java import javax.swing.JFileChooser; /** * アクションに関するロジックのインターフェースです * @author mock * */ public interface ActionLogic { /** * 新規ファイルを開きます * @param model テキストエディタに関するモデル * @return JFileChooser */ public JFileChooser newFile(TextEditorModel model); /** * ファイルを開きます * @param model テキストエディタに関するモデル */ public void openFile(TextEditorModel model); /** * ファイルに上書き保存します * @param model テキストエディタに関するモデル */ public void save(TextEditorModel model); /** * ファイルに名前を付けて保存します * @param model テキストエディタに関するモデル */ public void saveAs(TextEditorModel model); /** * バージョン情報ダイアログを表示します * @param model テキストエディタに関するモデル */ public void showVersionInfo(TextEditorModel model); } ActionLogicImpl.java import java.io.File; import java.io.FileReader; import java.io.IOException; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JTextArea; /** * アクションに関するロジックの実装クラスです * @author mock * */ public class ActionLogicImpl implements ActionLogic { /** logic */ public Logic logic = new LogicImpl(); /* * @see ActionLogic#newFile(TextEditorModel) */ @Override public JFileChooser newFile(TextEditorModel model) { JFrame frame = model.getFrame(); JTextArea textArea = model.getTextArea(); frame.setTitle(Constants.UNDIFINED_TITLE); textArea.setText(""); return new JFileChooser(); } /* * @see ActionLogic#openFile(TextEditorModel) */ @Override public void openFile(TextEditorModel model) { try { JFrame frame = model.getFrame(); JTextArea textArea = model.getTextArea(); JFileChooser fileChooser = model.getFileChooser(); if (fileChooser.showOpenDialog(frame) == JFileChooser.APPROVE_OPTION) { File selectedFile = fileChooser.getSelectedFile(); FileReader fileReader = new FileReader(selectedFile); textArea.read(fileReader, null); fileReader.close(); frame.setTitle(fileChooser.getName(selectedFile)); } } catch (IOException e) { e.printStackTrace(); } } /* * @see ActionLogic#save(TextEditorModel) */ @Override public void save(TextEditorModel model) { JTextArea textArea = model.getTextArea(); JFileChooser fileChooser = model.getFileChooser(); // ファイルが既に開かれている場合 if (fileChooser.getSelectedFile() != null) { logic.writeFile(fileChooser.getSelectedFile(), textArea.getText()); return; } saveAs(model); } /* * @see ActionLogic#saveAs(TextEditorModel) */ @Override public void saveAs(TextEditorModel model) { JFrame frame = model.getFrame(); JTextArea textArea = model.getTextArea(); JFileChooser fileChooser = model.getFileChooser(); // ファイルダイアログ「保存」が選択された場合 if (fileChooser.showSaveDialog(frame) == JFileChooser.APPROVE_OPTION) { logic.writeFile(fileChooser.getSelectedFile(), textArea.getText()); File selectedFile = fileChooser.getSelectedFile(); frame.setTitle(fileChooser.getName(selectedFile)); } } /* * @see ActionLogic#showVersionInfo(TextEditorModel) */ @Override public void showVersionInfo(TextEditorModel model) { JFrame frame = model.getFrame(); JOptionPane.showMessageDialog(frame, Constants.VERSION, Constants.VERSION_TITLE, JOptionPane.INFORMATION_MESSAGE); } }
https://w.atwiki.jp/mtgflavortext/pages/3680.html
Mightiest of the Cat Warriors, Jedit Ojanen forsook the forests of his tribe and took service with the Robaran Mercenaries, rising through their ranks to lead them in the battle for Efrava. レジェンド 【M TG Wiki】 名前
https://w.atwiki.jp/harvest_town/pages/13.html
OccultCave(未完成です) まず押さえておきたい豆知識 アイテムについて OccultCaveでは、季節を問わず決まった階で決まったアイテムが獲得できます。 DarkEssence、Diaryはモンスタードロップで獲得します。 モンスターバトル DarkEssenceを貯めてCaveDiglettのルーレット鬼回しして装備を獲得しておくと20Fくらいまでは余裕を持って進めます。 その他 OccultCaveでは、Vitalityが無くなっても4度まではアイテムを使わずにノーロスで復活できます。(※1) imageプラグインエラー ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (ここに画像のURL) 階数 出現モンスター 拾得アイテム その他 1 HugeRat Cherry,Blueberry,Knotweed 2 HugeRat Cherry,Blueberry 3 HugeRat Cherry,Blueberry,RevivalGrass 4 HugeRat Shiitake,Honeysuckle,RevivalGrass 5 HugeRat,Beetle Shiitake,Honeysuckle,Gingseng 6 HugeRat,Beetle Shiitake,Honeysuckle,Gingseng 7 HugeRat,Beetle Yam,HongHerb 8 HugeRat,Beetle Yam,RevivalGrass ヘビの像(※2) 9 DarkFluffBall Yam,Knotweed,HongHerb 骸骨が抱えるアイテム袋(※3) 10 Beetle,SmallFluffBall CaveDiglett(ルーレット屋さん),エレベーター(※4) 11 HugeRat,SmallFluffBall QueenslandNut,Gingseng 12 HugeRat,Beetle,LittleFluffBall QueenslandNut,Pistachio 13 HugeRat,Beetle,LittleFluffBall Pistachio 14 Beetle,LittleFluffBall Tremella,Dyer sWoad,Knotweed 15 HugeRat,Beetle,LittleFluffBall Tremella,Dyer sWoad,Gingseng エレベーター 16 HugeRat,Beetle,LittleFluffBall Tremella,Cordyceps,Dyer sWoad 17 HugeRat,Beetle,LittleFluffBall Horseradish,RevivalGrass 18 HugeRat,Beetle,LittleFluffBall Ganoderma,Knotweed ヘビの像(※2) 19 DarkChubby Horseradish,Gingseng 骸骨が抱えるアイテム袋(※3) 20 Chubby,LittleChubby CaveDiglett(ルーレット屋さん) ※1 ただし、ポーション等で一時的に上がったステータスは無くなります。 ※2 8F/Q,How many kids are there in the town? A,4 18F/A,Bomb ※3 中身も出現もランダム 各種ポーションや装備品が獲得できます。 ※4 エレベーターは10F毎に移動可能。 降りられはしないが、15Fにも設置されており他の階への移動は可能。
https://w.atwiki.jp/wicky/pages/51.html
saveField …特定の列だけデータを保存する。
https://w.atwiki.jp/cwpy/pages/38.html
WSNのバージョン WSN形式は、基本的にPyのバージョンに合わせて番号が付き、厳密に管理されています。 たとえば、Py2/Wsn.2以降実装された仮想ステップでPC名を表示したい場合、WSN形式であっても「Wsn.2」以上を選択しなければ表示することができません。 シナリオのWSNバージョンの確認・変更は、CWXEditorの貼り紙設定ダイアログで行うことができます。 各バージョンの詳細 Wsn.5(Py 5以降/XEditor8以降) Wsn.4(Py 4以降/XEditor7以降) Wsn.3(Py 3.0以降/XEditor6以降) Wsn.2(Py 2.0以降/XEditor5以降) Wsn.1(Py 1.0 以降/XEditor4以降) Wsn.0(Py 0.12.3以降/XEditor3以降) WSN形式で利用できる特殊称号 Wsn.5(Py 5以降/XEditor8以降) ※これらの機能は現在テスト中で正式版までに変更される可能性があります。 コモン関数の追加。文字列/数値/真偽値の他にリスト型が生成できるようになった。リスト内の値はリスト専用のATやLFIND関数で任意に取り出すことができる。 リストの中にリストを入れることもできる。 文字列として、パーティ名、宿名を取得できるようになった。 数値として、パーティの所持金、キャラクターの持つレベル、残り体力の割合(0~1.0)、所持称号の得点、現在のバトルラウンドが取得できるようになった。 効果系カードの各種情報を取得できるようになった。文字列として名前、数値として技能レベル、種別(1=スキル/2=アイテム/3=召喚獣/0=例外)、レアリティ(1=ノーマル/2=レア/3=プレミア/0=例外)、残り使用回数を扱う。 キーコード所持分岐に「キーコードを持たないカードで成功」オプションを追加。 WSN4の不一致検索は「検索したキーコードを有するカードを一枚も持っていない場合」を成功とするが、こちらは「検索対象カードが検索したキーコードを有しているか」を逆転するもの。 クーポン分岐・クーポン多岐分岐で同行NPC全体を検索範囲とするオプションを追加。 同行NPCに対してクーポン分岐を行うには「ランダム選択コンテント(1.50)」等で選択メンバにする必要があったが、その制限を取り払うもの。 状況設定コンテントに「逃走」「ゲームオーバー」を追加。ゲームオーバー無効時は、パーティが全滅した時のゲームオーバーへの移行および敗北イベントの発火が抑止される。ただし、パーティ全員が対象消去された場合とゲームオーバーコンテント実行時はゲームオーバーが発生する。 逃走を無効にした場合、逃走が有効なバトルエリアでの逃走コマンドが禁止される。逃走不可エリア(WSN3)はこの設定の影響を受けない。 メッセージ・台詞コンテントに「単行」オプションを追加。空欄で選択肢を作った場合に表示されるメッセージ「どれか一つを選択して下さい」を変更できるようにするもの。 Wsn.4(Py 4以降/XEditor7以降) システムクーポン「@Wsn.4」を追加。Wsn.4に対応しているエンジンかの判定に用いる。 新状態変数「コモン」を追加。数値・文字列・真偽値(フラグのようにTRUEとFALSEの値を持つもの)のどの値も扱う事ができ、計算も可能な、いわゆるバリアント型変数。それに伴い以下の新コンテントを追加。コモン分岐……式の結果の真偽値によって、分岐を行う。 コモン設定……式の結果をコモン(またはフラグやステップ)に代入。 コモン判定……フラグ判定コンテントのように、式の結果の真偽値によって後続のイベントの有無を切り替える。 ステップ/フラグ/コモン各変数の初期化タイミングを以下の3つから指定できるようになった。シナリオ終了時(デフォルト) …… 従来と同じ。シナリオを出ると初期化(リセット)。 シナリオに済印をつけた時 …… 変数の値を宿に保存する。保存された変数は、当該シナリオの済印を付けたタイミングで初期化・消去される。 初期化しない …… 変数の値は永続的に宿に保存される。ゲームオーバー時も初期化は行われない。 スキル/アイテム/召喚獣カードの使用時イベントにおいてローカル変数を持てるようになった。これによりカード内でシナリオから独立したステップ/フラグ/コモンを持ち、シナリオ外でも変数を操作することが可能になった。これらの変数をメッセージ内で呼び出す時は先頭に「\Local\」を付ける。 新コンテント「状況設定コンテント」の追加。NEXTの制限コンテントのうち、荷物袋の制限を代替するもの。 メニューカードとエネミーカード、各フラグ操作コンテント、効果コンテントにおいてカードアニメーション速度を設定できるようになった。NEXTのメニューカード「アニメーション無し」オプションを実質的に代替可能。 メニューカード名に「特殊文字を展開する」オプションを追加。NEXTと同等のもので、従来カード名は状態変数名を出力できないが、オプションが有効な場合に表示できるようになる。反映タイミングは即時。#ではじまる特殊文字は展開されない。 能力判定分岐・状態判定分岐・ランダム選択分岐・スキル/アイテム/召喚獣所持分岐・クーポン分岐・キーコード所持分岐において条件不一致成功(NOT検索)ができるように。NEXTのクーポン分岐「持っていない場合を成功とする」オプションを代替可能。 クーポン・ゴシップ操作系コンテントにおいて特殊文字の展開が可能になった。 PC名(#m)やパーティ名(#t)、変数名などを埋め込んだ不定形な称号を配布できる。 召喚獣カードの表示演出を以下の3種から変更できるようになった。表示しない …… カードが表示されずに効果のみが実行される。 画面中央に表示 …… 従来の召喚獣カード表示。 使用者の手前に表示 …… スキル・アイテムカードを使用した時と同じように表示。 バトル設定の拡張バトルエリアでエネミーカードの名前と画像を上書き可能に。NEXTと同等の機能。バトルビューにおいて本来キャストに設定されているカード名や画像に優先して別の名前・PCの画像を指定することができる。これらはキャラクター情報にも表示可能。 イベント発火タイミングに「ラウンド終了」を追加全てのキャラクターの行動終了後、選択カードの破棄や時間減少処理より前に行われる。 エネミーカードごとに各アクションカードの有無を指定できるようになった。常に「防御」しか配布されない、カード交換を持たないといった特殊な配布傾向のエネミーが作れる。 効果コンテントの細かな補完初期効果(対象の色反転・初期効果音の再生・状態による絞り込み)の有無を指定可能になった。 吸収モーションによる回復効果を得る対象を選択メンバに指定可能になった。 テキストセルの細かな補完文字のアンチエイリアス処理をセル単位で指定可能になった。 テキストセルに含まれる変数値を、背景更新時に全て更新するか、状態変数のみ更新するか、固定するかを選択可能になった。 Wsn.3(Py 3.0以降/XEditor6以降) システムクーポン「@Wsn.3」を追加。Wsn.3に対応しているエンジンかの判定に用いる。 新コンテント「カード再配置」の追加。エネミー・メニューカードの位置・拡大率・レイヤ情報をグループ単位で操作。NEXTの「メニュー移動」コンテントを代替可能。 新システム「選択中カード」。選択メンバのカード版で、従来の「使用カード(#C)」を上書き・操作することが可能に。キーコード所持分岐と各カード所持分岐コンテントに、条件に合うカードが見つかった時に選択状態にするオプションを追加。最初に見つかったカードが上述の「選択中カード」になる。 キーコード所持分岐と各カード所持分岐コンテントの適用範囲に「選択カード」を追加。「選択中カード」のみに対してこれらの判定を行うことが可能に。 各カード獲得・喪失コンテントの適用範囲に「選択カード」を追加。持ち込んだシナリオ外カードを削除したり、使用時イベントで別のカードを要求する、いわゆる「物々交換イベント」を簡単に作れるようになった。 クーポン獲得・剥奪コンテントの適用範囲に「任意の称号の所有者」を追加。たとえば「_♂」を指定すれば、敵を含むフィールドに存在する全ての男性キャラを対象に称号を与えたり消したりすることができる。仕様上同行NPCは含まれない。 メッセージ・台詞コンテントに「話者を選択状態にする」オプションを追加。NEXTにある機能と同等のもので、表示された話者がメッセージ送り時に現在選択メンバになる。 効果中断コンテントに「イベントを発火させたカードの使用回数を消費する」オプションを追加。キーコードイベント等でカードの使用回数を減らさずにイベントを終了させる事ができるようになった。 召喚獣に発動条件と消滅条件を設定可能に。これにより、「麻痺でも動く召喚獣」や「意識不明で消滅しない召喚獣」を作ることができる。 バトル設定の細かな補完バトルエリアに逃走の可否を指定するオプションを追加。CWのバトルで、逃走禁止を表現するには空の逃走イベントを作り、汎用の逃走イベントを上書きする必要がある。このオプションが有効なら逃走ボタンを表示しないため、イベントを作る手間を減らすことができる。 バトルのBGMに「再生中のBGMを継続」を設定できるように。CWではバトルで継続して同じBGMを鳴らすには同一のファイルを決め打ちで指定する必要があった。 Wsn.2(Py 2.0以降/XEditor5以降) システムクーポン「@Wsn.2」を追加。Wsn.2に対応しているエンジンかの判定に用いる。 システムクーポン「@使用者」「@イベント対象」「@効果対象」を追加。これによりカードの効果対象を選択したり、死亡/KCイベントの効果対象を付け替えられるようになった。 新コンテント「クーポン多岐分岐・ランダム多岐分岐」の追加。ステップ多岐分岐のように複数のランダム確率分岐やクーポン所有分岐を一度に行える。 効果コンテントの大幅な拡張。死亡/キーコードイベントを発火するオプション。効果コンテント単位でキーコードを付けることができ、使用時イベントで敵を対象とするスキルやアイテムを自由に作れるように。 選択中メンバの能力参照を行うオプション。従来は(6×対象レベル)で固定だった効果式をキャラクターの適性依存にすることができる。 効果目標に「称号の所有者」「カードの効果対象」を追加。選択中メンバにしなくても条件を満たす目標に一度に効果を与えることができるように。また「カードの効果対象」ではメニューカードにKCを発火することもできる。 カード効果に新モーション「効果無し」を追加。対属性で無効化されない限り必ず有効で、暴露+解除のような無効化音防止に活用できる。 メッセージコンテントに縦方向・横方向の「センタリング」オプションを追加。文字数が一定ではない特殊文字等を考慮したテキスト自動整形が可能になった。 クーポン分岐コンテントで複数クーポンのAND/OR条件に対応。従来大量の所持分岐ツリーを作る必要があった処理が一回で済む。 キーコード所持分岐条件に「手札」を追加し、個別のチェック式に変更。従来不可能だった戦闘中アイテムのみの検索や「全て」ではない複数条件が一度に行えるように。 キャスト加入コンテントに「戦闘中加入ラウンドから即時行動する」オプションの追加。 ステップに「特殊文字を展開」オプションを追加。#Mなどの名前をメッセージの$ステップ名$で使用できるようにする機能。Pyでは Rなどのカラーやフォントにも対応。 仮想ステップ「$??Player1$~$??Player6$」「$??SelectedPlayer$」に対応。NEXTと同等のもので、パーティの並び順に対応するキャラクター名と選択メンバの番号をメッセージなどで出力できます。選択メンバ番号はステップ代入コンテントのソース変数にも指定できます。 パーティの並び順 1 2 3 4 5 6 $??Player1$ $??Player2$ $??Player3$ $??Player4$ $??Player5$ $??Player6$ エリア・バトルで、プレイヤーカードにも死亡/KCイベントを設定可能に。従来は検知することが難しかった、毒による全滅などにも対処できます。 カード画像の配置方法の指定(中央寄せ・左上合わせ)。メニューとキャストで規格外サイズの配置位置が異なっていたが、個別に指定できるようになった。 高解像度のカードイメージの読み込みに対応(2倍以上で拡大時)。→デモシナリオ「六号室の幽霊船」の2倍スケール対応バージョン WSN2以降で使用可能な独自効果音を追加。→デモシナリオ「WSN2 新効果音デモ」 Wsn.1(Py 1.0 以降/XEditor4以降) Wsn.1はPy 1.0(Reboot0.12.4)において、機能追加が策定された初の正式バージョンです。エンジン側の表記を改め、以降はWSNとエンジンのバージョンが一致するようになっています。 新コンテント「背景再配置・背景置換・背景削除」の追加。NEXTと同等のもの。切替方式&速度指定との組み合わせにより安定したアニメ表現が可能に。 BGM・効果音関係の全般的な強化。(bass.dllの機能に依存)すべての指定箇所で音量/ループ回数/フェードイン時間を指定できる。 BGM・効果音再生コンテントで、再生チャンネル(主音声・副音声)を指定できる。これによりBGM等を二重・打ち消されずに再生可能。 キャストの所有カード及び召喚対象を参照指定できる。データを軽量化でき、自分を召喚する召喚獣など従来作れなかったデータが作成可能。 カード画像にレイヤ設定を追加し、複数のイメージを重ねて表示できる。店シナリオでの値札付けなど、画像を直接合成しない形での実装が可能になった。 メニュー・エネミーカード及び背景セルにレイヤ値を指定できる。レイヤ値はデフォルトで以下のように決まっており、数値が高いほど前面に描画される。メニューカードの手前に背景セルを置くNEXTの前面セルやPCカードを別のメニューカードで隠すFLIPを代替することも可能。背景セル …… 0 メニューカード/エネミーカード …… 100 PCカード …… 200 メッセージ …… 1000 レイヤ値が同じ場合、優先度はメッセージ>PCカード>メニュー・エネミー>背景セルの順。 背景セルの種類にキャラクターセルを追加。NEXTと同等のもので、PC1~6を表示できるのに加えて、機能拡大・縮小表示が可能。 メンバ選択コンテントに評価条件によるランダム選択の追加。台詞コンテントの評価メンバと同様に点数合計が高いメンバを優先選択できる。 技能の残り回数(精神力回復/不能モーション)の固定値での増減に対応(1~9)。所持する技能カード全体の使用回数を増減する。増減値は適性の影響を受けない。また、カード個別での操作は出来ない。 メッセージコンテント選択肢の縦割り分割オプション。NEXTと同等のもの。 Wsn.0(Py 0.12.3以降/XEditor3以降) Wsn.0はオリジナルのPyから存在し、Rebootの0.12.1から0.12.3まで拡張が続けられた途上バージョンです。これらの機能は以降のPyであれば引き続き利用可能です。 背景変更などのイベント各種コンテントで切替方式とスピードを指定できる。CWではプレイヤーの設定に依存していたのでアニメ無し最速が常態化していたが、シナリオ側で演出に組みこむ事ができるようになった。 カードのキーコード設定数に上限がない。従来CWでは、一枚のカードに付与できるキーコードは5個に制限されているが、それを超える設定が可能。NEXT形式と同等の仕様。 キャストに種族を設定できる。エディタ上の機能であり、指定したい種族のあるスキンを選択する必要があります。 WSN形式で利用できる特殊称号 特殊称号(システムクーポン)の一覧です。一部はクラシック形式でも利用できます。 名称 Ver 説明 バージョン判定称号 全Ver PyエンジンのVerを判定することができます。2.0ではPCの死亡イベントにバグがあるため、PCの死亡イベントを利用する場合は2.1以降を判定するのが無難です。 @R種族名 0 種族要素のあるスキンで種族を選択してキャラクターを登録した時に自動で追加されます。 @Wsn.2 2 Wsn.2対応エンジン(Py2以降)なら必ずクーポン所持の判定に成功します。CW1.29で実装された@MP3のような使い方ができます。 @Wsn.3 3 Wsn.3対応エンジン(Py3以降)なら必ずクーポン所持の判定に成功します。@Wsn.2も引き続き使用できます。 @Wsn.4 4 Wsn.4対応エンジン(Py4以降)なら必ずクーポン所持の判定に成功します。以前のWSN称号も引き続き使用できます。 @使用者 2 使用中のカード使用者に一時的に与えられ、行動の終了時に消滅します。使用時イベントのギミックに利用できます。 @効果対象 2 カードの効果対象をすり替えることができます。使用中のカードの効果対象全員に一時的に与えられ、行動の終了時に消滅します。この称号は使用時イベント/キーコードイベント側で付与・剥奪でき、カードの本来の効果対象であっても【@効果対象】を剥奪すると対象から外れ、無関係の者であっても【@効果対象】が付与されれば対象に入ります。 @イベント対象 2 死亡イベントやキーコードイベントが発生した時、そのイベントが発生したキャストに与えられ、イベントの終了時に消滅します。戦闘ギミックとしてカウンター/反射などの表現に使うことができます。 @効果対象外 2 実際に対象に効果が適用される段階で@効果対象を剥奪されたメンバに付与されます。このクーポンを持つメンバには@効果対象をつける事ができなくなります。(【@効果対象】を持っているメンバに事前付与しても効果対象から外れるわけではない)ターゲットの変更が複雑な状況下で無限ループに陥らないようにするためのもので、通常はこのクーポンを意識する必要はありません。
https://w.atwiki.jp/l2j-jp/pages/11.html
ソースコードの編集 ソースコードに手を加えないと実現できないことを書く。 てゆーか、ソースみて思いついたことのメモっぽいw ソースコードの編集マナポーション簡易ハック版 お餅 キャラクター名が3文字未満のキャラが作成できない件 重量制限を100%まで無効にする OEの上昇値の変更 染料の上限撤廃 レイド石化・沈黙解除 装備品のグレードペナルティ廃止 オンラインプレーヤーのリスト表示コマンド追加 マナポーション 使えないので、調べてみた。実装されていなかった。 前の実装は履歴みてないのでよくわからんが、残骸が gameserver/model/L2Potion.java っぽかった。これみると 435 MP回復させるみたい。 1.マナポのスキルを空いているスキルIDに突っ込む。瞬間POTの定義を参考にした datapack_development/data/stats/skills/2500-2599.xml を L2J_JP/data/stats/skills にコピーして編集 最後の行「 /list 」の直前にこれを突っ込む。番号は空いてたので適当につけた。 !--added by gyo-- skill id="2555" levels="1" name="Mana Potion" set name="power" val="435.0"/ set name="target" val="TARGET_SELF"/ set name="skillType" val="MANAHEAL"/ set name="operateType" val="OP_ACTIVE"/ set name="castRange" val="-1"/ set name="effectRange" val="-1"/ set name="isPotion" val="true"/ for /for /skill 2.アイテムハンドラにマナポの動作を定義。これが簡易版の最初の方法 L2J_JP/java/net/sf/l2j/gameserver/handler/itemhandlers/Potion.java ソースのcase文とこで727の次にこれを追記 // added by gyo case 728 // mana_potion, xml 2555 by gyo res = usePotion(activeChar, 2555, 1); break; 簡易ハック版 使えないので、どっちかをやってみる。 L2J_JP/java/net/sf/l2j/gameserver/handler/itemhandlers/Potion.javaソースのcase文とこで727の次にこれを追記。マナポのID 728を「強力マナのハーブ」と同じ扱いにしてみる。 // added by gyo case 728 // mana_potion, xml ? res = usePotion(activeChar, 2279, 2); break; 「超強力マナのハーブ」2279, 3 だとMPが全快しちまった。。。 L2J_JP/java/net/sf/l2j/gameserver/model/L2Potion.java 「setCurrentHpPotion1」とこにある次の記述を、「setCurrentMpPotion1」のブロックにコピペする。これで726の「マナ回復補助ポーション」も使えるのかな? // added by gyo case (728) double nowMp = activeChar.getMaxMp(); nowMp+=435; if (nowMp = activeChar.getMaxMp()) { nowMp = activeChar.getMaxMp(); } activeChar.setCurrentMp(nowMp); break; case (726) _milliseconds = 500; _duration = 15; _effect = 1.5; startPotionMpRegeneration(activeChar); break; これは意味なかった。。。使えないアイテムはhandlerの方で動作を定義するのな お餅 お餅も実装されてないじゃん。 スキルXMLの2136にHP回復だけの定義はあるけど、コアシステムがHPとMP同時回復設定をサポートしてくれないとダメポて書いてある !-- Needs Core support Heal HP 3% heal MP 1% at the same time -- つーことで、本来はショボい代物。本鯖でもそんなもんだった記憶があるし http //www.l2j-jp.info/forum/viewtopic.php?t=365 java/net/sf/l2j/gameserver/handler/itemhandlers/Potions.java いじってなければ171行目、マナポのコードを追加してたら174行目あたりの、case 5591 の直前にこれを突っ込む 参照URLんとこだと、お餅がスペシャルアイテム化しとる。HPMP全回復て。。。ライフキューブやめて、ポーションの最後のパラメータを「1」にすると本来の挙動に近くなるはず。。。せめて「2」くらいにしとかないとつまらん。 // added by gyo case 5283 // Rice Cake //res = usePotion(activeChar, 4338, 1); //Life Cubic For Novice //res |= usePotion(activeChar, 2278, 3); //Superior Herb of Life //res |= usePotion(activeChar, 2279, 3); //Superior Herb of Mana res = true; usePotion(activeChar, 2278, 2); //Greater Herb of Life usePotion(activeChar, 2279, 2); //Greater Herb of Mana break; マナポとお餅のコード追加で、426行目。フォーラムには、お餅を使用済みにするにはif文はこうじゃない?って書いてあったけど、その後変更になったようでハーブ判定の記述はなかったぞ?これはとりあえず見送り。参考までにメモっとく // [L2J_JP EDIT - TSL] if (res || item.getItemType() == L2EtcItemType.HERB || itemId == 5283) ん~、これじゃだめみたいだ。お餅つかえないや。。。こいつはどうかな? // added by gyo case 5283 // Rice Cake res = usePotion(activeChar, 2136, 1); usePotion(activeChar, 2279, 1); break; キャラクター名が3文字未満のキャラが作成できない件 L2_GameServer/net/sf/l2j/gameserver/clientpackets/CharacterCreate.java 107行目 // from http //www.l2j-jp.info/forum/viewtopic.php?t=11 //else if ((_name.length() 3) || (_name.length() 16) || !Util.isAlphaNumeric(_name) || !isValidName(_name)) else if ((_name.length() 1) || (_name.length() 16) || !Util.isAlphaNumeric(_name) || !isValidName(_name)) L2_JPでは適用されてた。。。本家のソースみてた。。。 // [L2J_JP EDIT - TSL] else if ((_name.length() 1) || (_name.length() 16) || !Util.isAlphaNumeric(_name) || !isValidName(_name)) 重量制限を100%まで無効にする java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java 1837行目~ // edit by gyo from http //www.l2j-jp.info/forum/viewtopic.php?t=11 //if (weightproc 500 || _dietMode) if (weightproc 1000 || _dietMode) { newWeightPenalty = 0; } // edit by gyo from http //www.l2j-jp.info/forum/viewtopic.php?t=11 //else if (weightproc 666) //{ //newWeightPenalty = 1; //} //else if ( weightproc 800) //{ //newWeightPenalty = 2; //} //else if (weightproc 1000) //{ //newWeightPenalty = 3; //} else { newWeightPenalty = 4; } OEの上昇値の変更 参考URL:http //eiyouchu.blog69.fc2.com/blog-entry-86.html ソース:java/net/sf/l2j/gameserver/clientpackets/RequestEnchantItem.java 384行目あたり item.setEnchantLevel(item.getEnchantLevel() + 1); この「+ 1」が上昇値。数字を書き換えれば1枚貼るとその数字分OE値が上がるみたい。 てことで、1枚目というか+0に貼ると+30、2枚目以降は+5づつ増えるようにするにはこの行をこう書き換えるといいのかな? // edit by gyo //item.setEnchantLevel(item.getEnchantLevel() + 1); if (item.getEnchantLevel() == 0) {//1枚目 item.setEnchantLevel(30); } else {// 2枚目以降 item.setEnchantLevel(item.getEnchantLevel() + 5); } Nスク、祝スク、クリスクで動作を変えるには、さらに条件を追加しないといかんので、これに置き換える。めんどい。。。 Nスクは1枚目+30で2枚目以降+5づつ、祝スクは1枚目+40で2枚目以降+2づつ、クリスクは1枚目+50で2枚目以降+1づつ、にする例。とにかく + の後の数字を書き換えればやりたいようにできる。 こんなんだから、武器と防具とアクセでさらに変えようとかは思わないほうがよさげw // edit by gyo //item.setEnchantLevel(item.getEnchantLevel() + 1); for (int scrollId ENCHANT_SCROLLS) {// Nスクの動作 if (scroll.getItemId() == scrollId) { if (item.getEnchantLevel() == 0) {//1枚目 item.setEnchantLevel(30); } else {// 2枚目以降 item.setEnchantLevel(item.getEnchantLevel() + 5); } break; } } for (int scrollId BLESSED_SCROLLS) {// 祝スクの動作 if (scroll.getItemId() == scrollId) { if (item.getEnchantLevel() == 0) {//1枚目 item.setEnchantLevel(40); } else {// 2枚目以降 item.setEnchantLevel(item.getEnchantLevel() + 2); } break; } } for (int scrollId CRYSTAL_SCROLLS) {// クリスクの動作 if (scroll.getItemId() == scrollId) { if(item.getEnchantLevel() == 0){//1枚目 item.setEnchantLevel(50); } else {// 2枚目以降 item.setEnchantLevel(item.getEnchantLevel() + 1); } break; } } 染料の上限撤廃 5以上にできるようにしちゃう java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java private void recalcHennaStats() 7536行目~ この6行をコメントアウトしちゃう // edit by gyo //if (_hennaINT 5)_hennaINT=5; //if (_hennaSTR 5)_hennaSTR=5; //if (_hennaMEN 5)_hennaMEN=5; //if (_hennaCON 5)_hennaCON=5; //if (_hennaWIT 5)_hennaWIT=5; //if (_hennaDEX 5)_hennaDEX=5; レイド石化・沈黙解除 レイドよりレベルが8以上高くても石化・沈黙しないようにする java/net/sf/l2j/gameserver/model/L2Character.java 石化対応:protected void onHitTimer(...) 5345行目~ if (level target.getLevel() + 8) の「8」をありえない程高い数字に書き換える。レイドは20からしかいないから80とかでいいかも 沈黙対応:public void callSkill(...) 6408行目~ if ((target.isRaid() getLevel() target.getLevel() + 8) || (target2 instanceof L2Character (((L2Character)target2).isRaid() getLevel() ((L2Character)target2).getLevel() + 8))) の「8」を2つとも80とかに書き換える。 装備品のグレードペナルティ廃止 うまくいくとエキスパーティーズなくてもLv1からS80とか装備できるけど、面白いのか微妙だなぁ L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java refreshExpertisePenalty() で何もしないようにすればできそう 1912行目あたり、メソッドの1行目に追加 return; 以降、メソッド内全部コメントアウトw オンラインプレーヤーのリスト表示コマンド追加 海外サイトで見つけた。たぶん「/online」でシステムメッセージにプレーヤー名をリスト表示させる機能を追加するもの。いらいないけど、参考までに置いておく。 {{ref OnlinePlayers.txt}} ====== Players Online ====== プレーヤー名 ... ======================= パッチだから、最初の4行のファイルパスを書き換えて、patchコマンドを実行するだけ。GNUのWindows版でもあれば使える 名前 コメント
https://w.atwiki.jp/gamemusicbest100/pages/8690.html
G-SAVIOUR 機種:PS2 作曲者:太田修司、nkis、T.Seiru、荒牧賢治 発売元:サンライズインタラクティブ 発売年:2000 概要 日本と北米で共同制作されたガンダムのTVドラマ『G-SAVIOUR』を原作とした3Dシューティングゲーム。 海外ドラマが原作なのでキャラのグラフィックは実写でボイスは英語になっている。ストーリーはドラマ版の後日譚となる。 実写を使ったガンダムゲームはおそらくこれと『GUNDAM 0079 THE WAR FOR EARTH』だけなので、そういう意味では貴重な作品。 音楽は太田修司氏らアトリエ彩のサウンドチームが担当。アトリエ彩はプラモの会社ではあるが、こういったロボットゲームの開発に協力することがある。 太田修司氏らは後に『サンライズ英雄譚2』や『スーパーロボット大戦GC』などのロボットゲームも手掛けている。 クールなテクノ系のサウンドが中心で、こちらもガンダムゲームとしてはかなり独特な曲調ではあるが、BGMの評価は上々。 収録曲(サウンドトラック順) 曲名 作・編曲者 補足 順位 White Stream Opening Theme a secret group of warriors Event Scene 1 glint of light Stage Title the operation has begun Briefing fragile Player Select ready for take-off Start Scene turn the tide Chapter 1 formidable power Boss 1 across the border Mission Clear depletion Chapter 2 like a evil Boss 2 G3-SAVIOUR always ready to fight Chapter 3 crimson crisis Boss 3 razor-edge Event Scene 2 surprise attack Chapter 4 abstracted frustration Boss 4 in a limited amount of time Chapter 5 extreme voltage Boss 5 spiritual ruin ~消滅の光輪 Chapter 6 expressionless rave Boss 6 落日の空 Chapter 7 heavy struggle Boss 7 in confusion Event Scene 3 stress of dissonance Chapter 8 in the raw ~埋もれゆく追憶 Boss 8-2 the fatal battle Boss 8-3 Dear Mother 作:山本剛大編:十川知司 エンディングテーマ歌:Lovable heat daze of dusk Game Over repose in a time Gallery White Stream ~Special Edition~ サウンドトラック G-SAVIOUR for PS2 OriginalSoundTrack Dear Mother エンディングテーマが収録。