mirror of
https://github.com/ineedbots/iw5_bot_warfare.git
synced 2025-04-25 23:29:12 +00:00
Some updates
This commit is contained in:
parent
6df432e267
commit
2985c64118
@ -1054,19 +1054,13 @@ _WaypointsToKDTree(waypoints, dem)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
callbacksort = undefined;
|
callbacksort = undefined;
|
||||||
|
|
||||||
switch(dem)
|
if (dem == 0) // COMPILER bug! cannot assign variables outside the switch statement
|
||||||
{
|
callbacksort = ::HeapSortCoordX;
|
||||||
case 0:
|
else if (dem == 1)
|
||||||
callbacksort = ::HeapSortCoordX;
|
callbacksort = ::HeapSortCoordY;
|
||||||
break;
|
else
|
||||||
case 1:
|
callbacksort = ::HeapSortCoordZ;
|
||||||
callbacksort = ::HeapSortCoordY;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
callbacksort = ::HeapSortCoordZ;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
heap = NewHeap(callbacksort);
|
heap = NewHeap(callbacksort);
|
||||||
|
|
||||||
|
@ -58,6 +58,8 @@ init()
|
|||||||
|
|
||||||
level.waypoints = [];
|
level.waypoints = [];
|
||||||
level.waypointCount = 0;
|
level.waypointCount = 0;
|
||||||
|
|
||||||
|
test();
|
||||||
|
|
||||||
level waittill( "connected", player);
|
level waittill( "connected", player);
|
||||||
player thread onPlayerSpawned();
|
player thread onPlayerSpawned();
|
||||||
@ -73,6 +75,119 @@ onPlayerSpawned()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
test()
|
||||||
|
{
|
||||||
|
// regression
|
||||||
|
a = 801;
|
||||||
|
if (a <= -800)
|
||||||
|
a = 800;
|
||||||
|
|
||||||
|
logstring(a); // 801
|
||||||
|
|
||||||
|
// regression
|
||||||
|
dir = "yo";
|
||||||
|
r = 3;
|
||||||
|
|
||||||
|
j = 0;
|
||||||
|
while (j < 24)
|
||||||
|
{
|
||||||
|
a = 9;
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
|
||||||
|
b = 2;
|
||||||
|
|
||||||
|
logstring(dir); // yo
|
||||||
|
logstring(r); // 3
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// test arg passing
|
||||||
|
e = spawnStruct();
|
||||||
|
e.a = 4;
|
||||||
|
f = ::test_func;
|
||||||
|
|
||||||
|
[[f]](e, 4); // test_func 4 4
|
||||||
|
logstring(e.a); // 5
|
||||||
|
|
||||||
|
test_func2(::test_func3, "hi"); // hi
|
||||||
|
|
||||||
|
e.b = ::test_func3;
|
||||||
|
[[e.b]]("ahaha"); // ahaha
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
callbacksort = undefined;
|
||||||
|
y = 0;
|
||||||
|
|
||||||
|
switch ("kek")
|
||||||
|
{
|
||||||
|
case "lol":
|
||||||
|
logstring("FUCKKKKKKKK"); // 1 1
|
||||||
|
break;
|
||||||
|
case "kek":
|
||||||
|
logstring("HAHAHAHAHAAH"); // 1 1
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch(randomInt(3))
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
callbacksort = ::test_func;
|
||||||
|
y = 1;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
callbacksort = ::test_func2;
|
||||||
|
y = 1;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
callbacksort = ::test_func3;
|
||||||
|
y = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
logstring(isDefined(callbacksort) + " " + y); // 1 1
|
||||||
|
|
||||||
|
|
||||||
|
// test heap sorting
|
||||||
|
sort = NewHeap(maps\mp\bots\_bot_utility::ReverseHeap);
|
||||||
|
sort HeapInsert(3);
|
||||||
|
sort HeapInsert(4);
|
||||||
|
sort HeapInsert(1);
|
||||||
|
sort HeapInsert(3);
|
||||||
|
sort HeapInsert(87);
|
||||||
|
sort HeapInsert(-123);
|
||||||
|
sort HeapInsert(0);
|
||||||
|
|
||||||
|
str = "";
|
||||||
|
|
||||||
|
while (sort.data.size)
|
||||||
|
{
|
||||||
|
str += sort.data[0] + ", ";
|
||||||
|
sort HeapRemove();
|
||||||
|
}
|
||||||
|
|
||||||
|
logstring(str); // -123, 0, 1, 3, 3, 4, 87,
|
||||||
|
}
|
||||||
|
|
||||||
|
test_func(a, b)
|
||||||
|
{
|
||||||
|
logstring("test_func " + b + " " + a.a);
|
||||||
|
a.a += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
test_func2(a, b)
|
||||||
|
{
|
||||||
|
[[a]](b);
|
||||||
|
}
|
||||||
|
|
||||||
|
test_func3(a)
|
||||||
|
{
|
||||||
|
logstring(a);
|
||||||
|
}
|
||||||
|
|
||||||
StartDev()
|
StartDev()
|
||||||
{
|
{
|
||||||
self endon("disconnect");
|
self endon("disconnect");
|
||||||
@ -108,20 +223,6 @@ StartDev()
|
|||||||
self thread watchAstarCommand();
|
self thread watchAstarCommand();
|
||||||
|
|
||||||
self thread sayExtras();
|
self thread sayExtras();
|
||||||
|
|
||||||
//self LoadWaypoints(); // actionslot 2 not working?
|
|
||||||
// COMPILER loops bugging out
|
|
||||||
// crashes on map reload if too big?
|
|
||||||
level.waypoints = maps\mp\bots\waypoints\dome::Dome();
|
|
||||||
level.waypointCount = level.waypoints.size;
|
|
||||||
|
|
||||||
wait 4;
|
|
||||||
|
|
||||||
level.waypoints = [];
|
|
||||||
level.waypointCount = 0;
|
|
||||||
iPrintLn("del");
|
|
||||||
|
|
||||||
// this fixes the crash on map_rotate.... seems like if theres too much vars being used, it crashes
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sayExtras()
|
sayExtras()
|
||||||
@ -150,9 +251,6 @@ watchAstarCommand()
|
|||||||
{
|
{
|
||||||
self waittill("astar");
|
self waittill("astar");
|
||||||
|
|
||||||
if (1)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
self iprintln("Start AStar");
|
self iprintln("Start AStar");
|
||||||
self.astar = undefined;
|
self.astar = undefined;
|
||||||
astar = spawnStruct();
|
astar = spawnStruct();
|
||||||
@ -253,7 +351,7 @@ showWpLink(i, h)
|
|||||||
|
|
||||||
dash = spawn( "script_model", end);
|
dash = spawn( "script_model", end);
|
||||||
dash setModel("weapon_parabolic_knife");
|
dash setModel("weapon_parabolic_knife");
|
||||||
//dash.angles = dir; // COMPILER loops are bugging out variables
|
dash.angles = dir;
|
||||||
|
|
||||||
level.drawn_links[level.drawn_links.size] = dash;
|
level.drawn_links[level.drawn_links.size] = dash;
|
||||||
}
|
}
|
||||||
@ -354,7 +452,7 @@ updateWaypointsStats()
|
|||||||
self iPrintLnBold(self.nearest + " children: " + buildChildString(self.nearest));
|
self iPrintLnBold(self.nearest + " children: " + buildChildString(self.nearest));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isDefined(self.astar))
|
/*if (isDefined(self.astar))
|
||||||
{
|
{
|
||||||
print3d(self.astar.start + (0, 0, 35), "start", (0,0,1), 2);
|
print3d(self.astar.start + (0, 0, 35), "start", (0,0,1), 2);
|
||||||
print3d(self.astar.goal + (0, 0, 35), "goal", (0,0,1), 2);
|
print3d(self.astar.goal + (0, 0, 35), "goal", (0,0,1), 2);
|
||||||
@ -371,7 +469,7 @@ updateWaypointsStats()
|
|||||||
}
|
}
|
||||||
|
|
||||||
line(prev, self.astar.goal + (0, 0, 35), (0,1,1));
|
line(prev, self.astar.goal + (0, 0, 35), (0,1,1));
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -380,10 +478,10 @@ watchLoadWaypointsCommand()
|
|||||||
self endon("disconnect");
|
self endon("disconnect");
|
||||||
self endon("death");
|
self endon("death");
|
||||||
|
|
||||||
self notifyOnPlayerCommand("[{+actionslot 2}]", "+actionslot 2");
|
self notifyOnPlayerCommand("[{+actionslot 5}]", "+actionslot 5");
|
||||||
for( ;; )
|
for( ;; )
|
||||||
{
|
{
|
||||||
self waittill("[{+actionslot 2}]");
|
self waittill("[{+actionslot 5}]");
|
||||||
self LoadWaypoints();
|
self LoadWaypoints();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -648,63 +746,59 @@ UnLinkWaypoint(nwp)
|
|||||||
|
|
||||||
LinkWaypoint(nwp)
|
LinkWaypoint(nwp)
|
||||||
{
|
{
|
||||||
level.temp_vars = [];
|
if(nwp == -1 || distance(self.origin, level.waypoints[nwp].origin) > getDvarFloat("bots_main_debug_minDist"))
|
||||||
level.temp_vars[0] = nwp;
|
|
||||||
level.temp_vars[1] = true;
|
|
||||||
if(level.temp_vars[0] == -1 || distance(self.origin, level.waypoints[level.temp_vars[0]].origin) > getDvarFloat("bots_main_debug_minDist"))
|
|
||||||
{
|
{
|
||||||
self iprintln("Waypoint Link Cancelled "+level.wpToLink);
|
self iprintln("Waypoint Link Cancelled "+level.wpToLink);
|
||||||
level.wpToLink = -1;
|
level.wpToLink = -1;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(level.wpToLink == -1 || level.temp_vars[0] == level.wpToLink)
|
if(level.wpToLink == -1 || nwp == level.wpToLink)
|
||||||
{
|
{
|
||||||
level.wpToLink = level.temp_vars[0];
|
level.wpToLink = nwp;
|
||||||
self iprintln("Waypoint Link Started "+level.temp_vars[0]);
|
self iprintln("Waypoint Link Started "+nwp);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
weGood = true;
|
||||||
for (i = 0; i < level.waypoints[level.wpToLink].childCount; i++)
|
for (i = 0; i < level.waypoints[level.wpToLink].childCount; i++)
|
||||||
{
|
{
|
||||||
child = level.waypoints[level.wpToLink].children[i];
|
child = level.waypoints[level.wpToLink].children[i];
|
||||||
|
|
||||||
if(child == level.temp_vars[0])
|
if(child == nwp)
|
||||||
{
|
{
|
||||||
level.temp_vars[1] = false;
|
weGood = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(level.temp_vars[1])
|
if(weGood)
|
||||||
{
|
{
|
||||||
for (i = 0; i < level.waypoints[level.temp_vars[0]].childCount; i++)
|
for (i = 0; i < level.waypoints[nwp].childCount; i++)
|
||||||
{
|
{
|
||||||
child = level.waypoints[level.temp_vars[0]].children[i];
|
child = level.waypoints[nwp].children[i];
|
||||||
|
|
||||||
if(child == level.wpToLink)
|
if(child == level.wpToLink)
|
||||||
{
|
{
|
||||||
level.temp_vars[1] = false;
|
weGood = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// COMPILER BUG ATM!! vars getting over written, using level.temp_vars for now
|
|
||||||
|
|
||||||
if (!level.temp_vars[1] )
|
if (!weGood )
|
||||||
{
|
{
|
||||||
self iprintln("Waypoint Link Cancelled "+level.temp_vars[0]+" and "+level.wpToLink+" already linked.");
|
self iprintln("Waypoint Link Cancelled "+nwp+" and "+level.wpToLink+" already linked.");
|
||||||
level.wpToLink = -1;
|
level.wpToLink = -1;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
level.waypoints[level.wpToLink].children[level.waypoints[level.wpToLink].childcount] = level.temp_vars[0];
|
level.waypoints[level.wpToLink].children[level.waypoints[level.wpToLink].childcount] = nwp;
|
||||||
level.waypoints[level.wpToLink].childcount++;
|
level.waypoints[level.wpToLink].childcount++;
|
||||||
level.waypoints[level.temp_vars[0]].children[level.waypoints[level.temp_vars[0]].childcount] = level.wpToLink;
|
level.waypoints[nwp].children[level.waypoints[nwp].childcount] = level.wpToLink;
|
||||||
level.waypoints[level.temp_vars[0]].childcount++;
|
level.waypoints[nwp].childcount++;
|
||||||
|
|
||||||
self iprintln("Waypoint " + level.temp_vars[0] + " Linked to " + level.wpToLink);
|
self iprintln("Waypoint " + nwp + " Linked to " + level.wpToLink);
|
||||||
level.wpToLink = -1;
|
level.wpToLink = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -735,8 +829,6 @@ DeleteWaypoint(nwp)
|
|||||||
level.waypoints[i].children[h]--;
|
level.waypoints[i].children[h]--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// COMPILER vars are bugging out, dont use!
|
|
||||||
|
|
||||||
for ( entry = 0; entry < level.waypointCount; entry++ )
|
for ( entry = 0; entry < level.waypointCount; entry++ )
|
||||||
{
|
{
|
||||||
@ -806,6 +898,13 @@ DeleteAllWaypoints()
|
|||||||
{
|
{
|
||||||
level.waypoints = [];
|
level.waypoints = [];
|
||||||
level.waypointCount = 0;
|
level.waypointCount = 0;
|
||||||
|
level.waypointsKDTree = WaypointsToKDTree();
|
||||||
|
|
||||||
|
level.waypointsCamp = [];
|
||||||
|
level.waypointsTube = [];
|
||||||
|
level.waypointsGren = [];
|
||||||
|
level.waypointsClay = [];
|
||||||
|
level.waypointsJav = [];
|
||||||
|
|
||||||
self iprintln("DelAllWps");
|
self iprintln("DelAllWps");
|
||||||
}
|
}
|
||||||
@ -850,9 +949,7 @@ destroyOnDeath(hud)
|
|||||||
{
|
{
|
||||||
hud endon("death");
|
hud endon("death");
|
||||||
self waittill_either("death","disconnect");
|
self waittill_either("death","disconnect");
|
||||||
hud notify("death");
|
|
||||||
hud destroy();
|
hud destroy();
|
||||||
hud = undefined;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
initHudElem(txt, xl, yl)
|
initHudElem(txt, xl, yl)
|
||||||
@ -882,7 +979,7 @@ initHudElem(txt, xl, yl)
|
|||||||
initHudElem2()
|
initHudElem2()
|
||||||
{
|
{
|
||||||
infotext = NewHudElem();
|
infotext = NewHudElem();
|
||||||
infotext setText("^1Welcome to the MW3 Waypoint Editor for Bot Warfare!"); // not working??
|
infotext setText("^1[{+smoke}]-AddWp ^2[{+melee_zoom}]-LinkWp ^3[{+reload}]-UnLinkWp ^4[{+actionslot 3}]-DeleteWp ^5[{+actionslot 4}]-DelAllWps ^6[{+actionslot 5}]-LoadWPS ^7[{+actionslot 1}]-SaveWp");
|
||||||
infotext.alignX = "center";
|
infotext.alignX = "center";
|
||||||
infotext.alignY = "bottom";
|
infotext.alignY = "bottom";
|
||||||
infotext.horzAlign = "center";
|
infotext.horzAlign = "center";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user