게시판 제목 잘보고 올리세요 일반게시판에 홍보글 보이면 바로 회원 차단입니다

기간제 버프물약 기간 설정하는 방법이 궁금합니다.

컨텐츠 정보

본문

2.0 버전이구 럭키 팩입니다.

버프물약(1일) << 이걸 24시간후에 사라지거나 사용 안되게 하는 방법은 어떻게 하면될까요?

아무리 찾아봐도 보이질 않아서 초보가 섣부른 판단에 실수라도 할까 걱정됩니다.

도움부탁 드립니다. (__)꾸벅.


관련자료

댓글 1
profile_image

kooki님의 댓글

구현 방안
1. ItemInstance.java에 시간 체크 추가

java
// ItemInstance.java isClick() 메서드 수정 (135라인 근처)
public boolean isClick(PcInstance pc) {
    if (pc != null) {
        // 기존 맵 제한 체크...
       
        // 시간 제한 아이템 체크 추가
        if (isTimeLimitItem() && isExpired()) {
            ChattingController.toChatting(pc, "이 아이템은 사용 기간이 만료되었습니다.", Lineage.CHATTING_MODE_MESSAGE);
            return false;
        }
    }
   
    // 기존 딜레이 체크...
}
 
// 시간 제한 아이템 확인
private boolean isTimeLimitItem() {
    // 비취물약(ID: 233) 등 시간 제한 아이템 목록
    int[] timeLimitItems = {233, 234, 235}; // 필요한 아이템 ID 추가
    for (int id : timeLimitItems) {
        if (item.getNameIdNumber() == id) {
            return true;
        }
    }
    return false;
}
 
// 기간 만료 확인
private boolean isExpired() {
    // 2일 = 48시간 = 172800초
    long expireTime = 172800; // 초 단위
    return getNowTime() <= 0;
}
2. 아이템 생성 시 시간 설정

java
// object.java toGiveItem() 메서드 수정 (2597라인 근처)
if (item.getItem().getNameIdNumber() == 233) { // 비취물약
    temp.setNowTime(172800); // 2일 후 만료
}
3. lineage.conf 설정 추가

ini
# 시간 제한 아이템 설정
time_limit_item_ids = 233,234,235
time_limit_duration_days = 2
동작 방식
아이템 획득 시: setNowTime()으로 만료 시간 설정
아이템 사용 시: isClick()에서 시간 체크
기간 만료: getNowTime()이 0 이하이면 사용 불가
이 방식으로 비취물약이 2일 후 사용 불가능하게 됩니다.
전체 1 / 1 페이지
번호
제목
이름

포인트 랭킹


알림 0