gmzorz

GrowFX

Sep 23rd, 2016
522
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include maps\mp\_utility;
  2. #include common_scripts\utility;
  3. #include maps\mp\gametypes\_hud_util;
  4. #include maps\mp\gametypes\_hud_message;
  5.  
  6. /*
  7.  
  8. ///////////////////////////////////////////////////////
  9.  
  10. FORGE MOD BY GMZORZ
  11.  
  12. credits:
  13. Azsry (general help)
  14.  
  15. You can only use one spawn function per game, scroll down to onPlayerSpawned to comment out the one you don't want.
  16.  
  17. ------------------------------------------------------
  18.  
  19. Spawning models:
  20.  
  21. Scroll down modelNames()
  22. put down your model names in the string fields
  23. once you press the ads button (Rmouse as default) ingame, it will select the first model from the list.
  24. Which will spawn when you press USE (F as default)
  25.  
  26.  
  27. You can find the model names for each map in the attached .txt files (see folder "map models")
  28. please note that not all models work on each map!!
  29.  
  30. ------------------------------------------------------
  31.  
  32. How to save models:
  33.  
  34. go ingame and place your models. Once you're done, navigate to the redacted game files and open the data folder
  35. open up games_mp.log with your default text editor and scroll all the way down
  36. you should see something like this:
  37.  
  38. {
  39. "origin" "123.456 654.321 -100.000"
  40. "classname" "script_model"
  41. "model" "name_of_the_model"
  42. "angles" "-3 277 -2"
  43. }
  44.  
  45. navigate to redacted\data\maps\mp, open the .mapents file of the map you placed the models in.
  46. (you can open the .mapents files using your default text editor)
  47. scroll all the way down and paste the lines you just found in games_mp.log (ignore the time stamps, DONT PUT THOSE IN!)
  48. make sure you save the file!!
  49.  
  50. ------------------------------------------------------
  51.  
  52. Spawning effects (FX)
  53.  
  54. method works the same as spawning models, if the fx needs rotating try out playFxOnTag
  55.  
  56. ------------------------------------------------------
  57.  
  58. Saving effects (coming soon?)
  59.  
  60. ------------------------------------------------------
  61.  
  62. questions
  63. skype: gijs.oosterling
  64.  
  65. \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  66.  
  67. */
  68. onPlayerSpawned() {
  69.     self endon( "disconnect" );
  70.     level endon( "game_ended" );
  71.     for(;;)
  72.     {
  73.         self waittill( "spawned_player" );
  74.         self freezecontrols(false);
  75.         //self thread kaboom(); //comment out only the thing you want to use.
  76.         //self thread PlayFx();
  77.         self thread SpawnModel();
  78.         //self enableInvulnerability();
  79.         maps\mp\gametypes\_rank::registerScoreInfo( "kill", 5 );
  80.     }
  81. }
  82.  
  83. SpawnModel()
  84. {
  85.    
  86.     self endon("death");
  87.     self endon("disconnect");
  88.     self endon("pause");
  89.     level.models = [];
  90.     for(;;)
  91.     {
  92.         switch(level.CurMap) //PUT DOWN MODEL NAMES HERE!!
  93.         {
  94.             case "mp_drone":
  95.                 level.models[0] = ("t5_foliage_tree_aquilaria01v2_no_vines");
  96.                 level.models[1] = ("t5_foliage_plants_tropic09");
  97.                 level.models[2] = ("t5_foliage_tree_aquilaria01v2");
  98.                 level.models[3] = ("p6_foliage_mossy_roots_03");
  99.                 level.models[4] = ("fxanim_gp_vines_strangler_fig_mod");
  100.                 level.models[5] = ("t5_foliage_groundcover01");
  101.                 level.models[8] = ("p6_grass_wild_green_light_med");
  102.                 level.models[9] = ("p6_rocks_boulder_01_jungle");
  103.                 level.models[10] = ("p6_rocks_cluster_01_jungle");
  104.                 level.models[11] = ("p6_rocks_cluster_01_jungle");
  105.                 level.models[12] = ("p6_rocks_cluster_02_jungle");
  106.                 level.models[13] = ("p6_rocks_medium_05_jungle");
  107.                 maxNum = level.models.size;
  108.                 break;
  109.            
  110.             case "mp_magma":
  111.                 level.models[0] = ("p6_mag_foliage_tree_jpn_pine_lrg_sway");
  112.                 level.models[1] = ("p6_mag_foliage_tree_jpn_pine_sml");
  113.                 level.models[2] = ("p6_mag_foliage_tree_jpn_pine_sml_far");
  114.                 level.models[3] = ("p6_mag_foliage_tree_jpn_pine_sml_sway");
  115.                 level.models[4] = ("p6_mag_rocks_cliffside_lava_01");
  116.                 level.models[5] = ("p6_mag_rocks_cluster_lava_01");
  117.                 level.models[6] = ("p6_mag_lava_flow_train");
  118.                 level.models[7] = ("p6_mag_lava_drops_detail_01");
  119.                 maxNum = level.models.size;
  120.                 break;
  121.                
  122.             case "mp_raid":
  123.                 level.models[0] = ("p6_tree_palm_date_med_sway");
  124.                 level.models[1] = ("foliage_ctl_tree_oak_green_1");
  125.                 level.models[2] = ("paris_potted_plant_large");
  126.                 level.models[3] = ("foliage_grass_lawn_cut_med_group_256");
  127.                 level.models[4] = ("foliage_grass_lawn_cut_med_group_512");
  128.                 level.models[5] = ("dub_rock_02");
  129.                 level.models[8] = ("t5_foliage_tree_banana02");
  130.                 level.models[9] = ("veh_t6_civ_sportscar_whole_orange");
  131.                 level.models[10] = ("veh_t6_civ_sportscar_whole_silver");
  132.                 level.models[11] = ("veh_t6_civ_sportscar_whole_orange");
  133.                 maxNum = level.models.size;
  134.                 break;
  135.            
  136.             case "mp_studio":
  137.                 level.models[0] = ("p6_stu_castle_door_frame");
  138.                 level.models[1] = ("p6_stu_castle_mace");
  139.                 level.models[2] = ("p6_rocks_cluster_03b");
  140.                 level.models[3] = ("veh_t6_drone_rcxd");
  141.                 level.models[4] = ("p6_rock_desert_pile01");
  142.                 level.models[5] = ("p6_stu_castle_spear");
  143.                 level.models[8] = ("p6_stu_castle_wall_piece");
  144.                 level.models[9] = ("p6_stu_castle_window");
  145.                 maxNum = level.models.size;
  146.                 break;
  147.                
  148.             case "mp_vertigo":
  149.                 level.models[0] = ("foliage_grass_lawn_cut_med_group_512");
  150.                 level.models[1] = ("foliage_grass_lawn_cut_med_group_256");
  151.                 level.models[2] = ("t5_foliage_tree_palm_fan04");
  152.                 level.models[3] = ("t5_foliage_grass_weed02");
  153.                 level.models[4] = ("t5_foliage_bush08b");
  154.                 level.models[5] = ("p6_ver_foliage_palm_fan01");
  155.                 level.models[8] = ("p6_tree_acacia_forked_sway02");
  156.                 maxNum = level.models.size;
  157.                 break;
  158.                
  159.             case "mp_slums":
  160.                 level.models[0] = ("t5_foliage_tree_palm_fan04");
  161.                 level.models[1] = ("p6_slums_piazza_statue");
  162.                 level.models[2] = ("mlv_p6_slums_highrise_floor_01");
  163.                 level.models[3] = ("p6_slums_highrise_floor_01");              
  164.                 maxNum = level.models.size;
  165.                 break;
  166.                
  167.             case "mp_hydro":
  168.                 level.models[0] = ("fx_mp_hydro_flood_mist_tail");
  169.                 level.models[1] = ("fx_mp_hydro_flood_water_spill");
  170.                 level.models[2] = ("fx_mp_hydro_hatch_spray");
  171.                 level.models[3] = ("fx_mp_hydro_splash_edge");
  172.                 level.models[4] = ("fx_mp_hydro_water_pipe");
  173.                 level.models[5] = ("fx_hydro_water_dam5");
  174.                 level.models[6] = ("fx_hydro_water_dam6");
  175.                 maxNum = level.models.size;
  176.                 break;
  177.                
  178.             case "mp_meltdown":
  179.                 level.models[0] = ("cs_cargoship_wall_light_on");
  180.                 level.models[1] = ("foliage_shrub_brownshort");
  181.                 level.models[2] = ("foliage_weed_dandelion2");
  182.                 level.models[3] = ("fxanim_gp_streamer_long_orange_mod");
  183.                 level.models[4] = ("light_outdoorwall02_on");
  184.                 level.models[5] = ("p6_mp_meltdown_tank_section");
  185.                 level.models[6] = ("p6_ship_stairs_single");
  186.                 maxNum = level.models.size;
  187.                 break;
  188.         }
  189.    
  190.         if (self adsButtonPressed())
  191.         {
  192.             checkNum = checkNum + 1;
  193.             if (checkNum > maxNum - 1)
  194.             {
  195.                 checkNum = 0;  
  196.             }
  197.             iprintln("model: ^1" + level.models[checkNum - 1] + " ^7selected, press (and hold) ^1USE ^7to spawn");
  198.             wait 0.02;
  199.         }
  200.         wait 0.2;
  201.        
  202.         wait 0.05;
  203.         if (self useButtonPressed())
  204.         {
  205.             mTag = ("");
  206.             model = spawn("script_model", self.origin);
  207.             model.angles = (0, self.angles[1], 0);
  208.             model.height = 2;
  209.             model.width = 20;
  210.             mTag = (level.models[checkNum - 1]);
  211.             model setModel(level.models[checkNum - 1]);
  212.            
  213.             iprintln("^1" + level.models[checkNum - 1] + "^7 placed");
  214.            
  215.             logPrint( "\n\n{\n" + "\"origin\" " + "\"" + self.origin[0] + " " + self.origin[1] + " " + self.origin[2] + "\"\n" + "\"classname\" \"script_model\"\n" + "\"model\" " + "\"" + mTag + "\"\n" + "\"angles\" \"" + model.angles[0] + " " + model.angles[1] + " " + model.angles[2] + "\"\n" + "}\n\n");
  216.             //logs to games_mp.log for future map saving
  217.             wait 0.01;
  218.         }
  219.         wait 0.3;
  220.         //FORGE
  221.         /*while(self attackbuttonpressed())
  222.         {
  223.             trace=bulletTrace(self GetTagOrigin("j_head"),self GetTagOrigin("j_head")+ anglesToForward(self GetPlayerAngles())* 1000000,true,self);
  224.             while(self attackbuttonpressed())
  225.             {
  226.                 trace["entity"] setOrigin(self GetTagOrigin("j_head")+ anglesToForward(self GetPlayerAngles())* 200);
  227.                 trace["entity"].origin=self GetTagOrigin("j_head")+ anglesToForward(self GetPlayerAngles())* 200;
  228.             }
  229.             wait 0.05;
  230.         }*/
  231.     }
  232. }
  233. PlayFx()
  234. {
  235.     self endon("death");
  236.     self endon("disconnect");
  237.     self endon("pause");
  238.     level.effects = [];
  239.     fxNum = 0;
  240.     curEffect = level.effects[fxNum];
  241.     for(;;)
  242.     {
  243.         curEffect = level.effects[fxNum];
  244.         switch(level.CurMap)
  245.         {
  246.             case "mp_nuketown_2020":
  247.             level.effects[0] = ""; //always leave 0 empty, for some reason i cannot fix this
  248.             level.effects[1] = "fx_mp_nuked_final_explosion";
  249.             level.effects[2] = "fx_mp_nuked_final_dust";
  250.             break;
  251.            
  252.             case "mp_dockside": //cargo
  253.             level.effects[0] = "";
  254.             level.effects[1] = "fx_mp_water_drip_light_long";
  255.             level.effects[2] = "water_splash";
  256.             break;
  257.            
  258.             case "mp_meltdown":
  259.             level.effects[0] = "";
  260.             level.effects[1] = "fx_mp_water_rain_cooling_tower_splsh_200";
  261.             level.effects[2] = "fx_mp_water_rain_cooling_tower";
  262.             level.effects[3] = "fx_mp_water_drip_light_long";
  263.             level.effects[4] = "fx_mp_steam_cooling_tower";
  264.             level.effects[5] = "fx_water_wave_break_md";
  265.             level.effects[6] = "fx_mp_vent_heat_distort";
  266.             level.effects[7] = "fx_mp_steam_tunnel";
  267.             level.effects[8] = "fx_light_reactor_glw_blue";
  268.             level.effects[9] = "fx_sand_gust_ground_sm";
  269.             level.effects[10] = "fx_dust_swirl_sm_gray_runner";
  270.             break;
  271.            
  272.             case "mp_uplink":
  273.             level.effects[0] = "";
  274.             level.effects[1] = "fx_mp_uplink_rain_med_fast_os_vista";
  275.             break;
  276.            
  277.             case "mp_hijacked":
  278.             level.effects[0] = "";
  279.             level.effects[1] = "fx_mp_hijacked_jacuzzi_surface";
  280.             level.effects[2] = "fx_raid_hot_tub_sm";
  281.             level.effects[3] = "fx_mp_hijacked_jacuzzi_steam";
  282.             break;
  283.            
  284.             case "mp_magma":
  285.             level.effects[0] = "";
  286.             level.effects[1] = "fx_mp_magma_ash_ember_lg";
  287.             level.effects[2] = "fx_mp_magma_ash_ground";
  288.             level.effects[3] = "fx_mp_magma_lava_edge_fire_100";
  289.             level.effects[4] = "fx_mp_magma_splat_grnd_fire";
  290.             level.effects[5] = "fx_mp_magma_distort_geo_lg";
  291.             level.effects[6] = "fx_mp_elec_spark_burst_xsm_thin";
  292.             level.effects[7] = "fx_mp_elec_spark_burst_md_runner";
  293.             level.effects[8] = "fx_fire_torso";
  294.             level.effects[9] = "fx_fire_leg_left";
  295.             break;
  296.            
  297.             case "mp_hydro":
  298.             level.effects[0] = "";
  299.             level.effects[1] = "fx_mp_hydro_flood_blast01";
  300.             level.effects[2] = "fx_fog_street_sm_area_low";
  301.             level.effects[3] = "fx_mp_hydro_dam_river_flat";
  302.             level.effects[4] = "fx_mp_hydro_dam_river_top";
  303.             break;
  304.            
  305.             case "mp_la": //aftermath
  306.             level.effects[0] = "";
  307.             level.effects[1] = "fx_water_fountian_pool_md";
  308.             level.effects[2] = "fx_water_fire_sprinkler_gush";
  309.             level.effects[3] = "fx_water_fire_sprinkler_sputter";
  310.             level.effects[4] = "fx_water_fire_sprinkler_gush_splash";
  311.             level.effects[5] = "fx_water_fire_sprinkler";
  312.             level.effects[6] = "fx_mp_water_drip_light_long";
  313.             break;
  314.            
  315.         }
  316.         if (self adsButtonPressed())
  317.         {
  318.             fxNum = fxNum + 1;
  319.             iprintln("Effect ^1" + level.effects[fxNum] + " ^7Selected");
  320.             if(fxNum > level.effects.size - 1)
  321.             {
  322.                 fxNum = 0;
  323.             }
  324.             wait 0.2;
  325.         }
  326.         wait 0.2;
  327.         if (self useButtonPressed())
  328.         {
  329.             playFx(level._effect[curEffect], (self.origin));
  330.             //use playloopedfx on map spawn
  331.             iprintln("Effect ^1" + level.effects[fxNum] + " ^7Spawned");
  332.             wait 0.5;
  333.             logprint("\nplayFx(level._effect[\"" + curEffect + "\"], " + self.origin +");\n");
  334.             //LOG THIS LATER
  335.            
  336.            
  337.             wait 0.1;
  338.         }
  339.         wait 0.2;
  340.     }
  341. }
  342. init()
  343. {
  344.     level thread onPlayerConnect();
  345.     level.CurMap = getDvar("mapname");
  346. }
  347. onPlayerConnect()
  348. {
  349.     for(;;)
  350.     {
  351.         level waittill( "connected", player );
  352.         player thread onPlayerSpawned();
  353.         //self.firstrun = 1;
  354.         //self.Invincible = 1;
  355.     }
  356. }
  357. kaboom()
  358. {
  359.     self endon("death");
  360.     self endon("disconnect");
  361.     self endon("pause");
  362.     x__ = 5000;
  363.     y__ = -5000;
  364.     for(;;)
  365.     {
  366.         if (self adsButtonPressed() && self useButtonPressed())
  367.         {
  368.             playFx(level._effect[ "fx_mp_nuked_final_explosion" ], (-6000, 4000, 0));
  369.             playFx(level._effect[ "fx_mp_nuked_final_explosion" ], (-6000, 2000, 0));
  370.             playFx(level._effect[ "fx_mp_nuked_final_explosion" ], (-6000, 0, 0));
  371.             playFx(level._effect[ "fx_mp_nuked_final_explosion" ], (-6000, -2000, 0));
  372.             playFx(level._effect[ "fx_mp_nuked_final_explosion" ], (-6000, -4000, 0));
  373.             playFx(level._effect[ "fx_mp_nuked_final_explosion" ], (4000, 6000, 0));
  374.             playFx(level._effect[ "fx_mp_nuked_final_explosion" ], (2000, 6000, 0));
  375.             playFx(level._effect[ "fx_mp_nuked_final_explosion" ], (0, 6000, 0));
  376.             playFx(level._effect[ "fx_mp_nuked_final_explosion" ], (-2000, 6000, 0));
  377.             playFx(level._effect[ "fx_mp_nuked_final_explosion" ], (-4000, 6000, 0));
  378.             playFx(level._effect[ "fx_mp_nuked_final_explosion" ], (6000, 4000, 0));
  379.             playFx(level._effect[ "fx_mp_nuked_final_explosion" ], (6000, 2000, 0));
  380.             playFx(level._effect[ "fx_mp_nuked_final_explosion" ], (6000, 0, 0));
  381.             playFx(level._effect[ "fx_mp_nuked_final_explosion" ], (6000, -2000, 0));
  382.             playFx(level._effect[ "fx_mp_nuked_final_explosion" ], (6000, -4000, 0));
  383.             playFx(level._effect[ "fx_mp_nuked_final_explosion" ], (4000, -6000, 0));
  384.             playFx(level._effect[ "fx_mp_nuked_final_explosion" ], (2000, -6000, 0));
  385.             playFx(level._effect[ "fx_mp_nuked_final_explosion" ], (0, -6000, 0));
  386.             playFx(level._effect[ "fx_mp_nuked_final_explosion" ], (-2000, -6000, 0));
  387.             playFx(level._effect[ "fx_mp_nuked_final_explosion" ], (-4000, -6000, 0));
  388.             wait 0.1;
  389.         }
  390.         wait 0.1;
  391.     }
  392.     wait 0.1;
  393. }
Advertisement
Add Comment
Please, Sign In to add comment