[펌]코마버프추가
L1Character.java 579
// 코마 A
private boolean comaA;
private int comaAT;
public int get_comaAT(){
return comaAT;
}public void set_comaAT(int comaAT){
this.comaAT = comaAT;
}public boolean get_comaA(){
return comaA;
}public void start_comaA(int time){
// 중복방지
if(comaA) end_comaA();
comaA = true;
comaAT = time;
if(this instanceof L1PcInstance) {
L1PcInstance cha = (L1PcInstance)this;
// 버프 효과: AC-8, 공격 성공+5, STR+5, DEX+5, CON+1, 주술력+1, 경험치+20%
// v v v v v
cha.set_str(cha.get_str() + 5);
cha.set_dex(cha.get_dex() + 5);
cha.set_con(cha.get_con() + 1);
cha.set_ac(cha.get_ac() - 8);
cha.AllsendPackets(cha.bph().get_CharAction().S_Effect(cha.get_objectId(), 7382), true);
cha.sendPackets(cha.bph().get_OwnCharStatus().S_OwnCharStatus(cha), true);
cha.sendPackets(cha.bph().get_OwnCharStatus().S_Status(cha, 2), true);
}
skillthread.getInstance().comaAList_add(this); // <----- 우선 이부분을 주석처리 하신후 컴파일 하시고요.
}public void end_comaA(){
if(comaA){
comaA= false;
comaAT = 0;
if(this instanceof L1PcInstance) {
L1PcInstance cha = (L1PcInstance)this;
cha.set_str(cha.get_str() - 5);
cha.set_dex(cha.get_dex() - 5);
cha.set_con(cha.get_con() - 1);
cha.set_ac(cha.get_ac() + 8);
cha.sendPackets(cha.bph().get_OwnCharStatus().S_OwnCharStatus(cha), true);
cha.sendPackets(cha.bph().get_OwnCharStatus().S_Status(cha, 2), true);
}
}
}
// 코마 B
private boolean comaB;
private int comaBT;
public int get_comaBT(){
return comaBT;
}public void set_comaBT(int comaBT){
this.comaBT = comaBT;
}public boolean get_comaB(){
return comaB;
}public void start_comaB(int time){
// 중복방지
if(comaB) end_comaB();
comaB = true;
comaBT = time;
if(this instanceof L1PcInstance) {
L1PcInstance cha = (L1PcInstance)this;
// 버프 효과: AC-8, 공격 성공+5, STR+5, DEX+5, CON+1, 주술력+1, 경험치+20%
// v v v v v
cha.set_str(cha.get_str() + 5);
cha.set_dex(cha.get_dex() + 5);
cha.set_con(cha.get_con() + 1);
cha.set_ac(cha.get_ac() - 8);
cha.AllsendPackets(cha.bph().get_CharAction().S_Effect(cha.get_objectId(), 7383), true);
cha.sendPackets(cha.bph().get_OwnCharStatus().S_OwnCharStatus(cha), true);
cha.sendPackets(cha.bph().get_OwnCharStatus().S_Status(cha, 2), true);
}
skillthread.getInstance().comaBList_add(this); // <----- 이부분을 주석처리 하신후 컴파일 하시고요.
}public void end_comaB(){
if(comaB){
comaB= false;
comaBT = 0;
if(this instanceof L1PcInstance) {
L1PcInstance cha = (L1PcInstance)this;
cha.set_str(cha.get_str() - 5);
cha.set_dex(cha.get_dex() - 5);
cha.set_con(cha.get_con() - 1);
cha.set_ac(cha.get_ac() + 8);
cha.sendPackets(cha.bph().get_OwnCharStatus().S_OwnCharStatus(cha), true);
cha.sendPackets(cha.bph().get_OwnCharStatus().S_Status(cha, 2), true);
}
}
}
L1Character.java 830
if(cha.get_comaA() && cha.get_comaAT() >= 0) cha.end_comaA();
if(cha.get_comaB() && cha.get_comaBT() >= 0) cha.end_comaB();
컴파일 하신후 먼저 class 파일을 넣어줍니다.
그런후 ~
skillthread.java 127
// 코마 A
private ArrayList comaAList = new ArrayList();
public void comaAList_add(L1Character cha) {
synchronized(comaAList) {
if(!comaAList.contains(cha)) comaAList.add(cha);
}
}public void comaAList_remove(L1Character cha) {
synchronized(comaAList) {
if(comaAList.contains(cha)) comaAList.remove(cha);
}
}public L1Character[] comaAList_list() {
synchronized(comaAList) {
return (L1Character[]) comaAList.toArray(new L1Character[comaAList.size()]);
}
}public void comaAt_timer(){
L1Character[] chas = comaAList_list();
for(int i=0 ; i< chas.length ; i++){
try{
if(chas[i].get_delete() || !chas[i].get_comaA() || chas[i].get_comaAT() < 0) comaAList_remove(chas[i]);
else if(chas[i].get_comaAT() == 0) {
comaAList_remove(chas[i]);
chas[i].end_comaA();
} else chas[i].set_comaAT(chas[i].get_comaAT() - 1);
}catch (Exception e){}
}
}
// 코마 B
private ArrayList comaBList = new ArrayList();
public void comaBList_add(L1Character cha) {
synchronized(comaBList) {
if(!comaBList.contains(cha)) comaBList.add(cha);
}
}public void comaBList_remove(L1Character cha) {
synchronized(comaBList) {
if(comaBList.contains(cha)) comaBList.remove(cha);
}
}public L1Character[] comaBList_list() {
synchronized(comaBList) {
return (L1Character[]) comaBList.toArray(new L1Character[comaBList.size()]);
}
}public void comaBt_timer(){
L1Character[] chas = comaBList_list();
for(int i=0 ; i< chas.length ; i++){
try{
if(chas[i].get_delete() || !chas[i].get_comaB() || chas[i].get_comaBT() < 0) comaBList_remove(chas[i]);
else if(chas[i].get_comaBT() == 0) {
comaBList_remove(chas[i]);
chas[i].end_comaB();
} else chas[i].set_comaBT(chas[i].get_comaBT() - 1);
}catch (Exception e){}
}
}
ClientThread.java 885 마안있는 쪽에 적당히 추가 하시면 됩니다.
test = cha.get_comaA() + ";"; // 코마A
out.write(test.getBytes());
test = (int)((cha.get_comaAT() + 8) / 16) + ";"; // 코마A 시간
out.write(test.getBytes());
test = cha.get_comaB() + ";"; // 코마B 종류
out.write(test.getBytes());
test = (int)((cha.get_comaBT() + 8) / 16) + ";"; // 코마B 시간
out.write(test.getBytes());
L1NpcInstance.java 3184 크레이버프 밑에쪽으로 하심됩니다.
}else if(get_npc().get_npcId() == 200004){ // 코마
// 3개q
if(action.equals("A")){
int i = 0;
ArrayList n = new ArrayList();
//10046
if(cha.get_cil().itemCK(1677,0,1) != null){
n.add(1677);
i++;
}
if(cha.get_cil().itemCK(1678,0,1) != null){
n.add(1678);
i++;
}
if(cha.get_cil().itemCK(1679,0,1) != null){
n.add(1679);
i++;
}
if(cha.get_cil().itemCK(1680,0,1) != null){
n.add(1680);
i++;
}
if(cha.get_cil().itemCK(1681,0,1) != null){
n.add(1681);
i++;
}
if(i >= 3){
// 이미 받았다면...
if(cha.get_comaA() || cha.get_comaB()){
cha.sendPackets(cha.bph().get_ChatPacket().S_ChatPacket(cha, "이미 사용중입니다.", 20, 1), true);
cha.sendPackets(cha.bph().get_NPCTalk().S_NPCTalkReturn(this, ""), true);
}else{
int k = 0;
// 아이템 삭제후.
for(int j = 0; j < 3; j++){
int rnd = (int)(Math.random() * n.size());
int oid = n.remove(rnd);
if(cha.get_cil().itemConsume(cha, oid, 0, 0, 1, "comaA Buff")) k++;
}
if(k >= 3){
cha.start_comaA(3600);
cha.sendPackets(cha.bph().get_NPCTalk().S_NPCTalkReturn(this, ""), true);
}else{
cha.sendPackets(cha.bph().get_NPCTalk().S_NPCTalkReturn(this, "coma3"), true);
}
}
}else{
cha.sendPackets(cha.bph().get_NPCTalk().S_NPCTalkReturn(this, "coma3"), true);
}
// 5개
}else if(action.equals("B")){
//10046
if(cha.get_cil().itemCK(1677,0,1) != null && cha.get_cil().itemCK(1678,0,1) != null &&
cha.get_cil().itemCK(1679,0,1) != null && cha.get_cil().itemCK(1680,0,1) != null && cha.get_cil().itemCK(1681,0,1) != null){
// 이미 받았다면...
if(cha.get_comaA() || cha.get_comaB()){
cha.sendPackets(cha.bph().get_ChatPacket().S_ChatPacket(cha, "이미 사용중입니다.", 20, 1), true);
cha.sendPackets(cha.bph().get_NPCTalk().S_NPCTalkReturn(this, ""), true);
}else{
// 아이템 삭제후.
if(cha.get_cil().itemConsume(cha, 1677, 0, 0, 1, "comaB Buff") && cha.get_cil().itemConsume(cha, 1678, 0, 0, 1, "comaB Buff") &&
cha.get_cil().itemConsume(cha, 1679, 0, 0, 1, "comaB Buff") && cha.get_cil().itemConsume(cha, 1680, 0, 0, 1, "comaB Buff")
&& cha.get_cil().itemConsume(cha, 1681, 0, 0, 1, "comaB Buff")){
cha.start_comaB(7200);
cha.sendPackets(cha.bph().get_NPCTalk().S_NPCTalkReturn(this, ""), true);
}else{
cha.sendPackets(cha.bph().get_NPCTalk().S_NPCTalkReturn(this, "coma3"), true);
}
}
}else{
cha.sendPackets(cha.bph().get_NPCTalk().S_NPCTalkReturn(this, "coma3"), true);
}
}
}
나비켓
npcs
200004 L1Npc 코마 $7452 1768 0 0 0 0 0 1 1 0 0 0 0 small 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 8 0 0 0 0
npctalk
200004 0 0 0 0 0 coma1 0 0 0
옆동네 야메루님 자료

안약 님의 최근 댓글
천화님 두 명이서만 로봇켜고 놀려고 하는데 그래도 i5에 램8GB 정도로 사양 되어야 할까요? 2016 11.13