修复计算器e键非法输入报错
This commit is contained in:
@@ -47,10 +47,6 @@ do--calculator
|
|||||||
end
|
end
|
||||||
|
|
||||||
mouseDown.calculator=NULL
|
mouseDown.calculator=NULL
|
||||||
local function EGG(str)
|
|
||||||
sceneTemp.reg=str
|
|
||||||
sceneTemp.sym="="
|
|
||||||
end
|
|
||||||
function keyDown.calculator(k)
|
function keyDown.calculator(k)
|
||||||
local S=sceneTemp
|
local S=sceneTemp
|
||||||
if byte(k)>=48 and byte(k)<=57 then
|
if byte(k)>=48 and byte(k)<=57 then
|
||||||
@@ -68,6 +64,10 @@ do--calculator
|
|||||||
end
|
end
|
||||||
elseif k=="."then
|
elseif k=="."then
|
||||||
if not(find(S.val,".",nil,true)or find(S.val,"e"))then
|
if not(find(S.val,".",nil,true)or find(S.val,"e"))then
|
||||||
|
if S.sym and not S.reg then
|
||||||
|
S.reg=S.val
|
||||||
|
S.val="0."
|
||||||
|
end
|
||||||
S.val=S.val.."."
|
S.val=S.val.."."
|
||||||
end
|
end
|
||||||
elseif k=="e"then
|
elseif k=="e"then
|
||||||
@@ -75,7 +75,13 @@ do--calculator
|
|||||||
S.val=S.val.."e"
|
S.val=S.val.."e"
|
||||||
end
|
end
|
||||||
elseif k=="backspace"then
|
elseif k=="backspace"then
|
||||||
S.val=sub(S.val,1,-2)
|
if S.sym=="="then
|
||||||
|
S.val=""
|
||||||
|
elseif S.sym then
|
||||||
|
S.sym=false
|
||||||
|
else
|
||||||
|
S.val=sub(S.val,1,-2)
|
||||||
|
end
|
||||||
if S.val==""then S.val="0"end
|
if S.val==""then S.val="0"end
|
||||||
elseif k=="+"or k=="="and kb.isDown("lshift","rshift")then
|
elseif k=="+"or k=="="and kb.isDown("lshift","rshift")then
|
||||||
S.sym="+"
|
S.sym="+"
|
||||||
@@ -90,37 +96,37 @@ do--calculator
|
|||||||
S.sym="/"
|
S.sym="/"
|
||||||
S.reg=false
|
S.reg=false
|
||||||
elseif k=="return"then
|
elseif k=="return"then
|
||||||
if S.val then
|
if byte(S.val,-1)==101 then S.val=sub(S.val,1,-2)end
|
||||||
if S.sym and S.reg then
|
if S.sym and S.reg then
|
||||||
S.val=
|
if byte(S.reg,-1)==101 then S.reg=sub(S.reg,1,-2)end
|
||||||
S.sym=="+"and (tonumber(S.reg)or 0)+tonumber(S.val)or
|
S.val=
|
||||||
S.sym=="-"and (tonumber(S.reg)or 0)-tonumber(S.val)or
|
S.sym=="+"and (tonumber(S.reg)or 0)+tonumber(S.val)or
|
||||||
S.sym=="*"and (tonumber(S.reg)or 0)*tonumber(S.val)or
|
S.sym=="-"and (tonumber(S.reg)or 0)-tonumber(S.val)or
|
||||||
S.sym=="/"and (tonumber(S.reg)or 0)/tonumber(S.val)or
|
S.sym=="*"and (tonumber(S.reg)or 0)*tonumber(S.val)or
|
||||||
-1
|
S.sym=="/"and (tonumber(S.reg)or 0)/tonumber(S.val)or
|
||||||
end
|
-1
|
||||||
S.sym="="
|
end
|
||||||
S.reg=false
|
S.sym="="
|
||||||
local v=tonumber(S.val)
|
S.reg=false
|
||||||
if v==600+26 then S.pass=true
|
local v=tonumber(S.val)
|
||||||
elseif v==190000+6022 then
|
if v==600+26 then S.pass=true
|
||||||
S.pass,marking=true
|
elseif v==190000+6022 then
|
||||||
LOG.print("\68\69\86\58\87\97\116\101\114\109\97\114\107\32\82\101\109\111\118\101\100","message")
|
S.pass,marking=true
|
||||||
SFX.play("clear")
|
LOG.print("\68\69\86\58\87\97\116\101\114\109\97\114\107\32\82\101\109\111\118\101\100","message")
|
||||||
elseif v==72943816 then
|
SFX.play("clear")
|
||||||
S.pass=true
|
elseif v==72943816 then
|
||||||
for name,M in next,Modes do
|
S.pass=true
|
||||||
if not modeRanks[name]then
|
for name,M in next,Modes do
|
||||||
modeRanks[name]=M.score and 0 or 6
|
if not modeRanks[name]then
|
||||||
end
|
modeRanks[name]=M.score and 0 or 6
|
||||||
end
|
end
|
||||||
FILE.saveUnlock()
|
|
||||||
LOG.print("\68\69\86\58\85\78\76\79\67\75\65\76\76","message")
|
|
||||||
SFX.play("clear_2")
|
|
||||||
elseif v==1379e8+2626e4+1379 then
|
|
||||||
S.pass=true
|
|
||||||
SCN.go("debug")
|
|
||||||
end
|
end
|
||||||
|
FILE.saveUnlock()
|
||||||
|
LOG.print("\68\69\86\58\85\78\76\79\67\75\65\76\76","message")
|
||||||
|
SFX.play("clear_2")
|
||||||
|
elseif v==1379e8+2626e4+1379 then
|
||||||
|
S.pass=true
|
||||||
|
SCN.go("debug")
|
||||||
end
|
end
|
||||||
elseif k=="escape"then
|
elseif k=="escape"then
|
||||||
S.val,S.reg,S.sym="0"
|
S.val,S.reg,S.sym="0"
|
||||||
|
|||||||
Reference in New Issue
Block a user