Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #CLASS {LIBDB}
- //
- // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- // The LIBDB variable will store pertinent library data not stored within the Database.
- // =======================================================================================================================
- //
- #VAR LIBDB ""
- #ADDKEY LIBDB vNums "" // ===== vNums of all Saved libraries
- #ADDKEY LIBDB Haven "" // ===== vNums of all Haven libraries
- #ADDKEY LIBDB Guild "" // ===== vNums of all Guild libraries
- #ADDKEY LIBDB Order "" // ===== vNums of all Order libraries
- #ADDKEY LIBDB City "" // ===== vNums of all Grand libraries
- #ADDKEY LIBDB Grand "" // ===== vNums of all City libraries
- #ADDKEY LIBDB Book "" // ===== (READ) Last read book (#)
- #ADDKEY LIBDB Page "" // ===== (READ) Last read page (#)
- #ADDKEY LIBDB bNum "" // ===== (CAPTURE) Book Number
- #ADDKEY LIBDB wSpace "" // ===== (CAPTURE) White Space
- #ADDKEY LIBDB bTitle "" // ===== (CAPTURE) Book Title
- #ADDKEY LIBDB Category "" // ===== (CAPTURE) Book Category
- #ADDKEY LIBDB vNum "" // ===== (CAPTURE) Aetolian vNum
- #ADDKEY LIBDB Compare "" // ===== Comparing Library to Library
- #ADDKEY LIBDB Update {0} // ===== Updating library On/Off flag
- #ADDKEY LIBDB temp_comp "" // ===== Used for temp lib comparison
- #ADDKEY LIBDB cat_add "" // ===== Sorting into Categories, INV
- //
- // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- // Used for saving into categories from inventory, and moving books within a library.
- // =======================================================================================================================
- //
- #EVENT move_cat {
- #LOCAL $c
- $c=%find(%gmcp.room.info.num,All,vNum)
- #IF (%numitems($c)) {
- #LOCAL $a $b
- $a=%find(%gmcp.room.info.num,All,vNum)
- #FORALL $a {#ADDI $b %db(%i,Category)}
- $b=%replace($b,":"," >")
- #FORALL %pick("p:Select a category to move:",$b) {library move @LIBDB.cat_add %replace(%i," >",":")}
- } {
- #SAY {}
- #SAY {%ansi(13)There are no saved categories for this location.}
- #CR
- }
- }
- //
- #EVENT add_cat {
- #LOCAL $c
- $c=%find(%gmcp.room.info.num,All,vNum)
- #IF (%numitems($c)) {
- #LOCAL $a $b
- $a=%find(%gmcp.room.info.num,All,vNum)
- #FORALL $a {#ADDI $b %db(%i,Category)}
- $b=%replace($b,":"," >")
- #FORALL %pick("p:Select a category to add:",$b) {library add @LIBDB.cat_add %replace(%i," >",":")}
- } {
- #SAY {}
- #SAY {%ansi(13)There are no saved categories for this location.}
- #CR
- }
- }
- //
- #TRIGGER {^~"(%w)(%d)~"(%s)(*).$} {#IF (%1 = "book" OR %1 = "scroll" OR %1 = "journal" OR %1 = "omnibus") {#SUB {~"<send 'read %1%2|LIBDB.cat_add=%1%2;#RAISE add_cat' 'Read|Categorize'>%1%2</send>~"%3%4%5.}}}
- //
- // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- // Various other aliases and triggers.
- // =======================================================================================================================
- //
- #TRIGGER {%e[35m} {#IF (%gmcp.room.info.details = library) {LIBDB.Category=%line}} "" {color}
- //
- #TRIGGER {A small sign indicates that LIBRARY CATALOG will list the materials in this library.} {#LOCAL $a;$a=%find(%gmcp.room.info.num,All,vNum);#IF (!%numitems($a)) {#MESS 1 "This library is not in the database."}}
- //
- #ALIAS read {#SWITCH (%begins(%lower(%1),n)) {LIBDB.Page=@LIBDB.Page+1;~read @LIBDB.Book page @LIBDB.Page} (%lower(%2) = page) {LIBDB.Book=%1;LIBDB.Page=%3;~read %params()} {LIBDB.Book=%1;LIBDB.Page=1;~read %1}}
- //
- #ALIAS temp_comp {#SWITCH (%begins(%1,a)) {#ADDI LIBDB.temp_comp %gmcp.room.info.num;LIBDB.Compare=@LIBDB.temp_comp} (%begins(%1,r)) {#DELI LIBDB.temp_comp %gmcp.room.info.num} (%begins(%1,c)) {LIBDB.temp_comp=""} {#SAY {};#SAY {%ansi(13)You have used an invalid parameter.};#SAY {%ansi(13)You may add, remove or clear the list.};#CR}}
- //
- // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- // Searching the database.
- // =======================================================================================================================
- //
- #ALIAS SLIB {
- #DBLOAD LIB
- #LOCAL $r $f $s $l
- #IF (%begins(%lower(%1),a)) {$r=%find(%params(2),All,Author);$s=1;$f=a} {
- #IF (%begins(%lower(%1),t)) {$r=%find(%params(2),All,Title);$s=1;$f=t} {
- #IF (%begins(%lower(%1),c)) {$r=%find(%params(2),All,Category);$s=1;$f=c} {
- }}};
- #IF ($s) {
- #IF (%gmcp.room.info.details = library AND %numitems($r)) {
- #FORALL $r {
- #IF (%db(%i,vNum) != %gmcp.room.info.num) {#DELI $r %i}
- }
- }
- #IF (%numitems($r)) {
- #SAY {}
- #SWITCH ($f=a) {#SAY {%ansi(5)Books written by: %ansi(13)%params(2)}} ($f=t) {#SAY {%ansi(5)Titles containing: %ansi(13)%params(2)}} ($f=c) {#SAY {%ansi(5)Books in Category: %ansi(13)%params(2)}}
- #FORALL $r {
- #SWITCH (%ismember(%db(%i,vNum),@LIBDB.Haven)) {$l=H} (%ismember(%db(%i,vNum),@LIBDB.Order)) {$l=O} (%ismember(%db(%i,vNum),@LIBDB.Guild)) {$l=G} (%ismember(%db(%i,vNum),@LIBDB.Grand)) {$l=L} (%ismember(%db(%i,vNum),@LIBDB.City)) {$l=C} {$l=space}
- #MXP {%ansi(6) %if(%len(%db(%i,vNum)) = 1," ")%if(%len(%db(%i,vNum)) = 2," ")%if(%len(%db(%i,vNum)) = 3," ")%if(%len(%db(%i,vNum)) = 4," ")<send 'path find %db(%i,vNum);path go gallop'>v%db(%i,vNum)</send> %ansi(15)~: %ansi(6)%if(%len(%db(%i,bNum)) = 1," ")%if(%len(%db(%i,bNum)) = 2," ")%if(%len(%db(%i,bNum)) = 3," ")%if(%len(%db(%i,bNum)) = 4," ")%if(%len(%db(%i,bNum)) = 5," ")<send 'read %db(%i,bNum)|take 500 gold from pack;library copy %db(%i,bNum)|library remove %db(%i,bNum)|#RAISE show_db %i' 'Read|Copy|Remove|Details'>%db(%i,bNum)</send> %ansi(15)~: %ansi(2)%if($l=space," ",$l) %ansi(15)~: %ansi(3)%db(%i,Title) %ansi(7)by %ansi(3)%db(%i,Author)}
- }
- #CR
- } {
- #SAY {}
- #SAY {%ansi(13)There were no results for your query.}
- #CR
- }
- } {
- #SAY {}
- #SAY {%ansi(13)You have used an invalid search parameter.}
- #SAY {%ansi(13)You may search by author, title or category.}
- #CR
- }
- }
- //
- #EVENT show_db {
- #SAY {}
- #SAY {}
- #SHOWDB {%1}
- #CR
- }
- //
- // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- // Updating and removing libraries from the database.
- // =======================================================================================================================
- //
- #ALIAS LIB {#DBLOAD LIB;#SWITCH (%begins(%lower(%1),c)) {LIBDB.temp_comp="";#SWITCH (%begins(%lower(%2),h)) {LIBDB.Compare=@LIBDB.Haven} (%begins(%lower(%2),g)) {LIBDB.Compare=@LIBDB.Guild} (%begins(%lower(%2),o)) {LIBDB.Compare=@LIBDB.Order} (%begins(%lower(%2),c)) {LIBDB.Compare=@LIBDB.City} (%begins(%lower(%2),l)) {LIBDB.Compare=@LIBDB.Grand} {#SAY {};#SAY {%ansi(13)You have used an invalid compare parameter.};#SAY {%ansi(13)You may compare to: Haven, Order, Guild, City or Library.};#CR}} (%begins(%lower(%1),a)) {#RAISE lib_add} (%begins(%lower(%1),r)) {#RAISE lib_rem %params(2)} (%begins(%lower(%1),u)) {#RAISE lib_upd} (%begins(%lower(%1),s)) {#IF (%gmcp.room.info.details = library) {#SWITCH (%begins(%lower(%2),h)) {#ADDI LIBDB.Haven %gmcp.room.info.num;#SAY {};#SAY {%ansi(13)Set As: Haven};#CR} (%begins(%lower(%2),o)) {#ADDI LIBDB.Order %gmcp.room.info.num;#SAY {};#SAY {%ansi(13)Set As: Order};#CR} (%begins(%lower(%2),g)) {#ADDI LIBDB.Guild %gmcp.room.info.num;#SAY {};#SAY {%ansi(13)Set As: Guild};#CR} (%begins(%lower(%2),c)) {#ADDI LIBDB.City %gmcp.room.info.num;#SAY {};#SAY {%ansi(13)Set As: City};#CR} (%begins(%lower(%2),l)) {#ADDI LIBDB.Grand %gmcp.room.info.num;#SAY {};#SAY {%ansi(13)Set As: Library};#CR} {#SAY {};#SAY {%ansi(13)You have used an invalid location parameter.};#SAY {%ansi(13)You may set: Haven, Order, Guild, City or Library.};#CR}} {#SAY {};#SAY {%ansi(13)This location is lot a library.};#CR}}}
- //
- #EVENT lib_add {
- LIBDB.Update=1
- #CALL %alarm(lib_add,4000)
- LIBDB.vNum=%gmcp.room.info.num
- library catalog
- }
- //
- #EVENT lib_rem {
- #LOCAL $a
- #IF (%1) {
- $a=%sort(%find(%1,All,vNum),1)
- #FORALL $a {#DBDELETE %i}
- } {
- LIBDB.vNum=%gmcp.room.info.num
- $a=%sort(%find(@LIBDB.vNum,All,vNum),1)
- #FORALL $a {#DBDELETE %i}
- }
- #DBSAVE
- }
- //
- #EVENT lib_upd {
- #LOCAL $a
- $a=%sort(%find(%gmcp.room.info.num,All,vNum),1)
- #FORALL $a {#DBDELETE %i}
- LIBDB.Update=1
- #CALL %alarm(lib_add,4000)
- LIBDB.vNum=%gmcp.room.info.num
- library catalog
- }
- //
- #ALARM "lib_add" {4} {LIBDB.Update=0;#DBSAVE}
- #SUS lib_add
- //
- #TRIGGER {^Type MORE to continue reading. ~(%d~% shown~)$} {#IF (@LIBDB.Update) {more;#CALL %alarm(lib_add,4000)}}
- //
- // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- // Trigger to re-format the catalog, and add to the database.
- // =======================================================================================================================
- //
- #TRIGGER {^ ~ #&%d{LIBDB.bNum}&%s{LIBDB.wSpace}&{LIBDB.bTitle}$} {#GAG} {} "LIBDB"
- #COND {^ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ by (*)$} {
- #LOCAL $a $b $c $d $e $f $h $k
- $b=%1
- $a=%replace(@LIBDB.bTitle,&,and)
- $a=%stripq($a)
- $a=%replace($a,~,-)
- #IF ($a = "(copy)") {$a="No Title";LIBDB.wSpace=%leftback(@LIBDB.wSpace,1)}
- #FORALL {A copy of |a copy of | (copy)|(copy) } {$a=%remove(%i,$a)}
- #IF (%len($a) = 0) {$a="No Title"}
- #IF (@LIBDB.Update) {
- $j=%find(@LIBDB.bNum,All,bNum)
- $k=1
- #FORALL $j {#IF (%db(%i,bNum) = @LIBDB.bNum && %db(%i,Author) = $b) {$k=0}}
- #IF ($k) {
- #NEW All bNum=@LIBDB.bNum Author=$b Title=$a Category=@LIBDB.Category vNum=@LIBDB.vNum
- }
- }
- $d=%find($a,All,Title)
- #IF (%numitems($d)) {
- #FORALL ($d) {
- #IF (%db(%i,Author)=$b && %ismember(%db(%i,vNum),@LIBDB.Compare)) {$f=1}
- }
- }
- #SUB {@LIBDB.wSpace%ansi(6)<send 'read @LIBDB.bNum|take 500 gold from pack;library copy @LIBDB.bNum|library remove @LIBDB.bNum|LIBDB.cat_add=@LIBDB.bNum;#RAISE move_cat' 'Read|Copy|Remove|Categorize'>@LIBDB.bNum</send> %ansi(8): %if($f,%ansi(2),%ansi(4))X %ansi(8): %ansi(3)$a %ansi(8)by %ansi(3)$b}
- } {} "LIBDB"
- //
- #CLASS 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement