Completed wp editor

This commit is contained in:
INeedBots 2020-12-04 12:04:17 -06:00
parent bdbfff0e73
commit 03ca1e44ce
2 changed files with 171 additions and 151 deletions

View File

@ -1,3 +1,10 @@
/*
_wp_editor
Author: INeedGames
Date: 09/26/2020
The ingame waypoint editor. Designed to be ran on the client (not the server)
*/
#include common_scripts\utility; #include common_scripts\utility;
#include maps\mp\_utility; #include maps\mp\_utility;
#include maps\mp\gametypes\_hud_util; #include maps\mp\gametypes\_hud_util;
@ -8,48 +15,48 @@ init()
setDvar("bots_main_debug", 0); setDvar("bots_main_debug", 0);
if(!getDVarint("bots_main_debug")) if(!getDVarint("bots_main_debug"))
return; return;
if(!getDVarint("developer")) if(!getDVarint("developer"))
{ {
setdvar("developer_script", 1); setdvar("developer_script", 1);
setdvar("developer", 1); setdvar("developer", 1);
setdvar("sv_mapRotation", "map "+getDvar("mapname")); setdvar("sv_mapRotation", "map "+getDvar("mapname"));
exitLevel(false); exitLevel(false);
} }
setDvar("bots_main", 0); setDvar("bots_main", 0);
setdvar("bots_main_menu", 0); setdvar("bots_main_menu", 0);
setdvar("bots_manage_fill_mode", 0); setdvar("bots_manage_fill_mode", 0);
setdvar("bots_manage_fill", 0); setdvar("bots_manage_fill", 0);
setdvar("bots_manage_add", 0); setdvar("bots_manage_add", 0);
setdvar("bots_manage_fill_kick", 1); setdvar("bots_manage_fill_kick", 1);
setDvar("bots_manage_fill_spec", 1); setDvar("bots_manage_fill_spec", 1);
if (getDvar("bots_main_debug_distance") == "") if (getDvar("bots_main_debug_distance") == "")
setDvar("bots_main_debug_distance", 512.0); setDvar("bots_main_debug_distance", 512.0);
if (getDvar("bots_main_debug_cone") == "") if (getDvar("bots_main_debug_cone") == "")
setDvar("bots_main_debug_cone", 0.65); setDvar("bots_main_debug_cone", 0.65);
if (getDvar("bots_main_debug_minDist") == "") if (getDvar("bots_main_debug_minDist") == "")
setDvar("bots_main_debug_minDist", 32.0); setDvar("bots_main_debug_minDist", 32.0);
if (getDvar("bots_main_debug_drawThrough") == "") if (getDvar("bots_main_debug_drawThrough") == "")
setDvar("bots_main_debug_drawThrough", false); setDvar("bots_main_debug_drawThrough", false);
if(getDvar("bots_main_debug_commandWait") == "") if(getDvar("bots_main_debug_commandWait") == "")
setDvar("bots_main_debug_commandWait", 0.5); setDvar("bots_main_debug_commandWait", 0.5);
setDvar("player_sustainAmmo", 1); setDvar("player_sustainAmmo", 1);
level.waypoints = []; level.waypoints = [];
level.waypointCount = 0; level.waypointCount = 0;
level waittill( "connected", player); level waittill( "connected", player);
player thread onPlayerSpawned(); player thread onPlayerSpawned();
} }
onPlayerSpawned() onPlayerSpawned()
@ -75,8 +82,8 @@ beginDebug()
self clearPerks(); self clearPerks();
self takeAllWeapons(); self takeAllWeapons();
self.specialty = []; self.specialty = [];
self giveWeapon("m16_gl_mp"); self giveWeapon("m1garand_gl_mp");
self SetActionSlot( 3, "altMode" ); self SetActionSlot( 3, "altMode" );
self giveWeapon("frag_grenade_mp"); self giveWeapon("frag_grenade_mp");
self freezecontrols(false); self freezecontrols(false);
@ -112,14 +119,14 @@ debug()
closest = -1; closest = -1;
myEye = self getTagOrigin( "j_head" ); myEye = self getTagOrigin( "j_head" );
myAngles = self GetPlayerAngles(); myAngles = self GetPlayerAngles();
for(i = 0; i < level.waypointCount; i++) for(i = 0; i < level.waypointCount; i++)
{ {
if(closest == -1 || closer(self.origin, level.waypoints[i].origin, level.waypoints[closest].origin)) if(closest == -1 || closer(self.origin, level.waypoints[i].origin, level.waypoints[closest].origin))
closest = i; closest = i;
wpOrg = level.waypoints[i].origin + (0, 0, 25); wpOrg = level.waypoints[i].origin + (0, 0, 25);
if(distance(level.waypoints[i].origin, self.origin) < getDvarFloat("bots_main_debug_distance") && (bulletTracePassed(myEye, wpOrg, false, self) || getDVarint("bots_main_debug_drawThrough"))) if(distance(level.waypoints[i].origin, self.origin) < getDvarFloat("bots_main_debug_distance") && (bulletTracePassed(myEye, wpOrg, false, self) || getDVarint("bots_main_debug_drawThrough")))
{ {
@ -129,7 +136,7 @@ debug()
if(getConeDot(wpOrg, myEye, myAngles) > getDvarFloat("bots_main_debug_cone")) if(getConeDot(wpOrg, myEye, myAngles) > getDvarFloat("bots_main_debug_cone"))
print3d(wpOrg, i, (1,0,0), 2); print3d(wpOrg, i, (1,0,0), 2);
if (isDefined(level.waypoints[i].angles) && level.waypoints[i].type != "stand") if (isDefined(level.waypoints[i].angles) && level.waypoints[i].type != "stand")
line(wpOrg, wpOrg + AnglesToForward(level.waypoints[i].angles) * 64, (1,1,1)); line(wpOrg, wpOrg + AnglesToForward(level.waypoints[i].angles) * 64, (1,1,1));
} }
} }
@ -277,32 +284,34 @@ watchSaveWaypointsCommand()
} }
logprint("*/return waypoints;\n}\n\n\n\n"); logprint("*/return waypoints;\n}\n\n\n\n");
PrintLn(level.waypointCount); PrintLn("********* Start Bot Warfare WPDump *********");
for(i = 0; i < level.waypointCount; i++) PrintLn(level.waypointCount);
{ for(i = 0; i < level.waypointCount; i++)
str = ""; {
wp = level.waypoints[i]; str = "";
wp = level.waypoints[i];
str += wp.origin[0] + " " + wp.origin[1] + " " + wp.origin[2] + ","; str += wp.origin[0] + " " + wp.origin[1] + " " + wp.origin[2] + ",";
for(h = 0; h < wp.childCount; h++) for(h = 0; h < wp.childCount; h++)
{ {
str += wp.children[h]; str += wp.children[h];
if (h < wp.childCount - 1) if (h < wp.childCount - 1)
str += " "; str += " ";
} }
str += "," + wp.type + ","; str += "," + wp.type + ",";
if (isDefined(wp.angles)) if (isDefined(wp.angles))
str += wp.angles[0] + " " + wp.angles[1] + " " + wp.angles[2] + ","; str += wp.angles[0] + " " + wp.angles[1] + " " + wp.angles[2] + ",";
else else
str += ","; str += ",";
str += ","; str += ",";
PrintLn(str); PrintLn(str);
} }
PrintLn("\n\n\n\n\n\n");
self iprintln("Saved!!!"); self iprintln("Saved!!!");
} }
@ -312,13 +321,13 @@ watchSaveWaypointsCommand()
{ {
self iPrintlnBold("Auto link disabled"); self iPrintlnBold("Auto link disabled");
level.autoLink = false; level.autoLink = false;
level.wpToLink = -1; level.wpToLink = -1;
} }
else else
{ {
self iPrintlnBold("Auto link enabled"); self iPrintlnBold("Auto link enabled");
level.autoLink = true; level.autoLink = true;
level.wpToLink = self.nearest; level.wpToLink = self.nearest;
} }
} }
@ -567,20 +576,20 @@ textScroll(string)
self endon("disconnect"); self endon("disconnect");
//thanks ActionScript //thanks ActionScript
back = createBar((0,0,0), 1000, 30); back = createBar((0,0,0), 1000, 30);
back setPoint("CENTER", undefined, 0, 220); back setPoint("CENTER", undefined, 0, 220);
self thread destroyOnDeath(back); self thread destroyOnDeath(back);
text = createFontString("default", 1.5); text = createFontString("default", 1.5);
text setText(string); text setText(string);
self thread destroyOnDeath(text); self thread destroyOnDeath(text);
for (;;) for (;;)
{ {
text setPoint("CENTER", undefined, 1200, 220); text setPoint("CENTER", undefined, 1200, 220);
text setPoint("CENTER", undefined, -1200, 220, 20); text setPoint("CENTER", undefined, -1200, 220, 20);
wait 20; wait 20;
} }
} }
waittill_either(not, not1) waittill_either(not, not1)
@ -614,48 +623,52 @@ getMapName(map)
{ {
switch(map) switch(map)
{ {
case "mp_convoy": case "mp_airfield":
return "Ambush"; return "Airfield";
case "mp_backlot": case "mp_asylum":
return "Backlot"; return "Asylum";
case "mp_bloc": case "mp_kwai":
return "Bloc"; return "Banzai";
case "mp_bog": case "mp_drum":
return "Bog"; return "Battery";
case "mp_countdown": case "mp_castle":
return "Countdown"; return "Castle";
case "mp_crash": case "mp_shrine":
return "Crash"; return "Cliffside";
case "mp_crash_snow": case "mp_stalingrad":
return "Winter Crash"; return "Corrosion";
case "mp_crossfire": case "mp_courtyard":
return "Crossfire"; return "Courtyard";
case "mp_citystreets": case "mp_dome":
return "District"; return "Dome";
case "mp_farm": case "mp_downfall":
return "Downpour"; return "Downfall";
case "mp_overgrown": case "mp_hangar":
return "Overgrown"; return "Hangar";
case "mp_pipeline": case "mp_kneedeep":
return "Pipeline"; return "Knee Deep";
case "mp_shipment": case "mp_makin":
return "Shipment"; return "Makin";
case "mp_showdown": case "mp_makin_day":
return "Showdown"; return "Makin Day";
case "mp_strike": case "mp_nachtfeuer":
return "Strike"; return "Nightfire";
case "mp_vacant": case "mp_outskirts":
return "Vacant"; return "Outskirts";
case "mp_cargoship": case "mp_vodka":
return "Wetwork"; return "Revolution";
case "mp_broadcast": case "mp_roundhouse":
return "Broadcast"; return "Roundhouse";
case "mp_creek": case "mp_seelow":
return "Creek"; return "Seelow";
case "mp_carentan": case "mp_subway":
return "Chinatown"; return "Station";
case "mp_killhouse": case "mp_docks":
return "Killhouse"; return "Sub Pens";
case "mp_suburban":
return "Upheaval";
case "mp_bgate":
return "Breach";
} }
return map; return map;
@ -670,67 +683,72 @@ load_waypoints()
switch(mapname) switch(mapname)
{ {
case "mp_convoy": case "mp_airfield":
level.waypoints = maps\mp\bots\waypoints\ambush::Ambush(); level.waypoints = maps\mp\bots\waypoints\airfield::Airfield();
break; break;
case "mp_backlot": case "mp_asylum":
level.waypoints = maps\mp\bots\waypoints\backlot::Backlot(); level.waypoints = maps\mp\bots\waypoints\asylum::Asylum();
break; break;
case "mp_bloc": case "mp_kwai":
level.waypoints = maps\mp\bots\waypoints\bloc::Bloc(); level.waypoints = maps\mp\bots\waypoints\banzai::Banzai();
break; break;
case "mp_bog": case "mp_drum":
level.waypoints = maps\mp\bots\waypoints\bog::Bog(); level.waypoints = maps\mp\bots\waypoints\battery::Battery();
break; break;
case "mp_countdown": case "mp_bgate":
level.waypoints = maps\mp\bots\waypoints\countdown::Countdown(); level.waypoints = maps\mp\bots\waypoints\breach::Breach();
break; break;
case "mp_crash": case "mp_castle":
case "mp_crash_snow": level.waypoints = maps\mp\bots\waypoints\castle::Castle();
level.waypoints = maps\mp\bots\waypoints\crash::Crash();
break; break;
case "mp_crossfire": case "mp_shrine":
level.waypoints = maps\mp\bots\waypoints\crossfire::Crossfire(); level.waypoints = maps\mp\bots\waypoints\cliffside::Cliffside();
break; break;
case "mp_citystreets": case "mp_stalingrad":
level.waypoints = maps\mp\bots\waypoints\district::District(); level.waypoints = maps\mp\bots\waypoints\corrosion::Corrosion();
break; break;
case "mp_farm": case "mp_courtyard":
level.waypoints = maps\mp\bots\waypoints\downpour::Downpour(); level.waypoints = maps\mp\bots\waypoints\courtyard::Courtyard();
break; break;
case "mp_overgrown": case "mp_dome":
level.waypoints = maps\mp\bots\waypoints\overgrown::Overgrown(); level.waypoints = maps\mp\bots\waypoints\dome::Dome();
break; break;
case "mp_pipeline": case "mp_downfall":
level.waypoints = maps\mp\bots\waypoints\pipeline::Pipeline(); level.waypoints = maps\mp\bots\waypoints\downfall::Downfall();
break; break;
case "mp_shipment": case "mp_hangar":
level.waypoints = maps\mp\bots\waypoints\shipment::Shipment(); level.waypoints = maps\mp\bots\waypoints\hangar::Hangar();
break; break;
case "mp_showdown": case "mp_kneedeep":
level.waypoints = maps\mp\bots\waypoints\showdown::Showdown(); level.waypoints = maps\mp\bots\waypoints\kneedeep::KneeDeep();
break; break;
case "mp_strike": case "mp_makin":
level.waypoints = maps\mp\bots\waypoints\strike::Strike(); case "mp_makin_day":
level.waypoints = maps\mp\bots\waypoints\makin::Makin();
break; break;
case "mp_vacant": case "mp_nachtfeuer":
level.waypoints = maps\mp\bots\waypoints\vacant::Vacant(); level.waypoints = maps\mp\bots\waypoints\nightfire::Nightfire();
break; break;
case "mp_cargoship": case "mp_outskirts":
level.waypoints = maps\mp\bots\waypoints\wetwork::Wetwork(); level.waypoints = maps\mp\bots\waypoints\outskirts::Outskirts();
break; break;
case "mp_vodka":
case "mp_broadcast": level.waypoints = maps\mp\bots\waypoints\revolution::Revolution();
level.waypoints = maps\mp\bots\waypoints\broadcast::Broadcast();
break; break;
case "mp_creek": case "mp_roundhouse":
level.waypoints = maps\mp\bots\waypoints\creek::Creek(); level.waypoints = maps\mp\bots\waypoints\roundhouse::Roundhouse();
break; break;
case "mp_carentan": case "mp_seelow":
level.waypoints = maps\mp\bots\waypoints\chinatown::Chinatown(); level.waypoints = maps\mp\bots\waypoints\seelow::Seelow();
break; break;
case "mp_killhouse": case "mp_subway":
level.waypoints = maps\mp\bots\waypoints\killhouse::Killhouse(); level.waypoints = maps\mp\bots\waypoints\station::Station();
break;
case "mp_docks":
level.waypoints = maps\mp\bots\waypoints\subpens::SubPens();
break;
case "mp_suburban":
level.waypoints = maps\mp\bots\waypoints\upheaval::Upheaval();
break; break;
default: default:

View File

@ -17,6 +17,8 @@ CodeCallback_StartGameType()
level.gametypestarted = true; // so we know that the gametype has been started up level.gametypestarted = true; // so we know that the gametype has been started up
level thread maps\mp\bots\_bot::init(); level thread maps\mp\bots\_bot::init();
level thread maps\mp\bots\_menu::init();
level thread maps\mp\bots\_wp_editor::init();
} }
} }