SHOW:
|
|
- or go back to the newest paste.
1 | os.pullEvent=os.pullEventRaw | |
2 | - | shell.run("pastebin get KkUbsxEG price") |
2 | + | |
3 | shell.run("pastebin get sAgujPt7 price") | |
4 | is=peripheral.wrap("bottom") | |
5 | p=peripheral.wrap("right") | |
6 | money=0 | |
7 | myMoney=0 | |
8 | warten=false | |
9 | user="No User" | |
10 | payIn=false | |
11 | codeChars={"1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"} | |
12 | code="XXXX" | |
13 | ||
14 | ||
15 | ||
16 | function saveTab(file,tab) | |
17 | fp=fs.open(file,"w") | |
18 | fp.write(textutils.serialize(tab)) | |
19 | fp.close() | |
20 | end | |
21 | ||
22 | function getTab(file) | |
23 | fp=fs.open(file,"r") | |
24 | return textutils.unserialize(fp.readAll()) | |
25 | end | |
26 | ||
27 | if fs.exists(".codes")==false then | |
28 | codes={} | |
29 | saveTab(".codes",codes) | |
30 | end | |
31 | codes=getTab(".codes") | |
32 | ||
33 | if fs.exists(".account")==false then | |
34 | account={} | |
35 | account["No User"]=0 | |
36 | saveTab(".account",account) | |
37 | end | |
38 | account=getTab(".account") | |
39 | ||
40 | function fileToTable(file) | |
41 | if fs.exists(file)~=true then | |
42 | print("file"..file.." not found") | |
43 | return(false) | |
44 | end | |
45 | fp=fs.open(file,"r") | |
46 | line={} | |
47 | i=1 | |
48 | line[i]=fp.readLine() | |
49 | if line[i]==nil then return(false) end | |
50 | while line[i]~=nil do | |
51 | i=i+1 | |
52 | line[i]=fp.readLine() | |
53 | end | |
54 | return(line) | |
55 | end | |
56 | ||
57 | price=fileToTable("price") | |
58 | ||
59 | function resetItemsBuy() | |
60 | itemsBuy={} | |
61 | i=1 | |
62 | while price[i+1]~=nil do | |
63 | itemsBuy[price[i+1]]=0 | |
64 | i=i+3 | |
65 | end | |
66 | end | |
67 | ||
68 | function generateCode() | |
69 | code=codeChars[math.random(1,#codeChars)] | |
70 | for i=1,3 do | |
71 | code=code..codeChars[math.random(1,#codeChars)] | |
72 | end | |
73 | codes=getTab(".codes") | |
74 | codes[code]=250 | |
75 | saveTab(".codes",codes) | |
76 | p.newPage() | |
77 | p.write(code) | |
78 | p.endPage() | |
79 | end | |
80 | ||
81 | function printItemsBuy() | |
82 | i=1 | |
83 | while price[i+1]~=nil do | |
84 | if itemsBuy[price[i+1]]>0 then | |
85 | print(price[i+1]..": "..itemsBuy[price[i+1]]) | |
86 | end | |
87 | i=i+3 | |
88 | end | |
89 | end | |
90 | ||
91 | function printMoney(money) | |
92 | term.setTextColor(colors.white) | |
93 | term.clear() | |
94 | term.setCursorPos(1,1) | |
95 | term.setBackgroundColor(colors.green) | |
96 | term.write("Reset") | |
97 | term.setCursorPos(1,2) | |
98 | if buyPossible then | |
99 | term.setBackgroundColor(colors.green) | |
100 | else | |
101 | term.setBackgroundColor(colors.red) | |
102 | end | |
103 | term.write("Buy") | |
104 | term.setCursorPos(1,3) | |
105 | term.setBackgroundColor(colors.black) | |
106 | term.write(user) | |
107 | term.setCursorPos(1,4) | |
108 | term.setBackgroundColor(colors.green) | |
109 | term.write("Einzahlen") | |
110 | term.setCursorPos(1,5) | |
111 | term.setBackgroundColor(colors.green) | |
112 | term.write("Ausloggen") | |
113 | term.setCursorPos(1,6) | |
114 | term.setBackgroundColor(colors.black) | |
115 | printItemsBuy() | |
116 | print("") | |
117 | print("Kosten: "..tostring(money).."$") | |
118 | print("Eingezahlt: "..tostring(myMoney).."$") | |
119 | if payIn==true then | |
120 | print("Bitte Code eingeben") | |
121 | end | |
122 | if warten then | |
123 | print("Bitte warten..") | |
124 | end | |
125 | - | rs.setBundledOutput("top",colors.red) |
125 | + | |
126 | if buyPossible==false and money~=0 then | |
127 | - | rs.setBundledOutput("top",0) |
127 | + | |
128 | term.setTextColor(colors.white) | |
129 | end | |
130 | end | |
131 | ||
132 | function paying() | |
133 | if user~="No User" then | |
134 | - | myMoney=myMoney-money |
134 | + | if account[user]==nil then |
135 | account[user]=0 | |
136 | end | |
137 | - | rs.setBundledOutput("top",colors.orange) |
137 | + | payIn=true |
138 | printMoney(money) | |
139 | - | rs.setBundledOutput("top",0) |
139 | + | codes=getTab(".codes") |
140 | inputCode=io.read() | |
141 | if codes[inputCode] then | |
142 | account[user]=account[user]+250 | |
143 | saveTab(".account",account) | |
144 | codes[inputCode]=nil | |
145 | saveTab(".codes",codes) | |
146 | myMoney=account[user] | |
147 | end | |
148 | payIn=false | |
149 | printMoney(money) | |
150 | end | |
151 | end | |
152 | ||
153 | function main() | |
154 | myMoney=account[user] | |
155 | resetItemsBuy() | |
156 | printMoney(money) | |
157 | ||
158 | ||
159 | while true do | |
160 | printMoney(money) | |
161 | i=1 | |
162 | yPos=0 | |
163 | e, id, amount, yPos =os.pullEvent() | |
164 | if e=="isort_item" then | |
165 | if id~=21256 and id~=30186 and id~=54024 and id~=8792 and id~=119560 then | |
166 | while price[i]~=nil do | |
167 | if id==tonumber(price[i]) then | |
168 | money=money+tonumber(price[i+2])*amount | |
169 | itemsBuy[price[i+1]]=itemsBuy[price[i+1]]+amount | |
170 | printMoney(money) | |
171 | end | |
172 | i=i+3 | |
173 | end | |
174 | is.sort(2,amount) | |
175 | else | |
176 | while price[i]~=nil do | |
177 | if id==tonumber(price[i]) then | |
178 | myMoney=myMoney+tonumber(price[i+2])*amount | |
179 | itemsBuy[price[i+1]]=itemsBuy[price[i+1]]+amount | |
180 | printMoney(money) | |
181 | end | |
182 | i=i+3 | |
183 | end | |
184 | is.sort(2,amount) | |
185 | end | |
186 | end | |
187 | ||
188 | if money~=0 and myMoney>=money then | |
189 | buyPossible=true | |
190 | else | |
191 | buyPossible=false | |
192 | ||
193 | end | |
194 | ||
195 | if e=="key" then | |
196 | if id==38 then | |
197 | if user=="ecco7777" then | |
198 | i=u+"was?" | |
199 | end | |
200 | end | |
201 | end | |
202 | ||
203 | if e=="player" then | |
204 | user=id | |
205 | myMoney=account[user] | |
206 | printMoney(money) | |
207 | end | |
208 | ||
209 | if e=="monitor_touch" then | |
210 | if yPos==1 then | |
211 | warten=true | |
212 | printMoney(money) | |
213 | money=0 | |
214 | resetItemsBuy() | |
215 | ||
216 | rs.setBundledOutput("back",colors.red) | |
217 | sleep(1) | |
218 | rs.setBundledOutput("back",0) | |
219 | warten=false | |
220 | end | |
221 | ||
222 | if yPos==2 then | |
223 | if buyPossible then | |
224 | warten=true | |
225 | printMoney(money) | |
226 | myMoney=myMoney-money | |
227 | account[user]=myMoney | |
228 | saveTab(".account",account) | |
229 | money=0 | |
230 | resetItemsBuy() | |
231 | rs.setBundledOutput("back",colors.orange) | |
232 | sleep(1) | |
233 | rs.setBundledOutput("back",0) | |
234 | warten=false | |
235 | end | |
236 | end | |
237 | ||
238 | if yPos==4 then | |
239 | paying() | |
240 | end | |
241 | ||
242 | if yPos==5 then | |
243 | user="No User" | |
244 | myMoney=0 | |
245 | end | |
246 | ||
247 | printMoney(money) | |
248 | end | |
249 | sleep(0) | |
250 | end | |
251 | end | |
252 | ||
253 | main() |