에바팩 배경 3.0

감찬호2020.01.10 13:02조회 수 438댓글 25

    • 글자 크기










에바팩 버경3.0버전

티켓을사서 판매할때 배당계산이 안된다
 -음 소스를 제작하던 중간에 유출된것인지 판매할때 배당계산이

상점 리스트에는 제대로되는데 실제로는 나비켓에 적힌 가격대로 적용 되더군요

2.세금을 없애기 힘들다.

 - 세금을 없애지않을경우 판매배당계산이 정확하지않습니다.

3.티켓이름표시

- 세금 없앤후 티켓이름이 라운드 + 버그베어등번호 로 표기되게

 

원본소스 출처를 하라하실까봐 글쓰는데

지금 이 소스는 에바팩에서 문제점(BUG)들을 FIX한 소스입니다.

 

일단 초기 상태의 에바팩이라면 상점 BUY SELL 자체가 아에안될텐데요

나비켓 샵 테이블에 추가해주면 일단 판매 구매는 됩니다.

70035 40309 0 1000 0 1000
70035 40309 1 1000 0 -1
70035 40309 2 1000 0 -1
70035 40309 3 1000 0 -1
70035 40309 4 1000 0 -1

 

70041 40309 0 1000 0 1000
70041 40309 1 1000 0 -1
70041 40309 2 1000 0 -1
70041 40309 3 1000 0 -1
70041 40309 4 1000 0 -1

 

70042 40309 0 1000 0 1000
70042 40309 1 1000 0 -1
70042 40309 2 1000 0 -1
70042 40309 3 1000 0 -1
70042 40309 4 1000 0 -1
// 나비켓 추가하실때 주의사항 purchasing_price 에 0으로 표기시 문제발생 꼭-1 로 표기

//이렇게 판매는 한가지만 10000적어넣으시구

//구매는 다 1000 넣으시면 됩니다.

SRC\l1j\server\server\model\shop\L1Shop.java
// 세율 안들어가는 NPC            <<< 검색 합니다.
  if (getNpcId() == 70068 || getNpcId() == 70020 || getNpcId() == 70056
    || getNpcId() == 70051 || getNpcId() == 70055 || getNpcId() == 4213002
    || getNpcId() == 70017 || getNpcId() == 4200105
    ||  getNpcId() == 70035 || getNpcId() == 70041 || getNpcId() == 70042 ) { //빨간색만추가합니다.세금을없애기위한추가

//////////////////////그다음 또 검색합니다.///////////////////

..

....

/////////검색///////////////////////////
private void NoTaxSellItems(L1PcInventory inv, L1ShopBuyOrderList orderList) {
.
.
.
  if (_npcId == 4200105){
    int type = item.getItem().getType2();
    if(type == 1){
    item.setEnchantLevel(6);
    }else if (type == 2){
    item.setEnchantLevel(4);
    }
  }
  if (getNpcId() == 70035 || getNpcId() == 70041 || getNpcId() == 70042) { //세금 삭제후 이름 표기안되던문제fix by사부
    int[] ticket = L1BugBearRace.getInstance().getTicketInfo(order.getOrderNumber());
    item.setSecondId(ticket[0]);
    item.setRoundId(ticket[1]);                                                                  // 이 빨간색 전부 끼워넣어줍니다.
    item.setTicketId(ticket[2]);
    L1BugBearRace.getInstance().addBetting(order.getOrderNumber(), amount);
  }
  inv.storeItem(item);
  }
 }

 

/////////////////////////////원본 검색//////////////////////////////
public L1AssessedItem assessItem(L1ItemInstance item) {
  L1ShopItem shopItem = getPurchasingItem(item.getItemId());
  if (shopItem == null) { return null; }
////////////////////////////추가/////////////////////////////////////////////////
  if (item.getItemId() == 40309){    //SELL눌렀을때 배당율 계산해서 리스트에 보여지게하는  소스 by사부
        float dividend = L1BugBearRace.getInstance().getTicketPrice(item);
  return new L1AssessedItem(item.getId(), (int) (getAssessedPrice(shopItem)*dividend));
  }else
////////////////////////////추가///////////////////////////////////////////////////
  return new L1AssessedItem(item.getId(), getAssessedPrice(shopItem));
 }

 

 

SRC\l1j\server\server\serverpackets\S_NoTaxShopSellList.java

 

 

import l1j.server.server.model.L1BugBearRace;

//임포트시킵니다.


int price = (int)(shopItem.getPrice() * Config.RATE_SHOP_SELLING_PRICE);
  if (!(npcId == 70068 || npcId == 70020 || npcId == 70056)){
 price = calc.NoTaxPrice(price);
  }  // 원본 소스입니다. 아래소스로 수정 합니다.


int price = (int)(shopItem.getPrice());  <-주의마지막(;)  // 여기 * Config.RATE_SHOP_SELLING_PRICE); 를 지웁니다.
  if (!(npcId == 70068 || npcId == 70020 || npcId == 70056
                            || npcId  == 70035 ||npcId  == 70041 ||npcId == 70042 )) {

 //버경상점을 추가합니다.buy눌렀을때 보여지는 리스트의 정보
    price = calc.NoTaxPrice(price);
  }

///////////////아래루내려가서////////////////////

.

.

.
if (shopItem.getPackCount() > 1) {
    writeS(item.getName() + " (" + shopItem.getPackCount() + ")");
///////////////////////////////////추가//////////////
  }else if (npcId == 70035 || npcId == 70041 || npcId == 70042) { //buy리스트에서 티켓 이름표시를 위한 추가 by사부
    writeS(L1BugBearRace.getInstance().getTicketName(i));
///////////////////////////////////추가//////////////
  }else if (shopItem.getItem().getMaxUseTime() > 0){
    writeS(item.getName() + " [" + item.getMaxUseTime() + "]");

 

 

 

 

 

 

SRC\l1j\server\server\serverpackets\S_ShopSellList.java
/////////////////여기서부터 

 int price = calc.layTax((int)
    (shopItem.getPrice() * Config.RATE_SHOP_SELLING_PRICE));
  writeD(i);
  writeH(shopItem.getItem().getGfxId());
  writeD(price);

/////////////////여기까지 소스가 원본소스입니다. 아래소스로 대체합니다.


int price = calc.layTax((int)
    (shopItem.getPrice() * Config.RATE_SHOP_SELLING_PRICE));
  int price1 = (int)(shopItem.getPrice()); // BUY를 눌러 실제 인벤에서 사라지는 아데나의 양 계산부분 추가 by사부
  if (!(npcId  == 70035 ||npcId  == 70041 ||npcId == 70042) ) {
    price = calc.NoTaxPrice(price);
    }
  writeD(i);
  writeH(shopItem.getItem().getGfxId());
  if (npcId == 70035 || npcId == 70041 || npcId == 70042){
    writeD(price1);  //버그상점 이라면 price1 만큼 가져온다
  }else{
  writeD(price);    // 그외에 price 만큼 가져온다
  }    // 마지막 }꼭  닫아야 합니다.











    • 글자 크기
디아2는 스벤!! (by I날자쿨쿨I) 초보분들 영상보고구축했는대 안열릴때!!!(펌) (by 감찬호)

댓글 달기

댓글 25
첨부 (0)