View difference between Paste ID: XXJim7ti and nrc7MA8a
SHOW: | | - or go back to the newest paste.
1
1.
2-
	Der Frost / Nazi Zombie Sniperbolt Tutorial Version 2.0
2+
3-
		Scripter: Sparks
3+
4-
		Tutorial: Sniperbolt
4+
 2.
5
        Der Frost / Nazi Zombie Sniperbolt Tutorial Version 2.0
6-
	Version 1.0 (9/24/2009 7:51:18 PM)
6+
7-
		-- Initial Release Of Source Files
7+
 3.
8
                Scripter: Sparks
9
10
 4.
11
                Tutorial: Sniperbolt
12
13
 5.
14
 
15
16
 6.
17
        Version 1.0 (9/24/2009 7:51:18 PM)
18
19
 7.
20
                -- Initial Release Of Source Files
21
22
 8.
23
*/
24
25-
	level.DLC3 = spawnStruct(); // Leave This Line Or Else It Breaks Everything
25+
 9.
26
 
27-
	// Must Change These To Your Maps
27+
28-
	level.DLC3.createArt = maps\createart\nazi_zombie_the_escape_art::main;
28+
 10.
29-
	level.DLC3.createFX = maps\createfx\nazi_zombie_the_escape_fx::main;
29+
30-
	// level.DLC3.myFX = ::preCacheMyFX;
30+
31
 11.
32-
	/*--------------------
32+
 
33-
	 FX
33+
34-
	----------------------*/
34+
 12.
35-
	DLC3_FX();
35+
36
37-
	/*--------------------
37+
 13.
38-
	 LEVEL VARIABLES
38+
39-
	----------------------*/	
39+
40
14.
41-
	// Variable Containing Helpful Text For Modders -- Don't Remove
41+
42-
	level.modderHelpText = [];
42+
43
 15.
44-
	//
44+
45-
	// Change Or Tweak All Of These LEVEL.DLC3 Variables Below For Your Level If You Wish
45+
46-
	//
46+
16.
47
#include maps\_zombiemode_zone_manager; 
48-
	// Edit The Value In Mod.STR For Your Level Introscreen Place
48+
49-
	level.DLC3.introString = &"nazi zombie tes";
49+
17.
50
#include maps\_music;
51-
	// Weapons. Pointer function automatically loads weapons used in Der Riese.
51+
52-
	level.DLC3.weapons = maps\dlc3_code::include_weapons;
52+
 18.
53
 
54-
	// Power Ups. Pointer function automatically loads power ups used in Der Riese.
54+
55-
	level.DLC3.powerUps =  maps\dlc3_code::include_powerups;
55+
 19.
56
// DLC3 Utilities
57-
	// Adjusts how much melee damage a player with the perk will do, needs only be set once. Stock is 1000.
57+
58-
	level.DLC3.perk_altMeleeDamage = 1000; 
58+
 20.
59
#include maps\dlc3_code;
60-
	// Adjusts barrier search override. Stock is 400.
60+
61-
	level.DLC3.barrierSearchOverride = 400;
61+
 21.
62
#include maps\dlc3_teleporter;
63-
	// Adjusts power up drop max per round. Stock is 3.
63+
64-
	level.DLC3.powerUpDropMax = 3;
64+
 22.
65
 
66-
	// _loadout Variables
66+
67-
	level.DLC3.useCoopHeroes = true;
67+
 23.
68
main()
69-
	// Bridge Feature
69+
70-
	level.DLC3.useBridge = false;
70+
 24.
71
{
72-
	// Hell Hounds
72+
73-
	level.DLC3.useHellHounds = true;
73+
 25.
74
        level.DLC3 = spawnStruct(); // Leave This Line Or Else It Breaks Everything
75-
	// Mixed Rounds
75+
76-
	level.DLC3.useMixedRounds = true;
76+
 26.
77
        
78-
	// Magic Boxes -- The Script_Noteworthy Value Names On Purchase Trigger In Radiant
78+
79-
	boxArray = [];
79+
27.
80-
	boxArray[ boxArray.size ] = "start_chest";
80+
        // Must Change These To Your Maps
81-
	boxArray[ boxArray.size ] = "chest1";
81+
82-
	boxArray[ boxArray.size ] = "chest2";
82+
 28.
83-
	boxArray[ boxArray.size ] = "chest3";
83+
        level.DLC3.createArt = maps\createart\nazi_zombie_the_escape_art::main;
84-
	boxArray[ boxArray.size ] = "chest4";
84+
85-
	boxArray[ boxArray.size ] = "chest5";
85+
 29.
86-
	level.DLC3.PandoraBoxes = boxArray;
86+
        level.DLC3.createFX = maps\createfx\nazi_zombie_the_escape_fx::main;
87
88-
	// Initial Zone(s) -- Zone(s) You Want Activated At Map Start
88+
 30.
89-
	zones = [];
89+
        // level.DLC3.myFX = ::preCacheMyFX;
90-
	zones[ zones.size ] = "start_zone";
90+
91-
	level.DLC3.initialZones = zones;
91+
 31.
92
        
93-
	// Electricity Switch -- If False Map Will Start With Power On
93+
94-
	level.DLC3.useElectricSwitch = true;
94+
32.
95
        /*--------------------
96-
	// Electric Traps
96+
97-
	level.DLC3.useElectricTraps = true;
97+
 33.
98
         FX
99-
	// _zombiemode_weapons Variables
99+
100-
	level.DLC3.usePandoraBoxLight = true;
100+
 34.
101-
	level.DLC3.useChestPulls = true;
101+
        ----------------------*/
102-
	level.DLC3.useChestMoves = true;
102+
103-
	level.DLC3.useWeaponSpawn = true;
103+
 35.
104-
	level.DLC3.useGiveWeapon = true;
104+
        DLC3_FX();
105
106-
	// _zombiemode_spawner Varibles
106+
 36.
107-
	level.DLC3.riserZombiesGoToDoorsFirst = true;
107+
        
108-
	level.DLC3.riserZombiesInActiveZonesOnly = true;
108+
109-
	level.DLC3.assureNodes = true;
109+
37.
110
        /*--------------------
111-
	// _zombiemode_perks Variables
111+
112-
	level.DLC3.perksNeedPowerOn = true;
112+
 38.
113
         LEVEL VARIABLES
114-
	// _zombiemode_devgui Variables
114+
115-
	level.DLC3.powerSwitch = true;
115+
 39.
116
        ----------------------*/        
117-
	/*--------------------
117+
118-
	 FUNCTION CALLS - PRE _Load
118+
40.
119-
	----------------------*/
119+
        
120-
	level thread DLC3_threadCalls();	
120+
121
41.
122-
	/*--------------------
122+
        // Variable Containing Helpful Text For Modders -- Don't Remove
123-
	 ZOMBIE MODE
123+
124-
	----------------------*/
124+
 42.
125-
	[[level.DLC3.weapons]]();
125+
        level.modderHelpText = [];
126-
	[[level.DLC3.powerUps]]();
126+
127-
	//////////////////////////////////////////////////
127+
 43.
128
        
129
130
44.
131
        //
132
133
 45.
134
        // Change Or Tweak All Of These LEVEL.DLC3 Variables Below For Your Level If You Wish
135
136
 46.
137
        //
138-
	/*--------------------
138+
139-
	 FUNCTION CALLS - POST _Load
139+
 47.
140-
	----------------------*/
140+
        
141-
	level.zone_manager_init_func = ::dlc3_zone_init;
141+
142-
	level thread DLC3_threadCalls2();
142+
48.
143-
	thread para_egg();
143+
        // Edit The Value In Mod.STR For Your Level Introscreen Place
144
145
 49.
146
        level.DLC3.introString = &"nazi zombie tes";
147
148
 50.
149
        
150
151
51.
152
        // Weapons. Pointer function automatically loads weapons used in Der Riese.
153
154
 52.
155
        level.DLC3.weapons = maps\dlc3_code::include_weapons;
156
157
 53.
158
        
159
160
54.
161
        // Power Ups. Pointer function automatically loads power ups used in Der Riese.
162
163
 55.
164-
	add_adjacent_zone( "start_zone", "zone1", "enter_zone1" );
164+
        level.DLC3.powerUps =  maps\dlc3_code::include_powerups;
165-
	add_adjacent_zone( "zone1", "zone2", "enter_zone2" );
165+
166
 56.
167
        
168-
	/*
168+
169-
	=============
169+
57.
170-
	///ScriptDocBegin
170+
        // Adjusts how much melee damage a player with the perk will do, needs only be set once. Stock is 1000.
171-
	"Name: add_adjacent_zone( <zone_1>, <zone_2>, <flag>, <one_way> )"
171+
172-
	"Summary: Sets up adjacent zones."
172+
 58.
173-
	"MandatoryArg: <zone_1>: Name of first Info_Volume"
173+
        level.DLC3.perk_altMeleeDamage = 1000; 
174-
	"MandatoryArg: <zone_2>: Name of second Info_Volume"
174+
175-
	"MandatoryArg: <flag>: Flag to be set to initiate zones"
175+
59.
176-
	"OptionalArg: <one_way>: Make <zone_1> adjacent to <zone_2>. Defaults to false."
176+
        
177-
	"Example: add_adjacent_zone( "receiver_zone",		"outside_east_zone",	"enter_outside_east" );"
177+
178-
	///ScriptDocEnd
178+
60.
179-
	=============
179+
        // Adjusts barrier search override. Stock is 400.
180-
	*/
180+
181
 61.
182-
	// Outside East Door
182+
        level.DLC3.barrierSearchOverride = 400;
183-
	//add_adjacent_zone( "receiver_zone",		"outside_east_zone",	"enter_outside_east" );
183+
184
 62.
185
        
186
187
63.
188
        // Adjusts power up drop max per round. Stock is 3.
189
190
 64.
191
        level.DLC3.powerUpDropMax = 3;
192
193-
	if(tag) {
193+
 65.
194-
		model = spawn("script_model", self.origin);
194+
        
195-
		model setmodel("tag_origin");
195+
196-
		play_fx(effect, undefined, model);
196+
66.
197-
	} else
197+
        // _loadout Variables
198-
		play_fx(effect, loc, undefined);
198+
199
 67.
200
        level.DLC3.useCoopHeroes = true;
201
202-
	if(!isdefined(level._effect[effect])) {
202+
 68.
203-
		iPrintLn("Effect is undefined!");
203+
        
204-
		return;
204+
205-
	}
205+
69.
206
        // Bridge Feature
207-
	if(isdefined(model))
207+
208-
		playfxontag(level._effect[effect], self, "tag_origin");
208+
 70.
209-
	else
209+
        level.DLC3.useBridge = false;
210-
		playfx(level._effect[effect], loc);
210+
211
 71.
212
        
213
214
72.
215
        // Hell Hounds
216
217
 73.
218
        level.DLC3.useHellHounds = true;
219
220
 74.
221
        
222
223
75.
224
        // Mixed Rounds
225
226
 76.
227
        level.DLC3.useMixedRounds = true;
228
229
 77.
230
        
231
232
78.
233
        // Magic Boxes -- The Script_Noteworthy Value Names On Purchase Trigger In Radiant
234
235
 79.
236
        boxArray = [];
237
238
 80.
239
        boxArray[ boxArray.size ] = "start_chest";
240
241
 81.
242
        boxArray[ boxArray.size ] = "chest1";
243
244
 82.
245
        boxArray[ boxArray.size ] = "chest2";
246
247
 83.
248
        boxArray[ boxArray.size ] = "chest3";
249
250
 84.
251
        boxArray[ boxArray.size ] = "chest4";
252
253
 85.
254
        boxArray[ boxArray.size ] = "chest5";
255
256
 86.
257
        level.DLC3.PandoraBoxes = boxArray;
258
259
 87.
260
        
261
262
88.
263
        // Initial Zone(s) -- Zone(s) You Want Activated At Map Start
264
265
 89.
266
        zones = [];
267
268
 90.
269
        zones[ zones.size ] = "start_zone";
270
271
 91.
272
        level.DLC3.initialZones = zones;
273
274
 92.
275
        
276
277
93.
278
        // Electricity Switch -- If False Map Will Start With Power On
279
280
 94.
281
        level.DLC3.useElectricSwitch = true;
282
283
 95.
284
        
285
286
96.
287
        // Electric Traps
288
289
 97.
290
        level.DLC3.useElectricTraps = true;
291
292
 98.
293
        
294
295
99.
296
        // _zombiemode_weapons Variables
297
298
 100.
299
        level.DLC3.usePandoraBoxLight = true;
300
301
 101.
302
        level.DLC3.useChestPulls = true;
303
304
 102.
305
        level.DLC3.useChestMoves = true;
306
307
 103.
308
        level.DLC3.useWeaponSpawn = true;
309
310
 104.
311
        level.DLC3.useGiveWeapon = true;
312
313
 105.
314
        
315
316
106.
317
        // _zombiemode_spawner Varibles
318
319
 107.
320
        level.DLC3.riserZombiesGoToDoorsFirst = true;
321
322
 108.
323
        level.DLC3.riserZombiesInActiveZonesOnly = true;
324
325
 109.
326
        level.DLC3.assureNodes = true;
327
328
 110.
329
        
330
331
111.
332
        // _zombiemode_perks Variables
333
334
 112.
335
        level.DLC3.perksNeedPowerOn = true;
336
337
 113.
338
        
339
340
114.
341
        // _zombiemode_devgui Variables
342
343
 115.
344
        level.DLC3.powerSwitch = true;
345
346
 116.
347
        
348
349
117.
350
        /*--------------------
351
352
 118.
353
         FUNCTION CALLS - PRE _Load
354
355
 119.
356
        ----------------------*/
357
358
 120.
359
        level thread DLC3_threadCalls();        
360
361
121.
362
        
363
364
122.
365
        /*--------------------
366
367
 123.
368
         ZOMBIE MODE
369
370
 124.
371
        ----------------------*/
372
373
 125.
374
        [[level.DLC3.weapons]]();
375
376
 126.
377
        [[level.DLC3.powerUps]]();
378
379
 127.
380
        //////////////////////////////////////////////////
381
382
 128.
383
    //Music Player .gsc
384
385
 129.
386
    //////////////////////////////////////////////////
387
388
 130.
389
    preCacheModel ("zombie_zapper_cagelight_green");
390
391
 131.
392
    game["tom_music_player"] = "tom_music_player";
393
394
 132.
395
    PrecacheMenu( game["tom_music_player"] );
396
397
 133.
398
    level thread maps\tom_music_player_unl::main();
399
400
 134.
401
    preCacheFX();
402
403
 135.
404
    maps\_zombiemode::main();
405
406
 136.
407
    maps\planes::main();
408
409
 137.
410
        
411
412
138.
413
        /*--------------------
414
415
 139.
416
         FUNCTION CALLS - POST _Load
417
418
 140.
419
        ----------------------*/
420
421
 141.
422
        level.zone_manager_init_func = ::dlc3_zone_init;
423
424
 142.
425
        level thread DLC3_threadCalls2();
426
427
 143.
428
        thread para_egg();
429
430
 144.
431
        thread make_fx();
432
433
 145.
434
        thread maps\_kinostyle_teleporter::init();
435
436
 146.
437
}
438
439
 147.
440
 
441
442
 148.
443
// Paragalor's easter egg function
444
445
 149.
446
para_egg()
447
448
 150.
449
{
450
451
 151.
452
      trig = getEnt("para_eggtrig", "targetname");
453
454
 152.
455
      trig UseTriggerRequireLookAt();
456
457
 153.
458
      trig SetCursorHint( "HINT_NOICON" );
459
460
 154.
461
      trig waittill ("trigger");
462
463
 155.
464
      trig delete();
465
466
 156.
467
      players = get_players();
468
469
 157.
470
      for( i = 0; i < players.size; i++ )
471
472
 158.
473
         players[i] playsound("para_egg");
474
475
 159.
476
}
477
478
 160.
479
 
480
481
 161.
482
dlc3_zone_init()
483
484
 162.
485
{
486
487
 163.
488
 
489
490
 164.
491
        add_adjacent_zone( "start_zone", "zone1", "enter_zone1" );
492
	
493
	add_adjacent_zone( "start_zone", "zone2", "enter_zone2" );
494
 165.
495
        add_adjacent_zone( "zone1", "zone2", "enter_zone2" );
496
497
 166.
498
        add_adjacent_zone( "zone2", "zone3", "enter_zone3" );
499
500
 167.
501
        add_adjacent_zone( "zone3", "zone4", "enter_zone4" );
502
503
 168.
504
        /*
505
506
 169.
507
        =============
508
509
 170.
510
        ///ScriptDocBegin
511
512
 171.
513
        "Name: add_adjacent_zone( <zone_1>, <zone_2>, <flag>, <one_way> )"
514
515
 172.
516
        "Summary: Sets up adjacent zones."
517
518
 173.
519
        "MandatoryArg: <zone_1>: Name of first Info_Volume"
520
521
 174.
522
        "MandatoryArg: <zone_2>: Name of second Info_Volume"
523
524
 175.
525
        "MandatoryArg: <flag>: Flag to be set to initiate zones"
526
527
 176.
528
        "OptionalArg: <one_way>: Make <zone_1> adjacent to <zone_2>. Defaults to false."
529
530
 177.
531
        "Example: add_adjacent_zone( "receiver_zone",           "outside_east_zone",    "enter_outside_east" );"
532
533
 178.
534
        ///ScriptDocEnd
535
536
 179.
537
        =============
538
539
 180.
540
        */
541
542
 181.
543
 
544
545
 182.
546
        // Outside East Door
547
548
 183.
549
        //add_adjacent_zone( "receiver_zone",           "outside_east_zone",    "enter_outside_east" );
550
551
 184.
552
}
553
554
 185.
555
 
556
557
 186.
558
make_fx() {
559
560
 187.
561
 
562
563
 188.
564
setup_fx(false, (264, -1552, -56), "electrical1");
565
566
 189.
567
        
568
569
190.
570
}
571
572
 191.
573
 
574
575
 192.
576
setup_fx(tag, loc, effect) {
577
578
 193.
579
        if(tag) {
580
581
 194.
582
                model = spawn("script_model", self.origin);
583
584
 195.
585
                model setmodel("tag_origin");
586
587
 196.
588
                play_fx(effect, undefined, model);
589
590
 197.
591
        } else
592
593
 198.
594
                play_fx(effect, loc, undefined);
595
596
 199.
597
}
598
599
 200.
600
 
601
602
 201.
603
play_fx(effect, loc, model) {
604
605
 202.
606
        if(!isdefined(level._effect[effect])) {
607
608
 203.
609
                iPrintLn("Effect is undefined!");
610
611
 204.
612
                return;
613
614
 205.
615
        }
616
617
 206.
618
        
619
620
207.
621
        if(isdefined(model))
622
623
 208.
624
                playfxontag(level._effect[effect], self, "tag_origin");
625
626
 209.
627
        else
628
629
 210.
630
                playfx(level._effect[effect], loc);
631
632
 211.
633
}
634
635
 212.
636
 
637
638
 213.
639
preCacheFX() {
640
641
 214.
642
     level._effect["electrical1"] = loadfx("env/electrical/fx_elec_sparks_looping");
643
644
 215.
645
}