오늘은 몇일전부터 벼르고 벼른 인벤토리의 개조를 진행하여 진전이 있었다.
인벤토리내의 같은 아이템들은 구매,판매시 수량만 증가,감소하는 것이다.
처음 만들었던 인벤토리는 수량개념이 없어서 일단 수량 개념부터 만들어야했다.
이후 구매 시스템을 개조하는데 잠깐의 시간을 할애 했고 결과물이 이것이다.
scanf("%d",&keyy);//여기서 구매할 아이템 코드를 입력받는다. if(keyy!=0) { for(i=0;i<100;i++) { if(keyy==mat[i].code)//여기서 입력받은코드가 템코드에 존재하는지 확인 { if(user.gold<mat[i].price) continue;//소지금확인 적다면 구매불가 buytem=1;//구매 아이템 수량증가 cargosystem();//인벤토리 시스템 불러오기 user.gold-=mat[i].price;//금액차감 printf("%s를 구매하셨습니다.\n남은 소지금:%d\n",mat[i].name,user.gold); day++;//일수 증가 } } }
위 구매창에서 아이템을 구매하면서 불러오는 카고시스템을 보도록하자
카고시스템이 여기서의 가장중요한 시스템이며 인벤토리시스템 MK.2를 적용한 함수이다.
void cargosystem(void) { int l; for(l=0;l<cargomax;l++)//카고맥스라는 변수는 카고의 최대치를 나타낸다.
{ if(mat[keyy-1].code==cargo[l].code)//만약 카고내에 같은 코드를 가진 템이있다면 { cargo[l].num++;//그템의 수량증가 buytem=0;//구매대기템 0 printf("완료\n"); break; } } if(buytem!=0)//같은템을 못찾을경우and 구매대기템이존재할경우 { int i; for(i=0;i<cargomax;i++) { if(cargo[i].itemclass==0)//만약 카고내의 빈자릴 찾으면 { cargo[i].name=mat[keyy-1].name; cargo[i].price=mat[keyy-1].price; cargo[i].code=mat[keyy-1].code; cargo[i].account=mat[keyy-1].account; cargo[i].itemclass=mat[keyy-1].itemclass; cargo[i].num++;//수량증가 새로만드는거라 어차피 1이다. break; } } } cargospace++;//모든 것이끝나면 카코의 현재용적을 증가시킨다. }
이제 구매와 구매후 처리법을 보았으니 판매를 보도록하자
void sell(void) { viewcargo(); printf("판매할 물품의 번호를 입력하시오:"); scanf("%d",&keyy); if(cargo[keyy-1].itemclass==0)//입력받은 카고의 번호칸에 아이템을 없을 경우 { printf("없는 물품입니다.\n"); } if(cargo[keyy-1].itemclass!=0)//아이템이 있을경우 { cargo[keyy-1].itemclass=0;//이름등을 모두 초기화하는거 보다 그냥 없는 취급이 더 편하기에 취급을 0으로 만들었다. cargo[keyy-1].num--;//취급을 0으로 만들어도 수량이 남아있어 이것도 제거 cargo[keyy-1].code=0;//취급이 0이어도 코드로 적재기때문에 이것도 제거 user.gold+=cargo[keyy-1].price;//판매금 더하기 printf("%s를 판매하셨습니다.\n남은 소지금:%d\n",cargo[keyy-1].name,user.gold); viewcargo();//카고를 본다. } }
이것으로 인벤시스템 MK.2의 설명의 마치도록 하겠다.
물론 보통게임에서 쓰는것보다는 허접한 실력이지만 조금씩 조금씩 변화의 과정을 거치다보면
나만의 인벤토리시스템으로 당당히 자리잡을 수 있을거라 생각하며 조금씩 실력을 쌓고있다.
'프로그래밍 > 주저리 주저리' 카테고리의 다른 글
[IRC Script]퍼지다이스 (0) | 2016.03.11 |
---|---|
이번에도 IOS 앱을 만들어 보았다. (0) | 2014.11.20 |
IOS시간에 만든 환률계산기 (0) | 2014.11.13 |
뽑기 프로그램 (0) | 2014.08.03 |
간단한 인벤토리 시스템 제작법 (0) | 2013.07.27 |