@@ @@ DarrienSpace Installer, Version 1 @@ This is part 3. There is at least one other section after this one. @@ Please do the previous sections in order before executing this one. @@ No editing of this file should be necessary for PennMUSH @@ @@ I haven't tested this on Tiny, though. @@ @@ It also shouldn't be necessary to pre-create objects @@ @@ @@ @set me=Quiet @@ Okay, next is the functions that make it all possible. A lot of them are shared, @@ so be careful before you make any modifications to them. &FUN_CAN-RESCUE-DOCK? Master Nav-Comp=[setq(1,v(ship))][isdbref(setr(2,get(v(data_shipdb)/trans_%0)))][match(get(%q1/system),get(%q2/system))][match(get(%q1/location),get(%q2/location))][extract(get(%q1/dyn_stats),7,1,|)][not(extract(get(%q1/combat_stats),1,1,|))][match(extract(get(%q2/dyn_stats),5,1,|),Crippled)][switch(words(get(%q1/d_normal)),1,1,switch(isdbref(last(get(%q1/d_normal))),1,0,1))][switch(words(get(%q2/d_normal)),1,1,switch(isdbref(last(get(%q2/d_normal))),1,0,1))] &FUN_RESCUE-DOCK Master Nav-Comp=[switch(u(fun_can-rescue-dock?,setr(0,first(after(%0,DOCK%b)))),0*,<[ansi(c,CONSOLE)]> [ansi(r,Error:)] '%q0' doesn't appear to be within this system.,10*,<[ansi(c,CONSOLE)]> [ansi(r,Error:)] '%q0' doesn't appear to be within this system.,110*,<[ansi(c,CONSOLE)]> [ansi(r,Error:)] '%q0' must be in the same location as this ship for rescuing manuevers.,1110*,<[ansi(c,CONSOLE)]> [ansi(r,Error:)] This ship is incapable of docking.,11110*,<[ansi(c,CONSOLE)]> [ansi(r,Error:)] Rescue manuevers can not be engaged while in combat.,111110*,<[ansi(c,CONSOLE)]> [ansi(r,Error:)] Rescue manuevers can only be performed on Crippled ships.,1111110*,<[ansi(c,CONSOLE)]> Docking tube 'Normal' must be free for docking rescue manuevers can be executed.,11111110,<[ansi(c,CONSOLE)]> Tube 'Normal' on %q0 is not salvageable enough for rescue docking manuevers.,11111111,[set(%q1,dyn_stats:[replace(get(%q1/dyn_stats),10,1,|)])][set(%q2,dyn_stats:[replace(get(%q2/dyn_stats),10,1,|)])][set(setr(5,first(get(%q1/d_normal))),docked:[home(setr(6,first(get(%q2/d_normal))))])][set(%q6,docked:[home(%q5)])][link(%q5,home(%q6))][link(%q6,home(%q5))][set(%q1,d_normal:[get(%q1/d_normal)] %q2)][set(%q2,d_normal:[get(%q2/d_normal)] %q1)][u(fun_notify-results,<[ansi(c,SENSORS)]> [get(%q1/trans)] has emergency docked with [get(%q2/trans)])])] &FUN_CBT-DISP-STATUS Master Nav-Comp=[ljust(----=< Combat Status >=,76,-)]%r[ljust(-< This Ship: [get(%q1/trans)] >-,76)]%r%b%b%bShield: [ljust(extract(setr(4,get(%q1/dyn_stats)),1,1,|),5)]%bShield Max: [ljust(extract(%q4,4,1,|),5)]%bHull: [ljust(extract(%q4,2,1,|)/[extract(get(%q1/stat_stats),2,1,|)],12)]%bStatus: [extract(%q4,5,1,|)]%r[ljust(-Weapon Status-,51)]Range Modifications%r[ljust(Num,4)][ljust(Name,40)][ljust(Ammo,6)][ljust(0-10:,6)][ljust(11-100:,8)][ljust(101-500:,9)]>500:[switch(words(lattr(%q1/weapon_*)),0,%r--- This ship is unarmed ---,map(fun_status-disp-weap,sort(lattr(%q1/weapon_*))))]%r%r[ljust(----=< Ships in Current Combat Grouping >=,76,-)][map(fun_cbt-status-disp-other,get(v(data_systemdb)/system_[get(%q1/system)]))] &FUN_DEFENSE_FLEE Master Nav-Comp=[round(fdiv(extract(get(%q1/combat_stats),4,1,|),10),0)][set(%q1,combat_stats:[replace(get(%q1/combat_stats),7,0,|)])][u(fun_notify-results,<[ansi(c,COMBAT)]> [get(%q1/trans)] attempts to flee!)] &FUN_DEFENSE_NONE Master Nav-Comp=0[set(%q1,combat_stats:[replace(get(%q1/combat_stats),7,1,|)])][u(fun_notify-results,<[ansi(c,COMBAT)]> [get(%q1/trans)] squares off with [get(%q2/trans)]%, taking an offensive stance.)] &FUN_CBT-RESOLVE Master Nav-Comp=[setq(5,extract(get(%q1/combat_stats),1,1,|))][u(fun_cbt-resolve-shield)][u(fun_cbt-resolve-hull)][u(fun_cbt-resolve-internal)][u(fun_cbt-resolve-results)][set(%q1,combat_stats:[replace(get(%q1/combat_stats),5,0,|)])][set(%q1,combat_stats:[replace(get(%q1/combat_stats),8,0,|)])][set(%q1,combat_stats:[replace(get(%q1/combat_stats),9,0,|)])] &FUN_CBT-CALC-DEFENSE Master Nav-Comp=[setq(2,extract(get(%q1/combat_stats),9,1,|))][switch(gt(setr(7,add(round(fdiv(extract(get(%q1/combat_stats),4,1,|),10),0),sub(0,round(fdiv(extract(get(%q1/stat_stats),2,1,|),100),0)),val(switch(first(name(%q1)),STARFIGHTER:,u(fun_cbt-skillcheck,get(%q1/pilot),Starfighter Piloting),CAPITAL:,u(fun_cbt-skillcheck,get(%q1/pilot),Capital Ship Piloting),0)),val(u(fun_cbt-skillcheck,get(%q1/pilot),sense)),val(u(fun_defense_%q0)))),extract(get(%q1/combat_stats),5,1,|)),1,%r<[ansi(c,COMBAT)]> Your total defense this volley was '%q7'.[setq(9,1)][set(%q1,cbt_log:[get(%q1/cbt_log)]|Attacked by [get(%q2/trans)] - MISS)][set(%q2,cbt_log:[get(%q2/cbt_log)]|Attacked [get(%q1/trans)] - MISS)][setq(3,0)],%r<[ansi(c,COMBAT)]> Your total defense this volley was '%q7'.[set(%q1,cbt_log:[get(%q1/cbt_log)]|Attacked by [get(%q2/trans)] - HIT!)][set(%q2,cbt_log:[get(%q2/cbt_log)]|Attacked [get(%q1/trans)] - HIT!)][setq(3,die(extract(get(%q1/combat_stats),8,1,|),6))])][u(fun_cbt-resolve)] &FUN_CBT-CANDEFEND? Master Nav-Comp=[t(extract(get(setr(1,v(ship))/combat_stats),1,1,|))][t(extract(get(%q1/combat_stats),5,1,|))][t(match(v(data_defensemanuevers),%0))] &FUN_CBT-MISC-ATTACK-BONUS Master Nav-Comp=0 &FUN_CBT-SKILLCHECK Master Nav-Comp=[skill_roll(%0,%1)] &FUN_CANCBTINVITE? Master Nav-Comp=[match(loc(setr(1,v(ship))),v(space))]|[t(extract(get(%q1/combat_stats),1,1,|))]|[switch(get(setr(2,get(v(data_shipdb)/trans_%0))/system),setr(3,get(%q1/system)),1,0)]|[switch(extract(get(%q2/dyn_stats),5,1,|),Crippled,0,1)]|[not(match(%q1,%q2))]|[match(get(%q1/pilot),%1)] &FUN_CBT-CALC-ATTACK Master Nav-Comp=[u(fun_setqueues2,%q2)][set(%q2,combat_stats:[replace(get(%q2/combat_stats),5,setr(0,round(mul(add(fdiv(extract(get(%q1/combat_stats),4,1,|),10),val(extract(get(%q1/weapon_%0),add(2,t(sub(10,dist3d(%q4,%q5,%q6,%q7,%q8,%q9))),t(sub(100,dist3d(%q4,%q5,%q6,%q7,%q8,%q9))),t(sub(500,dist3d(%q4,%q5,%q6,%q7,%q8,%q9)))),1,|)),val(u(fun_cbt-skillcheck,%1,vehicle gunnery)),val(u(fun_cbt-skillcheck,%1,sense))),extract(get(%q1/combat_stats),7,1,|)),0)),|)])][set(%q2,combat_stats:[replace(get(%q2/combat_stats),8,extract(get(%q1/weapon_%0),6,1,|),|)])][set(%q2,combat_stats:[replace(get(%q2/combat_stats),9,%q1,|)])][switch(isnum(extract(get(%q1/weapon_%0),7,1,|)),1,set(%q1,weapon_%0:[replace(get(%q1/weapon_%0),7,sub(extract(get(%q1/weapon_%0),7,1,|),1),|)]))] &FUN_CBT-LEAVE-NOTIFY Master Nav-Comp=[switch(extract(get(%0/combat_stats),1,1,|),%q5,remit(get(%0/cockpit),<[ansi(c,COMBAT)]> [get(%q1/trans)] has left combat group "%q5".))] &FUN_CBT-ENTER-NOTIFY Master Nav-Comp=[switch(extract(get(%0/combat_stats),1,1,|),%q4,remit(get(%0/cockpit),<[ansi(c,COMBAT)]> [get(%q1/trans)] has entered combat with you.))] &FUN_CANCBTACCEPT? Master Nav-Comp=[switch(loc(setr(1,v(ship))),v(space),1)]|[t(extract(get(%q1/combat_stats),2,1,|))]|[setq(4,extract(get(%q1/combat_stats),2,1,|))][t(member(squish(iter(get(v(data_systemdb)/system_[setr(3,get(%q1/system))]),switch(member(get(##/combat_stats),%q4,|),1,##))),extract(get(%q1/combat_stats),3,1,|)))]|[switch(extract(get(%q1/dyn_stats),5,1,|),Crippled,0,1)]|[match(get(%q1/pilot),%0)] &FUN_CANCBTINIT? Master Nav-Comp=[switch(loc(setr(1,v(ship))),v(space),1,0)]|[switch(extract(get(%q1/dyn_stats),5,1,|),Crippled,0,1)]|[switch(get(setr(2,get(v(data_shipdb)/trans_%0))/system),setr(3,get(%q1/system)),1,0)]|[switch(extract(get(%q2/dyn_stats),5,1,|),Crippled,0,1)]|[not(match(%q1,%q2))]|[match(get(%q1/pilot),%1)] &FUN_SETQUEUES2 Master Nav-Comp=[setq(7,extract(get(%0/location),1,1,|))][setq(8,extract(get(%0/location),2,1,|))][setq(9,extract(get(%0/location),3,1,|))] &FUN_DISP-NORM-SCAN Master Nav-Comp=[repeat(=,76)]%r--SCAN of [get(%q2/trans)]--%r[repeat(_,76)]%r[ljust(Class,30,.)][before(name(%q2),:)]%r[ljust(Type,30,.)][switch(before(get(%q2/trans),-),SS,Space Station,P,Planet,A,Asteroid,M,Moon,[before(after(name(%q2),:%b),--)])]%r[ljust(Location,30,.)]%q7%,%q8%,%q9%r[ljust(Range,30,.)][round(dist3d(%q4,%q5,%q6,%q7,%q8,%q9),1)]%r[ljust(Status,30,.)][extract(get(%q2/dyn_stats),5,1,|)]%r[ljust(Docked,30,.)][switch(extract(get(%q2/dyn_stats),10,1,|),1,With:[iter(lattr(%q2/d_*),switch(words(get(%q2/##)),1,,2,switch(last(get(%q2/##)),#*,%r[space(32)][get(last(get(%q2/##))/trans)]),%r[space(32)][get(last(get(%q2/##))/trans)]))],No)]%r[repeat(=,76)][switch(%0,P,,remit(get(%q2/cockpit),<[ansi(c,SENSORS)]> [get(%q1/trans)] just scanned you.))] &FUN_SCANCHECK? Master Nav-Comp=[switch(loc(%q1),v(space),1,0)]|[t(%q2)]|[and(switch(get(%q1/system),get(%q2/system),1,0),lt(round(dist3d(%q4,%q5,%q6,%q7,%q8,%q9),1),%0))] &FUN_ENTER-SPACE-NOTIFY Master Nav-Comp=[u(fun_setqueues)][iter(get(v(data_systemdb)/system_%q3),[setq(7,extract(get(##/location),1,1,|))][setq(8,extract(get(##/location),2,1,|))][setq(9,extract(get(##/location),3,1,|))][switch(lte(round(dist3d(%q4,%q5,%q6,%q7,%q8,%q9),1),extract(get(##/comm_stats),3,1,|)),1,remit(get(##/cockpit),{<[ansi(c,SENSORS)]> [get(%q1/trans)] has just entered the system at %q4,%q5,%q6.}))])] &FUN_LAND-NOTIFY Master Nav-Comp=[u(fun_setqueues)][iter(get(v(data_systemdb)/system_%q3),[setq(7,extract(get(##/location),1,1,|))][setq(8,extract(get(##/location),2,1,|))][setq(9,extract(get(##/location),3,1,|))][switch(lte(round(dist3d(%q4,%q5,%q6,%q7,%q8,%q9),1),extract(get(##/comm_stats),3,1,|)),1,remit(get(##/cockpit),{<[ansi(c,SENSORS)]> [get(%q1/trans)] has just landed at %q4,%q5,%q6.}))])] &FUN_CAN-LAND? Master Nav-Comp=[switch(t(%q4),0,setq(4,PUBLIC))][switch(loc(setr(1,v(ship))),v(space),1,0)]|[extract(get(%q1/dyn_stats),9,1,|)]|[switch(setr(3,get(setr(2,%0)/system)),get(%q1/system),1,0)]|[switch(get(%q2/location),get(%q1/location),1,0)]|[hasattr(%q2,hangar_%q4)]|[switch(extract(get(%q2/hangar_%q4),4,1),%2,1,0)]|[gt(extract(get(%q2/hangar_%q4),3,1),extract(get(%q1/stat_stats),10,1,|))]|[not(extract(get(%q2/dyn_stats),1,1,|))]|[switch(%0,%q1,0,1)]|[not(extract(get(%q1/combat_stats),1,1,|))]|[not(extract(get(%q1/dyn_stats),10,1,|))]|[match(get(%q1/pilot),%3)] &FUN_CAN-TAKEOFF? Master Nav-Comp=[t(or(switch(setr(4,loc(setr(1,v(ship)))),v(space),1,v(hyperspace),1),switch(loc(setr(2,get(loc(%q1)/ship))),v(space),0,1),match(extract(get(%q1/dyn_stats),5,1,|),Crippled),not(match(get(%q1/pilot),%0))))] &FUN_SETQUEUES Master Nav-Comp=[setq(1,v(ship))][setq(4,extract(get(%q1/location),1,1,|))][setq(5,extract(get(%q1/location),2,1,|))][setq(6,extract(get(%q1/location),3,1,|))] &FUN_DISP-BASIC Master Nav-Comp=[setq(7,extract(get(%0/location),1,1,|))][setq(8,extract(get(%0/location),2,1,|))][setq(9,extract(get(%0/location),3,1,|))][setq(0,round(dist3d(%q4,%q5,%q6,%q7,%q8,%q9),1))]%r|%b[ljust(get(%0/trans),14)][rjust(%q7,7)][rjust(%q8,7)][rjust(%q9,7)][rjust(%q0,12)][space(6)][rjust(extract(get(%0/dyn_stats),5,1,|),9)][space(2)][rjust(switch(extract(get(%0/dyn_stats),10,1,|),1,Yes,No),7)]%b%b| &FUN_BASIC-SCAN Master Nav-Comp=[switch(loc(setr(1,v(ship))),v(hyperspace), [ansi(r,Error:)] You can't do that while in hyperspace.,v(space),[u(fun_setqueues)]%b[repeat(_,74)]%r/[space(74)]%\%r|%b[ljust(Designation,14)][rjust(X,7)][rjust(Y,7)][rjust(Z,7)][rjust(Range,12)][space(6)][rjust(Status,7)][space(5)][rjust(Docked?,7)]%b|%r[repeat(=,76)][setq(3,map(fun_within-scan,get(v(data_systemdb)/system_[get(%q1/system)])))][map(fun_disp-basic,%q3)]%r[repeat(=,76)]%r%\[repeat(_,74)]/,u(fun_scan-not-space))] &FUN_SCAN-NOT-SPACE Master Nav-Comp=[switch(loc(%q1),v(hyperspace),The ship is currently in hyperspace. Scanning is not possible.,The ship's current location is [name(setr(0,loc(%q1)))].%r%rViewable outside the ship:[iter(lcon(%q0),switch(type(##),THING,switch(##,%q1,,%r=> [ansi(h,name(##))]),switch(hasflag(##,connected),1,%r=> [ansi(h,name(##))])))])] &FUN_DISP-FOCUS-SCAN Master Nav-Comp=[repeat(=,76)]%r--FOCUSED SCAN of [get(%q2/trans)]--%r[repeat(_,76)]%rDescription:%r[u(%q2/describe)]%r[ljust(Class,30,.)][before(name(%q2),:)]%r[ljust(Type,30,.)][switch(before(get(%q2/trans),-),SS,Space Station,P,Planet,A,Asteroid,M,Moon,[before(after(name(%q2),:%b),--)])]%r[ljust(Location,30,.)]%q7%,%q8%,%q9%r[ljust(Range,30,.)][round(dist3d(%q4,%q5,%q6,%q7,%q8,%q9),1)]%r[ljust(Status,30,.)][extract(get(%q2/dyn_stats),5,1,|)]%r[switch(words(lattr(%q2/hangar_*)),0,,Hangar Information:[iter(lattr(%q2/hangar_*),%r[space(3)]Name: [after(##,_)]%r[space(3)]Number of Sentients Present: [words(u(fun_count-lifeforms,extract(get(%q2/##),1,1)))]%r[space(3)]Number of Ships Present: [words(u(fun_count-ships,extract(get(%q2/##),1,1)))]%r[space(3)]Space Remaining: [extract(get(%q2/##),3,1)]%r)])]%rDocking Information:[iter(lattr(%q2/d_*),%r[space(3)]Tube Name: [after(##,_)]%r[space(3)][switch(words(get(%q2/##)),1,AVAILABLE,2,switch(last(get(%q2/##)),#*,Docked with: [get(extract(get(%q2/##),2,1)/trans)],AVAILABLE),Docked with: [get(last(get(%q2/##))/trans)])])][switch(extract(get(%q2/dyn_stats),7,1,|),0,%r** [get(%q2/trans)] is currently incapable of Docking **%r)]%r[repeat(=,76)][remit(get(%q2/cockpit), [get(%q1/trans)] just performed a focused scan on you.)] &FUN_COUNT-LIFEFORMS Master Nav-Comp=[iter(lcon(%0),switch(flags(##),P*c*,##))] &FUN_COUNT-SHIPS Master Nav-Comp=[iter(lcon(%0),switch(hasattr(##,stat_stats),1,##))] &FUN_MOVE-NOTIFY Master Nav-Comp=[u(fun_setqueues)][iter(get(v(data_systemdb)/system_%q3),[u(fun_setqueues2,##)][switch(gte(extract(get(##/comm_stats),3,1,|),round(dist3d(%q4,%q5,%q6,%q7,%q8,%q9),1)),1,remit(switch(hasattr(##,quiet),1,##,get(##/cockpit)),<[ansi(c,SENSORS)]> [get(%q1/trans)] has moved to %q4%,%q5%,%q6))])] &FUN_CAN-GO-TO-COORD? Master Nav-Comp=[u(fun_setqueues)][switch(words(%0),3,[setq(3,get(%q1/system))][setq(7,extract(%0,1,1))][setq(8,extract(%0,2,1))][setq(9,extract(%0,3,1))],switch(member(get(v(data_systemdb)/system_[setr(3,get(v(ship)/system))]),setr(2,get(v(data_shipdb)/trans_%0))),0,[setq(7,Null)],[setq(7,extract(get(%q2/location),1,1,|))][setq(8,extract(get(%q2/location),2,1,|))][setq(9,extract(get(%q2/location),3,1,|))]))][switch(loc(%q1),v(space),1,0)]|[and(switch(extract(get(%q1/dyn_stats),5,1,|),Crippled,0,1),t(extract(get(%q1/stat_stats),1,1,|)))]|[not(extract(get(%q1/dyn_stats),10,1,|))]|[not(or(not(isnum(%q7)),not(isnum(%q8)),not(isnum(%q9)),switch(%1,Auto,0,gt(round(dist3d(%q4,%q5,%q6,%q7,%q8,%q9),1),extract(get(%q1/stat_stats),1,1,|)))))]|[switch(isdbref(%1),1,match(get(%q1/pilot),%1),1)] &FUN_CAN-AUTOPILOT Master Nav-Comp=[u(fun_setqueues)][hasattr(%q1,autopilot)]|[switch(loc(%q1),v(space),1,0)]|[switch(get(%q1/autopilot),get(%q1/location),0,1)]|[not(extract(get(%q1/dyn_stats),10,1,|))]|[and(switch(extract(get(%q1/dyn_stats),5,1,|),Crippled,0,1),t(extract(get(%q1/stat_stats),1,1,|)))]|[switch(get(%q1/auto),ON,0,1)]|[switch(isdbref(%1),1,match(get(%q1/pilot),%1),1)] &FUN_DO_AUTO Master Nav-Comp=@switch [get(setr(1,v(ship))/auto)]=ON,{think [setq(3,get(%q1/system))][setq(4,extract(get(%q1/autopilot),1,1,|))][setq(5,extract(get(%q1/autopilot),2,1,|))][setq(6,extract(get(%q1/autopilot),3,1,|))][setq(0,dist3d(%q4,%q5,%q6,%0,%1,%2))][switch(gte(extract(get(%q1/stat_stats),1,1,|),%q0),1,[set(%q1,auto:OFF)][set(%q1,location:[get(%q1/autopilot)])][u(fun_move-notify)][remit(get(%q1/cockpit),<[ansi(c,NAVIGATION)]> Autopilot destination reached.)],[setq(7,add(round(fdiv(sub(%q4,%0),fdiv(%q0,extract(get(%q1/stat_stats),1,1,|))),0),%0))][setq(8,add(round(fdiv(sub(%q5,%1),fdiv(%q0,extract(get(%q1/stat_stats),1,1,|))),0),%1))][setq(9,add(round(fdiv(sub(%q6,%2),fdiv(%q0,extract(get(%q1/stat_stats),1,1,|))),0),%2))][set(%q1,location:%q7|%q8|%q9)][u(fun_move-notify)])]},ON,{@tr me/fun_do_auto=[extract(get(%q1/location),1,1,|)],[extract(get(%q1/location),2,1,|)],[extract(get(%q1/location),3,1,|)]} &FUN_NAV_AUTO_SET Master Nav-Comp=[pemit(%1,switch(u(fun_can-go-to-coord?,setr(0,after(%0,AUTO TO%b)),Auto),0|*,<[ansi(c,NAVIGATION)]> [ansi(r,Error:)] You must be in regular space in order to set the autopilot.,1|0*1,<[ansi(c,NAVIGATION)]> Autopilot set. *NOTE* The ship is currently unable to move.[set(%q1,Autopilot:%q7|%q8|%q9)],1|1|0|1,<[ansi(c,NAVIGATION)]> Autopilot set. *NOTE* This ship is currently docked and can not move.[set(%q1,Autopilot:%q7|%q8|%q9)],1|1|1|0*,<[ansi(c,NAVIGATION)]> [ansi(r,Error:)] Either "[edit(%q0,%b,%,)]" is not an X%,Y%,Z numerical destination%, or "[edit(%q0,%b,%,)]" is not a valid transponder.,1|1|1|1|1,<[ansi(c,NAVIGATION)]> Autopilot set.[set(%q1,Autopilot:%q7|%q8|%q9)],<[ansi(c,NAVIGATION)]> [ansi(r,Error:)] One ore more items may be wrong: 1%) Incorrect X%,Y%,Z coordinates or incorrect Transponder entered 2%) Ship may be currently crippled 3%) Ship may not be in space 4%) Ship is currently docked making it incapable of moving.))] &FUN_CANCALC? Master Nav-Comp=[setq(1,v(ship))][setq(3,get(%q1/system))][setq(4,extract(%q3,1,1,|))][setq(5,extract(%q3,2,1,|))][setq(6,extract(%q3,3,1,|))][switch(words(%0),3,[setq(7,extract(%0,1,1))][setq(8,extract(%0,2,1))][setq(9,extract(%0,3,1))],[setq(7,extract(get(v(data_systemdb)/name_system_%0),1,1,|))][setq(8,extract(get(v(data_systemdb)/name_system_%0),2,1,|))][setq(9,extract(get(v(data_systemdb)/name_system_%0),3,1,|))])][switch(loc(%q1),v(space),1,0)]|[extract(get(%q1/dyn_stats),8,1,|)]|[and(isnum(%q7),isnum(%q8),isnum(%q9))]|[lt(words(lattr(%q1/jump_*)),extract(get(%q1/stat_stats),9,1,|))] &FUN_CALC_DIST Master Nav-Comp=[setq(4,extract(%0,1,1,|))][setq(5,extract(%0,2,1,|))][setq(6,extract(%0,3,1,|))][setq(7,extract(%1,1,1,|))][setq(8,extract(%1,2,1,|))][setq(9,extract(%1,3,1,|))][round(dist3d(%q4,%q5,%q6,%q7,%q8,%q9),0)] &FUN_DISP_POINTS Master Nav-Comp=%r[space(57)][after(%0,SYSTEM_)] &FUN_DO_JUMP Master Nav-Comp=[u(fun_setqueues)][switch([switch(loc(%q1),v(space),1,0)]|[not(extract(get(%q1/dyn_stats),10,1,|))]|[extract(get(%q1/dyn_stats),8,1,|)]|[hasattr(%q1,JUMP_%0)]|[switch(get(%q1/system),extract(get(%q1/jump_%0),1,1),1,0)]|[not(t(extract(get(%q1/combat_stats),1,1,|)))]|[match(get(%q1/pilot),%1)],0*,<[ansi(c,JUMP)]> [ansi(r,Error:)] You must be in normal space to engage the hyperdrive.,1|0*,<[ansi(c,JUMP)]> [ansi(r,Error:)] This ship is currently docked%, and can not engage its hyperdrive.,1|1|0*,<[ansi(c,JUMP)]> [ansi(r,Error:)] This ship is currently unable to engage its hyperdrive.,1|1|1|0*,<[ansi(c,JUMP)]> [ansi(r,Error:)] Jump "%0" is not a valid jump number.,1|1|1|1|0*,<[ansi(c,JUMP)]> [ansi(r,Error:)] That jump is invalid for this system.,1|1|1|1|1|0*,<[ansi(c,JUMP)]> [ansi(r,Error:)] Can not engage hyperdrive while in combat.,1|1|1|1|1|1|0,<[ansi(c,JUMP)]> [ansi(r,Error:)] Only the pilot can engage the hyperdrive.,1|1|1|1|1|1|1,<[ansi(c,JUMP)]> Hyperdrive engaged.[remit(%2,[name(%1)] engages the hyperdrive.)][setq(3,get(%q1/system))][set(setr(0,v(data_systemdb)),SYSTEM_%q3:[setdiff(get(%q0/SYSTEM_%q3),%q1)])][switch(words(get(%q0/SYSTEM_%q3)),0,wipe(%q0/SYSTEM_%q3))][wipe(%q1/system)][set(%q1,jumping:[extract(get(%q1/jump_%0),2,1)] [add(secs(),extract(get(%q1/jump_%0),3,1))])][tel(%q1,v(hyperspace))][u(fun_hyper-notify)])] @@ End of part 3. @set me=!Quiet @wait 5=@pemit me=Third part completed. You may begin the next part. (Only do them in sequence.)