来喝一杯吧,赏金猎人!

lordless-floor
lordless-tavern
lordless-tavern
lordless-tavern
lordless-tavern
lordless-tavern
lordless-tavern
lordless-tavern
lordless-tavern
lordless-tavern
lordless-circlelordless-circlelordless-circle

角色

无主之城是一款让你可以经营自己酒馆的虚拟游戏。
在无主之城中,你可以招募赏金猎人,为他们派发任务以及获取奖励。你也完全可以成为一名赏金猎人来完成任务来获取奖励。

  • Quest-host
    悬赏者

    悬赏者发布任务来完成预期目标。在无主之城世界中悬赏者是所有任务的发布者,也是所有任务奖励的提供者。

  • tavern-master
    酒馆掌柜

    拥有某个酒馆的用户即为掌柜。一旦你成为掌柜,就会拥有酒馆的买卖权限,同时也拥有酒馆任务奖励的分成权限。

  • Bounty-hunter
    赏金猎人

    赏金猎人可以在不同的酒馆中领取悬赏者发布的任务。当把任务完成后,赏金猎人将会得到相应的奖励。

交易市场

无主之城的交易市场是一种最简单、最便捷的方式来买卖酒馆。可以看到市场中的酒馆列表来触达数以千计的卖家来找到那一款与众不同的在售酒馆

  • tavern popularity image
    tavern curve
    tavern preview

    上海马戏城

    #800

     121.446536, 31.2797366

    • 2

      Level

    • 0

      Members

    • AP143

  • tavern popularity image
    tavern curve
    tavern preview

    中华艺术宫

    #1800

     121.490278, 31.1864101

    • 1

      Level

    • 0

      Members

    • AP27

  • tavern popularity image
    tavern curve
    tavern preview

    东方明珠广播电视塔

    #0

     121.495376, 31.2416800

    • 2

      Level

    • 0

      Members

    • AP556

  • tavern popularity image
    tavern curve
    tavern preview

    罗斯福公馆

    #100

     121.485552, 31.2423914

    • 2

      Level

    • 2

      Members

    • AP465

  • tavern popularity image
    tavern curve
    tavern preview

    静安寺

    #101

     121.440712, 31.2253722

    • 3

      Level

    • 0

      Members

    • AP668

  • tavern popularity image
    tavern curve
    tavern preview

    徐家汇圣依纳爵主教座堂

    #801

     121.431471, 31.1930143

    • 2

      Level

    • 0

      Members

    • AP262

  • tavern popularity image
    tavern curve
    tavern preview

    衡山马勒别墅饭店

    #1801

     121.451688, 31.2248880

    • 1

      Level

    • 0

      Members

    • AP27

  • tavern popularity image
    tavern curve
    tavern preview

    上海城隍庙

    #802

     121.488054, 31.2277205

    • 2

      Level

    • 0

      Members

    • AP198

智能合约

无主之城整体构建在以太坊上。所有智能合约互相关联形成整体的去中心化体系。

    pragma solidity ^0.4.24;


    import "../lib/SafeMath.sol";
    import "./ITavern.sol";

    contract TavernBase is ITavern {
      using SafeMath for *;

      struct Tavern {
        uint256 initAt; // The time of tavern init
        int longitude; // The longitude of tavern
        int latitude; // The latitude of tavern
        uint8 popularity; // The popularity of tavern
        uint256 activeness; // The activeness of tavern
      }

      uint8 public constant decimals = 16; // longitude latitude decimals

      mapping(uint256 => Tavern) internal tokenTaverns;

      function _tavern(uint256 _tokenId) internal view returns (uint256, int, int, uint8, uint256) {
        Tavern storage tavern = tokenTaverns[_tokenId];
        return (
          tavern.initAt,
          tavern.longitude,
          tavern.latitude,
          tavern.popularity,
          tavern.activeness
        );
      }

      function _isBuilt(uint256 _tokenId) internal view returns (bool){
        Tavern storage tavern = tokenTaverns[_tokenId];
        return (tavern.initAt > 0);
      }

      function _build(
        uint256 _tokenId,
        int _longitude,
        int _latitude,
        uint8 _popularity
        ) internal {

        // Check whether tokenid has been initialized
        require(!_isBuilt(_tokenId));
        require(_isLongitude(_longitude));
        require(_isLatitude(_latitude));
        require(_popularity != 0);
        uint256 time = block.timestamp;
        Tavern memory tavern = Tavern(
          time, _longitude, _latitude, _popularity, uint256(0)
        );
        tokenTaverns[_tokenId] = tavern;
        emit Build(time, _tokenId, _longitude, _latitude, _popularity);
      }

      function _batchBuild(
        uint256[] _tokenIds,
        int[] _longitudes,
        int[] _latitudes,
        uint8[] _popularitys
        ) internal {
        uint256 i = 0;
        while (i < _tokenIds.length) {
          _build(
            _tokenIds[i],
            _longitudes[i],
            _latitudes[i],
            _popularitys[i]
          );
          i += 1;
        }


      }

      function _activenessUpgrade(uint256 _tokenId, uint256 _deltaActiveness) internal {
        require(_isBuilt(_tokenId));
        Tavern storage tavern = tokenTaverns[_tokenId];
        uint256 oActiveness = tavern.activeness;
        uint256 newActiveness = tavern.activeness.add(_deltaActiveness);
        tavern.activeness = newActiveness;
        tokenTaverns[_tokenId] = tavern;
        emit ActivenessUpgrade(_tokenId, oActiveness, newActiveness);
      }
      function _batchActivenessUpgrade(uint256[] _tokenIds, uint256[] __deltaActiveness) internal {
        uint256 i = 0;
        while (i < _tokenIds.length) {
          _activenessUpgrade(_tokenIds[i], __deltaActiveness[i]);
          i += 1;
        }
      }

      function _popularitySetting(uint256 _tokenId, uint8 _popularity) internal {
        require(_isBuilt(_tokenId));
        uint8 oPopularity = tokenTaverns[_tokenId].popularity;
        tokenTaverns[_tokenId].popularity = _popularity;
        emit PopularitySetting(_tokenId, oPopularity, _popularity);
      }

      function _batchPopularitySetting(uint256[] _tokenIds, uint8[] _popularitys) internal {
        uint256 i = 0;
        while (i < _tokenIds.length) {
          _popularitySetting(_tokenIds[i], _popularitys[i]);
          i += 1;
        }
      }

      function _isLongitude (
        int _param
      ) internal pure returns (bool){

        return(
          _param <= 180 * int(10 ** uint256(decimals))&&
          _param >= -180 * int(10 ** uint256(decimals))
          );
      }

      function _isLatitude (
        int _param
      ) internal pure returns (bool){
        return(
          _param <= 90 * int(10 ** uint256(decimals))&&
          _param >= -90 * int(10 ** uint256(decimals))
          );
        }
      }
    
  

路线图

无主之城的创意诞生于上海某家星巴克

创始团队成立

完成 LORDLESS 的产品原型

完成技术选型

完成分层模式设计

敲定了开放平台技术实现⽅案

发布无主之城⽩⽪书

发布⽆主之城 Alpha 版本

开发完成交易市场、基础⽤户系统、地图系统

发布⽆主之城⽩⽪书 2.0

发布⽆主之城 Beta 版本

提供超过 20 种的糖果(Token)

在上海开放 20 个 tavern 的交易

研发并发布移动端应用

面向开发者发布任务分发系统