close_btn
로그인, 회원가입후 더 많은 혜택을 누리세요 로그인 회원가입 닫기

[아이온] 교환 명령어

2017.01.23 23:08

나즈샤&나즈빈 조회 수:21

package admincommands;

import gameserver.model.gameobjects.player.Player;
import gameserver.network.aion.serverpackets.SM_SYSTEM_MESSAGE;
import gameserver.services.ItemService;
import gameserver.utils.PacketSendUtility;
import gameserver.utils.chathandlers.AdminCommand;

import org.apache.log4j.Logger;

 

public class Exchange extends AdminCommand
{
 private static final Logger log = Logger.getLogger(Exchange.class);

 public Exchange()
 {
  super("교환");
 }

 @Override
 public void executeCommand(Player admin, String[] params)
 {
  int apValue;
  int numValue;
  int itemId;

  if(params == null || params.length < 2)
  {
   PacketSendUtility.sendMessage(admin, "명령어 구조 : //교환 [백금공/금공/은공/키나/어포] <갯수>");
   return;
  }

  try
  {
   numValue = Integer.parseInt(params[1]);
  }
  catch(NumberFormatException e)
  {
   PacketSendUtility.sendMessage(admin, "갯수 입력이 잘못되었습니다.\n오류유도로 로그에 기록됩니다.");
   log.info("[ITEM][교환오류] 플레이어 " + admin.getName() + " : 교환수량 입력오류.");
   return;
  }

  if(numValue < 1)
  {
   PacketSendUtility.sendMessage(admin, "갯수 입력이 잘못되었습니다.\n오류유도로 로그에 기록됩니다.");
   log.info("[ITEM][교환오류] 플레이어 " + admin.getName() + " : 교환수량 입력오류.");
   return;
  }

  if(params[0].equals("백금공"))
  {
   apValue = 27000 * numValue;
   itemId = 186000096;
  }

  else if(params[0].equals("금공"))
  {
   apValue = 13500 * numValue;
   itemId = 186000030;
  }

  else if(params[0].equals("은공"))
  {
   apValue = 4500 * numValue;
   itemId = 186000031;
  }

  else if(params[0].equals("키나"))
  {
   if(numValue < 10000 || numValue > 2000000000)
   {
    PacketSendUtility.sendMessage(admin, "키나교환시에는 최소 10,000 이상 입력하셔야 합니다.");
    return;
   }
   apValue = (int) Math.floor(numValue * 0.0001f);
   itemId = 182400001;
  }

  else if(params[0].equals("어포"))
  {
   if(numValue < 54000 || numValue > 2000000000)
   {
    PacketSendUtility.sendMessage(admin, "어포 교환시에는 최소 54,000 이상 입력하셔야 합니다.");
    return;
   }
   final int itemCount = Math.round(numValue / 54000);
   final int playerAP = admin.getAbyssRank().getAp();
   itemId = 186000096;

   if(playerAP < itemCount * 54000 || itemCount < 1)
   {
    PacketSendUtility.sendMessage(admin, "어비스 포인트가 부족합니다.");
    log.info("[ITEM][교환오류] 플레이어 " + admin.getName() + " : 어비스포인트부족 : " + numValue);
    return;
   }
   if(admin.getInventory().isFull())
   {
    PacketSendUtility.sendMessage(admin, "인벤토리 공간이 부족합니다.");
    return;
   }
   admin.getCommonData().addAp(itemCount * 54000 * -1);
   long count = ItemService.addItem(admin, itemId, itemCount);
   if(count == 0)
    PacketSendUtility.sendMessage(admin, "아이템이 추가되었습니다.");
   else
    PacketSendUtility.sendMessage(admin, "아이템을 추가하는데 오류가 발생하였습니다.");
   return;
  }

  else
  {
   PacketSendUtility.sendMessage(admin, "명령어 구조 : //교환 [백금공/금공/은공/키나/어포] <갯수>");
   return;
  }

  if(itemId == 182400001)
  {
   if(numValue > admin.getInventory().getKinahItem().getItemCount())
   {
    PacketSendUtility.sendPacket(admin, SM_SYSTEM_MESSAGE.NOT_ENOUGH_KINAH(numValue));
    return;
   }
   admin.getInventory().decreaseKinah(numValue);
  }
  else
  {
   if(admin.getInventory().getItemCountByItemId(itemId) < numValue)
   {
    PacketSendUtility.sendMessage(admin, "해당 아이템 수량이 부족합니다.\n오류유도로 로그에 기록됩니다.");
    log.info("[ITEM][교환오류] 플레이어 " + admin.getName() + " : 교환수량부족시도.");
    return;
   }
   admin.getInventory().removeFromBagByItemId(itemId, numValue);
  }
  admin.getCommonData().addAp(apValue);
  PacketSendUtility.sendMessage(admin, "어비스포인트 : " + apValue + "\n교환에 성공하였습니다.");
 }
}

번호 제목 글쓴이 날짜 조회 수
공지 기타공략&팁 공지입니다 (글쓰기전 읽어주세요) [17] 게임존 2018.01.17 1929
1798 [미르의전설2] 절명곡몬스터 [1] file 허무함 2017.01.24 13
1797 [미르의전설2] 우마신전몬스터 [1] file 허무함 2017.01.24 26
1796 [미르의전설2] 석각묘.향석각굴몬스터 [1] file 허무함 2017.01.24 20
1795 [미르의전설2] 비월산몬스터 [1] file 허무함 2017.01.24 8
1794 [미르의전설2] 뱀골폐광.혈독몬스터 [1] file 허무함 2017.01.24 32
1793 [미르의전설2] 반야신전몬스터 [1] file 허무함 2017.01.24 15
1792 [미르의전설2] 반야동굴몬스터 [1] file 허무함 2017.01.24 22
1791 [미르의전설2] 반야도필드몬스터 [1] file 허무함 2017.01.24 10
1790 [미르의전설2] 미석광산몬스터 [1] file 허무함 2017.01.24 29
1789 [미르의전설2] 묵룡혈몬스터 [1] file 허무함 2017.01.24 13
1788 [미르의전설2] 구비천몬스터 [1] file 허무함 2017.01.24 26
1787 [아이온] 마석 슬롯버그(소켓 한개더박히는버그) 체크 나즈샤&나즈빈 2017.01.23 24
1786 [아이온] 자동전직, 자동스킬,자동스티그마 나즈샤&나즈빈 2017.01.23 35
» [아이온] 교환 명령어 나즈샤&나즈빈 2017.01.23 21
1784 [아이온] 한글닉네임 생성법 나즈샤&나즈빈 2017.01.23 28
1783 [아이온] GM명령어 한글화 나즈샤&나즈빈 2017.01.23 86
1782 [아이온] 어비스 포인트 나즈샤&나즈빈 2017.01.23 29
1781 [아이온] 비행불가능지역을 비행가능으로 만들기 나즈샤&나즈빈 2017.01.23 30
1780 [아이온] 아이템 레벨 제한 풀기 [1] 나즈샤&나즈빈 2017.01.23 48
1779 [아이온] 라이트닝 명령어 한글화 나즈샤&나즈빈 2017.01.23 46
1778 [아이온] 신규아이템 만들기 나즈샤&나즈빈 2017.01.23 43
1777 [아이온] 라이트닝 4.0 ~ 4.3 닉네임, 레기온명 한글화 나즈샤&나즈빈 2017.01.23 22
1776 [아이온] 종족변경 나즈샤&나즈빈 2017.01.23 19
1775 [아이온] 외형변경 불가능한 아이템을 외형변경 가능하게 만들기 나즈샤&나즈빈 2017.01.23 14
1774 [php웹] 회원가입 페이지 만들기 나즈샤&나즈빈 2017.01.23 27
1773 [아이온] 구축 기본설명 나즈샤&나즈빈 2017.01.23 171
1772 [아이온] 클라이언트 여러 오류 해결법 나즈샤&나즈빈 2017.01.23 89
1771 아이온 명령어 나즈샤&나즈빈 2017.01.23 81
1770 [미르의전설2] 몽촌필드몬스터 [1] file 허무함 2017.01.23 9
1769 [미르의전설2] 뱀의계곡몬스터 [1] file 허무함 2017.01.23 11
1768 [미르의전설2] 벌레동굴몬스터 [1] file 허무함 2017.01.23 13
1767 [미르의전설2] 오마동굴몬스터 [1] file 허무함 2017.01.23 13
1766 [미르의전설2] 일반필드몹 [1] file 허무함 2017.01.23 11
1765 [미르의전설2] 50레벨 퀘스트 [1] file 허무함 2017.01.23 23
1764 [미르의전설2] 오현세트템 [1] file 허무함 2017.01.23 15
1763 [미르의전설2] 감시자세트템 file 허무함 2017.01.23 25
1762 [미르의전설2] 강화백금세트템 file 허무함 2017.01.23 12
1761 [미르의전설2] 강화연옥세트템 file 허무함 2017.01.23 12
1760 [미르의전설2] 강화홍옥세트템 file 허무함 2017.01.23 11
1759 [미르의전설2] 군도퀘스트 file 허무함 2017.01.23 14
1758 [미르의전설2] 귀인세트템 file 허무함 2017.01.23 3
1757 [미르의전설2] 기본퀘스트-국경마을 file 허무함 2017.01.23 7
1756 [미르의전설2] 기본퀘스트-기륭성.설백현 file 허무함 2017.01.23 3
1755 [미르의전설2] 기본퀘스트-남만 file 허무함 2017.01.23 8
1754 [미르의전설2] 기본퀘스트-도관 file 허무함 2017.01.23 21
1753 [미르의전설2] 기본퀘스트-몽촌현 file 허무함 2017.01.23 9
1752 [미르의전설2] 기본퀘스트-반야도 file 허무함 2017.01.23 24
1751 [미르의전설2] 기본퀘스트-석초마을 file 허무함 2017.01.23 10
1750 [미르의전설2] 기본퀘스트-설원동굴 file 허무함 2017.01.23 16
1749 [미르의전설2] 기본퀘스트-튜토리얼 file 허무함 2017.01.23 12