임용 공부를 열심히 해야되는 데... 라면서 가끔씩 눈팅만 하던 아이미르임다... 아직 안죽었어요 oTz...
질답게에 시세 관련 글이 올라오기도 하고 저, 개인적으로 대항온도 즐겨 하고 해서
전부터 시세 관련 스크립트가 무척 갖고 싶었습니다.
하지만 이런저런 좌충우돌 시행착오를 겪고 나서 ... 적당히 제 기술력으로 한계점을 찍은 것 같아서
이렇게 올려봅니다...
에... 저처럼 스크립트에 입문 정도 하신 분이면 쓸만 할 겁니다... 단지... 원래 대항온 마냥 범위가 넓어지면
데이터양도 많아지는 게 정상인 만큼 예제는 용량이 얼마 안된다 해도 게임 만드시는 분은 용량이 미칠 듯이 폭주할지도
... 모르지요?!
----------------------------------------------------------------------------------------------------------------------------------------------------------
수정했습니다. 제가 공부한다고 시간이 부족해서 테스트를 못했는 데 테스트 해보니 버그가 있더라고요;;;
질답게시판에 질문도 하고 해서 뜯어 고쳤습니다. 단지... 여러 부분에 걸쳐져 있어서 텍스트 파일이나 여기 붙여
넣으면 알아보기 힘들 거 같더라고요; 그래서 예제만 올립니다.
-----------------------------------------------------------------------------------------------------------------------------------------------------------
예제 링크 입니다. http://db.tt/wIWvfwWC
-----------------------------------------------------------------------------------------------------------------------------------------------------------
기능 1. 정해진 수량 만큼 구입가능하다.
기능 2. 원래 상점에서 판매하지 않는 품목도 상점에 판매하면 구입할 수 있다.
단, 판매한 수량만큼 구입가능.
기능 3. 시세 기능. 품목마다 시세가 있어서 데이터베이스의 가격 * 시세(%) 가격으로
매매가능. 단, 판매시는 디폴트 원래가의 90%가격으로 판매가능.
설정항목의 SELL_RATIO를 수정하여 수정가능.
기능 4. 폭등, 폭락 설정가능. 디폴트로는 상점의 수량 50% 이상 구입하거나 10000G
이상 구매하면 폭등. 디폴트 시세 변경점의 10배 시세 상승. 20000G 이상 판매하면 폭락.
디폴트 시세 변경점의 10배 시세 하락.
설정항목의 EVAL_BUY, EVAL_SELL을 수정하여 수정가능. 수량 50%는 스크립트 본문
을 수정해야함.
기능 5. 품목과 단위 기능 추가. 품목은 종류를 판별하는 기능입니다. 설정은 아이템의 메모란에
<품목 n>이라고 쓰면 n번 품목으로 등록됩니다. 기입하지 않거나 0번 품목은 기본적으로
소모 아이템용입니다. 전투시 아이템란에는 0번 품목만 보입니다. 또한 폭등, 폭락 시 같은 상점
내의 동일 품목도 똑같이 폭등, 폭락합니다.
단위 기능은 아이템의 소지량을 제한하기 위한 기능입니다. 기본적으로 무기나 방어구를 제외한
아이템만 설정가능하며 아이템의 메모란에 <단위 n>이라고 쓰면 n 단위로 설정됩니다. 기입하지 않
으면 단위는 0으로 설정됩니다. 단위는 소지량의 제한을 위해 설정된 기능입니다. 설정항목에 초기
화물소지 최대치를 설정할 수 있으며 이는 이벤트의 스크립트 란의 $game_party.max_item_num 수치를
조절함으로써 조절할 수 있습니다. 메뉴를 열면 화물의 소지량과 최대치를 볼 수 있습니다. 단위가 0인
아이템 ( 디폴트는 소모아이템 용) 은 최대 99개 까지 가질 수 있으며 그외의 장비류 - 무기, 방어구는
최대 9개 까지 소지할 수 있습니다.
현재 약간의 버그가 있으므로 예제의 왼쪽 아래 품목과 단위가 설정된 아이템을 이벤트의 아이템 추가
기능을 어떻게 하면 버그를 피할 수 있는 지 참조하시기 바랍니다.
기능 5. 명령어 삽입. 이벤트의 스크립트란에 기입하면 O.K.
$game_shop.reset_item(n) n번 상점 아이템 품목을 초기 수치로 전환한다.
$game_shop.reset_weapon(n) n번 상점 무기 품목을 초기 수치로 전환한다.
$game_shop.reset_armor(n) n번 상점 방어구 품목을 초기 수치로 전환한다.
$game_shop.refill_item(n) n번 상점 아이템 품목을 입하한다.
$game_shop.refill_weapon(n) n번 상점 무기 품목을 입하한다.
$game_shop.refill_armor(n) n번 상점 방어구 품목을 입하한다.
원래 파는 물품을 채운다. 혹은 최초 구비하던 품목량보다 적은 물품을 초기 품목량만큼 채운다.
$game_shop.supply_item(n, m) n번 상점 아이템 품목을 m개 입하한다.
$game_shop.supply_weapon(n, m) n번 상점 무기 품목을 m개 입하한다.
$game_shop.supply_armor(n, m) n번 상점 방어구 품목을 m개 입하한다.
초기 구비 품목량을 m개 만큼 입하한다.
$game_shop.plus_item(n, id, m) n번 상점 아이템 id 물품을 m개 입하한다.
$game_shop.plus_weapon(n, id, m) n번 상점 무기 id 물품을 m개 입하한다.
$game_shop.plus_armor(n, id, m) n번 상점 방어구 id 물품을 m개 입하한다.
정해진 id의 물품을 n번 상점에 m개 입하한다.
$game_shop. ratio_item(n, r) n번 상점 아이템 품목의 시세를 r%만큼 가감한다.
$game_shop. ratio_weapon(n, r) n번 상점 무기 품목의 시세를 r%만큼 가감한다.
$game_shop. ratio_armor(n, r) n번 상점 방어구 품목의 시세를 r%만큼 가감한다.
r% 가감은 *(1+r/100) 이 아니라 +r임을 명심하자.
$game_shop.multiple_item(n, id, r) n번 상점 아이템 id 품목의 시세를 r% 가감한다.
$game_shop.multiple_weapon(n, id, r) n번 상점 무기 id 품목의 시세를 r% 가감한다.
$game_shop.multiple_armor(n, id, r) n번 상점 방어구 id 품목의 시세를 r% 가감한다.
정해진 id의 물품을 n번 상점에 r% 가감한다.
$game_shop.calculate_ratio(n, t, id) n번 상점 t번 타입( 0 : 아이템, 1 : 무기, 2 : 방어구 ), id번 시세를 변동한다.
$game_shop.calculate_supply(n, t, id) n번 상점 t번 타입( 0 : 아이템, 1 : 무기, 2 : 방어구 ), id번 수량을 변동한다.
$game_shop.change_by_time(n) n번 상점 전 품목의 시세와 수량을 변동한다.
설정항목의 CHANGE_NUM, CHANGE_RATIO에 따라 변동시 기본 수량, 기본시세가
정해진다. 시세는 랜덤하게 변경되며 수량은 초기 수치에 가까워지게 변경된다. 나중에 판매해서 추가된
수량은 점점 없어지며 초기 수치보다 적은 품목은 많아지고 많은 품목은 적어진다.
기능 6. 모든 품목의 수량, 시세는 세이브 파일에 같이 저장된다.
기능 7. 1분에 한번씩 전 상점에 대해 전품목 시세, 수량 변동 계산을 실행한다.