10 寒雪落花静云月 19小时前 218次点击
上代码之前先说一下。那些不想看就别看。说现在大部分盲人游戏和盲人的软件都是lua编写,你说技术过时,有本事你不玩这些lua编写的游戏或软件。不管啥技术,只要有一个人用就没有完全过时。并且大部分游戏的逻辑都是用这个脚本语言写的。少了lua,很多游戏的灵魂也没了。就连最近玩的荣耀战场都是用lua编写的。幻想编辑器也是。心智互动的东西,基本上全用的lua加一点点java。生存之路也是lua。侠行天下,魔幻庄园,鬼影迷踪,全都是lua+Cocos2d。
唯一不可能是的,就只有命运竞技场,c++写的。点名的没有拆过安装包。不知道长啥样。然后盛石王座是用java。优迪科技不知道用的是啥,反正的是unit3d。问道争锋,js+Cocos2d。
代码如下,这里只做分享,请勿拿去做不好的事情。
require "import"
import "android.app.*"
import "android.os.*"
import "android.widget.*"
import "android.view.*"
function 获取输入对话框(输入要求,输入框显示,确认按钮文本,取消按钮文本,输入类型,字数限制,回调函数,取消事件)
require "import"
import "android.widget.*"
import "android.text.InputFilter"
import "android.app.AlertDialog"
import "android.os.Handler"
import "android.os.Looper"
import "android.widget.Toast"
输入类型 = 输入类型 or "文本"
字数限制 = 字数限制 or 0
local 对话框
local ids = {}
local 布局 = loadlayout(
{
LinearLayout;
orientation = "vertical";
layout_width = "fill";
layout_height = "wrap";
padding = "15dp";
{
EditText;
layout_width = "fill";
layout_height = "48dp";
id = "输入框";
hint = 输入框显示;
textSize = "16sp";
inputType = 输入类型 == "数字" and 2 or
输入类型 == "密码" and 129 or 1;
singleLine = true;
};
{
LinearLayout;
orientation = "horizontal";
layout_width = "fill";
layout_height = "48dp";
layout_marginTop = "10dp";
{
Button;
layout_width = "0dp";
layout_height = "match_parent";
text = 取消按钮文本;
textSize = "16sp";
id = "取消按钮";
layout_weight = "1";
background = "#E0E0E0";
};
{
Button;
layout_width = "0dp";
layout_height = "match_parent";
text = 确认按钮文本;
textSize = "16sp";
id = "确认按钮";
layout_weight = "1";
background = "#4CAF50";
textColor = "#FFFFFF";
};
};
},ids)
local 输入框 = ids.输入框
local 确认按钮 = ids.确认按钮
local 取消按钮 = ids.取消按钮
确认按钮.onClick = function()
local 内容 = 输入框.getText().toString()
if 内容 == "" then
Toast.makeText(activity, "请输入内容", Toast.LENGTH_SHORT).show()
return
end
if 输入类型 == "数字" then
local 数字内容 = tonumber(内容)
if not 数字内容 then
Toast.makeText(activity, "请输入有效数字", Toast.LENGTH_SHORT).show()
return
end
内容 = 数字内容
end
对话框.dismiss()
回调函数(内容)
end
取消按钮.onClick = function()
if 取消事件 then
取消事件()
end
对话框.dismiss()
end
local handler = Handler(Looper.getMainLooper())
handler.post(function()
对话框 = AlertDialog.Builder(activity)
.setTitle(输入要求)
.setView(布局)
.setCancelable(false)
.create()
if 字数限制 > 0 then
输入框.setFilters{InputFilter.LengthFilter(字数限制)}
end
对话框.show()
输入框.requestFocus()
对话框.getWindow().setSoftInputMode(2)
end)
end
获取输入对话框("请输入单次请求最小用时(毫秒)","编辑框","下一步","取消","数字",16,function(最小用时结果)
if 最小用时结果 then
最小用时=最小用时结果
获取输入对话框("请输入单次请求最大用时(毫秒)","编辑框","下一步","取消","数字",16,function(最大用时结果)
if 最大用时结果 then
最大用时=最大用时结果
获取输入对话框("请输入请求链接","编辑框","下一步","取消","字符串",1000,function(请求链接结果)
if 请求链接结果 then
请求链接=请求链接结果
获取输入对话框("请输入请求次数","编辑框","开始","取消","数字",16,function(请求次数结果)
if 请求次数结果 then
请求次数=请求次数结果
print("请求开始")
i = 0
批量请求 = Ticker()
批量请求.Period = math.random(最小用时,最大用时)
批量请求.onTick = function()
时间 = math.random(最小用时,最大用时)
批量请求.Period = 时间
i = i + 1
local 链接 = 请求链接
Http.get(链接, nil, nil, nil, function(代码, 内容)
print("第"..i.."次请求,代码"..代码..",用时"..时间.."毫秒,结果"..内容)
end)
if i == 请求次数 then
批量请求.stop()
批量请求=nil
end
end
批量请求.start()
else
os.exit()
end
end,
function()
os.exit()
end)
else
os.exit()
end
end,
function()
os.exit()
end)
else
os.exit()
end
end,
function()
os.exit()
end)
else
os.exit()
end
end,
function()
os.exit()
end)
如果你想用它刷一刷话题的浏览次数也行。就是至于会不会被骂,那不是我的事儿。
为什么会有最小随机和最大随机用时这两个东西?因为有些网站在横地的每一次请求用时情况下,以为你在攻击他。所以时间越不均衡,越向真人请求。然后网站也会更容易响应。
这好像有点类似于之前别人发过的那个批量刷新网页的代码。
不过我拿去运行了一下,发现还是你这个更好。
毕竟我要换链接的话,不需要自己去代码里面改。而且你这个还可以手动设置间隔时间在范围内随机波动。