사이트 로그인
2020.07.04 17:30
몇일간 소스뜯어보다가 자동물약 구현해봤습니다.
커맨드를 통해 자동물약 퍼센트를 설정하면
해당 퍼센트 이하로 현재피가 내려가면 자동으로 물약을 사용하는 소스입니다.
/// CommandController.java 추가
static public boolean toCommand(object o, String cmd){
.
.
.
// 자동물약
}else if(key.equalsIgnoreCase("-자동물약")){
try{
toAutoPotion(o,st);
}catch(Exception e){
if(o!=null)
ChattingController.toChatting(o, "-자동물약 켬 95 : 농축 강력 체력 회복제를 자동으로 사용합니다.", Lineage.CHATTING_MODE_MESSAGE);
ChattingController.toChatting(o, "-자동물약 끔 : 자동물약을 종료합니다.", Lineage.CHATTING_MODE_MESSAGE);
}
return true;
}
.
.
.
}
static private void toAutoPotion(object o, StringTokenizer st) throws Exception{
String onoff = st.nextToken();
PcInstance pc = (PcInstance) o;
if ("켬".equals(onoff)) {
int rate = Integer.valueOf(st.nextToken());
pc.setIsAutoPotion(true);
pc.setAutoPotionPercent(rate);
ChattingController.toChatting(o, new StringBuilder().append("현재 HP가 ").append(rate).append("% 이하이면 농축 강력 체력 회복제를 자동으로 사용합니다.").toString(),
Lineage.CHATTING_MODE_MESSAGE);
} else if ("끔".equals(onoff)){
pc.setIsAutoPotion(false);
pc.setAutoPotionPercent(0);
ChattingController.toChatting(o, new StringBuilder().append("자동물약을 비활성화 합니다.").toString(),
Lineage.CHATTING_MODE_MESSAGE);
}else {
throw new Exception();
}
}
/// Character.java
public class Character extends object {
.
.
.
// 종료처리
@Override
public void close(){
super.close();
level = nowHp = maxHp = dynamicHp = nowMp = maxMp = dynamicMp = ac = dynamicAc =
Str = Con = Dex = Wis = Int = Cha = dynamicInt = dynamicStr = dynamicCon = dynamicDex =
dynamicWis = dynamicCha = dynamicTicHp = dynamicTicMp = lvStr = lvCon =
lvDex = lvWis = lvInt = lvCha = dynamicSp = dynamicMr = food = dynamicEarthress = dynamicWaterress =
dynamicFireress = dynamicWindress = earthress = waterress = fireress = windress = dynamicAddDmg = 0;
itemWeight = exp = setitemHp = setitemMp = setitemInt = setitemStr = setitemCon = setitemDex = setitemWis =
setitemCha = setitemMr = setitemSp = setitemTicHp = setitemTicMp = setitemEarthress = setitemWaterress =
setitemFireress = setitemWindress = dynamicAddDmgBow = dynamicAddHit = dynamicAddHitBow =
setitemAc = reduction = dynamicReduction = dynamicEr = dynamicDg =
dynamicStunlevel=dynamicStunmr = stunlevel = stunmr = autoPotionPercent = 0;
hpMove = mpMove = hpFight = mpFight = isAutoPotion = false;
delay_magic = 0;
TimeHpTic = getHpTime();
TimeMpTic = getMpTime();
}
// 자동물약 변수 추가
private boolean isAutoAttack;
private boolean isAutoPotion;
// 자동물약 getter/setter
public boolean getIsAutoPotion() {
return isAutoPotion;
}
public void setIsAutoPotion(boolean isAutoPotion) {
this.isAutoPotion = isAutoPotion;
}
// CharacterController.java
static public void toTimer(long time){
// 처리할 객체 순회.
for(object o : getList()){
// 자연회복 처리.
try {
if(!o.isDead()){
if(o instanceof Character){
Character cha = (Character)o;
ItemInstance item = null;
int tic_hp = cha.isHpTic() ? cha.hpTic() : 0;
int tic_mp = cha.isMpTic() ? cha.mpTic() : 0;
// 사용자일때 확인하기.
if(cha instanceof PcInstance){
// 인벤토리 무게오바일때
if(cha.getInventory()!=null && cha.getInventory().isWeightPercent(50)==false){
// 여관맵이라면 피 차게해야됨.
// 엑조틱 바이탈라이즈 시전중일때 차게 해야됨.
// 여관맵이 아닐때.
if(!InnController.isInnMap(cha) && !cha.isBuffExoticVitalize() && !cha.isBuffAdditionalFire()) {
tic_hp = tic_mp = 0;
// 요정족 망토를 착용중이라면 피차게 해야됨.
item = cha.getInventory().getSlot(Lineage.SLOT_CLOAK);
if( item!=null && item instanceof ElvenCloak )
tic_hp = 1;
}
}
try {
//자동물약
if(cha.getIsAutoPotion() && cha.getHpPercent() < cha.getAutoPotionPercent() && cha.getInventory()!=null) {
ItemInstance ii = cha.getInventory().findDbNameId(1253);
if(ii != null&& ii.isClick((PcInstance) o)) {
ii.toClick(cha, null);
}
}
}catch(Exception e) {
e.printStackTrace();
}
}
// 버서커상태 무시.
if(o.isBuffBerserks())
tic_hp = tic_mp = 0;
// 틱 처리.
if(tic_hp>0 && cha.getTotalHp()!=cha.getNowHp())
cha.setNowHp(cha.getNowHp() + tic_hp);
if(tic_mp>0 && cha.getTotalMp()!=cha.getNowMp())
cha.setNowMp(cha.getNowMp() + tic_mp);
}
}
} catch (Exception e) {
lineage.share.System.println("자연회복 처리.");
lineage.share.System.println(" : "+o.toString());
lineage.share.System.println(e);
}
// 주기적으로 호출에 사용.
try {
o.toTimer(time);
} catch (Exception e) {
lineage.share.System.println("주기적으로 호출에 사용.");
lineage.share.System.println(" : "+o.toString());
lineage.share.System.println(e);
}
}
}
2020.07.05 12:13
2020.07.25 16:09
좋은자료 감사합니다
2020.08.20 21:58
되긴할까요 이게 ㅎㅎ??
2020.09.22 09:55
좋은자료 감사합니다!
2021.06.01 20:21
대단하다 ㅎㅎ;
감사합니다.
2022.11.16 10:26
와.. 감사합니다.. ㅎㅎㅎㅎ
2022.11.16 17:32
잘되나요?
팩중에 자동물약 되는거 잇긴한데 오류가 심해서
지금 이 소스가 잘되는건지 궁금합니다.
2023.03.24 22:06
능력자 분들이 많군요 대단합니다~
2023.05.31 10:34
감사합니다~ㅎㅎ
2023.08.28 09:27
헐
2023.11.29 15:04
감사합니다..ㅎ
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | 소스자료는 직접 올려주세요 | 게임존 | 2017.06.06 | 532 |
1040 | 리니지 옛날버젼..이라는데...구동가능여부 확인 부탁드립니다. | 도난차량 | 2024.03.23 | 107 |
1039 | 랭커 | foqwer | 2024.03.14 | 96 |
1038 | 인첸별 | foqwer | 2024.03.14 | 53 |
1037 | 몬스터 앞에 레벨 넣기 [6] | 프렌치좋아 | 2024.03.03 | 227 |
1036 | 3.63 글루딘 Single 용 [3] | 블루블랙3 | 2024.02.28 | 250 |
1035 | Sprite file doesn`t exist 오류 | 하앙비 | 2023.12.22 | 191 |
1034 | 전쟁세율 고정값 15% [2] | 하남궁 | 2023.11.29 | 172 |
1033 | 인형합성사 [1] | Rebecca | 2023.10.09 | 287 |
1032 | 2.0 레벨업시 HP량 올리기 [1] | Rebecca | 2023.10.09 | 371 |
1031 | 전사버전 펫 만렙 변경 | Rebecca | 2023.10.09 | 133 |
1030 | 맵 순간이동 가능 불가능지역 설정하기 | Rebecca | 2023.10.09 | 186 |
1029 | 트레져박스 업로드입니다. [1] | 린컴충성 | 2023.10.06 | 144 |
1028 | 리마스터 접속기 소스자료 [16] | 홍자놀기 | 2023.09.07 | 1914 |
1027 | 대미지 발동시 범위 질문드립니다 [1] | 나잇따나읻따 | 2023.05.21 | 261 |
1026 | 리니지 리마스터 몹 스폰수 어디서 줄일 수 있나요? [4] | 001001 | 2023.04.25 | 662 |
1025 | 전사팩 로봇가능 | 노력하자 | 2023.03.16 | 1018 |
1024 | 2.7 자동 물약 소스 [3] | 퍽퍽띠 | 2022.11.17 | 1101 |
1023 | 2.0 자동칼질소스 (클래스 파일에서 빼왔습니다) [3] | drumlinek | 2022.11.05 | 827 |
1022 | npc가 인겜에서 채팅으로 말하기 [1] | 하늘마음 | 2022.10.06 | 284 |
1021 | 유저 아이피보는 소스 [1] | 캐빈N.01 | 2020.12.15 | 607 |
1020 | 인공지능 [4] | 캐빈N.01 | 2020.12.15 | 1059 |
1019 | 아데나가 19억이 되면 자동으로 1억으로 금괴로 바꾸기 [5] | 강우리 | 2020.12.11 | 927 |
1018 | 린올기반 휘장 각반 견갑 장비인식 안되는거 수정함 [1] | 신화서버 | 2020.11.16 | 276 |
1017 | 방어구 인챈트별 피 증가 소스 [5] | LGTwins | 2020.09.11 | 659 |
1016 | 장신구 옵션 변경 [2] | LGTwins | 2020.08.30 | 704 |
» | 자동물약 [11] | legena | 2020.07.04 | 1999 |
1014 | 리마스터팩 스냅퍼 개방 레벨설정 본섭화 수정(몽양님 요청) [4] | jstory | 2020.06.12 | 738 |
1013 | 리마스터팩 룬마력제거 검사 적용안대는 부분 수정 [3] | jstory | 2020.06.09 | 266 |
1012 | 리마스터팩 쓸모없는 아이템 활용 [3] | jstory | 2020.06.09 | 687 |
1011 | 리마스터팩 요정 소울 엠피 수정 [2] | jstory | 2020.06.09 | 390 |
1010 | 리마스터팩 자동공지시간에 버프주기 [3] | jstory | 2020.06.09 | 381 |
1009 | 리마스터팩 유저커맨드에 던전초기화 추가 | jstory | 2020.05.22 | 346 |
1008 | 리마스터팩 기사단의 주화 드랍 [1] | jstory | 2020.05.22 | 377 |
1007 | 로테이션 엔피씨 생성 소스 [1] | 하날따라 | 2020.05.12 | 528 |
1006 | 신규캐릭생성시 아이템지급관련.. [1] | 박지미 | 2020.03.05 | 1012 |
1005 | 유저 전체 소환 | 주혁이 | 2020.02.26 | 456 |
1004 | 보스몹 리스폰 시 멘트 띄우기 [3] | 주혁이 | 2020.02.26 | 615 |
1003 | 운영자 채팅파티 초대금지 [2] | 뜨아 | 2020.01.22 | 282 |
1002 | 변신시 이펙넣기 [1] | 뜨아 | 2020.01.22 | 945 |
1001 | 스핵방어소스 [1] | 뜨아 | 2020.01.22 | 787 |
1000 | 스트라이커게일 실시간소스 | 프리린2고 | 2020.01.14 | 387 |
999 | 파워그립시간 본섭화 소스 | 프리린2고 | 2020.01.14 | 218 |
998 | 기란던전 야간에 텔 [1] | 코더서버 | 2020.01.14 | 363 |
997 | 운영자 투명 소스 | 우시기 | 2020.01.03 | 655 |
996 | 나비켓 db 각 테이블 설명 [5] | 베르니니 | 2019.12.20 | 3066 |
995 | HP 영구적 올리는 물약 [4] | 스크래치 | 2019.12.13 | 823 |
994 | 특정맵 경험치 추가하기 [2] | 스크래치 | 2019.12.13 | 562 |
993 | NPC에게 호칭 달아주기 [1] | 린지뽕뽕 | 2019.11.20 | 527 |
992 | 성혈만 사용할수 있는 주문서 소스 만들기 | 린지뽕뽕 | 2019.11.16 | 371 |
991 | 아지트 지급하기 명령어 만들기 | 린지뽕뽕 | 2019.11.16 | 294 |
자동칼질은없나요?