solidity实现erc721 宠物

# Solidity-Vampire-ERC721

使用erc721 配合erc20 的宠物游戏


实现自己的ERC721宠物

你想拥有一个独一无二的宠物吗

以太坊 erc721 可以满足你,每一个个体都是独一无二的存在,举个例子:例如人民币(erc20) 一张坏了可以用另一张支付,这是可替换的。但是erc721可以类比成什么呢,世界上没有完全相同的树叶

如对erc721 和 erc20 概念不是很理解的同志请自行查阅资料,哈哈,不过多解释

本文章采用 erc721 + erc20 的方式 实现,erc20 代币 用作合约之中的流通货币,例如 宠物战斗,宠物繁殖,宠物竞拍的手续费,也可以直接采用erc20代币直接购买宠物!

本文引入了erc20 ,和 erc721 的接口 并对erc721 进行实现,而只调用部分erc20方法。


接下来就带你一步一步实现自己的宠物

先大概构想一个宠物合约应有的功能,最基本的应该是繁殖,但不能无限繁殖,应先规定多久繁殖一次,本合约采用的是每个用户可获得一个宠物,随后获得宠物需要进食,然后有概率获得宠物,获得的宠物等级会在原等级相加,但是稀有度就看自己的运气了哈哈,一般来说等级越高,稀有度越稀有的宠物也就越珍贵。

创建宠物时会默认为宠物生成一个用户名,用户可以根据自己的喜好来更改这个用户名,但是需要支付很少一部分的手续费用

随后设想宠物的战斗功能,宠物有战斗力性质的存在,但是规定战斗胜利的基准是什么呢,是运气,没错就是运气,合约采用随机几率的方式来决定战斗输赢,赢了的一方将获得代币奖励,和战斗力增加,战斗也不可能无休止的进行,那怎么办呢,咱们接着为他加上冷却时间吧。输了也不可能一点惩罚没有,我们采用的是降低战斗力的方式。想让宠物战斗获取代币 你只需要支付一定量的代币(手续费),什么又是代币,没错有代币你就可以为所欲为!

然而这个可以让用户为所欲为的代币从哪里来呢? 这点很重要

根据自己需要的场景来选择,如果你希望自己的代币 还有宠物 仅作为娱乐性质,那就可以 让用户每天签到获得代币,现在的合约里实现是前两周可以通过签到获得,后边需要再获得代币就需要联系 发币项目方了。可以通过这种方式让用户一直获得代币。然而如果你准备商用签到的方式可以保留,但是在此获取代币就需要用 人民币来购买喽,发币 上交易所 割韭菜 哈哈楼主还是不推荐这么干的。

要让宠物真正的流通起来 除了用户和用户的交易,最好的办法是什么,当然是拍卖,用户设定最低出价,拍卖时间由系统规定,然后你就可以坐等收币了,等竞拍完成,项目方会把你获得的代币,还有竞拍者获得的宠物双双交还。

接下来我们来具体实现它

首先定义一下 宠物要有的东西:

名字 , DNA, 等级, 父亲是谁,战斗力,稀有度以及创建时间

此图包含了竞拍的结构体,留作接下来 实现竞拍所用,具体的东西有:参与人,参与人的金额, 初始金额, 是否完成竞拍宠物发放, 最后就是竞拍时间


一个产品没有客户端是做不起来的,然后客户端怎么知道创建了一个宠物或者 你给宠物重新定义了一个名字呢

solidity中有个东西叫做监听 event。

试想一下咱们要返回给客户端的时候,创建了一个宠物,重命名了一个宠物,战斗获胜的宠物,还有竞拍的时候


看一下合约中具体要用到的变量,战斗的冷却时间,创建新僵尸的各种时间,还有各项费用。


因为区块链的不可更改特性,很多时候一个值都不能固定,例如签到获得的币,交易的手续费,这些都应该根据具体的现场场景来设置。所以我们实现了具体的方法


然后咱们要实现设置宠物的稀有度,dna等的私有方法,来看一下具体实现


然后来看一下创建宠物的具体方法


战斗的具体实现:


竞拍要分为 发起竞拍,竞拍中,竞拍结束的多步操作,咱们逐一实现


最后是针对erc721合约的具体实现,一个宠物本质就是erc721 (非同质货币)


实现起来到这里就差不多结束了,可以根据自己的需求,进行功能的拓展,接下来会对合约进行逐步更新,修正bug等。

是不是已经心动了,下面是我的github实现地址, 欢迎fork,共同学习

https://github.com/skyhuihui/Solidity-Vampire-ERC721.git

最后推荐一下我的博客https://skyhuihui.github.io/

如果您想支持我 可以像我的地址上转一些以太币 0x2207358972e37f663a5480dbaa09715e8b0fc4ff,什么你只有新潮的eos 没有以太币,放心放心,eos地址我也有 eosskyhuihui

算了开玩笑的了,哈哈, 您的转发就是对我最大的支持。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,393评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,790评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,391评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,703评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,613评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,003评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,507评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,158评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,300评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,256评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,274评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,984评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,569评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,662评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,899评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,268评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,840评论 2 339

推荐阅读更多精彩内容