YASSE Hitbasic (script)

From Elanthipedia
Jump to navigation Jump to search
YASSE Hitbasic (script)
Category combat
Front-end YASSE
Author Hithrael


Description

This is part of the YASSE Combat Package.

Syntax

Run as .scriptname.

At any time (excepting when the script is looting), you can enter into the command prompt "changing weapons", where the script will pause for ten seconds to allow you to change weapons, and then go to the start prompt (selecting what fighting style) where the script will pause until a new style is selected. This will allow setting like the skinning change and amount of arrangement to retain their localized settings.

Lastly, magic variables are local to this script, and should be changed as appropriate.

Updates

Last Updated:

  • 07/29/2011: Revision 2.3a corrected several minor bugs.
  • 07/28/2011: Revision 2.3 provided broader weapons support, removed hanging bugs, and now embeds the skinning script for faster runspeed. Temporarily removed ranged and thrown weapons pending further testing.
  • 04/01/2011: Revision 2.2, cleaned up some errors. Improved magic functions.
Previous note errors still exist, and the first arrange check is having issues but no longer causes a short hang.
  • 03/31/2011: Revision 2.1, improved skinning, added magic support
  • 03/30/2011: Revision 2, improved skinning support, faster flow, better support for shields
NOTE: The script does not play well with weapons of the same shortname (e.g. battle axe versus hand axe) at this time. The script will not hang, but you may find yourself training HE instead of ME if weapons have the same shortname.
NOTE: Thrown weapon support is for non-lodging weapons only at this time.
NOTE: Ranged weapon script will hang if you run out of ammo at this time (generally not a problem if you have at least 10 ammo).
Changes made for better ranged support in the future
  • 03/14/2011: Revision 1.1b, fixed crossbow functionality which caused skinning bug
  • 03/14/2011: Revision 1.1, added basic thrown support. Ranged functionality exists, but poorly.
  • 11/20/2010: Revision 1.0

Script

set predefined on

#Add more messaging
#Search for the above language to find points in the script were more language is needed.
#Needs classes split out for thrusting / etc.

#Changing Weapons or Ending Script
action [changing weapons] goto weaponchange
action [enditnow] goto end

#Initializing variables
setvariable weaponwear no

#Skinning stuff
setvariable skinit yes
setvariable arrangenumber $skinmax$
action [worthless now] setvariable skinittemp no
action [not to damage] counter set $skinmax$

#Action calls
action [There is nothing else to face!] gosub foewait2
action [At what are you trying to] gosub foewait1
action [You aren't close enough to attack] gosub foewait2
action [But you are already dodging!] put parry
action [You are already in a position to parry.] put dodge
action [To whom are you speaking?] goto end
action [What are you trying to throw?] goto thrown2
action [You don't have a weapon to] gosub weaponproblem
action [Wouldn't it be better if you used a melee weapon?] goto rangedcheck
action [You need two hands to wield this weapon! ]gosub clearhand


#Action calls for combat/critter death
#Add more messaging
action [lifeless mound] gosub loot
action [collapses to the ground] gosub loot
action [then grows still] gosub loot
action [grows limp and seems to deflate] gosub loot
action [before collapsing] gosub loot
action [stops all movement] gosub loot
action [body explodes into a gaseous cloud] gosub loot
action [rebellious flame dies out] gosub loot
action [and lies still] gosub loot
action [then lies still] gosub loot
action [then goes limp] gosub loot
action [before taking her last breath] gosub loot
action [ceases all movement] gosub loot
action [breathes its last] gosub loot
action [feeble grunt of defiance] gosub loot

#List of weapons to match
setvariable bluntclass [hammer mallet gavel cosh prod cudgel zubke scepter bludgeon garz gauntlet mace club bulhawf cuska bola hhr'tami komno pin marlingspike k'trinni.shai'tai greathammer chain flail ukabi hara sledgehammer hhr'ata vilks.kodur mattock akabo maul]

setvariable edgedclass [briquet dagget misericorde knife katar sword takouba kasai sunblade pugio poignard stiletto telek falcata koummya oben kythe dao dagger nehlata jambiya kris passabas rapier baselard gladius nambeli sashqa sabre adze curlade parang hanger scimitar shotel cutlass hatchet hand.axe claymore karambit greataxe flamberge greatsword shh'oi'ata kaskara condottiere nehdelata longsword spatha kudalata arzfilt broadsowrd schiavona flachion recada back-sword nimsha namkoba dagasse abassi cinqueda robe.sword]

setvariable pikeclass [spear duraka.skefne fork allarh hunthsleg spear javelin pole.axe fauchard ngalio ilglaiks.skefne ranseur spetum lance pike]

setvariable halberdclass [awgravet ava tzece halberd guisarme bardiche lochaber.axe scythe partisan khuj glaive]

setvariable shortstaffclass [nightstick]

setvariable quarterstaffclass [cane quarter.staff pike.staff staff]

#Local settings 
setvariable spell pd
setvariable mana 15


#Weapons portion
setup:
pause
Boxmessage What weapon are you using?\n Use a "." for multi-word weapons.

getline
pause
setvariable fightingstyle %l
boxmessage Weapon is: $fightingstyle$


setglobalvariable huntingweapon %l

if $huntingweapon$ eq magic
	begin
	setvariable magichunting yes
	setvariable weaponwear no
	save magic
	goto %s
	end

getweapon:
match wieldit you draw
match wearit you're wearing
match wieldit2 already holding
put wield my $huntingweapon$
matchwait 04
goto end2

wieldit2:
match getweapon you slip
match getweapon you sheath
put sheath $huntingweapon$
matchwait 02
put wear my $huntingweapon$
pause
goto getweapon

wearit:
setvariable weaponwear yes
put rem my $huntingweapon$

wieldit:
if $bluntclass$ contains $huntingweapon$
	begin
	save blunt
	goto %s
	end
if $edgedclass$ contains $huntingweapon$
	begin
	save edged
	goto %s
	end
if $quarterstaffclass$ contains $huntingweapon$
	begin
	save quarterstaff
	goto %s
	end
if $shortstaffclass$ contains $huntingweapon$
	begin
	save shortstaff
	goto %s
	end
if $halberdclass$ contains $huntingweapon$
	begin
	save halberd
	goto %s
	end
if $pikeclass$ contains $huntingweapon$
	begin
	save pike
	goto %s
	endboxmessage Fighting with %s style
goto %s


#MAGIC SPELLS
magic:

prep:
match target You trace
match target You are already
put prep $spell$ $mana$
matchwait

target:
match face You are not engaged
match cast You begin to weave
match pausing 
put target
matchwait

cast:
pause 2
match prep You gesture at
match release The secondary spell pattern
put cast
matchwait

face:
pause
match pausing There is nothing else to face!
match prep You turn to face
put face next
matchwait

pausing:
put release
match prep You are already facing
match prep You turn to face
match pausing2 There is nothing else to face!
put face %1
matchwait 20

pausing2:
boxmessage Waiting for something to close to pole range.
pausetext 30 [closes to pole] 
goto prep

release:
put release
goto face


#THROWN WEAPONS
thrown:
pause
put throw
waitfor roundtime

thrown2:
put get $thrownweapon$
pause
goto %s

#RANGED WEAPONS
ranged:
pause
match ranged2 already loaded
put load
matchwait $loadwait$

ranged2:
pause
put aim
waitfor You think you have your best shot possible now.
match ranged you fire
put fire
pause
matchwait 03
goto %s


#BLUNT WEAPONS
blunt:
pause
put feint
waitfor roundtime
pause
put bash
waitfor roundtime
pause
put sweep
waitfor roundtime
pause
put draw
waitfor roundtime
pause
put swing
waitfor roundtime
pause
put dodge
waitfor roundtime
pause
goto %s


#EDGED WEAPONS
lightedged:
pause
put feint
waitfor roundtime
pause
put draw
waitfor roundtime
pause
put slice
waitfor roundtime
pause
put chop
waitfor roundtime
pause
put dodge
waitfor roundtime
pause
goto %s

edged:
pause
put feint
waitfor roundtime
pause
put draw
waitfor roundtime
pause
put sweep
waitfor roundtime
pause
put slice
waitfor roundtime
pause
put chop
waitfor roundtime
pause
put parry
waitfor roundtime
pause
goto %s

thrustedged:
pause
put feint
waitfor roundtime
pause
put lunge
waitfor roundtime
pause
put thrust
waitfor roundtime
pause
put jab
waitfor roundtime
pause
put slam
waitfor roundtime
pause
put parry
waitfor roundtime
pause
goto %s


#POLE WEAPONS
halberd:
pause
put feint
waitfor roundtime
pause
put draw
waitfor roundtime
pause
put slice
waitfor roundtime
pause
put thrust
waitfor roundtime
pause
put sweep
waitfor roundtime
pause
put chop
waitfor roundtime
pause
goto %s

pike:
pause
put dodge
waitfor roundtime
pause
put jab
waitfor roundtime
pause
put sweep
waitfor roundtime
pause
put thrust
waitfor roundtime
pause
put lunge
waitfor roundtime
pause
goto %s


#STAFF WEAPONS
quarterstaff:
pause
put feint
waitfor roundtime
pause
put draw
waitfor roundtime
pause
put swing
waitfor roundtime
pause
put thrust
waitfor roundtime
pause
put sweep
waitfor roundtime
pause
put chop
waitfor roundtime
pause
goto %s

shortstaff:
pause
put feint
waitfor roundtime
pause
put draw
waitfor roundtime
pause
put slice
waitfor roundtime
pause
put parry
waitfor roundtime
pause
put thrust
waitfor roundtime
pause
put chop
waitfor roundtime
pause
goto %s




#Skinning and Looting
loot:
pause
put look
waitfor Obvious paths
counter clear
goto skincheck


skincheck:
if $skinit$ eq no
	goto lootstuffprep
if $skinittemp$ eq no
	begin
	boxmessage Flubbed arranging moving to looting.
	goto lootstuff
	end
if $arrangeit$ eq yes
	goto arrange

arrange:
if %c < $arrangenumber$
	begin
	match lootstuffprep cannot be skinned
	put arrange 
	matchwait 02
	counter inc
	goto arrange
	end
setvariable skinittemp yes
goto skinstuffprep

skinstuffprep:
if $magichunting$ eq yes
	goto skincontinue
if $weaponwear$ eq yes
	put wear my $huntingweapon$
if $weaponwear$ eq no
	put sheath my $huntingweapon$
goto skincontinue

skincontinue:
if %youalsosee contains dead
	begin
	put wield my $skinknife$
	waitfor $skinningknifemessage$
	if %lefthanditem contains $shield$
		begin
		setvariable shieldworn yes
		put wear my $shield$
		end
	if $skinittemp$ eq yes
		begin
		match skinlower twists and slips
		match skinlower destroying the
		match skinlower unfortunate failure
		match skinlower claw wildly
		match skinlower that of mud
		match skinlower struggle with
		match skinlower worthless now
		match skinlower Skin what?
		match skinlower sheer incompetence
		match skinlower just barely
		match skinhigher impressive skill and grace
		match skinhigher working deftly
		match skinhigher nearly flawless
		match skinhigher you slice away
		match skincomplete work hard
		match skincomplete working hard
		match skincomplete blood soaks
		match skincomplete fairly well
		match skincomplete oozing flesh
		put skin
		matchwait 5
		goto skincomplete
		end
	end
goto lootstuff

skinlower: 
if $arrangenumber$ == 0
	setvariable arrangeit no
if $arrangenumber$ > 0
	begin
	counter set $arrangenumber$
	counter dec
	end
goto skincomplete

skinhigher:
if $skinmax$ >= $arrangenumber$
	goto skincomplete
boxmessage Increasing arranges by 1.
counter set $arrangenumber$
counter inc
setvariable $arrangenumber$ %c
goto skincomplete


skincomplete:
put glance
if %c < 0
	counter set 0
goto lootstuff

lootstuff:
pause
if %righthanditem contains knife
	begin
	pause
	put sheath my $skinknife$
	end
if $magichunting$ eq no
	begin
	if $weaponwear$ eq yes
		put remove my $huntingweapon$
	if $weaponwear$ eq no
		put wield my $huntingweapon$
	end
pause
call loot
pause
if $shieldworn$ eq yes
	put rem my $shield$
return

pause
return

foewait1:
pause
pausetext 60 [melee range]
pause
return

foewait2:
pause
pausetext 120 [melee range]
pause
return

clearhand:
put stow left
return

weaponchange:
boxmessage Pausing for 10 seconds to change fighting style. \nThen follow prompt.
pause 10
goto setup

weaponproblem:
glance
pause
boxmessage Something screwed up which hand your weapon is in.
if %lefthanditem contains $huntingweapon$
	begin
	put swap
	goto $fightingstyle$
	end
boxmessage Weapon was not in left hand or check failed. \n Pausing for 10 seconds then attempting to resume script.
pause 10
return

rangedcheck:
if $rangedhunting$ eq yes
	goto ranged
else goto weaponproblem


end:
put parry
pausetext 05 [parry]
exit

end2:
boxmessage Weapon failure