-
Notifications
You must be signed in to change notification settings - Fork 0
/
protectpm2_27.pwn
13910 lines (12115 loc) · 609 KB
/
protectpm2_27.pwn
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
new mode_name[] = "Protect the PM 2 v2.7";
#include <a_samp>
#include <a_irc>
#include <file>
#define log_printf(%1) do { \
new _dy, _mn, _yr; \
new _h, _m, _s; \
getdate(_yr,_mn,_dy); \
gettime(_h,_m,_s); \
new _text[256]; \
format(_text,sizeof _text,"activity_log_%%002d%%002d%%002d.txt",_yr,_mn,_dy); \
new File:_f = fopen(_text,io_append); \
if (_f) { \
format (_text,sizeof _text,"%%002d%%002d%%002d ",_h,_m,_s); \
fwrite(_f,_text); \
format (_text,sizeof _text,%1); \
fwrite(_f,_text); \
fwrite(_f,"\n"); \
fclose(_f); \
} \
} while (zero())
// do while required so we can do if (...) log_printf(...); else ...
#define COLOUR_PERSONAL 0x8080FFAA
#define COLOUR_IMPORTANT 0xFF0000AA
#define COLOUR_GLOBAL 0xD0D0FFAA
#define COLOUR_BROADCAST 0x0066CCAA
#define COLOUR_QUERY 0xFFDC18AA
#define COLOUR_CONNECTION 0xC0C0C0FF
#define COLOUR_ACHIEVEMENT 0x5EAA02FF
#define GAME_TEXT_STYLE_BIG 6
#define GAME_TEXT_STYLE_SMALL 4
//#define PICKUP_BRASS_KNUCKLES 331
#define PICKUP_GOLFCLUB 333
#define PICKUP_NITESTICK 334
#define PICKUP_KNIFE 335
#define PICKUP_BAT 336
#define PICKUP_SHOVEL 337
#define PICKUP_POOLSTICK 338
#define PICKUP_KATANA 338
#define PICKUP_CHAINSAW 341
#define PICKUP_DILDO 321
#define PICKUP_DILDO2 322
#define PICKUP_VIBRATOR1 323
#define PICKUP_VIBRATOR2 324
#define PICKUP_FLOWER 325
#define PICKUP_CANE 326
#define PICKUP_GRENADE 342 // not synced
#define PICKUP_TEARGAS 343
#define PICKUP_MOLTOV 344
//#define PICKUP_MISSILE 345
#define PICKUP_COLT45 346
#define PICKUP_SILENCED 347
#define PICKUP_DEAGLE 348
#define PICKUP_SHOTGUN 349
#define PICKUP_SAWEDOFF 350
#define PICKUP_SHOTGSPA 351
#define PICKUP_UZI 352
#define PICKUP_MP5 353
//#define PICKUP_HYDRAFLARE 354
#define PICKUP_AK47 355
#define PICKUP_M4 356
#define PICKUP_TEC9 372
#define PICKUP_RIFLE 357
#define PICKUP_SNIPER 358
#define PICKUP_ROCKETLAUNCHER 359
#define PICKUP_HEATSEEKER 360
#define PICKUP_FLAMETHROWER 361
#define PICKUP_MINIGUN 362
//#define PICKUP_SACHEL 363
//#define PICKUP_BOMB 364 // actually the detonator
#define PICKUP_SPRAYCAN 365
#define PICKUP_FIREEXTINGUISHER 366
//#define PICKUP_CAMERA 367
//#define PICKUP_NIGHTVISION_GOGGLES 368
//#define PICKUP_THERMAL_GOGGLES 369
#define PICKUP_PARACHUTE 371
#define PICKUP_ARMOR 1242
#define PICKUP_JETPACK 370
#define SOUND_PICKUP_STANDARD 1150
#define PICKUP_SECURITY_CAMERA 1616
#define PICKUP_ARROW 1318
// every vehicle in SA
#define V_ADMIRAL 445
#define V_ALPHA 602
#define V_AMBULAN 416
#define V_ANDROM 592 // air
#define V_ARTICT1 435
#define V_ARTICT2 450
#define V_ARTICT3 591
#define V_AT400 577 // air
#define V_BAGBOXA 606
#define V_BAGBOXB 607
#define V_BAGGAGE 485
#define V_BANDITO 568
#define V_BANSHEE 429
#define V_BARRACKS 433
#define V_BEAGLE 511 // air
#define V_BENSON 499
#define V_BF400 581 // bike
#define V_BFINJECT 424
#define V_BIKE 509 // bike
#define V_BLADE 536
#define V_BLISTAC 496
#define V_BLOODRA 504
#define V_BMX 481 // bike
#define V_BOBCAT 422
#define V_BOXBURG 609
#define V_BOXVILLE 498
#define V_BRAVURA 401
#define V_BROADWAY 575
#define V_BUCCANEE 518
#define V_BUFFALO 402
#define V_BULLET 541
#define V_BURRITO 482
#define V_BUS 431
#define V_CABBIE 438
#define V_CADDY 457
#define V_CADRONA 527
#define V_CAMPER 483
#define V_CARGOBOB 548 // air
#define V_CEMENT 524
#define V_CHEETAH 415
#define V_CLOVER 542
#define V_CLUB 589
#define V_COACH 437
#define V_COASTG 472 // water
#define V_COMBINE 532
#define V_COMET 480
#define V_COPBIKE 523 // bike
#define V_COPCARLA 596
#define V_COPCARRU 599
#define V_COPCARSF 597
#define V_COPCARVG 598
#define V_CROPDUST 512 // air
#define V_DFT30 578
#define V_DINGHY 473 // water
#define V_DODO 593 // air
#define V_DOZER 486
#define V_DUMPER 406
#define V_DUNERIDE 573
#define V_ELEGANT 507
#define V_ELEGY 562
#define V_EMPEROR 585
#define V_ENFORCER 427
#define V_ESPERANT 419
#define V_EUROS 587
#define V_FAGGIO 462
#define V_FARMTR1 610
#define V_FBIRANCH 490
#define V_FBITRUCK 528
#define V_FCR900 521 // bike
#define V_FELTZER 533
#define V_FIRELA 544
#define V_FIRETRUK 407
#define V_FLASH 565
#define V_FLATBED 455
#define V_FORKLIFT 530
#define V_FORTUNE 526
#define V_FREEWAY 463 // bike
#define V_FREIBOX 590
#define V_FREIFLAT 569
#define V_FREIGHT 537
#define V_GLENDALE 466
#define V_GLENSHIT 604
#define V_GREENWOO 492
#define V_HERMES 474
#define V_HOTDOG 588
#define V_HOTKNIFE 434
#define V_HOTRINA 502
#define V_HOTRINB 503
#define V_HOTRING 494
#define V_HUNTER 425 // air
#define V_HUNTLEY 579
#define V_HUSTLER 545
#define V_HYDRA 520 // air
#define V_INFERNUS 411
#define V_INTRUDER 546
#define V_JESTER 559
#define V_JETMAX 493 // water
#define V_JOURNEY 508
#define V_KART 571
#define V_LANDSTAL 400
#define V_LAUNCH 595 // water
#define V_LEVIATHN 417 // air
#define V_LINERUN 403
#define V_MAJESTIC 517
#define V_MANANA 410
#define V_MARQUIS 484 // water
#define V_MAVERICK 487 // air
#define V_MERIT 551
#define V_MESA 500
#define V_MONSTER 444
#define V_MONSTERA 556
#define V_MONSTERB 557
#define V_MOONBEAM 418
#define V_MOWER 572
#define V_MRWHOOP 423
#define V_MTBIKE 510 // bike
#define V_MULE 414
#define V_NEBULA 516
#define V_NEVADA 553 // air
#define V_NEWSVAN 582
#define V_NRG500 522 // bike
#define V_OCEANIC 467
#define V_PACKER 443
#define V_PATRIOT 470
#define V_PCJ600 461 // bike
#define V_PEREN 404
#define V_PETRO 514
#define V_PETROTR 584
#define V_PHOENIX 603
#define V_PICADOR 600
#define V_PIZZABOY 448
#define V_POLMAV 497 // air
#define V_PONY 413
#define V_PREDATOR 430 // water
#define V_PREMIER 426
#define V_PREVION 436
#define V_PRIMO 547
#define V_QUAD 471 // bike
#define V_RAINDANC 563 // air
#define V_RANCHER 489
#define V_RCBANDIT 441
#define V_RCBARON 464 // air
#define V_RCCAM 594
#define V_RCGOBLIN 501 // air
#define V_RCRAIDER 465 // air
#define V_RCTIGER 564
#define V_RDTRAIN 515
#define V_REEFER 453 // water
#define V_REGINA 479
#define V_REMINGTN 534
#define V_RHINO 432
#define V_RNCHLURE 505
#define V_ROMERO 442
#define V_RUMPO 440
#define V_RUSTLER 476 // air
#define V_SABRE 475
#define V_SADLER 543
#define V_SADLSHIT 605
#define V_SANCHEZ 468 // bike
#define V_SANDKING 495
#define V_SAVANNA 567
#define V_SEASPAR 447 // air
#define V_SECURICA 428
#define V_SENTINEL 405
#define V_SHAMAL 519 // air
#define V_SKIMMER 460 // air
#define V_SLAMVAN 535
#define V_SOLAIR 458
#define V_SPARROW 469 // air
#define V_SPEEDER 452 // water
#define V_SQUALO 446 // water
#define V_STAFFORD 580
#define V_STALLION 439
#define V_STRATUM 561
#define V_STREAK 538
#define V_STREAKC 570
#define V_STRETCH 409
#define V_STUNT 513 // air
#define V_SULTAN 560
#define V_SUNRISE 550
#define V_SUPERGT 506
#define V_SWATVAN 601
#define V_SWEEPER 574
#define V_TAHOMA 566
#define V_TAMPA 549
#define V_TAXI 420
#define V_TOPFUN 459
#define V_TORNADO 576
#define V_TOWTRUCK 525
#define V_TRACTOR 531
#define V_TRAM 449
#define V_TRASH 408
#define V_TROPIC 454
#define V_TUG 583
#define V_TUGSTAIR 608
#define V_TURISMO 451
#define V_URANUS 558
#define V_UTILITY 552
#define V_UTILTR1 611
#define V_VCNMAV 488 // air
#define V_VINCENT 540
#define V_VIRGO 491
#define V_VOODOO 412
#define V_VORTEX 539 // hovercraft
#define V_WALTON 478
#define V_WASHING 421
#define V_WAYFARER 586 // bike
#define V_WILLARD 529
#define V_WINDSOR 555
#define V_YANKEE 456
#define V_YOSEMITE 554
#define V_ZR350 477
#define NUM_V_MODELIDS 212
// maximum velocities from standard handling.cfg
// for CHEETAH (415) use vehicle_velocity[15];
new Float:vehicle_velocity[NUM_V_MODELIDS] = {
160.0, // landstal (400)
160.0, // bravura (401)
200.0, // buffalo (402)
120.0, // linerun (403)
150.0, // peren (404)
165.0, // sentinel (405)
110.0, // dumper (406)
170.0, // firetruk (407)
110.0, // trash (408)
180.0, // stretch (409)
160.0, // manana (410)
240.0, // infernus (411)
160.0, // voodoo (412)
160.0, // pony (413)
140.0, // mule (414)
230.0, // cheetah (415)
155.0, // ambulan (416)
200.0, // leviathn (417)
150.0, // moonbeam (418)
160.0, // esperant (419)
180.0, // taxi (420)
180.0, // washing (421)
165.0, // bobcat (422)
145.0, // mrwhoop (423)
170.0, // bfinject (424)
200.0, // hunter (425)
200.0, // premier (426)
170.0, // enforcer (427)
170.0, // securica (428)
200.0, // banshee (429)
190.0, // predator (430)
130.0, // bus (431)
80.0, // rhino (432)
180.0, // barracks (433)
200.0, // hotknife (434)
120.0, // artict1 (435)
160.0, // previon (436)
160.0, // coach (437)
160.0, // cabbie (438)
160.0, // stallion (439)
160.0, // rumpo (440)
75.0, // rcbandit (441)
150.0, // romero (442)
150.0, // packer (443)
110.0, // monster (444)
165.0, // admiral (445)
280.0, // squalo (446) // WAS 190
200.0, // seaspar (447)
190.0, // pizzaboy (448)
150.0, // tram (449)
120.0, // artict2 (450)
240.0, // turismo (451)
190.0, // speeder (452)
190.0, // reefer (453)
190.0, // tropic (454)
140.0, // flatbed (455)
160.0, // yankee (456)
160.0, // caddy (457)
165.0, // solair (458)
160.0, // topfun (459)
200.0, // skimmer (460)
190.0, // pcj600 (461)
190.0, // faggio (462)
190.0, // freeway (463)
75.0, // rcbaron (464)
75.0, // rcraider (465)
160.0, // glendale (466)
160.0, // oceanic (467)
190.0, // sanchez (468)
200.0, // sparrow (469)
170.0, // patriot (470)
160.0, // QUAD (471)
190.0, // coastg (472)
190.0, // dinghy (473)
160.0, // hermes (474)
160.0, // sabre (475)
330.0, // rustler (476) (was 200)
200.0, // zr350 (477)
150.0, // walton (478)
165.0, // regina (479)
200.0, // comet (480)
120.0, // bmx (481)
150.0, // burrito (482)
120.0, // camper (483)
190.0, // marquis (484)
160.0, // baggage (485)
100.0, // dozer (486)
200.0, // maverick (487)
200.0, // vcnmav (488)
170.0, // rancher (489)
170.0, // fbiranch (490)
160.0, // virgo (491)
160.0, // greenwoo (492)
190.0, // jetmax (493)
220.0, // hotring (494)
170.0, // sandking (495)
200.0, // blistac (496)
200.0, // polmav (497)
140.0, // boxville (498)
140.0, // benson (499)
160.0, // mesa (500)
75.0, // rcgoblin (501)
220.0, // hotrina (502)
220.0, // hotrinb (503)
160.0, // bloodra (504)
170.0, // rnchlure (505)
230.0, // supergt (506)
165.0, // elegant (507)
140.0, // journey (508)
120.0, // bike (509)
140.0, // mtbike (510)
200.0, // beagle (511)
200.0, // cropdust (512)
200.0, // stunt (513)
120.0, // petro (514)
120.0, // rdtrain (515)
165.0, // nebula (516)
165.0, // majestic (517)
160.0, // buccanee (518)
330.0, // shamal (519) (WAS 200)
330.0, // hydra (520) (WAS 200)
190.0, // fcr900 (521)
190.0, // nrg500 (522)
190.0, // copbike (523)
110.0, // cement (524)
160.0, // towtruck (525)
160.0, // fortune (526)
160.0, // cadrona (527)
170.0, // fbitruck (528)
160.0, // willard (529)
60.0, // forklift (530)
70.0, // tractor (531)
140.0, // combine (532)
200.0, // feltzer (533)
160.0, // remingtn (534)
160.0, // slamvan (535)
160.0, // blade (536)
110.0, // freight (537)
110.0, // streak (538)
150.0, // vortex (539)
160.0, // vincent (540)
230.0, // bullet (541)
160.0, // clover (542)
165.0, // sadler (543)
170.0, // firela (544)
160.0, // hustler (545)
160.0, // intruder (546)
160.0, // primo (547)
200.0, // cargobob (548)
160.0, // tampa (549)
160.0, // sunrise (550)
165.0, // merit (551)
160.0, // utility (552)
200.0, // nevada (553)
170.0, // yosemite (554)
180.0, // windsor (555)
110.0, // monstera (556)
110.0, // monsterb (557)
200.0, // uranus (558)
200.0, // jester (559)
200.0, // sultan (560)
200.0, // stratum (561)
200.0, // elegy (562)
200.0, // raindanc (563)
75.0, // rctiger (564)
200.0, // flash (565)
160.0, // tahoma (566)
160.0, // savanna (567)
170.0, // bandito (568)
110.0, // freiflat (569)
110.0, // streakc (570)
90.0, // kart (571)
60.0, // mower (572)
110.0, // duneride (573)
60.0, // sweeper (574)
160.0, // broadway (575)
160.0, // tornado (576)
200.0, // at400 (577)
110.0, // dft30 (578)
160.0, // huntley (579)
165.0, // stafford (580)
190.0, // bf400 (581)
160.0, // newsvan (582)
170.0, // tug (583)
120.0, // petrotr (584)
165.0, // emperor (585)
190.0, // wayfarer (586)
200.0, // euros (587)
140.0, // hotdog (588)
200.0, // club (589)
110.0, // freibox (590)
120.0, // artict3 (591)
200.0, // androm (592)
200.0, // dodo (593)
60.0, // rccam (594)
190.0, // launch (595)
200.0, // copcarla (596)
200.0, // copcarsf (597)
200.0, // copcarvg (598)
160.0, // copcarru (599)
165.0, // picador (600)
110.0, // swatvan (601)
200.0, // alpha (602)
200.0, // phoenix (603)
160.0, // glenshit (604)
165.0, // sadlshit (605)
160.0, // bagboxa (606)
160.0, // bagboxb (607)
160.0, // tugstair (608)
140.0, // boxburg (609)
160.0, // farmtr1 (610)
160.0 // utiltr1 (611)
};
// names from vehicles.ide, matches up with the #defines
new vehicle_name[NUM_V_MODELIDS][9] = {
"landstal",
"bravura",
"buffalo",
"linerun",
"peren",
"sentinel",
"dumper",
"firetruk",
"trash",
"stretch",
"manana",
"infernus",
"voodoo",
"pony",
"mule",
"cheetah",
"ambulan",
"leviathn",
"moonbeam",
"esperant",
"taxi",
"washing",
"bobcat",
"mrwhoop",
"bfinject",
"hunter",
"premier",
"enforcer",
"securica",
"banshee",
"predator",
"bus",
"rhino",
"barracks",
"hotknife",
"artict1",
"previon",
"coach",
"cabbie",
"stallion",
"rumpo",
"rcbandit",
"romero",
"packer",
"monster",
"admiral",
"squalo",
"seaspar",
"pizzaboy",
"tram",
"artict2",
"turismo",
"speeder",
"reefer",
"tropic",
"flatbed",
"yankee",
"caddy",
"solair",
"topfun",
"skimmer",
"pcj600",
"faggio",
"freeway",
"rcbaron",
"rcraider",
"glendale",
"oceanic",
"sanchez",
"sparrow",
"patriot",
"QUAD",
"coastg",
"dinghy",
"hermes",
"sabre",
"rustler",
"zr350",
"walton",
"regina",
"comet",
"bmx",
"burrito",
"camper",
"marquis",
"baggage",
"dozer",
"maverick",
"vcnmav",
"rancher",
"fbiranch",
"virgo",
"greenwoo",
"jetmax",
"hotring",
"sandking",
"blistac",
"polmav",
"boxville",
"benson",
"mesa",
"rcgoblin",
"hotrina",
"hotrinb",
"bloodra",
"rnchlure",
"supergt",
"elegant",
"journey",
"bike",
"mtbike",
"beagle",
"cropdust",
"stunt",
"petro",
"rdtrain",
"nebula",
"majestic",
"buccanee",
"shamal",
"hydra",
"fcr900",
"nrg500",
"copbike",
"cement",
"towtruck",
"fortune",
"cadrona",
"fbitruck",
"willard",
"forklift",
"tractor",
"combine",
"feltzer",
"remingtn",
"slamvan",
"blade",
"freight",
"streak",
"vortex",
"vincent",
"bullet",
"clover",
"sadler",
"firela",
"hustler",
"intruder",
"primo",
"cargobob",
"tampa",
"sunrise",
"merit",
"utility",
"nevada",
"yosemite",
"windsor",
"monstera",
"monsterb",
"uranus",
"jester",
"sultan",
"stratum",
"elegy",
"raindanc",
"rctiger",
"flash",
"tahoma",
"savanna",
"bandito",
"freiflat",
"streakc",
"kart",
"mower",
"duneride",
"sweeper",
"broadway",
"tornado",
"at400",
"dft30",
"huntley",
"stafford",
"bf400",
"newsvan",
"tug",
"petrotr",
"emperor",
"wayfarer",
"euros",
"hotdog",
"club",
"freibox",
"artict3",
"androm",
"dodo",
"rccam",
"launch",
"copcarla",
"copcarsf",
"copcarvg",
"copcarru",
"picador",
"swatvan",
"alpha",
"phoenix",
"glenshit",
"sadlshit",
"bagboxa",
"bagboxb",
"tugstair",
"boxburg",
"farmtr1",
"utiltr1"
};
new current_weather_type;
new current_weather_id;
#define NUM_CITY_WEATHER 11
new city_weather[NUM_CITY_WEATHER] = { // 0
1,
2,
7,
// 8, rain
9,
13,
// 16,
17,
// 42,
3,
11,
18,
5,
24
};
#define NUM_COUNTRY_WEATHER 8
new country_weather[NUM_COUNTRY_WEATHER] = { // 1
4,
// 8, rain
1,
9,
15,
// 16,
// 8,
20,
3,
5
};
#define NUM_DESERT_WEATHER 8
new desert_weather[NUM_DESERT_WEATHER] = { // 2
3,
12,
14,
17,
19,
308,
320,
10
};
#define NUM_SECURITY_CAMERA 11
new Float:security_camera_mount[NUM_SECURITY_CAMERA][3] = {
{2560.75,2802.48,39.02}, //Factory: car park
{2575.59,2627.20,114.96}, // south tower
{2717.45,2825.68,43.14}, // roof
{2592.97,2735.62,39.02}, // heli pad
{2499.32,2682.92,80.83}, // west tower
{2616.12,2849.19,23.36}, // warehouse
{2675.27,2746.42,39.02}, // blue funnels
{2720.31,2764.34,81.06}, // east tower
{-2357.7227,1529.5123,41.0469}, // SF: bc front
{-2359.83,1533.38,33.70}, // front backwards
{-2427.82,1558.61,30.18} // middle
};
new Float:security_camera_point[NUM_SECURITY_CAMERA][3] = {
{2551.11,2763.02,11.81}, //Factory: car park
{2590.50,2636.69,109.16}, // south tower
{2700.01,2818.94,38.32}, // roof
{2607.10,2729.20,36.53}, // helipad
{2503.92,2691.66,74.82}, // west tower
{2608.20,2843.75,19.99}, // warehouse
{2688.49,2711.36,38.02}, // blue funnels
{2715.96,2771.00,74.82}, // east tower
{-2312.5740,1548.1370,18.7734}, // SF: bc front
{-2372.53,1542.99,26.87}, // front backwards
{-2423.68,1535.21,26.04} // middle
};
forward Float:DistanceFromPlayerToPlayer(id1, id2);
forward PlayerMapVote(playerid,map[]);
forward PlayerMapVoteHelp(playerid);
forward PlayerMapVoteStatus(playerid);
forward MapVoteDisplayNextMap();
forward MapVoteWinner();
forward MapVoteStore();
forward MapVoteGetVotedMap();
forward RoundTick();
forward GameModeExitFunc();
forward GameModeExitMapvote();
forward RegularTask();
forward PlayerCalculateSpeed(playerid);
forward OnPlayerStepOnPickup(playerid, pickupid);
forward GivePlayerWeapon2(playerid, pickupid);
forward DisruptTrack(playerid);
forward ResetVote();
forward ResetVoteOnEndGame();
forward OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
#define POCKET_MONEY 500
#define TEXTDRAWS
// don't forget to change these
#define NUM_PSYCHOS 4
#define NUM_TERRORISTS 8
#define NUM_BODYGUARDS 6
#define NUM_COPS 10
#define NUM_CLASSES (NUM_PSYCHOS+NUM_TERRORISTS+1+NUM_BODYGUARDS+NUM_COPS)
new class_psycho1;
new class_psycho2;
new class_psycho3;
new class_psycho4;
new class_terrorist1;
new class_terrorist2;
new class_terrorist3;
new class_terrorist4;
new class_terrorist5;
new class_terrorist6;
new class_terrorist7;
new class_terrorist_medic;
new class_primeminister;
new class_bodyguard1;
new class_bodyguard2;
new class_bodyguard3;
new class_bodyguard4;
new class_bodyguard5;
new class_bodyguard_medic;
new class_cop1;
new class_cop2;
new class_cop3;
new class_cop4;
new class_cop5;
new class_cop6;
new class_cop7;
new class_cop8;
new class_cop9;
new class_cop_medic;
#define INVALID_CLASS (-1)
#define TEAM_PSYCHO 0
#define TEAM_TERRORIST 1
#define TEAM_PRIMEMINISTER 2
#define TEAM_BODYGUARD 3
#define TEAM_COP 4
#define NUM_TEAMS 5
#define NUM_SPAWNS 512
#define NUM_PICKUPS 100
#define NUM_OBJS 256
#define NUM_MAPS 13
new class_team[NUM_CLASSES];
//new player_vis_tmp[MAX_PLAYERS];
new class_normal_vis[NUM_CLASSES];
/* THESE DO NOT CHANGE AS THE GAME PROGRESSES */
#define NUM_GAME_BOUNDARY_CORNERS 256
new Float:game_boundary_x[NUM_GAME_BOUNDARY_CORNERS];
new Float:game_boundary_y[NUM_GAME_BOUNDARY_CORNERS];
new game_boundary_count = 0;
new game_boundary_enabled = 1;
new Float:game_boundary_min_x;
new Float:game_boundary_min_y;
new Float:game_boundary_max_x;
new Float:game_boundary_max_y;
new Float:intel_north;
new Float:intel_south;
new Float:intel_east;
new Float:intel_west;
new safehouse_exists = 0;
new Float:safehouse_x;
new Float:safehouse_y;
new Float:safehouse_z;
new safehouse_exclusion; // radius of hydra exclusion sphere
new intel_feature[256] = "the map";
new playerid_max = 0;
new wardrobe_interior = 14;
new Float:wardrobe_player_x = 258.4893;
new Float:wardrobe_player_y = -41.4008;
new Float:wardrobe_player_z = 1002.0234;
new Float:wardrobe_player_orientation = 270.0;
new Float:wardrobe_camera_x = 256.0815;
new Float:wardrobe_camera_y = -43.0475;
new Float:wardrobe_camera_z = 1004.0234;
new cant_drive_vehicle[NUM_TEAMS][MAX_VEHICLES];
new cant_passenger_vehicle[NUM_TEAMS][MAX_VEHICLES];
new connection_message_block = 0;
#define MAX_USERNAME 256
new transmap_nickname[MAX_PLAYERS][MAX_PLAYER_NAME];
new transmap_username[MAX_PLAYERS][MAX_USERNAME];
/* PLAYER DATABASE */
new player_class[MAX_PLAYERS];
new player_class_requested[MAX_PLAYERS];
new Float:player_last_good_x[MAX_PLAYERS];
new Float:player_last_good_y[MAX_PLAYERS];
new Float:player_last_good_z[MAX_PLAYERS];
new player_pos_faked[MAX_PLAYERS];
new Float:player_old_x[MAX_PLAYERS];
new Float:player_old_y[MAX_PLAYERS];
new Float:player_old_z[MAX_PLAYERS];
//new Float:player_pos_faked_distance[MAX_PLAYERS];
new player_reset_me[MAX_PLAYERS];
new Float:player_reset_x[MAX_PLAYERS];
new Float:player_reset_y[MAX_PLAYERS];
new Float:player_reset_z[MAX_PLAYERS];
new player_teamkills[MAX_PLAYERS];
new player_teamkill_freeze_counter[MAX_PLAYERS];
new player_vehicle_passenger[MAX_PLAYERS];
new player_vehicle_driver[MAX_PLAYERS];
new player_username[MAX_PLAYERS][MAX_USERNAME];
new player_legal_minigun[MAX_PLAYERS];
new player_legal_rocketlauncher[MAX_PLAYERS];
new player_legal_heatseeker[MAX_PLAYERS];
new player_map[MAX_PLAYERS];