root/npc/custom/stock_market.txt @ 25

Revision 1, 20.2 kB (checked in by jinshiro, 17 years ago)
Line 
1//===== eAthena Script =======================================
2//= Stock Market Game
3//===== By: ==================================================
4//= acky (acky@bigpond.net.au)
5//===== Current Version: =====================================
6//= 1.3.1
7//===== Compatible With: =====================================
8//= Any eAthena Version
9//===== Description: =========================================
10//= NPC for a stock market game.
11//===== Additional Comments: =================================
12//= GM Must activate the NPC before use.
13//= Fixed MAJOR exploit. - players could buy for free
14//= Low prices likely to rise, High prices likely to drop
15//= Small fix by Galeon
16//= Lupus: This script lets players make 40,000,000z a day
17//=     so use it on your own risk
18//============================================================
19
20prontera,140,181,5      script  sharenames      -1,{
21end;
22OnInit:
23// Sets the names of the shares //
24set $S1N$,"JIN";
25set $S2N$,"VNG";
26set $S3N$,"SHA";
27set $S4N$,"RGC";
28set $S5N$,"PSC";
29set $S6N$,"GNG";
30set $S7N$,"XRO";
31set $S8N$,"GRM";
32set $S9N$,"DOP";
33set $S10N$,"POR";
34
35// Transaction fee //
36set $S_Trans,1500;
37
38// Min & Max buyable //
39set $S_BuyMin,1;
40set $S_BuyMax,1000000;
41end;
42
43// Average Price (Your start prices) //
44set $S_Avg,100;
45
46// Set times of fluctuation //
47OnClock1100:
48set $S_LastUpd$,"12:00";
49goto S_Fluc;
50end;
51
52OnClock0000:
53set $S_LastUpd$,"00:00";
54goto S_Fluc;
55end;
56
57OnClock0600:
58set $S_LastUpd$,"06:00";
59goto S_Fluc;
60end;
61
62OnClock1800:
63set $S_LastUpd$,"18:00";
64goto S_Fluc;
65end;
66
67OnClock2100:
68set $S_LastUpd$,"21:00";
69goto S_Fluc;
70end;
71
72OnClock0900:
73set $S_LastUpd$,"09:00";
74goto S_Fluc;
75end;
76
77OnClock1500:
78set $S_LastUpd$,"15:00";
79goto S_Fluc;
80end;
81
82S_Fluc:
83set $fluc,rand (-6,6);
84set $S1B,$S1;
85set $S1,$S1+$fluc;
86if ($S1 < 25) set $S1,$S1+3;
87if ($S1 < 50) set $S1,$S1+2;
88if ($S1 > 150) set $S1,$S1-2;
89if ($S1 > 175) set $S1,$S1-3;
90if ($S1 < 1) set $S1,1;
91
92set $fluc,rand (-6,6);
93set $S2B,$S2;
94set $S2,$S2+$fluc;
95if ($S2 < 25) set $S2,$S2+3;
96if ($S2 < 50) set $S2,$S2+2;
97if ($S2 > 150) set $S2,$S2-2;
98if ($S2 > 175) set $S2,$S2-3;
99if ($S2 < 1) set $S2,1;
100
101set $fluc,rand (-6,6);
102set $S3B,$S3;
103set $S3,$S3+$fluc;
104if ($S3 < 25) set $S3,$S3+3;
105if ($S3 < 50) set $S3,$S3+2;
106if ($S3 > 150) set $S3,$S3-2;
107if ($S3 > 175) set $S3,$S3-3;
108if ($S3 < 1) set $S3,1;
109
110set $fluc,rand (-6,6);
111set $S4B,$S4;
112set $S4,$S4+$fluc;
113if ($S4 < 25) set $S4,$S4+3;
114if ($S4 < 50) set $S4,$S4+2;
115if ($S4 > 150) set $S4,$S4-2;
116if ($S4 > 175) set $S4,$S4-3;
117if ($S4 < 1) set $S4,1;
118
119set $fluc,rand (-6,6);
120set $S5B,$S5;
121set $S5,$S5+$fluc;
122if ($S5 < 25) set $S5,$S5+3;
123if ($S5 < 50) set $S5,$S5+2;
124if ($S5 > 150) set $S5,$S5-2;
125if ($S5 > 175) set $S5,$S5-3;
126if ($S5 < 1) set $S5,1;
127
128set $fluc,rand (-6,6);
129set $S6B,$S6;
130set $S6,$S6+$fluc;
131if ($S6 < 25) set $S6,$S6+3;
132if ($S6 < 50) set $S6,$S6+2;
133if ($S6 > 150) set $S6,$S6-2;
134if ($S6 > 175) set $S6,$S6-3;
135if ($S6 < 1) set $S6,1;
136
137set $fluc,rand (-6,6);
138set $S7B,$S7;
139set $S7,$S7+$fluc;
140if ($S7 < 25) set $S7,$S7+3;
141if ($S7 < 50) set $S7,$S7+2;
142if ($S7 > 150) set $S7,$S7-2;
143if ($S7 > 175) set $S7,$S7-3;
144if ($S7 < 1) set $S7,1;
145
146set $fluc,rand (-6,6);
147set $S8B,$S8;
148set $S8,$S8+$fluc;
149if ($S8 < 25) set $S8,$S8+3;
150if ($S8 < 50) set $S8,$S8+2;
151if ($S8 > 150) set $S8,$S8-2;
152if ($S8 > 175) set $S8,$S8-3;
153if ($S8 < 1) set $S8,1;
154
155set $fluc,rand (-6,6);
156set $S9B,$S9;
157set $S9,$S9+$fluc;
158if ($S9 < 25) set $S9,$S9+3;
159if ($S9 < 50) set $S9,$S9+2;
160if ($S9 > 150) set $S9,$S9-2;
161if ($S9 > 175) set $S9,$S9-3;
162if ($S9 < 1) set $S9,1;
163
164set $fluc,rand (-6,6);
165set $S10B,$S10;
166set $S10,$S10+$fluc;
167if ($S10 < 25) set $S10,$S10+3;
168if ($S10 < 50) set $S10,$S10+2;
169if ($S10 > 150) set $S10,$S10-2;
170if ($S10 > 175) set $S10,$S10-3;
171if ($S10 < 1) set $S10,1;
172end;
173}
174
175-       script  Stock Market::stockmarket       109,{
176// Ensures no trading when default prices have not been set //
177set @stotal,$S1+$S2+$S3+$S4+$S5+$S6+$S7+$S8+$S9+$S10;
178if (@stotal > 0) goto S_Start;
179mes "[Stock Market]";
180mes "Trading is currently closed.";
181if (getgmlevel() > 90) goto GM_Open;
182close;
183
184// Begining of interface //
185S_Start:
186mes "[Stock Market]";
187mes "Last fluctuation: " + $S_LastUpd$;
188
189// Loss/Gain in price //
190set @S1Update,$S1-$S1B;
191set @S2Update,$S2-$S2B;
192set @S3Update,$S3-$S3B;
193set @S4Update,$S4-$S4B;
194set @S5Update,$S5-$S5B;
195set @S6Update,$S6-$S6B;
196set @S7Update,$S7-$S7B;
197set @S8Update,$S8-$S8B;
198set @S9Update,$S9-$S9B;
199set @S10Update,$S10-$S10B;
200
201// Makes Loss/Gain Red/Green //
202if (@S1Update < 0) set @S1Update$,"^FF0000"+@S1Update+"^000000";
203if (@S1Update > 0) set @S1Update$,"^00FF00+"+@S1Update+"^000000";
204if (@S1Update == 0) set @S1Update$,@S1Update;
205
206if (@S2Update < 0) set @S2Update$,"^FF0000"+@S2Update+"^000000";
207if (@S2Update > 0) set @S2Update$,"^00FF00+"+@S2Update+"^000000";
208if (@S2Update == 0) set @S2Update$,@S2Update;
209
210if (@S3Update < 0) set @S3Update$,"^FF0000"+@S3Update+"^000000";
211if (@S3Update > 0) set @S3Update$,"^00FF00+"+@S3Update+"^000000";
212if (@S3Update == 0) set @S3Update$,@S3Update;
213
214if (@S4Update < 0) set @S4Update$,"^FF0000"+@S4Update+"^000000";
215if (@S4Update > 0) set @S4Update$,"^00FF00+"+@S4Update+"^000000";
216if (@S4Update == 0) set @S4Update$,@S4Update;
217
218if (@S5Update < 0) set @S5Update$,"^FF0000"+@S5Update+"^000000";
219if (@S5Update > 0) set @S5Update$,"^00FF00+"+@S5Update+"^000000";
220if (@S5Update == 0) set @S5Update$,@S5Update;
221
222if (@S6Update < 0) set @S6Update$,"^FF0000"+@S6Update+"^000000";
223if (@S6Update > 0) set @S6Update$,"^00FF00+"+@S6Update+"^000000";
224if (@S6Update == 0) set @S6Update$,@S6Update;
225
226if (@S7Update < 0) set @S7Update$,"^FF0000"+@S7Update+"^000000";
227if (@S7Update > 0) set @S7Update$,"^00FF00+"+@S7Update+"^000000";
228if (@S7Update == 0) set @S7Update$,@S7Update;
229
230if (@S8Update < 0) set @S8Update$,"^FF0000"+@S8Update+"^000000";
231if (@S8Update > 0) set @S8Update$,"^00FF00+"+@S8Update+"^000000";
232if (@S8Update == 0) set @S8Update$,@S8Update;
233
234if (@S9Update < 0) set @S9Update$,"^FF0000"+@S9Update+"^000000";
235if (@S9Update > 0) set @S9Update$,"^00FF00+"+@S9Update+"^000000";
236if (@S9Update == 0) set @S9Update$,@S9Update;
237
238if (@S10Update < 0) set @S10Update$,"^FF0000"+@S10Update+"^000000";
239if (@S10Update > 0) set @S10Update$,"^00FF00+"+@S10Update+"^000000";
240if (@S10Update == 0) set @S10Update$,@S10Update;
241
242// Displays shares & prices //
243mes "^21698F"+$S1N$+"^000000" + " " + $S1 + "z (" + @S1Update$ + ")";
244mes "^21698F"+$S2N$+"^000000" + " " + $S2 + "z (" + @S2Update$ + ")";
245mes "^21698F"+$S3N$+"^000000" + " " + $S3 + "z (" + @S3Update$ + ")";
246mes "^21698F"+$S4N$+"^000000" + " " + $S4 + "z (" + @S4Update$ + ")";
247mes "^21698F"+$S5N$+"^000000" + " " + $S5 + "z (" + @S5Update$ + ")";
248mes "^21698F"+$S6N$+"^000000" + " " + $S6 + "z (" + @S6Update$ + ")";
249mes "^21698F"+$S7N$+"^000000" + " " + $S7 + "z (" + @S7Update$ + ")";
250mes "^21698F"+$S8N$+"^000000" + " " + $S8 + "z (" + @S8Update$ + ")";
251mes "^21698F"+$S9N$+"^000000" + " " + $S9 + "z (" + @S9Update$ + ")";
252mes "^21698F"+$S10N$+"^000000" + " " + $S10 + "z (" + @S10Update$ + ")";
253next;
254
255// GM Menu link //
256if (getgmlevel() > 90) goto GM_subMenu;
257menu "Portfolio",S_Port,"Buy Shares",S_Buy,"Sell Shares",S_Sell,"Cancel",S_Quit;
258
259GM_subMenu:
260menu "Portfolio",S_Port,"Buy Shares",S_Buy,"Sell Shares",S_Sell,"GM Menu",GM_Menu,"Cancel",S_Quit;
261
262// Selling Shares //
263S_Sell:
264        mes "[Stock Market]";
265        mes "Enter the name of the share you wish to sell.";
266        mes "Transaction fee of ^FF0000" + $S_Trans + "z^000000 will apply.";
267        if (#S1 > 0) mes "^0000FF"+$S1N$+"^FF0000" + " x " + #S1 + " [" + $S1 + "z]";
268        if (#S2 > 0) mes "^0000FF"+$S2N$+"^FF0000" + " x " + #S2 + " [" + $S2 + "z]";
269        if (#S3 > 0) mes "^0000FF"+$S3N$+"^FF0000" + " x " + #S3 + " [" + $S3 + "z]";
270        if (#S4 > 0) mes "^0000FF"+$S4N$+"^FF0000" + " x " + #S4 + " [" + $S4 + "z]";
271        if (#S5 > 0) mes "^0000FF"+$S5N$+"^FF0000" + " x " + #S5 + " [" + $S5 + "z]";
272        if (#S6 > 0) mes "^0000FF"+$S6N$+"^FF0000" + " x " + #S6 + " [" + $S6 + "z]";
273        if (#S7 > 0) mes "^0000FF"+$S7N$+"^FF0000" + " x " + #S7 + " [" + $S7 + "z]";
274        if (#S8 > 0) mes "^0000FF"+$S8N$+"^FF0000" + " x " + #S8 + " [" + $S8 + "z]";
275        if (#S9 > 0) mes "^0000FF"+$S9N$+"^FF0000" + " x " + #S9 + " [" + $S9 + "z]";
276        if (#S10 > 0) mes "^0000FF"+$S10N$+"^FF0000" + " x " + #S10 + " [" + $S10 + "z]";
277        set @sellname$,"0";
278        input @sellname$;
279        set @sellamount,0;
280        input @sellamount;
281        if (@sellamount < 1) goto S_SellInv;
282        if (zeny < $S_Trans) goto S_NoZeny;
283        set zeny,zeny-$S_Trans;
284
285        SELLS1:
286        if (@sellname$ != $S1N$) goto SELLS2;
287        if (@sellamount > #S1) goto S_SellTooHigh;
288        set @price,@sellamount*$S1;
289        set #S1,#S1-@sellamount;
290        set zeny,zeny+@price;
291        next;
292        mes "Sold " + @sellamount + " " + $S1N$ + " shares.";
293        mes "Earned ^0000FF"+@price+"z^000000.";
294        next;
295        goto S_Start;
296
297        SELLS2:
298        if (@sellname$ != $S2N$) goto SELLS3;
299        if (@sellamount > #S2) goto S_SellTooHigh;
300        set @price,@sellamount*$S2;
301        set #S2,#S2-@sellamount;
302        set zeny,zeny+@price;
303        next;
304        mes "Sold " + @sellamount + " " + $S2N$ + " shares.";
305        mes "Earned ^0000FF"+@price+"z^000000.";
306        next;
307        goto S_Start;
308
309        SELLS3:
310        if (@sellname$ != $S3N$) goto SELLS4;
311        if (@sellamount > #S3) goto S_SellTooHigh;
312        set @price,@sellamount*$S3;
313        set #S3,#S3-@sellamount;
314        set zeny,zeny+@price;
315        next;
316        mes "Sold " + @sellamount + " " + $S3N$ + " shares.";
317        mes "Earned ^0000FF"+@price+"z^000000.";
318        next;
319        goto S_Start;
320
321        SELLS4:
322        if (@sellname$ != $S4N$) goto SELLS5;
323        if (@sellamount > #S4) goto S_SellTooHigh;
324        set @price,@sellamount*$S4;
325        set #S4,#S4-@sellamount;
326        set zeny,zeny+@price;
327        next;
328        mes "Sold " + @sellamount + " " + $S4N$ + " shares.";
329        mes "Earned ^0000FF"+@price+"z^000000.";
330        next;
331        goto S_Start;
332
333        SELLS5:
334        if (@sellname$ != $S5N$) goto SELLS6;
335        if (@sellamount > #S5) goto S_SellTooHigh;
336        set @price,@sellamount*$S5;
337        set #S5,#S5-@sellamount;
338        set zeny,zeny+@price;
339        next;
340        mes "Sold " + @sellamount + " " + $S5N$ + " shares.";
341        mes "Earned ^0000FF"+@price+"z^000000.";
342        next;
343        goto S_Start;
344
345        SELLS6:
346        if (@sellname$ != $S6N$) goto SELLS7;
347        if (@sellamount > #S6) goto S_SellTooHigh;
348        set @price,@sellamount*$S6;
349        set #S6,#S6-@sellamount;
350        set zeny,zeny+@price;
351        next;
352        mes "Sold " + @sellamount + " " + $S6N$ + " shares.";
353        mes "Earned ^0000FF"+@price+"z^000000.";
354        next;
355        goto S_Start;
356
357        SELLS7:
358        if (@sellname$ != $S7N$) goto SELLS8;
359        if (@sellamount > #S7) goto S_SellTooHigh;
360        set @price,@sellamount*$S7;
361        set #S7,#S7-@sellamount;
362        set zeny,zeny+@price;
363        next;
364        mes "Sold " + @sellamount + " " + $S7N$ + " shares.";
365        mes "Earned ^0000FF"+@price+"z^000000.";
366        next;
367        goto S_Start;
368
369        SELLS8:
370        if (@sellname$ != $S8N$) goto SELLS9;
371        if (@sellamount > #S8) goto S_SellTooHigh;
372        set @price,@sellamount*$S8;
373        set #S8,#S8-@sellamount;
374        set zeny,zeny+@price;
375        next;
376        mes "Sold " + @sellamount + " " + $S8N$ + " shares.";
377        mes "Earned ^0000FF"+@price+"z^000000.";
378        next;
379        goto S_Start;
380
381        SELLS9:
382        if (@sellname$ != $S9N$) goto SELLS10;
383        if (@sellamount > #S9) goto S_SellTooHigh;
384        set @price,@sellamount*$S9;
385        set #S9,#S9-@sellamount;
386        set zeny,zeny+@price;
387        next;
388        mes "Sold " + @sellamount + " " + $S9N$ + " shares.";
389        mes "Earned ^0000FF"+@price+"z^000000.";
390        next;
391        goto S_Start;
392
393        SELLS10:
394        if (@sellname$ != $S10N$) goto SELLS11;
395        if (@sellamount > #S10) goto S_SellTooHigh;
396        set @price,@sellamount*$S10;
397        set #S10,#S10-@sellamount;
398        set zeny,zeny+@price;
399        next;
400        mes "Sold " + @sellamount + " " + $S10N$ + " shares.";
401        mes "Earned ^0000FF"+@price+"z^000000.";
402        next;
403        goto S_Start;
404
405        SELLS11:
406        mes "^FF0000Invalid Share Name.^000000";
407        next;
408        goto S_Start;
409
410        S_SellTooHigh:
411        mes "^FF0000You don't have that many shares.^000000";
412        next;
413        goto S_Start;
414
415        S_SellInv:
416        mes "^FF0000Invalid integer.^000000";
417        next;
418        goto S_Start;
419
420// Buying Shares //
421S_Buy:
422        mes "[Stock Market]";
423        mes "Available shares:";
424        mes $S1N$;
425        mes $S2N$;
426        mes $S3N$;
427        mes $S4N$;
428        mes $S5N$;
429        mes $S6N$;
430        mes $S7N$;
431        mes $S8N$;
432        mes $S9N$;
433        mes $S10N$;
434        next;
435        menu "Continue",-,"Cancel",S_Start;
436       
437        mes "Enter the name of the share company";
438        mes "Transaction fee of ^FF0000" + $S_Trans + "z^000000 will apply.";
439        set @buyname$,"0";
440        input @buyname$;
441
442        set @buyamount,0;
443        input @buyamount;
444        // Checks valid number //
445        if (@buyamount < $S_BuyMin) goto S_TooLow;
446        if (@buyamount > $S_BuyMax) goto S_TooHigh;
447        if (zeny < $S_Trans) goto S_NoZeny;
448        set zeny,zeny-$S_Trans;
449
450        // Purchases the shares //
451
452        PURS1:
453        if (@buyname$ != $S1N$) goto PURS2;
454        set @price,@buyamount*$S1;
455        if (zeny < @price) goto S_NoZeny;
456        set #S1,#S1+@buyamount;
457        set @price,@buyamount*$S1;
458        set zeny,zeny-@price;
459        mes "Bought " + @buyamount + " " + $S1N$ + " shares.";
460        mes "Lost ^0000FF"+@price+"z^000000.";
461        next;
462        goto S_Start;
463
464        PURS2:
465        if (@buyname$ != $S2N$) goto PURS3;
466        set @price,@buyamount*$S2;
467        if (zeny < @price) goto S_NoZeny;
468        set #S2,#S2+@buyamount;
469        set zeny,zeny-@price;
470        mes "Bought " + @buyamount + " " + $S2N$ + " shares.";
471        mes "Lost ^0000FF"+@price+"z^000000.";
472        next;
473        goto S_Start;
474
475        PURS3:
476        if (@buyname$ != $S3N$) goto PURS4;
477        set @price,@buyamount*$S3;
478        if (zeny < @price) goto S_NoZeny;
479        set #S3,#S3+@buyamount;
480        set zeny,zeny-@price;
481        mes "Bought " + @buyamount + " " + $S3N$ + " shares.";
482        mes "Lost ^0000FF"+@price+"z^000000.";
483        next;
484        goto S_Start;
485
486        PURS4:
487        if (@buyname$ != $S4N$) goto PURS5;
488        set @price,@buyamount*$S4;
489        if (zeny < @price) goto S_NoZeny;
490        set #S4,#S4+@buyamount;
491        set zeny,zeny-@price;
492        mes "Bought " + @buyamount + " " + $S4N$ + " shares.";
493        mes "Lost ^0000FF"+@price+"z^000000.";
494        next;
495        goto S_Start;
496
497        PURS5:
498        if (@buyname$ != $S5N$) goto PURS6;
499        set @price,@buyamount*$S5;
500        if (zeny < @price) goto S_NoZeny;
501        set #S5,#S5+@buyamount;
502        set zeny,zeny-@price;
503        mes "Bought " + @buyamount + " " + $S5N$ + " shares.";
504        mes "Lost ^0000FF"+@price+"z^000000.";
505        next;
506        goto S_Start;
507
508        PURS6:
509        if (@buyname$ != $S6N$) goto PURS7;
510        set @price,@buyamount*$S6;
511        if (zeny < @price) goto S_NoZeny;
512        set #S6,#S6+@buyamount;
513        set zeny,zeny-@price;
514        mes "Bought " + @buyamount + " " + $S6N$ + " shares.";
515        mes "Lost ^0000FF"+@price+"z^000000.";
516        next;
517        goto S_Start;
518
519        PURS7:
520        if (@buyname$ != $S7N$) goto PURS8;
521        set @price,@buyamount*$S7;
522        if (zeny < @price) goto S_NoZeny;
523        set #S7,#S7+@buyamount;
524        set zeny,zeny-@price;
525        mes "Bought " + @buyamount + " " + $S7N$ + " shares.";
526        mes "Lost ^0000FF"+@price+"z^000000.";
527        next;
528        goto S_Start;
529
530        PURS8:
531        if (@buyname$ != $S8N$) goto PURS9;
532        set @price,@buyamount*$S8;
533        if (zeny < @price) goto S_NoZeny;
534        set #S8,#S8+@buyamount;
535        set zeny,zeny-@price;
536        mes "Bought " + @buyamount + " " + $S8N$ + " shares.";
537        mes "Lost ^0000FF"+@price+"z^000000.";
538        next;
539        goto S_Start;
540
541        PURS9:
542        if (@buyname$ != $S9N$) goto PURS10;
543        set @price,@buyamount*$S9;
544        if (zeny < @price) goto S_NoZeny;
545        set #S9,#S9+@buyamount;
546        set zeny,zeny-@price;
547        mes "Bought " + @buyamount + " " + $S9N$ + " shares.";
548        mes "Lost ^0000FF"+@price+"z^000000.";
549        next;
550        goto S_Start;
551
552        PURS10:
553        if (@buyname$ != $S10N$) goto PURS11;
554        set @price,@buyamount*$S10;
555        if (zeny < @price) goto S_NoZeny;
556        set #S10,#S10+@buyamount;
557        set zeny,zeny-@price;
558        mes "Bought " + @buyamount + " " + $S10N$ + " shares.";
559        mes "Lost ^0000FF"+@price+"z^000000.";
560        next;
561        goto S_Start;
562
563        PURS11:
564        goto S_InvName;
565
566        // Number too low //
567        S_TooLow:
568        mes "^FF0000Minimum of " + $S_BuyMin + " shares can be bought at a time.^000000";
569        next;
570        goto S_Start;
571
572        // Number too high //
573        S_TooHigh:
574        mes "^FF0000Maximum number of " + $S_BuyMax + " shares can be bought at a time.^000000";
575        next;
576        goto S_Start;
577
578        S_NoZeny:
579        mes "^FF0000You do not have enough zeny.^000000";
580        next;
581        goto S_Start;
582
583        // Sends user to start if name invalid //
584        S_InvName:
585        mes "^FF0000Invalid share name.^000000";
586        next;
587        goto S_Start;
588
589// Displays your total amount //
590S_Port:
591mes "[Stock Market]";
592
593        ACCS1:
594        if (#S1 < 1) goto ACCS2;
595        set @S1,#S1*$S1;
596        mes $S1N$ + ": " + #S1 + " x " + $S1 + "z = " + @S1 + "z";
597
598        ACCS2:
599        if (#S2 < 1) goto ACCS3;
600        set @S2,#S2*$S2;
601        mes $S2N$ + ": " + #S2 + " x " + $S2 + "z = " + @S2 + "z";
602
603        ACCS3:
604        if (#S3 < 1) goto ACCS4;
605        set @S3,#S3*$S3;
606        mes $S3N$ + ": " + #S3 + " x " + $S3 + "z = " + @S3 + "z";
607
608        ACCS4:
609        if (#S4 < 1) goto ACCS5;
610        set @S4,#S4*$S4;
611        mes $S4N$ + ": " + #S4 + " x " + $S4 + "z = " + @S4 + "z";
612
613        ACCS5:
614        if (#S5 < 1) goto ACCS6;
615        set @S5,#S5*$S5;
616        mes $S5N$ + ": " + #S5 + " x " + $S5 + "z = " + @S5 + "z";
617
618        ACCS6:
619        if (#S6 < 1) goto ACCS7;
620        set @S6,#S6*$S6;
621        mes $S6N$ + ": " + #S6 + " x " + $S6 + "z = " + @S6 + "z";
622
623        ACCS7:
624        if (#S7 < 1) goto ACCS8;
625        set @S7,#S7*$S7;
626        mes $S7N$ + ": " + #S7 + " x " + $S7 + "z = " + @S7 + "z";
627
628        ACCS8:
629        if (#S8 < 1) goto ACCS9;
630        set @S8,#S8*$S8;
631        mes $S8N$ + ": " + #S8 + " x " + $S8 + "z = " + @S8 + "z";
632
633        ACCS9:
634        if (#S9 < 1) goto ACCS10;
635        set @S9,#S9*$S9;
636        mes $S9N$ + ": " + #S9 + " x " + $S9 + "z = " + @S9 + "z";
637
638        ACCS10:
639        if (#S10 < 1) goto ACCS11;
640        set @S10,#S10*$S10;
641        mes $S10N$ + ": " + #S10 + " x " + $S10 + "z = " + @S10 + "z";
642
643        // Total //
644        ACCS11:
645        set @total,@S1 + @S2 + @S3 + @S4 + @S5 + @S6 + @S7 + @S8 + @S9 + @S10;
646        mes "Total value: "+@total+"z";
647        next;
648        goto S_Start;
649
650
651// GM MENU //
652GM_Menu:
653mes "[Stock Market]";
654mes "Master, do you require anything?";
655menu "Fluctuate Market",S_Fluc,"Reset Prices",GM_Open,"Nothing",S_Start;
656
657S_Fluc:
658set $fluc,rand (-6,6);
659set $S1B,$S1;
660set $S1,$S1+$fluc;
661if ($S1 < 25) set $S1,$S1+3;
662if ($S1 < 50) set $S1,$S1+2;
663if ($S1 > 150) set $S1,$S1-2;
664if ($S1 > 175) set $S1,$S1-3;
665if ($S1 < 1) set $S1,1;
666
667set $fluc,rand (-6,6);
668set $S2B,$S2;
669set $S2,$S2+$fluc;
670if ($S2 < 25) set $S2,$S2+3;
671if ($S2 < 50) set $S2,$S2+2;
672if ($S2 > 150) set $S2,$S2-2;
673if ($S2 > 175) set $S2,$S2-3;
674if ($S2 < 2) set $S2,1;
675
676set $fluc,rand (-6,6);
677set $S3B,$S3;
678set $S3,$S3+$fluc;
679if ($S3 < 25) set $S3,$S3+3;
680if ($S3 < 50) set $S3,$S3+2;
681if ($S3 > 150) set $S3,$S3-2;
682if ($S3 > 175) set $S3,$S3-3;
683if ($S3 < 1) set $S3,1;
684
685set $fluc,rand (-6,6);
686set $S4B,$S4;
687set $S4,$S4+$fluc;
688if ($S4 < 25) set $S4,$S4+3;
689if ($S4 < 50) set $S4,$S4+2;
690if ($S4 > 150) set $S4,$S4-2;
691if ($S4 > 175) set $S4,$S4-3;
692if ($S4 < 1) set $S4,1;
693
694set $fluc,rand (-6,6);
695set $S5B,$S5;
696set $S5,$S5+$fluc;
697if ($S5 < 25) set $S5,$S5+3;
698if ($S5 < 50) set $S5,$S5+2;
699if ($S5 > 150) set $S5,$S5-2;
700if ($S5 > 175) set $S5,$S5-3;
701if ($S5 < 1) set $S5,1;
702
703set $fluc,rand (-6,6);
704set $S6B,$S6;
705set $S6,$S6+$fluc;
706if ($S6 < 25) set $S6,$S6+3;
707if ($S6 < 50) set $S6,$S6+2;
708if ($S6 > 150) set $S6,$S6-2;
709if ($S6 > 175) set $S6,$S6-3;
710if ($S6 < 1) set $S6,1;
711
712set $fluc,rand (-6,6);
713set $S7B,$S7;
714set $S7,$S7+$fluc;
715if ($S7 < 25) set $S7,$S7+3;
716if ($S7 < 50) set $S7,$S7+2;
717if ($S7 > 150) set $S7,$S7-2;
718if ($S7 > 175) set $S7,$S7-3;
719if ($S7 < 1) set $S7,1;
720
721set $fluc,rand (-6,6);
722set $S8B,$S8;
723set $S8,$S8+$fluc;
724if ($S8 < 25) set $S8,$S8+3;
725if ($S8 < 50) set $S8,$S8+2;
726if ($S8 > 150) set $S8,$S8-2;
727if ($S8 > 175) set $S8,$S8-3;
728if ($S8 < 1) set $S8,1;
729
730set $fluc,rand (-6,6);
731set $S9B,$S9;
732set $S9,$S9+$fluc;
733if ($S9 < 25) set $S9,$S9+3;
734if ($S9 < 50) set $S9,$S9+2;
735if ($S9 > 150) set $S9,$S9-2;
736if ($S9 > 175) set $S9,$S9-3;
737if ($S9 < 1) set $S9,1;
738
739set $fluc,rand (-6,6);
740set $S10B,$S10;
741set $S10,$S10+$fluc;
742if ($S10 < 25) set $S10,$S10+3;
743if ($S10 < 50) set $S10,$S10+2;
744if ($S10 > 150) set $S10,$S10-2;
745if ($S10 > 175) set $S10,$S10-3;
746if ($S10 < 1) set $S10,1;
747
748set $S_LastUpd$,"GM Fluctuation";
749mes "Market fluctuated.";
750close;
751
752GM_Open:
753menu "Set prices to...",GM_Set,"Cancel",-;
754mes "Farewell.";
755close;
756
757GM_Set:
758mes "Are you sure you want to reset?";
759mes "^FF0000All share values will become the same.^000000";
760next;
761menu "Yes",-,"No",GM_Menu;
762set @gmset,0;
763input @gmset;
764set $S1,@gmset;
765set $S2,@gmset;
766set $S3,@gmset;
767set $S4,@gmset;
768set $S5,@gmset;
769set $S6,@gmset;
770set $S7,@gmset;
771set $S8,@gmset;
772set $S9,@gmset;
773set $S10,@gmset;
774set $S1B,@gmset;
775set $S2B,@gmset;
776set $S3B,@gmset;
777set $S4B,@gmset;
778set $S5B,@gmset;
779set $S6B,@gmset;
780set $S7B,@gmset;
781set $S8B,@gmset;
782set $S9B,@gmset;
783set $S10B,@gmset;
784mes "All prices changed to " + @gmset + "z.";
785close;
786
787S_Quit:
788mes "[Stock Market]";
789mes "Goodbye.";
790close;
791}
792
793prontera,140,181,5      duplicate(stockmarket)  Stock Market    109
Note: See TracBrowser for help on using the browser.