Post: [MW2] Teh1337s Zombie Forge v0.1 - make your own zombie map!
02-18-2011, 02:58 AM #1
teh1337
I are 𝕋𝕖𝕙𝟙𝟛𝟛𝟟
(adsbygoogle = window.adsbygoogle || []).push({});
Hey guys, as some of you know, im in the process of making a better MW2 zombie mod, and I'm also working on a tool so the community can script their own maps Smile

Video:

[ame=https://www.youtube.com/watch?v=qNNXEwxqpKY]YouTube - Teh1337's Zombie Forge v0.1[/ame]

Controls:
Menu:
You must login or register to view this content. - Scroll Up
You must login or register to view this content. - Scroll Down
You must login or register to view this content. - Open Menu
You must login or register to view this content. - Close Menu
You must login or register to view this content. - Click

Spawning:
+frag:
toggles the forge on and off and also tells you the models position
go up to your gun and press x when you want to buy the gun!



Note:
This is in the alpha stage of development and is very buggy, I am releasing it so that you guys can play around with it in the time it takes for me to write the whole thing.


Code (_missions.gsc):

    
#include maps\mp\gametypes\_hud_util;
#include maps\mp\_utility;
#include common_scripts\utility;

init()
{
precacheShader("hud_icon_famas");
precacheShader("hud_icon_deserteagle");//icon doesnt work, still looking for it
precacheShader("hud_icon_p90");
precacheShader("hud_icon_ump45");
precacheShader("hud_icon_scar");//icon doesnt work, still looking for it
precacheShader("hud_icon_striker");
precacheString(&"MP_CHALLENGE_COMPLETED");
level thread createPerkMap();
level thread onPlayerConnect();
}

createPerkMap()
{
level.perkMap = [];

level.perkMap["specialty_bulletdamage"] = "specialty_stoppingpower";
level.perkMap["specialty_quieter"] = "specialty_deadsilence";
level.perkMap["specialty_localjammer"] = "specialty_scrambler";
level.perkMap["specialty_fastreload"] = "specialty_sleightofhand";
level.perkMap["specialty_pistoldeath"] = "specialty_laststand";
}

ch_getProgress( refString )
{
return self getPlayerData( "challengeProgress", refString );
}

ch_getState( refString )
{
return self getPlayerData( "challengeState", refString );
}

ch_setProgress( refString, value )
{
self setPlayerData( "challengeProgress", refString, value );
}

ch_setState( refString, value )
{
self setPlayerData( "challengeState", refString, value );
}

onPlayerConnect()
{
for(;Winky Winky
{
level waittill( "connected", player );

if ( !isDefined( player.pers["postGameChallenges"] ) )
player.pers["postGameChallenges"] = 0;

player thread onPlayerSpawned();
player thread initMissionData();
}
}

onPlayerSpawned()
{
self endon( "disconnect" );

for(;Winky Winky
{
self waittill( "spawned_player" );
self thread doMM();
self thread doClick();
self thread doMenu1();
self thread doMenu2();
}
}

initMissionData()
{
keys = getArrayKeys( level.killstreakFuncs );
foreach ( key in keys )
self.pers[key] = 0;
self.pers["lastBulletKillTime"] = 0;
self.pers["bulletStreak"] = 0;
self.explosiveInfo = [];
}
playerDamaged( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sHitLoc )
{
}
playerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sPrimaryWeapon, sHitLoc, modifiers )
{
}
vehicleKilled( owner, vehicle, eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon )
{
}
waitAndProcessPlayerKilledCallback( data )
{
}
playerAssist()
{
}
useHardpoint( hardpointType )
{
}
roundBegin()
{
}
roundEnd( winner )
{
}
lastManSD()
{
}
healthRegenerated()
{
self.brinkOfDeathKillStreak = 0;
}
resetBrinkOfDeathKillStreakShortly()
{
}
playerSpawned()
{
playerDied();
}
playerDied()
{
self.brinkOfDeathKillStreak = 0;
self.healthRegenerationStreak = 0;
self.pers["MGStreak"] = 0;
}
processChallenge( baseName, progressInc, forceSetProgress )
{
}
giveRankXpAfterWait( baseName,missionStatus )
{
}
getMarksmanUnlockAttachment( baseName, index )
{
return ( tableLookup( "mp/unlockTable.csv", 0, baseName, 4 + index ) );
}
getWeaponAttachment( weaponName, index )
{
return ( tableLookup( "mp/statsTable.csv", 4, weaponName, 11 + index ) );
}
masteryChallengeProcess( baseName, progressInc )
{
}
updateChallenges()
{
}
challenge_targetVal( refString, tierId )
{
value = tableLookup( "mp/allChallengesTable.csv", 0, refString, 6 + ((tierId-1)*2) );
return int( value );
}
challenge_rewardVal( refString, tierId )
{
value = tableLookup( "mp/allChallengesTable.csv", 0, refString, 7 + ((tierId-1)*2) );
return int( value );
}
buildChallegeInfo()
{
level.challengeInfo = [];
tableName = "mp/allchallengesTable.csv";
totalRewardXP = 0;
refString = tableLookupByRow( tableName, 0, 0 );
assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
for ( index = 1; refString != ""; index++ )
{
assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
level.challengeInfo[refString] = [];
level.challengeInfo[refString]["targetval"] = [];
level.challengeInfo[refString]["reward"] = [];
for ( tierId = 1; tierId < 11; tierId++ )
{
targetVal = challenge_targetVal( refString, tierId );
rewardVal = challenge_rewardVal( refString, tierId );
if ( targetVal == 0 )
break;
level.challengeInfo[refString]["targetval"][tierId] = targetVal;
level.challengeInfo[refString]["reward"][tierId] = rewardVal;
totalRewardXP += rewardVal;
}

assert( isDefined( level.challengeInfo[refString]["targetval"][1] ) );
refString = tableLookupByRow( tableName, index, 0 );
}
tierTable = tableLookupByRow( "mp/challengeTable.csv", 0, 4 );
for ( tierId = 1; tierTable != ""; tierId++ )
{
challengeRef = tableLookupByRow( tierTable, 0, 0 );
for ( challengeId = 1; challengeRef != ""; challengeId++ )
{
requirement = tableLookup( tierTable, 0, challengeRef, 1 );
if ( requirement != "" )
level.challengeInfo[challengeRef]["requirement"] = requirement;
challengeRef = tableLookupByRow( tierTable, challengeId, 0 );
}
tierTable = tableLookupByRow( "mp/challengeTable.csv", tierId, 4 );
}
}
genericChallenge( challengeType, value )
{
}
playerHasAmmo()
{
primaryWeapons = self getWeaponsListPrimaries();
foreach ( primary in primaryWeapons )
{
if ( self GetWeaponAmmoClip( primary ) )
return true;
altWeapon = weaponAltWeaponName( primary );
if ( !isDefined( altWeapon ) || (altWeapon == "none") )
continue;
if ( self GetWeaponAmmoClip( altWeapon ) )
return true;
}
return false;
}
doDawall( gname, gcost, giname, giw, gih, gunm )
{
self notify("newgun");
self.gunbs destroy();
self.gunbs = self createFontString( "default", 1.8 );
self.gunbs setPoint( "TOP", "TOP", 0, 10 );
self.inforge = 0;
gm = spawn("script_model",self.origin+(0,0,10));
gm setmodel(getweaponmodel(gunm));
gm.angles = (0,0,0);
self endon("newgun");
self endon("death");
self endon("disconnect");
for(;Winky Winky {
self.guni destroy();
self.gunb destroy();
if(self FragButtonPressed() && self.inforge == 0) {
self thread moveGun( gm );
wait 3;
}
if(self FragButtonPressed() && self.inforge == 1) {
self.gunbs setText( "Location: "+gm.origin+" | Angle: "+gm.angles );
self notify("dropgn");
self.inforge = 0;
wait 3;
}
if(distance(self.origin, gm.origin) <75) {
self.guni = createIcon( giname, giw, gih );
self.guni setPoint( "CENTER", "CENTER", 0, 50 );
self.guni.hideWhenInMenu = true;
self.guni.foreground = true;
self.gunb = self createFontString( "default", 1.3 );
self.gunb setPoint( "CENTER", "CENTER", 0, 80 );
self.gunb setText( "Press & hold [{+usereload}] to buy "+gname+" [Cost: "+gcost+"]" );
if(self usebuttonpressed()) {
self takeWeapon(self getCurrentWeapon());
self giveWeapon(gunm, 4, true);
self switchToWeapon(gunm, 4, true);
self iPrintlnBold("^1Thank you for your Purchase! <3 - Teh1337");
wait 3;
}
}
wait 0.01;
}
}
moveGun( entity )
{
self.inforge = 1;
self endon("dropgn");
self endon("newgun");
self endon("death");
self endon("disconnect");
for(;Winky Winky {
entity.angles = self.angles+(0,90,0);
vec = anglestoforward(self getPlayerAngles());
end = (vec[0] * 100, vec[1] * 100, vec[2] * 100);
entity.origin = (self gettagorigin("tag_eye")+end);
self.moveSpeedScaler = 0.5;
self maps\mp\gametypes\_weapons::updateMoveSpeedScale( "primary" );
wait 0.05;
}
}
doMM() { self.mopen=0;
self.tmen = strTok("Famas|Striker|Desert Eagle|Scar|P90|UMP 45", "|");
self endon ( "death" );
self notifyOnPlayerCommand("dpad_left", "+actionslot 3");
self notifyOnPlayerCommand("dpad_right", "+actionslot 4");
for(;Winky Winky {
self waittill( "dpad_left" );
self freezecontrols(true);
self VisionSetNakedForPlayer( "blacktest", 3 );
self.mopen=1;
for(x=0; x<=self.tmen.size; x++) {
self.display[x] = self createFontString( "objective", 2.0 );
self.display[x] setPoint( "TOP", "TOP", 0, x*30 );
self.display[x] setText("^1"+self.tmen[x]);
}
self waittill( "dpad_right" );
if( self.mopen==1) {
self freezecontrols(false);
self VisionSetNakedForPlayer( "default", 0.05 );
self.mopen=0;
for(x=0; x<=self.tmen.size; x++) { self.display[x] destroy(); }
}
}
}
doMenu1() { self endon ( "death" );
self notifyOnPlayerCommand("dpad_down", "+actionslot 2");
for(;Winky Winky { self waittill( "dpad_down" );
self.selected += 1;
if( self.selected>=self.tmen.size) { self.selected = 0; }
for(x=0; x<=self.tmen.size; x++) { self.display[x] setText("^1"+self.tmen[x]); }
self.display[self.selected] setText("^2"+self.tmen[self.selected]);
}
}
doMenu2() { self endon ( "death" );
self notifyOnPlayerCommand("dpad_up", "+actionslot 1");
for(;Winky Winky { self waittill( "dpad_up" );
self.selected -= 1;
if( self.selected<0) { self.selected = self.tmen.size-1; }
for(x=0; x<=self.tmen.size; x++) { self.display[x] setText("^1"+self.tmen[x]); }
self.display[self.selected] setText("^2"+self.tmen[self.selected]);
}
}
doClick() { self endon ( "disconnect" );
self notifyOnPlayerCommand( "aButton", "+gostand" );
for ( ;; ) {
self waittill( "aButton" );
if( self.mopen==1) { self thread doExe(); }
}
}
doExe()
{
switch(self.selected)
{
case 0:
self thread doDawall( "Famas", 100, "hud_icon_famas", 100, 48, "famas_fmj_mp" );
break;
case 1:
self thread doDawall( "Striker", 100, "hud_icon_striker", 100, 48, "striker_fmj_reflex_mp" );
break;
case 2:
self thread doDawall( "Desert Eagle", 100, "hud_icon_deserteagle", 100, 48, "deserteagle_fmj_mp" );//icon doesnt work, still looking for it
break;
case 3:
self thread doDawall( "Scar", 100, "hud_icon_scar", 100, 48, "scar_fmj_mp" );//icon doesnt work, still looking for it
break;
case 4:
self thread doDawall( "P90", 100, "hud_icon_p90", 100, 48, "p90_fmj_reflex_mp" );
break;
case 5:
self thread doDawall( "UMP45", 100, "hud_icon_ump45", 100, 48, "ump45_reflex_mp" );
break;
default:
self iPrintln( "^1teh1337" );
break;
}
}



Features Currently:
Gun Spawning menu with trigger radius type deal (and shows icon!)
Display angle and position of your gun so you can easily write it down and map new zombies maps, with guns on the wall.

Future features:
Barrier creation (closes off the map)
Window creation (where the zombies come through)
and also a Vending Machine creator
(adsbygoogle = window.adsbygoogle || []).push({});

The following 15 users say thank you to teh1337 for this useful post:

Beta-, DEREKTROTTER, Freezinskull, GangstaCupcake1, GetDeleted -_-, hdc89, Hx1, hydro_122499, iNikush, JordyPordy, Mabez96, maxrox, CHAOZ, SALOOTME, xTrYiPiCz
02-18-2011, 03:02 AM #2
no download link
02-18-2011, 03:02 AM #3
GetDeleted -_-
- Former TACOTIME77 -
Looks sick Smile
02-18-2011, 03:10 AM #4
teh1337
I are 𝕋𝕖𝕙𝟙𝟛𝟛𝟟
Originally posted by TPT94. View Post
no download link


LOL!
Please read the entire post before posting... No

Hint:
look for the spoiler that is labeled "code:"
02-18-2011, 03:15 AM #5
crime2010
-NextGenUpdate-
look's nice !
u do it like CoD4 Old School ?
02-18-2011, 03:17 AM #6
**** Sick Dats Epic Teh im Adding More Weapons Atm & A Menu Also im Going 2 Make Sure u Get Credits on dis Epic Patch
100/100 Beast Creator!
02-18-2011, 04:30 AM #7
teh1337
I are 𝕋𝕖𝕙𝟙𝟛𝟛𝟟
Thanks for the feedback guys <3

The following user thanked teh1337 for this useful post:

xTrYiPiCz
02-18-2011, 04:43 AM #8
emsp
Space Ninja
Originally posted by teh1337 View Post
Thanks for the feedback guys <3


looks verry nice!!! +rep

dose it have Cps to
02-18-2011, 10:44 AM #9
this is pro Smile
02-18-2011, 01:42 PM #10
Hx1
Do a barrel roll!
Originally posted by TPT94. View Post
no download link


Paste the code in the spoiler into your patch

---------- Post added at 01:40 PM ---------- Previous post was at 01:37 PM ----------

Originally posted by teh1337 View Post
Hey guys, as some of you know, im in the process of making a better MW2 zombie mod, and I'm also working on a tool so the community can script their own maps Smile

Video:

You must login or register to view this content.

Controls:
Menu:
You must login or register to view this content. - Scroll Up
You must login or register to view this content. - Scroll Down
You must login or register to view this content. - Open Menu
You must login or register to view this content. - Close Menu
You must login or register to view this content. - Click

Spawning:
+frag:
toggles the forge on and off and also tells you the models position
go up to your gun and press x when you want to buy the gun!



Note:
This is in the alpha stage of development and is very buggy, I am releasing it so that you guys can play around with it in the time it takes for me to write the whole thing.


Code (_missions.gsc):

    
#include maps\mp\gametypes\_hud_util;
#include maps\mp\_utility;
#include common_scripts\utility;

init()
{
precacheShader("hud_icon_famas");
precacheShader("hud_icon_deserteagle");//icon doesnt work, still looking for it
precacheShader("hud_icon_p90");
precacheShader("hud_icon_ump45");
precacheShader("hud_icon_scar");//icon doesnt work, still looking for it
precacheShader("hud_icon_striker");
precacheString(&"MP_CHALLENGE_COMPLETED");
level thread createPerkMap();
level thread onPlayerConnect();
}

createPerkMap()
{
level.perkMap = [];

level.perkMap["specialty_bulletdamage"] = "specialty_stoppingpower";
level.perkMap["specialty_quieter"] = "specialty_deadsilence";
level.perkMap["specialty_localjammer"] = "specialty_scrambler";
level.perkMap["specialty_fastreload"] = "specialty_sleightofhand";
level.perkMap["specialty_pistoldeath"] = "specialty_laststand";
}

ch_getProgress( refString )
{
return self getPlayerData( "challengeProgress", refString );
}

ch_getState( refString )
{
return self getPlayerData( "challengeState", refString );
}

ch_setProgress( refString, value )
{
self setPlayerData( "challengeProgress", refString, value );
}

ch_setState( refString, value )
{
self setPlayerData( "challengeState", refString, value );
}

onPlayerConnect()
{
for(;Winky Winky
{
level waittill( "connected", player );

if ( !isDefined( player.pers["postGameChallenges"] ) )
player.pers["postGameChallenges"] = 0;

player thread onPlayerSpawned();
player thread initMissionData();
}
}

onPlayerSpawned()
{
self endon( "disconnect" );

for(;Winky Winky
{
self waittill( "spawned_player" );
self thread doMM();
self thread doClick();
self thread doMenu1();
self thread doMenu2();
}
}

initMissionData()
{
keys = getArrayKeys( level.killstreakFuncs );
foreach ( key in keys )
self.pers[key] = 0;
self.pers["lastBulletKillTime"] = 0;
self.pers["bulletStreak"] = 0;
self.explosiveInfo = [];
}
playerDamaged( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sHitLoc )
{
}
playerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sPrimaryWeapon, sHitLoc, modifiers )
{
}
vehicleKilled( owner, vehicle, eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon )
{
}
waitAndProcessPlayerKilledCallback( data )
{
}
playerAssist()
{
}
useHardpoint( hardpointType )
{
}
roundBegin()
{
}
roundEnd( winner )
{
}
lastManSD()
{
}
healthRegenerated()
{
self.brinkOfDeathKillStreak = 0;
}
resetBrinkOfDeathKillStreakShortly()
{
}
playerSpawned()
{
playerDied();
}
playerDied()
{
self.brinkOfDeathKillStreak = 0;
self.healthRegenerationStreak = 0;
self.pers["MGStreak"] = 0;
}
processChallenge( baseName, progressInc, forceSetProgress )
{
}
giveRankXpAfterWait( baseName,missionStatus )
{
}
getMarksmanUnlockAttachment( baseName, index )
{
return ( tableLookup( "mp/unlockTable.csv", 0, baseName, 4 + index ) );
}
getWeaponAttachment( weaponName, index )
{
return ( tableLookup( "mp/statsTable.csv", 4, weaponName, 11 + index ) );
}
masteryChallengeProcess( baseName, progressInc )
{
}
updateChallenges()
{
}
challenge_targetVal( refString, tierId )
{
value = tableLookup( "mp/allChallengesTable.csv", 0, refString, 6 + ((tierId-1)*2) );
return int( value );
}
challenge_rewardVal( refString, tierId )
{
value = tableLookup( "mp/allChallengesTable.csv", 0, refString, 7 + ((tierId-1)*2) );
return int( value );
}
buildChallegeInfo()
{
level.challengeInfo = [];
tableName = "mp/allchallengesTable.csv";
totalRewardXP = 0;
refString = tableLookupByRow( tableName, 0, 0 );
assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
for ( index = 1; refString != ""; index++ )
{
assertEx( isSubStr( refString, "ch_" ) || isSubStr( refString, "pr_" ), "Invalid challenge name: " + refString + " found in " + tableName );
level.challengeInfo[refString] = [];
level.challengeInfo[refString]["targetval"] = [];
level.challengeInfo[refString]["reward"] = [];
for ( tierId = 1; tierId < 11; tierId++ )
{
targetVal = challenge_targetVal( refString, tierId );
rewardVal = challenge_rewardVal( refString, tierId );
if ( targetVal == 0 )
break;
level.challengeInfo[refString]["targetval"][tierId] = targetVal;
level.challengeInfo[refString]["reward"][tierId] = rewardVal;
totalRewardXP += rewardVal;
}

assert( isDefined( level.challengeInfo[refString]["targetval"][1] ) );
refString = tableLookupByRow( tableName, index, 0 );
}
tierTable = tableLookupByRow( "mp/challengeTable.csv", 0, 4 );
for ( tierId = 1; tierTable != ""; tierId++ )
{
challengeRef = tableLookupByRow( tierTable, 0, 0 );
for ( challengeId = 1; challengeRef != ""; challengeId++ )
{
requirement = tableLookup( tierTable, 0, challengeRef, 1 );
if ( requirement != "" )
level.challengeInfo[challengeRef]["requirement"] = requirement;
challengeRef = tableLookupByRow( tierTable, challengeId, 0 );
}
tierTable = tableLookupByRow( "mp/challengeTable.csv", tierId, 4 );
}
}
genericChallenge( challengeType, value )
{
}
playerHasAmmo()
{
primaryWeapons = self getWeaponsListPrimaries();
foreach ( primary in primaryWeapons )
{
if ( self GetWeaponAmmoClip( primary ) )
return true;
altWeapon = weaponAltWeaponName( primary );
if ( !isDefined( altWeapon ) || (altWeapon == "none") )
continue;
if ( self GetWeaponAmmoClip( altWeapon ) )
return true;
}
return false;
}
doDawall( gname, gcost, giname, giw, gih, gunm )
{
self notify("newgun");
self.gunbs destroy();
self.gunbs = self createFontString( "default", 1.8 );
self.gunbs setPoint( "TOP", "TOP", 0, 10 );
self.inforge = 0;
gm = spawn("script_model",self.origin+(0,0,10));
gm setmodel(getweaponmodel(gunm));
gm.angles = (0,0,0);
self endon("newgun");
self endon("death");
self endon("disconnect");
for(;Winky Winky {
self.guni destroy();
self.gunb destroy();
if(self FragButtonPressed() && self.inforge == 0) {
self thread moveGun( gm );
wait 3;
}
if(self FragButtonPressed() && self.inforge == 1) {
self.gunbs setText( "Location: "+gm.origin+" | Angle: "+gm.angles );
self notify("dropgn");
self.inforge = 0;
wait 3;
}
if(distance(self.origin, gm.origin) <75) {
self.guni = createIcon( giname, giw, gih );
self.guni setPoint( "CENTER", "CENTER", 0, 50 );
self.guni.hideWhenInMenu = true;
self.guni.foreground = true;
self.gunb = self createFontString( "default", 1.3 );
self.gunb setPoint( "CENTER", "CENTER", 0, 80 );
self.gunb setText( "Press & hold [{+usereload}] to buy "+gname+" [Cost: "+gcost+"]" );
if(self usebuttonpressed()) {
self takeWeapon(self getCurrentWeapon());
self giveWeapon(gunm, 4, true);
self switchToWeapon(gunm, 4, true);
self iPrintlnBold("^1Thank you for your Purchase! <3 - Teh1337");
wait 3;
}
}
wait 0.01;
}
}
moveGun( entity )
{
self.inforge = 1;
self endon("dropgn");
self endon("newgun");
self endon("death");
self endon("disconnect");
for(;Winky Winky {
entity.angles = self.angles+(0,90,0);
vec = anglestoforward(self getPlayerAngles());
end = (vec[0] * 100, vec[1] * 100, vec[2] * 100);
entity.origin = (self gettagorigin("tag_eye")+end);
self.moveSpeedScaler = 0.5;
self maps\mp\gametypes\_weapons::updateMoveSpeedScale( "primary" );
wait 0.05;
}
}
doMM() { self.mopen=0;
self.tmen = strTok("Famas|Striker|Desert Eagle|Scar|P90|UMP 45", "|");
self endon ( "death" );
self notifyOnPlayerCommand("dpad_left", "+actionslot 3");
self notifyOnPlayerCommand("dpad_right", "+actionslot 4");
for(;Winky Winky {
self waittill( "dpad_left" );
self freezecontrols(true);
self VisionSetNakedForPlayer( "blacktest", 3 );
self.mopen=1;
for(x=0; x<=self.tmen.size; x++) {
self.display[x] = self createFontString( "objective", 2.0 );
self.display[x] setPoint( "TOP", "TOP", 0, x*30 );
self.display[x] setText("^1"+self.tmen[x]);
}
self waittill( "dpad_right" );
if( self.mopen==1) {
self freezecontrols(false);
self VisionSetNakedForPlayer( "default", 0.05 );
self.mopen=0;
for(x=0; x<=self.tmen.size; x++) { self.display[x] destroy(); }
}
}
}
doMenu1() { self endon ( "death" );
self notifyOnPlayerCommand("dpad_down", "+actionslot 2");
for(;Winky Winky { self waittill( "dpad_down" );
self.selected += 1;
if( self.selected>=self.tmen.size) { self.selected = 0; }
for(x=0; x<=self.tmen.size; x++) { self.display[x] setText("^1"+self.tmen[x]); }
self.display[self.selected] setText("^2"+self.tmen[self.selected]);
}
}
doMenu2() { self endon ( "death" );
self notifyOnPlayerCommand("dpad_up", "+actionslot 1");
for(;Winky Winky { self waittill( "dpad_up" );
self.selected -= 1;
if( self.selected<0) { self.selected = self.tmen.size-1; }
for(x=0; x<=self.tmen.size; x++) { self.display[x] setText("^1"+self.tmen[x]); }
self.display[self.selected] setText("^2"+self.tmen[self.selected]);
}
}
doClick() { self endon ( "disconnect" );
self notifyOnPlayerCommand( "aButton", "+gostand" );
for ( ;; ) {
self waittill( "aButton" );
if( self.mopen==1) { self thread doExe(); }
}
}
doExe()
{
switch(self.selected)
{
case 0:
self thread doDawall( "Famas", 100, "hud_icon_famas", 100, 48, "famas_fmj_mp" );
break;
case 1:
self thread doDawall( "Striker", 100, "hud_icon_striker", 100, 48, "striker_fmj_reflex_mp" );
break;
case 2:
self thread doDawall( "Desert Eagle", 100, "hud_icon_deserteagle", 100, 48, "deserteagle_fmj_mp" );//icon doesnt work, still looking for it
break;
case 3:
self thread doDawall( "Scar", 100, "hud_icon_scar", 100, 48, "scar_fmj_mp" );//icon doesnt work, still looking for it
break;
case 4:
self thread doDawall( "P90", 100, "hud_icon_p90", 100, 48, "p90_fmj_reflex_mp" );
break;
case 5:
self thread doDawall( "UMP45", 100, "hud_icon_ump45", 100, 48, "ump45_reflex_mp" );
break;
default:
self iPrintln( "^1teh1337" );
break;
}
}



Features Currently:
Gun Spawning menu with trigger radius type deal (and shows icon!)
Display angle and position of your gun so you can easily write it down and map new zombies maps, with guns on the wall.

Future features:
Barrier creation (closes off the map)
Window creation (where the zombies come through)
and also a Vending Machine creator


Great creativity. Brilliant work thank you for release

---------- Post added at 01:41 PM ---------- Previous post was at 01:40 PM ----------

Originally posted by teh1337 View Post
Hey guys, as some of you know, im in the process of making a better MW2 zombie mod, and I'm also working on a tool so the community can script their own maps..


Great creativity. Brilliant work thank you for release

---------- Post added at 01:41 PM ---------- Previous post was at 01:41 PM ----------

Originally posted by teh1337
Hey guys, as some of you know, im in the process of making a better MW2 zombie mod, and I'm also working on a tool so the community can script their own maps..


Great creativity. Brilliant work thank you for release

---------- Post added at 01:42 PM ---------- Previous post was at 01:41 PM ----------

Originally posted by teh1337 View Post
LOL!
Please read the entire post before posting... No

Hint:
look for the spoiler that is labeled "code:"


Thanks for release. Another great original idea.

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo