-
Notifications
You must be signed in to change notification settings - Fork 0
/
MCDS_B20.PTC
1833 lines (1773 loc) · 48.7 KB
/
MCDS_B20.PTC
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
'–Minecraft DS made by the–
'–PTC Community. The code –
'–is really complex, so I –
'– recommend not messing –
'–with it unless you know –
'– what you're doing (or –
'–you REALLY want to have –
'– fun). I hope you enjoy –
'– playing Minecraft DS, –
'– and please watch the –
'– credits! –
'– –
'– -Phil (IAmAPersson) –
'š••••••••••••••••••••••••›
'˜••••••••••••••••••••••••™
'–Version Beta 2.0.0 Pre 2–
'š••••••••••••••••••••••••›
@HHS
ACLS
BGMSTOP
PNLTYPE "OFF"
INTXT1$="Minecraft DS is in no way"
INTXT2$="associated with Mojang AB"
INTXT3$="and does not own the name"
INTXT4$=" Minecraft. "
FOR I=0TO 440STEP 5
IF PAGE==3THEN PAGE=2:GPAGE 0,3,2 ELSE PAGE=3:GPAGE 0,2,3
VSYNC 2
GCLS
FOR J=0TO LEN(INTXT1$)-1
GPUTCHR -187+I+J*8,80,"BGF",ASC(MID$(INTXT1$,J,1)),0,1
GPUTCHR 243-I+J*8,88,"BGF",ASC(MID$(INTXT2$,J,1)),0,1
GPUTCHR -187+I+J*8,96,"BGF",ASC(MID$(INTXT3$,J,1)),0,1
GPUTCHR 243-I+J*8,104,"BGF",ASC(MID$(INTXT4$,J,1)),0,1
NEXT
IF I==220THEN WAIT 150
NEXT
ACLS
INTXT21$="Made By The PTC Community"
FOR I=0TO 220STEP 5
IF PAGE==3THEN PAGE=2:GPAGE 0,3,2 ELSE PAGE=3:GPAGE 0,2,3
VSYNC 2
GCLS
FOR J=1TO LEN(INTXT21$)-1STEP 2
GPUTCHR 243-I+J*8-4,88,"BGF",ASC(MID$(INTXT21$,J,1)),0,1
GPUTCHR -187+I+J*8-12,88,"BGF",ASC(MID$(INTXT21$,J-1,1)),0,1
NEXT
NEXT
LOCATE 3,11:PRINT INTXT21$
LOCATE 11,12:?"Loading..."
@A
VISIBLE 1,0,0,0,0,0
CLEAR
TPCHN$="MCDS
HAND1$="MCHAND1
HAND2$="MCHAND2
HANDY=13
GPAGE 0,1,1
SYSBEEP=0
CHRINIT "BGF0"
SYSBEEP=1
BGMSETD 128,@WETHANDS
MS=16
CREDITLINES=34
DIM TGEN(5)
DIM SPLASH$(59)
DIM MAP(128,128)
DIM MAPB(128,128)
DIM NETHER(128,128)
DIM NETHERB(128,128)
DIM TEX(1000,16)
DIM BLOCK1(16,16)
DIM BLOCK2(16,16)
DIM BLOCK3(16,16)
DIM BLOCK4(16,16)
DIM BLOCK5(16,16)
DIM BLOCK6(16,16)
DIM B(6)
DIM CREDITS$(CREDITLINES)
DIM BREAKABLE(40)
DIM SCREENSHOT(256,192)
DIM MOB_X(100)
DIM MOB_Y(100)
DIM MOB_LAYER(100)
DIM MOB_DIRECTION(100)
DIM CRP(5,10)
DIM M(64,64)
DIM T(512,16)
TPCHN$="GRP:MCDS"
HAND1$="SPU0:"+HAND1$
HAND2$="BGU0:"+HAND2$
@DOOPY
SYSBEEP=0
LOAD HAND1$,0
LOAD HAND2$,0
SYSBEEP=1
MENU=1
CA=0
CX=0
CY=0
STOREDX=5
STOREDY=3
MST=.2
MOB_COUNT=5
MOB_ENABLED=1
MOD_ENABLED=0
VERS$="Beta 2.0.0"
SSS$="On"
MSS$="Off"
RSS$="On"
TSS$="On"
RDIST$="16"
RDIST=VAL(RDIST$)
BOB$="On"
B1$="@118B18"
SWV=120
GOSUB@PROGRAM
GOSUB@INITGFX
IF PAGE==3THEN PAGE=2:GPAGE 0,3,2 ELSE PAGE=3:GPAGE 0,2,3
BGMPLAY 128
KEY 1,"/quality"
KEY 2,"/help"
KEY 3,"/nick"
KEY 4,"/data"
KEY 5,"/me"
GOSUB@MENU
GOSUB@TEXT
@PROGRAM
PNLTYPE"OFF"
TDS=1
O=4095/4096
GPAGE 0,0,2
SYSBEEP=0
LOAD TPCHN$,0
SYSBEEP=1
FOR I=0TO 255
FOR J=0TO 15
TEX(I,J)=GSPOIT(I,J)
NEXT
NEXT
FOR I=0TO 255
FOR J=0TO 15
TEX(I+256,J)=GSPOIT(I,J+16)
NEXT
NEXT
FOR I=0TO 255
FOR J=0TO 15
TEX(I+512,J)=GSPOIT(I,J+32)
NEXT
NEXT
RESTORE @BLOCKBREAK
FOR I=0TO 35
READ BREAKABLE(I)
NEXT
GPAGE 0,0,0
GCLS
BLOCK=1
'X COORDS
CAMX=6
'Y COORDS
CAMY=14.5
'Z COORDS
CAMZ=0.5
'LEFT AND RIGHT
CAMA=-RND(10)
'UP AND DOWN
CAMB=0
'QUALITY
Q=2
TOUCHING=0
JUMPING=0
FOR I=0TO 5
B(I)=I+1
NEXT
@INVBSU
FOR I=0TO 15
FOR J=0TO 15
BLOCK1(I,J)=TEX(I+(16*B(0))-16,J)
BLOCK2(I,J)=TEX(I+(16*B(1))-16,J)
BLOCK3(I,J)=TEX(I+(16*B(2))-16,J)
BLOCK4(I,J)=TEX(I+(16*B(3))-16,J)
BLOCK5(I,J)=TEX(I+(16*B(4))-16,J)
BLOCK6(I,J)=TEX(I+(16*B(5))-16,J)
NEXT
NEXT
IF INVST THEN INVST=0:RETURN
ST=1:GOSUB@LOADMAP:ST=0
RETURN
@LOOP1
IF !MENU THEN GOSUB@TGUIS
SYSBEEP=0
LOAD"GRP0:MCDS_BG",0
IF INNETHER THEN LOAD"GRP:NETHER",0
SYSBEEP=1
IF !MENU THEN BGMSTOP
DAY=MAINCNTL
@MAINLOOP
IF TSS$=="Off"OR INNETHER==1THEN GOTO@SKIPTIME
IF MAINCNTL>=DAY+3600AND DLP==0THEN GPAGE 0,0,0:SYSBEEP=0:LOAD"GRP:MCDS_NBG",0:SYSBEEP=1:DLP=1
IF MAINCNTL>=DAY+7200THEN GPAGE 0,0,0:SYSBEEP=0:LOAD"GRP:MCDS_BG",0:DAY=MAINCNTL:SYSBEEP=1:DLP=0
@SKIPTIME
IF PAGE==3THEN PAGE=2:GPAGE 0,3,2 ELSE PAGE=3:GPAGE 0,2,3
IF PAGE==2AND MOB_ENABLED THEN PTDC=PTDC+1
IF PTDC==2THEN PTDC=0:GOSUB@SLIME
GOSUB@MOVE
GCOPY 0,0,0,255,191,0,0,FALSE
IF RSS$=="On"THEN GOSUB@DRAWGROUND ELSE GFILL 0,97-CAMB,255,191,26*!INNETHER+211*INNETHER
GOSUB@DRAWWALLS
CAMZ=CAMZ-1
GOSUB@DRAWWALLS
GFILL 0,0,ABS(SWV-128),191,0
GFILL 255-ABS(SWV-128),0,255,191,0
IF MENU THEN RETURN
IF MOD_ENABLED THEN GOSUB@MODS
IF TCHST THEN GOSUB@TGUI
GOSUB@FIST
FPS=FPS+1
IF NEXTCOUNT>=MAINCNTL GOTO@NOFPS
FPS=FPS-(MAINCNTL-NEXTCOUNT)/60
NEXTCOUNT=MAINCNTL+60
COLOR 13:LOCATE 0,22:?FPS" FPS ":COLOR 0
FPS=0
@NOFPS
IF VT!=1THEN VISIBLE 1,1,1,1,1,1 ELSE VT=1
GOTO@MAINLOOP
@FIST
SPSET 0,0,HANDY,0,0,0,64,64
SPHOME 0,-128,-128
BGFILL 0,13,17,15,22,0,13,0,0
RETURN
@MOVE
IF BNCF THEN BNCF=0:MAPB(BSI,BSJ)=BLOCK:MAP(BSI,BSJ)=0
IF !MENU AND BUTTON()==768 THEN GOSUB @SCREENSHOT:COLOR 0:ACLS
IF TCHST AND TCHX>=206AND TCHY>=140AND TCHX<=252AND TCHY<=154THEN GOSUB@BLOCKS
IF TCHST AND TCHX>=150AND TCHY>=140AND TCHX<=197AND TCHY<=154THEN GOSUB@BLOCKS
X=TCHX
Y=TCHY
B=TCHST
CAMAT=0
IF !MENU THEN IF BUTTON()AND 4THEN CAMAT=CAMAT+0.3
IF !MENU THEN IF BUTTON()AND 8THEN CAMAT=CAMAT-0.3
IF MENU THEN CAMAT=CAMAT-0.02
CAMA=CAMA+CAMAT
IF !MENU AND B AND X>=91AND Y>=117AND X<140AND Y<130THEN CAMB=CAMB-20
IF !MENU AND B AND X>=91AND Y>=140AND X<142AND Y<156THEN CAMB=CAMB+20
IF !MENU AND B AND X>=150AND Y>=117AND X<197AND Y<132THEN CAMA=CAMA+.3
IF !MENU AND B AND X>=206AND Y>=117AND X<250AND Y<132THEN CAMA=CAMA-.3
IF CAMA>-7.8THEN CAMA=-14
IF CAMA<-14.197THEN CAMA=-8
IF ABS(CAMB)>150 THEN CAMB=150*SGN(CAMB)
@NOTOUCH
TOUCHING=B
TOUCHX=X
TOUCHY=Y
DX=COS(CAMA)*.4
DY=SIN(CAMA)*.4
X=CAMX
Y=CAMY
B=BUTTON()
IF !JUMPING GOTO@NOTJUMPING
CAMZ=CAMZ+VELZ
VELZ=VELZ-.06
IF CAMZ<.85THEN CAMZ=.85:JUMPING=0
GOTO@JUMPEND
@NOTJUMPING
IF BOB$=="On"THEN WALKING=WALKING+0.9
IF BOB$=="On"THEN IF !(B AND 1)AND !(B AND 16)AND !(B AND 128)AND !(B AND 2)THEN WALKING=0
CAMZ=1.7+ABS(SIN(WALKING))*.15
@JUMPEND
IF !MENU THEN IF B AND 1THEN X=X+DX:Y=Y+DY
IF !MENU THEN IF B AND 2THEN X=X-DX:Y=Y-DY
IF !MENU THEN IF B AND 128THEN X=X-DY:Y=Y+DX
IF !MENU THEN IF B AND 16THEN X=X+DY:Y=Y-DX
IF !MENU THEN IF B==65THEN X=X+(DX*1.5):Y=Y+(DY*1.5)
IF !MENU THEN IF B AND 1024 THEN @PAUSE
IF TCHST AND TCHX>28 AND TCHY>92AND TCHX<42AND TCHY<108THEN X=X+DX:Y=Y+DY
IF TCHST AND TCHX>28AND TCHY>142AND TCHX<42AND TCHY<157THEN X=X-DX:Y=Y-DY
IF TCHST AND TCHX>6AND TCHY>116AND TCHX<19AND TCHY<132THEN X=X-DY:Y=Y+DX
IF TCHST AND TCHX>50AND TCHY>116AND TCHX<66AND TCHY<132THEN X=X+DY:Y=Y-DX
IF TCHST AND TCHX>114AND TCHY>88AND TCHX<148AND TCHY<109THEN X=X+(DX*1.5):Y=Y+(DY*1.5)
IF BUTTON()AND 256THEN GOSUB@BLOCKS
IF BUTTON()AND 512THEN GOSUB@BLOCKS
IF !MENU AND TCHST AND TCHX>210AND TCHY>165THEN GOSUB@S2
IF MAP(X,Y)==18THEN GOSUB@NETHERLOAD
IF GM!=2THEN IF MAP(X,Y)OR MAPB(X,Y)THEN RETURN
'BEHOLD! The line that crashes PTC!
IF GM==2THEN IF MAP(X,Y)OR MAPB(X,Y)THEN ?SIN(FLOOR(-524287.5))
CAMX=X
CAMY=Y
CA=CAMA+6.2
CX=CAMX/6.2
CY=CAMY/6.2
RETURN
@TGUI
TGUIDR=0
TX=TCHX
TY=TCHY
BO=BLOCK
IF TCHST AND TX<63AND TY>174GOTO@INVENTORY
IF TCHST AND TX>63AND TY>174AND TX<82AND TY<190THEN BLOCK=B(0):IIH=1
IF TCHST AND TX>87AND TY>174AND TX<106AND TY<190THEN BLOCK=B(1):IIH=2
IF TCHST AND TX>111AND TY>174AND TX<130AND TY<190THEN BLOCK=B(2):IIH=3
IF TCHST AND TX>135AND TY>174AND TX<154AND TY<190THEN BLOCK=B(3):IIH=4
IF TCHST AND TX>159AND TY>174AND TX<177AND TY<190THEN BLOCK=B(4):IIH=5
IF TCHST AND TX>183AND TY>174AND TX<202AND TY<190THEN BLOCK=B(5):IIH=6
IF BO!=BLOCK THEN BEEP 9
IF BO!=BLOCK THEN PNLSTR 7,21,"‘••‘••‘••‘••‘••‘••‘"
COLOR 4
PNLSTR 5+(IIH*3),21,"••"
COLOR 15
RETURN
@TGUIS
IF !IIH THEN IIH=1
PNLSTR 7,21,"‘••‘••‘••‘••‘••‘••"
PNLSTR 7,22,"– – – – – – "
PNLSTR 7,23,"– – – – – – "
GPAGE 1,1,1
GOSUB@DIRTBG
GFILL 0,172,256,192,31
FOR TDX=0TO 15
FOR TDY=0TO 15
GPSET TDX+64,TDY+175,BLOCK1(TDX,TDY)
GPSET TDX+88,TDY+175,BLOCK2(TDX,TDY)
GPSET TDX+112,TDY+175,BLOCK3(TDX,TDY)
GPSET TDX+136,TDY+175,BLOCK4(TDX,TDY)
GPSET TDX+160,TDY+175,BLOCK5(TDX,TDY)
GPSET TDX+184,TDY+175,BLOCK6(TDX,TDY)
NEXT
NEXT
PNLSTR 25,21,"‘••••••"
PNLSTR 25,22,"– "
PNLSTR 25,23,"– "
PNLSTR 0,21,"•••••••‘"
PNLSTR 0,22," –"
PNLSTR 0,23," –"
GPUTCHR 214,180,"BGF",ASC("C"),0,1:GPUTCHR 222,180,"BGF",ASC("h"),0,1
GPUTCHR 230,180,"BGF",ASC("a"),0,1:GPUTCHR 237,180,"BGF",ASC("t"),0,1
GPUTCHR 2,180,"BGF",ASC("I"),0,1:GPUTCHR 8,180,"BGF",ASC("n"),0,1
GPUTCHR 14,180,"BGF",ASC("v"),0,1:GPUTCHR 20,180,"BGF",ASC("e"),0,1
GPUTCHR 26,180,"BGF",ASC("n"),0,1:GPUTCHR 32,180,"BGF",ASC("t"),0,1
GPUTCHR 38,180,"BGF",ASC("o"),0,1:GPUTCHR 44,180,"BGF",ASC("r"),0,1
GPUTCHR 50,180,"BGF",ASC("y"),0,1
PNLSTR 0,12," "
PNLSTR 0,15," "
PNLSTR 0,18," "
PNLSTR 21,12," Use Dash "
PNLSTR 11,15," Look Look Look "
PNLSTR 11,18," Look Break Place "
BX1=25:BY1=90:BX2=45:BY2=105:GOSUB@BTN
BX1=25:BY1=140:BX2=45:BY2=155:GOSUB@BTN
BX1=50:BY1=115:BX2=70:BY2=130:GOSUB@BTN
BX1=2:BY1=115:BX2=20:BY2=130:GOSUB@BTN
BX1=171:BY1=90:BX2=205:BY2=108:GOSUB@BTN
BX1=210:BY1=90:BX2=252:BY2=108:GOSUB@BTN
BX1=90:BY1=115:BX2=140:BY2=133:GOSUB@BTN
BX1=147:BY1=115:BX2=195:BY2=133:GOSUB@BTN
BX1=205:BY1=115:BX2=252:BY2=133:GOSUB@BTN
BX1=90:BY1=140:BX2=140:BY2=158:GOSUB@BTN
BX1=147:BY1=140:BX2=195:BY2=158:GOSUB@BTN
BX1=205:BY1=140:BX2=252:BY2=158:GOSUB@BTN
GPAGE 0,0,0
LOCATE 16,12:COLOR 1:?"+":COLOR 0
GPAGE 0,2,3
RETURN
@DRAWWALLS
ANGSTEP=PI()*Q/3/256
CURRANG=PI()/6
DCD=0
FOR I=ABS(SWV-128)TO SWV+128STEP Q
C=COS(CAMA+CURRANG)
S=SIN(CAMA+CURRANG)
GOSUB@RAYCAST
DX=COLLX-CAMX
DY=COLLY-CAMY
IF ABS(DX)>50THEN DX=-10
DIST=SQR(DX*DX+DY*DY)
IF !DIST THEN DIST=1/4096
IF DCD THEN DCD=DCD-1:GOTO@DWRL
IF DIST>RDIST THEN DCD=1:GOTO@DWRL
H=12/DIST/COS(CURRANG)
T=(T+SLICE)*16
J=I+Q-1
IF H>13000THEN H=13000
P=96-CAMB+H*16*CAMZ-H
GFILL I,P,J,P+H,TEX(T,15)
GFILL I,P-H,J,P,TEX(T,14)
P=P-H*2
GFILL I,P,J,P+H,TEX(T,13)
GFILL I,P-H,J,P,TEX(T,12)
P=P-H*2
GFILL I,P,J,P+H,TEX(T,11)
GFILL I,P-H,J,P,TEX(T,10)
P=P-H*2
GFILL I,P,J,P+H,TEX(T,9)
GFILL I,P-H,J,P,TEX(T,8)
P=P-H*2
GFILL I,P,J,P+H,TEX(T,7)
GFILL I,P-H,J,P,TEX(T,6)
P=P-H*2
GFILL I,P,J,P+H,TEX(T,5)
GFILL I,P-H,J,P,TEX(T,4)
P=P-H*2
GFILL I,P,J,P+H,TEX(T,3)
GFILL I,P-H,J,P,TEX(T,2)
P=P-H*2
GFILL I,P,J,P+H,TEX(T,1)
GFILL I,P-H,J,P,TEX(T,0)
@DWRL
CURRANG=CURRANG-ANGSTEP
NEXT
DCD=0
RETURN
@RAYCAST
IF ABS(C)>ABS(S)GOTO@CASTX
DY=SGN(S)
DX=C/ABS(S)
Y=FLOOR(CAMY)+O*(S<0)
X=CAMX-ABS(Y-CAMY)*DX
@CASTYLOOP
X=X+DX
Y=Y+DY
IF CAMZ<1AND !MAP(X,Y)AND !MAP(X,Y-DY)GOTO@CASTYLOOP
IF CAMZ>1AND !MAPB(X,Y)AND !MAPB(X,Y-DY)GOTO@CASTYLOOP
IF CAMZ<1THEN T=MAP(X,Y-DY)-1ELSE T=MAPB(X,Y-DY)-1
IF T<0GOTO@CASTYCOLL
COLLX=FLOOR(X)+O*(C<0)
COLLY=Y-(X-COLLX)/DX*DY
SLICE=ABS(COLLY%1-O*(C>0))
RETURN
@CASTYCOLL
COLLX=X
COLLY=Y
IF CAMZ<1THEN T=MAP(X,Y)-1ELSE T=MAPB(X,Y)-1
SLICE=ABS(COLLX%1-O*(S<0))
RETURN
@CASTX
DX=SGN(C)
DY=S/ABS(C)
X=FLOOR(CAMX)+O*(C<0)
Y=CAMY-ABS(X-CAMX)*DY
@CASTXLOOP
Y=Y+DY
X=X+DX
IF CAMZ<1AND !MAP(X,Y)AND !MAP(X-DX,Y)GOTO@CASTXLOOP
IF CAMZ>1AND !MAPB(X,Y)AND !MAPB(X-DX,Y)GOTO@CASTXLOOP
IF CAMZ<1THEN T=MAP(X-DX,Y)-1ELSE T=MAPB(X-DX,Y)-1
IF T<0GOTO@CASTXCOLL
COLLY=FLOOR(Y)+O*(S<0)
IF DY*DX==0THEN DY=.1:DX=.1
COLLX=X-(Y-COLLY)/DY*DX
SLICE=ABS(COLLX%1-O*(S<0))
RETURN
@CASTXCOLL
COLLX=X
COLLY=Y
IF CAMZ<1THEN T=MAP(X,Y)-1ELSE T=MAPB(X,Y)-1
SLICE=ABS(COLLY%1-O*(C>0))
RETURN
@SEEDINPUT
IF LANG==0THEN LOCATE 0,0:?"Please input a Seed"
IF LANG==1THEN LOCATE 0,0:?"Bitte schreiben Saatgut"
LOCATE 0,1:?""
LINPUT SEED$
LOCATE 0,0:?" "
LOCATE 0,1:?" "
PNLSTR 7,11,SEED$+" ",0
RETURN
@NAMEINPUT
IF LANG==0THEN LOCATE 0,0:?"Please input the name you prefer"
IF LANG==1THEN LOCATE 0,0:?"Bitte schreiben Name Sie wollen"
?""
LINPUT NAME$
LOCATE 0,0:?" "
LOCATE 0,1:?" "
PNLSTR 7,5,NAME$+" ",0
PNLSTR 6,7,"Will be saved in: ",2
PNLSTR 6,7,"Will be saved in:"+NAME$,2
RETURN
@LOADMAP
IF ST GOTO@SKIPCREATE
ACLS:GOSUB@DIRTBG
NAME$="WORLD1":MN$=NAME$:SEED$=""
IF LANG==0THEN PNLSTR 8,0,"Create New World",0
IF LANG==1THEN PNLSTR 8,0,"Machen neuen Welt"
IF LANG==0THEN PNLSTR 6,2,"World Name",0
IF LANG==1THEN PNLSTR 6,2,"Welt Name"
GBOX 50,25,206,55,30
PNLSTR 7,5,MN$,0
GBOX 51,26,205,54,30
GFILL 52,27,204,53,31
IF LANG==0THEN PNLSTR 6,7,"Will be saved in:"+MN$,2
IF LANG==1THEN PNLSTR 6,7,"Wird in "+MN$+" sein"
PNLSTR 14,8,"GM "+STR$(GM)
IF LANG==0THEN PNLSTR 2,9,"Seed for the World Generator"
IF LANG==1THEN PNLSTR 2,9,"Saatgut fuer Welt-Generator"
GFILL 50,82,206,102,30
GFILL 52,84,204,100,31
PNLSTR 7,11,SEED$+" ",0
IF LANG==0THEN PNLSTR 2,13,"Leave blank for a random seed",2
IF LANG==1THEN PNLSTR 2,13,"Leer lassen fuer Zufallsgenerator"
BX1=50:BY1=130:BX2=206:BY2=150:GOSUB@BTN
BX1=50:BY1=155:BX2=206:BY2=175:GOSUB@BTN
BX1=0:BY1=180:BX2=90:BY2=250:GOSUB@BTN
BX1=150:BX2=256:BY1=180:BY2=250:GOSUB@BTN
IF LANG==0THEN PNLSTR 8,17,"Create New World",0
IF LANG==1THEN PNLSTR 8,17,"Machen Neuen Welt"
IF LANG==0THEN PNLSTR 12,20,"Cancel",0
IF LANG==1THEN PNLSTR 12,20,"Stornieren"
IF LANG==0THEN PNLSTR 0,23," Load Save World Options",0
IF LANG==1THEN PNLSTR 0,23," Last Welt Welt Optionen"
GPAGE 0
FOR I=0TO 2:I=0
TT=TCHTIME:TX=TCHX:TY=TCHY
IF TT==1AND TX>=0AND TX<=90AND TY>=180AND TY<=250THEN GOTO @LOADSMAP
IF TT==1AND TX>=50AND TX<=206AND TY>=40AND TY<=70THEN GOSUB@NAMEINPUT
IF TT==1AND TX>=50AND TX<=206AND TY>=82AND TY<=102THEN GOSUB@SEEDINPUT
IF TT==1AND TX>=50AND TX<=206AND TY>=130AND TY<=150THEN I=2
IF TT==1AND TX>=50AND TX<=206AND TY>=155AND TY<=175GOTO@MENU
IF TT==1AND TX>=150AND TX2<=256AND TY>=180AND TY<=250THEN GOTO@MODE
VSYNC 1:NEXT:ACLS
@SKIPCREATE
FOR I=0TO 127
FOR J=0TO 127
MAP(I,J)=0
MAPB(I,J)=0
NEXT
NEXT
VISIBLE 1,0,0,0,0,0
IF GM!=2THEN GOSUB@TERRGEN
IF GM==2THEN MS=32
GBOX 0,0,MS-1,MS-1,10
GBOX 0,64,MS-1,MS+63,10
FOR I=0TO MS-1
FOR J=0TO MS-1
MAP(I,J)=GSPOIT(I,J)
MAPB(I,J)=GSPOIT(I,J+64)
NEXT
NEXT
GCLS
SEED$=SEED$+"N"
GN=1
GOSUB@TERRGEN
GBOX 0,0,MS-1,MS-1,10
GBOX 0,64,MS-1,MS+63,10
FOR I=0TO MS-1
FOR J=0TO MS-1
NETHER(I,J)=GSPOIT(I,J)
NETHERB(I,J)=GSPOIT(I,J+64)
NEXT
NEXT
GN=0
GCLS
@LOADMCXL
CAMX=RND(MS):CAMY=RND(MS)
IF GM==2THEN CAMX=1:CAMY=1
IF MAP(CAMX,CAMY)OR MAPB(CAMX,CAMY)GOTO@LOADMCXL
GCLS
IF GM==2THEN MOB_COUNT=100
FOR I=0TO MOB_COUNT-1
IF GM!=2THEN MOB_X(I)=RND(MS):MOB_Y(I)=RND(MS)
IF GM==2THEN MOB_X(I)=RND(28)+3:MOB_Y(I)=RND(28)+3
MOB_DIRECTION=RND(4)
MOB_LAYER(I)=RND(2)
IF MAP(MOB_X(I),MOB_Y(I))OR MAPB(MOB_X(I),MOB_Y(I))THEN I=I-1
NEXT
RETURN
@MODE
ACLS
GOSUB@DIRTBG
BX1=54:BX2=138:BY1=42+18:BY2=60+18:GOSUB@BTN
BY1=BY1+18:BY2=BY2+18:GOSUB@BTN
BY1=BY1+18:BY2=BY2+18:GOSUB@BTN
BX1=140:BX2=188:BY1=42+18:BY2=60+18:GOSUB@BTN
BY1=BY1+18:BY2=BY2+18:GOSUB@BTN
BY1=BY1+18:BY2=BY2+18:GOSUB@BTN
BX1=54:BX2=188:BY1=BY1+18:BY2=BY2+18:GOSUB@BTN
PNLSTR 7,8," Creative Info"
PNLSTR 7,10," Survival Info"
PNLSTR 7,13," Troll Info"
PNLSTR 7,15," Cancel "
@LP1
IF TCHST AND TCHX>=140AND TCHX<=188AND TCHY>=42+18AND TCHY<=60+18THEN PNLSTR 0,21,"Unlimited items"
IF TCHST AND TCHX>=52AND TCHX<=140AND TCHY>=42+18AND TCHY<=60+18THEN GM=0:GOTO@LOADMAP
IF TCHST AND TCHX>=140AND TCHX<=188AND TCHY>=42+36AND TCHY<=60+36THEN PNLSTR 0,21,"Not functional "
IF TCHST AND TCHX>=52AND TCHX<=140AND TCHY>=42+36AND TCHY<=60+36THEN GM=1:GOTO@LOADMAP
IF TCHST AND TCHX>=140AND TCHX<=188AND TCHY>=96AND TCHY<=96+18THEN PNLSTR 0,21, "Don't hit stuff"
IF TCHST AND TCHX>=52AND TCHX<=140AND TCHY>=96AND TCHY<=96+18THEN GM=2:GOTO@LOADMAP
IF TCHST AND TCHX>=52AND TCHX<=188AND TCHY>=102+18AND TCHY<=102+36THEN GOTO@LOADMAP
GOTO@LP1
@BLOCKS
IF MENU THEN RETURN
IF DIST<=.5THEN RETURN
IF CAMB>=80THEN TDS=0ELSE TDS=1
GOSUB@FIST2
IF CAMA<=-7.8THEN BPOSX=-.5:BPOSY=-2
IF CAMA<-8.4THEN BPOSX=-2:BPOSY=-.5
IF CAMA<-10.2THEN BPOSX=-.5:BPOSY=1
IF CAMA<-11.8THEN BPOSX=1:BPOSY=-.5
IF CAMA<-13.4THEN BPOSX=-.5:BPOSY=-2
I=FLOOR(CAMX+BPOSX+.5)
J=FLOOR(CAMY+BPOSY+.5)
IF BUTTON()AND 512THEN BPS=1
IF BPS AND TDS AND MAP(I,J)==6AND !MENU THEN GOSUB@TNT
IF BPS AND TDS AND !MAP(I,J)AND !MENU THEN MAP(I,J)=BLOCK:BEEP 31
IF BPS AND TDS AND MAP(I,J)==22THEN MAPB(I,J)=23
IF BPS AND !TDS AND MAPB(I,J)==6AND !MENU THEN GOSUB@TNT
IF BPS AND !TDS AND !MAPB(I,J)AND !MENU THEN MAPB(I,J)=BLOCK:BEEP 31
IF BPS AND !TDS AND MAPB(I,J)==22THEN MAP(I,J)=22:MAPB(I,J)=23
IF BUTTON()AND 256THEN BRS=1
IF BRS AND TDS AND MAP(I,J)==35THEN GOSUB@HIT
IF BRS AND TDS AND MAP(I,J)==11THEN GOSUB@HIT
IF BRS AND TDS AND MAP(I,J)>0AND BREAKABLE(MAP(I,J)) THEN MAP(I,J)=0:BEEP 31
IF BRS AND TDS AND MAPB(I,J)==23THEN MAPB(I,J)=0
IF BRS AND !TDS AND MAP(I,J)==22THEN MAP(I,J)=0
IF BRS AND !TDS AND MAPB(I,J)==11THEN GOSUB@HIT
IF BRS AND !TDS AND MAPB(I,J)==36THEN GOSUB@HIT
IF BRS AND !TDS AND MAPB(I,J)>0AND BREAKABLE(MAPB(I,J)) THEN MAPB(I,J)=0:BEEP 31
IF TCHST AND TCHX>=150AND TCHY>=140AND TCHX<=197AND TCHY<=154THEN BSTAT=1
IF TCHST AND TCHX>=206AND TCHY>=140AND TCHX<=252AND TCHY<=154THEN PSTAT=1
IF BSTAT AND TDS AND MAP(I,J)AND BREAKABLE(MAP(I,J))THEN MAP(I,J)=0:BEEP 31
IF BSTAT AND !TDS AND MAPB(I,J)AND BREAKABLE(MAPB(I,J))THEN MAPB(I,J)=0:BEEP 31
IF PSTAT AND TDS AND !MAP(I,J)THEN MAP(I,J)=BLOCK:BEEP 31
IF PSTAT AND !TDS AND !MAPB(I,J)THEN MAPB(I,J)=BLOCK:BEEP 31
IF BLOCK==28THEN GOSUB@PORTALC
IF MAP(I,J)==8OR MAP(I,J)==9THEN IF !MAPB(I,J)THEN BNCF=1
BSTAT=0:PSTAT=0
BPS=0:BRS=0
BSI=I
BSJ=J
RETURN
@PORTALC
IF I<2THEN RETURN
IF J<2THEN RETURN
UTV1=(MAP(I-2,J)==28)AND (MAPB(I-2,J)==28)AND (MAP(I,J)==28)AND (MAPB(I,J)==28)
UTV2=(MAP(I+2,J)==28)AND (MAPB(I+2,J)==28)AND (MAP(I,J)==28)AND (MAPB(I,J)==28)
UTV3=(MAP(I,J-2)==28)AND (MAPB(I,J-2)==28)AND (MAP(I,J)==28)AND (MAPB(I,J)==28)
UTV4=(MAP(I,J+2)==28)AND (MAPB(I,J+2)==28)AND (MAP(I,J)==28)AND (MAPB(I,J)==28)
IF UTV1 THEN MAP(I-1,J)=18:MAPB(I-1,J)=18
IF UTV2 THEN MAP(I+1,J)=18:MAPB(I+1,J)=18
IF UTV3 THEN MAP(I,J-1)=18:MAPB(I,J-1)=18
IF UTV4 THEN MAP(I,J+1)=18:MAPB(I,J+1)=18
RETURN
@FIST2
SPSET 0,30,HANDY,0,0,0,64,64
SPHOME 0,-128,-128
BGFILL 0,15,17,15,17,7,HANDY,0,0
BGFILL 0,14,18,14,18,38,HANDY,0,0
BGFILL 0,15,18,15,18,39,HANDY,0,0
BGFILL 0,13,19,13,19,69,HANDY,0,0
BGFILL 0,14,19,14,19,70,HANDY,0,0
BGFILL 0,15,19,15,19,71,HANDY,0,0
BGFILL 0,13,20,13,20,101,HANDY,0,0
BGFILL 0,14,20,14,20,102,HANDY,0,0
BGFILL 0,15,20,15,20,103,HANDY,0,0
BGFILL 0,14,21,14,21,134,HANDY,0,0
BGFILL 0,15,21,15,21,135,HANDY,0,0
BGFILL 0,15,22,15,22,167,HANDY,0,0
RETURN
@HIT
BEEP 11
RETURN
@PAUSE
ACLS
CHRINIT "BGF0"
LOCATE 0,8
?" ˜•™ ˜•™ – – ˜•™ ˜•• ˜™ "
?" – – – – – – – – –š™"
?" ’•› ’•” – – š•™ ’• – –"
?" – – – – – – – –˜›"
?" – – – š•› š•› š•• š› "
PNLSTR 8,8," Quit and Save "
PNLSTR 8,12," Load Map "
PNLSTR 8,16," Resume "
GPAGE 1:GOSUB@DIRTBG
BX1=65:BY1=60:BX2=200:BY2=80:GOSUB@BTN
BX1=65:BY1=90:BX2=200:BY2=110:GOSUB@BTN
BX1=65:BY1=120:BX2=200:BY2=145:GOSUB@BTN
GPAGE 0
@PL
IF TCHST AND TCHX>=65AND TCHY>=20AND TCHX<=200AND TCHY<=50GOTO@HHS
IF TCHST AND TCHX>=65AND TCHY>=60AND TCHX<=200AND TCHY<=75GOTO@SAVEMAP
IF TCHST AND TCHX>=65AND TCHY>=90AND TCHX<=200AND TCHY<=105GOTO@LOADSMAP
IF TCHST AND TCHX>=65AND TCHY>=130AND TCHX<=200AND TCHY<=145THEN TRS=1
IF TRS THEN TRS=0:GOSUB@RESUME:GOSUB@TGUIS:GOTO@LOOP1
GOTO@PL
@SAVEMAP
ACLS
IF !INNETHER THEN GOTO@SAVEMAPS
FOR I=0TO 127
FOR J=0TO 127
IF MAP(I,J)!=34THEN SWAP MAP(I,J),NETHER(I,J)ELSE MAP(I,J)=0
IF MAPB(I,J)!=34THEN SWAP MAPB(I,J),NETHERB(I,J)ELSE MAPB(I,J)=0
NEXT
NEXT
SWAP CAMX,STOREDX
SWAP CAMY,STOREDY
@SAVEMAPS
FOR I=0TO 63
FOR J=0TO 63
GPSET J,I,MAP(J,I)
GPSET J,I+64,MAPB(J,I)
GPSET J+64,I+64,NETHER(J,I)
GPSET J+128,I+64,NETHERB(J,I)
NEXT
NEXT
GPSET 129,0,FLOOR(CAMX+.5)
GPSET 130,0,FLOOR(CAMY+.5)
GPSET 129,1,FLOOR(CAMZ+.5)
GPSET 130,1,ABS(FLOOR(CAMA+.5))
GPSET 129,2,ABS(FLOOR(CAMB+.5))
GPSET 129,3,STOREDX
GPSET 129,4,STOREDY
FOR I=0TO 5
GPSET 131,I,B(I)
NEXT
GPSET 130,2,IIH
FOR I=0TO LEN(VERS$)-1
GPSET 132+I,0,ASC(MID$(VERS$,I,1))
NEXT
FOR I=0TO LEN(NICK$)-1
GPSET 132+I,1,ASC(MID$(NICK$,I,1))
NEXT
GPSET 132,2,LEN(NICK$)-1
GPSET 132,3,MOB_ENABLED
FOR I=0TO 4
GPSET 132+I,4,MOB_X(I)
GPSET 132+I,5,MOB_Y(I)
GPSET 132+I,6,MOB_LAYER(I)
NEXT
GPSET 137,4,MOB_COUNT
GPSET 138,4,Q
SYSBEEP=0
SAVE"GRP:"+NAME$
SYSBEEP=1
GOTO@HHS
@LOADSMAP
INPUT "Save Name";NAME$
SYSBEEP=0
LOAD"GRP:"+NAME$,0
SYSBEEP=1
MVS$=""
CRST=0
IF !GSPOIT(132,0)THEN MVS$="null":GOSUB@INVV:WAIT 360:GOSUB@RESUME:GOTO@LOOP1
FOR I=0TO 9
MVS$=MVS$+CHR$(GSPOIT(132+I,0))
NEXT
IF MVS$!=VERS$ THEN GOSUB@INVV:GOSUB@RESUME:GOTO@LOOP1
NICKLEN=GSPOIT(132,2)
NICK$=""
FOR I=0TO NICKLEN
NICK$=NICK$+CHR$(GSPOIT(132+I,1))
NEXT
FOR J=0TO 63
FOR I=0TO 63
MAP(I,J)=GSPOIT(I,J)
MAPB(I,J)=GSPOIT(I,J+64)
NETHER(I,J)=GSPOIT(I+64,J+64)
NETHERB(I,J)=GSPOIT(I+128,J+64)
NEXT
NEXT
CAMX=GSPOIT(129,0)
CAMY=GSPOIT(130,0)
CAMZ=GSPOIT(129,1)
CAMA=0-GSPOIT(130,1)
CAMB=0-GSPOIT(129,2)
STOREDX=GSPOIT(129,3)
STOREDY=GSPOIT(129,4)
FOR I=0TO 4
MOB_X(I)=GSPOIT(132+I,4)
MOB_Y(I)=GSPOIT(132+I,5)
MOB_LAYER(I)=GSPOIT(132+I,6)
NEXT
MOB_COUNT=GSPOIT(137,4)
Q=GSPOIT(138,4)
FOR I=0TO 5
B(I)=GSPOIT(131,I)
NEXT
IIH=GSPOIT(130,2)
BLOCK=B(IIH-1)
CLS
INVST=1
GOSUB@TEXT
GOSUB@INVBSU
GOTO@LOOP1
@RESUME
ACLS
SYSBEEP=0
LOAD"BGF:BOLDITAL",FALSE
SYSBEEP=1
RETURN
@TEXT
ACLS
SYSBEEP=0
LOAD"BGF:BOLDITAL",FALSE
'-----Change IGN$ to change your name
IGN$="IAmAPerson620"
'-----Change RANK$ to change your rank (User, Colored, Staff, Admin, Owner)
RANK$="Owner"
IF RANK$=="User" THEN RI=1
IF RANK$=="Colored" THEN RI=2
IF RANK$=="Staff" THEN RI=3
IF RANK$=="Admin" THEN RI=4
IF RANK$=="Owner" THEN RI=5
IF !NICKLEN THEN NICK$=IGN$
@TS
VST=0
SYSBEEP=1
COLOR 7:?"Welcome back, ";:COLOR 13:? IGN$;:COLOR 7:?"!"
COLOR 7:?"You are a(n) ";:COLOR 13:? RANK$;:COLOR 7:?"."
COLOR 7:?"Type ";:COLOR 13:?"/help";:COLOR 7:?" for a list of"
COLOR 7:?"commands."
COLOR 0
PNLTYPE"OFF"
RETURN
@S
PNLTYPE"OFF"
GOSUB@TGUIS
SYSBEEP=0:LOAD"BGF:BOLDITAL",0:SYSBEEP=1
GOSUB@LOOP1
RETURN
@S2
ACLS
LINPUT TXTI$
IF RI>=3THEN IF TXTI$=="/nick"THEN GOTO@NICK
IF RI>=4THEN IF TXTI$=="/ban"THEN GOTO@BAN
IF RI>=3THEN IF TXTI$=="/tempban"THEN GOTO@TBAN
IF RI>=1THEN IF TXTI$=="/leave"THEN GOTO@LEAVE
IF RI>=3THEN IF TXTI$=="/kick"THEN GOTO@KICK
IF RI>=3THEN IF TXTI$=="/mute"THEN GOTO@MUTE
IF RI>=1THEN IF TXTI$=="/help"THEN GOTO@HELP
IF RI==5THEN IF TXTI$=="/broadcast"THEN GOTO@BC
IF RI>=1THEN IF TXTI$=="/me"THEN GOTO@ME
IF RI>=1THEN IF TXTI$=="/ranks"THEN GOTO@RANKS
IF RI>=4THEN IF TXTI$=="/unban"THEN GOTO@UNBAN
IF RI>=4THEN IF TXTI$=="/vanish"THEN GOTO@V
IF RI==5THEN IF TXTI$=="/rankup"THEN GOTO@RU
IF RI>=1THEN IF TXTI$=="/quality"THEN GOTO@QSET
IF RI>=1THEN IF TXTI$=="/data"THEN GOTO@DATA
IF RANK$=="User"THEN GOTO@UT
IF RANK$=="Colored"THEN TXT$="&8<&4C&6o&2l&3o&1r&5e&4d&8>&6 "+IGN$+" &7>"+"&r "+TXTI$
IF RANK$=="Staff"THEN TXT$="&8<&3Staff&8>&3 "+NICK$+" &7>"+"&3 "+TXTI$
IF RANK$=="Admin"THEN TXT$="&8<&4Admin&8>&4 "+NICK$+" &7>"+"&4 "+TXTI$
IF RANK$=="Owner"THEN TXT$="&8<<&4&oOwner&8>>&4 "+NICK$+" &7>"+"&4 "+TXTI$
@CHATCOLOR
GOSUB@COLORTXT
PRINT""
COLOR 0
GOTO@S
@COLORTXT
N=-1
TXTLN=LEN(TXT$)
@LOOP
N=N+1
IF N>=TXTLN THEN GOTO@SKIP ELSE T$=MID$(TXT$,N,1)
IF T$=="&" THEN GOTO@COLR
PRINT T$;
GOTO@LOOP
@SKIP
RETURN
@COLR
CLL$=MID$(TXT$,N+1,1)
IF CLL$=="0"THEN COLN=0
IF CLL$=="1"THEN COLN=11
IF CLL$=="2"THEN COLN=4
IF CLL$=="3"THEN COLN=9
IF CLL$=="4"THEN COLN=13
IF CLL$=="5"THEN COLN=10
IF CLL$=="6"THEN COLN=7
IF CLL$=="7"THEN COLN=2
IF CLL$=="8"THEN COLN=14
IF CLL$=="9"THEN COLN=9
IF CLL$=="r"THEN COLN=0
IF CLL$=="l"THEN GOTO @BOLD
IF CLL$=="o"THEN GOTO @ITALICS
COLOR COLN
N=N+1
@FFTLT
GOTO@LOOP
@HELP
COLOR 13
PRINT"------------Commands------------"
COLOR 7
IF RI>=3 THEN PRINT "/kick <name> <reason>
IF RI>=3 THEN PRINT "/tempban <name> <time> <reason>"
IF RI>=4 THEN PRINT "/ban <name>"
IF RI>=3 THEN PRINT "/nick <nickname>"
IF RI>=3 THEN PRINT "/mute <name>"
IF RI==5 THEN PRINT "/broadcast <message>"
IF RI>=1 THEN PRINT "/me <action>"
IF RI>=4 THEN PRINT "/unban <name>"
IF RI>=4 THEN PRINT "/vanish"
IF RI>=1 THEN PRINT "/ranks"
IF RI==5 THEN PRINT "/rankup <name> <rank>"
IF RI>=1 THEN PRINT "/leave"
IF RI>=1 THEN PRINT "/quality <min. 1>
IF RI>=1 THEN PRINT "/data"
PRINT""
COLOR 13
PRINT"--------------------------------"
COLOR 0
GOTO @S
@KICK
COLOR 13:PRINT "NAME?":COLOR 0
INPUT N$
COLOR 13:PRINT "REASON?":COLOR 0
INPUT R$
TXT$="&6Player&4 "+NICK$+" &6kicked&4 "+N$+" &6for "+R$+"."
GOSUB @COLORTXT
COLOR 0
PRINT ""
IF N$==IGN$ THEN GOTO @LEAVE
GOTO @S
@TBAN
COLOR 13:PRINT "NAME?":COLOR 0
INPUT N$
@TBT
COLOR 13:PRINT "TIME (HOURS)?":COLOR 0
INPUT T
IF T>168 THEN GOTO @TBTE
COLOR 13:PRINT "REASON?":COLOR 0
INPUT R$
IF N$==IGN$ THEN GOTO @NB
TXT$="&6Player&4 "+NICK$+" &6banned&4 "+N$+" &6for&4 "+STR$(T)+" &6hours for "+R$+"."
GOSUB @COLORTXT
COLOR 0
PRINT ""
GOTO @S
@NICK
COLOR 13:PRINT "NICKNAME?":COLOR 0
INPUT NICK$
TXT$="&6Your nickname is now&4 "+NICK$+"&6."
GOSUB @COLORTXT
COLOR 0:?""
GOTO @S
@BAN
COLOR 13:?"NAME?":COLOR 0
INPUT N$
IF N$==IGN$ THEN GOTO @NB
TXT$="&6Player&4 "+NICK$+" &6banned&4 "+N$+" &6for the Ban Hammer has spoken!"
GOSUB @COLORTXT
COLOR 0
PRINT ""
GOTO @S
@MUTE
COLOR 13:?"NAME?":COLOR 0
INPUT N$
IF N$==IGN$ THEN GOTO @NM
TXT$="&6Player&4 "+NICK$+" &6muted&4 "+N$+"&6."
GOSUB @COLORTXT
COLOR 0
PRINT ""
GOTO @S
@LEAVE
TXT$="&6Player&4 "+NICK$+" &6left the game."
GOSUB @COLORTXT
WAIT 180
COLOR 0
END
@BC
COLOR 13:?"MESSAGE?":COLOR 0
INPUT M$
TXT$="&6[&4BROADCAST&6]&4 "+M$
GOSUB @COLORTXT
COLOR 0
PRINT ""
GOTO @S
@ME
COLOR 13:?"ACTION?":COLOR 0
INPUT A$
TXT$="&5* "+NICK$+"&5 "+A$
GOSUB @COLORTXT