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

L1NpcInstance.java

 

 private int _npoint;
 public int getNpoint() { return _npoint; }
 public int setNpoint(int i){ return _npoint = i; }
 
    private int _spoint;
 public int getSpoint() { return _spoint; }
 public int setSpoint(int i){ return _spoint = i; }
  
 private int _kpoint;
 public int getKpoint() { return _kpoint; }
 public int setKpoint(int i){ return _kpoint = i; }
   
 private int _ppoint;
 public int getPpoint() { return _ppoint; }
 public int setPpoint(int i){ return _ppoint = i; }

 

L1ScarecrowInstance.java

 

 

package l1j.server.server.model.Instance;

import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Random;

import l1j.server.Config;
import l1j.server.server.datatables.NpcTable;
import l1j.server.server.model.Broadcaster;
import l1j.server.server.model.L1Attack;
import l1j.server.server.model.L1Object;
import l1j.server.server.model.L1World;
import l1j.server.server.model.item.L1ItemId;
import l1j.server.server.serverpackets.S_ChangeHeading;
import l1j.server.server.serverpackets.S_NpcChatPacket;
import l1j.server.server.serverpackets.S_PacketBox;
import l1j.server.server.serverpackets.S_SystemMessage;
import l1j.server.server.templates.L1Npc;
import l1j.server.server.utils.CalcExp;

 

public class L1ScarecrowInstance extends L1NpcInstance {

 private static final long serialVersionUID = 1L;
 
 private static Random _random = new Random(System.nanoTime());

 public L1ScarecrowInstance(L1Npc template) {
  super(template);
 }

 @Override
 public void onAction(L1PcInstance player) {
  L1Attack attack = new L1Attack(player, this);
  if (attack.calcHit()) {
   if (this.getNpcId() == 4500060){
    if (player.getInventory().findItemId(40308).getCount() < 1000000){
     player.sendPackets(new S_PacketBox(S_PacketBox.GREEN_MESSAGE,
       "100만원 이상 소지시 게임가능합니다."));
     return;
     }
    this.setNpoint(this.getNpoint()+25000);
    player.getInventory().consumeItem(40308, 50000);//5만
    int chance = _random.nextInt(15000)+1;
    if (chance <= 100){ 
     player.getInventory().storeItem(40308, 700000);
     
     String chatId = " 당첨:"+player.getName()+"
\\fY님 아데나 70만원당첨!";
     Broadcaster.broadcastPacket(this, new S_NpcChatPacket(this, chatId, 0));
       } else if (chance >= 101 && chance <= 150){
     player.getInventory().storeItem(40308, 1200000);
     String chatId = " 당첨:"+player.getName()+"
\\fY님 120만원당첨!";
     Broadcaster.broadcastPacket(this, new S_NpcChatPacket(this, chatId, 0));
       } else if (chance >=151 && chance <= 175){
     player.getInventory().storeItem(40308, 2000000);
     String chatId = " 당첨:"+player.getName()+"
\\fY님 아데나 200만원당첨!";
     Broadcaster.broadcastPacket(this, new S_NpcChatPacket(this, chatId, 0));
       } else if (chance >=176 && chance <= 189){
     player.getInventory().storeItem(40308, 3500000);
     String chatId = " 당첨:"+player.getName()+"
\\fY님 아데나 350만원당첨!";
     Broadcaster.broadcastPacket(this, new S_NpcChatPacket(this, chatId, 0));
       } else if (chance >= 190 && chance <= 192){
     player.getInventory().storeItem(40308, 10000000);
     String chatId = " 3등당첨:"+player.getName()+"
\\fY님 아데나 1000만원당첨!";
     Broadcaster.broadcastPacket(this, new S_NpcChatPacket(this, chatId, 0));
       } else if (chance >= 193 && chance <= 194){
     player.getInventory().storeItem(40308, 30000000);
     String chatId = " 2등당첨:"+player.getName()+"
\\fY님 아데나 3000만원당첨!";
     Broadcaster.broadcastPacket(this, new S_NpcChatPacket(this, chatId, 0));
       } else if (chance >= 194 && chance < 196){
     player.getInventory().storeItem(40308, 70000000);
        Broadcaster.broadcastPacket(this, new S_PacketBox(S_PacketBox.GREEN_MESSAGE, " 1등당첨:"+player.getName()+"님1등당첨 상금 7천만원당첨"));
       } else if  (chance >= 196 && chance <= 200){
        int k2 = (int) (this.getNpoint()*0.6);
        int k3 = this.setNpoint(this.getNpoint() - k2);
        player.getInventory().storeItem(40308, k3);
     Broadcaster.broadcastPacket(this, new S_PacketBox(S_PacketBox.GREEN_MESSAGE, " 잭팟:"+player.getName()+"님 상금 ["+k3+"]원 획득"));
     this.setNpoint(k2);
       } else if (chance >= 201 && chance <= 15000){
        player.sendPackets(new S_SystemMessage("
\\fY실패 : [25000]원 적립  , 총 : ["+this.getNpoint()+
       "]원 적립"));
    }
    }
   if (this.getNpcId() == 4500061){
    if (player.getInventory().findItemId(40308).getCount() < 10000000){
     player.sendPackets(new S_PacketBox(S_PacketBox.GREEN_MESSAGE,
       "1000만원 이상 소지시 게임가능합니다."));
     return;
     }
    this.setSpoint(this.getSpoint()+50000);
    player.getInventory().consumeItem(40308, 100000);//10만
    int chance = _random.nextInt(15000)+1;
    if (chance <= 100){ 
     player.getInventory().storeItem(40308, 1000000);
     String chatId = " 당첨:"+player.getName()+"
\\fY님 아데나 100만원당첨!";
     Broadcaster.broadcastPacket(this, new S_NpcChatPacket(this, chatId, 0));
       } else if (chance >= 101 && chance <= 150){
     player.getInventory().storeItem(40308, 3000000);
     String chatId = " 당첨:"+player.getName()+"
\\fY님 아데나 300만원당첨!";
     Broadcaster.broadcastPacket(this, new S_NpcChatPacket(this, chatId, 0));
       } else if (chance >= 151 && chance <= 175){
     player.getInventory().storeItem(40308, 4000000);
     String chatId = " 당첨:"+player.getName()+"
\\fY님 아데나 400만원당첨!";
     Broadcaster.broadcastPacket(this, new S_NpcChatPacket(this, chatId, 0));
       } else if (chance >= 176 && chance <= 189){
     player.getInventory().storeItem(40308, 10000000);
     String chatId = " 당첨:"+player.getName()+"
\\fY님 아데나 1000만원당첨!";
     Broadcaster.broadcastPacket(this, new S_NpcChatPacket(this, chatId, 0));
       } else if (chance >= 190 && chance <= 192){
     player.getInventory().storeItem(40308, 30000000);
     String chatId = " 3등당첨:"+player.getName()+"
\\fY님 아데나 3000만원당첨!";
     Broadcaster.broadcastPacket(this, new S_NpcChatPacket(this, chatId, 0));
       } else if (chance >= 193 && chance <= 194){
     player.getInventory().storeItem(40308, 40000000);
     String chatId = " 2등당첨:"+player.getName()+"
\\f님 아데나 4000만원당첨!";
     Broadcaster.broadcastPacket(this, new S_NpcChatPacket(this, chatId, 0));
       } else if (chance >= 194 && chance < 196){
     player.getInventory().storeItem(40308, 130000000);
     Broadcaster.broadcastPacket(this, new S_PacketBox(S_PacketBox.GREEN_MESSAGE, " 1등당첨:"+player.getName()+"님 1등당첨금1억3천획득"));
       } else if  (chance >= 196 && chance <= 200){
        int k2 = (int) (this.getSpoint()*0.6);
        int k3 = this.setSpoint(this.getSpoint() - k2);
        player.getInventory().storeItem(40308, k3);
     Broadcaster.broadcastPacket(this, new S_PacketBox(S_PacketBox.GREEN_MESSAGE, " 잭팟:"+player.getName()+"님 상금 ["+k3+"]원 획득"));
     this.setSpoint(k2);
       } else if (chance >= 201 && chance <= 15000){
        player.sendPackets(new S_SystemMessage("
\\fY실패 : [50000]원 적립  , 총 : ["+this.getSpoint()+
       "]원 적립"));
    }
    }
   if (this.getNpcId() == 4500062){
    if (player.getInventory().findItemId(40308).getCount() < 300000){
     player.sendPackets(new S_PacketBox(S_PacketBox.GREEN_MESSAGE,
       "30만원 이상 소지시 게임가능합니다."));
     return;
     }
    this.setKpoint(this.getKpoint() + 5000);
    player.getInventory().consumeItem(40308, 10000);//1만원
    int chance = _random.nextInt(15000)+1;
    if (chance <= 100){ 
     player.getInventory().storeItem(40308, 200000);
     String chatId = " 당첨:"+player.getName()+"
\\fY님 아데나 20만원당첨!";
     Broadcaster.broadcastPacket(this, new S_NpcChatPacket(this, chatId, 0));
       } else if (chance >= 101 && chance <= 150){
     player.getInventory().storeItem(40308, 400000);
     String chatId = " 당첨:"+player.getName()+"
\\fY님 아데나 40만원당첨!";
     Broadcaster.broadcastPacket(this, new S_NpcChatPacket(this, chatId, 0));
       } else if (chance >= 151 && chance <= 175){
     player.getInventory().storeItem(40308, 500000);
     String chatId = " 당첨:"+player.getName()+"
\\fY님 아데나 50만원당첨!";
     Broadcaster.broadcastPacket(this, new S_NpcChatPacket(this, chatId, 0));
       } else if (chance >= 176 && chance <= 189){
     player.getInventory().storeItem(40308, 1000000);
     String chatId = " 당첨:"+player.getName()+"
\\fY님 아데나 100만원당첨!";
     Broadcaster.broadcastPacket(this, new S_NpcChatPacket(this, chatId, 0));
       } else if (chance >= 190 && chance <= 192){
     player.getInventory().storeItem(40308, 3000000);
     String chatId = " 3등당첨:"+player.getName()+"
\\fY님 아데나 300만원당첨!";
     Broadcaster.broadcastPacket(this, new S_NpcChatPacket(this, chatId, 0));
       } else if (chance >= 193 && chance <= 194){
     player.getInventory().storeItem(40308, 5000000);
     String chatId = " 2등당첨:"+player.getName()+"
\\fY님 아데나 500만원당첨!";
     Broadcaster.broadcastPacket(this, new S_NpcChatPacket(this, chatId, 0));
       } else if (chance >= 194 && chance < 196){
     player.getInventory().storeItem(40308, 30000000);
     Broadcaster.broadcastPacket(this, new S_PacketBox(S_PacketBox.GREEN_MESSAGE, " 1등당첨:"+player.getName()+"님 1등당첨상금 3000만원획득"));
       } else if  (chance >= 196 && chance <= 200){
        int k2 = (int) (this.getKpoint()*0.6);
        int k3 = this.setKpoint(this.getKpoint() - k2);
        player.getInventory().storeItem(40308, k3);
     Broadcaster.broadcastPacket(this, new S_PacketBox(S_PacketBox.GREEN_MESSAGE, " 잭팟:"+player.getName()+"님 상금 ["+k3+"]원 획득"));
     this.setKpoint(k2);
       } else if (chance >= 201 && chance <= 15000){
        player.sendPackets(new S_SystemMessage("
\\fY실패 : [5000]원 적립  , 총 : ["+this.getKpoint()+
       "]원 적립"));
    }
    }
   if (this.getNpcId() == 4500063){
    if (player.getInventory().findItemId(40308).getCount() < 500000){
     player.sendPackets(new S_PacketBox(S_PacketBox.GREEN_MESSAGE,
       "50만원 이상 소지시 게임가능합니다."));
     return;
     }
    this.setPpoint(this.getPpoint()+15000);
    player.getInventory().consumeItem(40308, 30000);//3만
    int chance = _random.nextInt(15000)+1;
    if (chance <= 100){ 
     player.getInventory().storeItem(40308, 300000);
     String chatId = " 당첨:"+player.getName()+"
\\fY님 아데나 30만원당첨!";
     Broadcaster.broadcastPacket(this, new S_NpcChatPacket(this, chatId, 0));
       } else if (chance >= 101 && chance <= 150){
     player.getInventory().storeItem(40308, 500000);
     String chatId = " 당첨:"+player.getName()+"
\\fY님 아데나 50만원당첨!";
     Broadcaster.broadcastPacket(this, new S_NpcChatPacket(this, chatId, 0));
       } else if (chance >= 151 && chance <= 175){
     player.getInventory().storeItem(40308, 1000000);
     String chatId = " 당첨:"+player.getName()+"
\\fY님 아데나 100만원당첨!";
     Broadcaster.broadcastPacket(this, new S_NpcChatPacket(this, chatId, 0));
       } else if (chance >= 176 && chance <= 189){
     player.getInventory().storeItem(40308, 3000000);
     String chatId = " 당첨:"+player.getName()+"
\\fY님 아데나 300만원당첨!";
     Broadcaster.broadcastPacket(this, new S_NpcChatPacket(this, chatId, 0));
       } else if (chance >= 190 && chance <= 192){
     player.getInventory().storeItem(40308, 5000000);
     String chatId = " 3등당첨:"+player.getName()+"
\\fY님 아데나 500만원당첨!";
     Broadcaster.broadcastPacket(this, new S_NpcChatPacket(this, chatId, 0));
       } else if (chance >= 193 && chance <= 194){
     player.getInventory().storeItem(40308, 20000000);
     String chatId = " 2등당첨:"+player.getName()+"
\\fY님 아데나 2000만원당첨!";
     Broadcaster.broadcastPacket(this, new S_NpcChatPacket(this, chatId, 0));
       } else if (chance >= 194 && chance < 196){
     player.getInventory().storeItem(40308, 60000000);
     Broadcaster.broadcastPacket(this, new S_PacketBox(S_PacketBox.GREEN_MESSAGE, " 1등당첨:"+player.getName()+"님 1등당첨상금 6000만원획득"));
       } else if  (chance >= 196 && chance <= 200){
        int k2 = (int) (this.getPpoint()*0.6);
        int k3 = this.setPpoint(this.getPpoint() - k2);
        player.getInventory().storeItem(40308, k3);
     Broadcaster.broadcastPacket(this, new S_PacketBox(S_PacketBox.GREEN_MESSAGE, " 잭팟:"+player.getName()+"님 상금 ["+k3+"]원 획득"));
     this.setPpoint(k2);
       } else if (chance >= 201 && chance <= 15000){
        player.sendPackets(new S_SystemMessage("
\\fY실패 : [15000]원 적립  , 총 : ["+this.getPpoint()+
       "]원 적립"));
    }
    }

   if (player.getLevel() < 99) {//허수아비로 올릴 수 있는 레벨
    ArrayList<L1PcInstance> targetList = new ArrayList<L1PcInstance>();
    targetList.add(player);
    ArrayList<Integer> hateList = new ArrayList<Integer>();
    hateList.add(1);
    CalcExp.calcExp(player, getId(), targetList, hateList, getExp());
    player.getInventory().storeItem(40308,100);
       }
   int heading = getMoveState().getHeading();
   if (heading < 7)  heading++;
   else     heading = 0;
   getMoveState().setHeading(heading);
   Broadcaster.broadcastPacket(this, new S_ChangeHeading(this));
  }
  attack.action();
 }
 
 @Override
 public void onTalkAction(L1PcInstance l1pcinstance) {}

 public void onFinalAction() {}

 public void doFinalAction() {}
}

 

 

나비켓 npc 테이블

 

4500062 통돌이 [1만] 통돌이 [1만] 1등 3천만원   L1Scarecrow 7078 1 2 0 0 0 0 0 0 99 0 20 0 small 0 1 0 0 0 0 0 0 0 0 0 0 0  0 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0
4500063 통돌이 [3만] 통돌이 [3만] 1등 6천만원   L1Scarecrow 7078 1 2 0 0 0 0 0 0 99 0 20 0 small 0 1 0 0 0 0 0 0 0 0 0 0 0  0 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0
4500061 통돌이 [10만] 통돌이 [10만] 1등 1억3천만원   L1Scarecrow 7081 1 2 0 0 0 0 0 0 99 0 20 0 small 0 1 0 0 0 0 0 0 0 0 0 0 0  0 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0
4500060 통돌이 [5만] 통돌이 [5만] 1등 7천만원   L1Scarecrow 7081 1 2 0 0 0 0 0 0 99 0 20 0 small 0 1 0 0 0 0 0 0 0 0 0 0 0  0 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0

제가 만든 소스입니다

존님 소스보고 베낀게 아니라 그전부터 만들어둿던거 공개하는거니

태클하지마세요

 

 

출처 나

[출처] 통돌이 소스올려요 (존님꺼아님) (비공개 카페)

 

번호 제목 글쓴이 날짜 조회 수
공지 소스자료는 직접 올려주세요 게임존 2017.06.06 550
559 대만 3.52c 옵코 준희미니 2016.07.28 44
558 감자팩 로봇 자동시작하기 [1] 43inwide 2016.07.07 462
557 감자팩 엔코인샵 화폐 변경하기 43inwide 2016.07.07 141
556 린올팩 텔녀UI 43inwide 2016.07.07 131
555 그냥 떠오기3.52c 준희미니 2016.07.07 152
554 추가 패킷~~~~~~~~~ 준희미니 2016.07.07 62
553 3.53C 타이머 준희미니 2016.07.07 36
552 YN메세지 먹통 되는거 수정 준희미니 2016.07.07 54
551 [UI6] 리스시에 아이콘 제대로 안받아오는 현상 수정 준희미니 2016.07.07 51
550 3.53 통합창고 npcaction 준희미니 2016.07.07 43
549 드래곤키 사용불가능현상 (임시방편) 준희미니 2016.07.07 35
548 [UI6] 3.53c 교환/스텟 수정후 준희미니 2016.07.07 42
547 예스노 실험하긔 준희미니 2016.07.07 26
546 드래곤포탈부분 // 전 수정없이 ;; 준희미니 2016.07.07 30
545 [UI6] y/n 관련 정리.. 준희미니 2016.07.07 52
544 [UI6] 드래곤진주 / 광분의물약 (3단가속) 준희미니 2016.07.07 200
543 [UI6] 던전 타이머 적용 하기-아케인님 자료 응용- 준희미니 2016.07.07 105
542 아머브레이크 소스 준희미니 2016.07.07 107
541 카운터 매직 짜집기^^:; 준희미니 2016.07.07 84
540 숨겨진용들의땅 스폰 준희미니 2016.07.07 73
539 블러드 러스트 해결...했긴했는데...조금수정된이야기 준희미니 2016.07.07 75
538 드레이크 마법인형 New 준희미니 2016.07.07 97
537 /입장시간 입니다 준희미니 2016.07.07 79
536 [UI6]-포비뉨:시장상인찾기- 수정 준희미니 2016.07.07 30
» 통돌이 소스올려요 (존님꺼아님 준희미니 2016.07.07 113
534 설벽좌표 준희미니 2016.07.07 22
533 (ui5) 영자명령어 혈전시작 ,종료 준희미니 2016.07.07 35
532 리스창 다른방식입니다 준희미니 2016.07.07 47
531 짜집기! 보완.PC방 버프 준희미니 2016.07.07 92
530 스트링빌더사용해보긔 준희미니 2016.07.07 43
529 에르자베 준희미니 2016.07.07 36
528 오림스코어 패킷번호? 준희미니 2016.07.07 26
527 블러드 러스트 와 막대류 준희미니 2016.07.07 34
526 3.53C 창고 물건찾을때 금액 패킷 준희미니 2016.07.07 34
525 미소님 요청 622 설문처리 준희미니 2016.07.07 21
524 아이템 유즈빼먹었네요 ㅠ ㅠ.. 준희미니 2016.07.07 37
523 혈맹 계급 관련 준희미니 2016.07.07 49
522 일부 마법 아이콘이 안뜨던부분? 준희미니 2016.07.07 76
521 소스대마왕님이 질문하신 소스... 준희미니 2016.07.07 57
520 [재수정]픽시의 변신 막대... 준희미니 2016.07.07 34
519 리스창 몬스터킬 준희미니 2016.07.07 33
518 검색하다가 얻은 3.53C 옵코드 및 패킷 file 준희미니 2016.07.07 68
517 윈말 촛대 좌표 file 준희미니 2016.07.07 18
516 일팩버전. 3.53c관련 통소스 참고하세요 file 준희미니 2016.07.07 67
515 편 지 패 킷. 준희미니 2016.07.07 27
514 기억 실시간 저장하시고 싶으신분? 준희미니 2016.07.07 61
513 ER변경 MAX 127 준희미니 2016.07.07 34
512 당신의 계급이 %s 로 변경되었습니다 준희미니 2016.07.07 29
511 대마왕표 첫공개소스 ㅜㅜ빠른기억창 로드 준희미니 2016.07.07 56
510 UI6 게시판 업데이트 준희미니 2016.07.07 36