トップ
新規
一覧
Farm
検索
ヘルプ
RSS
ログイン
パーティシステムの編集
!!おそらく外部から呼び出すであろう機能 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 683381
はじめに
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
(74669)
リンク
(16176)
SOS2を設置する
(12409)
雑談
(11875)
SOS2改造利用規約
(9732)