summaryrefslogtreecommitdiff
path: root/pad/init_code.lua
blob: 5996fe399d695ca7b6e360e9d789d11d3e29debf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
if event.init then
  local accounts = {}
  S.acc = S.acc or accounts
end

F.ack = function(n, c)
  local r
  local acc_n

  if n ~= nil and c ~= nil then
    acc_n = S.acc and S.acc[n]
    if acc_n then
      r = S.acc[n][c]
    end
    
    if r ~= nil and r > 0 then
      S.acc[n][c] = S.acc[n][c] - 1
    end
  end

  return r
end

F.ack2 = function(n, c)
  local r
  local acc_n

  if n ~= nil and c ~= nil then
    acc_n = S.acc and S.acc[n]
    if acc_n then
      r = S.acc[n][c]
    end
  end

  return r
end

F.cac = function(n)
  local c = 0

  if n ~= nil and S.acc[n] ~= nil then
    for _ in pairs(S.acc[n]) do
      c = c + 1
    end
  end

  return c
end

F.adc = function(n, c, a)
  local s

  if n ~= nil and c ~= nil then
    acc_n = S.acc and S.acc[n]

    if not acc_n then
      S.acc[n] = {}
    end
    S.acc[n][c] = a

    if not S.acc[n][c] then
      s = false
    else
      s = true
    end
  end

  return s
end

F.ick = function (m)
   local wm, au, out, r
   local a, b, c, d
   
   if m ~= nil then
     a = m:find("\\u0003watermark\\u0002")
     c = m:find("\\u0003owner\\u0002")
   end

   if a ~= nil then
     wm = m:sub(a+21)
   end

   if c ~= nil then
     au = m:sub(c+17)
   end

   if wm ~= nil then
     b = wm:find("\\u0003")
     if b then
       wm = wm:sub(1, b - 1)
     end
   end

   if au ~= nil then
     d = au:find("\\u0003")
     if d then
       au = au:sub(1, d - 1)
     end
     if au and au:sub(-9) == "(printed)" then
       au = au:sub(1, -11)
     end
   end

   if au ~= nil and wm ~= nil then
     r = F.ack(au, wm)
   else
     return "ERR:Not a valid transport pass"
   end

   if r ~= nil and r > 0 then
     out = "ACC:" .. tostring(r-1) .. " remaining uses"
   else
     out = "ERR:No remaining uses. Please top-up."
   end

   return out
end