Advertisement
Guest User

Untitled

a guest
Jan 21st, 2017
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 27.35 KB | None | 0 0
  1. include base2.cmd
  2. include exp.cmd
  3. #debug 4
  4. put #var rotation 1
  5.  
  6.  
  7. #### VARS ######
  8. #IMPORTANT CHANGES
  9. #ADD BLOCK BUYING
  10. #ADJUST SONG FOR PERFORMANCE
  11. #TRY TO ADD IN OM AGAIN BUT MORE CAREFULLY
  12. #ADD INVENTORY COUNT CONTROL TO SELL BUNDLES WHEN NECESSARY
  13. #ADD CHECK FOR DISEASE TO KEEP FROM IDLING AT EMPATH FOREVER
  14. #AUTOMATICALLY COLLECT DIRT
  15. #things to be changed
  16. # adding OM for attunement and RUE
  17. #increase sorcery protection (grabbing weapons and stowing them if hand burnt off) + go to empath after backlash + #noncombat scripting after magic debuff
  18. #
  19. # add shield of light but make sure that if it is not active, that it puts on shield (targe) (ADDED BUT NEEDS CHECK)
  20. # with EASE included, maybe make it so it always skins for more money
  21. # changed skinning to always skin even if skinning skill is locked. Hope to generate more money
  22. #add timer for empaths to go back to hunting when diseased
  23. #add triggers for backlash to get healed
  24.  
  25.  
  26. ######TRADER ISSUES
  27. ## FIX ROOMNUMBERS
  28. # BLOCKS TO BRAID
  29. # FIX BLOCKS IN GENERAL
  30. # NEW KRONSELL
  31. #ETC.
  32.  
  33. setvariable trainbow 0
  34. setvariable trainslings 0
  35. setvariable crossbowammo bolt
  36. setvariable armorswapping 1
  37. ##swappable weapon variable##
  38. setvariable swappables LE|2HE
  39. setvariable sorceryspell aura sight 10
  40. var Critter ram
  41. var Pelt sheepskin
  42.  
  43.  
  44.  
  45. put #config monstercountignorelist lynx|leopard|panther|owl|shadowling|Shadow Servant|appears dead|(dead)|construct|zombie|priestess
  46. put #var Weapon.SB bola
  47. put #var Weapon.LB throwing hammer
  48. put #var Weapon.2HB bar mace
  49. put #var Weapon.SE scimitar
  50. put #var Weapon.LE bastard sword
  51. put #var Weapon.2HE bastard sword
  52. put #var Weapon.Pole spear
  53. put #var Weapon.Staves nightstick
  54. put #var Weapon.LT bola
  55. put #var Weapon.HT throwing hammer
  56. put #var Weapon.Xbow stonebow
  57. put #var Weapon.Bow longbow
  58. put #var Weapon.Slings sling
  59. put #var Weapon.Brawl scimitar
  60. put #var Weapon.OH scimitar
  61. put #var Weapon.TM bastard sword
  62.  
  63. var block 1
  64. var Lootlist map|scroll|parchment|tablet|ostracon|bark|roll|Silver coin|gold coin
  65. action var Health 0 when You have no significant injuries.|eval $health = 100
  66. action var Health 1 when Get some healing and then try it again.|You are in no condition to do that.|skin rash
  67.  
  68. action put empty left;goto quitter when You try to stuff your
  69. action put quit when eval $health < 25
  70. action var dropped $1;goto quitter when Your (.*)falls to the ground.
  71. action (quitter) goto quitter when eval $health < 55
  72. action (quitter) goto quitter when You are in no condition to do that.
  73. action (quitter) goto quitter when Your (left|right) hand is too injured to do that.
  74. action (quitter) goto quitter when You can't pick that up with your hand that damaged.
  75. action (quit) instant put quit when eval $health < 40
  76. action instant stow $0 when Your (.*) falls to the ground.
  77. action put #script pause when eval $connected = 0
  78.  
  79.  
  80. var stealth.timer 0
  81. var tactics.timer 0
  82. var hunting.timer 0
  83. var appraisal.timer 0
  84.  
  85. timer clear
  86. timer start
  87.  
  88. var attacks 0
  89. action math attacks add 1 when \[Roundtime
  90. var misses 0
  91. action math misses add 1 when dodges|evades
  92. var start.time %t
  93. var start.misses 0
  94. var start.attacks 0
  95.  
  96.  
  97.  
  98.  
  99.  
  100. action (exp) on
  101. gosub action.exp
  102.  
  103.  
  104. var Lock 15
  105. var Unlock 5
  106.  
  107. gosub armoron
  108. #gosub map oshu
  109. #gosub critter
  110.  
  111. #put .feint5
  112. #waitforre END OF FEINT
  113.  
  114. if_1 if %1 > 0 then put #var Rotation %1
  115. goto Rotation
  116.  
  117. #### MAIN LOOP ######
  118.  
  119. Rotation:
  120. gosub clear
  121. if $Rotation > 15 then put #var Rotation 1
  122. if $Rotation > 0 then goto $Rotation
  123. var Exp.count 2
  124. put #var Rotation 1
  125.  
  126.  
  127. 1:
  128. gosub bow Bow
  129. 2:
  130. gosub bow Xbow
  131. 3:
  132. gosub bow Slings
  133. 4:
  134. put #var Rotation 5
  135. goto $Rotation
  136. gosub melee Brawl
  137. 5:
  138. gosub thrown LT
  139. 6:
  140. put #var Rotation 10
  141. goto $Rotation
  142. gosub thrown HT
  143. 7:
  144. put #var Rotation 10
  145. goto $Rotation
  146. gosub melee SE
  147. 8:
  148. #put #var rotation 10
  149. #goto $Rotation
  150. gosub melee SB
  151. 9:
  152. put #var Rotation 10
  153. goto $Rotation
  154. gosub melee LE
  155. 10:
  156. gosub melee LB
  157. 11:
  158. gosub melee 2HE
  159. 12:
  160. gosub melee 2HB
  161. 13:
  162. gosub melee Pole
  163. 14:
  164. gosub melee Staves
  165. 15:
  166. #if %Health = 1 then goto quitter
  167. ECHO END OF SCRIPT
  168. pause 1
  169. echo Ending Exp.count is %Exp.count and Rotation is on $Rotation
  170. gosub Exp.Step
  171. put #var Rotation 0
  172. goto Rotation
  173.  
  174. Exp.Step:
  175. if %Exp.count < $Rotation then return
  176.  
  177. if %Lock < 30 then {
  178. math Lock add 5
  179. math Unlock add 5
  180. }
  181. if %Lock = 30 then {
  182. gosub mech
  183. var Lock 15
  184. var Unlock 5
  185. }
  186. gosub action.exp
  187. return
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194. #### MAIN SUBS #####
  195.  
  196. melee:
  197. math Exp.count add $Exp.$1
  198. put #math Rotation + $Exp.$1
  199. if $Exp.$1 = 1 then return
  200. var Skill $1
  201. ECHO Skill $1
  202. ECHO Exp.count %Exp.count
  203. Echo next.rotation $Rotation
  204. Echo Your $1 is at $Exp.$1
  205.  
  206. put #echo >log Starting %Skill
  207. put #echo >log red Bow $Bow.LearningRate | Xbow $Crossbow.LearningRate | Slings $Slings.LearningRate | Brawl $Brawling.LearningRate | LT $Light_Thrown.LearningRate | HT $Heavy_Thrown.LearningRate | SE $Small_Edged.LearningRate | SB $Small_Blunt.LearningRate | LE $Large_Edged.LearningRate | LB $Large_Blunt.LearningRate | 2HE $Twohanded_Edged.LearningRate | 2HB $Twohanded_Blunt.LearningRate | Pole $Polearms.LearningRate | Staves $Staves.LearningRate | OH $Offhand_Weapon.LearningRate
  208. var hand right
  209. if "$1" = "OH" then var hand left
  210. if matchre("$righthand",("bow|crossbow|stonebow")) then gosub wear $1
  211. if !matchre("$righthand","$Weapon.%Skill|Empty") then gosub sheath right
  212. if matchre("$lefthand","$Weapon.%Skill") then gosub swap
  213. gosub stance parry
  214. var attack feint
  215. if "%Skill" = "Brawl" then var attack gouge
  216. if "%Skill" = "OH" then {
  217. var attack feint left
  218. gosub stance shield
  219. }
  220. gosub wield $Weapon.%Skill
  221. if contains("%swappables","%Skill") then gosub swap.%Skill
  222. gosub sub.skills
  223. #if $Exp.Stealth != 1 then gosub armoroff
  224. gosub armorswap
  225. gosub melee.loop
  226. if %armor = 0 then gosub armoron
  227. gosub sheath $Weapon.%Skill
  228. evalmath finished %t -%start.time
  229. put #echo >log It took you %finished seconds to lock %Skill
  230. var start.time %t
  231.  
  232. evalmath current.misses %misses - %start.misses
  233. evalmath current.attacks %attacks - %start.attacks
  234. put #echo >log You attacked %current.attacks times and missed %current.misses times with your $Weapon.%Skill!
  235. var start.attacks %attacks
  236. var start.misses %misses
  237.  
  238. put #math Rotation + $Exp.%Skill
  239. return
  240.  
  241. armoroff:
  242. if %armorswapping = 0 then return
  243. gosub remove greave
  244. gosub stow greave
  245. var armor 0
  246. return
  247.  
  248. armoron:
  249. if %armorswapping = 0 then return
  250. gosub put2 "get greave" "wear greave" "You attach|You are"
  251. var armor 1
  252. return
  253.  
  254.  
  255. armorswap:
  256. if %armorswapping = 0 then return
  257. if $Exp.Plate$Exp.Brig$Exp.Chain = 111 then return
  258. var wear chain
  259. if $Exp.Chain != 1 then var wear chain
  260. else if $Exp.Plate != 1 then var wear light
  261. else if $Exp.Brig != 1 then var wear scale
  262. if %worn = %wear then return
  263. gosub E.wield Empty
  264. gosub remove greaves
  265. gosub stow greaves
  266. gosub get %wear greaves
  267. gosub wear %wear greaves
  268. var worn %wear
  269. return
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276. melee.loop:
  277. if $Exp.%Skill = 1 then {
  278. echo $1 is at $Exp.$1
  279. echo %Skill is at $Exp.%Skill
  280. return
  281. }
  282. if $monstercount < 1 then gosub idle
  283. gosub combat
  284. gosub attack %attack
  285. if %skin = 1 then gosub search
  286. goto melee.loop
  287.  
  288.  
  289. thrown:
  290. math Exp.count add $Exp.$1
  291. put #math Rotation + $Exp.$1
  292. if $Exp.$1 = 1 then return
  293. var Skill $1
  294. ECHO Skill $1
  295. ECHO Exp.count %Exp.count
  296. Echo next.rotation $Rotation
  297. Echo Your $1 is at $Exp.$1
  298. put #echo >log Starting %Skill
  299. put #echo >log red Bow $Bow.LearningRate | Xbow $Crossbow.LearningRate | Slings $Slings.LearningRate | Brawl $Brawling.LearningRate | LT $Light_Thrown.LearningRate | HT $Heavy_Thrown.LearningRate | SE $Small_Edged.LearningRate | SB $Small_Blunt.LearningRate | LE $Large_Edged.LearningRate | LB $Large_Blunt.LearningRate | 2HE $Twohanded_Edged.LearningRate | 2HB $Twohanded_Blunt.LearningRate | Pole $Polearms.LearningRate | Staves $Staves.LearningRate | OH $Offhand_Weapon.LearningRate
  300. var hand right
  301. if matchre("$righthand",("bow|crossbow|stonebow")) then gosub wear $1
  302. if !matchre("$righthand","$Weapon.%Skill|Empty") then gosub sheath right
  303. gosub wield $Weapon.%Skill
  304. gosub stance shield
  305. gosub armorswap
  306. gosub sub.skills
  307. gosub throw.loop
  308. gosub stow $Weapon.%Skill
  309.  
  310.  
  311. evalmath finished %t -%start.time
  312. put #echo >log It took you %finished seconds to lock %Skill
  313. var start.time %t
  314.  
  315. evalmath current.misses %misses - %start.misses
  316. evalmath current.attacks %attacks - %start.attacks
  317. put #echo >log You attacked %current.attacks times and missed %current.misses times with your $Weapon.%Skill!
  318. var start.attacks %attacks
  319. var start.misses %misses
  320. put #math Rotation + $Exp.%Skill
  321. return
  322.  
  323.  
  324. throw.loop:
  325. if $Exp.%Skill = 1 then {
  326. echo %Skill is at $Exp.%Skill
  327. return
  328. }
  329. if $monstercount < 1 then gosub idle
  330. gosub combat
  331. gosub attack lob
  332. gosub get $Weapon.%Skill
  333. if %skin = 1 then gosub search
  334. goto throw.loop
  335.  
  336. bow:
  337. math Exp.count add $Exp.$1
  338. put #math Rotation + $Exp.$1
  339. if $Exp.$1 = 1 then return
  340. var Skill $1
  341. ECHO Skill $1
  342. ECHO Exp.count %Exp.count
  343. Echo next.rotation $Rotation
  344. Echo Your $1 is at $Exp.$1
  345. put #echo >log Starting %Skill
  346. put #echo >log red Bow $Bow.LearningRate | Xbow $Crossbow.LearningRate | Slings $Slings.LearningRate | Brawl $Brawling.LearningRate | LT $Light_Thrown.LearningRate | HT $Heavy_Thrown.LearningRate | SE $Small_Edged.LearningRate | SB $Small_Blunt.LearningRate | LE $Large_Edged.LearningRate | LB $Large_Blunt.LearningRate | 2HE $Twohanded_Edged.LearningRate | 2HB $Twohanded_Blunt.LearningRate | Pole $Polearms.LearningRate | Staves $Staves.LearningRate | OH $Offhand_Weapon.LearningRate
  347. gosub stance shield
  348. if matchre("$righthand",("bow|crossbow|stonebow")) then gosub wear $1
  349. if !matchre("$righthand","$Weapon.%Skill|Empty") then gosub sheath right
  350. var ammo %crossbowammo
  351. if "%Skill" = "Bow" then var ammo arrow
  352. if "%Skill" = "Slings" then var ammo shard
  353. gosub remove $Weapon.%Skill
  354. gosub sub.skills
  355. if $Exp.Stealth != 1 then gosub armoroff
  356. else gosub armorswap
  357. gosub bow.loop
  358. if %armor = 0 then gosub armoron
  359. gosub wear $Weapon.%Skill
  360.  
  361.  
  362. evalmath finished %t -%start.time
  363. put #echo >log It took you %finished seconds to lock %Skill
  364. var start.time %t
  365.  
  366. evalmath current.misses %misses - %start.misses
  367. evalmath current.attacks %attacks - %start.attacks
  368. put #echo >log You attacked %current.attacks times and missed %current.misses times with your $Weapon.%Skill!
  369. var start.attacks %attacks
  370. var start.misses %misses
  371. put #math Rotation + $Exp.%Skill
  372. return
  373.  
  374. bow.loop:
  375. if $Exp.%Skill = 1 then {
  376. echo %Skill is at $Exp.%Skill
  377. return
  378. }
  379. if $monstercount < 1 then gosub idle
  380. if !contains("$Weapon.%Skill","$righthand") then gosub get $Weapon.%Skill
  381. #gosub Put2 "get my %ammo" "load my $Weapon.%Skill" "^Roundtime|^Your .+ is already loaded"
  382. gosub L.Wield %ammo
  383. gosub load
  384. #gosub aim.bow
  385. if "$righthand" = "Empty" then gosub remove $Weapon.%Skill
  386. gosub Put2 "stow left" "aim" "^You begin to target|^You are already targetting that!|^You shift your|^There is nothing else to face!"
  387. gosub combat
  388. gosub aiming
  389. if $hidden = 1 then gosub attack poach
  390. else gosub attack fire
  391. if %skin = 1 then gosub search
  392. gosub ammo
  393. goto bow.loop
  394.  
  395. aim.bow:
  396. pause .1
  397. match aim.bow Sorry,
  398. match aim.bow ...wait
  399. match return You begin to target
  400. match return You are already
  401. match return There is nothing
  402. match get.bow isn't a ranged
  403. match get.bow You don't have a ranged weapon to aim with!
  404. put stow left
  405. put aim
  406. matchwait
  407.  
  408. get.bow:
  409. gosub stow left
  410. gosub stow right
  411. gosub remove $Weapon.%Skill
  412. if !contains("$Weapon.%Skill","$righthand") then gosub get $Weapon.%Skill
  413. return
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422. ########## CRITTER ##########################
  423.  
  424. Critter:
  425. gosub map 35
  426. if "$roomplayers" != "" then gosub map 34
  427. pause .2
  428. if "$roomplayers" != "" then gosub map 33
  429. pause .2
  430. if "$roomplayers" != "" then gosub map 41
  431. return
  432.  
  433.  
  434. ######### CLIMBING SUB #############################
  435.  
  436. Climb:
  437. gosub Steeds.to.Shard
  438. put .noobclimbshard
  439. waitforre CLIMB DONE
  440. Climb.end:
  441. gosub Shard.to.Steeds
  442. put #math Rotation add 1
  443. return
  444.  
  445.  
  446.  
  447. Shard.to.Steeds:
  448. if $zoneid = 67 then {
  449. if $Time.isDay = 1 then gosub map s gate
  450. else {
  451. gosub map e gate
  452. gosub map s gate
  453. # }
  454. }
  455. if $zoneid = 68 then gosub map 63
  456. if $zoneid = 68 and $roomid = 63 then return
  457. pause .2
  458. ECHO LOOPING CUZ FAILED GETTING TO STEEDS
  459. goto Shard.to.Steeds
  460.  
  461.  
  462. Steeds.to.Shard:
  463. if $zoneid = 68 then {
  464. if $Time.isDay = 1 then gosub map s gate
  465. else gosub e gate
  466. }
  467. if $zoneid = 66 then gosub e gate
  468. if $zoneid = 67 then return
  469. pause .2
  470. ECHO LOOPING CUZ FAILED GETTING TO SHARD
  471. goto Steeds.to.Shard
  472.  
  473. ####### MECH SUB ##############3
  474.  
  475. Mech:
  476. gosub map 5
  477. gosub unload
  478. gosub wear $righthandnoun
  479. gosub stow left
  480. gosub stow right
  481. #put .blocks
  482. #waitforre END OF BLOCKS
  483. #put .grassbraid
  484. #waitforre END OF BRAID
  485. #put .drop lead rope rucksack
  486. #pause 10
  487. #put .drop braid rope rucksack
  488. #pause 15
  489. #put #script pause drop
  490. gosub map 2
  491. gosub Critter
  492. put #math Rotation add 1
  493. goto Rotation
  494.  
  495.  
  496.  
  497.  
  498. ###################################################
  499.  
  500. aiming:
  501. action var aiming 0 when You begin to target
  502. action var aiming 1 when You think you have
  503. timer clear
  504. timer start
  505. if $Exp.Stealth != 1 then goto aim.hide.loop
  506. else goto aim.loop
  507. return
  508.  
  509. aim.hide.loop:
  510. if %t > 15 then return
  511. if %aiming = 1 then return
  512. if $hidden = 1 then pause 1
  513. if $hidden = 0 then {
  514. #gosub retreat
  515. gosub hide
  516. }
  517. pause .2
  518. goto aim.hide.loop
  519.  
  520. aim.loop:
  521. if %aiming = 1 then return
  522. if %t > 15 then return
  523. if $Exp.HT != 1 then goto aim.HT
  524. else if $Exp.LT != 1 then goto aim.LT
  525. else if "%Skill" != "Bow" then gosub aim.OH
  526. else gosub attack weave
  527. pause .2
  528. goto aim.loop
  529.  
  530.  
  531. aim.LT:
  532. gosub L.Wield $Weapon.LT
  533. gosub attack lob left
  534. gosub get $Weapon.LT
  535. gosub attack lob left
  536. gosub stow $Weapon.LT
  537. return
  538.  
  539. aim.HT:
  540. gosub L.Wield $Weapon.HT
  541. gosub attack lob left
  542. gosub get $Weapon.HT
  543. gosub attack lob left
  544. gosub stow $Weapon.HT
  545. pause .2
  546. return
  547.  
  548. aim.OH:
  549. gosub L.Wield $Weapon.LT
  550. gosub attack feint left
  551. gosub attack feint left
  552. gosub sheath left
  553. pause .2
  554. return
  555.  
  556. search:
  557. if !contains("$lefthand","Empty") and "%Skill" != "OH" then gosub stow left
  558. #if $Exp.Skin != 1 then gosub skinning
  559. gosub skinning
  560. if contains("$lefthand|$righthand","%Pelt") then {
  561. if "%Skill" = "Bow" or "%Skill" = "Xbow" then gosub wear $Weapon.%Skill
  562. if "%SKill" = "OH" then gosub sheath $Weapon.%Skill
  563. else gosub sheath $Weapon.%Skill
  564. gosub stow my %Pelt
  565. gosub bundle.tie
  566. }
  567. gosub loot treasure
  568. if "%Skill" = "OH" and "$lefthand" = "Empty" then {
  569. var hand left
  570. gosub wield $Weapon.OH
  571. }
  572. else if !contains("$righthand","$Weapon.%Skill") then {
  573. var hand right
  574. gosub wield $Weapon.%Skill
  575. }
  576. var skin 0
  577. return
  578.  
  579. loot:
  580. var Return loot
  581. match return has already been searched for that!
  582. match return You should probably wait until
  583. match return I could not find
  584. match return You find nothing of interest.
  585. match looting was carrying
  586. match looting You find
  587. put loot $0
  588. goto matchwait
  589.  
  590.  
  591. looting:
  592. gosub gems
  593. loot.cycle:
  594. if matchre("$roomobjs",("map|scroll|parchment|tablet|ostracon|bark|\broll\b|Silver coin|coin")) then gosub stow $0
  595. else return
  596. goto loot.cycle
  597.  
  598. Gems.tie:
  599. put tie pouch
  600. pause .2
  601. if "%Skill" != "OH" then gosub stow left
  602. else gosub stow right
  603.  
  604. Gems:
  605. var Return Gems
  606. matchre return any more room in|^Stow what|^You just can't get|^But that's closed
  607. matchre Gems ^You put your|closing it once more.
  608. matchre New.Pouch too full to fit another gem into.
  609. match gems.tie You've already got a wealth of gems in there! You'd better tie it up before putting more gems inside.
  610. put stow gem
  611. goto matchwait
  612.  
  613.  
  614.  
  615.  
  616. New.Pouch:
  617. gosub sheath $Weapon.%Skill
  618. put empty left;empty right
  619. gosub remove pouch
  620. gosub put pouch in rucksack
  621. gosub get pouch from baldric
  622. gosub wear pouch
  623. put store gem pouch
  624. if "%Skill" = "OH" then var hand left
  625. else var hand right
  626. gosub wield $Weapon.%Skill
  627. goto Gems
  628.  
  629.  
  630.  
  631. Sell.bundle:
  632. var HaveBundle 1
  633. action var HaveBundle 0 when Remove what?
  634. if matchre("$righthand|$lefthand","rope") then gosub stow rope in my rucksack
  635. gosub remove bundle
  636. gosub sell bundle
  637. action remove Remove what?
  638. if %HaveBundle = 0 then return
  639. goto Sell.bundle
  640.  
  641.  
  642. Bundle.tie:
  643. gosub put1 "tie my l bundle" " you tie the bundle, forming it into a much tighter package|Tie what?" "TIE the bundle again."
  644. gosub get rope
  645. if !contains("$righthand|$lefthand","%Pelt") then gosub get %Pelt
  646. gosub put1 "bundle" "You stuff|You bundle"
  647. gosub put2 "pull bundle" "wear bundle" "You sling|You drape|You attach|You put" "You can't"
  648. return
  649.  
  650. ######### COMBAT GOSUBS ############################
  651.  
  652. sub.skills:
  653. gosub tactics
  654. #gosub armorswap
  655. return
  656.  
  657. combat:
  658. gosub appraisal
  659. if %hunting.timer < $gametime then gosub Hunter
  660. return
  661.  
  662. Hunter:
  663. evalmath hunting.timer $gametime + 75
  664. gosub health
  665. #if %Health = 1 then goto Quitter
  666. gosub hunting
  667. gosub flee
  668. return
  669.  
  670. health:
  671. var Health 1
  672. gosub put1 "health" "Your body"
  673. return
  674.  
  675. flee:
  676. if $Exp.Ath = 1 then return
  677. if $monstercount = 0 then return
  678. if %flee.timer > $gametime then return
  679. evalmath flee.timer $gametime +300
  680. gosub put1 "flee out" "You assess|Obvious|Your attempt|You manage"
  681. if $Exp.Hide != 1 then {
  682. gosub remove greave
  683. gosub hide
  684. put unhide
  685. gosub hide
  686. put unhide
  687. gosub hide
  688. gosub wear greave
  689. }
  690. if $Exp.Out != 1 then gosub put2 "kick stems" "collect stem" "Roundtime|You cannot|The room is too|Something seems broken"
  691. return
  692.  
  693. tactics:
  694. if $Exp.Tactics = 1 then return
  695. if %tactics.timer > $gametime then return
  696. evalmath tactics.timer $gametime + 120
  697. gosub put1 "anal" "a massive opening|You must be closer|Analyze what|There is nothing else to face" "weakness|tiny weakness|slight opening|small opening|moderate|good opening|large opening|substantial opening|You fail|great opening|exceptional opening"
  698. return
  699.  
  700. hunting:
  701. if $Perception.LearningRate > 30 then return
  702. gosub hunt
  703. return
  704.  
  705. appraisal:
  706. if %appraisal.timer > $gametime then return
  707. evalmath appraisal.timer $gametime + 60
  708. if $Exp.App = 1 then return
  709. gosub appraise %Critter quick
  710. return
  711. if $monstercount = 2 then gosub appraise second %Critter quick
  712. if $monstercount = 3 then gosub appraise third %Critter quick
  713. if $monstercount = 4 then gosub appraise third %Critter quick
  714. if $monstercount = 5 then gosub appraise third %Critter quick
  715. return
  716.  
  717.  
  718.  
  719.  
  720. armorswap:
  721. if %armorswapping = 0 then return
  722. if $Exp.Plate$Exp.Brig$Exp.Chain = 111 then return
  723. var wear chain
  724. if $Exp.Chain != 1 then var wear chain
  725. else if $Exp.Plate != 1 then var wear light
  726. else if $Exp.Brig != 1 then var wear scale
  727.  
  728. if %worn = %wear then return
  729. if "%Skill" = "OH" then gosub stow right
  730. else gosub stow left
  731. gosub remove greaves
  732. gosub stow greaves
  733. gosub get %wear greaves
  734. gosub wear %wear greaves
  735. var worn %wear
  736. return
  737.  
  738. ##### IDLE SECTION #######
  739.  
  740. idle:
  741. if $monstercount > 0 then return
  742. put dump junk
  743. gosub Blocks
  744. gosub L.Wield Empty
  745. gosub collecting
  746. gosub scholar
  747. gosub stand
  748. goto idle
  749.  
  750. collecting:
  751. if $monstercount > 0 or $Exp.Mech = 1 then return
  752. if contains("$roomobjs","pile") then put kick pile
  753. gosub collect rock
  754. goto collecting
  755.  
  756. scholar:
  757. var comp 0
  758. scholar.1:
  759. if %comp >= 10 then return
  760. if $monstercount > 0 then return
  761. if $Exp.Schol = 1 then return
  762. gosub E.Wield comp
  763. gosub turn comp
  764. gosub study comp
  765. gosub stow comp
  766. math comp add 1
  767. goto scholar.1
  768.  
  769. blocks:
  770. if %block = 0 then return
  771. if $monstercount > 0 or $Exp.Mlore = 1 then {
  772. gosub R.Wield $Weapon.%Skill
  773.  
  774. return
  775. }
  776.  
  777. gosub R.Wield shaper
  778. gosub L.Wield block
  779. if !contains("$righthand|$lefthand","block") then {
  780. var block 0
  781. gosub R.Wield $Weapon.%Skill
  782. return
  783. }
  784. gosub shape.block my onyx block to scorpion
  785. if contains("$righthand|$lefthand","bead") then gosub drop bead
  786. goto blocks
  787.  
  788.  
  789. shape.block:
  790. pause .1
  791. match shape.block ...wait
  792. match shape.block sorry,
  793. match drop.block damaging the block.
  794. match return Roundtime
  795. match return You need to hold the
  796. put shape $0
  797. matchwait
  798.  
  799. drop.block:
  800. gosub drop block
  801. goto blocks
  802.  
  803.  
  804.  
  805.  
  806. if contains("$roomobjs","dead") then gosub loot
  807. gosub ammo
  808. if $monstercount > 0 and "$roomplayers" = "" then return
  809. gosub combat
  810. if $roomid = 321 then var next.room 301
  811. else evalmath next.room $roomid + 1
  812. gosub map %next.room
  813. pause .1
  814. goto idle
  815.  
  816.  
  817. move.1:
  818. gosub map 512
  819. if "$roomplayers" != "" then gosub map 483
  820. if "$roomplayers" != "" then gosub map 480
  821. if "$roomplayers" != "" then gosub map 484
  822. if "$roomplayers" != "" then gosub map 485
  823. if "$roomplayers" != "" then gosub map 481
  824. if "$roomplayers" != "" then {
  825. echo ROOMS FULL
  826. put say may I hunt with you?
  827. }
  828. return
  829.  
  830.  
  831. move.2:
  832. gosub map 459
  833. if "$roomplayers" != "" then gosub map 455
  834. if "$roomplayers" != "" then gosub map 457
  835. if "$roomplayers" != "" then gosub map 458
  836. if "$roomplayers" != "" then gosub map 461
  837. if "$roomplayers" != "" then {
  838. echo ROOMS FULL
  839. put say may I hunt with you?
  840. }
  841. return
  842.  
  843.  
  844. ####### MINOR GOSUBS ######
  845.  
  846.  
  847. swap.LE:
  848. gosub put1 "swap sword" "heavy edged" "two-handed edged"
  849. var learning Large_Edged
  850. return
  851.  
  852. swap.2HE:
  853. gosub put1 "swap sword" "two-handed edged" "heavy edged"
  854. var learning Twohanded_Edged
  855. return
  856.  
  857. swap.LB:
  858. gosub put1 "swap bar mace" "heavy blunt" "two-handed blunt"
  859. var learning Large_Blunt
  860. return
  861.  
  862. swap.2HB:
  863. gosub put1 "swap bar mace" "two-handed blunt" "heavy blunt"
  864. var learning Twohanded_Blunt
  865. return
  866.  
  867. Ammo:
  868. if "$lefthand" != "Empty" then gosub stow left
  869. #if contains("$righthand","crossbow") then gosub wear crossbow
  870. if matchre("$roomobjs",("bolt|shard|fist|\belonated stone\b|arrow")) then gosub stow $0
  871. else return
  872. goto Ammo
  873.  
  874. ######## MAGIC ########
  875.  
  876.  
  877. ###### QUITTER ######
  878. quitter:
  879. action (quitter) off
  880. action put quit when eval $health < 20
  881. put #script abort feint5
  882. gosub stance shield
  883. gosub retreat
  884. gosub stow left
  885. gosub stow right
  886. gosub retreat
  887. gosub get %dropped
  888. put unload
  889. pause
  890. gosub stow left
  891. gosub stow spear
  892. #gosub stow hammer
  893. gosub stow mallet
  894. gosub stow throwing hammer
  895. gosub stow sword
  896. gosub stow nightstick
  897. gosub stow scimitar
  898. gosub sheath right
  899. gosub wear $righthandnoun
  900. gosub ammo
  901. gosub stance shield
  902. gosub stow left
  903. gosub stow right
  904. gosub get bola
  905. gosub stow bola
  906. gosub get throw hammer
  907. gosub stow hammer
  908. gosub Release
  909. gosub Hunt.to.heal
  910. gosub stow left
  911. pause 3
  912. gosub stow left
  913. gosub stow right
  914. put .blackfusell
  915. waitfor END OF KRONSELL
  916. gosub stow left
  917. gosub stow right
  918. action (quitter) on
  919. gosub stand
  920. gosub map 174
  921. gosub critter
  922. put .blackfushamans
  923. gosub map bundle
  924. gosub remove t bundle
  925. gosub put2 "sell t bundle" "stow rope" "You put|Stow what"
  926. gosub remove l bund
  927. gosub get %Pelt from l bund
  928. put sell l bundle
  929. pause
  930. gosub get bundling rope
  931. if !contains("$righthand|$lefthand","%Pelt") then gosub get %Pelt
  932. gosub put1 "bundle" "You stuff|You bundle"
  933. gosub put2 "pull bundle" "wear bundle" "You sling|You drape|You attach|You put" "You can't"
  934. #gosub map e gate
  935. gosub map bank
  936. put .bank
  937. pause 5
  938. #gosub map 256
  939. #gosub buffs
  940. gosub Heal.to.hunt
  941. gosub critter
  942. if "$roomplayers" != "" then gosub map 256
  943. else if "$roomplayers" != "" then gosub map 260
  944. put .vladgerm
  945.  
  946. quitter.loop:
  947. PAUSE 40
  948. ECHO WAITING FOR FURTHER INSTRUCTIONS
  949. goto quitter.loop
  950.  
  951.  
  952.  
  953. gosub put2 "sell l bund" "stow rope" "You put|Stow"
  954. gosub remove t bund
  955. gosub put2 "sell t bund" "stow rope" "You put|Stow
  956.  
  957. Hunt.to.heal:
  958. gosub map 1
  959. if $roomid != 318 then gosub map heal
  960. if $roomid = 318 then return
  961. pause .2
  962. ECHO LOOPING Hunt.to.heal
  963. goto Hunt.to.heal
  964.  
  965. Heal.to.hunt:
  966. gosub map 174
  967. if $roomid != 2 then gosub map 2
  968. if $roomid = 2 then goto critter
  969. pause .2
  970. ECHO LOOPING Heal.to.hunt
  971. goto Heal.to.hunt
  972.  
  973.  
  974. Repair:
  975.  
  976.  
  977.  
  978. CheckRest:
  979. if $MindState > 1 then
  980. {
  981. gosub Dodge
  982. gosub Rest
  983. }
  984. gosub Awaken
  985. return
  986.  
  987. Rest:
  988. var resting TRUE
  989. gosub StopHumming
  990. pause 1
  991. gosub Unhide
  992. gosub Sleep
  993. gosub Release
  994. counter set 0
  995. echo Clearing mind state...
  996. gosub RestWait
  997. return
  998.  
  999. RestWait:
  1000. counter add 1
  1001. gosub CheckSpells
  1002. gosub MonsterCheck
  1003. gosub Sleep
  1004. pause 1
  1005. gosub Retreat
  1006. if %c < 20 then goto RestWait
  1007. gosub CheckMindstate
  1008. if $MindState = 0 then
  1009. {
  1010. var resting FALSE
  1011. return
  1012. }
  1013. counter set 0
  1014. echo Clearing mind state...
  1015. goto RestWait
  1016.  
  1017.  
  1018.  
  1019.  
  1020. ##### BUFF TRIGGERS #####
  1021.  
  1022.  
  1023. action var lastMobTypeAtMelee $1;var lastMobOrdinalAtMelee $2 when (\S+) \((\d+).+melee range\.
  1024. action var lastMobTypeAtPole $1;var lastMobOrdinalAtPole $2 when (\S+) \((\d+).+pole weapon range\.
  1025. action var lastMobTypeAtMissile $1;var lastMobOrdinalAtMissile $2 when (\S+) \((\d+).+missile range\.
  1026. action var lastMobTypeAtMelee NULL;var lastMobOrdinalAtMelee NULL;var lastMobTypeAtPole NULL;var lastMobOrdinalAtPole NULL;var lastMobTypeAtMissile NULL;var lastMobOrdinalAtMissile NULL when ^ You assess your combat situation\.\.\.
  1027.  
  1028.  
  1029. return
  1030.  
  1031.  
  1032. ### EXTRA EXP CRAP ###
  1033.  
  1034.  
  1035. var Unlock1 18
  1036. var Lock1 30
  1037.  
  1038. action (exp) put #var Exp.Staves 0 when eval $Staves.LearningRate < %Unlock1
  1039. action (exp) put #var Exp.Staves 1 when eval $Staves.LearningRate > %Lock1
  1040.  
  1041. action (exp) put #var Exp.Pole 0 when eval $Polearms.LearningRate < %Unlock1
  1042. action (exp) put #var Exp.Pole 1 when eval $Polearms.LearningRate > %Lock1
  1043. action (exp) put #var Exp.SB 0 when eval $Small_Blunt.LearningRate < %Unlock1
  1044. action (exp) put #var Exp.SB 1 when eval $Small_Blunt.LearningRate > %Lock1
  1045. action (exp) put #var Exp.LB 0 when eval $Large_Blunt.LearningRate < %Unlock1
  1046. action (exp) put #var Exp.LB 1 when eval $Large_Blunt.LearningRate > %Lock1
  1047. action (exp) put #var Exp.2HB 0 when eval $Twohanded_Blunt.LearningRate < %Unlock1
  1048. action (exp) put #var Exp.2HB 1 when eval $Twohanded_Blunt.LearningRate > %Lock1
  1049. action (exp) put #var Exp.LE 0 when eval $Large_Edged.LearningRate < %Unlock1
  1050. action (exp) put #var Exp.LE 1 when eval $Large_Edged.LearningRate > %Lock1
  1051. action (exp) put #var Exp.2HE 0 when eval $Twohanded_Edged.LearningRate < %Unlock1
  1052. action (exp) put #var Exp.2HE 1 when eval $Twohanded_Edged.LearningRate > %Lock1
  1053. action (exp) put #var Exp.Brawl 0 when eval $Brawling.LearningRate < %Unlock1
  1054. action (exp) put #var Exp.Brawl 1 when eval $Brawling.LearningRate > %Lock1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement