; _ _ _ _ _ _ _ _ ;[_][_][_][_][_][_][_][_] ; ; The Land of SPUR ; ; (C)opyright 1987 ; Greg W. Davis ; and ; Peripherals Plus ; ; 09/12/87 20:44 ; _______________________ ; v3.0 ; Sysop Segment ; _ _ _ _ _ _ _ _ ;[_][_][_][_][_][_][_][_] on nocar goto linkterm public relink main input \"SPUR Sysop (?=Menu): "i$ push main if i$="A" goto allie0 if i$="I" goto item0 if i$="M" goto monster0 if i$="W" goto weapon0 if i$="S" goto spell0 if i$="F" goto food0 if i$="P" goto player0 if i$="L" pop:goto levels if i$="R" pop:goto room0 if i$="V" goto duelog if i$="Q" goto quit if i$="U" pop:dy$=ds$+"spur.util":link dy$ if i$="*" pop:dy$=ds$+"spur.control":link dy$ if i$<>"?" return menu setint(1):print \s$\' [------------------------------------] [ Sysop Maintenance Menu ] [------------------------------------] [ [U] Spur Sysop Utilities ] [ [*] Spur Sysop Control ] [ [V] View/Delete Dueling log ] [ ] [ [P]layers [S]pells ] [ [I]tems [M]onsters ] [ [W]eapons [A]llies ] [ [L]evels [F]ood/Drink ] [ [R]ooms [Q]uit ] [ ] [------------------------------------]':setint(""):return player0 dy$=dx$+"spur.users" players print \"[ PLAYERS ]" input \"[L]ist [E]dit [K]ill or [Q]uit: "i$ if i$="K" goto player2 if i$="Q" return if i$="L" xl$="listplyr":gosub link.sys if i$<>"E" goto players player2 input @2\"Player # (CR=Abort): "x$:if x$="" goto players x=val(x$):if (x<1) or (x>np) print \"Players from 1 to "np" only.":goto player2 if i$="K" goto kil.plyr ed.plr if x=pn gosub pull:goto ed.plr1 gosub rd.plr if not b1 print \"No such Player.":goto players ed.plr1 print \"User #"b1" Player #"b2" Name: "n$ print "A:Strength :"n1 print "B:Constitution :"n2 print "C:Intelligence :"n3 print "D:Energy :"n4 print "E:Wisdom :"n5 print "F:Dexterity :"n6 print "G:Shield :"s print "H:Armor :"a g1=g5:g2=g6:gosub prt.gold:print "I:Gold in bank :"gd$ g1=g3:g2=g4:gosub prt.gold:print "J:Gold in hand :"gd$ print "K:Experience :"m1 print "L:Player Level :"m4 print "M:Kills :"m2 print "N:Hit Points :"b3 print "O:Race :";:gosub race0 print "P:Class :";:gosub class0 ed.plr2 input @2\"Edit (A-P): " i$ ed.cont if i$="A" input @1\"Strength: "a$:gosub check:n1=i if i$="B" input @1\"Constitution: "a$:gosub check:n2=i if i$="C" input @1\"Intelligence: "a$:gosub check:n3=i if i$="D" input @1\"Energy: "a$:gosub check:n4=i if i$="E" input @1\"Wisdom: "a$:gosub check:n5=i if i$="F" input @1\"Dexterity: "a$:gosub check:n6=i if i$="G" input @1\"Shield: "a$:gosub check2:s=i if i$="H" input @1\"Armor: "a$:gosub check2:a=i if i$="I" input @1\"Gold in Bank: "a$:gosub check4 if i$="J" input @1\"Gold in Hand: "a$:gosub check4 if i$="K" input @1\"Experience: "m1 if i$="L" input @1\"Player Level: "m4 if i$="M" input @1\"Kills: "m2 if i$="N" input @1\"Hit Points: "a$:gosub check5:b3=i if i$="O" gosub race if i$="P" gosub class if i$<>"" goto ed.plr1 play.sav input @0\"[S]ave [R]eturn [A]bort: "i$ if i$="A" goto players if i$="R" goto ed.plr1 if i$<>"S" goto play.sav if x<>pn gosub wr.plr:goto players hp=b3:n1$=n$:ps=n1:pt=n2:pi=n3:pe=n4:pw=n5:pd=n6:gn=gx:pc=z1:pr=z2 sh=s:ar=a:gh=g3:gl=g4:bh=g5:bl=g6:ep=m1:mk=m2:mm=m3:xp=m4:goto players class print \'Please Choose a Class: 1) Alchemist 4) Paladin 7) Archer 2) Druid 5) Ranger 8) Assassin 3) Fighter 6) Thief 9) Knight Your Choice (1-9): '; input i$:z1=val(i$) if (z1>9) or (z1<1) goto class return class0 if z1=1 print "Alchemist ":else if z1=2 print "Druid " if z1=3 print "Fighter ":else if z1=4 print "Paladin " if z1=5 print "Ranger ":else if z1=6 print "Thief " if z1=7 print "Archer ":else if z1=8 print "Assassin " if z1=9 print "Knight " return race print \'Please Choose a Race: 1) Human 4) Elf 7) Dwarf 2) Ogre 5) Hobbit 8) Orc 3) Gnome 6) Halfling 9) Half-Elf Your Choice (1-9): '; input i$:z2=val(i$) if (z2<1) or (z2>9) goto race return race0 if z2=1 print "Human":else if z2=2 print"Ogre" if z2=3 print "Gnome":else if z2=4 print"Elf" if z2=5 print "Hobbit":else if z2=6 print"Hafling" if z2=7 print "Dwarf":else if z2=8 print"Orc" if z2=9 print "Half-Elf" return check i=val(a$):if (i<1) or (i>25) print \"Value from 1 to 25 only.":pop:goto ed.cont return check2 i=val(a$):if (i<0) or (i>100) print \"Value from 1-100 only.":pop:goto ed.cont return check4 if len(a$)>9 print \"Invalid amount":pop:goto ed.cont for i=1 to len(a$):b=instr(mid$(a$,i,1),"0123456789") if b=0 then i=len(a$):print \"Invalid amount":next:pop:goto ed.cont next if i$="I" then gd$=a$:gosub spl.gold:g5=g1:g6=g2 if i$="J" then gd$=a$:gosub spl.gold:g3=g1:g4=g2 return check5 i=val(a$):if i>(m4*25) print \(m4*25)" pts. max.":pop:goto ed.cont return pull b1=sn:b2=pn:b3=hp:n$=n1$:n1=ps:n2=pt:n3=pi:n4=pe:n5=pw:n6=pd:gx=gn:z1=pc:z2=pr s=sh:a=ar:g3=gh:g4=gl:g5=bh:g6=bl:m1=ep:m2=mk:m3=mm:m4=xp:return rd.plr open #1,dy$ position #1,130,x input #1,n$,b1,b2,n7,n8,b3 input #1,n1,n2,n3,n4,n5,n6 input #1,g3,g4,g5,g6,s,a,z1,z2,m1,m2,m3,m4 input #1,dx,lx,sx,gx close:return wr.plr open #1,dy$ position #1,130,x print #1,n$,b1,b2,n7,n8,b3 print #1,n1,n2,n3,n4,n5,n6 print #1,g3,g4,g5,g6,s,a,z1,z2,m1,m2,m3,m4 print #1,dx,lx,sx,gx close:return kil.plyr if x=pn print\"You may not commit suicide!":goto player0 gosub rd.plr if gx then print\' Player a GuildMember!! You MUST delete from Guild FIRST!!':goto player0 if not b1 print \"Player does not exist":goto players print \"Player #"x print "Name "n$\ input @0 "Remove Player from game? "i$ if i$<>"Y" goto players b1=0:n7=0:n8=0:gosub wr.plr dy$=dx$+"weapons":dw$=dx$+"spur.weapons" open #1,dy$:open #2,dw$ position #2,64,x input #2,a,i$ if a=0 close:goto kill.pl2 for j=1 to a y=val(i$):i$=mid$(i$,5) if y>10 position #1,34,y:print #1,"1" next:close kill.pl2 dy$=dx$+"allies":dw$=dx$+"spur.allies" open #1,dy$:open #2,dw$ position #2,78,x for j=1 to 3 input #2,x1$,x1,x2 position #1,26,x2 if x2<>0 print #1,1 next:close if not gx goto player0 g.quit dy$=dx$+"guild.members":open #1,dy$ position #1,85,gx:input #1,gu\gu$ for i=1 to gu y=(i*4)-3:a=val(mid$(gu$,y)) if a=pn then i=gu:next:goto g.quit1 next:close:goto player0 g.quit1 if y=1 goto g.quit3 l=len(gu$):gu=gu-1 if (y+4)>l then gu$=left$(gu$,y-1):goto g.quit2 gu$=left$(gu$,y-1)+mid$(gu$,y+4) g.quit2 position #1,85,gx print #1,gu\gu$:close goto player0 g.quit3 position #1,85,gx print #1,0\"000":close dy$=dx$+"guild.data" open #1,dy$ position #1,41,gx print #1,0:close dy$=dx$+"spur.users" open #1,dy$ for i=1 to gu y=(i*4)-3:a=val(mid$(gu$,y)) gosub g.quit4 next:close:goto player0 g.quit4 position #1,130,a input #1,n$,b1,b2,n7,n8,b3 input #1,n1,n2,n3,n4,n5,n6 input #1,g3,g4,g5,g6,s,ax,z1,z2,m1,m2,m3,m4 input #1,dx,lx,sx,gx position #1,130,a print #1,n$,b1,b2,n7,n8,b3 print #1,n1,n2,n3,n4,n5,n6 print #1,g3,g4,g5,g6,s,ax,z1,z2,m1,m2,m3,m4 print #1,dx,lx,sx,0 return duelog f$=dx$+"spur.duels" input@2\"[L]ist or [K]ill Duel log? "i$ if i$="K" kill f$:return if i$<>"L" return print\' Date Online Player Results Offline Player Winnings Location -------------------------------------------------------------------------' setint(1):copy f$:setint(""):goto duelog food0 dy$=dx$+"stores":xl$="listfood":xc=cg:xn$="RATIONS":open #1,dy$ food gosub edpmt if i$="A" goto nw.food if (i$<>"E") and (i$<>"K") goto food push food gosub getnum:pop if i$="E" goto ed.food kl.food gosub rd.food print \"Kill "xn$" #"x print "Named: "gs$;:input @0 "? "i$ if i$<>"Y" goto food cb$="*" gosub wr.food:goto food nw.food print \"Searching...." x=1 nw.food2 gosub rd.food if (cb$="") or (cb$="*") goto nw.food3 x=x+1:if x=1000 print \"No room in "xn$" file!":goto food goto nw.food2 nw.food3 print \"Open slot found at #"x:if x<11 then cb$="2":else cb$="1" gosub ed.f.nam:if gs$="" goto food.cnc gosub ed.f.cst gosub ed.f.typ goto food.sav ed.food gosub rd.food if (cb$="") or (cb$="*") push food:goto ed.none ed.food2 print \xn$" # "x print"A. Name: "gs$ print"B. Cost: "gs print"C. Type: "ty$"-"; if ty$="F" print "Food" if ty$="D" print "Drink" if ty$="C" print "Cursed" input @2\"Edit (A-C) - [?=Types]: "i$ ed.food3 if i$="A" gosub ed.f.nam:if gs$="" goto ed.food3 if i$="B" gosub ed.f.cst if i$="C" gosub ed.f.typ if i$="?" gosub f.types if i$<>"" goto ed.food2 food.sav input \"[S]ave [A]bort [R]eturn: "i$ if i$="R" goto ed.food2 if i$="A" goto food if i$<>"S" goto food.sav if x>cg then cg=x:xc=x gosub wr.food:goto food ed.f.nam print \xn$;:input @2" (18 chrs.): "gs$:if len(gs$)>18 goto ed.f.nam return ed.f.cst print \"Cost of "xn$;:input " (1-99): "gs:if (gs<1) or (gs>99) goto ed.f.cst return ed.f.typ input @0\"Type: "ty$:if ty$="?" gosub f.types:goto ed.f.typ a=instr(ty$,"FDC"):if (not a) print \"Invalid type":goto ed.f.typ if (ty$="C") and (x<11) print \"Rations 1-10 can not be Cursed":goto ed.f.typ return food.cnc print \xn$" add cancelled.":goto food f.types print \'Valid Ration Types: F = Food D = Drink C = Cursed':return rd.food position #1,26,x input #1,cb$\gs$\gs ty$=left$(gs$,1):gs$=mid$(gs$,3) return wr.food gs$=ty$+"."+gs$ position #1,26,x print #1,cb$\gs$\gs return spell0 dy$=dx$+"spells":xl$="listspel":xc=sc:xn$="SPELLS":open #1,dy$ spells gosub edpmt if i$="A" goto nw.spel if (i$<>"E") and (i$<>"K") goto spells push spells gosub getnum:pop if i$="E" goto ed.spel kil.spel gosub rd.spel print \"Kill Spell #"x print "Named "q$;:input @0 "? "i$ if i$<>"Y" goto spells cb$="*":gosub wr.spel:goto spells nw.spel print \"Searching..." x=1 nw.spel2 gosub rd.spel if (cb$="") or (cb$="*") goto nw.spel3 x=x+1:if x=1000 print \"No room in the "xn$" file.":goto spells goto nw.spel2 nw.spel3 print \"Open slot found at #"x:cb$="1" gosub ed.s.nam:if q$="" goto spel.cnc gosub ed.s.typ gosub ed.s.suc gosub ed.s.cst goto spel.sav ed.spel gosub rd.spel if (cb$="") or (cb$="*") push spells:goto ed.none ed.spel2 print \"Spell # "x print "A: Name : "q$ print "B: ID : "q2$ print "C: Success : "q3"0%" print "D: Cost : "q4" gold"\ input @2\"Edit (A-D): "i$ ed.spel3 if i$="A" gosub ed.s.nam:if q$="" goto ed.spel3 if i$="B" gosub ed.spl2b if i$="C" gosub ed.s.suc if i$="D" gosub ed.s.cst if i$<>"" goto ed.spel2 spel.sav input \"[S]ave [A]bort [R]eturn: "i$ if i$="A" goto spells if i$="R" goto ed.spel2 if i$<>"S" goto spel.sav if x>sc then sc=x:xc=x gosub wr.spel:goto spells ed.spl2b input @0\"Type of Spell (?=List): "a$:if a$="?" gosub listtype:goto ed.spl2b if not instr(a$,"PMSWEICDLTURGA#") goto ed.spl2b ed.spl2c input \"Point Determinator (1-9): "b$:if (b$<"1") or (b$>"9") goto ed.spl2c ed.spl2e q2$=a$+b$:return listtype print \' Spell Types: (P)layer (M)onster (S)trength (C)onstitution (E)nergy (I)ntelligence (W)isdom (D)exterity (L)evel-Down (T)ransfer (U)p-Level (R)eturn to Shop (G)et SPUR (A)ura (#) Teleport'\:return ed.s.nam input @2\"Name (20 chrs.): "q$:if len(q$)>20 goto ed.s.nam return ed.s.typ gosub ed.spl2b return ed.s.suc input \"Success (1-9): "q3:if (q3<1) or (q3>9) goto ed.s.suc return ed.s.cst input \"Cost (1-30000): "q4:if (q4<1) or (q4>30000) goto ed.s.cst return spel.cnc print \xn$" add cancelled":goto spells rd.spel position #1,40,x input #1,cb$\q$,q2$,q3,q4 return wr.spel position #1,40,x print #1,cb$\q$,q2$,q3,q4 return monster0 dy$=dx$+"monsters":xl$="listmons":xc=mc:xn$="MONSTERS":open #1,dy$ monsters gosub edpmt if i$="A" goto nw.mons if (i$<>"E") and (i$<>"K") goto monsters push monsters gosub getnum:pop if i$="E" goto ed.mons kil.mons gosub rd.mons print \"Kill "xn$" #"x print "Named "m$;:input @0 "? "i$ if i$<>"Y" goto monsters cb$="*":gosub wr.mons:goto monsters nw.mons print \"Searching......" x=1 nw.mons2 gosub rd.mons if (cb$="") or (cb$="*") goto nw.mons3 x=x+1:if x=1000 print \"No room for adding "xn$:goto monsters goto nw.mons2 nw.mons3 print \"Open slot found at #"x:cb$="1" gosub ed.m.nam:if m$="" goto mons.cnc gosub ed.m.str gosub ed.m.swp goto mons.sav ed.mons gosub rd.mons if (cb$="") or (cb$="*") push monsters:goto ed.none ed.mons2 print \xn$" # "x print \"A: Name : "m$ print "B: Strength : "ms print "C: Spec Wep #: "sw input @2\"Edit (A-C): "i$ ed.mons3 if i$="A" gosub ed.m.nam:if m$="" goto ed.mons3 if i$="B" gosub ed.m.str if i$="C" gosub ed.m.swp if i$<>"" goto ed.mons2 mons.sav input \"[S]ave [R]eturn [A]bort: "i$ if i$="A" goto monsters if i$="R" goto ed.mons2 if i$<>"S" goto mons.sav if x>mc then mc=x:xc=x gosub wr.mons:goto monsters ed.m.nam print \xn$;:input @2" (18 chrs.): "m$:if len(m$)>18 goto ed.m.nam ty$="M" return ed.m.str print \xn$;:input @2" strength (1-18): "ms if (ms<1) or (ms>18) goto ed.m.str return ed.m.swp input @0\ "Special Weapon Required? "i$ if i$<>"Y" then sw=0:return print \"Special Weapon (1-"wc"): ";:input sw if (sw<1) or (sw>wc) goto ed.m.swp return mons.cnc print \xn$" add cancelled.":goto monsters rd.mons position #1,32,x input #1,cb$\m$\ms,sw ty$=left$(m$,1):m$=mid$(m$,3) return wr.mons zz$=rnd$:ma=random(9) m$=ty$+"."+m$ position #1,32,x print #1,cb$\m$\ms,sw\ma return item0 dy$=dx$+"items":xl$="listitem":sp=0:xc=ic:xn$="ITEMS":open #1,dy$ items gosub edpmt if i$="A" goto nw.item if (i$<>"E") and (i$<>"K") goto items push items gosub getnum:pop if i$="E" goto ed.item kil.item gosub rd.item print \"Kill "xn$" # "x print "Named "it$;:input @0 "? "i$ if i$<>"Y" goto items cb$="*":gosub wr.item:goto items nw.item print \"Searching..." x=1 nw.item2 gosub rd.item if (cb$="") or (cb$="*") goto nw.item3 x=x+1:if x=1000 print \"No room in "xn$" file.":goto items goto nw.item2 nw.item3 print \"Open slot found at #"x:cb$="1":if x<6 then cb$="2" gosub ed.i.nam:if it$="" goto item.cnc gosub ed.i.typ gosub ed.i.val goto item.sav ed.item gosub rd.item if (cb$="") or (cb$="*") push items:goto ed.none ed.item2 print \"Item # "x print \"A: Name : "it$ print "B: Type : "ty$"-"; if ty$="T" print "Treasure"; if ty$="C" print "Cursed Item"; if ty$="B" print "Book"; if ty$="A" print "Armor"; if ty$="S" print "Shield"; if ty$="P" print "Compass"; print \"C: Value : "it\ input @2 "Edit (A-C) - [?=Types]: "i$ ed.item3 if i$="A" gosub ed.i.nam:if it$="" goto ed.item3 if i$="B" gosub ed.i.typ if i$="C" gosub ed.i.val if i$="?" gosub types if i$<>"" goto ed.item2 item.sav if (ty$="B") and (instr("SPELL",it$)) then gosub get.spell if ty$="B" input @0\"Write or Edit book now? "i$:if i$="Y" gosub wr.book input \"[S]ave [R]eturn [A]bort: "i$ if i$="A" goto items if i$="R" goto ed.item2 if i$<>"S" goto item.sav if x>ic then ic=x:xc=x if (ty$="A") and (not instr("ARMOR",it$)) print \"Word 'ARMOR' must appear in name!":goto ed.item2 if (ty$="S") and (not instr("SHIELD",it$)) print \"Word 'SHIELD' must appear in name!":goto ed.item2 gosub wr.item:goto items ed.i.nam print \xn$" name: (20 chrs.): ";:input @2 it$:if len(it$)>20 goto ed.i.nam if x>5 return if (x=1) and (not instr("COMPASS",it$)) print \"Item 1 MUST be a COMPASS.":goto ed.i.nam if x=1 return if (not instr("ARMOR",it$)) and (not instr("SHIELD",it$)) print \' Items 2-5 must be either ARMOR or SHIELD':goto ed.i.nam return ed.i.typ if instr("COMPASS",it$) then ty$="P":return if instr("ARMOR",it$) then ty$="A":return if instr("SHIELD",it$) then ty$="S":return input @0\"Type: "ty$:if ty$="?" gosub types:goto ed.i.typ a=instr(ty$,"PTCBAS"):if (not a) print \"Invalid type":goto ed.i.typ return ed.i.val print \xn$" value (Max. 9): ";:input it:if (it<1) or (it>9) goto ed.i.val return item.cnc print \xn$" add cancelled.":goto items return types print \'Valid Item Types: T = Treasure C = Cursed Item B = Book A = Armor S = Shield P = Compass':return wr.book bk$=dx$+"spur.books":ready bk$ input #msg(x),n$,z edit(0):copy #6,#8 if not edit(2) goto wr.book3 wr.book2 print \"Edit book: "n$;:input @0"? "a$:if a$<>"Y" return wr.book3 print \' You may edit or write your book now, 4k max. Type [ done ] when finished.' wr.book4 edit(1) if edit(2)>3900 print \"Your book is too long, please shorten.":goto wr.book4 if not edit(2) print #8,"[ Un-readable! ]" print \"Saving book..." a=msg(x):kill #msg(x) print #msg(x),it$,sp copy #8,#6 msg(x)=a:update return get.spel print\"Spell # 1-"sc" [L]ist (C/R=No spell): ";:input@2 i$ if i$="" print\"No spell to learn.":return if i$="L" gosub get2:goto get.spel sp=val(i$):if (sp<1) or (sp>sc) print\"No such spell.":goto get.spel gosub get3 return get2 close:xl$="listspel":gosub link.sys xl$="listitem":dy$=dx$+"items":open #1,dy$ return get3 f$=dx$+"spells":open #2,f$ position #2,40,sp input #2,cb$\q$,a$:close #2 if (cb$="") or (cb$="*") print\"No spell defined.":pop:goto get.spel print\"Spell of "q$" selected." return rd.item position #1,30,x input #1,cb$\it$\it ty$=left$(it$,1):it$=mid$(it$,3) return wr.item it$=ty$+"."+it$ position #1,30,x print #1,cb$\it$\it return weapon0 dy$=dx$+"weapons":xl$="listwep":xc=wc:xn$="WEAPONS":open #1,dy$ position #1,34,0 input #1,nw weapons wk=0 gosub edpmt if i$="A" goto nw.wep if (i$<>"E") and (i$<>"K") goto weapons push weapons gosub getnum:pop if i$="E" goto ed.wep kil.wep gosub rd.wep:if cb$="*" print \"No weapon there":goto weapons print \"Kill "xn$" # "x print "Named "w$;:input @0 "? "i$ if i$<>"Y" goto weapons if cb$="2" then nw=nw-1 cb$="*":gosub wr.wep:goto weapons nw.wep print \"Searching...." x=1 nw.wep2 gosub rd.wep if (cb$="") or (cb$="*") goto nw.wep3 x=x+1:if x=1000 print \"No room in "xn$" file.":goto weapons goto nw.wep2 nw.wep3 print \"Open slot found at # "x:if x<=10 then cb$="2":else cb$="1" gosub ed.w.nam:if w$="" goto weap.cnc gosub ed.w.typ gosub ed.w.stb gosub ed.w.dam gosub ed.w.cst if x<=10 then wk=1 goto weap.sav ed.wep gosub rd.wep if (cb$="") or (cb$="*") push weapons:goto ed.none ed.wep2 print \"Weapon # "x print "A: Name : "w$ print "B: Class : ";:if ty$="M" print "Magical":else ty$="S":print "Standard" print "C: Stabilty : "s"0%" print "D: Damage : "d"0%" print "E: Cost : "v" gold"\ input @2\"Edit (A-E): "i$ ed.wep3 if i$="A" gosub ed.w.nam:if w$="" goto ed.wep3 if i$="B" gosub ed.w.typ if i$="C" gosub ed.w.stb if i$="D" gosub ed.w.dam if i$="E" gosub ed.w.cst if i$<>"" goto ed.wep2 weap.sav input \"[S]ave [R]eturn [A]bort: "i$ if i$="A" goto weapons if i$="R" goto ed.wep2 if i$<>"S" goto weap.sav if x>wc then wc=x:xc=x if wk=1 then nw=nw+1 gosub wr.wep:goto weapons ed.w.nam input @2\"Name (18 chrs.): "w$:if len(w$)>18 goto ed.w.nam return ed.w.typ input @0\"Class: "ty$:if ty$="?" gosub w.types:goto ed.w.typ a=instr(ty$,"MSC"):if (not a) print \"Invalid Class":goto ed.w.typ if (ty$="C") and (x<11) print \"Weapons 1-10 can not be Cursed":goto ed.w.typ return ed.w.stb input \"Stability (5-9): "s:if (s<5) or (s>9) goto ed.w.stb return ed.w.dam input \"Damage (3-9): "d:if (d<3) or (d>9) goto ed.w.dam return ed.w.cst input \"Cost (1-9999): "v:if (v<1) or (v>9999) goto ed.w.cst return weap.cnc print \nx$" add cancelled.":goto weapons w.types print \'Valid Weapon Classes: M = Magical S = Standard C = Cursed':return rd.wep position #1,34,x input #1,cb$\w$\s,d,v ty$=left$(w$,1):w$=mid$(w$,3) return wr.wep zz$=rnd$:wa=random(9) w$=ty$+"."+w$ position #1,34,x print #1,cb$\w$\s,d,v\wa return allie0 dy$=dx$+"allies":xl$="listally":xc=ac:xn$="ALLIES":open #1,dy$ allies gosub edpmt if i$="A" goto nw.ally if (i$<>"E") and (i$<>"K") goto allies push allies gosub getnum:pop if i$="E" goto ed.ally kl.ally gosub rd.ally:if cb$="*" print \"No "xn$" found.":goto allies print \"Kill "xn$" # "x print "Named: "x1$;:input @0 "? "i$ if i$<>"Y" goto allies cb$="*":gosub wr.ally:goto allies nw.ally print \"Searching..." x=1 nw.ally2 gosub rd.ally if (cb$="") or (cb$="*") goto nw.ally3 x=x+1:if x=1000 print \"No room in "xn$" file."goto allies goto nw.ally2 nw.ally3 print \"Open slot found at #"x:cb$="1" gosub ed.a.nam:if x1$="" goto ally.cnc gosub ed.a.str gosub ed.a.hit goto ally.sav ed.ally gosub rd.ally if (cb$="") or (cb$="*") push allies:goto ed.none ed.ally2 print \"A: Ally Name : "x1$ print "B: Ally Strength: "x2 print "C: Ally Hit : "x3"0% input @2\"Edit (A-C)? "i$ ed.ally3 if i$="A" gosub ed.a.nam:if x1$="" goto ed.ally3 if i$="B" gosub ed.a.str if i$="C" gosub ed.a.hit if i$<>"" goto ed.ally2 ally.sav input \"[S]ave [A]bort or [R]eturn? "i$ if i$="A" goto allies if i$="R" goto ed.ally2 if i$<>"S" goto ally.sav if x>ac then ac=x:xc=x gosub wr.ally:goto allies ed.a.nam input @2\"New Ally Name (18 chrs.): "x1$:if len(x1$)>18 goto ed.a.nam return ed.a.str input \"Strength (1-20): "x2:if (x2<1) or (x2>20) goto ed.a.str return ed.a.hit input \"Hit % (1-9): "x3:if (x3<1) or (x3>9) goto ed.a.hit return ally.cnc print \xn$" add cancelled.":goto allies rd.ally position #1,26,x input #1,cb$\x1$\x2,x3 return wr.ally position #1,26,x print #1,cb$\x1$\x2,x3 return room0 xl$="room0":gosub link.sys:goto main levels xl$="levels":gosub link.sys:goto main edpmt print \"[ "xn$" ]" input \"[L]ist [E]dit [A]dd [K]ill or [Q]uit: "i$ if i$="L" close:gosub link.sys:i$="L":open #1,dy$ if i$<>"Q" return if xn$="WEAPONS" position #1,34,0:print #1,nw pop:close:return getnum print \xn$;:input @2 " #: "x$:x=val(x$):if x$="" pop:return if (x<1) or (x>xc) print \xn$" from 1 to "xc" only.":pop:return return ed.none print \"# "x" not defined.":return prt.gold a$=str$(g1):gd$="0000":if g1=0 then gd$=" ":a$=" " gd$=right$(" "+a$,5)+right$(gd$+str$(g2),4) return spl.gold gd$=right$("000000000"+gd$,9) g1=val(left$(gd$,5)):g2=val(right$(gd$,4)) return fre.ally dy$=dx$+"allies":open #1,dy$ position #1,26,a print #1,1:return link.sys f$=ds$+"spur.control":link f$,"list" relink return quit pop:dy$=dz$+"spur.logon" dw$=dz$+"spur.shop" if (not cr) link dw$:else link dy$,"login2" linkterm dy$=dz$+"spur.logon":link dy$,"quit3"