[UI6] 혈맹탈퇴
먼저 DANDY 님 도움주셔서 감사합니다.
그곳은 탈퇴시 이렇게 한거같습니다.
혈맹원 탈퇴시 군주에게 동의받는거 입니다.
저팬pak에서 eva버젼 으로 바꾸었습니다.
작동여부 확인하였구요 혹시 미비점은 고수님들이 해주셨으면 감사드립니다.
c_attr자바
case 217: <- 검색후 위에다가~
case 1906:
c = readH();
if (c == 0) { // No
leaveClan(pc, false);
} else { // Yes
loginLeader = false;
clan_name = pc.getClanname();
clan = L1World.getInstance().getClan(clan_name);
clanMember = clan.getOnlineClanMember();
for (i = 0; i < clanMember.length; i++) {
if (clanMember[i].getClanRank() == L1Clan.CLAN_RANK_PRINCE //자신 PAK 군주에 맞게 수정
|| clanMember[i].getClanRank() == L1Clan.CLAN_RANK_GUARDIAN) {
clanMember[i].setTempID(pc.getId());
clanMember[i].sendPackets(new S_Message_YN(1908, pc.getName()));
loginLeader = true;
}
}
if (loginLeader) {
pc.sendPackets(new S_ServerMessage(302));
} else {
pc.sendPackets(new S_Message_YN(1914, ""));
}
}
break;
case 1908:
L1PcInstance leavePc = (L1PcInstance) L1World.getInstance().findObject(pc.getTempID());
c = readH();
if (c == 0) { // No
clan_name = pc.getClanname();
clan = L1World.getInstance().getClan(clan_name);
clanMember = clan.getOnlineClanMember();
for (i = 0; i < clanMember.length; i++) {
clanMember[i].sendPackets(new S_ServerMessage(1917, pc.getName(), leavePc.getName()));
}
leavePc.sendPackets(new S_Message_YN(1912, ""));
} else { // Yes
clan_name = pc.getClanname();
clan = L1World.getInstance().getClan(clan_name);
clanMember = clan.getOnlineClanMember();
for (i = 0; i < clanMember.length; i++) {
clanMember[i].sendPackets(new S_ServerMessage(178, pc.getName(), leavePc.getName()));
}
leaveClan(leavePc, true);
}
break;
case 1912:
case 1914:
c = readH();
if (c == 0) { // No
return;
}
leaveClan(pc, false);
break;
아래쪽 메소드부분에 추가
private void leaveClan(L1PcInstance leavePc, boolean isApproved) {
String clan_name = leavePc.getClanname();
L1Clan clan = L1World.getInstance().getClan(clan_name);
L1PcInstance clanMember[] = clan.getOnlineClanMember();
for (int i = 0; i < clanMember.length; i++) {
clanMember[i].sendPackets(new S_ServerMessage(178, leavePc.getName(), clan_name));
}
if (clan.getWarehouseUsingChar() == leavePc.getId()) {
clan.setWarehouseUsingChar(0);
}
try {
long time = 0;
if (isApproved) {
time = 60 * 60 * 2 * 1000;
} else {
time = 60 * 60 * 24 * 3 * 1000;
}
leavePc.setClanid(0);
leavePc.setClanname("");
leavePc.setClanRank(0);
leavePc.setTitle("");
leavePc.sendPackets(new S_CharTitle(leavePc.getId(), ""));
leavePc.broadcastPacket(new S_CharTitle(leavePc.getId(), ""));
leavePc.setRejoinClanTime(new Timestamp(System.currentTimeMillis() + time));
leavePc.save();
} catch (Exception e) {
_log.log(Level.SEVERE, e.getLocalizedMessage(), e);
}
clan.removeClanMember(leavePc.getName());
}
L1PcInstance pc = clientthread.getActiveChar(); <- 검색후 위에다가 추가
L1Clan clan;
L1PcInstance clanMember[];
String clan_name;
String clan_member_name[];
boolean loginLeader;
여기까지하시고 컨트롤+시프트+o = sql 선택
l1pc인스턴스자바
public int getBapodmg() { <- 검색후 위에다가 추가
private Timestamp _rejoinClanTime;
public Timestamp getRejoinClanTime() {
return _rejoinClanTime;
}
public void setRejoinClanTime(Timestamp time) {
_rejoinClanTime = time;
}
l1clan자바
private ArrayList<ClanMember> clanMemberList = new ArrayList<ClanMember>(); <- 검색후 아래에
private final ArrayList<String> membersNameList = new ArrayList<String>();
public ArrayList<ClanMember> getClanMemberList() { <- 검색후 위에다가
public void delMemberName(String member_name) {
if (membersNameList.contains(member_name)) {
membersNameList.remove(member_name);
}
}
public void setWarehouseUsingChar(int objid) {
_warehouse = objid;
}
public int getWarehouseUsingChar() {
return _warehouse;
}
private int _clanId; 검색
private int _warehouse = 0; //추가
C_LeaveClan자바
} else { // 군주가 아닌 혈맹원의 탈퇴 검색하시고 바로밑에
player.sendPackets(new S_Message_YN(1906, "")); 이걸로교체 한다음 임포추가 컨트롤+시프트+0
case 97 <- clan 오류나시면 clan1 로 이름바꺼주심끝~
-출처- DANDY 님
[출처] [UI6] 혈맹탈퇴 (비공개 카페)

준희미니 님의 최근 댓글
rt 2021 05.25 ㄳ 2021 05.11 ㄳ 2021 05.11 rt 2021 05.09 rt 2021 04.25