以太坊sol
『壹』 求暗黑破坏神eth bug打孔公式
有孔的盔甲(1-4孔)=Tal塔尔(7#)+Thul书尔(10#)+1完美的黄宝石+普通盔甲
有孔的武器(1-6孔)=Ral拉尔(8#)+Amn安姆(11#)+1完美的紫宝石+普通武器
有孔的头盔(1-3孔)=Ral拉尔(8#)+Thul书尔(10#)+1完美的蓝宝石+普通头盔
有孔的盾牌(1-4孔)=Tal塔尔(7#)+Amn安姆(11#)+1完美的红宝石+普通盾牌
(1)以太坊sol扩展阅读:
游戏中的宝石合成公式:
1、3 Thul(10#) + 1 碎裂黄宝石 = Amn (11#)
2、3 Amn(11#) + 1 碎裂紫宝石 = Sol (12#)
3、3 Sol(12#) + 1 碎裂蓝宝石 = Shael(13#)
4、3 Shael(13#) + 1 碎裂红宝石 = Dol (14#)
5、3 Dol (14#) + 1 碎裂绿宝石 = Hel(15#) 天梯(Ladder Only)
6、3 Hel (15#) + 1 碎裂白宝石 = Io(16#) 天梯(Ladder Only)
『贰』 在cygwin下想用c语言调用libpcap实现网络抓包。是不是cygwin下不支持libpcap
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <netdb.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/ip.h>
#include <netinet/in.h>
#include <netinet/if_ether.h>
#include <netpacket/packet.h>
#include <net/ethernet.h>
#include <net/if.h>
#include <arpa/inet.h>
#include <errno.h>
/* 接收缓冲区大小 */
#define RCV_BUF_SIZE 1024 * 5
/* 接收缓冲区 */
static int g_iRecvBufSize = RCV_BUF_SIZE;
static char g_acRecvBuf[RCV_BUF_SIZE] = {0};
/* 物理网卡接口,需要根据具体情况修改 */
static const char *g_szIfName = "eth1";
/* 以太网帧封装的协议类型 */
static const int g_iEthProId[] = { ETHERTYPE_PUP,
ETHERTYPE_SPRITE,
ETHERTYPE_IP,
ETHERTYPE_ARP,
ETHERTYPE_REVARP,
ETHERTYPE_AT,
ETHERTYPE_AARP,
ETHERTYPE_VLAN,
ETHERTYPE_IPX,
ETHERTYPE_IPV6,
ETHERTYPE_LOOPBACK
};
static const char g_szProName[][24] = {
"none", "xerox pup", "sprite", "ip", "arp",
"rarp", "apple-protocol", "apple-arp",
"802.1q", "ipx", "ipv6", "loopback"
};
/* 输出MAC地址 */
static void ethmp_showMac(const int iType, const char acHWAddr[])
{ int i = 0;
if (0 == iType)
{
printf("SMAC=[");
}
else
{
printf("DMAC=[");
}
for(i = 0; i < ETHER_ADDR_LEN - 1; i++)
{
printf("%02x:", *((unsigned char *)&(acHWAddr[i])));
}
printf("%02x] ", *((unsigned char *)&(acHWAddr[i])));
}
/* 物理网卡混杂模式属性操作 */
static int ethmp_setPromisc(const char *pcIfName, int fd, int iFlags)
{ int iRet = -1;
struct ifreq stIfr;
/* 获取接口属性标志位 */
strcpy(stIfr.ifr_name, pcIfName);
iRet = ioctl(fd, SIOCGIFFLAGS, &stIfr);
if (0 > iRet)
{ perror("[Error]Get Interface Flags");
return -1;
}
if (0 == iFlags)
{ /* 取消混杂模式 */
stIfr.ifr_flags &= ~IFF_PROMISC;
}
else
{ /* 设置为混杂模式 */
stIfr.ifr_flags |= IFF_PROMISC;
}
iRet = ioctl(fd, SIOCSIFFLAGS, &stIfr);
if (0 > iRet)
{ perror("[Error]Set Interface Flags");
return -1;
}
return 0;
}
/* 获取L2帧封装的协议类型 */
static char *ethmp_getProName(const int iProNum)
{ int iIndex = 0;
for(iIndex = 0; iIndex < sizeof(g_iEthProId) / sizeof(g_iEthProId[0]); iIndex++)
{ if (iProNum == g_iEthProId[iIndex])
{
break;
}
}
return (char *)(g_szProName[iIndex + 1]);
}
/* Init L2 Socket */
static int ethmp_initSocket()
{ int iRet = -1;
int fd = -1;
struct ifreq stIf;
struct sockaddr_ll stLocal = {0};
/* 创建SOCKET */
fd = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL));
if (0 > fd)
{ perror("[Error]Initinate L2 raw socket");
return -1;
}
/* 网卡混杂模式设置 */
ethmp_setPromisc(g_szIfName, fd, 1);
/* 设置SOCKET选项 */
iRet = setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &g_iRecvBufSize,sizeof(int));
if (0 > iRet)
{ perror("[Error]Set socket option");
close(fd);
return -1;
}
/* 获取物理网卡接口索引 */
strcpy(stIf.ifr_name, g_szIfName);
iRet = ioctl(fd, SIOCGIFINDEX, &stIf);
if (0 > iRet)
{ perror("[Error]Ioctl operation");
close(fd);
return -1;
}
/* 绑定物理网卡 */
stLocal.sll_family = PF_PACKET;
stLocal.sll_ifindex = stIf.ifr_ifindex;
stLocal.sll_protocol = htons(ETH_P_ALL);
iRet = bind(fd, (struct sockaddr *)&stLocal, sizeof(stLocal));
if (0 > iRet)
{ perror("[Error]Bind the interface");
close(fd);
return -1;
}
return fd;
}
/* 解析Ethernet帧首部 */
static int ethmp_parseEthHead(const struct ether_header *pstEthHead)
{ unsigned short usEthPktType;
if (NULL == pstEthHead)
{ return -1;}
/* 协议类型、源MAC、目的MAC */
usEthPktType = ntohs(pstEthHead->ether_type);
printf(">>>\nEth-Pkt-Type:0x%04x(%s) ", usEthPktType, ethmp_getProName(usEthPktType));
ethmp_showMac(0, pstEthHead->ether_shost);
ethmp_showMac(1, pstEthHead->ether_dhost);
return 0;
}
/* 解析IP数据包头 */
static int ethmp_parseIpHead(const struct ip *pstIpHead)
{ struct protoent *pstIpProto = NULL;
if (NULL == pstIpHead)
{ return -1;}
/* 协议类型、源IP地址、目的IP地址 */
pstIpProto = getprotobynumber(pstIpHead->ip_p);
if(NULL != pstIpProto)
{ printf("\nIP-Pkt-Type:%d(%s) ", pstIpHead->ip_p, pstIpProto->p_name); }
else
{ printf("\nIP-Pkt-Type:%d(%s) ", pstIpHead->ip_p, "None");}
printf("SAddr=[%s] ", inet_ntoa(pstIpHead->ip_src));
printf("DAddr=[%s]\n", inet_ntoa(pstIpHead->ip_dst));
return 0;
}
/* 数据帧解析函数 */
static int ethmp_parseFrame(const char *pcFrameData)
{ int iRet = -1;
struct ether_header *pstEthHead = NULL;
struct ip *pstIpHead = NULL;
/* Ethnet帧头解析 */
pstEthHead = (struct ether_header*)g_acRecvBuf;
iRet = ethmp_parseEthHead(pstEthHead);
if (0 > iRet)
{ return iRet;}
/* IP数据包类型 */
pstIpHead = (struct ip *)(pstEthHead + 1);
iRet = ethmp_parseIpHead(pstIpHead);
return iRet;
}
/* 捕获网卡数据帧 */
static void ethmp_startCapture(const int fd)
{ int iRet = -1;
socklen_t stFromLen = 0;
/* 循环监听 */
while(1)
{ /* 清空接收缓冲区 */
memset(g_acRecvBuf, 0, RCV_BUF_SIZE);
/* 接收数据帧 */
iRet = recvfrom(fd, g_acRecvBuf, g_iRecvBufSize, 0, NULL, &stFromLen);
if (0 > iRet)
{ continue;}
/* 解析数据帧 */
ethmp_parseFrame(g_acRecvBuf);
}
}
/* Main */
int main(int argc, char *argv[])
{ int iRet = -1;
int fd = -1;
/* 初始化SOCKET */
fd = ethmp_initSocket();
if(0 > fd) {
return -1;
}
/* 捕获数据包 */
ethmp_startCapture(fd);
/* 关闭SOCKET */
close(fd);
return 0;
}
编译命令
gcc -o a a.c
./a
实现效果图
...
>>>Eth-Pkt-Type:0x0800(ip) SMAC=[00:1a:92:ef:b6:dd] DMAC=[00:24:7e:dc:99:18] IP-Pkt-Type:6(tcp) SAddr=[192.168.0.111] DAddr=[192.168.0.100]
>>> Eth-Pkt-Type:0x0800(ip) SMAC=[00:24:7e:dc:99:18] DMAC=[00:1a:92:ef:b6:dd] IP-Pkt-Type:6(tcp) SAddr=[192.168.0.100] DAddr=[192.168.0.111]
>>> Eth-Pkt-Type:0x0800(ip) SMAC=[00:24:7e:dc:99:18] DMAC=[00:1a:92:ef:b6:dd] IP-Pkt-Type:1(icmp) SAddr=[192.168.0.100] DAddr=[192.168.0.111]
>>> Eth-Pkt-Type:0x0800(ip) SMAC=[00:1a:92:ef:b6:dd] DMAC=[00:24:7e:dc:99:18] IP-Pkt-Type:1(icmp) SAddr=[192.168.0.111] DAddr=[192.168.0.100]
>>> Eth-Pkt-Type:0x0800(ip) SMAC=[00:1a:92:ef:b6:dd] DMAC=[00:24:7e:dc:99:18] IP-Pkt-Type:6(tcp) SAddr=[192.168.0.111] DAddr=[192.168.0.100]
...
『叁』 暗黑神符之语、、、要中文的、、
以下仅天梯可用
a:悔恨Grief# 5孔剑/斧头
Eth(5)+Tir(3)+Lo(28)+Mal(23)+Ral(8)
击中敌人时有35%机会施展等级15毒牙
+30-40%提升攻击速度[IAS](可变)
伤害+340-400(可变)
忽视目标防御力
-25%目标防御
+1.875-185.625%对恶魔伤害(以角色等级决定)
增加5-30的火焰伤害
-20-25%敌人的毒素系抗性(可变)
20%机率出现致命攻击[DS]
防止怪物自疗
+2点法力在每杀一个敌人后取得
+10-15生命值在每杀死一个怪物后获得
b:死神Death# 5孔剑/斧头
Hel(15)+El(1)+Vex(26)+Ort(9)+Gul(25)
当你死去时有100%机会施展等级44连锁闪电
攻击时25%机会施展等级18冰尖柱
无法破坏
+300-385%增强伤害[ED](可变)
20%额外的攻击准确率[AR]加成
+50攻击准确率[AR]
增加1-50的闪电伤害
7%法力于击中时偷取
50%机率出现压碎性打击[CB]
0.5-49.5%机率出现致命攻击[DS](以角色等级决定)
+1照亮范围
等级22鲜血石魔[15聚气]
需求[REQ]-20%推荐材料:天然生成5孔:eth狂战士斧/巨神之刃
c:最后希望Last Wish# 6孔剑/锤子(Hammers)/斧头
Jah(31)+Mal(23)+Jah(31)+Sur(29)+Jah(31)+Ber(30)
击中敌人时有23%机会施展等级12火山
击中敌人时有5%机会施展等级23熔浆巨岩
当你死去时有100%机会施展等级45陨石
攻击时有15%施展等级22新星
+350%增强伤害[ED]
忽视目标防御力
增加100-180的魔法伤害
7%法力于击中时偷取
20%机率出现压碎性打击[CB]
20%机率出现致命攻击[DS]
防止怪物自疗
+10 敏捷
d:毁灭Destruction# 5孔长柄/剑
Vex(26)+Lo(28)+ Ber(30)+ Jah(31)+ Ko(18)
击中敌人时有23%机会施展等级12火山
击中敌人时有5%机会施展等级23熔浆巨岩
当你死去时有100%机会施展等级45陨石
攻击时有15%施展等级22新星
+350%增强伤害[ED]
忽视目标防御力
增加100-180的魔法伤害
7%法力于击中时偷取
20%机率出现压碎性打击[CB]
20%机率出现致命攻击[DS]
防止怪物自疗
+10 敏捷
e:刚毅Fortitude# 4孔武器/盔甲
El(1)+Sol(12)+Dol(14)+Lo(28)
被击中时有6%机会施放等级11能量消解
击中敌人时有10%机会施放等级18偷取生命
攻击时有20%机会施放等级20充能弹
赋予等级17力量灵气
+330-375%增强伤害[ED](可变)
忽视目标防御力
60-70%机率出现压碎性打击[CB] (可变)
防止怪物自疗
击中使目标目盲
0.5-49.5%取得魔法装备[MF](以角色等级决定)
f:无限Infinity# 4孔长柄
Ber(30)+Mal(23)+Ber(30)+Ist(24)
当你杀死一敌人时有50%机会施展等级20连锁闪电
赋予等级12信念灵气
+35%高速跑步/行走[FR]
+255-325%增强伤害[ED](可变)
-45-55%敌人的闪电系抗性(可变)
40%机率出现压碎性打击[CB]
防止怪物自疗
0.5-49.5体力(以角色等级决定)
30%更佳的机会取得魔法装备[MF]
等级21飓风装甲[30聚气]
推荐材料:天然生成4孔:eth、10ed巨长斧/鲛尾巨斧/锐利之斧
g:骄傲Pride# 4孔长柄
Cham(32)+Sur(29)+Io(16)+Lo(28)
被击中时有25%机会施展等级17火墙
赋予等级16-20专注灵气(可变)
260-300%额外的攻击准确率[AR]加成(可变)
+1-99%对恶魔的伤害(以角色等级决定)
增加50-280的闪电伤害
20%机率出现致命攻击[DS]
击中使目标目盲
冰冻目标+3
+10体力
生命恢复速度+8
1.875-185.625%额外金钱取自怪物(以角色等级决定)
推荐材料:天然生成4孔:eth、10ed巨长斧/鲛尾巨斧/锐利之斧
h:洞察Insight# 4孔长柄/双手法杖
Ral(8)+Tir(3)+Tal(7)+Sol(12)
赋予等级12-17冥思灵气
+35%快速施法速度[FCR]
+200-260%增强伤害[ED](可变)
+9最小伤害值
180-250%额外的攻击准确率[AR]加成(可变)
增加5-30的火焰伤害
加75毒素伤害,持续时间5秒
+1-6致双倍打击(可变)
+5所有基本属性
+2点法力在每杀一个敌人后取得
23%更佳的机会取得魔法装备[MF]
推荐材料:天然生成4孔:eth巨长斧/鲛尾巨斧/锐利之斧(据说是给nec召铁宝宝用的)
i:遵从Obedience# 5孔长柄
Hel(15)+Ko(18)+Thul(10)+Eth(5)+Fal(19)
当你杀死一敌人时有30%机会施展等级21火焰强化
+40%快速打击恢复[FHR]
+370%增强伤害[ED]
-25%目标防御
增加3-14的冰冷伤害
-25%敌人的火焰系抗性
40%机率出现压碎性打击[CB]
+200-300防御(可变)
+10力量
+10敏捷
所有抗性+20-30(可变)
需求[REQ]-20%
j:信心Faith# 4孔远距离攻击武器
Ohm(27)+Jah(31)+Lem(20)+Eld(2)
赋予等级12-15狂热灵气(可变)
+1-2所有技能(可变)
+330%增强伤害[ED]
忽视目标防御力
300%额外的攻击准确率[AR]加成
+75%对不死生物的伤害
+50对抗不死生物的攻击准确率[AR]
火焰伤害加120
所有抗性+15
10%召唤死亡怪物为:亡灵战士
75%额外金币从怪物身上取得
k:烙印Brand# 4孔远距离攻击武器
Jah(31)+ Lo(28)+ Mal(23)+ Gul(25)
被击中时有35%机会施展等级14伤害加深
击中敌人时有100%机会施展等级18骨矛
箭矢或十字弓弹火焰爆炸
+260-340%增强伤害[ED](可变)
忽视目标防御力
20%额外的攻击准确率[AR]加成
+280-330%对恶魔的伤害(可变)
20%机率出现致命攻击[DS]
防止怪物自疗
击退
l:冰冻Ice# 4孔远距离攻击武器
Amn(11)+Shael(13)+Jah(31)+Lo(28)
当你升级时有100%机会施展等级40暴风雪
击中敌人时有25%机会施展等级22霜之新星
赋予等级18神圣冰冻灵气
+20%提升攻击速度[IAS]
+140-210%增强伤害[ED](可变)
忽视目标防御力
+25-30%冰冻系技能伤害
-20%敌人的冰冻系抗性
7%生命于击中时偷取
20%机率出现致命攻击[DS]
3.125%-309.375%额外金币从怪物身上取得(以角色等级决定)
m:愤怒Wrath# 4孔远距离攻击武器
Pul(21)+Lum(17)+Ber(30)+Mal(23)
击中敌人时有30%机会施展等级1衰老
击中敌人时有5%机会施展等级10偷取生命
+375%对恶魔的伤害
+100对抗恶魔的攻击准确率[AR]
+250-300%%对不死生物的伤害(可变)
增加85-120的魔法伤害
增加41-240的闪电伤害
20%机率出现压碎性打击[CB]
防止怪物自疗
+10精力
无法冰冻
n:和谐Harmony# 4孔远距离攻击武器
Tir(3)+Ith(6)+Sol(12)+Ko(18)
赋予等级10活力灵气
+200-275%增强伤害[ED](可变)
+9最小伤害值
+9最大伤害值
增加55-160的火焰伤害
增加55-160的冰冷伤害
+2-6致女武神
+10敏捷
法力恢复速度提高20%
+2点法力在每杀一个敌人后取得
等级20重生[25聚气]
推荐材料:天然生成4孔:+3弓和十字弓技能女族长之弓
o:边缘Edge# 3孔远距离攻击武器
Tir(3)+Tal(7)+Amn(11)
赋予等级15荆棘灵气
+35%提升攻击速度[IAS]
+320-380%对恶魔的伤害(可变)
+280%对不死生物的伤害
+75毒素伤害,持续时间5秒
7%生命于击中时偷取
防止怪物自疗
+2法力在每杀一个敌人后取得
降低所有商人的价格15%
p:精神Spirit# 4孔剑/盾牌
Tal(7)+Thul(10)+Ort(9)+Amn(11)
+2所有技能
+25%-35%快速施法速度[FCR](可变)
+55%快速打击恢复[FHR]
+250对远程攻击的防御
+22体力
+89-112法力(可变)
+3-8魔法吸收(可变)
增加1-50的闪电伤害(武器)/抗闪电+35%(盾牌)
增加3-14的冰冷伤害(武器)/抗寒+35%(盾牌)
增加75的毒素伤害(持续时间5秒)(武器)/抗毒+35%(盾牌)
+7%生命于击中时偷取(武器)/攻击者受到伤害14 (盾牌)
q:凤凰Phoenix# 4孔武器/盾牌
Vex(26)+Vex(26)+Lo(28)+Jah(31)
当你升级时有100%机会施展等级40炽烈之径
击中敌人时有40%机会施展等级22火风暴
赋予等级10-15救赎灵气
+350-400%增强伤害[ED](可变)
-28%敌人的火焰系抗性
+350-400对远程攻击的防御(可变)
+50生命(盾牌)/忽视目标防御力(武器)
+5%最大闪电抵抗(盾牌)/20%机率出现致命攻击(武器)
+10%最大火焰抵抗(盾牌)/14%法力于击中时偷取(武器)
+15-21火焰吸收(可变)
推荐材料:15ED统治者大盾/抗性+40以上的圣骑士专用精英级盾牌
r:飞龙Dragon# 3孔盔甲/盾牌
Sur(29)+Lo(28)+Sol(12)
被击中时有20%机会施展等级18毒牙
击中敌人时有12%机会施展等级15九头海蛇
赋予等级14圣火灵气
+360防御
+230对远程攻击的防御
+3-5所有基本属性(可变)
+0.375-37.125%力量(以角色等级决定)
增加法力上限5%
+5%最大闪电抵抗
物理伤害减少[DR]7
推荐材料:天然生成3孔:15ED统治者大盾
s:梦境Dream# 3孔头盔/盾牌
Io(16)+Jah(31)+Pul(21)
被击中时有10%机会施展等级15迷乱
赋予等级15神圣冲击灵气
+20-30%快速打击恢复[FHR](可变)
+30%增强防御
+150-220防御(可变)
+10体力
增加生命上限5%
+0.625-61.875法力(以角色等级决定)
所有抗性+5-20(可变)
25%更佳的机会取得魔法装备[MF]
推荐材料:15ed精英级头盔——权冠等
t:执法者Lawbringer# 3孔剑/铁锤(Hammers)/权杖(Scepters)
Amn(11)+Lem(20)+Ko(18)
击中敌人时有20%机会施展等级15衰老
赋予等级18庇护所灵气
-50%目标防御
增加150-210的火焰伤害
增加130-180的冰冷伤害
7%生命于击中时偷取
死亡怪物得以安息
+200-250对远程攻击的防御(可变)
+10敏捷
75%额外金币从怪物身上取得
u:誓约Oath# 4孔剑/斧头/钉头锤(Maces)
Shael(13)+Pul(21)+Mal(23)+Lum(17)
击中敌人有30%机会施展等级20白骨之魂
无法破坏
+50%提升攻击速度[IAS]
+210-340%增强伤害[ED](可变)
+75%对恶魔的伤害
+100对抗恶魔的攻击准确率[AR]
防止怪物自疗
+10精力
+10-15魔法吸收(可变)
等级16狼獾之心[20聚气]
等级17钢铁石魔[14聚气]
推荐材料:eth神秘之剑/炎魔之刃;天然生成4孔:巨神之剑/巨神之刃/狂战士斧/天罚之锤
v:裂缝Rift# 4孔长柄/权杖(Scepters)
Hel(15)+Ko(18)+Lem(20)+Gul(25)
击中敌人时有20%机会施展等级16龙卷风
攻击时有16%机会施展等级21冰封球
20%额外的攻击准确率[AR]加成
增加160-250的魔法伤害
增加60-180的火焰伤害
+5-15所有属性(可变)
38%受损的生命转换成法力的提高
75%额外金币从怪物身上取得
等级15攻击反噬[40 聚气]
需求[REQ]-20%
w:思考之声Voice of Reason# 4孔剑/钉头锤(Maces)
Lem(20)+Ko(18)+El(1)+Eld(2)
击中敌人时有15%机会施展等级13冰封球
击中敌人时有18%机会施展等级20冰风暴
+50攻击准确率[AR]
+220-350%对恶魔的伤害(可变)
+280-300%对不死生物的伤害(可变)
+50对抗不死生物的攻击准确率[AR]
增加100-220的冰冷伤害
-24%敌人的冰冻系抗性
+10敏捷
无法冰冻
75%额外金币从怪物身上取得
+1照亮范围
『肆』 暗黑2 如何打到ETH装备
这个是随机的 少穿有MF属性的装备
『伍』 暗黑符文怎么和装备。别用数字简称。“Eth”像这种类型的。好吧谢谢了
1# el 艾尔 +50 命中率,+1 光明度 +15 防御,+1 光明度,11
2# eld 艾德 175%伤害力对不死系 +50 命中率对不死系,15%体力耗费减慢,提升抵挡,11
3# tir 特尔 每杀一个敌人 +2 mana,每杀一个敌人 +2 mana,每杀一个敌人 +2 mana,13
4# nef 那夫 震退敌人,对远距离攻击 +30 防御,对远距离攻击 +30 防御,13
5# eth 爱斯 -25% 目标防御,提升 mana 回复速度 15%,提升 mana 回复速度 15%,15
6# ith 伊司 +9 最大伤害力,15% 伤害转换到 mana,15% 伤害转换到 mana,15
7# tal 塔尔 +75 毒攻击 效果持续 5 秒,防毒提升 30%,防毒提升 35%,17
8# ral 拉尔 +5-30 火伤害,防火提升 30%,防火提升 35%,19
9# ort 欧特 +1-50 电伤害,防电提升 30%,防电提升 35%,21
10# thul舒尔 +3-14 冰伤害,效果持续 3 秒,防冰提升 30%,防冰提升 35%,23
11# amn 安姆 每次命中偷取 7% 生命,敌人受到反伤害 14,敌人受到反伤害 14,25
12# sol 索尔 +9 最小伤害力,抵消物理伤害 7,抵消物理伤害 7,27
13# shael沙尔 20% 提升攻击速度 20%,快速恢复打击,20% 快速抵挡率,29
14# dol 多尔 命中后吓跑怪物概率 25%,自动恢复生命 +7,自动恢复生命 +7,31
15# hel 海尔 装备要求 -20%,装备要求 -15%,装备要求 -15%
16# io 埃欧 +10 活力,35
17# lum 卢姆 +10 能量,37
18# ko 科 +10 敏捷,39
19# fal 法尔 +10 强壮,41
20# lem 蓝姆 75% 得到额外金钱,50% 得到额外金钱,50% 得到额外金钱,43
21# pul 普尔 +75% 伤害力对恶魔 +100 命中率对恶魔,30% 提升防御,30% 提升防御,45
22# um 乌姆 25% 概率造成伤口,四防 +15,四防 +22,47
23# mal 马尔 防止怪物治疗,抵消魔法伤害 7,抵消魔法伤害 7,49
24# ist 伊司特 30% 提升mf,25% 提升mf,25% 提升mf,51
25# gul 古尔 20% 提升攻击命中率,+5% 防毒上限,+5% 防毒上限,53
26# vex 伐克斯 每次命中偷取 7% mana,+5% 防火上限,+5% 防火上限,55
27# ohm 欧姆 +50% 伤害力,+5% 防冰上限,+5% 防冰上限,57
28# lo 罗 20% 概率双倍打击,+5% 防电上限,+5% 防电上限,59
29# sur 瑟 命中后使目标失明,提升 mana 上限 5%,+50 点 mana,61
30# ber 贝 20% 概率决定性打击,抵消物理伤害 8%,抵消物理伤害 8%,63
31# jah 乔 忽略目标防御,提升生命上限 5%,+50 生命,65
32# cham查姆 冰冻目标 +3,不被冰冻,不被冰冻,67
33# zod 萨德 永不磨损,69
要怎么和 你自己再上网上找 这是符文数字意思
『陆』 sol会涨到3000一个吗
『柒』 以太坊是什么丨以太坊开发入门指南
以太坊是什么丨以太坊开发入门指南
很多同学已经跃跃欲试投入到区块链开发队伍当中来,可是又感觉无从下手,本文将基于以太坊平台,以通俗的方式介绍以太坊开发中涉及的各晦涩的概念,轻松带大家入门。
以太坊是什么
以太坊(Ethereum)是一个建立在区块链技术之上, 去中心化应用平台。它允许任何人在平台中建立和使用通过区块链技术运行的去中心化应用。
对这句话不理解的同学,姑且可以理解为以太坊是区块链里的Android,它是一个开发平台,让我们就可以像基于Android Framework一样基于区块链技术写应用。
在没有以太坊之前,写区块链应用是这样的:拷贝一份比特币代码,然后去改底层代码如加密算法,共识机制,网络协议等等(很多山寨币就是这样,改改就出来一个新币)。
以太坊平台对底层区块链技术进行了封装,让区块链应用开发者可以直接基于以太坊平台进行开发,开发者只要专注于应用本身的开发,从而大大降低了难度。
目前围绕以太坊已经形成了一个较为完善的开发生态圈:有社区的支持,有很多开发框架、工具可以选择。
智能合约
什么是智能合约
以太坊上的程序称之为智能合约, 它是代码和数据(状态)的集合。
智能合约可以理解为在区块链上可以自动执行的(由事件驱动的)、以代码形式编写的合同(特殊的交易)。
在比特币脚本中,我们讲到过比特币的交易是可以编程的,但是比特币脚本有很多的限制,能够编写的程序也有限,而以太坊则更加完备(在计算机科学术语中,称它为是“图灵完备的”),让我们就像使用任何高级语言一样来编写几乎可以做任何事情的程序(智能合约)。
智能合约非常适合对信任、安全和持久性要求较高的应用场景,比如:数字货币、数字资产、投票、保险、金融应用、预测市场、产权所有权管理、物联网、点对点交易等等。
目前除数字货币之外,真正落地的应用还不多(就像移动平台刚开始出来一样),相信1到3年内,各种杀手级会慢慢出现。
编程语言:Solidity
智能合约的默认的编程语言是Solidity,文件扩展名以.sol结尾。
Solidity是和JavaScript相似的语言,用它来开发合约并编译成以太坊虚拟机字节代码。
还有长像Python的智能合约开发语言:Serpent,不过建议大家还是使用Solidity。
Browser-Solidity是一个浏览器的Solidity IDE, 大家可以点进去看看,以后我们更多文章介绍Solidity这个语言。
运行环境:EVM
EVM(Ethereum Virtual Machine)以太坊虚拟机是以太坊中智能合约的运行环境。
Solidity之于EVM,就像之于跟JVM的关系一样,这样大家就容易理解了。
以太坊虚拟机是一个隔离的环境,在EVM内部运行的代码不能跟外部有联系。
而EVM运行在以太坊节点上,当我们把合约部署到以太坊网络上之后,合约就可以在以太坊网络中运行了。
合约的编译
以太坊虚拟机上运行的是合约的字节码形式,需要我们在部署之前先对合约进行编译,可以选择Browser-Solidity Web IDE或solc编译器。
合约的部署
在以太坊上开发应用时,常常要使用到以太坊客户端(钱包)。平时我们在开发中,一般不接触到客户端或钱包的概念,它是什么呢?
以太坊客户端(钱包)
以太坊客户端,其实我们可以把它理解为一个开发者工具,它提供账户管理、挖矿、转账、智能合约的部署和执行等等功能。
EVM是由以太坊客户端提供的。
Geth是典型的开发以太坊时使用的客户端,基于Go语言开发。 Geth提供了一个交互式命令控制台,通过命令控制台中包含了以太坊的各种功能(API)。Geth的使用我们之后会有文章介绍,这里大家先有个概念。
Geth控制台和Chrome浏览器开发者工具里的面的控制台是类似,不过是跑在终端里。
相对于Geth,Mist则是图形化操作界面的以太坊客户端。
如何部署
智能合约的部署是指把合约字节码发布到区块链上,并使用一个特定的地址来标示这个合约,这个地址称为合约账户。
以太坊中有两类账户:
· 外部账户
该类账户被私钥控制(由人控制),没有关联任何代码。
· 合约账户
该类账户被它们的合约代码控制且有代码与之关联。
和比特币使用UTXO的设计不一样,以太坊使用更为简单的账户概念。
两类账户对于EVM来说是一样的。
外部账户与合约账户的区别和关系是这样的:一个外部账户可以通过创建和用自己的私钥来对交易进行签名,来发送消息给另一个外部账户或合约账户。
在两个外部账户之间传送消息是价值转移的过程。但从外部账户到合约账户的消息会激活合约账户的代码,允许它执行各种动作(比如转移代币,写入内部存储,挖出一个新代币,执行一些运算,创建一个新的合约等等)。
只有当外部账户发出指令时,合同账户才会执行相应的操作。
合约部署就是将编译好的合约字节码通过外部账号发送交易的形式部署到以太坊区块链上(由实际矿工出块之后,才真正部署成功)。
运行
合约部署之后,当需要调用这个智能合约的方法时只需要向这个合约账户发送消息(交易)即可,通过消息触发后智能合约的代码就会在EVM中执行了。
Gas
和云计算相似,占用区块链的资源(不管是简单的转账交易,还是合约的部署和执行)同样需要付出相应的费用(天下没有免费的午餐对不对!)。
以太坊上用Gas机制来计费,Gas也可以认为是一个工作量单位,智能合约越复杂(计算步骤的数量和类型,占用的内存等),用来完成运行就需要越多Gas。
任何特定的合约所需的运行合约的Gas数量是固定的,由合约的复杂度决定。
而Gas价格由运行合约的人在提交运行合约请求的时候规定,以确定他愿意为这次交易愿意付出的费用:Gas价格(用以太币计价) * Gas数量。
Gas的目的是限制执行交易所需的工作量,同时为执行支付费用。当EVM执行交易时,Gas将按照特定规则被逐渐消耗,无论执行到什么位置,一旦Gas被耗尽,将会触发异常。当前调用帧所做的所有状态修改都将被回滚, 如果执行结束还有Gas剩余,这些Gas将被返还给发送账户。
如果没有这个限制,就会有人写出无法停止(如:死循环)的合约来阻塞网络。
因此实际上(把前面的内容串起来),我们需要一个有以太币余额的外部账户,来发起一个交易(普通交易或部署、运行一个合约),运行时,矿工收取相应的工作量费用。
以太坊网络
有些着急的同学要问了,没有以太币,要怎么进行智能合约的开发?可以选择以下方式:
选择以太坊官网测试网络Testnet
测试网络中,我们可以很容易获得免费的以太币,缺点是需要发很长时间初始化节点。
使用私有链
创建自己的以太币私有测试网络,通常也称为私有链,我们可以用它来作为一个测试环境来开发、调试和测试智能合约。
通过上面提到的Geth很容易就可以创建一个属于自己的测试网络,以太币想挖多少挖多少,也免去了同步正式网络的整个区块链数据。
使用开发者网络(模式)
相比私有链,开发者网络(模式)下,会自动分配一个有大量余额的开发者账户给我们使用。
使用模拟环境
另一个创建测试网络的方法是使用testrpc,testrpc是在本地使用内存模拟的一个以太坊环境,对于开发调试来说,更方便快捷。而且testrpc可以在启动时帮我们创建10个存有资金的测试账户。
进行合约开发时,可以在testrpc中测试通过后,再部署到Geth节点中去。
更新:testrpc 现在已经并入到Truffle 开发框架中,现在名字是Ganache CLI。
Dapp:去中心化的应用程序
以太坊社区把基于智能合约的应用称为去中心化的应用程序(DecentralizedApp)。如果我们把区块链理解为一个不可篡改的数据库,智能合约理解为和数据库打交道的程序,那就很容易理解Dapp了,一个Dapp不单单有智能合约,比如还需要有一个友好的用户界面和其他的东西。
Truffle
Truffle是Dapp开发框架,他可以帮我们处理掉大量无关紧要的小事情,让我们可以迅速开始写代码-编译-部署-测试-打包DApp这个流程。
总结
我们现在来总结一下,以太坊是平台,它让我们方便的使用区块链技术开发去中心化的应用,在这个应用中,使用Solidity来编写和区块链交互的智能合约,合约编写好后之后,我们需要用以太坊客户端用一个有余额的账户去部署及运行合约(使用Truffle框架可以更好的帮助我们做这些事情了)。为了开发方便,我们可以用Geth或testrpc来搭建一个测试网络。
注:本文中为了方便大家理解,对一些概念做了类比,有些严格来不是准确,不过我也认为对于初学者,也没有必要把每一个概念掌握的很细致和准确,学习是一个逐步深入的过程,很多时候我们会发现,过一段后,我们会对同一个东西有不一样的理解。