2010년 8월 11일 수요일

세금추가

특화상점, 깃털상점등에 세금이 적용되어서 세금 제외부분 추가 소스코드 올라오는것을 본적이 있으실겁니다.




아시다시피 세금은 해당 NPC의 지역(기란마을, 하이네마을등), 성의 세율에 따라서 계산이 됩니다.

그런데 무조건 npc를 기란마을에 세워놓는다고 무조건 기란성의 세금을 따라갈까요?

답은 no 입니다. 그렇다면 궁금한것은 각 성의 세금은 어떤 상점에 적용이 되느냐 인데요.

l1j.server.server.model.L1TownLocation.java에서 각 npcid별로 해당되는 지역을 돌려주고, 이 지역정보를 토대로 l1j.server.server.model.L1CastleLocation.java에서 위치하고 있는 성을 얻어냅니다.

npcid별로 해당되는 지역을 돌려주게 되는데, npcid가 source에 딱 정해져 있습니다. 임의로 생성한 상점은 어떠한 지역에도, 성에도 귀속되지 않습니다.



임의로 생성한 상점은 L1TownLocation.java에 해당 지역에 추가하지 않는한 어떠한 지역, 성에도 귀속되지 않는다고 말씀 드렸는데요. 그렇담 왜 세금이 추가가 될까요? 답은 세금계산 클래스인 l1j.server.server.model.L1TaxCalculator.java 에서 얻을 수 있습니다.



세금은 전쟁세금, 지역세금, 디아드세금, 국세, 성세금 로 구성이 됩니다.

지역세는 down table의 tax_rate + 2.

국세는 성세금의 10%

전쟁세는 15%

디아드세금은 10%



기본적으로 모든 상점의 경우 성세금, 전쟁세금, 국세, 지역세금을 추가하게 되어 있습니다.

그런데 어떤 성에도 마을에도 귀속되지 않는 상점에는 왜 세금이 붙을까요?



성세금이 0%니까 지역세도 당연히 0%입니다. 지역세또한 0%고요. 그러나 전쟁세는 15%입니다.

그러므로 전쟁세 15%를 정하는 WAR_TAX_RATES = 15; 부분을 WAR_TAX_RATES = 0;으로 변경하면 전쟁세가 0%가 되어서 성에도, 마을에도 귀속되지 않는 상점에 세금이 붙지 않게 됩니다.







정리하자면..

1. 임의로 생성한 상점(특화상점등)은 성, 지역의 세금이 붙지 않습니다.



2. 모든 상점에는 무조건 전생세가 붙게 됩니다.



3. 상점을 특정 성, 지역의 세금을 붙게 하려면 L1TownLocation.java의 해당 지역에 npcid를 추가해야 합니다.



4. L1TownLocation.java에 있지 않아서 어떠한 성에도, 마을에도 귀속되지 않는 상점은 세금도 적용받지않고, 성의 세금수입에도 영향을 주지 않습니다.



5. L1TaxCalculator.java의 전쟁세를 0으로 한다면 어떠한 성, 마을에 귀속되지 않는 상점의 세금은 0%이 됩니다.





제가 리니지 게임의 내용 이해가 적어서 그런데, 전쟁세 15는 어떤 용도인가요?

본섭에서는 어떠한 용도로 사용 되는지 궁금 합니다. 만약 전쟁세 15%가 무조건 적용되어야 한다면 전쟁세를 0으로 하고 지역세금에 전쟁세금을 추가하는 방법도 있겠네요.
 
http://sofree.co.kr/ 에  더 많은 자료가 있습니다.

댓글 없음:

댓글 쓰기