클레스 변환 물약 만들기
프리서버 오픈소스 리니지 클레스 변환 물약 만들기
보라색 = 경로&파일
초록색 = 검색
빨간색 = 추가
주황색 = 추가수정
l1j.server.server.model.Instance.L1PcInstance.java
public void addBaseStr(byte i) { //검색후 윗줄에 추가
/////////////////////////////////////////////////클레스전환 물약 소스추가
public void setBaseStr(byte i) {
_baseStr = i;
}
/////////////////////////////////////////////////클레스전환 물약 소스추가
public void addBaseCon(byte i) { //검색후 윗줄에 추가
/////////////////////////////////////////////////클레스전환 물약 소스추가
public void setBaseCon(byte i) {
_baseCon = i;
}
/////////////////////////////////////////////////클레스전환 물약 소스추가
public void addBaseDex(byte i) { //검색후 윗줄에 추가
/////////////////////////////////////////////////클레스전환 물약 소스추가
public void setBaseDex(byte i) {
_baseDex = i;
}
/////////////////////////////////////////////////클레스전환 물약 소스추가
public void addBaseCha(byte i) { //검색후 윗줄에 추가
/////////////////////////////////////////////////클레스전환 물약 소스추가
public void setBaseCha(byte i) {
_baseCha = i;
}
/////////////////////////////////////////////////클레스전환 물약 소스추가
public void addBaseInt(byte i) { //검색후 윗줄에 추가
/////////////////////////////////////////////////클레스전환 물약 소스추가
public void setBaseInt(byte i) {
_baseInt = i;
}
/////////////////////////////////////////////////클레스전환 물약 소스추가
public void addBaseWis(byte i) { //검색후 윗줄에 추가
/////////////////////////////////////////////////클레스전환 물약 소스추가
public void setBaseWis(byte i) {
_baseWis = i;
}
/////////////////////////////////////////////////클레스전환 물약 소스추가
l1j.server.server.clientpackets.C_RequestItemUSe.java
임포트
import l1j.server.server.serverpackets.S_DelSkill; //클레스전환 물약
else if (itemId == L1ItemId.POTION_OF_HEALING //검색후 상단에 추가
//////////////////////////////////////////////////////////클레스전환 물약 소스추가
//////////////////////////////////////////////////////////기사로 전환 추가시작
} else if (itemId == 55034) {
if (!pc.isCrown() && !pc.isKnight()) {
ChangeClass(pc , itemId);
if (pc.get_sex() == 0) {
pc.setClassId(61);
pc.setType(1);
pc.setLevel(1);
pc.setExp(0);
pc.addBaseMaxHp((short) (-3000));
pc.addBaseMaxMp((short) (-3000));
pc.setCurrentHp(1);
pc.setCurrentMp(1);
pc.setBonusStats(0);
pc.setElixirStats(0);
pc.setElfAttr(0);
pc.setBaseStr((byte)16); //콘기사로...
pc.setBaseDex((byte)12);
pc.setBaseCon((byte)18);
pc.setBaseWis((byte)9);
pc.setBaseCha((byte)12);
pc.setBaseInt((byte)8);
pc.refresh();
pc.getInventory().removeItem(l1iteminstance, 1);
pc.sendPackets(new S_SystemMessage("기사클레스로 전환하셨습니다..적용하시려면 리스를 해주세요"));
pc.save();
L1PolyMorph.doPoly(pc, 947, 10); //주석||삭제
pc.death(null); //주석||삭제
ChangeClass1(pc);
ChangeClass2(pc);
} else {
pc.setClassId(48);
pc.setType(1);
pc.setLevel(1);
pc.setExp(0);
pc.addBaseMaxHp((short) (-3000));
pc.addBaseMaxMp((short) (-3000));
pc.setBonusStats(0);
pc.setElixirStats(0);
pc.setElfAttr(0);
pc.setBaseStr((byte)16); //콘기사로...
pc.setBaseDex((byte)12);
pc.setBaseCon((byte)18);
pc.setBaseWis((byte)9);
pc.setBaseCha((byte)12);
pc.setBaseInt((byte)8);
pc.refresh();
pc.getInventory().removeItem(l1iteminstance, 1);
pc.sendPackets(new S_SystemMessage("기사클레스로 전환하셨습니다..적용하시려면 리스를 해주세요"));
pc.save();
L1PolyMorph.doPoly(pc, 947, 10); //주석||삭제
pc.death(null); //주석||삭제
ChangeClass1(pc);
ChangeClass2(pc);
}
} else {
pc.sendPackets(new S_SystemMessage("군주클레스와 기사클레스는 사용할수 없습니다."));
}
//////////////////////////////////////////////////////////기사로 전환 추가끝
/////////////////////////////////////////////////////////요정으로 전환 시작
} else if (itemId == 55035) {
L1ItemInstance armor = null;
if (!pc.isCrown() && !pc.isElf()) {
ChangeClass(pc , itemId);
if (pc.get_sex() == 0) {
pc.setClassId(138);
pc.setType(2);
pc.setLevel(1);
pc.setExp(0);
pc.addBaseMaxHp((short) (-3000));
pc.addBaseMaxMp((short) (-3000));
pc.setCurrentHp(1);
pc.setCurrentMp(1);
pc.setBonusStats(0);
pc.setElixirStats(0);
pc.setElfAttr(0);
pc.setBaseStr((byte)12); //콘요정로...
pc.setBaseDex((byte)12);
pc.setBaseCon((byte)18);
pc.setBaseWis((byte)12);
pc.setBaseCha((byte)9);
pc.setBaseInt((byte)12);
pc.refresh();
pc.getInventory().removeItem(l1iteminstance, 1);
pc.sendPackets(new S_SystemMessage("요정클레스로 전환하셨습니다..적용하시려면 리스를 해주세요"));
pc.save();
L1PolyMorph.doPoly(pc, 947, 10); //주석||삭제
pc.death(null); //주석||삭제
ChangeClass1(pc);
ChangeClass2(pc);
} else {
pc.setClassId(37);
pc.setType(2);
pc.setLevel(1);
pc.setExp(0);
pc.addBaseMaxHp((short) (-3000));
pc.addBaseMaxMp((short) (-3000));
pc.setBonusStats(0);
pc.setElixirStats(0);
pc.setElfAttr(0);
pc.setBaseStr((byte)12); //콘요정으로...
pc.setBaseDex((byte)12);
pc.setBaseCon((byte)18);
pc.setBaseWis((byte)12);
pc.setBaseCha((byte)9);
pc.setBaseInt((byte)12);
pc.refresh();
pc.getInventory().removeItem(l1iteminstance, 1);
pc.sendPackets(new S_SystemMessage("요정클레스로 전환하셨습니다..적용하시려면 리스를 해주세요"));
pc.save();
L1PolyMorph.doPoly(pc, 947, 10); //주석||삭제
pc.death(null); //주석||삭제
ChangeClass1(pc);
ChangeClass2(pc);
}
} else {
pc.sendPackets(new S_SystemMessage("군주클레스와 요정클레스는 사용할수 없습니다."));
}
/////////////////////////////////////////////////////////요정으로 전환 물약
/////////////////////////////////////////////////////////마법사로 전환 물약
} else if (itemId == 55036) {
L1ItemInstance armor = null;
if (!pc.isCrown() && !pc.isWizard()) {
ChangeClass(pc , itemId);
if (pc.get_sex() == 0) {
pc.setClassId(734);
pc.setType(3);
pc.setLevel(1);
pc.setExp(0);
pc.addBaseMaxHp((short) (-3000));
pc.addBaseMaxMp((short) (-3000));
pc.setCurrentHp(1);
pc.setCurrentMp(1);
pc.setBonusStats(0);
pc.setElixirStats(0);
pc.setElfAttr(0);
pc.setBaseStr((byte)8); //콘위즈법사로...
pc.setBaseDex((byte)7);
pc.setBaseCon((byte)18);
pc.setBaseWis((byte)18);
pc.setBaseCha((byte)8);
pc.setBaseInt((byte)16);
pc.refresh();
pc.getInventory().removeItem(l1iteminstance, 1);
pc.sendPackets(new S_SystemMessage("마법사클레스로 전환하셨습니다..적용하시려면 리스를 해주세요"));
pc.save();
L1PolyMorph.doPoly(pc, 947, 10); //주석||삭제
pc.death(null); //주석||삭제
ChangeClass1(pc);
ChangeClass2(pc);
} else {
pc.setClassId(1186);
pc.setType(3);
pc.setLevel(1);
pc.setExp(0);
pc.addBaseMaxHp((short) (-3000));
pc.addBaseMaxMp((short) (-3000));
pc.setBonusStats(0);
pc.setElixirStats(0);
pc.setElfAttr(0);
pc.setBaseStr((byte)8); //콘위즈법사로...
pc.setBaseDex((byte)7);
pc.setBaseCon((byte)18);
pc.setBaseWis((byte)18);
pc.setBaseCha((byte)8);
pc.setBaseInt((byte)16);
pc.refresh();
pc.getInventory().removeItem(l1iteminstance, 1);
pc.sendPackets(new S_SystemMessage("마법사클레스로 전환하셨습니다..적용하시려면 리스를 해주세요"));
pc.save();
L1PolyMorph.doPoly(pc, 947, 10); //주석||삭제
pc.death(null); //주석||삭제
ChangeClass1(pc);
ChangeClass2(pc);
}
} else {
pc.sendPackets(new S_SystemMessage("군주클레스와 마법사클레스는 사용할수 없습니다."));
}
/////////////////////////////////////////////////////////마법사로 전환 끝
/////////////////////////////////////////////////////////다크엘프로 전환 시작
} else if (itemId == 55037) {
L1ItemInstance armor = null;
if (!pc.isCrown() && !pc.isDarkelf()) {
ChangeClass(pc , itemId);
if (pc.get_sex() == 0) {
pc.setClassId(2786);
pc.setType(4);
pc.setLevel(1);
pc.setExp(0);
pc.addBaseMaxHp((short) (-3000));
pc.addBaseMaxMp((short) (-3000));
pc.setCurrentHp(1);
pc.setCurrentMp(1);
pc.setBonusStats(0);
pc.setElixirStats(0);
pc.setElfAttr(0);
pc.setBaseStr((byte)12); //콘다엘로...
pc.setBaseDex((byte)15);
pc.setBaseCon((byte)18);
pc.setBaseWis((byte)10);
pc.setBaseCha((byte)9);
pc.setBaseInt((byte)11);
pc.refresh();
pc.getInventory().removeItem(l1iteminstance, 1);
pc.sendPackets(new S_SystemMessage("다크엘프 클레스로 전환하셨습니다..적용하시려면 리스를 해주세요"));
pc.save();
L1PolyMorph.doPoly(pc, 947, 10); //주석||삭제
pc.death(null); //주석||삭제
ChangeClass1(pc);
ChangeClass2(pc);
} else {
pc.setClassId(2796);
pc.setType(4);
pc.setLevel(1);
pc.setExp(0);
pc.addBaseMaxHp((short) (-3000));
pc.addBaseMaxMp((short) (-3000));
pc.setBonusStats(0);
pc.setElixirStats(0);
pc.setElfAttr(0);
pc.setBaseStr((byte)12); //콘다엘로...
pc.setBaseDex((byte)15);
pc.setBaseCon((byte)18);
pc.setBaseWis((byte)10);
pc.setBaseCha((byte)9);
pc.setBaseInt((byte)11);
pc.refresh();
pc.getInventory().removeItem(l1iteminstance, 1);
pc.sendPackets(new S_SystemMessage("다크엘프 클레스로 전환하셨습니다..적용하시려면 리스를 해주세요"));
pc.save();
L1PolyMorph.doPoly(pc, 947, 10); //주석||삭제
pc.death(null); //주석||삭제
ChangeClass1(pc);
ChangeClass2(pc);
}
} else {
pc.sendPackets(new S_SystemMessage("군주클레스와 다크엘프 클레스는 사용할수 없습니다."));
}
/////////////////////////////////////////////////////////다크엘프로 전환 끝
//////////////////////////////////////////////////////////클레스전환 물약 소스추가
private void useBravePotion(L1PcInstance pc, int item_id) { //검색후 윗줄에 추가
private void ChangeClass2(L1PcInstance pc){
L1ItemInstance item = null;
int[] count = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
for(int i : count){
item = pc.getInventory().getItemEquipped(1 , i);
if(item != null){
pc.getInventory().setEquipped(item, false);
}
}
}
private void ChangeClass1(L1PcInstance pc){
L1ItemInstance item = null;
int[] count = {1,2,3,4,5,6,7,8,9,10,11,12,13};
for (int i : count) {
if( i == 1){
item = pc.getInventory().getItemEquipped(2, 1);
if(item !=null){
pc.getInventory().setEquipped(item, false);
}
}else if(i == 2){
item = pc.getInventory().getItemEquipped(2, 2);
if(item !=null){
pc.getInventory().setEquipped(item, false);
}
}else if(i == 3){
item = pc.getInventory().getItemEquipped(2, 3);
if(item !=null){
pc.getInventory().setEquipped(item, false);
}
}else if(i == 4){
item = pc.getInventory().getItemEquipped(2, 4);
if(item !=null){
pc.getInventory().setEquipped(item, false);
}
}else if(i == 5){
item = pc.getInventory().getItemEquipped(2, 5);
if(item !=null){
pc.getInventory().setEquipped(item, false);
}
}else if(i == 6){
item = pc.getInventory().getItemEquipped(2, 6);
if(item !=null){
pc.getInventory().setEquipped(item, false);
}
}else if(i == 7){
item = pc.getInventory().getItemEquipped(2, 7);
if(item !=null){
pc.getInventory().setEquipped(item, false);
}
}else if(i == 8){
item = pc.getInventory().getItemEquipped(2, 8);
if(item !=null){
pc.getInventory().setEquipped(item, false);
}
}else if(i == 9){
item = pc.getInventory().getItemEquipped(2, 9);
if(item !=null){
pc.getInventory().setEquipped(item, false);
}
}else if(i == 10){
item = pc.getInventory().getItemEquipped(2, 9);
if(item !=null){
pc.getInventory().setEquipped(item, false);
}
}else if(i == 11){
item = pc.getInventory().getItemEquipped(2, 10);
if(item !=null){
pc.getInventory().setEquipped(item, false);
}
}else if(i == 12){
item = pc.getInventory().getItemEquipped(2, 11);
if(item !=null){
pc.getInventory().setEquipped(item, false);
}
}else if(i == 13){
item = pc.getInventory().getItemEquipped(2, 12);
if(item !=null){
pc.getInventory().setEquipped(item, false);
}
}else{
item = pc.getInventory().getItemEquipped(2, i);
if(item !=null){
pc.getInventory().setEquipped(item, false);
}
}
}
}
//////////////////////////////////////////////////////////클레스전환 물약 소스추가
private void ChangeClass(L1PcInstance pc, int item_id) {
String skill_name = "";
int cnt = 0;
int skill_id = 0;
int object_id = pc.getId();
pc.sendPackets(new S_SkillSound(object_id, '\343'));
pc.broadcastPacket(new S_SkillSound(object_id, '\343'));
if (pc.isWizard()) {
for (cnt = 1; cnt <= 80; cnt++) {
L1Skills l1skills = SkillsTable.getInstance().getTemplate(cnt); // 스킬 정보를 취득
skill_name = l1skills.getName();
skill_id = l1skills.getSkillId();
SkillsTable.getInstance().spellLost(object_id,skill_id);
pc.sendPackets(new S_DelSkill(255, 255, 127, 255, 255, 255, 255, 255, 255, 255,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
}
} else if (pc.isKnight()) {
for (cnt = 1; cnt <= 8; cnt++) {
L1Skills l1skills = SkillsTable.getInstance().getTemplate(cnt); // 스킬 정보를 취득
skill_name = l1skills.getName();
skill_id = l1skills.getSkillId();
SkillsTable.getInstance().spellLost(object_id, skill_id);
pc.sendPackets(new S_DelSkill(255, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
}
for (cnt = 87; cnt <= 91; cnt++) {
L1Skills l1skills = SkillsTable.getInstance().getTemplate(cnt); // 스킬 정보를 취득
skill_name = l1skills.getName();
skill_id = l1skills.getSkillId();
SkillsTable.getInstance().spellLost(object_id, skill_id);
pc.sendPackets(new S_DelSkill(0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
192, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
}
} else if (pc.isElf()) {
for (cnt = 1; cnt <= 48; cnt++) {
L1Skills l1skills = SkillsTable.getInstance().getTemplate(cnt); // 스킬 정보를 취득
skill_name = l1skills.getName();
skill_id = l1skills.getSkillId();
SkillsTable.getInstance().spellLost(object_id, skill_id);
pc.sendPackets(new S_DelSkill(255, 255, 127, 255, 255, 255, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
}
for (cnt = 129; cnt <= 176; cnt++) {
L1Skills l1skills = SkillsTable.getInstance().getTemplate(cnt); // 스킬 정보를 취득
skill_name = l1skills.getName();
skill_id = l1skills.getSkillId();
SkillsTable.getInstance().spellLost(object_id, skill_id);
pc.sendPackets(new S_DelSkill(0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 3, 255, 255, 255, 255, 0, 0));
}
} else if (pc.isDarkelf()) {
for (cnt = 1; cnt <= 16; cnt++) {
L1Skills l1skills = SkillsTable.getInstance().getTemplate(cnt); // 스킬 정보를 취득
skill_name = l1skills.getName();
skill_id = l1skills.getSkillId();
SkillsTable.getInstance().spellLost(object_id, skill_id);
pc.sendPackets(new S_DelSkill(255, 255, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
}
for (cnt = 97; cnt <= 111; cnt++) {
L1Skills l1skills = SkillsTable.getInstance().getTemplate(cnt); // 스킬 정보를 취득
skill_name = l1skills.getName();
skill_id = l1skills.getSkillId();
SkillsTable.getInstance().spellLost(object_id,skill_id);
pc.sendPackets(new S_DelSkill(0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 255, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
}
}
}

찰떡01 님의 최근 댓글
ㄳ 2023 06.17 ㄱㅅ 2020 12.19 클라 공유 부탁드립니다. 2020 12.19 ㄱㅅ 2020 11.26 ㄱㅅ 2020 11.05