PDA

View Full Version : ;alvis [Creatures & Rooms]



m444w
10-16-2014, 11:59 PM
***THIS SCRIPT REQUIRES YOU TO HAVE RUBY 2.0 AND THE NEWEST VERSION OF LICH TO USE***

Since Tillmen's wonderful decision to officially support Ruby 2.0, my juices have been churning with a way to finally tie Creatures to specific Room ID's.

It seems the best way to do this that I've come up with is to have a script that watches (in the background) for each time you see a creature in a specific room and then marks it as being able to exist there.

I wrote a publicly available API that manages this ability to add the relationship to Creatures and Rooms tonight, and I was hoping to get some help with the adding (because all my work isn't going to be nearly as useful as 10 other people helping).

For right now it requires registration into the system and you to get a secret API key to use with the ;alvis script so I can track errors and what not that might arise.

Donquix
10-17-2014, 12:13 AM
Cool idea. Are you just collecting what's been seen where to then export and reuse as a script / narost / go2 datasource or are you planning to access the api directly for what you use the data for? If the latter i'd be cool to filter based on thresholds like number of times seen, or percent seen, etc. to avoid random data points from things that wandered further than normal, invasions, etc.

overall pretty awesome though, wish i was playing and could contribute :D

m444w
10-17-2014, 12:32 AM
Mostly for export for reuse for scripts/narost/go2 via the API.

So you'd be able to call something like:

Alvis.rooms.location(Bounty.location).creature('le sser orc')

and it would give you a list of rooms that you could wander for the specific creature you're looking for.

The filtering and threshold based queries would be a little more complicated to model because it would require a much larger dataset than a single "seen" point. However all creatures are passed through a sanity check, so that you aren't tagging invasion creatures and the like.

m444w
12-13-2014, 02:08 PM
For those people who are interested in this project here is an update:

Out of 457 common creatures 214 have been indexed in some capacity by all of those (much appreciated) people helping.

Keep up the good work!

For those of you who are interested in which ones have yet to be indexed here is the list:



/* 0 */
{
"0" : "black rolton",
"1" : "black-winged daggerbeak",
"2" : "fanged rodent",
"3" : "fire ant",
"4" : "kobold",
"5" : "mountain rolton",
"6" : "rolton",
"7" : "spotted gnarp",
"8" : "young grass snake",
"9" : "zombie rolton",
"10" : "big ugly kobold",
"11" : "brown gak",
"12" : "fanged goblin",
"13" : "Mistydeep siren",
"14" : "moaning phantom",
"15" : "Bresnahanini rolton",
"16" : "fire salamander",
"17" : "greater ice spider",
"18" : "ice skeleton",
"19" : "mountain snowcat",
"20" : "spotted velnalin",
"21" : "striped relnak",
"22" : "velnalin",
"23" : "black urgh",
"24" : "fanged viper",
"25" : "mongrel kobold",
"26" : "urgh",
"27" : "water moccasin",
"28" : "bobcat",
"29" : "nasty little gremlin",
"30" : "monkey",
"31" : "snowy cockatrice",
"32" : "crystal crab",
"33" : "mottled thrak",
"34" : "brown spinner",
"35" : "crocodile",
"36" : "rabid guard dog",
"37" : "raider orc",
"38" : "Neartofar orc",
"39" : "wall guardian",
"40" : "deranged sentry",
"41" : "great stag",
"42" : "plumed cockatrice",
"43" : "tawny brindlecat",
"44" : "Agresh troll scout",
"45" : "black boar",
"46" : "brown boar",
"47" : "giant weasel",
"48" : "shadowy spectre",
"49" : "arctic puma",
"50" : "black leopard",
"51" : "luminescent arachnid",
"52" : "Neartofar troll",
"53" : "panther",
"54" : "ridgeback boar",
"55" : "Agresh bear",
"56" : "Agresh troll warrior",
"57" : "banded rattlesnake",
"58" : "mongrel wolfhound",
"59" : "plains orc warrior",
"60" : "black panther",
"61" : "forest ogre",
"62" : "giant veaba",
"63" : "mountain goat",
"64" : "plains ogre",
"65" : "plains orc scout",
"66" : "bighorn sheep",
"67" : "cave lizard",
"68" : "dark assassin",
"69" : "plains lion",
"70" : "plains orc shaman",
"71" : "rotting krolvin pirate",
"72" : "shelfae warlord",
"73" : "Agresh troll chieftain",
"74" : "gnoll priest",
"75" : "cave bear",
"76" : "plains orc chieftain",
"77" : "cougar",
"78" : "crested basilisk",
"79" : "warthog",
"80" : "centaur",
"81" : "crazed zombie",
"82" : "fenghai",
"83" : "arctic wolverine",
"84" : "burly reiver",
"85" : "roa'ter wormling",
"86" : "wolverine",
"87" : "gnoll jarl",
"88" : "cyclops",
"89" : "Grutik savage",
"90" : "lesser stone gargoyle",
"91" : "snow leopard",
"92" : "troll chieftain",
"93" : "darken",
"94" : "dobrem",
"95" : "giant hawk-owl",
"96" : "ki-lin",
"97" : "moaning spirit",
"98" : "arctic manticore",
"99" : "pra'eda",
"100" : "elder tree spirit",
"101" : "giant albino tomb spider",
"102" : "hisskra warrior",
"103" : "hooded figure",
"104" : "hunter troll",
"105" : "krynch",
"106" : "skeletal ice troll",
"107" : "wild hound",
"108" : "ghostly mara",
"109" : "rotting corpse",
"110" : "rotting farmhand",
"111" : "wild dog",
"112" : "ghostly pooka",
"113" : "hisskra shaman",
"114" : "maw spore",
"115" : "mezic",
"116" : "moor hound",
"117" : "sand beetle",
"118" : "three-toed tegu",
"119" : "cold guardian",
"120" : "colossus vulture",
"121" : "hisskra chieftain",
"122" : "moor witch",
"123" : "rock troll zombie",
"124" : "skeletal soldier",
"125" : "spectral warrior",
"126" : "tundra giant",
"127" : "barghest",
"128" : "bog troll",
"129" : "moor eagle",
"130" : "shimmering fungus",
"131" : "spectral woodsman",
"132" : "troll wraith",
"133" : "water wyrd",
"134" : "dust beetle",
"135" : "krolvin slaver",
"136" : "spectral lord",
"137" : "undertaker bat",
"138" : "huge mein golem",
"139" : "lesser moor wight",
"140" : "magru",
"141" : "Sheruvian initiate",
"142" : "skeletal warhorse",
"143" : "tusked ursian",
"144" : "grizzly bear",
"145" : "krolvin corsair",
"146" : "wood sprite",
"147" : "greater bog troll",
"148" : "greater moor wight",
"149" : "stone gargoyle",
"150" : "vourkha",
"151" : "forest bendith",
"152" : "myklian",
"153" : "spectral miner",
"154" : "bog wraith",
"155" : "roa'ter",
"156" : "Sheruvian monk",
"157" : "skeletal lord",
"158" : "baesrukha",
"159" : "dark vortece",
"160" : "phantasma",
"161" : "swamp hag",
"162" : "dreadnought raptor",
"163" : "bog wight",
"164" : "forest trali shaman",
"165" : "gaunt spectral servant",
"166" : "mastodonic leopard",
"167" : "lesser vruul",
"168" : "forest trali",
"169" : "greater ice giant",
"170" : "lesser faeroth",
"171" : "rotting chimera",
"172" : "bog spectre",
"173" : "horned vor'taz",
"174" : "warrior shade",
"175" : "flesh golem",
"176" : "greater faeroth",
"177" : "snow madrinol",
"178" : "tomb troll",
"179" : "stone sentinel",
"180" : "animated slush",
"181" : "ethereal mage apprentice",
"182" : "tomb troll necromancer",
"183" : "nightmare steed",
"184" : "decaying Citadel guardsman",
"185" : "glacial morph",
"186" : "rotting Citadel arbalester",
"187" : "black forest viper",
"188" : "massive black boar",
"189" : "black forest ogre",
"190" : "putrefied Citadel herald",
"191" : "Illoke mystic",
"192" : "phantasmal bestial swordsman",
"193" : "stone mastiff",
"194" : "ice elemental",
"195" : "massive troll king",
"196" : "Sheruvian harbinger",
"197" : "grifflet",
"198" : "emaciated hierophant",
"199" : "Illoke shaman",
"200" : "muscular supplicant",
"201" : "yeti",
"202" : "lesser griffin",
"203" : "hunch-backed dogmatist",
"204" : "storm griffin",
"205" : "greater vruul",
"206" : "moulis",
"207" : "shrickhen",
"208" : "farlook",
"209" : "dhu goleras",
"210" : "gnarled being",
"211" : "lesser construct",
"212" : "gremlock",
"213" : "lich qyn'arj",
"214" : "aivren",
"215" : "festering taint",
"216" : "n'ecare",
"217" : "Ithzir scout",
"218" : "Ithzir initiate",
"219" : "lost soul",
"220" : "water elemental",
"221" : "Ithzir herald",
"222" : "vaespilon",
"223" : "triton dissembler",
"224" : "greater construct",
"225" : "Ithzir adept",
"226" : "siren",
"227" : "triton executioner",
"228" : "spectral triton defender",
"229" : "triton combatant",
"230" : "triton radical",
"231" : "war griffin",
"232" : "triton magus",
"233" : "ethereal triton sentry",
"234" : "greater water elemental",
"235" : "Ithzir janissary",
"236" : "Ithzir seer",
"237" : "darkly inked fetish master",
"238" : "murky soul siphon",
"239" : "enormous rift crawler",
"240" : "vvrael destroyer",
"241" : "lich",
"242" : "glistening cerebralite"
}


Of those, I will have to fix a few before they will index properly (lich for example needs to have the frostborne/fireborne? adjectives for alvis to be able to detect their presence in the system)

Ceyrin
12-13-2014, 03:36 PM
It's frostborne lich, and infernal lich.

Also, good luck with pokedex entry 96. That bitch is hard to catch.

m444w
12-13-2014, 05:49 PM
ki-lins don't appear for bounties, so they aren't terribly important beyond curiosity (if I recall it requires the monks to summon them, right?)

Ceyrin
12-13-2014, 06:43 PM
I've only ever seen one, and it simply 'arrived'. My knowledge of ki-lin spawns are limited to second-hand information, which agrees with yours.

m444w
01-15-2015, 11:58 AM
While this should still be considered mostly incomplete, some regions (namely the landing) are nearing completion

If anyone desires to use the current Room data info for creatures the entire feed can be found here: http://bestiary.symboli.se/bestiary

Room ids are stored under the 'room' key.

If there is no 'room' key, then that creature has not yet been spotted! If you are interested in helping me fill those blanks in, feel free to IM me and i'll set you up with an API account so you can contribute to the DB.

I would advise you copy the feed to your localhost in your data folder or your SQLite db and check it once per day or something, so your script doesn't spam my server.

Donquix
01-15-2015, 01:39 PM
oh shit i totally forgot about this. will get setup with reporting tonight or tomorrow now that i'm actually playing agian. fuck. i'm a jerk.

m444w
01-15-2015, 02:14 PM
Not a big deal, that's why I opted for a distributed system vs 100% perfection. Incremental improvements are better than none, and everyone has real world stuff to do!

I just was informed that the old links need to be moved to the gswhatever since krakii was broken and they couldn't be bothered to 301 it, i'll fix that when I can.

m444w
07-26-2016, 10:28 PM
There have been some recently some upticks in the people contributing to the ;alvis database again. Thanks for the work.

I inadvertently borked most of my Gemstone related apps in a migration/upgrade today, so there is a current outage I am working to rectify, so those who use Bestiary, Vathor or any of the other services are currently affected by this.

m444w
08-04-2016, 11:56 AM
Alright, I got most of this stuff fixed with a few updates after a few nights of late night hacking.

Please download the new version of ;alvis off the repository if you want to contribute.

You can now signup completely through ;alvis in game, on your first run.

you also need to ;trust alvis so it can install the Olib gem.

If you've previously signed up, you'll need to resign up again (sorry about that), and should it complain about you have an invalid token because please do `;vars delete alvis` to reset alvis' internals.

I'm on the GemstoneIV slack if you have any questions, or need help with the setup.

Source code: https://github.com/ondreian/alvis/

I hope to add a scrolling ticker of contributions by account at some point in the future, but no promises for now.

I'll also be adding some API endpoints for your scripting pleasure once a few more blanks have been filled in.

m444w
08-24-2016, 07:30 PM
The public alvis api has been deployed. It lives at : https://api.alvis.symboli.se

For now there are only 2 routes of importance


/rooms/:id

/creatures/:name

where names with whitespace have their whitespace converted to `+` (no backticks)

Here is an example : https://api.alvis.symboli.se/creatures/stone+gargoyle

Big thanks to Hazado, Greys, and Rozy for all the help tagging and bagging to date, there is still a lot of work to be done if you want to get involved checkout this post (http://forum.gsplayers.com/showthread.php?92795-alvis-Creatures-amp-Rooms&p=1872100#post1872100) and signup for the Gemstone IV slack if you need help http://gemstone-iv-slackin.herokuapp.com/

WRoss
08-24-2016, 07:32 PM
Do you still need help with this?

m444w
08-24-2016, 07:35 PM
yeah. there is still a fair amount of creatures that need tagging.

My next step was to add a prioritized list that people could check to target some of the creatures that haven't been tagged yet.

WRoss
09-01-2016, 04:53 PM
Let me know. I run around a lot

m444w
10-20-2016, 11:51 PM
Couple updates pushed out tonigh that contributors might want to be aware of:

Firstly ;alvis now uses the script settings that are shared across characters instead of Vars, so you can get rid of that annoyingly large cache in the `;vars`

Secondly, if you are up to it there are some new methods you can use in your scripts (as long as you have loaded ;alvis during this session):


Alvis.API.creature(<Name>).fetch will fetch all of the information Alvis has available for a given creature

Alvis.API.creature(<Name>).in(<Location>) will fetch all of the rooms in the given location a creature has been tagged

If you update you will need to relogin in.

Happy scripting!

Soulance
10-21-2016, 07:33 AM
I'm not good with coding and not really sure how to implement this...but I'd be happy to help and use it if you'd toss in a "how-to".

I've downloaded alvis.rb from the repo but am not sure how to get it running...

m444w
10-21-2016, 09:53 AM
Sure, let's take a stab at creating a quickstart guide. It's just a lich script.

I have assembled some directions you can follow here: https://gist.github.com/ondreian/5c52c151960d07d4a43e498458bea642
(https://gist.github.com/ondreian/5c52c151960d07d4a43e498458bea642)
*there is an on going attack against a lot of "core" infrastructure websites like Github at the DNS level, so you may not be able to reach that gist currently.