PDA

View Full Version : Favorite lich scripts



Swami71
04-14-2009, 08:00 AM
I use....

Picker (makes my rogue an auto locksmith, modified by Gib)
Sorclooter (picks up loot and phases boxes)
gibxpsf (tracks experience pulses in a window thats always up)
shroud (warns me before i get zapped in a warcamp)
useherb (eats the herbs you need....though lately its been kind of buggy)
and I have 2 sigils scripts both are being buggy now.

Gibreficul
05-22-2009, 07:33 AM
I use....

Picker (makes my rogue an auto locksmith, modified by Gib)
Sorclooter (picks up loot and phases boxes)
gibxpsf (tracks experience pulses in a window thats always up)


Good to know SOMEONE uses my scripts.

That sorclooter is nice, isn't it? :) Next "update" will account for multiple item drops.

Oh, and on topic, my favorite script is definitions2.lic


Gibreficul

USE definition2.lic
FORGE SCRIPT ON THE REPO, AUTOFORGE/FORGEME/COUNTAHA (3 script set)

Cido
05-22-2009, 10:32 AM
is this part of psinet?

Fallen
05-22-2009, 11:05 AM
No, Lich is a separate program which allows users to make and use more complicated scripts than what gemstone/PSInet allows. Far steeper learning curve, but the payoff is access to tools you cannot easily get anywhere else. I believe it allows you to run multiple scripts at once as well.

Dhuul
05-22-2009, 11:12 AM
gotta say Lich seems the best way to go for scripters. You get the interface of Simu's front ends + a great engine for running scripts.

As someone who's used zMUD somewhat successfully, I'd honestly recommend Lich over it. Triggers in zMUD take a while to set up and its hard to modify a bunch of them to work differently when you've already set them. Martaigne's zMUD front end thing looks promising though :)

Swami71
05-22-2009, 11:37 AM
I believe it allows you to run multiple scripts at once as well.

:yeahthat:

Its great for running a script to keep up sigils, cmov, cfocus. Can run multiple scripts and pressing ESC doesn't cancel them. Also I have my cleric keep 215 up with it when I want that extra AS.

Morrff
05-22-2009, 12:26 PM
Lich is ballz, as stated in other thread...I couldn't go back to playing without it.

Looking forward to seeing how the new Psinet scripting engine will effect my choice if at all, or just simply giving me more choices I'll love.

Edit: Oh yeah Must...keep...on...subject...must...pick...favorit e...Lich...script..&&^&*%%^#$^%%(&...error...encountered...cannot...choose...between ...multiple...evils...

Gib's picking scripts though I don't use them they are/were nice to look at, poke, prod and basically RAPE!
K's(modified for non-empathics) Gib(ambushing)

PUREPLUS1, Looting, 920, 218, signs, escort, selling, some I won't mention...Muwhahauahwuah or something.

Gibreficul
05-22-2009, 09:54 PM
is this part of psinet?

Are you a fucking retard or just illiterate? Or maybe you're just a lazy piece of shit who, although you CAN, you DON'T read. Maybe www.google.com is too complex for you to understand and use. :noob:

The creators of Lich and Psinet HATE each other. They're virtual opposites when it comes to the programming logic each contains. Psinet is closed source, Lich is open source. Psinet is limited to the programming of ONE person, Lich is a community of programmers and scripters working together. Psinet is limiting, it does what it does and that's it...and it may do more than you want it to behind the scenes, but it's a closed source so you can't even open it up and check. Psinet is basically training wheels. Lich, in the right hands, is GOD MODE activated. Psinet's creator thinks he can write his own programming language, Lich runs off of a tried and true programming language designed specifically for dealing with text-based information.

Please, do us Lich people all a favor and never install it. I don't want to have to deal with another stupid person using Lich. Stick to the psinet training wheels, it's obviously much more suited for someone of your limited intelligence, intuition and researching abilities.



Gibreficul, fed up with ignorance.

Fallen
05-22-2009, 09:58 PM
Jesus titty-fucking Christ, Gib. Take a chill pill.

Donquix
05-22-2009, 10:35 PM
Are you a fucking retard or just illiterate? Or maybe you're just a lazy piece of shit who, although you CAN, you DON'T read. Maybe www.google.com is too complex for you to understand and use. :noob:

The creators of Lich and Psinet HATE each other. They're virtual opposites when it comes to the programming logic each contains. Psinet is closed source, Lich is open source. Psinet is limited to the programming of ONE person, Lich is a community of programmers and scripters working together. Psinet is limiting, it does what it does and that's it...and it may do more than you want it to behind the scenes, but it's a closed source so you can't even open it up and check. Psinet is basically training wheels. Lich, in the right hands, is GOD MODE activated. Psinet's creator thinks he can write his own programming language, Lich runs off of a tried and true programming language designed specifically for dealing with text-based information.

Please, do us Lich people all a favor and never install it. I don't want to have to deal with another stupid person using Lich. Stick to the psinet training wheels, it's obviously much more suited for someone of your limited intelligence, intuition and researching abilities.



Gibreficul, fed up with ignorance.

that's a bit oversimplified. Psinet wasn't designed (yet) to be a scripting engine. It was a communication tool and it's evolved since then. Comparing them directly is like comparing this website to dreamweaver.

I wish Jamus would open source it, but both approaches have merit. And one thing about psinet is what it does do, i find it does far better than lich.

Will taking the time to make a new language be worth it? I dunno, but it is kind of amusing that you're making fun of Jamus for trying to combine several languages to make a better whole, and claiming just using Ruby is superior...when that is the EXACT process that led to the creation of ruby to begin with :-P

Renian
05-23-2009, 12:38 AM
Actually Lich doesn't have a bunch of programmers working on it, just scripters.

Why?

BECAUSE NO ONE CAN READ THE FUCKING SOURCE.

Shaelun has admitted to this problem, as Lich was something he was using to learn how to code hardcore. So some aspects of it are win code-wise, while others are complete shit.

Also, I think it was more Jamus getting mad about Lich than Shaelun mad about PsiNet...I think there was a fit about Shaelun stealing Jamus' idea or something with Lich's other features like LichNet. He shouldn't be, though--Psinet is far superior for communication anyway.

On the subject of favorite scripts...

Badhorse causes my MA crew to sing the first Bad Horse song from Dr. Horrible to a target on PsiNet. Requires crosscharcom with the fix.


if variable[1] == nil
exit
end

if checkname =~ /Renian/
unique_send_to_script "crosscharcom2", "wall ;badhorse " + variable[1]
end

if checkname =~ /Renian/
fput ",to " + variable[1] + " Bad Horse!"
end
sleep 1
if checkname =~ /Tiad/
fput ",to " + variable[1] + " Bad Horse!"
end
sleep 1
if checkname =~ /Thalish/
fput ",to " + variable[1] + " Bad Horse!"
end
sleep 1
if checkname =~ /Adokas/
fput ",to " + variable[1] + " Bad Horse!"
end
sleep 1
fput ",to " + variable[1] + " He rides across the nation, the throughbred of sin. He got the application that you just sent in!"
sleep 6
fput ",to " + variable[1] + " It needs evaluation, so let the games begin! A heinous crime, a show of force..."
sleep 5
if checkname =~ /Renian/
fput ",to " + variable[1] + " A murder would be nice of course."
end
sleep 2
if checkname =~ /Renian/
fput ",to " + variable[1] + " Bad Horse!"
end
sleep 1
if checkname =~ /Tiad/
fput ",to " + variable[1] + " Bad Horse!"
end
sleep 1
if checkname =~ /Thalish/
fput ",to " + variable[1] + " Bad Horse!"
end
sleep 1
if checkname =~ /Adokas/
fput ",to " + variable[1] + " He's bad!"
end
sleep 1
fput ",to " + variable[1] + " The Evil League of Evil is watching so beware, the grade that you receive will be your last we swear!"
sleep 5
fput ",to " + variable[1] + " So make the Bad Horse gleeful, or he'll make you his mare..."
sleep 5
fput ",to " + variable[1] + " Get sattled up, there's no recourse!"
sleep 2
if checkname =~ /Renian/
fput ",to " + variable[1] + " It's hi-ho Silver!"
end
sleep 1
fput ",to " + variable[1] + " Signed, Bad Horse"


Crosscharcom2 provided.


#!/usr/bin/env ruby
# This is a script I tossed together for a friend to MA with; since one character's Lich scripts share global variables, that's no trouble at all... but multiple instances of Lich for logging in with multiple characters simultaneously are extremely limited. All this does is set up the first character to run the script as the 'server' or 'operator' for all characters who subsequently connect using this script. It automatically senses which it's supposed to be, etc., etc.
# USAGE: All you have to do is run the script on each character you want to be able to communicate with/to/from and it'll do the rest. Once you've got your characters linked together and all running this script, you can send commands to & receive them from any of the characters -- it doesn't need to be a specific one of them.
# Syntax for usage: ;send to crosscharc (target_character) (command to perform). So for example, if I wanted to have Shaelun send 'incant 414' to the game, from any of the chars I had linked up with this script I would type: ;send to crossc shaelun incant 414
# Note: If you want *all* your characters to perform a certain action, enter the target character's name as 'wall' and the command will be sent to every character linked. For example, to have all the chars linked with this script go 'out', you would type: ;send to crossc wall out
# Note 2: If you want a more convenient way to talk to your other chars with this script, just alias ';send to crosscharcom' to be whatever you want.
# If you really want advanced functionality, you can customize it for your needs by filling in the actions in the 'def lookup_crosscharcom_action(message)' block of code. It'll work just as well to make aliases for complicated stuff, but either method will get the job done. Just add your own if/elsif statements that perform whatever action you want to trigger with a 'keyword', and you're set :)


def lookup_crosscharcom_action(message)
if message =~ /^ BAD $/i
echo("Server says the last msg was incorrectly formatted!")
elsif message =~ /^\s*echo\s*/i
echo message.sub(/^\s*echo\s*/i, '')
elsif message =~ /^\s*exec\s*/i
code = message.sub(/^\s*exec\s*/i, '')
begin
eval(code)
rescue SyntaxError
echo $!
rescue
echo $!
end
elsif message =~ /^\s*;/i
message = message.sub( /^\s*;\s*/i, '')
script_args = message.split
script_args = script_args.each { |value| value = "\"#{value}\"" }
script_name = script_args.shift

# Should this be in a begin-rescue block?
start_script script_name, script_args
else
return false
end
return true
end


if script.vars[1]
remote_address = script.vars[1]
force_client = true
puts "NOTICE: you have started the script with a command line argument, and it's being interpreted as the IP address of the remote computer to be connected to. " +
"If your intention is to connect to %s, then simply let the script keep running. " % remote_address +
"If this is NOT your intention, kill this script (by typing `;kill' or `;k') within 5 seconds."
sleep 5
else
remote_address = "localhost"
force_client = false
end


unless $character_name = Char.name
echo("your character name is unknown... autoscanning")
fput 'info'
$character_name = matchfindword("Name: ?")
end


echo("Script only responds if errors are encountered (reduces clutter). No echo? No error")
toggle_echo; toggle_unique; toggle_echo
begin
$crosscharcom_server = TCPServer.new("localhost", 10153)
$crosscharcom_server.setsockopt(Socket::SOL_SOCKET , Socket::SO_REUSEADDR, true)
echo("Successful socket bind, this script is running as server ('hub' for all characters)")
server = true
rescue
unless $crosscharcom_server.nil?
unless $crosscharcom_server.closed?
$crosscharcom_server.close
retry
end
sleep 1
retry
end
echo("Assuming this script is a client, and the server is functioning properly")
server = false
end

before_dying { $crosscharcom_server.close unless ($crosscharcom_server.nil? || $crosscharcom_server.closed?) }

errtimeout = 0
client = { "#{checkname.downcase.strip}" => nil }

if server and not force_client
server_thread = Thread.new {
while true
new = $crosscharcom_server.accept
newname = new.gets.downcase.chomp.strip
if newname.split.length > 1
respond("\r\n*** WARNING: Something has connected to the script, and failed to properly identify itself!\r\n*** Socket info: #{new.peeraddr.join(', ').inspect}\r\n*** Should say: \"AF_INET, (variable), localhost, 127.0.0.1\".\r\n*** It said its char name is:\r\n")
end
client["#{newname}"] = new
new.puts("server")
listener_thread = Thread.new {
port = new
char = newname
while msg = port.gets
tgt = msg.split.first.downcase.chomp.strip
if checkname.strip.downcase =~ /#{tgt}/
action = lookup_crosscharcom_action(msg.sub("#{tgt} ", ""))
if action == false
toggle_echo; toggle_unique; toggle_echo
fput msg.sub("#{tgt} ", "").chomp # Unrecognized action. Treat it as a command typed directly to this char's front-end.
toggle_echo; toggle_unique; toggle_echo
elsif action == true
nil # Do nothing... action was already performed in the 'def' block seen above.
end
elsif tgt == "wall"
client.values.each { |csock|
begin
csock.puts(msg.sub("#{tgt} ", ""))
rescue
echo("error sending to #{tgt}... msg: #{$!}")
csock.close unless csock.closed?
end
}
action = lookup_crosscharcom_action(msg.sub("#{tgt} ", ""))
if action == false
toggle_echo; toggle_unique; toggle_echo
fput msg.sub("#{tgt} ", "").chomp
toggle_echo; toggle_unique; toggle_echo
elsif action == true
nil
end
else
begin
if client["#{tgt}"].nil?
echo("received an improperly formatted string!")
port.puts(" BAD ")
next
end
client["#{tgt}"].puts(msg.sub("#{msg.split.first} ", ""))
rescue
echo("Error sending to #{tgt}... msg: #{$!}")
client["#{tgt}"].close unless client["#{tgt}"].closed?
end
end
end
}
echo("#{newname} linked")
end
}
else
client_thread = Thread.new {
begin
before_dying {
if client['server'] and !client['server'].closed?
begin
client['server'].close
rescue
end
end
}
client["server"] = TCPSocket.open(remote_address, 10153)
rescue
sleep 1
errtimeout += 1
if errtimeout >= 5
echo("fatal error connecting (controller char crash out of the game? firewall settings too strict?): #{$!}")
exit
end
retry
end
client["server"].puts(checkname)
if client["server"].gets.chomp != "server"
respond("\r\n*** Warning: we've connected to something that failed to properly identify itself.\r\n*** Socket info: #{client["server"].peeraddr.join(', ').inspect}\r\n*** Should say \"AF_INET, 10153, localhost, 127.0.0.1\".\r\n")
else
echo("Connected properly with the server character")
end
while msg = client['server'].gets
msg.chomp!
action = lookup_crosscharcom_action(msg)
if action == false
toggle_echo; toggle_unique; toggle_echo
fput msg
toggle_echo; toggle_unique; toggle_echo
else
nil
end
end
}
end

talker_thread = Thread.new {
while true
msg = unique_get
target = msg.split.first.downcase.chomp.strip
if server == true
if client["#{target}"].nil?
if full_target = client.keys.find { |val| val =~ /^#{target}/i }
client["#{full_target}"].puts(msg.sub(/#{full_target} /i, ""))
else
if checkname =~ /^#{target}/i
toggle_echo; toggle_unique; toggle_echo
unless lookup_crosscharcom_action(msg.sub!(/^#{target}/i, '').strip) then fput(msg) end
toggle_echo; toggle_unique; toggle_echo
elsif target == "wall"
client.values.each { |ckey| ckey.puts(msg.sub("#{target} ", '')) }
toggle_echo; toggle_unique; toggle_echo
unless lookup_crosscharcom_action(msg.sub!(/^#{target}/i, '').strip) then fput(msg) end
toggle_echo; toggle_unique; toggle_echo
else
echo("'#{target}' doesn't appear to be linked up!")
end
end
else
client["#{target}"].puts(msg.sub("#{target} ", ''))
end
else
client["server"].puts(msg)
end
end
}

talker_thread.join

Joseph
05-23-2009, 01:02 AM
Please, do us Lich people all a favor and never install it.

Gibreficul, fed up with ignorance.

Please don't take this rude comment as a community voice...

Gibreficul
05-23-2009, 05:05 AM
Will taking the time to make a new language be worth it? I dunno, but it is kind of amusing that you're making fun of Jamus for trying to combine several languages to make a better whole, and claiming just using Ruby is superior...when that is the EXACT process that led to the creation of ruby to begin with :-P

If it's not broke, don't fix it... why re-invent the wheel. I've seen some of the "syntax" that JSE uses, and to tell you the truth, you need a 6 week class to understand half of it, whereas you can google "RUBY TUTORIAL" and you'll get a pretty hefty list of help sites... So, let's rely on ONE man, or let's rely on a COMMUNITY of people. I'd bank on the community coming out on top of the individual, every time, without fail.


And one thing about psinet is what it does do, i find it does far better than lich.

Psinet has a spellup feature, so does Lich. Psinet's spellup is a bit better than Lich, but for selfcast spells, it's pretty much a wash.

Lich had GOTO way before psinet had ATLAS. Goto's map database seems to know WAY more rooms than ATLAS, and is only lacking in the GUI interface with the Tsoran's maps, and a marginal amount of speed.

Psinet organizes your inventory, which is more an inconvenience for Lich users than a feature, and it defaults to ON, which is a pain in the ass. Lich's scripting capabilities make an inventory sorting feature completely unnecessary.

Psinet has an alias feature, as does Lich, and they're virtually identical.

Um, psinet's chat feature is better... but if by better, you mean overrun with assholes who say shit constantly that resemble the tone and maturity of my last post.... then yes... but the option for private channels is nice, I will say, and no, you don't have to be tuned into the OOC channel.

I'm hardpressed to think of ANYTHING that is integral to the game that psinet does HANDS DOWN BETTER than Lich, because there is nothing, and there never will be, and this includes JSE which, from what Brian showed me, is basically stealing all the methods Lich already has, such as instant access to your skills/stats and whatnot, via script commands.

Gibreficul


As for my last post, I'll half appologize. A bit of simple intuition would've answered his question... I mean, there's a reason Lich and Psinet have their own seperate categories. Nuff said, moving on, and I hope I didn't create too many sandy vaginas over it. If I did... well, crawl down off that cross, use the wood to build a bridge and get over it. (That's a Christopher Titus quote, credit where due.)

Drew
05-23-2009, 05:48 AM
I loved ;walk, until it broke. Now I'm too lazy to manually move around the hunting area.

Deathravin
05-23-2009, 05:57 AM
Actually Lich doesn't have a bunch of programmers working on it, just scripters.

Why?

BECAUSE NO ONE CAN READ THE FUCKING SOURCE.

Shaelun has admitted to this problem, as Lich was something he was using to learn how to code hardcore. So some aspects of it are win code-wise, while others are complete shit.

Also, I think it was more Jamus getting mad about Lich than Shaelun mad about PsiNet...I think there was a fit about Shaelun stealing Jamus' idea or something with Lich's other features like LichNet. He shouldn't be, though--Psinet is far superior for communication anyway.

On the subject of favorite scripts...



Erm... Tillmen has rewritten it into 100% ruby. It's easily installable and has self updates that don't require a restart. Also you have complete access to the code and can change it as you wish.

Shaelun is no more. But Tillmen is going strong. He has turned the buggy, iffy Lich 3.57 into a strong, stable, and forward-looking 3.67 (beta).


As for my favorite script... How does one judge their response?
Helpful? then it's this
loop {
wait_while {standing? or webbed? or dead? or stunned?}
waitrt?
fput "stand"
}No script has saved my life more times that little number right there.

Time-Saving? well I'm in Plat, so I'd have to say a script I made called Portal. I use it constantly. I'd say I even use it more than Go2.

Informational? XPSF (or GibXPSF, ya ya ya - I'm not capped, I don't care LOL). I like to know how much XP I've gained today. I can glance up and see that I'm on my xp gift or if I'm on a node.

Life-Saving? Easy script I made called Sign. ;alias sign=;sign Impossible to die from Spirit loss. Impossible to burn out your nerves.

Finger-Saving? Script called Sigils. Keeps the sigils I need on my rogue up whenever there's a weapon in my hand. Signs are w/e, yes the Def & Off & staunching are nice. But Sigils turn my rogue into a killer, and they don't last very long at all... That script keeps me operating at my best for as long as possible without blowing my nerves or muscles.


But my favorite script? Hand's down favorite? Very easy.
Infomon
It lets me do all the awesome things I do with lich.

Donquix
05-23-2009, 01:23 PM
If it's not broke, don't fix it... why re-invent the wheel. I've seen some of the "syntax" that JSE uses, and to tell you the truth, you need a 6 week class to understand half of it, whereas you can google "RUBY TUTORIAL" and you'll get a pretty hefty list of help sites... So, let's rely on ONE man, or let's rely on a COMMUNITY of people. I'd bank on the community coming out on top of the individual, every time, without fail.

Again, if no one reinvented the wheel ruby wouldn't exist. I see your point, I agree in a cautionary sense but I won't pass judgment until I can get my hands on it. I have fairly basic programing experience, having worked with lich a little and thus ruby, decent experience in VB.net, and random other scripting languages, and i have no problems with the syntax i've seen thus far for sagescript. Which is not the same as JSE, by the way.


Psinet has a spellup feature, so does Lich. Psinet's spellup is a bit better than Lich, but for selfcast spells, it's pretty much a wash.

I like psinet's a LOT more, but that's subjective.


Lich had GOTO way before psinet had ATLAS. Goto's map database seems to know WAY more rooms than ATLAS, and is only lacking in the GUI interface with the Tsoran's maps, and a marginal amount of speed.

Any rooms missing from atlas that you use can be easily added thanks to the automapper. Only takes ~5 minutes to map and plot a hunting area.


Psinet organizes your inventory, which is more an inconvenience for Lich users than a feature, and it defaults to ON, which is a pain in the ass. Lich's scripting capabilities make an inventory sorting feature completely unnecessary.

Not everyone will or wants to completely automate every facet of their gaming experience. In their current forms, lich is obviously the more power-scripter friendly option.


Psinet has an alias feature, as does Lich, and they're virtually identical.

It's a pretty simple feature :)


Um, psinet's chat feature is better... but if by better, you mean overrun with assholes who say shit constantly that resemble the tone and maturity of my last post.... then yes... but the option for private channels is nice, I will say, and no, you don't have to be tuned into the OOC channel.

That's quite and exaggeration on the population of psinet chat. Random assholes will be everywhere you go, lichnet isn't overrun with assholes because there's only like 14 of us on there at any given point and 12 of them are probably afk scripting, compared to the 200+ that are on Psinet.

just psinet ignore ariond and it fixes most problems :)


I'm hardpressed to think of ANYTHING that is integral to the game that psinet does HANDS DOWN BETTER than Lich, because there is nothing, and there never will be, and this includes JSE which, from what Brian showed me, is basically stealing all the methods Lich already has, such as instant access to your skills/stats and whatnot, via script commands.

atlas is better. The gui is very helpful and it's way easier to map new areas with it if you need to (which, is set up to have submissions from people that then get integrated to the default)

spellup is better, you just mentioned that actually so you can't be too hard pressed

JSE != what will be sagescript
And that's not really "stealing" the methods from lich. It's just common sense, if you're programming in a power scripting language what else would you do? You can't get a patent for "a steering wheel" for a reason.

There are other things as well. Does lich has a locate feature? Psinet locate is pretty damn handy. The latest version also implemented a friend/foe system will will hook into different features of psinet. There's also the library, which is pretty awesome and getting better. Will be more easily/accurate searchable, and be more wiki like.

And the best feature, RCOY
(any psinet users who don't know about that really need to check out the RCOY in game)


Gibreficul

Your MOM is a gibreficul! SICK BURN!


As for my last post, I'll half appologize. A bit of simple intuition would've answered his question... I mean, there's a reason Lich and Psinet have their own seperate categories. Nuff said, moving on, and I hope I didn't create too many sandy vaginas over it. If I did... well, crawl down off that cross, use the wood to build a bridge and get over it. (That's a Christopher Titus quote, credit where due.)

Eh, shit happens.

Joseph
05-23-2009, 02:20 PM
Does lich has a locate feature? Psinet locate is pretty damn handy.

Yes.. enough said.

Joseph
05-23-2009, 02:33 PM
I think my favorite would definately have to be...




until Settings['trap_status'] == 0 and Settings['lock_status'] == 'unlocked'
if Settings['trap_status'] == 2
disarm(Settings['current_box'])
elsif Settings['trap_status'] == 4 and Settings['lock_status'] != 'unlocked'
detect_box(Settings['current_box'])
elsif Settings['trap_status'] == (0 or 3 or 1) and Settings['lock_status'] != 'unlocked'
measure(Settings['current_box'])
choose_pick(Settings['lock_diff'])
get_pick(Settings['current_pick'])
check_403
pick_box(Settings['current_box'])
elsif Settings['trap_status'] == 1 and Settings['lock_status'] == 'unlocked'
Settings['trap_status'] = 0
locksmither_retrieve_LM(Settings['current_box'])
end
end
if Settings['lock_diff'] > Settings['actual_lock'] + 70 or Settings['lock_diff'] < Settings['actual_lock']
locksmither_calibrate_calipers
end
if Settings['customer'] != 'self'
put "give my #{Settings['current_box']} to #{Settings['customer']}"
end
locksmither_database_update
end

Renian
05-23-2009, 03:38 PM
Erm... Tillmen has rewritten it into 100% ruby. It's easily installable and has self updates that don't require a restart. Also you have complete access to the code and can change it as you wish.

Shaelun is no more. But Tillmen is going strong. He has turned the buggy, iffy Lich 3.57 into a strong, stable, and forward-looking 3.67 (beta).


Do link me. I'm quite impressed he was able to navigate through and understand the source.

Deathravin
05-23-2009, 04:05 PM
Tillmen's Lich.
http://fluffycow.comoj.com/

He's done some work, I think on that site only has 3.59, but he's up to 3.67 which auto-updates when you use 3.59. So to get the most up-to-date, you have to use his and update hehe.



I've always hated the way Psinet spells up. 401 401 401 401 401 406 406 406 406 406...
I MUCH prefer my spellup script on Lich keeps your spells together (401 406 414 etc) and always within 1 cast of 4:10. It immediately recasts if a spell falls, and keeps you spelled up based on how full your mind is... < muddled = 40 minutes (enough for a hunt) and numbed and fried will cast up to 4:10.

It's nice, it works, and I never have to think about it.

Gibreficul
05-23-2009, 05:40 PM
Your MOM is a gibreficul! SICK BURN!


ROFL... That's about as original and mature as.... nevermind, you're a fucking idiot and a waste of space FYI, the locate and skills feature psinet has, Lich has, Oh, and it also has INFO and Health features, among other things, assuming you have the settings for it turned on.

Donquix, how fucking stupid and useless are you? I'd guess on a scale of 1-10, 10 being the most useless piece of shit on the planet, you'd score upwards of 12. I have good reason for believing this... you're commenting on a subject topic you obviously have no experience with. SO, you're ignorantly posting in a lame attempt to make me look bad. I don't need your help, I do it myself, so fuck yourself and then slice your wrists.


Gibreficul

Donquix
05-24-2009, 05:33 AM
LOL. You're very eager to yell incoherently at people when i was clearly fucking with you.

Funny how for something I seem to know nothing about, i have a whole post full of comments you seem very eager to just ignore because you can't wrap your head around the fact that psinet and lich do completely different things right now. Psinet gives you tools to take some of the monotony out of the game, lich is a tool to turn gemstone into Progress quest.

They are both great additions to the gaming experience.

Anger management classes, look into them.

deadly
05-24-2009, 07:13 AM
exactly what is this spellup script you run? i was looking for something to keep me spelled up when spells drop so i dont have to spend 200-300 mana spelling up

Deathravin
05-24-2009, 12:54 PM
#Continually spells yourself up.
#It will spell you back up to within 1 cast of 4 hours if the following conditions are met:
# Your left and right hands are empty
# You are located in a 'safe room'. These are currently set for all the 'enhanced nodes', but you can add any room you wish.
#It will put a spell back on you if you have the mana and it falls below 5 minutes (when it falls off or is disspelled) no matter where you are.
#If you're Numbed, it will spell you back up to 250 minutes
# Becoming Numbed = 120 minutes
# Muddled = 90 minutes
# anything under, just 30 minutes.
# Non-stackables, it will refresh when you are muddled @ less than 15 minutes, or anytime if it's less than 60 seconds remaining

minutesspellupto = 250

if checkname == "Character1" then spellupSpellsStack = [712, 414, 406, 401, 120, 107, 102, 101] end
if checkname == "Character1" then spellupSpellsRenew = [430, 425, 103] end
if checkname == "Character2" then spellupSpellsStack = [712, 414, 406, 401, 120, 112, 107, 102, 101] end
if checkname == "Character2" then spellupSpellsRenew = [430, 425, 103] end

safeRooms = ["[Thrak Inn, Trophy Room]","[Wayside Inn, Garret]","[Land Tower East, Office]","[Helga's, Pub Room]","[Frith's Inn, Main Saloon]","[Town Square Central]","[Town Square, Garden Niche]","[Town Square, Small Park]","[Courtyard]","[Hearthstone, Courtyard]","[Hearthstone, Foyer]","[Ghorsa Isle, Tower]","[Dragonspine and Krodera]","[Adventurers' Rest, Deck]","[Solhaven, North Market]","[Solhaven, Liabo Plaza]","[Solhaven, South Market]","[River's Rest, Town Commons]","[River's Rest, Sanctuary]","[Icemule Trace, Town Center]","[Tavern Burrow, Ale Street]","[Commerce Burrow, Giantman Path]","[Honeybeer Inn, Tap Room]","[Thirsty Penguin, Parlour]","[Clovertooth Hall, Main Lobby]","[Icemule Trace, Ice Garden]","[Zul Logoth, Crystalline Cavern]","[Ta'Illistim, Hanging Gardens]","[Ta'Illistim, Glamesine Var]","[Ta'Illistim, BriarStone Court]","[Shimmarglin Inn, Fountain Room]","[Sylvarraend, Town Commons]","[Ta'Vaalor, Amaranth Court]","[Ta'Vaalor, Garden of Ancients]","[Ta'Vaalor, Victory Court]","[Gardenia Commons]","[Sea Breeze Tavern, Front Porch]","[Abbey Library]"]

loop {
wait_while { webbed? or dead? or stunned? }
spellupSpellsRenew.each { |checkit|
if !checkmind(5) and checkmana(eval(Spell[checkit].cost)) and Spell[checkit].timeleft < 15 and !righthand? and !lefthand? and safeRooms.include?(checkroom) then waitrt? ; fput "incant #{checkit}" ; pause("2.5s") ; end
if checkmana(eval(Spell[checkit].cost)) and Spell[checkit].timeleft < 1 then waitrt? ; fput "incant #{checkit}" ; pause("2.5s") ; end
}
spellupSpellsStack.each { |checkit|
if checkmind(6) and checkmana(eval(Spell[checkit].cost)) and Spell[checkit].timeleft < (minutesspellupto - eval(Spell[checkit].duration)) and !righthand? and !lefthand? and safeRooms.include?(checkroom) then waitrt? ; fput "incant #{checkit}" ; pause("2.5s")
elsif checkmind(5) and checkmana(eval(Spell[checkit].cost)) and Spell[checkit].timeleft < 120 and !righthand? and !lefthand? and safeRooms.include?(checkroom) then waitrt? ; fput "incant #{checkit}" ; pause("2.5s")
elsif checkmind(4) and checkmana(eval(Spell[checkit].cost)) and Spell[checkit].timeleft < 90 and !righthand? and !lefthand? and safeRooms.include?(checkroom) then waitrt? ; fput "incant #{checkit}" ; pause("2.5s")
elsif checkmind(3) and checkmana(eval(Spell[checkit].cost)) and Spell[checkit].timeleft < 30 and !righthand? and !lefthand? and safeRooms.include?(checkroom) then waitrt? ; fput "incant #{checkit}" ; pause("2.5s")
elsif checkmana(eval(Spell[checkit].cost)) and Spell[checkit].timeleft < 5 then waitrt? ; fput "incant #{checkit}" ; pause("2.5s") ; end
}
pause("1s")
}

That's the one I wrote. Really easy to use, most of the info is in the comments. Just replace "Character1" with whatever character's name you have and put in the spells that stack and the spells that don't stack.

Gibreficul
05-24-2009, 07:39 PM
exactly what is this spellup script you run? i was looking for something to keep me spelled up when spells drop so i dont have to spend 200-300 mana spelling up

Well, I have two seperate spellup scripts I use. One keeps them up, another I use to refresh/stack an extra cast. Mind you, the first of these scripts listed requires my "definitions2.lic" script, found on the repository.

Anywho, here's the constantly running script. Mind you, these are easily modified for any profession. I'm dropping the one I use for my wizards.


$minstacked = 15.0
loop{
wait_while{muckled?}
wait_until{checkmana(30)}
spell_401 if Spell[401].timeleft < $minstacked
spell_406 if Spell[406].timeleft < $minstacked
spell_503 if Spell[503].timeleft < $minstacked
spell_513 if Spell[513].timeleft < $minstacked
spell_913 if Spell[913].timeleft < $minstacked
spell_911 if Spell[911].timeleft < $minstacked
spell_507 if Spell[507].timeleft < $minstacked
spell_508 if Spell[508].timeleft < $minstacked
spell_509 if Spell[509].timeleft < $minstacked
spell_905 if Spell[905].timeleft < $minstacked
spell_425 if Spell[425].timeleft < 1
spell_430 if Spell[430].timeleft < 1
spell_520 if Spell[520].timeleft < 1
unpause_script("trigrouop")
wait_while{checkspell(401,406,503,507,905,513,911, 913,508,509,425,430,520)}
echo "SPELLS MELTED"
}


And I use THIS script while I'm resting with mana to stack spells for the hell of it.


spellarray = [513,913,507,503,905,508,509,401,406]
$refresh = []
#the following variable will skip spells whose duraion is greater than its value, in minutes
nocasttime = 60
spellarray.each{ |thing|
if (Spell[thing].timeleft).to_i >= nocasttime
else
if (eval Spell[thing].duration).to_i < 10
2.times{$checkmana += (eval Spell[thing].cost)
$refresh.push(thing)}
else
$checkmana += (eval Spell[thing].cost)
$refresh.push(thing)
end
end}
if $checkmana > checkmana
echo "Probably not a wise idea"
echo "you need #{$checkmana - checkmana} more mana to refresh your spells."
else
#the following line pauses the constantly running script that keeps spells up
pause_script("kspells")
waitrt?
$refresh.each{ |spell|
fput "incant #{spell}"
sleep 1;waitrt?}
unpause_script("kspells")
end
echo "SPELLUP REFRESH DONE"


Have fun with them... modify them for whatever profession you have... it shouldn't be too difficult. I even simplified these from my versions....

My version of the first script has lines that look like this....

(($stacktime - Spell[401].timeleft) / (eval Spell[401].duration)).round.times{spell_401} if Spell[401].timeleft < $minstacked

... and have an extra variable... $stacktime, which is just that. I keep it low, like 60 minutes. That's why the variable in the second script is 60...

And Donquix, I am WELL aware that Lich and Psinet are not the same things. Lich is better, for my purposes, but most people do not have the programming and logical thinking skills necessary to make use of Lich, so they use Psinet. I'm fine with that. All the work is done for you for a lot of things, yet it lacks many other things that once you have, are very hard to deal without. If Lich is lacking something, it can be written and added. If Psinet is missing something, it's missing something, and you just deal with it.

And when it comes toward direct shots at me, Dickbreath :stfu:

and

:troll:

Gibreficul

tokeinc
05-24-2009, 07:59 PM
Jesus titty-fucking Christ, Gib. Take a chill pill.

He missed this one, apparently. Go get some fresh air. Seriously.

Smythe
05-24-2009, 09:39 PM
What ya yutzes fails to understand is Gibbers gives what he gets... reflectin' back the same shit as passed along. So if ya nutsacks'r thinkin' he needs a breath of fresh air, well, jes' remember its from ya that he gets his schtick.

He's pretty good peeps otherwise.

- Smythe

Danical
05-25-2009, 04:17 AM
What ya yutzes fails to understand is Gibbers gives what he gets... reflectin' back the same shit as passed along. So if ya nutsacks'r thinkin' he needs a breath of fresh air, well, jes' remember its from ya that he gets his schtick.

He's pretty good peeps otherwise.

- Smythe

Please tell me you talk like this publicly.

Donquix
05-25-2009, 04:26 AM
Please tell me you talk like this publicly.

Boats and hoes.

tokeinc
05-25-2009, 07:50 AM
Please tell me you talk like this publicly.

Man, I was thinking the EXACT same thing.

On the double, Reggie! Steer the chariot towards yon McDonald's. I'r hungry for a snack'ums.

Gibreficul
05-25-2009, 05:24 PM
Didth thou not seeith thy lantern that lighteth my buggy?


Gibreficul

tokeinc
05-25-2009, 07:21 PM
Didth thou not seeith thy lantern that lighteth my buggy?


Gibreficul

Well played. Well played.

Smythe
05-25-2009, 10:08 PM
Please tell me you talk like this publicly.

Yah, mos'times.

Lettin' peeps know they'se nutsacks, tho, is hard on'em.

Damn pretzes.

- Smythe

tokeinc
05-25-2009, 11:03 PM
I could've sworn RP was down the hall...

Donquix
05-25-2009, 11:17 PM
I could've sworn RP was down the hall...

RP SERVER THAT WAY ------->

...wait, this is gemstone. Fuck.

Smythe
05-25-2009, 11:21 PM
Woulda t'ougt they grew 'em smarter'n dat, in Bedford, ya yutz.

Anyone what thinks can RP in forums shoulda' oughta just said they'se from Dallas. Save'n us all time thinkin' ya might have somethin' worth readin'.

- Smythe

tokeinc
05-25-2009, 11:43 PM
?

That's really all I can come up with for that. It's like a horrible reincarnation of Boomsplat. At least he was original.

That, and the fact that you obviously have never seen a vagina other than your mothers. That is all.

I will now :troll:

tokeinc
05-25-2009, 11:45 PM
RP SERVER THAT WAY ------->

...wait, this is gemstone. Fuck.

THIS is a message board. Some people clearly seem to have difficulty drawing the line.

Smythe
05-26-2009, 12:59 AM
Yep, yer definite from Dallas.

Friggin' nutsack. Happen to like Boomer, ain' gonna try to be like him. But then, if ya think this is like him, yer a putz.

Go teabag it somewhere else, ya perg.

- Smythe

Dhuul
05-26-2009, 04:23 AM
mix in the yiddish for extra flair, muy bueno.

tokeinc
05-26-2009, 08:36 AM
Yep, yer definite from Dallas.

Friggin' nutsack. Happen to like Boomer, ain' gonna try to be like him. But then, if ya think this is like him, yer a putz.

Go teabag it somewhere else, ya perg.

- Smythe

Okay, I said I was done. But seriously, do you have a split personality or are you just a total douchebag? Half of your posts here have been somewhat coherent and void of your "i can RPz hahahahaz" speak - the other half are just... fucking pathetic, for lack of a better way to phrase it.

Just curious, but where did the line of "attack" on Dallas come from? Left field? Your stretched and bleeding asshole? It really isn't standing up too well. Damn our stable economy and significantly lower than average unemployment rate. Fuck Dallas. (Sorry you live under a bridge in Detroit, Smythe. That's what you get for spending too much time away from work at the local LARP events.)

P.S. Maybe'ums its'ums not'ums the'ums same'ums as Boom'ums. Go fuck yourself. Its equally as obnoxious to read.

Gibreficul
05-26-2009, 05:07 PM
I'm pretty sure I have a split personality. The "evil" me is named "Joey"


This post brought to you by the combined efforts of Gibreficul and Joey

Cido
05-27-2009, 04:22 PM
Are you a fucking retard or just illiterate? Or maybe you're just a lazy piece of shit who, although you CAN, you DON'T read. Maybe www.google.com is too complex for you to understand and use. :noob:

The creators of Lich and Psinet HATE each other. They're virtual opposites when it comes to the programming logic each contains. Psinet is closed source, Lich is open source. Psinet is limited to the programming of ONE person, Lich is a community of programmers and scripters working together. Psinet is limiting, it does what it does and that's it...and it may do more than you want it to behind the scenes, but it's a closed source so you can't even open it up and check. Psinet is basically training wheels. Lich, in the right hands, is GOD MODE activated. Psinet's creator thinks he can write his own programming language, Lich runs off of a tried and true programming language designed specifically for dealing with text-based information.

Please, do us Lich people all a favor and never install it. I don't want to have to deal with another stupid person using Lich. Stick to the psinet training wheels, it's obviously much more suited for someone of your limited intelligence, intuition and researching abilities.



Gibreficul, fed up with ignorance.


lol. I was wondering why you messaged me about this. I didn't realize you had posted this.

I deserved all of it though, so gg.

I don't know what came over me really. I'm usually the last person to jump on a forum and ask stupid questions.

Danical
05-27-2009, 04:37 PM
So, anyway, back on topic . . . I threw this Teras Self Healer together a little while ago. It can't heal nerves because nerves are totally fucked. If you look at the XML that's parsed out, you'll see why. I'll update this when I can but it would be easy to add functionality to any town via room hash.



=begin
Auto Teras Herb Healer v1.01
This is a little script I threw together for Bard FunFisters in need of Teras herb consumption.
You'll need to the alchemist room via PsiNet atlas if you haven't already.
=end

herbs = {
'minorwounds' => {
'head' => [ 'rose-marrow potion', 'semak\'s ale', '7' ],
'neck' => [ 'rose-marrow potion', 'semak\'s ale', '7' ],
'back' => [ 'basal moss', 'mama ale', '9' ],
'abs' => [ 'basal moss', 'mama ale', '9' ],
'chest' => [ 'basal moss', 'mama ale', '9' ],
'leye' => [ 'basal moss', 'mama ale', '9' ],
'reye' => [ 'basal moss', 'mama ale', '9' ],
'rarm' => [ 'ambrominas leaf', 'lost ale', '3' ],
'rhand' => [ 'ambrominas leaf', 'lost ale', '3' ],
'rleg' => [ 'ambrominas leaf', 'lost ale', '3' ],
'larm' => [ 'ambrominas leaf', 'lost ale', '3' ],
'lhand' => [ 'ambrominas leaf', 'lost ale', '3' ],
'lleg' => [ 'ambrominas leaf', 'lost ale', '3' ],
'nerves' => [ 'wolifrew lichen', 'orc\'s ale', '5' ]
},
'majorwounds' => {
'head' => [ 'aloeas stem', 'dark ale', '17' ],
'neck' => [ 'aloeas stem', 'dark ale', '17' ],
'back' => [ 'pothinir grass', 'aged ale', '19' ],
'abs' => [ 'pothinir grass', 'aged ale', '19' ],
'chest' => [ 'pothinir grass', 'aged ale', '19' ],
'reye' => [ 'pothinir grass', 'aged ale', '19' ],
'leye' => [ 'pothinir grass', 'aged ale', '19' ],
'rarm' => [ 'ephlox moss', 'golden ale', '13' ],
'rhand' => [ 'ephlox moss', 'golden ale', '13' ],
'rleg' => [ 'ephlox moss', 'golden ale', '13' ],
'larm' => [ 'ephlox moss', 'golden ale', '13' ],
'lhand' => [ 'ephlox moss', 'golden ale', '13' ],
'lleg' => [ 'ephlox moss', 'golden ale', '13' ],
'nerves' => [ 'bolmara potion', 'kenar\'s ale', '15' ]
},
'minorscars' => {
'head' => [ 'haphip root', 'agrak\'s ale', '25' ],
'neck' => [ 'haphip root', 'agrak\'s ale', '25' ],
'back' => [ 'talneo potion', 'gert\'s ale', '27' ],
'abs' => [ 'talneo potion', 'gert\'s ale', '27' ],
'chest' => [ 'talneo potion', 'gert\'s ale', '27' ],
'reye' => [ 'talneo potion', 'gert\'s ale', '27' ],
'leye' => [ 'talneo potion', 'gert\'s ale', '27' ],
'rarm' => [ 'cactacae spine', 'bearded ale', '21' ],
'rhand' => [ 'cactacae spine', 'bearded ale', '21' ],
'rleg' => [ 'cactacae spine', 'bearded ale', '21' ],
'larm' => [ 'cactacae spine', 'bearded ale', '21' ],
'lhand' => [ 'cactacae spine', 'bearded ale', '21' ],
'lleg' => [ 'cactacae spine', 'bearded ale', '21' ],
'nerves' => [ 'torban leaf', 'miner\'s ale', '23' ]
},
'majorscars' => {
'head' => [ 'brostheras potion', 'reaper\'s ale', '33' ],
'neck' => [ 'brostheras potion', 'reaper\'s ale', '33' ],
'back' => [ 'wingstem potion', 'wort\'s ale', '35' ],
'abs' => [ 'wingstem potion', 'wort\'s ale', '35' ],
'chest' => [ 'wingstem potion', 'wort\'s ale', '35' ],
'reye' => [ 'wingstem potion', 'wort\'s ale', '35' ],
'leye' => [ 'wingstem potion', 'wort\'s ale', '35' ],
'rarm' => [ 'calamia fruit', 'mad ale', '29' ],
'rhand' => [ 'calamia fruit', 'mad ale', '29' ],
'rleg' => [ 'calamia fruit', 'mad ale', '29' ],
'larm' => [ 'calamia fruit', 'mad ale', '29' ],
'lhand' => [ 'calamia fruit', 'mad ale', '29' ],
'lleg' => [ 'calamia fruit', 'mad ale', '29' ],
'nerves' => [ 'woth flower', 'draco\'s ale', '31' ]
},
'missing' => {
'reye' => [ 'cur-clover potion', 'Volcano vision ale', '37' ],
'leye' => [ 'cur-clover potion', 'Volcano vision ale', '37' ],
'rarm' => [ 'sovyn clove', 'Capt ale', '39' ],
'rhand' => [ 'sovyn clove', 'Capt ale', '39' ],
'rleg' => [ 'sovyn clove', 'Capt ale', '39' ],
'larm' => [ 'sovyn clove', 'Capt ale', '39' ],
'lhand' => [ 'sovyn clove', 'Capt ale', '39' ],
'lleg' => [ 'sovyn clove', 'Capt ale', '39' ]
}
}

def nomnom(herb)
fput "put #{checkright} on bench" if checkright !~ /#{herb.split.last}/ && checkright
fput "get #{herb}" if herb =~ /tincture|potion|ale/ && checkright !~ /#{herb.split.last}/
herb =~ /tincture|potion|ale/ ? fput "drink my #{herb}" : fput "eat #{herb}"
waitrt?
line = waitfor("You (remove|manage|take)", "not find", "were you referring", "Get what")
return $times += 1 if line =~ /not find|were you referring|Get what/
end

def purchase(herb)
fput "goto 10777"
waitfor("Reached destination")
fput "withdrawl 2000 silver"
fput "goto 10872"
waitfor("Reached destination")
fput "order #{herb}"
fput "buy"
fput "goto 10777"
waitfor("Reached destination")
fput "depo all"
fput "goto 1840"
waitfor("Reached destination")
$times -= 1
end

unless checkroom("Dragonspine and Krodera")
fput "stand" if checksitting
fput "goto 1840"
waitfor("Reached destination")
end

unless Spell[9713].active?
fput "sigil of mending"
end
unless Spell[1035].active?
fput "incant 1035"
end

for area in %w[head neck back abs chest reye leye rarm rhand rleg larm lhand lleg]
herb = [] ; $times = 0
while Wounds.send(area) >= 2
until Wounds.send(area) == 1 || herbs['majorwounds'][area][$times] =~ /\d+/
herb = herbs['majorwounds'][area][$times]
nomnom(herb)
end
fput "put #{checkright} on bench" if checkright
if Wounds.send(area) >= 2 && herbs['majorwounds'][area][$times] =~ /\d+/
herb = herbs['majorwounds'][area][$times]
purchase(herb)
next
end
end
$times = 0
while Wounds.send(area) == 1 && Scars.send(area) == 0
until Scars.send(area) >= 1 || herbs['minorwounds'][area][$times] =~ /\d+/
herb = herbs['minorwounds'][area][$times]
nomnom(herb)
end
fput "put #{checkright} on bench" if checkright
if Wounds.send(area) == 1 && Scars.send(area) == 0 && herbs['minorwounds'][area][$times] =~ /\d+/
herb = herbs['minorwounds'][area][$times]
purchase(herb)
next
end
end
$times = 0
while Scars.send(area) == 3 && area =~ /arm|leg|hand/
until Scars.send(area) < 3 || herbs['missing']['rarm'][$times] =~ /\d+/
herb = herbs['missing']['rarm'][$times]
nomnom(herb)
end
checkright if fput "put #{checkright} on bench"
if Scars.send(area) == 3 && area =~ /arm|leg|hand/ && herbs['missing']['rarm'][$times] =~ /\d+/
herb = herbs['missing']['rarm'][$times]
purchase(herb)
next
end
end
$times = 0
while Scars.send(area) == 3 && area =~ /eye/
until Scars.send(area) < 3 || herbs['missing']['reye'][$times] =~ /\d+/
herb = herbs['missing']['reye'][$times]
nomnom(herb)
end
checkright if fput "put #{checkright} on bench"
if Scars.send(area) == 3 && area =~ /eye/ && herbs['missing']['reye'][$times] =~ /\d+/
herb = herbs['missing']['reye'][$times]
purchase(herb)
next
end
end
$times = 0
while Scars.send(area) >= 2
until Scars.send(area) == 1 || herbs['majorscars'][area][$times] =~ /\d+/
herb = herbs['majorscars'][area][$times]
nomnom(herb)
end
checkright if fput "put #{checkright} on bench"
if Scars.send(area) >= 2 && herbs['majorscars'][area][$times] =~ /\d+/
herb = herbs['majorscars'][area][$times]
purchase(herb)
next
end
end
$times = 0
while Scars.send(area) == 1
until Scars.send(area) == 0 || herbs['minorscars'][area][$times] =~ /\d+/
herb = herbs['minorscars'][area][$times]
nomnom(herb)
end
checkright if fput "put #{checkright} on bench"
if Scars.send(area) == 1 && herbs['minorscars'][area][$times] =~ /\d+/
herb = herbs['minorscars'][area][$times]
purchase(herb)
next
end
end
end

unless checkroom("Adventurers")
put "goto 10766"
waitfor("Reached destination")
end

Gibreficul
05-27-2009, 06:03 PM
Check out...

;repo download kblood

You'll love me for it later.


Gibreficul

Danical
05-27-2009, 06:09 PM
How, exactly, will that help me?

The Nsys that's parsed out doesn't show a scar or wound attached to it in the Injuries XML. Unless something has been changed in the last 30 days or so.

That is to say, your script circumvents the entire problem with Nsys because you already know it's going to be a scar from troll's blood wound removal.

Gibreficul
05-27-2009, 08:16 PM
I only half looked at your script/post, and figured I'd offer up what I had done that may or may not be of help. Apparently it was not.

The problem you're having is with nerves, correct? Well, you can't just get a scar... meaning, if there's nerves showing up in the XML, you can ASSUME, since you're not an empath, that it's an injury, and account for it and work around that. That's what I'd do at least.


Gibreficul

Danical
05-27-2009, 08:25 PM
As I stated, I already know.

However, the intricacies of Lich 3.56 XML Wound/Scar.Nsys make this far more difficult than you suggest. I've since fixed it but Tillmen has informed 3.65 accounts for this with a few caveats.

BigWorm
05-30-2009, 04:29 AM
As I stated, I already know.

However, the intricacies of Lich 3.56 XML Wound/Scar.Nsys make this far more difficult than you suggest. I've since fixed it but Tillmen has informed 3.65 accounts for this with a few caveats.

But how does Stormfront manage to display nerve damage correctly?

Gibreficul
06-05-2009, 07:28 PM
But how does Stormfront manage to display nerve damage correctly?

A rank 1 nerve scar and a rank 1 nerve injury are pushed to the game with identical xml. Same for rank 2/3 nerve/injuries.

Gibreficul