トップ
新規
一覧
Farm
検索
ヘルプ
RSS
ログイン
パーティシステムの編集
!!!party.plについて !!機能 酒場に入る ・酒場のマスターと話す - バーのマスターは毎日たくさんの人と話す - だから多くの情報を持っている、と思う - マスターと会話すると有益な情報が手に入る、かもしれない ・パーティメンバーを募集する - 酒場のプレイヤーリストに書き込まれる - 募集要項・参加条件・パーティの目的などを書いておく - 参加条件に機能上の制限能力はない。書いておくだけ。アナログな感じでよい - 募集人数を設定できるようになった ・パーティメンバー募集の変更・終了 - 酒場のプレイヤーリストに書き込まれる - 募集要項・参加条件・パーティの目的などを変更できる - 終了した場合リストに表示されなくなる - 終了しても書き込んだ内容とパーティのデータは残る ・「〜〜〜」のテーブルに着く - 「〜〜〜」はパーティ名かキャラクターの名前 - ここでテーブル会話とパーティの加入・脱退が出来る - ここでの会話はテーブルに着いたキャラクター全てに聞こえる(チャットのログが見える) - リーダーはパーティ名を決めることが出来る - リーダーは募集要項を書き換えることが出来る - リーダーはリーダーの譲渡と強制脱退を行うことが出来る ・酒場の人たちと話す - 一行掲示板に書き込む パーティウィンドウ ・パーティメンバーの表示(未実装?) - パーティメンバーのID・名前・攻撃力・防御力・体力・所持品・一時使用アイテムを見ることが出来る - 攻・防・体・荷物・一時は設定で非表示にも出来る(別に会いに行けば普通に見れるしこの機能いらないか) - 狼の嗅覚スキルを持っていれば非表示設定でも一時使用アイテムも見ることが出来る - 現在sub pertner_dataを呼び出してるだけ ・パーティメンバーと話す - パーティメンバー全員に届く会話をする - ログは酒場のテーブルと共用 - 酒場のテーブルでの会話と違う点は ・酒場の会話を見ることが出来ない ・耳打ち(指定したメンバーにのみ聞こえる会話)ができる ・手紙が送れる - 耳打ちはどうしようかな・・・ ・つけてしまいました チャット ・酒場とパーティウィンドウでチャットが出来る ・発言は酒場全体・テーブル・パーティ・耳打ち・手紙に分類 - 酒場全体は酒場にいるプレイヤー全員に聞こえる会話 - テーブルは対象のテーブルにいるプレイヤーとそのテーブルのパーティメンバーに聞こえる会話 - パーティは自分のパーティメンバーのみに聞こえる会話 - 耳打ちは指定したメンバーのみに聞こえる会話 - 手紙は指定したメンバーに手紙を送ります ・ちょっといじりすぎた感が否めない パーティリスト(未実装) ・PLayer Listにパーティ一覧 ・リストに表示するのは募集中のパーティのみ? ・表示はパーティ名・リーダー名・パーティ員・募集人数・募集要項? ・更新順にソート? ・パーティID順にソート? !!おそらく外部から呼び出すであろう機能 sub chat_register ・チャットを表示します ・フォームから$Fm{'mode'} = 'chat_register';にして呼び出してください ・$Fm{'pd'}にパーティID、$Fm{'cmode'}にbar,table,partyのどれか、$Fm{'words'}に発言で動きます ・$Fm{'pd'}がなければ酒場のチャットだけ呼び出します ・$Fm{'pd'}がなくてもパーティに参加していればパーティチャットを表示します ・$Fm{'partywindow'}があるとパーティチャットだけ呼び出します ・パーティウィンドウ作るときに呼ぶ予定 ・パーティウィンドウ誰か作ってくれないかな・・・! ・あとプレイヤーリストも・・・! sub get_party($party_id) ・パーティのデータを取得します ・引数にパーティのIDを渡します ・$party{$party_id}にパーティのデータが入ります - $party{'ptid'}{'nm'} => パーティの名前 - $party{'ptid'}{'st'} => パーティのステータス(open or close) ・今のところopenで参加可・closeで不可になってます。$spみたいな形式にしてもいいかも - $party{'ptid'}{'ld'} => リーダーのID - $party{'ptid'}{'mt'} => メンバーのIDとパーティに加わった時間 ・$party{'ptid'}{'mt'}{'id'}でidのキャラの加わった時間を取得 ・メンバーのIDは keys %{$party{'ptid'}{'mt'}} でリスト取得してください - $party{'ptid'}{'mx'} => 募集人数 ・設定変えても2人以下にはならないようになってます - $party{'ptid'}{'tm'} => パーティの募集を開始した時間 ・パーティが解散されるまで変化しません ・エラーが発生したときの回避用です。いまのところ ・パーティIDが一致してもこの時間より前に参加した事になってると脱退させられます - $party{'ptid'}{'cm'} => 募集要項 ・多重読み込み防止機能付 - 複数のパーティの読み込みもちゃんと出来ます。多分 ・パーティメンバーのステータスはsub get_partymemberで読み込んでください sub partyout($party_id) ・パーティのデータを保存します ・引数にパーティのIDを渡します ・保存できます ・パーティメンバーのステータスの保存はsub partymemberoutで sub get_partymember($party_id) ・パーティメンバー全員のデータを取得します ・引数にパーティのIDを渡します ・$party{$party_id}{'mb'}にパーティメンバーのデータが入ります - $party{$party_id}{'mb'}{'id'}{'nm'}でidの名前取得 - 長いので実際やるときは ・$I = $party{$party_id}{'mb'}; とかしておくと$I->{'id'}{'nm'}で呼び出せてよいかも ・先に&get_partyを済ませていないとヤバい ・設定の@userflagをきちんと設定してないとヤバい ・呼び出しにsub get_partnerを使ってるので &get_partymemberと&get_partnerを同時にやるときは - &get_partymember($party_id); - &get_partner($partner_id); - &partnerout; - &partymemberout($party_id, $add_recoed); の順でやらないとパートナーのデータが消えます… (&get_parterしてから&partneroutするまでの間に&get_partymemberも&partymemberoutもしてはいけない) sub partymemberout($party_id [, $add_record]) ・パーティメンバー全員のデータを保存します ・引数にパーティのID、マイレコに追加するメッセージを渡します ・$add_recordがあるとマイレコードにメッセージが追加されます - $add_recordがあれば&add_recordを呼び出すようにしてるので 多分マイレコ分割してても大丈夫だと思う ・パーティのときのプレイヤーデータはおそらくパーティ側が最新だと思うので ($hpより$party{ptid}{mb}{id}{hp}のほうでプログラムが進んでると思う) &partymemberoutと&useroutを同時に行うときは - &partymemberout($party_id); - &userout if !$partymemberout{"$target"}; とすればデータの巻き戻りが起こらないはずです sub add_partychat($party_id, $line [, $time, @chatlines]) ・パーティチャットにメッセージを追加します ・引数にパーティのID、整形されたチャット行を渡します ・戻り値は最古参のパーティメンバーの参加時刻とパーティチャットファイルのチャットです ・$lineはファイルに保存する形にしてから渡します - join('<>', time, $id, $name, $cmode, $to($pid:$pnm), $words, "\n") - 左から、発言時間・発言者のID・名前・モード(bar,table,party)・発言の対象("対象のID:対象の名前")・発言内容 - $toは耳打ち用なので普段は指定しなくていいです - パーティメンバーへのシステムメッセージは - &add_partychat($party_id, join('<>', time, $barchat_system_id, $barchat_system_name, 'party', '', 'システムからのお知らせ', "\n")); - のようにどぞう ・@chatlinesを渡すと$timeより古いチャットは消去されます ・@chatlinesを渡すとファイルの内容を追記じゃなくて置き換えします ・$timeと@chatlinesは渡さないでいいです sub update_partylist($party_id [, $time]) ・パーティリストファイルの情報を更新します ・引数にパーティのID、更新時間を渡します ・$timeを渡すとパーティリストの更新時間に代入され、リストのトップにソートします ・先に&get_partyをしておく必要があります sub my_party($sp) ・パーティIDとパーティに加わった時刻を取得します - ($ptid, $pttm) = &my_party($sp); - で、パーティのIDと参加時刻が取得できます ・仕様が変わってもすぐ直せるように追加しました sub get_memberlist($party{$party_id}{mt} [, $reverse]) ・パーティメンバーのリストを参加時間で昇順ソートして返します - @partymember = &get_memberlist($party{$party_id}{mt}); - で、メンバーのIDのリストが取得できます ・$reverseを渡すと降順でソートして返します - @partymember = &get_memberlist($party{$party_id}{mt}, 1); - で、降順のリスト取得 ・シンタックスシュガーってステキ
タイムスタンプを更新しない
添付ファイル
party.pl
リネーム・コピー
リネーム
メッセージを残してリネーム
コピー
[
ヘルプ
]
Counter 685182
はじめに
SOS2 Wikiの使い方
コンテンツ
SOS2を設置する
SOS2を改造する
困ったときには
コラム
改造&FAQ
リファレンスマニュアル
機能別改造一覧
雑談
BBS
Masters Bar
公式BBS
サポート
サポートBBS
Link
リンク
SIONJamの改造ソース
設置サイトはこちらへ
検索
キーワード
AND
OR
ページ内容も含める
最近更新されたページ
雑談
Script of Saga II Wiki
パーティシステム
D2C風、レアアイテム生成システム
洋ゲー風、拾得アイテム強化プログラム
SOSIIを分割しよう
戦闘関連強化・特技&魔法
SOSII Check Script
乱数ロールプログラム
不具合情報
参照数の多いページ
Script of Saga II Wiki
(74710)
リンク
(16201)
SOS2を設置する
(12420)
雑談
(11882)
SOS2改造利用規約
(9738)