注意!
現在も調整中であり、正規の版ではありません。

概要

SOSIIにいわゆるプレイヤーズギルドの概念を取り付けます。

共通の目的やもった仲間や、知り合い同士で集まりごにょごにょします。
現在はギルドという看板が作れるだけで大した機能は備わっていません。

また、今後リリースされるであろう SOSIIWiki汎用チャット をアドオンとして使うことで、ギルドチャット機能が使用できます。

改造

1. ファイルのダウンロード

以下のどちらかのファイルをダウンロードします。

2. その他

ファイルの解凍後、以下2点のテキストを参考にしてください。

  • readme.txt
  • manual.txt(補足説明)

修正

補足説明の訂正と補足

ギルドの評価
・トップページにギルドのランキングを表示させる。
# Sub Saga #
任意の場所に
	if ($gld_chck) {
		require './guild.pl';
		&evaluate_guild;
		&guild_in_saga;
	}
を追加する。
において、ランキングの表示如何にかかわらず、上記の追加は必須でした。
&evaluate_guild;
を実行しないとギルドの評価が行われません、ごめんなさいX(
今後のチャット導入に関して
設定部分に以下の記述をあらかじめ追加しておくと、チャット導入の際に面倒がなくなります。
$gdchtdir = 'hoge/';	# ギルドチャットファイルを格納するフォルダ
ギルドの設立
設立はギルド設立アイテムのフラグ(略字)を持ったアイテムを一時使用に使用した状態で、アクションフォームから行います。
SOSII旧バージョンでの動作
動作しません。
しかし下記の記述を削除することで動作するようになります(動作未確認)。
if (!$post) { return }

2007/05/14 バグ修正の差分 1 of 2 (Ver.0.00→0.00a)

# Sub Found After #

$line = join('<>',$gid,$Fm{'name'},"$id$nm",$time,"$id$nm",0,0,0,'founding',0,$time,1,0,'','???','','',"$id","\n");

の部分を以下に修正します。

$line = join('<>',$gid,$Fm{'name'},"$id$nm",$time,"$id$nm",0,0,0,0,'founding',0,$time,1,0,'','???','','',"$id","\n");

2007/05/14 バグ修正の差分 2 of 2 (Ver.0.00a→0.00b)

readme.txt 内の追加項目

2. # Main Program #
271行の
if ($Fm{'mode'} eq 'levy') { &levy }
の下に
.
.
.

の部分におきまして

if ($Fm{'mode'} eq 'guild') { require './guild.pl'; &guild_form }

上記の行は誤りで、正しくは下記の通りになります。

if ($Fm{'mode'} eq 'guild') { require './guild.pl'; &guild_order }

Rickets様、ご協力ありがとうございました。

Ver.0.00b→0.01差分 (2007/05/15)

  • リーダー脱退時にリーダー権限が即放棄されます
  • リーダー脱退の許否を設定できるようになります
  • ソースが見難いのでコメントを増やしました:)

# Sub Guild Before #

if ($Fm{'gmode'} =~ /(g02|g05)/) {
	if ($1 eq 'g02' && !$Fm{'pd1'}) { push (@msg,"IDが入力されていません"); $Fm{'gmode'} = 1 }
	if ($1 eq 'g05' && !$Fm{'pd3'}) { push (@msg,"IDが入力されていません"); $Fm{'gmode'} = 1 }

を以下に修正

if ($Fm{'gmode'} =~ /(g02|g05|g08)/) {
	if ($1 eq 'g02' && !$Fm{'pd1'}) { push (@msg,"IDが入力されていません"); $Fm{'gmode'} = 1 }
	if ($1 eq 'g05' && !$Fm{'pd3'}) { push (@msg,"IDが入力されていません"); $Fm{'gmode'} = 1 }
	if ($1 eq 'g08' && $gld_ini8 && $sp =~ /$gld_skl1/) {
		push (@msg,"リーダーの脱退は禁止されています"); $Fm{'gmode'} = 1;
	}

# Sub Guild Complete #

	} elsif ($Fm{'gm'} eq 'g08') {
		if ($gld_trm2) {
			&get_time; $flag = sprintf("%02d%01d",$day,$wday);
			$sp .= "$gld_skl3$flag"; $sp =~ s/$gld_skl1//g;
			push (@msg,"脱退手続きを行いました、$gld_trm2日後に正式脱退します");

			if ($cht_ini2 && $chat_chk) {
				$line = join('<>', time, $chat_system_id, $chat_system_name, 'guild', '', "[$id]$nmが脱退手続きを行いました。$gld_trm2日後に正式脱退します。", "\n");
				&add_chat('g', $gd_id, $line, 1) if $chat_chk;
			}
		} else {
			$sp =~ s/$gld_skil[0-9][0-9][0-9]//g; $sp =~ s/$gld_skl1//g; $gd_mb --;
			push (@msg,"脱退手続きを行い、ギルドを脱退しました");

			if ($cht_ini2 && $chat_chk) {
				$line = join('<>', time, $chat_system_id, $chat_system_name, 'guild', '', "[$id]$nmがギルドから脱退しました。", "\n");
				&add_chat('g', $gd_id, $line, 1) if $chat_chk;
			}
		}
	}

を以下に修正

	} elsif ($Fm{'gm'} eq 'g08') {
		if ($gld_trm2) {
			&get_time; $flag = sprintf("%02d%01d",$day,$wday);
			$sp .= "$gld_skl3$flag";
			push (@msg,"脱退手続きを行いました、$gld_trm2日後に正式脱退します");

			if ($cht_ini2 && $chat_chk) {
				$line = join('<>', time, $chat_system_id, $chat_system_name, 'guild', '', "[$id]$nmが脱退手続きを行いました。$gld_trm2日後に正式脱退します。", "\n");
				&add_chat('g', $gd_id, $line, 1) if $chat_chk;
			}
		} else {
			$sp =~ s/$gld_skil[0-9][0-9][0-9]//g; $gd_mb --;
			push (@msg,"脱退手続きを行い、ギルドを脱退しました");

			if ($cht_ini2 && $chat_chk) {
				$line = join('<>', time, $chat_system_id, $chat_system_name, 'guild', '', "[$id]$nmがギルドから脱退しました。", "\n");
				&add_chat('g', $gd_id, $line, 1) if $chat_chk;
			}
		}
		if ($sp =~ /$gld_skl1/) {
			$sp =~ s/$gld_skl1//g; $gd_rd = 'nobody';
		}
	}

設定項目に以下を追記します

$gld_ini8 = 0;		# ギルドリーダーの脱退を禁止する(yes = 1,no = 0)

コメント

コメントはありません。 Comments/改造/ギルドシステムお試し版?

お名前:

添付ファイル: fileguild_beta.lzh 78件 [詳細] fileguild_beta.zip 102件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-04-30 (火) 00:57:44 (718d)