기간제 버프물약 기간 설정하는 방법이 궁금합니다.
컨텐츠 정보
- 532 조회
- 1 댓글
- 목록
본문
2.0 버전이구 럭키 팩입니다.
버프물약(1일) << 이걸 24시간후에 사라지거나 사용 안되게 하는 방법은 어떻게 하면될까요?
아무리 찾아봐도 보이질 않아서 초보가 섣부른 판단에 실수라도 할까 걱정됩니다.
도움부탁 드립니다. (__)꾸벅.
관련자료
댓글 1
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. 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일 후 사용 불가능하게 됩니다.














