I added the WAW Maps to this
You can download here or copy the code into a gsc file and follow next step Custom Wallguns.GSC Download
Once you have the gsc put it in Local\Plutonium\storage\t5\scripts\sp\zom if you're running a server
if solo put the script in the folder to the corresponding map.
#include maps\_utility;
#include common_scripts\utility;
#include maps\_zombiemode_utility;
//////
////// CUSTOM WALLGUNS BY HERCULES#8024
//////
////// "Five"/Ascension/COTD Presets by IceHot#3232 (but not a supporter of HERCULES#8024 though)
////// Check out the original mod if you haven't yet (or downloaded it on my forum): https://forum.plutonium.pw/topic/27796/zm-custom-wallguns?_=1687210456052
//////
////// SPECIAL THANKS TO Pistakilla#5053 AND shippuden1592#9641 FOR POINTERS AND EXPLANATIONS
//////
////// THIS IS MY FIRST PUBLIC SCRIPT AND I HAVE TESTED IT EXTENSIVELY, IT SHOULD JUST WORK.
//////
////// Ammo cost is calculated by doing gun_cost*0.5 . Upgraded ammo cost is calculated by doing 5000*0.5 (5000 is a placeholder and might be replaced with a better solution)
////// These calculations are done automatically by using the base price which is set by whoever edits this file.
////// To get coordinates to set your own custom wallguns, just go into a single player game and do notarget and then noclip to the exact spot and do viewpos in console.
////// Doing this will give you the X Y Z cords along with pitch and yaw in the console window.
////// You can find more weapon names here : https://steamcommunity.com/sharedfiles/filedetails/?id=1863755475 //
////// To find out where IceHot#3232 placed the guns at... do "setviewpos x, y, z" - next to the "custom_wallgun("
init()
{
//Base Maps
if(level.script == "zombie_theater") //Kino Der Toten
{
level thread custom_wallgun( (113, 1895, 44),(0, 180, 0), "Galil", 1800 , "galil_zm" ); // Galil
level thread custom_wallgun( (-288, -520, 308),(0, 0, 0), "Ballistic Knife", 1200 , "knife_ballistic_zm" ); // ballistic knife
level thread custom_wallgun( (-1750, 666, 59),(0, 90, 0), "HK-21", 7500 , "hk21_zm" ); // A sniper rifle in alleyway
level thread custom_wallgun( (0, 932, -40),(0, 180, 0), "Thundergun", 25000 , "thundergun_zm" ); // below podium in cinema, replicates the PS version.
level thread custom_wallgun( (180, -470, 380),(0, -90, 0), "Raygun", 15000 , "ray_gun_zm" ); // raygun in pap room
level thread custom_wallgun( (1694, -131, 296),(0, 90, 0), "SPAS-12", 2250 , "spas_zm" ); // raygun in pap room
}
else if(level.script == "zombie_pentagon") //"Five"
{
level thread custom_wallgun( (-225, 2057, 76),(0, 90, 0), "Raygun", 17500 , "ray_gun_zm" ); // Galil
level thread custom_wallgun( (-1080, 3065, 76),(0, 90, 0), "Ballistic Knife", 1500 , "knife_ballistic_zm" ); // Galil
level thread custom_wallgun( (-1450, 1668, -452),(0, 271, 0), "Spectre", 1100 , "spectre_zm" ); // Galil
level thread custom_wallgun( (-1972, 1868, -452),(0, 0, 0), "Winter's Howl", 12500 , "freezegun_zm" ); // Galil
level thread custom_wallgun( (-1060, 2599, -244),(0, 199, 0), "FAMAS", 1500 , "famas_zm" ); // Galil
level thread custom_wallgun( (-1386, 3464, -653),(0, 263, 0), "L96A1", 3250 , "l96a1_zm" ); // Galil
level thread custom_wallgun( (-1187, 5044, -653),(0, 90, 0), "SPAS-12", 1700 , "spas_zm" ); // Galil
level thread custom_wallgun( (-87, 4776, -653),(0, 90, 0), "G11", 1200 , "g11_lps_zm" ); // Galil
}
//WaW Maps
else if(level.script == "zombie_cod5_prototype") //Nacht Der Untoten
{
level thread custom_wallgun( (-204, 172, 200),(0, 90, 0), "Raygun", 12500 , "ray_gun_zm" ); // Galil
}
else if(level.script == "zombie_cod5_asylum") //Verruckt
{
level thread custom_wallgun( (-764, -14, 276),(0, 180, 0), "Winter's Howl", 12500 , "freezegun_zm" ); // Galil
level thread custom_wallgun( (847, 378, 302),(0, 90, 0), "Raygun", 12500 , "ray_gun_zm" ); // Galil
level thread custom_wallgun( (-770, -107, 134),(0, 90, 0), "Galil", 2250 , "galil_zm" ); // Galil
}
else if(level.script == "zombie_cod5_sumpf") //Shi No Numa
{
level thread custom_wallgun( (9107, 2480, -647),(0, 90, 0), "Wunderwaffe", 30000 , "tesla_gun_zm" ); // Tesla
level thread custom_wallgun( (7878, 21, -658),(0, 101, 0), "Commando", 1800 , "commando_zm" ); // Galil
level thread custom_wallgun( (11054, 3405, -606),(0, 30, 0), "HK-21", 3750 , "hk21_zm" ); // A sniper rifle in alleyway
}
else if(level.script == "zombie_cod5_factory") //Der Riese
{
level thread custom_wallgun( (1369, 355, 110),(0, 0, 0), "Wunderwaffe", 35000 , "tesla_gun_zm" ); // Tesla
level thread custom_wallgun( (636, -1463, 124),(0, 101, 0), "Commando", 1800 , "commando_zm" ); // Galil
level thread custom_wallgun( (-264, -2346, 205),(0, 180, 0), "Raygun", 12500 , "ray_gun_zm" ); // Galil
}
//DlC
else if(level.script == "zombie_cosmodrome") //Ascension (-24/-15)
{
level thread custom_wallgun( (-694, 984, -62),(0, 360, 0), "CZ-75", 900 , "cz75_zm" ); // Galil
level thread custom_wallgun( (-1713, 1493, 65),(-30, 0, 0), "MP40", 1500 , "mp40_zm" ); // MP40 near lander
level thread custom_wallgun( (-1036, 516, -148),(0, 270, 0), "Thundergun", 27500 , "thundergun_zm" ); // MP40 near door
level thread custom_wallgun( (345, 321, -244),(0, 270, 0), "Raygun", 15000 , "ray_gun_zm" ); // Galil
level thread custom_wallgun( (-484, -24, -244),(0, 140, 0), "Ballistic Knife", 800 , "knife_ballistic_zm" ); // Galil
level thread custom_wallgun( (-1486, 864, -72),(0, 360, 0), "Dragunov", 3550 , "dragunov_zm" ); // Galil
level thread custom_wallgun( (-200, 1191, 82),(0, 270, 0), "FAMAS", 1500 , "famas_zm" ); // Galil -1686, 923, 428
level thread custom_wallgun( (180, -1904, -72),(0, -119, 0), "AUG ACOG", 1675 , "aug_acog_zm" ); // easily accessible, but a 1-way trip to
}
else if(level.script == "zombie_coast") //Call of The Dead
{
level thread custom_wallgun( (-707, 780, 469),(0, -180, 0), "L96A1", 2550 , "l96a1_zm" ); // Galil
level thread custom_wallgun( (-2536, -1380, 421),(0, 101, 0), "Commando", 1800 , "commando_zm" ); // Galil
level thread custom_wallgun( (-930, -962, 675),(0, 101, 0), "Scavenger", 15000 , "sniper_explosive_zm" ); // Galil
level thread custom_wallgun( (-383, 1904, 317),(0, 272, 0), "AUG ACOG", 1800 , "aug_acog_zm" ); // Galil
level thread custom_wallgun( (166, -1653, 149),(0, 287, 0), "Wunderwaffe", 35000 , "tesla_gun_zm" ); // Galil
level thread custom_wallgun( (-2683, 599, 82),(0, 282, 0), "Crossbow", 10000 , "crossbow_explosive_zm" ); // Galil
level thread custom_wallgun( (-967, 1519, 428),(0, 101, 30), "FN FAL", 1500 , "fnfal_zm" ); // Galil
}
else if(level.script == "zombie_temple") //Shangri La
{
}
else if(level.script == "zombie_moon") //Moon
{
}
}
// custom wallgun
custom_wallgun( origin, angles, gun_name, cost, gun)
{
gun_model = GetWeaponModel(gun);
ammo_cost = int(cost * .8);
upgraded_ammo_cost = int(cost * 2.25);
wallgun = spawn( "script_model", origin );
wallgun setModel( gun_model );
wallgun useweaponhidetags(gun);
wallgun rotateTo(angles, .1);
trig = spawn("trigger_radius", origin, 1, 25, 25);
if (level.script == "zombie_cod5_prototype" || level.script == "zombie_cod5_sumpf"){
//wallgun thread maps\_zombiemode_perks::perk_fx( "revive_light" );
trig SetCursorHint( "HINT_NOICON" );
trig setHintString("Hold ^3&&1^7 to Buy "+ gun_name +" [Cost: "+ cost +"], Ammo : ["+ammo_cost+"], Upgraded Ammo : ["+upgraded_ammo_cost+"]");
}
else{
// wallgun thread maps\_zombiemode_perks::perk_fx( "revive_light" );
trig SetCursorHint( "HINT_NOICON" );
trig setHintString("Hold ^3&&1^7 to Buy "+ gun_name +" [Cost: "+ cost +"], Ammo : ["+ammo_cost+"], Upgraded Ammo : ["+upgraded_ammo_cost+"]");
}
level waittill("notifier_1");
trig thread gun_think(gun, gun_name, cost);
}
// Custom wallgun logic
gun_think(gun, gun_name, cost){
for(;;) {
self waittill( "trigger", who );
weapon = who GetCurrentWeapon();
ammocount = who getammocount(weapon);
clipcount = who getweaponammoclip(weapon);
maxammo = weaponmaxammo(weapon);
ammo_cost = int(cost * 0.5);
upgraded_ammo_cost = int(cost * 5.25 * 0.5);
upgraded_gun = level.zombie_weapons[gun].upgrade_name;
has_full_ammo = (maxammo <= ammocount - clipcount);
if(gun == "knife_ballistic_zm" && who hasweapon("bowie_knife_zm")) { gun = "knife_ballistic_bowie_zm"; }
if( who UseButtonPressed() && who.score >= upgraded_ammo_cost && who hasweapon(upgraded_gun) && !has_full_ammo) {
while(who UseButtonPressed() )
wait 0.05;
who maps\_zombiemode_score::minus_to_player_score( upgraded_ammo_cost );
who givemaxammo( upgraded_gun );
self playSound("zmb_cha_ching");
}
else if ( who UseButtonPressed() && who hasWeapon(gun) && !has_full_ammo && who.score >= ammo_cost ) {
while( who UseButtonPressed() )
wait 0.05;
who maps\_zombiemode_score::minus_to_player_score( ammo_cost );
who givemaxammo( gun );
self playSound("zmb_cha_ching");
}
else if( who UseButtonPressed() && who.score >= cost && weapon != gun && !who hasweapon(gun)) {
while( who UseButtonPressed() )
wait 0.05;
who maps\_zombiemode_score::minus_to_player_score( cost );
who thread do_give_weapon(gun);
wait 2.5;
}
else if( who UseButtonPressed() && !( who.score >= cost ) ) {
while( who UseButtonPressed() )
wait 0.05;
play_sound_on_ent( "no_purchase" );
who maps\_zombiemode_audio::create_and_play_dialog( "general", "no_money", undefined, 1 );
}
wait 0.05;
}
}
// wallgun logic after purchase
do_give_weapon(gun){
primaryWeapons = self GetWeaponsListPrimaries();
on_hand = primaryWeapons.size;
wait(0.5);
if(on_hand == 1){
self GiveWeapon( gun );
self SwitchToWeapon( gun );
self playSound("zmb_cha_ching");
}
else if(on_hand == 2 && self HasPerk( "specialty_additionalprimaryweapon" )){
self GiveWeapon( gun );
self SwitchToWeapon( gun );
self playSound("zmb_cha_ching");
}
else {
inhand = self getCurrentWeapon();
self TakeWeapon( inhand );
self GiveWeapon( gun );
self SwitchToWeapon( gun );
self playSound("zmb_cha_ching");
}
}