join要請してきたプレイヤーが同じアカウントでクランにいたら人数制限を受けずに加入できるよるようにする方法
C_Attr,javaの120行目から下記のように変更or追記してください
//アカウント名取得処理******************
Connection con = null;
PreparedStatement pstm = null;
ResultSet rs = null;
ArrayList
try {
con = L1DatabaseFactory.getInstance().getConnection();
pstm = con
.prepareStatement("SELECT DISTINCT account_name FROM characters WHERE ClanID = ?");
pstm.setInt(1, pc.getClanid());
rs = pstm.executeQuery();
//クランメンバーアカウントネームアレイに追加(重複は除く)
while (rs.next()) {
if (!membersAccountName.contains(rs.getString(1))) {
membersAccountName.add(rs.getString(1));
}
}
} catch (SQLException e) {
_log.log(Level.SEVERE, e.getLocalizedMessage(), e);
} finally {
SQLUtil.close(rs);
SQLUtil.close(pstm);
SQLUtil.close(con);
}
//取得したアカウント名がクラン内にあるかどうか調査
boolean joinFlag = false; //Join可能かどうかのフラグ
for(String acNam : membersAccountName){
if(joinPc.getAccountName().equals(acNam)){
joinFlag = true;
break;
}
}
if (maxMember <= membersAccountName.size() &&
joinFlag == false) { // 空きがないし新入クラン員である
joinPc.sendPackets( // %0はあなたを血盟員として受け入れることができません。
new S_ServerMessage(188, pc.getName()));
return;
}
for (L1PcInstance clanMembers : clan
.getOnlineClanMember()) {
clanMembers.sendPackets(new S_ServerMessage(94,
joinPc.getName())); // \f1%0が血盟の一員として受け入れられました。
}
joinPc.setClanid(clan_id);
joinPc.setClanname(clanName);
joinPc.setClanRank(L1Clan.CLAN_RANK_PUBLIC);
joinPc.setTitle("");
joinPc.sendPackets(new S_CharTitle(joinPc.getId(), ""));
joinPc.broadcastPacket(new S_CharTitle(joinPc
.getId(), ""));
joinPc.save(); // DBにキャラクター情報を書き込む
clan.addMemberName(joinPc.getName());
joinPc.sendPackets(new S_ServerMessage(95,
clanName)); // \f1%0血盟に加入しました。
} else { // クラン加入済み(クラン連合)
if (Config.CLAN_ALLIANCE) {
changeClan(clientthread, pc, joinPc, maxMember);
} else {
joinPc.sendPackets(new S_ServerMessage(89)); // \f1あなたはすでに血盟に加入しています。
}
}
}
}
}
break;
念のためソースを置いておこう・・・
http://www7b.biglobe.ne.jp/~umisaka/C_Attr.java
リビジョン2021に追加を加えたものなんで、C_Attrクラスに独自で変更を入れている人は注意
なお、テストまったく まーーーーーーーーーったくしてないんでバグってる確率125%!
(友達がいないうしこ)
念のためバックアップその他してね\kv
2009年10月2日金曜日
クラン員重複join処理
投稿者
Usiko
時刻:
19:38
登録:
コメントの投稿 (Atom)
2 コメント:
牛子さん、エミュのマジックドールってアクション起こさせるように(エルダーだと雷に撃たれるとか)は出来ないんですか?
可愛さ半減です!なんとかして><
がんばって!
日本語でおk
エフェクトを表示させる事は可能だが意味あるのか・・・
コメントを投稿