エーテル坊でゲームをしますか?クリプトンゾンビ(4.ゾンビ戦闘システム)


士族
9日目.
补导4に移って、もっと复雑なものを学んでどうしますか...やりましたが、レッスン4でも間違いなく私の好きなお金に言及しました.コインの支払いや抽出の関数を学習します.お兄さん、どうして今来たのですか.
CH.1 Payable
function buySomething() external payable { / << 제어자'payable'

    // 함수 실행에 0.001이더가 보내졌는지 확실히 하기 위해 확인:
    require(msg.value == 0.001 ether);
    
    // 보내졌다면, 함수를 호출한 자에게 디지털 아이템을 전달하기 위한 내용 구성:
    transferThing(msg.sender);
  }
msg.valueはトランザクションからvalueを読み出すようです.
ここのクリプトンゾンビでは、0.001 ether送金するとゾンビのレベルが上昇します.(チンピラですね)
CH.2送金
...イーサを送信したら何が起こるの?
請負業者を派遣すると、請負業者のイーサアカウントがイーサを格納し、そこに閉じ込められます.請負業者からイーサを抽出する関数を作成しないと.
// Ownable 컨트랙트를 import 했다고 가정
function withdraw() external onlyOwner {  

    // this.balance는 컨트랙트에 저장되어있는 잔액을 반환함
    owner.transfer(this.balance); 
}
そして.
// 아이템 요금보다 더 받아서 초과한 금액만큼 보낸다면
msg.sender.transfer(msg.value - itemFee); // 이런 함수를 만들수도 있겠다
CH.3.4.6ゾンビバトル&乱数&ゾンビバトル
今お金を手に入れたから、仕事をしなければなりません.
私は戦闘システムを構築します.つまり、これは確率戦にすぎない.
keccak 256で整数を作ります.uint random = uint(keccak256(now, msg.sender, randNonce));しかしクリプトンゾンビでは、ここに弱点があることを示しています.
コイン投げの試合を使ってみましょう.正面から出るとお金が倍になり、背面から出ると失うことになります.
ノードを実行している場合は、共有せずにノードトランザクションのみを通知できます.コイン関数を実行して、私が勝ったことを確認することができます.もし私が負けたら、私が解いている次のブロックにトランザクションを含まないことを選択することができます.私は無限に繰り返すことができて、私が最終的にコインに勝って、次の街を解いて、私はそこから利益を得ることができます.
すなわち,改ざんされた積み木を積み重ねて事実を歪曲することができる.しかし、すでに知っているように、イーサネットの計算能力の51%を食べなければならないので、できれば暗号化通貨(イーサネット)はとっくに終わっています.