fixed shinonuma links

This commit is contained in:
ineed bots 2023-07-20 13:43:02 -06:00
parent cc91952f4d
commit 40edab1671
2 changed files with 237 additions and 0 deletions

View File

@ -71,14 +71,126 @@ beginDebug()
self endon( "zombified" ); self endon( "zombified" );
self thread debug(); self thread debug();
self thread watch_for_unlink();
self thread textScroll( "^1xDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD" ); self thread textScroll( "^1xDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD" );
} }
watch_for_unlink()
{
self endon( "disconnect" );
self endon( "zombified" );
self notifyOnPlayerCommand( "+smoke", "toggle_unlink" );
for ( ;; )
{
self waittill( "toggle_unlink" );
if ( self.closest == -1 )
{
self iprintln( "not close to node" );
continue;
}
firstwp = level.waypoints[self.closest];
self iprintln( "wp selected for unlink: " + firstwp getNodeNumber() );
self waittill( "toggle_unlink" );
if ( self.closest == -1 )
{
self iprintln( "not close to node" );
continue;
}
self toggle_link( firstwp, level.waypoints[self.closest] );
}
}
array_contains( arr, it )
{
for ( i = 0; i < arr.size; i++ )
{
if ( arr[i] == it )
return true;
}
return false;
}
toggle_link( firstwp, secondwp )
{
// check if it exists
key = firstwp getNodeNumber() + "";
secnum = secondwp getNodeNumber();
links = firstwp getLinkedNodes();
linked = false;
for ( i = 0; i < links.size; i++ )
{
if ( links[i] getNodeNumber() == secnum )
{
linked = true;
break;
}
}
if ( !linked )
{
self iprintln( "no link: " + key + " " + secnum );
return;
}
if ( key == secnum + "" )
{
self iprintln( "same unlink: " + key + " " + secnum );
return;
}
if ( isDefined( level.bot_ignore_links[key] ) && array_contains( level.bot_ignore_links[key], secnum ) )
{
a = level.bot_ignore_links[key];
a = array_remove( a, secnum );
if ( a.size <= 0 )
{
level.bot_ignore_links[key] = undefined;
}
else
{
level.bot_ignore_links[key] = a;
}
self iprintln( "removed unlink: " + key + " " + secnum );
PrintConsole( "toggle_link: add: " + key + " " + secnum );
}
else
{
if ( !isDefined( level.bot_ignore_links[key] ) )
{
level.bot_ignore_links[key] = [];
}
a = level.bot_ignore_links[key];
a[a.size] = secnum;
level.bot_ignore_links[key] = a;
self iprintln( "added unlink: " + key + " " + secnum );
PrintConsole( "toggle_link: del: " + key + " " + secnum );
}
}
debug() debug()
{ {
self endon( "disconnect" ); self endon( "disconnect" );
self endon( "zombified" ); self endon( "zombified" );
self.closest = -1;
for ( ;; ) for ( ;; )
{ {
wait 0.05; wait 0.05;
@ -131,6 +243,11 @@ debug()
} }
} }
} }
if ( distance( self.origin, level.waypoints[closest].origin ) < 64 )
self.closest = closest;
else
self.closest = -1;
} }
} }

View File

@ -811,7 +811,127 @@ load_waypoints()
switch ( level.script ) switch ( level.script )
{ {
case "nazi_zombie_sumpf": case "nazi_zombie_sumpf":
a = [];
a[a.size] = 1825;
a[a.size] = 1826;
a[a.size] = 1829;
a[a.size] = 1830;
a[a.size] = 1833;
a[a.size] = 1837;
level.bot_ignore_links[1603 + ""] = a;
a = [];
a[a.size] = 1829;
level.bot_ignore_links[1604 + ""] = a;
a = [];
a[a.size] = 1904;
level.bot_ignore_links[1823 + ""] = a;
a = [];
a[a.size] = 1603;
a[a.size] = 1903;
a[a.size] = 1904;
a[a.size] = 1906;
level.bot_ignore_links[1825 + ""] = a;
a = [];
a[a.size] = 1603;
a[a.size] = 1903;
a[a.size] = 1904;
a[a.size] = 1907;
level.bot_ignore_links[1826 + ""] = a;
a = [];
a[a.size] = 1904;
level.bot_ignore_links[1827 + ""] = a;
a = [];
a[a.size] = 1603;
a[a.size] = 1604;
a[a.size] = 1903;
a[a.size] = 1904;
a[a.size] = 1906;
a[a.size] = 1907;
level.bot_ignore_links[1829 + ""] = a;
a = [];
a[a.size] = 1603;
a[a.size] = 1903;
a[a.size] = 1904;
a[a.size] = 1907;
level.bot_ignore_links[1830 + ""] = a;
a = [];
a[a.size] = 1904;
level.bot_ignore_links[1831 + ""] = a;
a = [];
a[a.size] = 1603;
a[a.size] = 1903;
a[a.size] = 1904;
a[a.size] = 1906;
a[a.size] = 1907;
level.bot_ignore_links[1833 + ""] = a;
a = [];
a[a.size] = 1903;
a[a.size] = 1904;
level.bot_ignore_links[1834 + ""] = a;
a = [];
a[a.size] = 1603;
a[a.size] = 1903;
a[a.size] = 1904;
a[a.size] = 1906;
a[a.size] = 1907;
level.bot_ignore_links[1837 + ""] = a;
a = [];
a[a.size] = 1903;
a[a.size] = 1904;
level.bot_ignore_links[1838 + ""] = a;
a = [];
a[a.size] = 1825;
a[a.size] = 1826;
a[a.size] = 1829;
a[a.size] = 1830;
a[a.size] = 1833;
a[a.size] = 1834;
a[a.size] = 1837;
a[a.size] = 1838;
level.bot_ignore_links[1903 + ""] = a;
a = [];
a[a.size] = 1823;
a[a.size] = 1825;
a[a.size] = 1826;
a[a.size] = 1827;
a[a.size] = 1829;
a[a.size] = 1830;
a[a.size] = 1831;
a[a.size] = 1833;
a[a.size] = 1834;
a[a.size] = 1837;
a[a.size] = 1838;
level.bot_ignore_links[1904 + ""] = a;
a = [];
a[a.size] = 1825;
a[a.size] = 1829;
a[a.size] = 1833;
a[a.size] = 1837;
level.bot_ignore_links[1906 + ""] = a;
a = [];
a[a.size] = 1826;
a[a.size] = 1829;
a[a.size] = 1830;
a[a.size] = 1833;
a[a.size] = 1837;
level.bot_ignore_links[1907 + ""] = a;
break; break;
} }