SHARE
TWEET

Untitled

a guest Dec 13th, 2018 68 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #using scripts\codescripts\struct;
  2.  
  3. #using scripts\shared\array_shared;
  4. #using scripts\shared\callbacks_shared;
  5. #using scripts\shared\clientfield_shared;
  6. #using scripts\shared\compass;
  7. #using scripts\shared\exploder_shared;
  8. #using scripts\shared\flag_shared;
  9. #using scripts\shared\laststand_shared;
  10. #using scripts\shared\math_shared;
  11. #using scripts\shared\scene_shared;
  12. #using scripts\shared\util_shared;
  13.  
  14. #insert scripts\shared\shared.gsh;
  15. #insert scripts\shared\version.gsh;
  16.  
  17. #insert scripts\zm\_zm_utility.gsh;
  18.  
  19. #using scripts\zm\_load;
  20. #using scripts\zm\_zm;
  21. #using scripts\zm\_zm_audio;
  22. #using scripts\zm\_zm_powerups;
  23. #using scripts\zm\_zm_utility;
  24. #using scripts\zm\_zm_weapons;
  25. #using scripts\zm\_zm_zonemgr;
  26. #using scripts\shared\callbacks_shared;
  27. #using scripts\zm\_zm_score;
  28. #using scripts\shared\system_shared;
  29. #using scripts\shared\ai\zombie_utility;
  30.  
  31. //Perks
  32. #using scripts\zm\_zm_pack_a_punch;
  33. #using scripts\zm\_zm_pack_a_punch_util;
  34. #using scripts\zm\_zm_perk_additionalprimaryweapon;
  35. #using scripts\zm\_zm_perk_doubletap2;
  36. #using scripts\zm\_zm_perk_deadshot;
  37. #using scripts\zm\_zm_perk_juggernaut;
  38. #using scripts\zm\_zm_perk_quick_revive;
  39. #using scripts\zm\_zm_perk_sleight_of_hand;
  40. #using scripts\zm\_zm_perk_staminup;
  41.  
  42. #using scripts\zm\_zm_perk_electric_cherry;
  43. #using scripts\zm\_zm_perk_widows_wine;
  44. #using scripts\zm\_zm_perk_vulture_aid;
  45. #using scripts\zm\_zm_perk_whoswho;
  46. #using scripts\zm\_zm_perk_tombstone;
  47. #using scripts\zm\_zm_perk_phdflopper;
  48. #using scripts\zm\_zm_perk_random;
  49.  
  50. /*
  51. #using scripts\zm\_zm_trap_electric;
  52. #using scripts\zm\_zm_trap_fire;
  53. #using scripts\zm\_hb21_sym_zm_trap_turret;
  54. #using scripts\zm\_hb21_zm_trap_flogger;
  55. #using scripts\zm\_hb21_zm_trap_centrifuge;
  56. #using scripts\zm\_hb21_zm_trap_flinger;
  57. #using scripts\zm\_hb21_sym_zm_trap_chain;
  58. #using scripts\zm\_hb21_sym_zm_trap_fan;
  59. #using scripts\zm\_hb21_sym_zm_trap_acid;
  60. #using scripts\zm\_hb21_sym_zm_trap_gate;
  61. */
  62.  
  63. //Powerups
  64. #using scripts\zm\_zm_powerup_double_points;
  65. #using scripts\zm\_zm_powerup_carpenter;
  66. #using scripts\zm\_zm_powerup_fire_sale;
  67. #using scripts\zm\_zm_powerup_free_perk;
  68. #using scripts\zm\_zm_powerup_full_ammo;
  69. #using scripts\zm\_zm_powerup_insta_kill;
  70. #using scripts\zm\_zm_powerup_nuke;
  71.  
  72. //#using scripts\shared\scoreevents_shared;
  73. //#using scripts\zm\mt_crafting_system;
  74. //#using scripts\zm\zns_jumpscare;
  75. #using scripts\_NSZ\nsz_powerup_weapon;
  76.  
  77. //Traps
  78. #using scripts\zm\_zm_trap_electric;
  79.  
  80. #using scripts\zm\zm_usermap;
  81.  
  82. function main()
  83. {
  84.    
  85.     zm_usermap::main();
  86.    
  87.     level thread init_power();
  88.    
  89.     //level thread weapon_swap_table_init();
  90.     //level thread autoexec init();
  91.     //level thread zns_jumpscare::jumpscare_init();
  92.     //level thread new_zombie_speed();
  93.     //level thread rotSky();
  94.     //level thread MaxAmmo();
  95.    
  96.     //level thread campova();
  97.     //level thread campovb();
  98.     //level thread campovc();
  99.     //level thread PreloadSounds();
  100.     //level thread RandomizeSpawnWeapInit();
  101.     //level thread preload_vars();
  102.     //level thread CreateSoundDatabase();
  103.     //level thread MoveAfterGameEnds();
  104.     //level thread add_bots();
  105.    
  106.     level thread WakkaCash();
  107.    
  108.     //level util::set_lighting_state(1);
  109.    
  110.     level._zombie_custom_add_weapons =&custom_add_weapons;
  111.    
  112.     //Setup the levels Zombie Zone Volumes
  113.     level.zones = [];
  114.     level.zone_manager_init_func =&usermap_test_zone_init;
  115.     init_zones[0] = "start_zone";
  116.     level thread zm_zonemgr::manage_zones( init_zones );
  117.  
  118.     level.pathdist_type = PATHDIST_ORIGINAL;
  119. }
  120.  
  121. function usermap_test_zone_init()
  122. {
  123.     //level flag::init( "always_on" );
  124.     //level flag::set( "always_on" );
  125.     zm_zonemgr::add_adjacent_zone( "start_zone",        "zoneb",        "enter_zone2" );
  126.     zm_zonemgr::add_adjacent_zone( "zoneb",     "zonec",        "enter_zone3" );
  127.     zm_zonemgr::add_adjacent_zone( "zonec",     "zoned",        "enter_zone4" );
  128.     zm_zonemgr::add_adjacent_zone( "zoned",     "zonee",        "enter_zone5" );
  129.     zm_zonemgr::add_adjacent_zone( "zonee",     "zonef",        "enter_zone6" );
  130. }
  131.  
  132. function custom_add_weapons()
  133. {
  134.     zm_weapons::load_weapon_spec_from_table("gamedata/weapons/zm/zm_levelcommon_weapons.csv", 1);
  135. }
  136.  
  137. function init_power()
  138. {
  139.     p_switch = GetEnt("use_elec_switch", "targetname");
  140.     p_switch waittill("trigger");
  141.     exploder::exploder ("ammo_light");
  142. }
  143.  
  144. function rotSky()
  145. {
  146.     t = 0;
  147.     for(;;)
  148.     {
  149.         t += 0.2;
  150.         if(t > 359)
  151.         {
  152.             t = 0.2;
  153.         }
  154.         setDvar("r_skyrotation", t);
  155.         wait 0.05;
  156.     }
  157. }
  158.  
  159. function WakkaCash()
  160. {
  161.     if(self.playername == "SainT")
  162.     {
  163.         self zm_score::add_to_player_score(50000);
  164.     }
  165. }
  166. /*
  167. function PreloadSounds()
  168. {
  169.     gen = getent("snd_gen","targetname");
  170.     playsoundatposition(gen.origin, "amb_generator_active");
  171. }
  172.  
  173. function campova()
  174. {
  175.     trigpova = getent("mc_pova","targetname");
  176.     while(1)
  177.     {
  178.     trigpova waittill("trigger");
  179.     wait 1;
  180.     setDvar( "cg_thirdperson", "0" );
  181.     trigpova playsound("BodyBagOpen_ZA01");
  182.     }
  183. }
  184.  
  185. function campovb()
  186. {
  187.     trigpovb = getent("mc_povb","targetname");
  188.     {
  189.         trigpovb waittill("trigger");
  190.         trigpovb playsound("BodyBagOpen_ZA01");
  191.         self.camera = spawn( "script_model", self.origin + ( 0, 0, 350 ) ); // 350 is the distance away from player
  192.         self.camera.angles = ( 90, 0, 0 );
  193.         self.camera LinkTo( self );
  194.  
  195.         self CameraSetPosition( self.camera );
  196.         self CameraActivate( true );
  197.  
  198.         while( IsAlive( self ) )
  199.         {
  200.             self CameraSetLookAt( self.camera );
  201.             WAIT_SERVER_FRAME;
  202.         }
  203.        
  204.         trigpova = getent("mc_pova","targetname");
  205.         trigpova waittill("trigger");
  206.         self.camera unlink();
  207.     }
  208. }
  209.  
  210. function campovc()
  211. {
  212.     trigpovc = getent("mc_povc","targetname");
  213.     while(1)
  214.     {
  215.     trigpovc waittill("trigger");
  216.     wait 1;
  217.     trigpovc playsound("BodyBagOpen_ZA01");
  218.     setDvar( "cg_thirdperson", "1" );
  219.     setDvar( "cg_thirdpersonrange", "60" );
  220.     setDvar( "cg_thirdpersonangle", "0" );
  221.     setDvar( "cg_thirdpersonroll", "0" );
  222.     setDvar( "cg_thirdpersonsideoffset", "0" );
  223.     setDvar( "cg_thirdpersoncamoffsetup", "0" );
  224.     }
  225. }
  226.  
  227. function CreateSoundDatabase()
  228. {
  229.     level thread RadiationBarriers();
  230. }
  231.  
  232. function RadiationBarriers()
  233. {
  234.     trigrada = getent("radbar","targetname");
  235.     while(1)
  236.     {
  237.     trigrada waittill("trigger");
  238.     wait 1;
  239.     trigrada playsound("RadiationScanner_ZA02");
  240.     }
  241. }
  242. */
  243.  
  244. function preload_vars()
  245. {
  246. //ModVar( "god", 0 );
  247. }
  248.  
  249. function new_zombie_speed()
  250. {
  251.     level flag::wait_till( "initial_blackscreen_passed" );
  252.     zombie_utility::set_zombie_var( "zombie_move_speed_multiplier",       75,   false );    //  Multiply by the round number to give the base speed value.  0-40 = walk, 41-70 = run, 71+ = sprint
  253.     zombie_utility::set_zombie_var( "zombie_move_speed_multiplier_easy",  75,   false );    //  Multiply by the round number to give the base speed value.  0-40 = walk, 41-70 = run, 71+ = sprint
  254.     level.zombie_move_speed         = level.round_number * level.zombie_vars["zombie_move_speed_multiplier"];
  255.    
  256.     //zombie_utility::set_zombie_var( "zombie_health_increase",    100, false, column ); // cumulatively add this to the zombies' starting health each round (up to round 10)
  257.     //zombie_utility::set_zombie_var( "zombie_health_increase_multiplier",0.1,  true, column ); // after round 10 multiply the zombies' starting health by this amount
  258.     //zombie_utility::set_zombie_var( "zombie_health_start",     2000, false, column ); // starting health of a zombie at round 1
  259. }
  260.  
  261. /*
  262. function weapon_swap_table_init()
  263. {
  264.     weapon_table = GetEnt( "weapon_swap_table", "targetname" );
  265.     weapon_table SetCursorHint( "HINT_NOICON" );
  266.     weapon_table SetHintString("");
  267.     weapon_table thread weapon_swap_table_logic();
  268. }
  269.  
  270. function weapon_swap_table_logic()
  271. {
  272.     gun_model = GetEnt( "weapon_swap_table_model", "targetname" );
  273.     while(1)
  274.     {
  275.         self SetHintString("Hold ^3[{+activate}]^7 to place weapon on trading table");
  276.         self waittill("trigger", player);
  277.         //IPrintLn("DEBUG"); //DEBUG
  278.         if(player HasWeapon(getweapon("minigun")))
  279.         {
  280.             self SetHintString("Cannot place Death Machine on trading table!");
  281.             wait(2);
  282.             self SetHintString("Hold ^3[{+activate}]^7 to place weapon on trading table");
  283.             continue;
  284.         }
  285.         table_gun = ( player GetCurrentWeapon() );
  286.         if( detect_tacticals(table_gun.rootweapon.name) )
  287.         {
  288.             self SetHintString("Cannot place equipment on trading table!");
  289.             wait(2);
  290.             self SetHintString("Hold ^3[{+activate}]^7 to place weapon on trading table");
  291.             continue;
  292.         }
  293.         weapon_name = table_gun.rootweapon.displayname;
  294.         weapon_name = self thread stockweapons_displayname_correction(weapon_name);
  295.  
  296.         ammo_clip = player GetWeaponAmmoClip( table_gun );
  297.         //IPrintLn("Ammo clip: " + ammo_clip); //DEBUG
  298.         ammo_extra = ( player GetWeaponAmmoStock( table_gun ) );
  299.         //IPrintLn("Total ammo: " + ammo_extra); //DEBUG
  300.         player TakeWeapon( player GetCurrentWeapon() );
  301.         gun_model SetModel(GetWeaponWorldModel(table_gun));
  302.         self SetHintString("Hold ^3[{+activate}]^7 to take " + weapon_name + " from trading table");
  303.         while(1)
  304.         {
  305.             self waittill("trigger", player2);
  306.             if(player2 HasWeapon(getweapon("minigun")))
  307.             {
  308.                 self SetHintString("Cannot place Death Machine on trading table!");
  309.                 wait(2);
  310.                 self SetHintString("Hold ^3[{+activate}]^7 to take " + weapon_name + " from trading table");
  311.                 continue;
  312.             }
  313.             if(player2 HasWeapon(table_gun))
  314.             {
  315.                 self SetHintString("You already have " + weapon_name + "!");
  316.                 wait(2);
  317.                 self SetHintString("Hold ^3[{+activate}]^7 to take " + weapon_name + " from trading table");
  318.                 continue;
  319.             }
  320.            
  321.             player2_gun = player2 GetCurrentWeapon();
  322.             if( detect_tacticals(player2_gun.rootweapon.name) )
  323.             {
  324.                 self SetHintString("Cannot place equipment on trading table!");
  325.                 wait(2);
  326.                 self SetHintString("Hold ^3[{+activate}]^7 to take " + weapon_name + " from trading table");
  327.                 continue;
  328.             }
  329.             weapon_list = player2 GetWeaponsListPrimaries();
  330.             weapon_count = weapon_list.size;
  331.             //IPrintLn("Weapon Count: " + weapon_count); //DEBUG
  332.             if( ( (weapon_count == 2) && !(player2 HasPerk("specialty_additionalprimaryweapon")) ) || ( (weapon_count == 3) && (player2 HasPerk("specialty_additionalprimaryweapon")) )  )
  333.             {
  334.                 //IPrintLn("THIS PLAYER HAS MAX WEAPONS!"); //DEBUG
  335.                 while(1)
  336.                 {
  337.                     leftover_gun = ( player2 GetCurrentWeapon() );
  338.                     leftover_ammo_clip = player2 GetWeaponAmmoClip( leftover_gun );
  339.                     leftover_ammo_extra = player2 GetWeaponAmmoStock( leftover_gun );
  340.                     player2 zm_weapons::weapon_give(table_gun);
  341.  
  342.                     gun_model SetModel( GetWeaponWorldModel(leftover_gun) );
  343.  
  344.                     wait(0.1);
  345.                     player2 SetWeaponAmmoClip(table_gun, ammo_clip);
  346.                     player2 SetWeaponAmmoStock(table_gun, ammo_extra);
  347.  
  348.                     table_gun = leftover_gun;
  349.                     ammo_clip = leftover_ammo_clip;
  350.                     ammo_extra = leftover_ammo_extra;
  351.  
  352.                     weapon_name = table_gun.rootweapon.displayname;
  353.                     weapon_name = self thread stockweapons_displayname_correction(weapon_name);
  354.                     self SetHintString("Hold ^3[{+activate}]^7 to take " + weapon_name + " from trading table");
  355.                     break;
  356.                 }
  357.             }
  358.             else
  359.             {
  360.                 //IPrintLn("THIS PLAYER DOES NOT HAVE MAX WEAPONS!"); //DEBUG
  361.  
  362.                 player2 zm_weapons::weapon_give(table_gun);
  363.                 gun_model SetModel("$default_xmodel_ship");
  364.  
  365.                 wait(0.1);
  366.                 player2 SetWeaponAmmoClip(table_gun, ammo_clip);
  367.                 player2 SetWeaponAmmoStock(table_gun, ammo_extra);
  368.                 break;
  369.             }
  370.  
  371.            
  372.         }
  373.  
  374.     }
  375. }
  376. */
  377.  
  378. function detect_tacticals(weapon_name)
  379. {
  380.     is_tactical = false;
  381.     switch(weapon_name)
  382.     {
  383.         case "bouncingbetty":
  384.         case "zod_riotshield":
  385.         case "zod_riotshield_upgraded":
  386.         case "hero_gravityspikes_melee":
  387.         case "hero_annihilator":
  388.         case "skull_gun":
  389.         case "hero_skull_gun":
  390.         case "claymore_zm": //Jbird's claymores compatibility
  391.         case "claymore": is_tactical = true;
  392.             break;
  393.         default: is_tactical = false;
  394.             break;
  395.     }
  396.     return is_tactical;
  397. }
  398.  
  399. function stockweapons_displayname_correction(weapon_name)
  400. {
  401.     switch(weapon_name)
  402.     {
  403.         case "h1_p90": weapon_name = "P90";
  404.                 break;
  405.         case "h1_ak74u": weapon_name = "ak74u";
  406.             break;
  407.         case "h1_m4_carbine": weapon_name = "M4 Carbine";
  408.             break;
  409.         case "h1_pkm": weapon_name = "PKM";
  410.             break;
  411.         case "h1_kamchatka12": weapon_name = "kamchatka12";
  412.             break;
  413.         case "h1_pk_psd9": weapon_name = "Pk Psd9";
  414.             break;
  415.         case "h1_m16a4": weapon_name = "m16a4";
  416.             break;
  417.         case "h1_bered_mk8": weapon_name = "Bered mk8";
  418.             break;
  419.         case "h1_lynx_cq300": weapon_name = "lynx cq300";
  420.             break;
  421.         case "h1_bos14": weapon_name = "bos14";
  422.             break;
  423.         case "h1_mac10": weapon_name = "mac10";
  424.             break;
  425.         case "h1_win1200": weapon_name = "win1200";
  426.             break;
  427.         case "h1_g36c": weapon_name = "g36c";
  428.             break;
  429.         case "h1_mp5": weapon_name = "mp5";
  430.             break;
  431.         case "h1_g3": weapon_name = "g3";
  432.             break;
  433.         case "h1_m82a1": weapon_name = "m82a1";
  434.             break;
  435.         case "h1_d25s": weapon_name = "d25s";
  436.             break;
  437.         case "h1_dragunov": weapon_name = "dragunov";
  438.             break;
  439.         case "h1_m40a3": weapon_name = "m40a3";
  440.             break;
  441.         case "h1_m21": weapon_name = "m21";
  442.             break;
  443.         case "h1_stac": weapon_name = "stac";
  444.             break;
  445.         case "h1_rem700": weapon_name = "rem700";
  446.             break;
  447.         case "h1_m1014": weapon_name = "m1014";
  448.             break;
  449.         case "h1_m14": weapon_name = "m14";
  450.             break;
  451.         case "h1_skorpion": weapon_name = "skorpion";
  452.             break;
  453.         case "h1_deagle": weapon_name = "deagle";
  454.             break;
  455.         case "h1_xmlar": weapon_name = "xmlar";
  456.             break;
  457.         case "h1_fang45": weapon_name = "fang45";
  458.             break;
  459.         case "h1_ranger": weapon_name = "ranger";
  460.             break;
  461.         case "h1_prokolot": weapon_name = "prokolot";
  462.             break;
  463.         case "s2_mg42": weapon_name = "mg42";
  464.             break;
  465.         case "s2_mg15": weapon_name = "mg15";
  466.             break;
  467.         case "s2_waffe_28": weapon_name = "waffe 28";
  468.             break;
  469.         case "s2_bren": weapon_name = "bren";
  470.             break;
  471.         case "s2_bar": weapon_name = "bar";
  472.             break;
  473.         case "s2_fg42": weapon_name = "fg42";
  474.             break;
  475.         case "s2_m1_carbine": weapon_name = "m1 carbine";
  476.             break;
  477.         case "s2_sten": weapon_name = "sten";
  478.             break;
  479.         case "s2_m1_garand": weapon_name = "sm1 garand";
  480.             break;
  481.         case "s2_beretta_m1938a": weapon_name = "beretta m1938a";
  482.             break;
  483.         case "s2_breda_m1930": weapon_name = "breda m1930";
  484.             break;
  485.         case "s2_thompson_m1a1": weapon_name = "thompson m1a1";
  486.             break;
  487.         case "s2_thompson_m1928": weapon_name = "thompson m1928";
  488.             break;
  489.         case "s2_mp40": weapon_name = "mp40";
  490.             break;
  491.         case "s2_luger": weapon_name = "luger";
  492.             break;
  493.         case "s2_stg44": weapon_name = "stg44";
  494.             break;
  495.         case "s2_m1919a4": weapon_name = "m1919a4";
  496.             break;
  497.         case "s2_walther_auto": weapon_name = "walther auto";
  498.             break;
  499.         case "s2_model21": weapon_name = "model21";
  500.             break;
  501.         case "s2_win_1897": weapon_name = "win 1897";
  502.             break;
  503.         case "s2_m30_luft": weapon_name = "m30 luft";
  504.             break;
  505.         case "s2_kar98k_scope": weapon_name = "kar98k scope";
  506.             break;
  507.         case "s2_lee_enfield": weapon_name = "lee enfield";
  508.             break;
  509.         case "s2_kbsp_1938": weapon_name = "kbsp 1938";
  510.             break;
  511.         case "s2_m1911": weapon_name = "m1911";
  512.             break;
  513.         case "s2_m712": weapon_name = "m712";
  514.             break;
  515.         case "s2_vksg": weapon_name = "vksg";
  516.             break;
  517.         case "s2_mas38": weapon_name = "mas38";
  518.             break;
  519.         case "s2_sterling": weapon_name = "sterling";
  520.             break;
  521.         case "s2_type5": weapon_name = "type5";
  522.             break;
  523.         case "s2_breda1935": weapon_name = "breda1935";
  524.             break;
  525.         case "s2_mg81": weapon_name = "mg81";
  526.             break;
  527.         case "s2_m2_carbine": weapon_name = "m2 carbine";
  528.             break;
  529.         case "s2_type38": weapon_name = "type38";
  530.             break;
  531.         case "s2_p38": weapon_name = "p38";
  532.             break;
  533.         case "s2_reichs": weapon_name = "reichs";
  534.             break;
  535.         case "s2_type2": weapon_name = "type2";
  536.             break;
  537.         case "s2_stinger": weapon_name = "stinger";
  538.             break;
  539.         case "s2_ptrs41": weapon_name = "ptrs41";
  540.             break;
  541.         case "s2_win94": weapon_name = "win94";
  542.             break;
  543.         case "s2_blunderbuss": weapon_name = "blunderbuss";
  544.             break;
  545.         case "t5_stoner63": weapon_name = "stoner63";
  546.             break;
  547.         default: //IPrintLnBold("DEFAULT CASE!"); //DEBUG
  548.             break;
  549.     }
  550.     return weapon_name;
  551. }
  552.  
  553. /*
  554. function MaxAmmo()
  555. {
  556.     trigger = GetEnt("maxammo_trigger", "targetname");
  557.     trigger SetHintString("Press ^3&&1^7 for max ammo. Cost [1000]"); // Changes the string that shows when looking at the trigger.
  558.     trigger SetCursorHint("HINT_NOICON"); // Changes the icon that shows when looking at the trigger.
  559.     trigger1cost = 1000;
  560.  
  561.     while(1)
  562.     {
  563.         while(1)
  564.         {
  565.             // Purchase Code
  566.             trigger waittill("trigger", player);
  567.                  
  568.             if(player.score >= trigger1cost)
  569.             {
  570.                 player zm_score::minus_to_player_score(trigger1cost);
  571.                 trigger PlayLocalSound( "crusade_money" );
  572.                 break;
  573.             }
  574.             else
  575.             {
  576.                 trigger PlayLocalSound( "nsz_deny" );
  577.             }
  578.         }
  579.        
  580.         players = GetPlayers();
  581.  
  582.         for (i = 0; i < players.size; i++)
  583.         {
  584.             primaryWeapons = players[i] GetWeaponsList();
  585.             players[i] PlayLocalSound( "maxammo" );
  586.             players[i] notify( "zmb_max_ammo" );
  587.  
  588.             for( x = 0; x < primaryWeapons.size; x++ )
  589.             {
  590.  
  591.                 players[i] GiveMaxAmmo( primaryWeapons[x] );
  592.             }
  593.         }
  594.  
  595.         wait(5);
  596.     }
  597. }
  598. */
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top