에바팩 버경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 만큼 가져온다
} // 마지막 }꼭 닫아야 합니다.
댓글 달기