在Jassecar的SteamBot中,是否有一种方法可以计算不同定义的项并将它们加起来?我试过这个:
switch(message.ToLower())
{
case "ticket":
foreach (ulong id in Trade.OtherOfferedItems)
{
int totalScrap = 0;
Trade.SendMessage("Please pay 3.44 ref");
var items = Trade.OtherOfferedItems;
var itemType = Trade.OtherInventory.GetItem(id);
if (itemType.Defindex == 5002)
{
totalScrap = items.Count * 9;
}
else if (itemType.Defindex == 5001)
{
totalScrap = items.Count * 3;
}
else if (itemType.Defindex == 5000)
{
totalScrap = items.Count;
}
Trade.RemoveAllItems();
if (totalScrap > 31)
{
Trade.AddItemByDefindex(725);
int Change = 31 - totalScrap;
while(Change > 0)
{
Trade.AddItemByDefindex(5000);
Change - 1;
}
}
else
{
Trade.SendMessage("You have only added a total of " + totalScrap + " Scrap, please put up the correct amount and type ticket again");
}
}
break;但它将把1份废钢(5000份材料)和1份精炼金属(5002项)计算为9份,并对用户说,他总共添加了18份废料,而他只加了10份。(1份精炼=9份)
发布于 2014-05-06 10:56:06
在id的Trade.OtherOfferedItems中迭代。
Error#1在循环的每一次迭代中都要清除totalScrap,方法是将其设置为0。
Error#2在这里:
`totalScrap = items.Count * 9`你说的是“废品总量乘以9”,这是错误的,因为如果你有两个有可能不同的Defindexes的项目(在你的例子中是5002和5000 ),它就给你18个。
Error#3那么你就有了:
Trade.RemoveAllItems();我认为它将从您实际上正在迭代的集合中删除所有项--我真的很惊讶您的循环没有崩溃。把totalScrap放在外面。迭代每一项,然后执行所有清除、删除和检查和是否为is>31之和。
https://stackoverflow.com/questions/23492307
复制相似问题