[몰라도 해보는 cryptoZombie] Lesson4. 좀비 전투 시스템 - 1

in #kr6 years ago

image.png

https://cryptozombies.io/ko/course

챕터 1: Payable

image.png

엄청 많은 함수 제어자들을 배웠다. private, public, internal, external, view, pure 같은 것에 modifier까지 포함하면.. 언제 이걸 다 배운건가 싶다. 이번에 다루는 제어자는 payable이라는 제어자로.. 해석그대로 돈(이더) 받을 수 있는 함수를 만들 때 쓰는 제어자이다.

uint levelUpFee = 0.001 ether;

function levelUp(uint _zombieId) external payable {
  require(msg.value == levelUpFee);
  zombies[_zombieId].level++;
}

먼저 레벨업하는데 돈이 든다. (나라면 레벨업에 돈내라는 게임은 안 할 것 같은데) 아무튼 보낸 돈 금액을 확인해서 그게 levelUpFee와 같다면 레벨업을 시키는 함수의 구현이다. 돈을 보내고 받는 내용을 가르쳐준다고 했는데… 뭔가 살짝 김빠진다.
msg.value는 해당 컨트렉트로 이더가 얼마나 보내졌는지 확인하는 명령이다. 사용하기 위해서는 함수가 payable이여야 한다고 한다.

중요한건 돈을 보내는 부분은 web3.js로 처리가 된다는 것이다.


간만에 정리하려니 시간이 오래걸리네.. 밤이 늦은 관계로 오늘은 여기까지. 너무 날로 먹는것 같은데.. 이번주가 지나면 후딱 cryptoZombie를 정리해버리고 딴걸 시작해야겠다 ㅎㅎ
참고문헌 https://d2fault.github.io/2018/03/19/20180319-about-solidity-1/

코어 이더리움 프로그래밍 – 박재현, 오재훈, 박혜영