Adam Williams
12 years ago
commit
c6b18a44ca
24 changed files with 1497 additions and 0 deletions
-
1Aardwolf-chats
-
74README
-
4Todo
-
38active_log.raw
-
59affcap.tin
-
1affects
-
1chars
-
78general.tin
-
309gmcp.tin
-
1group
-
3history-discon.txt
-
77map.tin
-
1map.txt
-
1minimap
-
272paths.tin
-
109pathwalk.tin
-
7pmuxit
-
89quest.tin
-
26setup.tin
-
170spellup.tin
-
41ticking.tin
-
19tmuxit
-
57variables.tin
-
59zzGMCP_to_stat.tin
@ -0,0 +1 @@ |
|||||
|
This file intentionally blank. It stores communications once connected. |
@ -0,0 +1,74 @@ |
|||||
|
Intro: |
||||
|
------ |
||||
|
This project compliments of the Aardwolf character Cheezburger. |
||||
|
This is a group of settings intended to be comparable to the base MUSHClient Aardwolf settings. |
||||
|
It is intended for Linux users or those with access to a machine capable of running Tintin++. |
||||
|
It should run under Wintin++ however performance may vary. |
||||
|
|
||||
|
Getting Tintin++: |
||||
|
----------------- |
||||
|
These settings (mainly the mapping) require Tintin++ versin 2.00.7 or better. |
||||
|
Check out http://tintin.sourceforge.net/download.php for the latest versions. |
||||
|
|
||||
|
Getting Started: |
||||
|
---------------- |
||||
|
edit setup.tin |
||||
|
start tintin with setup.tin (Ex. /usr/games/tt++ -G setup.tin) |
||||
|
|
||||
|
Tintin Mapping: |
||||
|
--------------- |
||||
|
#map create 60000 - to initialize a new tintin map |
||||
|
#map flag nofollow on - to stop tintin trying to create rooms based on movement |
||||
|
-all the room creation is done via gmcp |
||||
|
#map goto 1 to goto the first vnum of the tintin map |
||||
|
#var mapping 1 to create the map as you go |
||||
|
-should be on in setup.tin by default |
||||
|
-a tick timer is created to save the map every 300seconds |
||||
|
-a session disconnect event is set to save a backup copy of the map |
||||
|
|
||||
|
Capturing & Logging: |
||||
|
-------------------- |
||||
|
The ascii map: |
||||
|
'tags map on' to start capturing the map to the file 'minimap' |
||||
|
'tags mapnames on' to send the room name with the map |
||||
|
'tags mapexits on' to send the room exits with the map |
||||
|
Toggle 'shortmap' command until it says "You will now see blank lines on the map." |
||||
|
|
||||
|
Channels: |
||||
|
Most channels are captured to the file 'Aardwolf-chats' by GMCP |
||||
|
To configure which ones are shown in the main window: |
||||
|
'tags channels on' to show tags around them |
||||
|
-adjust general.tin list to change which channels are gagged |
||||
|
|
||||
|
Mobs/Players in the room: |
||||
|
'tags roomchars on' to start capturing people/mobs to the file 'chars' |
||||
|
|
||||
|
Group Stats: |
||||
|
Group stat logging is handled by gmcp.tt and logs to 'group' file once you are in a group |
||||
|
|
||||
|
Custom Prompt |
||||
|
------------- |
||||
|
Tintin++ should automatically split off the bottom 4 lines of your terminal for the custom prompt. |
||||
|
The bottom line will be the input command line, next up is a dividing line, then a vitals bar, |
||||
|
then a bar with a few other things I'll explain in detail. |
||||
|
|
||||
|
1. Time till next tick -- self explanatory |
||||
|
2. Quest timer -- this will be set to "quest_timer" until you take a quest or type quest info. |
||||
|
3. Exp till next level -- self exlanatory |
||||
|
4. Thirst/Hunger -- T/H:[ thirst level / hunger level ] |
||||
|
5. Alignment -- Positive or negative alignment |
||||
|
|
||||
|
|
||||
|
Optional Settings: |
||||
|
------------------ |
||||
|
read in optional settings as required |
||||
|
-affcaps.tin Will capture and gag skill/spell affects, add colors, and log to 'affects' file |
||||
|
-paths.tin Useful demonstration aliases for using the tintin map once one is generated by the user |
||||
|
-pathwalk.tin Provides an alternative to #path run, it will stop for aggro mobs and continue on death |
||||
|
|
||||
|
Displaying: |
||||
|
----------- |
||||
|
Setup panes in tmux or multiple terminal windows and use the tail command (ex. tail -fs .1 minimap) |
||||
|
on whichever log file you wish. |
||||
|
*NOTE* For the minimap file you will need to set the size of the window to match the output from the mud. |
||||
|
For a typical 10pt font a size of 30columns by 21rows should be close. |
@ -0,0 +1,4 @@ |
|||||
|
Add more comments to the settings. |
||||
|
Add more details on how the settings work. |
||||
|
Clean up the formatting of the settings. |
||||
|
Add revised lvladd aliases and fix afind,vfind,rfind,mfind,hfind |
@ -0,0 +1,38 @@ |
|||||
|
[0m#OK: 8 ACTIONS LOADED.[0m |
||||
|
[0m#OK: 13 ALIASES LOADED.[0m |
||||
|
[0m#OK: 5 CLASSES LOADED.[0m |
||||
|
[0m#OK: 17 EVENTS LOADED.[0m |
||||
|
[0m#OK: 1 MACRO LOADED.[0m |
||||
|
[0m#OK: 1 SUBSTITUTE LOADED.[0m |
||||
|
[0m#OK: 3 TICKERS LOADED.[0m |
||||
|
[0m#OK: 67 VARIABLES LOADED.[0m |
||||
|
############################################################################# |
||||
|
##[ --- Welcome to Aardwolf MUD --- ]########################## |
||||
|
##[ ]############ /" ######### |
||||
|
##[ Players Currently Online: 429 ]######## _-`"""', ####### |
||||
|
##[ ]##### _-" ) ###### |
||||
|
##[ Game Last Rebooted on 21 Feb 10:20:48 ]### _-" | ###### |
||||
|
################################################### _-" ; ####### |
||||
|
######################################### __---___-" | ######## |
||||
|
###################################### _" ,, ; `,, #### |
||||
|
#################################### _-" ;'' | ,' ; #### |
||||
|
################################## _" ' `"' ; #### |
||||
|
########################### __---; ,' ###### |
||||
|
######################## __"" ___ ,' ######## |
||||
|
#################### _-"" -"" _ ,' ########## |
||||
|
################### `-_ _ ; ############ |
||||
|
##################### ""----""" ; ; ############# |
||||
|
####################### / ; ; ############## |
||||
|
##################### / ; ; ############### |
||||
|
################### / ` ; ################ |
||||
|
################# / ; ################# |
||||
|
----------------------------------------------------------------------------- |
||||
|
Enter your character name or type 'NEW' to create a new character |
||||
|
----------------------------------------------------------------------------- |
||||
|
What be thy name, adventurer? Please enter a character name, 'NEW' to create a new player or 'Q' to disconnect. |
||||
|
What be thy name, adventurer? Please enter a character name, 'NEW' to create a new player or 'Q' to disconnect. |
||||
|
What be thy name, adventurer? [0;39;49mquit[0m |
||||
|
That name is not usable. Please try another. |
||||
|
Name: [0;39;49m#end[0m |
||||
|
[0m#MAP: This session has no map data. Use #map create or #map read to create one.[0m |
||||
|
[0m#SESSION 'aard' DIED.[0m |
@ -0,0 +1,59 @@ |
|||||
|
#class affcap kill |
||||
|
#class affcap open |
||||
|
|
||||
|
/* |
||||
|
This script will capture spell output, gag it, and put it in a file called 'affects' in your $dir. |
||||
|
Todo: have it sort the list and display in descending order from longest duration to shortest |
||||
|
*/ |
||||
|
|
||||
|
#action {^You are affected by the following:$} |
||||
|
{ |
||||
|
#show <179>Capturing Affects List<099>; |
||||
|
#line gag; |
||||
|
#list affects clear; |
||||
|
#var aff_count 1; |
||||
|
#line log {$dir/affects} {<179>--Affects--<099>} |
||||
|
} |
||||
|
|
||||
|
#action {^Spell : %* \(%d:%d\)$} |
||||
|
{ |
||||
|
#line gag; |
||||
|
#list affects[$aff_count] add {%1;00;%2;%3}; |
||||
|
#math aff_count {$aff_count + 1} |
||||
|
} |
||||
|
|
||||
|
#action {^Spell : %* \(%d:%d:%d\)$} |
||||
|
{ |
||||
|
#line gag; |
||||
|
#list affects[$aff_count] add {%1;%2;%3;%4}; |
||||
|
#math aff_count {$aff_count + 1} |
||||
|
} |
||||
|
|
||||
|
#action {^You are affected by %d skills and %d spells.$} |
||||
|
{ |
||||
|
#foreach $affects[] {x} |
||||
|
{ |
||||
|
#if {$affects[$x][2]==0 && $affects[$x][3]<2} |
||||
|
{ |
||||
|
#line log {$dir/affects} {<119>$affects[$x][2]:$affects[$x][3]:$affects[$x][4] : $affects[$x][1]<099>} |
||||
|
}; |
||||
|
#elseif {$affects[$x][2]==0 && $affects[$x][3]<5} |
||||
|
{ |
||||
|
#line log {$dir/affects} {<139>$affects[$x][2]:$affects[$x][3]:$affects[$x][4] : $affects[$x][1]<099>} |
||||
|
}; |
||||
|
#elseif {$affects[$x][2]==0 && $affects[$x][3]<10} |
||||
|
{ |
||||
|
#line log {$dir/affects} {<169>$affects[$x][2]:$affects[$x][3]:$affects[$x][4] : $affects[$x][1]<099>} |
||||
|
}; |
||||
|
#else |
||||
|
{ |
||||
|
#line log {$dir/affects} {<029>$affects[$x][2]:$affects[$x][3]:$affects[$x][4] : $affects[$x][1]<099>} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
}; |
||||
|
#line log {$dir/affects} {\nSkills <029>%1 <099>Spells <029>%2<099>\n}; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
#class affcap close |
@ -0,0 +1 @@ |
|||||
|
This file left intentionally blank. It will store affects list once connected. |
@ -0,0 +1 @@ |
|||||
|
This file left intentionally blank. Will store characters and mobs in room once connected. |
@ -0,0 +1,78 @@ |
|||||
|
#NOP ####################### |
||||
|
#NOP ### Channel Gagging ### |
||||
|
#NOP ####################### |
||||
|
#NOP /* All channels turned on will be logged to a file. */ |
||||
|
#NOP /* This section is just for the display in Tintin. */ |
||||
|
|
||||
|
#NOP /* Select which channels to gag from Tintin */ |
||||
|
#ACTION {^\{chan ch={answer|question|wangrp|gossip|barter|auction|mxit|nobletalk|sports|gclan}\}%2$} {#line gag} |
||||
|
|
||||
|
#NOP /* Remove the tags from stuff we don't gag */ |
||||
|
#SUB {\{chan ch=%*\}} {} |
||||
|
|
||||
|
#NOP ####################### |
||||
|
#NOP ### Door Opening & Mapping ### |
||||
|
#NOP ####################### |
||||
|
|
||||
|
#NOP /* Using these aliases when creating the exits for rooms will enable door opening */ |
||||
|
#ALIAS {op} {#map exit {%0} command {#send {op %0};%0};#send {open %0}} |
||||
|
#alias {ope} {op e;e;close w} |
||||
|
#alias {opw} {op w;w;close e} |
||||
|
#alias {opn} {op n;n;close s} |
||||
|
#alias {ops} {op s;s;close n} |
||||
|
#alias {opu} {op u;u;close d} |
||||
|
#alias {opd} {op d;d;close u} |
||||
|
|
||||
|
#NOP ####################### |
||||
|
#nop ### Misc Aliases ### |
||||
|
#NOP ####################### |
||||
|
/* Example aliases, uncomment to use */ |
||||
|
/* |
||||
|
#alias cl {close} |
||||
|
#alias df {drink fountain} |
||||
|
#alias gac {get all corpse} |
||||
|
#alias h {qq '$healpot'} |
||||
|
#alias hs {cast 'psychic healing'} |
||||
|
#alias j {scan} |
||||
|
#alias lic {look in corpse} |
||||
|
#alias m meditate |
||||
|
#alias pe {qq 'light allegiance'} |
||||
|
#alias qq {get %0 from $potbag;quaff %0} |
||||
|
#alias wr {$word} |
||||
|
#alias wc {wr;#delay 1 {qc}} |
||||
|
*/ |
||||
|
|
||||
|
#NOP ####################### |
||||
|
#nop ### Misc Actions ### |
||||
|
#NOP ####################### |
||||
|
#ACTION {The quest will start in} {#bell} |
||||
|
|
||||
|
#macro {\e[11~} {!} |
||||
|
|
||||
|
#CONFIG {256 COLORS} {ON} |
||||
|
#CONFIG {AUTO TAB} {5000} |
||||
|
#CONFIG {BUFFER SIZE} {20000} |
||||
|
#CONFIG {CHARSET} {ASCII} |
||||
|
#CONFIG {COMMAND COLOR} {<099>} |
||||
|
#CONFIG {COMMAND ECHO} {ON} |
||||
|
#CONFIG {CONNECT RETRY} {15} |
||||
|
#CONFIG {HISTORY SIZE} {9999} |
||||
|
#CONFIG {LOG} {RAW} |
||||
|
#CONFIG {PACKET PATCH} {0.00} |
||||
|
#CONFIG {REPEAT CHAR} {!} |
||||
|
#CONFIG {REPEAT ENTER} {ON} |
||||
|
#CONFIG {SCROLL LOCK} {ON} |
||||
|
#CONFIG {SPEEDWALK} {ON} |
||||
|
#CONFIG {TINTIN CHAR} {#} |
||||
|
#CONFIG {VERBATIM} {OFF} |
||||
|
#CONFIG {VERBATIM CHAR} {\} |
||||
|
#CONFIG {VERBOSE} {OFF} |
||||
|
#CONFIG {WORDWRAP} {ON} |
||||
|
#PATHDIR {d} {u} {32} |
||||
|
#PATHDIR {e} {w} {2} |
||||
|
#PATHDIR {n} {s} {1} |
||||
|
#PATHDIR {s} {n} {4} |
||||
|
#PATHDIR {u} {d} {16} |
||||
|
#PATHDIR {w} {e} {8} |
||||
|
#TICKER {mapupdate} {#map write {$dir/map-all.tt}} {300} |
||||
|
#TICKER {varupdate} {#class variables write {$dir/variables.tin}} {300} |
@ -0,0 +1,309 @@ |
|||||
|
#class gmcp kill; |
||||
|
#CLASS {gmcp} OPEN |
||||
|
|
||||
|
|
||||
|
#format IAC %a 255 |
||||
|
#format DONT %a 254 |
||||
|
#format DO %a 253 |
||||
|
#format WONT %a 252 |
||||
|
#format WILL %a 251 |
||||
|
#format SB %a 250 |
||||
|
#format SE %a 240 |
||||
|
|
||||
|
#format GMCP %a 201 |
||||
|
|
||||
|
#ALIAS {debug {on|off}} |
||||
|
{ |
||||
|
#if {"%1" == "on"} |
||||
|
{ |
||||
|
#variable debug 1 |
||||
|
}; |
||||
|
#else |
||||
|
{ |
||||
|
#variable debug 0 |
||||
|
}; |
||||
|
#nop; |
||||
|
} |
||||
|
{5} |
||||
|
|
||||
|
#EVENT {IAC SB GMCP char.maxstats IAC SE} |
||||
|
{ |
||||
|
#variable GMCP[CHAR][MAXSTATS] {%0}; |
||||
|
#if {$debug} |
||||
|
{ |
||||
|
#showme %1 |
||||
|
}; |
||||
|
#nop; |
||||
|
} |
||||
|
|
||||
|
#event {IAC SB GMCP group IAC SE} |
||||
|
{ |
||||
|
#var GMCP[GROUP] {%0}; |
||||
|
#line log {$dir/group} {\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n}; |
||||
|
#format {name_line} {}; |
||||
|
#format {leader_line} {} {light cyan} {light white}; |
||||
|
#foreach {$GMCP[GROUP][members][]} {gmcp_groupie} |
||||
|
{ |
||||
|
#if {"gmcp_groupie_list" != ""} |
||||
|
{ |
||||
|
#var {pregroup} {$gmcp_groupie_list\n} |
||||
|
} |
||||
|
{ |
||||
|
#var pregroup {} |
||||
|
}; |
||||
|
#math {hp_percent_tmp} {1.0*($GMCP[GROUP][members][$gmcp_groupie][info][hp]/$GMCP[GROUP][members][$gmcp_groupie][info][mhp])*100}; |
||||
|
#math {mn_percent_tmp} {1.0*($GMCP[GROUP][members][$gmcp_groupie][info][mn]/$GMCP[GROUP][members][$gmcp_groupie][info][mmn])*100}; |
||||
|
#math {mv_percent_tmp} {1.0*($GMCP[GROUP][members][$gmcp_groupie][info][mv]/$GMCP[GROUP][members][$gmcp_groupie][info][mmv])*100}; |
||||
|
#format {gmcp_groupie_list} |
||||
|
{ |
||||
|
$pregroup |
||||
|
%c$GMCP[GROUP][members][$gmcp_groupie][name] %cLevel%c: %c$GMCP[GROUP][members][$gmcp_groupie][info][lvl]\n |
||||
|
%cHP%c:%c${hp_percent_tmp} %cMN%c:%c${mn_percent_tmp} %cMV%c:%c${mv_percent_tmp}\n |
||||
|
%cTNL%c:%c$GMCP[GROUP][members][$gmcp_groupie][info][tnl] %cAlign%c:%c$GMCP[GROUP][members][$gmcp_groupie][info][align] <acc>QT<eff>: <afc>$GMCP[GROUP][members][$gmcp_groupie][info][qt] |
||||
|
} {light red} {cyan} {light black} {blue} {green} {light black} {light green} {blue} {light black} {light blue} {yellow} {light black} {light yellow} {light white} {light black} {green} {light white} {light black} {light cyan} |
||||
|
}; |
||||
|
#line log {$dir/group} {$name_line\n\n$leader_line\n\n\n$gmcp_groupie_list}; |
||||
|
#var gmcp_groupie_list {}; |
||||
|
} |
||||
|
|
||||
|
#EVENT {IAC SB GMCP char.status IAC SE} |
||||
|
{ |
||||
|
#variable GMCP[CHAR][STATUS] {%0}; |
||||
|
#if {$debug} |
||||
|
{ |
||||
|
#showme %1 |
||||
|
}; |
||||
|
||gmcp_prompt_statmon; |
||||
|
#nop; |
||||
|
} |
||||
|
|
||||
|
#EVENT {IAC SB GMCP char.vitals IAC SE} |
||||
|
{ |
||||
|
#variable GMCP[CHAR][VITALS] {%0}; |
||||
|
#if {$debug} |
||||
|
{ |
||||
|
#showme %1 |
||||
|
}; |
||||
|
||gmcp_prompt_statmon; |
||||
|
#nop; |
||||
|
} |
||||
|
|
||||
|
#EVENT {IAC SB GMCP char.worth IAC SE} |
||||
|
{ |
||||
|
#variable GMCP[CHAR][WORTH] {%0}; |
||||
|
#if {$debug} |
||||
|
{ |
||||
|
#showme %1 |
||||
|
}; |
||||
|
#nop |
||||
|
} |
||||
|
|
||||
|
#alias {afk {on|off}} |
||||
|
{ |
||||
|
#if {"%1" == "on"} |
||||
|
{ |
||||
|
#var afk 1; |
||||
|
#var prewarning 0; |
||||
|
} |
||||
|
{ |
||||
|
#var afk 0; |
||||
|
#var tellsent {}; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
#EVENT {IAC SB GMCP comm.channel IAC SE} |
||||
|
{ |
||||
|
#var {GMCP[COMM][CHATLOGGER]} {%0}; |
||||
|
#var {chanrec} {$GMCP[COMM][CHATLOGGER][chan]}; |
||||
|
#var {player} {$GMCP[COMM][CHATLOGGER][player]}; |
||||
|
#if {"$GMCP[COMM][CHATLOGGER][chan]" != "mobsay"} |
||||
|
{ |
||||
|
#line log {$dir/Aardwolf-chats} {$GMCP[COMM][CHATLOGGER][msg]}; |
||||
|
}; |
||||
|
#if {$debug} |
||||
|
{ |
||||
|
#showme %1 |
||||
|
}; |
||||
|
#if {"$GMCP[COMM][CHATLOGGER][chan]" == "tell"} |
||||
|
{ |
||||
|
#if {$afk} |
||||
|
{ |
||||
|
#if {!$tellsent[$GMCP[COMM][CHATLOGGER][player]]} |
||||
|
{ |
||||
|
#if {"$GMCP[COMM][CHATLOGGER][player]" != "Cheezburger"} |
||||
|
{ |
||||
|
#var {tellsent[$GMCP[COMM][CHATLOGGER][player]]} {1}; |
||||
|
reply Sorry, but I'm afk: @Y[@R$afk_reason@Y]@c; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
#EVENT {IAC SB GMCP char.stats IAC SE} |
||||
|
{ |
||||
|
#variable GMCP[CHAR][STATS] {%0}; |
||||
|
#if {$debug} |
||||
|
{ |
||||
|
#showme %1 |
||||
|
}; |
||||
|
#nop; |
||||
|
} |
||||
|
|
||||
|
#EVENT {IAC SB GMCP comm.repop IAC SE} |
||||
|
{ |
||||
|
#var {GMCP[COMM][REPOP]} {%0}; |
||||
|
#format {curr_time} {%T}; |
||||
|
#if {$repoptrack} |
||||
|
{ |
||||
|
#if {$repop} |
||||
|
{ |
||||
|
#format {last_repop} {%T}; |
||||
|
} |
||||
|
}; |
||||
|
#format {time} {%t} {%H:%M:%S}; |
||||
|
$repchan @WRepop @w= @r$GMCP[COMM][REPOP][zone]@w @@ @r$time; |
||||
|
#var time {}; |
||||
|
#nop; |
||||
|
} |
||||
|
|
||||
|
#alias {^repopwatch {on|off}$} |
||||
|
{ |
||||
|
#if {"%1" == on"} |
||||
|
{ |
||||
|
#var repoptrack 1; |
||||
|
} |
||||
|
{ |
||||
|
#var repoptrack 0; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
#alias {^check repop$} |
||||
|
{ |
||||
|
#format curr_time {%T}; |
||||
|
#math {time_till_pop} {($last_repop+606)-$curr_time}; |
||||
|
#send {$repchan @CNext repop@w: @R$time_till_pop @Wseconds.}; |
||||
|
}; |
||||
|
|
||||
|
#EVENT {IAC SB GMCP char.base IAC SE} |
||||
|
{ |
||||
|
#variable GMCP[CHAR][BASE] {%0}; |
||||
|
#nop; |
||||
|
} |
||||
|
|
||||
|
#event {IAC SB GMCP room.info IAC SE} |
||||
|
{ |
||||
|
#var GMCP[ROOM][INFO] {%0}; |
||||
|
#if {$mapping} |
||||
|
{ |
||||
|
#if {"$GMCP[ROOM][INFO][details]" != "%*maze%*" && $GMCP[ROOM][INFO][num] != -1} |
||||
|
{ |
||||
|
#map goto {$GMCP[ROOM][INFO][num]} {dig}; |
||||
|
#map get roomname {mapresult}; |
||||
|
#if {"$mapresult" == "{\d+}"} |
||||
|
{ |
||||
|
#map set roomname $GMCP[ROOM][INFO][name]; |
||||
|
#map set roomvnum $GMCP[ROOM][INFO][num]; |
||||
|
#map set roomarea $GMCP[ROOM][INFO][zone]; |
||||
|
#map set roomterrain $GMCP[ROOM][INFO][terrain]; |
||||
|
#map set roomcolor <178> |
||||
|
}; |
||||
|
|
||||
|
#foreach {$GMCP[ROOM][INFO][exits][]} {exit} |
||||
|
{ |
||||
|
#map get {roomexit} {mapresult}; |
||||
|
|
||||
|
#if {&mapresult[$exit] == 0} |
||||
|
{ |
||||
|
#map get {roomvnum} {mapresult} {$GMCP[ROOM][INFO][exits][$exit]}; |
||||
|
|
||||
|
#map dig {$exit} {$GMCP[ROOM][INFO][exits][$exit]}; |
||||
|
|
||||
|
#if {$mapresult == 0} |
||||
|
{ |
||||
|
#map set {roomcolor} {<fca>} {$GMCP[ROOM][INFO][exits][$exit]} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}; |
||||
|
}; |
||||
|
#if {$GMCP[ROOM][INFO][num] != -1} |
||||
|
{ |
||||
|
#MAP GOTO {$GMCP[ROOM][INFO][num]} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
#event {IAC SB GMCP comm.tick IAC SE}{#var ticks 30}; |
||||
|
#var repop 0; |
||||
|
#var ticks 30; |
||||
|
#tic TICKING |
||||
|
{ |
||||
|
#if {$ticks > 0} |
||||
|
{ |
||||
|
#math ticks {$ticks - 1}; |
||||
|
}; |
||||
|
|
||||
|
#if {$ticks < 10} |
||||
|
{#show {<139> $ticks<099> secs to tick QUEST<099>: <139>$timer} 3} |
||||
|
{#show {<139> $ticks<099> secs to tick QUEST<099>: <139>$timer} 3} |
||||
|
} |
||||
|
{1}; |
||||
|
#EVENT {IAC WILL GMCP} |
||||
|
{ |
||||
|
#send {$IAC$DO$GMCP\}; |
||||
|
#send {$IAC$SB$GMCP Core.Hello { "client": "$CLIENT_NAME", "version": "$CLIENT_VERSION" } $IAC$SE\}; |
||||
|
#send {$IAC$SB$GMCP Core.Supports.Set [ "Room 1", "Char 1", "Core 1", "Comm 1", "Debug 1", "Group 1" ] $IAC$SE\} |
||||
|
} |
||||
|
|
||||
|
#EVENT {MAP ENTER ROOM} |
||||
|
{ |
||||
|
#if $mapping |
||||
|
{ |
||||
|
#map get roomarea oldarea; |
||||
|
#if {"$oldarea"==""} |
||||
|
{ |
||||
|
#map set roomarea $GMCP[ROOM][INFO][zone] |
||||
|
}; |
||||
|
#map get roomterrain oldterrain; |
||||
|
#if {"$oldterrain"==""} |
||||
|
{ |
||||
|
#map set roomterrain $GMCP[ROOM][INFO][terrain] |
||||
|
}; |
||||
|
#map get roomname oldname; |
||||
|
#if {"$oldname"==""} |
||||
|
{ |
||||
|
#map set roomname $GMCP[ROOM][INFO][name] |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
#EVENT {PROGRAM START} |
||||
|
{ |
||||
|
#variable CLIENT_NAME %0; |
||||
|
#variable CLIENT_VERSION %1; |
||||
|
} |
||||
|
|
||||
|
#EVENT {SESSION DISCONNECTED} |
||||
|
{ |
||||
|
#map write {$dir/map-discon.txt}; |
||||
|
#history write {$dir/history-discon.txt}; |
||||
|
#class variables write {$dir/variables.tin} |
||||
|
} |
||||
|
|
||||
|
#EVENT {SESSION CONNECTED} |
||||
|
{ |
||||
|
$name; |
||||
|
$password; |
||||
|
#unvar name; |
||||
|
#unvar password; |
||||
|
#history read {$dir/history-discon.txt} |
||||
|
} |
||||
|
|
||||
|
protocol gmcp sendchar |
||||
|
|
||||
|
#CLASS {gmcp} CLOSE |
@ -0,0 +1 @@ |
|||||
|
This file intentionally blank. It stores group data once connected. |
@ -0,0 +1,3 @@ |
|||||
|
|
||||
|
quit |
||||
|
#end |
@ -0,0 +1,77 @@ |
|||||
|
#CLASS {map} KILL |
||||
|
#CLASS {map} OPEN |
||||
|
|
||||
|
#ACTION {^<MAPEND>$} |
||||
|
{ |
||||
|
#line gag; |
||||
|
#variable getmap 0; |
||||
|
#if {$autoscan} |
||||
|
{ |
||||
|
scan; |
||||
|
}; |
||||
|
} |
||||
|
{1} |
||||
|
|
||||
|
#alias {autoscan} |
||||
|
{ |
||||
|
#IF {"%0" != ""} |
||||
|
{ |
||||
|
#show <069>Reminder: autoscan doesn't take arguments.<099> |
||||
|
}; |
||||
|
#if {$autoscan == 0} |
||||
|
{ |
||||
|
#var autoscan 1; |
||||
|
#show <069>Autoscan: <129>ON<099> |
||||
|
}; |
||||
|
#ELSEIF {$autoscan == 1} |
||||
|
{ |
||||
|
#var autoscan 0; |
||||
|
#show <069>Autoscan: <099>Off |
||||
|
}; |
||||
|
#ELSE |
||||
|
{ |
||||
|
#show <069>Something went wrong with the autoscan alias in map.tt<099> |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
#ACTION {^<MAPSTART>$} |
||||
|
{ |
||||
|
#variable getmap 1; |
||||
|
#line gag |
||||
|
} |
||||
|
{1} |
||||
|
|
||||
|
#action {^\{roomchars\}} |
||||
|
{ |
||||
|
#var getchar 1; |
||||
|
#line gag; |
||||
|
#line log {$dir/chars} {------<179>[ $GMCP[ROOM][INFO][name] ]<099>} |
||||
|
} |
||||
|
|
||||
|
#action {^\{/roomchars\}} |
||||
|
{ |
||||
|
#var getchar 0; |
||||
|
#line gag; |
||||
|
#line log {$dir/chars} {\n} |
||||
|
} |
||||
|
|
||||
|
#ACTION {~%0} |
||||
|
{ |
||||
|
#if {$getmap} |
||||
|
{ |
||||
|
#line log {$dir/minimap} {%0}; |
||||
|
#if {!$showmap} |
||||
|
{ |
||||
|
#line gag |
||||
|
} |
||||
|
}; |
||||
|
#elseif {$getchar} |
||||
|
{ |
||||
|
#line log {$dir/chars} {%0} |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
{9999} |
||||
|
|
||||
|
|
||||
|
#CLASS {map} CLOSE |
@ -0,0 +1 @@ |
|||||
|
This file will store tintin map once connected. |
@ -0,0 +1 @@ |
|||||
|
This file left intentionally blank. Will store ascii map once connected. |
@ -0,0 +1,272 @@ |
|||||
|
#class paths kill |
||||
|
#class paths open |
||||
|
|
||||
|
#NOP ############################################################################################ |
||||
|
#NOP ### Portals variable, used by the speedwalking aliases (afind, rfind, vfind) |
||||
|
#NOP ############################################################################################ |
||||
|
|
||||
|
#var {portals} |
||||
|
{ |
||||
|
{1}{{zone}{aylor}{name}{garbage}{vnum}{32418}{cmd}{get garbage from $portalbag;hold garbage;enter;hold wad;put garbage in $portalbag}} |
||||
|
{2}{{zone}{petstore}{name}{collar}{vnum}{995}{cmd}{get collar from $portalbag;hold collar;enter;hold wad;put collar in $portalbag}} |
||||
|
{3}{{zone}{amusement}{name}{amulet}{vnum}{29364}{cmd}{get amulet from $portalbag;hold amulet;enter;hold wad;put amulet in $portalbag}} |
||||
|
} |
||||
|
|
||||
|
#NOP ########################################################################### |
||||
|
#NOP ### Adding/Clearing Portal List |
||||
|
#NOP ########################################################################### |
||||
|
|
||||
|
#alias addportals |
||||
|
{ |
||||
|
#foreach {$portals[]} {x} |
||||
|
{ |
||||
|
#map dig {$portals[$x][cmd]} {$portals[$x][vnum]} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
#alias clearportals |
||||
|
{ |
||||
|
#foreach {$portals[]} {y} |
||||
|
{ |
||||
|
#map unlink {$portals[$y][cmd]} |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
#alias lvladdportals |
||||
|
{ |
||||
|
#foreach {$portals[]} {x} |
||||
|
{ |
||||
|
#IF {$tier_level>=$portals[$x][lvl]} |
||||
|
{ |
||||
|
#map dig {$portals[$x][cmd]} {$portals[$x][vnum]} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
#alias lvlclearportals |
||||
|
{ |
||||
|
#foreach {$portals[]} {y} |
||||
|
{ |
||||
|
#IF {$tier_level>=$portals[$y][lvl]} |
||||
|
{ |
||||
|
#map unlink {$portals[$y][cmd]} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
#NOP ########################################################################### |
||||
|
#NOP ### Advanced speedwalking aliases afind, rfind, vfind (area, room, vnum) |
||||
|
#NOP ########################################################################### |
||||
|
|
||||
|
#ALIAS {afind} |
||||
|
{ |
||||
|
#IF "%0"=="" |
||||
|
{ |
||||
|
#show <169>Syntax:<099> af <zone> |
||||
|
}; |
||||
|
#else |
||||
|
{ |
||||
|
#unvar path; |
||||
|
#if {"$GMCP[ROOM][INFO][zone]"=="%1"} {#show <169>Already at <099>%1.}; |
||||
|
#else |
||||
|
{ |
||||
|
#show <169>Area Find:<099> %1; |
||||
|
#var checkportal {}; |
||||
|
#map get roomnote checkportal; |
||||
|
#if {"$checkportal"!="noportal"} |
||||
|
{ |
||||
|
#var portalsused 1; |
||||
|
lvladdportals; |
||||
|
#map find {} {} {} {%1}; |
||||
|
}; |
||||
|
#ELSE |
||||
|
{ |
||||
|
#map find {} {} {} {%1} |
||||
|
}; |
||||
|
#if {$portalsused} |
||||
|
{ |
||||
|
#var portalsused 0; |
||||
|
lvlclearportals |
||||
|
}; |
||||
|
#path run; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
#ALIAS {vfind} |
||||
|
{ |
||||
|
#IF "%0"=="" |
||||
|
{ |
||||
|
#show <169>Syntax:<099> vf <vnum> |
||||
|
}; |
||||
|
#else |
||||
|
{ |
||||
|
#unvar path; |
||||
|
#if {"$GMCP[ROOM][INFO][num]"=="%1"} {#show <169>Already at <099>%1.}; |
||||
|
#else |
||||
|
{ |
||||
|
#show <169>Vnum Find:<099> %1; |
||||
|
#var checkportal {}; |
||||
|
#map get roomnote checkportal; |
||||
|
#if {"$checkportal"!="noportal"} |
||||
|
{ |
||||
|
#var portalsused 1; |
||||
|
lvladdportals; |
||||
|
#map find {%1} |
||||
|
}; |
||||
|
#else |
||||
|
{ |
||||
|
#map find {%1} |
||||
|
}; |
||||
|
#if {$portalsused} |
||||
|
{ |
||||
|
#var portalsused 0; |
||||
|
lvlclearportals |
||||
|
}; |
||||
|
#path run; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
#ALIAS {rfind} |
||||
|
{ |
||||
|
#IF "%0"=="" |
||||
|
{ |
||||
|
#show <169>Syntax:<099> rf <roomname> |
||||
|
}; |
||||
|
#else |
||||
|
{ |
||||
|
#show <169>Room Find:<099> %0; |
||||
|
#var checkportal {}; |
||||
|
#map get roomnote checkportal; |
||||
|
#if {"$checkportal"!="noportal"} |
||||
|
{ |
||||
|
#var portalsused 1; |
||||
|
lvladdportals; |
||||
|
#map find {%0} |
||||
|
}; |
||||
|
#else |
||||
|
{ |
||||
|
#map find {%0} |
||||
|
}; |
||||
|
#if {$portalsused} |
||||
|
{ |
||||
|
#var portalsused 0; |
||||
|
lvlclearportals; |
||||
|
}; |
||||
|
#path run; |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
#NOP ########################################################################### |
||||
|
#NOP ### Mfind alias, will only find the path and show it to you, not run it |
||||
|
#NOP ########################################################################### |
||||
|
|
||||
|
#ALIAS mfind |
||||
|
{ |
||||
|
lvladdportals; |
||||
|
#map find %0; |
||||
|
#path show; |
||||
|
lvlclearportals |
||||
|
} |
||||
|
|
||||
|
|
||||
|
#NOP ########################################################################### |
||||
|
#NOP ### Hfind alias |
||||
|
#NOP ### This let's you use a very loose string to find a path to the closest |
||||
|
#NOP ### matching room in the current area. |
||||
|
#NOP ########################################################################### |
||||
|
|
||||
|
#ALIAS hfind {#map find {%i%*%0%*} {} {} {$GMCP[ROOM][INFO][zone]};#path run} |
||||
|
|
||||
|
|
||||
|
|
||||
|
#NOP ########################################################################### |
||||
|
#NOP ### Advanced runto alias "go" |
||||
|
#NOP ########################################################################### |
||||
|
|
||||
|
#ALIAS {go} |
||||
|
{ |
||||
|
#if {$GMCP[ROOM][INFO][num]==32418} |
||||
|
{ |
||||
|
#if "%0"=="" |
||||
|
{ |
||||
|
#show Already at Recall |
||||
|
}; |
||||
|
#else |
||||
|
{ |
||||
|
rt %0 |
||||
|
} |
||||
|
}; |
||||
|
#elseif {$GMCP[ROOM][INFO][num]==26151} |
||||
|
{ |
||||
|
#if "%0"=="" |
||||
|
{ |
||||
|
d |
||||
|
}; |
||||
|
#else |
||||
|
{ |
||||
|
d; |
||||
|
rt %0 |
||||
|
} |
||||
|
}; |
||||
|
#elseif {$GMCP[ROOM][INFO][num]==26152} |
||||
|
{ |
||||
|
#if "%0"=="" |
||||
|
{ |
||||
|
#send {enter elevator}; |
||||
|
d |
||||
|
}; |
||||
|
#else |
||||
|
{ |
||||
|
#send {enter elevator}; |
||||
|
d; |
||||
|
rt %0 |
||||
|
} |
||||
|
}; |
||||
|
#elseif {"$GMCP[ROOM][INFO][zone]"=="aylor"} |
||||
|
{ |
||||
|
#if "%0"=="" |
||||
|
{ |
||||
|
rt recall |
||||
|
}; |
||||
|
#else |
||||
|
{ |
||||
|
rt recall; |
||||
|
rt %0 |
||||
|
} |
||||
|
|
||||
|
}; |
||||
|
#else |
||||
|
{ |
||||
|
#if "%0"=="" |
||||
|
{ |
||||
|
vf 32418 |
||||
|
}; |
||||
|
#else |
||||
|
{ |
||||
|
vf 32418; |
||||
|
rt %0 |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
#NOP ########################################################################### |
||||
|
#NOP ### Abbreviated aliases for afind, hfind, mfind, rfind, vfind |
||||
|
#NOP ########################################################################### |
||||
|
|
||||
|
#ALIAS af {afind} |
||||
|
#ALIAS hf {hfind} |
||||
|
#ALIAS mf {mfind} |
||||
|
#ALIAS rf {rfind} |
||||
|
#ALIAS vf {vfind} |
||||
|
|
||||
|
#class paths close |
@ -0,0 +1,109 @@ |
|||||
|
#CLASS pathwalk kill |
||||
|
#CLASS pathwalk open |
||||
|
|
||||
|
#NOP Class Name: pathwalk |
||||
|
#NOP File Name: pathwalk.tin |
||||
|
#NOP Description: |
||||
|
#NOP This simple script will utilize a variable (pos_number) set from GMCP to check if you are fighting before |
||||
|
#NOP walking the next node of a path. If the 'pos_number' variable is '8', it will create a ticker to determine |
||||
|
#NOP when you are no longer in a fight and resume walking the path. It also allows you to send commands while |
||||
|
#NOP walking a path as opposed to #PATH RUN. |
||||
|
#NOP Usage: |
||||
|
#NOP 1. Store a path somehow (#path load <blah>, #map find <blah>) |
||||
|
#NOP 2. Type 'rp' |
||||
|
#NOP 3. Settings should clear on end of path, use 'rpof' if all else fails. |
||||
|
#NOP |
||||
|
#NOP Setting 'pos_number' variable from GMCP: |
||||
|
#NOP I would highly recommend using more complete gmcp data capturing script(s) |
||||
|
#NOP such as these: |
||||
|
#NOP |
||||
|
#NOP http://theixle.dyndns.org/aardtin/aardwolf+tintin/gmcp.tin |
||||
|
#NOP http://theixle.dyndns.org/aardtin/aardwolf+tintin/zzGMCP_to_stat.tin |
||||
|
#NOP |
||||
|
#NOP Otherwise, you will need to do something like this: |
||||
|
#NOP |
||||
|
#NOP #EVENT {IAC SB GMCP char.status IAC SE} |
||||
|
#NOP { |
||||
|
#NOP #variable GMCP[CHAR][STATUS] {%0}; |
||||
|
#NOP #variable pos_number {$GMCP[CHAR][STATUS][state]} |
||||
|
#NOP } |
||||
|
#NOP |
||||
|
#NOP Known Bugs |
||||
|
#NOP Problem with pathwalking after using some portal objects during the speedwalk. |
||||
|
|
||||
|
|
||||
|
|
||||
|
#NOP This will be the main alias for initiating a path run(walk) |
||||
|
#ALIAS rp |
||||
|
{ |
||||
|
#NOP Setting 'mapping' variable to 0 is required if using a gmcp mapper script to prevent double MAP EXIT ROOM events ; |
||||
|
#VARIABLE {mapping} {0}; |
||||
|
#EVENT {MAP EXIT ROOM} |
||||
|
{ |
||||
|
#NOP Check to see if we're fighting ; |
||||
|
#IF {$pos_number == 8} |
||||
|
{ |
||||
|
#NOP If fighting, create a ticker to watch for not fighting state, and display a message. ; |
||||
|
#SHOW <179>[<119>Speedwalk<179>]<119>Fighting - creating ticker.<099>; |
||||
|
#TICKER {path_wait} |
||||
|
{ |
||||
|
#NOP This is important: You MUST have something that sets this variable from gmcp. ; |
||||
|
#IF {$pos_number != 8} |
||||
|
{ |
||||
|
#NOP When we're done fighting, remove the ticker and get back to the path. ; |
||||
|
#UNTICKER {path_wait}; |
||||
|
#PATH walk |
||||
|
}; |
||||
|
#ELSE |
||||
|
{ |
||||
|
#NOP Let's display something while in a fight just for confirmation. ; |
||||
|
#SHOW <179>[<119>Speedwalk<179>]<129>waiting... |
||||
|
} |
||||
|
} {.5} |
||||
|
}; |
||||
|
#ELSE |
||||
|
{ |
||||
|
#NOP If we're not fighting, just send the next path node and display something nice. ; |
||||
|
#SHOW <179>[<119>Speedwalk<179>]<099>; |
||||
|
#PATH walk |
||||
|
} |
||||
|
}; |
||||
|
#NOP This will handle cleaning everything up on normal termination of a path. ; |
||||
|
#event {END OF PATH} |
||||
|
{ |
||||
|
#SHOW <179>[<119>Speedwalk<179>]<129>Done.<099>; |
||||
|
#VARIABLE mapping 1; |
||||
|
#UNEVENT {MAP EXIT ROOM}; |
||||
|
#UNEVENT {END OF PATH}; |
||||
|
}; |
||||
|
#NOP Oops, something must be wrong, let's get out of the path and clean up. ; |
||||
|
#ACTION {^Alas, you cannot go that way.} |
||||
|
{ |
||||
|
#VARIABLE mapping 1; |
||||
|
#UNEVENT {MAP EXIT ROOM}; |
||||
|
#UNEVENT {END OF PATH}; |
||||
|
#UNACTION {^Alas, you cannot go that way.} |
||||
|
|
||||
|
}; |
||||
|
#NOP Hrm, somehow the MAP EXIT ROOM event is still on but we have no nodes left in the path. ; |
||||
|
#ACTION {#END OF PATH} |
||||
|
{ |
||||
|
#NOP As before, setting the 'mapping' variable is only necessary if you use a gmcp mapping script that manually moves you in the tintin map. ; |
||||
|
#VARIABLE mapping 1; |
||||
|
#UNEVENT {MAP EXIT ROOM}; |
||||
|
#UNEVENT {END OF PATH}; |
||||
|
#UNACTION {#END OF PATH} |
||||
|
}; |
||||
|
#NOP Let's make the rp alias start the path too. ; |
||||
|
#PATH walk |
||||
|
|
||||
|
} |
||||
|
|
||||
|
#NOP If for some reason you need to clear the speedwalk, use this |
||||
|
#ALIAS {rpof} |
||||
|
{ |
||||
|
#PATH load {#nop}; |
||||
|
#PATH walk |
||||
|
} |
||||
|
|
||||
|
#CLASS pathwalk close |
@ -0,0 +1,7 @@ |
|||||
|
#!/bin/bash |
||||
|
tmux kill-session -t aardwolf |
||||
|
tmux new-session -d -s aardwolf -x 137 -y 31 'tail -fs .1 Aardwolf-chats' |
||||
|
tmux splitw -v -l 21 'tt++ -G setup.tin;bash -i' |
||||
|
tmux splitw -h -l 30 'tail -fs .1 minimap' |
||||
|
tmux selectp -t 1 |
||||
|
tmux attach -t aardwolf |
@ -0,0 +1,89 @@ |
|||||
|
#class quest kill |
||||
|
#class quest open |
||||
|
|
||||
|
|
||||
|
#NOP ############################ |
||||
|
#NOP ### GMCP Quest Handler |
||||
|
#NOP ############################ |
||||
|
|
||||
|
#EVENT {IAC SB GMCP comm.quest IAC SE} |
||||
|
{ |
||||
|
#var {GMCP[COMM][QUEST]} {%0}; |
||||
|
#if {"$GMCP[COMM][QUEST][action]" == "start"} |
||||
|
{ |
||||
|
$repchan @Y[@RQuest Requested@Y]@w: @YTarget@w=@R$GMCP[COMM][QUEST][targ]@w. @YRoom@w=@R$GMCP[COMM][QUEST][room]@w. @YArea@w=@R$GMCP[COMM][QUEST][area]@w.; |
||||
|
#var quest_timer {<fca>ACTIVE<099>}; |
||||
|
#format {quest[start]} {%T}; |
||||
|
}; |
||||
|
#elseif {"$GMCP[COMM][QUEST][action]" == "fail"} |
||||
|
{ |
||||
|
$repchan @W\{-=@RQuest Failed@W=-\}@w; |
||||
|
#var quest {}; |
||||
|
#var temp {}; |
||||
|
#var $GMCP[COMM][QUEST] {}; |
||||
|
#var action {}; |
||||
|
}; |
||||
|
#elseif {"$GMCP[COMM][QUEST][action]" == "comp"} |
||||
|
{ |
||||
|
#format {quest[end]} {%T}; |
||||
|
#math {quest[time]} {$quest[end] - $quest[start]}; |
||||
|
#var quest_timer 30; |
||||
|
#tic quest_timer |
||||
|
{ |
||||
|
#math quest_timer {$quest_timer - 1}; |
||||
|
#if $quest_timer==0 {#untic quest_timer;#var quest_timer <cfa>READY<099>}; |
||||
|
} {60} ; |
||||
|
#if {$GMCP[COMM][QUEST][pracs] != 0} |
||||
|
{ |
||||
|
#if {"$quest[bonus]" != ""} |
||||
|
{ |
||||
|
#var quest[bonus] {$quest[bonus]@w, @R$GMCP[COMM][QUEST][pracs] prac}; |
||||
|
} |
||||
|
{ |
||||
|
#var {quest[bonus]} { @Y[@WBonus: @R$GMCP[COMM][QUEST][pracs] prac}; |
||||
|
}; |
||||
|
#var quest[bonus] {$quest[bonus]@Y]@w}; |
||||
|
}; |
||||
|
#if {$GMCP[COMM][QUEST][trains] != 0} |
||||
|
{ |
||||
|
#if {"$quest[bonus]" != ""} |
||||
|
{ |
||||
|
#var quest[bonus] {$quest[bonus]@w, @R$GMCP[COMM][QUEST][trains] train}; |
||||
|
} |
||||
|
{ |
||||
|
#var {quest[bonus]} { @Y[@WBonus: @R$GMCP[COMM][QUEST][trains] train}; |
||||
|
}; |
||||
|
#var quest[bonus] {$quest[bonus]@Y]@w}; |
||||
|
}; |
||||
|
#if {$GMCP[COMM][QUEST][tp] != 0} |
||||
|
{ |
||||
|
#if {"$quest[bonus]" != ""} |
||||
|
{ |
||||
|
#var quest[bonus] {$quest[bonus]@w, @R$GMCP[COMM][QUEST][tp] tp}; |
||||
|
} |
||||
|
{ |
||||
|
#var {quest[bonus]} { @Y[@WBonus: @R$GMCP[COMM][QUEST][tp] tp}; |
||||
|
}; |
||||
|
#var quest[bonus] {$quest[bonus]@Y]@w}; |
||||
|
}; |
||||
|
$repchan @R[@YQuest Completed@R] @Y[@WQp: @R$GMCP[COMM][QUEST][totqp]@Y] $quest[time] secs $quest[bonus]@w; |
||||
|
#var quest {}; |
||||
|
#var temp {}; |
||||
|
#var GMCP[COMM][QUEST] {}; |
||||
|
#var action {}; |
||||
|
}; |
||||
|
#elseif {"$GMCP[COMM][QUEST][action]" == "ready"} |
||||
|
{ |
||||
|
$repchan @W\{-=@RQuest Time@W=-\}@w; |
||||
|
#var quest_timer {<129>READY<099>}; |
||||
|
#bell; |
||||
|
}; |
||||
|
#if {$debug} |
||||
|
{ |
||||
|
#showme %1 |
||||
|
}; |
||||
|
#nop; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
#class quest close |
@ -0,0 +1,26 @@ |
|||||
|
#VARIABLE {name} {}; # Character name |
||||
|
#VARIABLE {password} {}; # Character password |
||||
|
#VARIABLE {dir} {.}; # Directory of setings, without '/' or '~' (Ex. /home/user/aardwolf, not ~/aardwolf ) |
||||
|
|
||||
|
#READ {$dir/gmcp.tin}; |
||||
|
|
||||
|
#SESSION {aard} {aardmud.org} {4000}; |
||||
|
|
||||
|
#READ {$dir/variables.tin} |
||||
|
#READ {$dir/spellup.tin} |
||||
|
#READ {$dir/zzGMCP_to_stat.tin} |
||||
|
#READ {$dir/general.tin} |
||||
|
#READ {$dir/map.tin} |
||||
|
#READ {$dir/ticking.tin} |
||||
|
#READ {$dir/quest.tin} |
||||
|
|
||||
|
#MAP READ {map-all.tt} # Once you have a map file, you will read it in here |
||||
|
|
||||
|
#LOG APPEND {$dir/active_log.raw} |
||||
|
|
||||
|
#VARIABLE {mapping} {1} |
||||
|
#VARIABLE {showmap} {0} |
||||
|
#VARIABLE {autoscan} {0} |
||||
|
#VARIABLE {repoptrack} {1} |
||||
|
|
||||
|
#SPLIT 0 4 |
@ -0,0 +1,170 @@ |
|||||
|
#class spellup kill; |
||||
|
#class spellup open; |
||||
|
|
||||
|
#ALIAS {^spup{| spup}} |
||||
|
{ |
||||
|
#send {spellup learned} |
||||
|
} |
||||
|
{5} |
||||
|
|
||||
|
#ACTION {^%d,%2,%d,%d,%d,%6,%d$} |
||||
|
{ |
||||
|
#if {%3 == 2 || %3 == 3} |
||||
|
{ |
||||
|
#if {"%6" == "-1"} |
||||
|
{ |
||||
|
#if {%7 == 1} |
||||
|
{ |
||||
|
#if {$slisting} |
||||
|
{ |
||||
|
#variable {spellup[learned][%1]} {1} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}; |
||||
|
#line gag |
||||
|
} |
||||
|
{5} |
||||
|
|
||||
|
#ACTION {^\{/noteedit\}$} |
||||
|
{ |
||||
|
#if {$spellup[state][was_casting]} |
||||
|
{ |
||||
|
#read $dir/setup.tin; |
||||
|
#variable {spellup[state][was_casting]} {0}; |
||||
|
spellup resume |
||||
|
}; |
||||
|
#else |
||||
|
{ |
||||
|
#read $dir/setup.tin; |
||||
|
#variable {spellup[state][was_casting]} {0} |
||||
|
}; |
||||
|
} |
||||
|
{5} |
||||
|
|
||||
|
#ACTION {^\{/spellheaders}$} |
||||
|
{ |
||||
|
#variable slisting 1; |
||||
|
#line gag |
||||
|
} |
||||
|
{5} |
||||
|
|
||||
|
#ACTION {^\{affoff}%d$} |
||||
|
{ |
||||
|
#if {$spellup[state][cast]} |
||||
|
{ |
||||
|
#if {$spellup[learned][%1]} |
||||
|
{ |
||||
|
#if {!$spellup[bad][%1]} |
||||
|
{ |
||||
|
#if {"$position" == "Standing"} |
||||
|
{ |
||||
|
#send {cast %1} |
||||
|
}; |
||||
|
#else |
||||
|
{ |
||||
|
#if {!$spellup[bad][%1]} |
||||
|
{ |
||||
|
#variable {spellup[pending][%1]} {1} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}; |
||||
|
#variable spellup[pending][%1][1]; |
||||
|
#line gag |
||||
|
} |
||||
|
{5} |
||||
|
|
||||
|
#ACTION {^\{affon\}%d,%d$} |
||||
|
{ |
||||
|
#unvariable spellup[pending][%1]; |
||||
|
#line gag |
||||
|
} |
||||
|
{5} |
||||
|
|
||||
|
#ACTION {^\{noteedit\}$} |
||||
|
{ |
||||
|
#if {$spellup[state][cast]} |
||||
|
{ |
||||
|
#variable {spellup[state][was_casting]} {1}; |
||||
|
spup pause |
||||
|
}; |
||||
|
#else |
||||
|
{ |
||||
|
#variable {spellup[state][was_casting]} {0} |
||||
|
}; |
||||
|
write; |
||||
|
#killall tick |
||||
|
} |
||||
|
{5} |
||||
|
|
||||
|
#ACTION {^\{sfail\}%d,%d,%d,%4$} |
||||
|
{ |
||||
|
#if {$spellup[state][cast]} |
||||
|
{ |
||||
|
#if {$spellup[learned][%1]} |
||||
|
{ |
||||
|
#if {%2 == 0} |
||||
|
{ |
||||
|
#if {%3 == 1} |
||||
|
{ |
||||
|
#if {!$spellup[bad][%1]} |
||||
|
{ |
||||
|
#if {"$position" == "Standing"} |
||||
|
{ |
||||
|
#line gag |
||||
|
#send {cast %1} |
||||
|
} |
||||
|
} |
||||
|
}; |
||||
|
#elseif {%3 == 4} |
||||
|
{ |
||||
|
#line gag; |
||||
|
#show Not enough mana. Put spell in spellup[pending]; |
||||
|
#variable spellup[pending][%1] 1 |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
{5} |
||||
|
|
||||
|
#ACTION {^\{spellheaders spellup learned\}$} |
||||
|
{ |
||||
|
#variable slisting 1; |
||||
|
#variable {spellup[learned]} {}; |
||||
|
#line gag |
||||
|
} |
||||
|
{5} |
||||
|
|
||||
|
#ALIAS {^badspell %1} |
||||
|
{ |
||||
|
#if {$spellup[bad][%1]} |
||||
|
{ |
||||
|
#variable spellup[bad][%1] 0 |
||||
|
}; |
||||
|
#else |
||||
|
{ |
||||
|
#variable spellup[bad][%1] 1 |
||||
|
} |
||||
|
} |
||||
|
{5} |
||||
|
|
||||
|
#ALIAS {^spup pause$} |
||||
|
{ |
||||
|
#variable {spellup[state][cast]} {0} |
||||
|
} |
||||
|
{5} |
||||
|
|
||||
|
#ALIAS {^spup resume$} |
||||
|
{ |
||||
|
#variable {spellup[state][cast]} {1}; |
||||
|
#foreach {$spellup[pending][]} {spell_pending} |
||||
|
{ |
||||
|
#send {cast $spell_pending} |
||||
|
} |
||||
|
} |
||||
|
{5} |
||||
|
|
||||
|
#class spellup close; |
@ -0,0 +1,41 @@ |
|||||
|
#CLASS ticking kill |
||||
|
#CLASS ticking open |
||||
|
|
||||
|
#event {IAC SB GMCP comm.tick IAC SE} |
||||
|
{ |
||||
|
#var ticks 30; |
||||
|
#tic TICKING |
||||
|
{ |
||||
|
#math thirst {$GMCP[CHAR][STATUS][thirst] / 10 }; |
||||
|
#math hunger {$GMCP[CHAR][STATUS][hunger] / 10 }; |
||||
|
#if {$ticks > 0} |
||||
|
{ |
||||
|
#math ticks {$ticks - 1} |
||||
|
}; |
||||
|
#if {$ticks < 10} |
||||
|
{ |
||||
|
#show {Tick:<139> $ticks <099>QUEST: <139>$quest_timer<099> Exp:<139> $GMCP[CHAR][STATUS][tnl] \t <099>T/H:[ $thirst / $hunger] Align:$align} 3 |
||||
|
} |
||||
|
|
||||
|
{ |
||||
|
#show {Tick:<139> $ticks <099>QUEST: <139>$quest_timer<099> Exp:<139> $GMCP[CHAR][STATUS][tnl] \t <099>T/H:[ $thirst / $hunger ] Align:$align} 3 |
||||
|
} |
||||
|
} {1} |
||||
|
} |
||||
|
|
||||
|
#ACTION {^There are %d minutes remaining until you can go on another quest.$} |
||||
|
{ |
||||
|
#IF {"%1"!="$quest_timer"} |
||||
|
{ |
||||
|
#var quest_timer %1; |
||||
|
#untic quest_timer; |
||||
|
#tic quest_timer |
||||
|
{ |
||||
|
#math quest_timer {$quest_timer - 1}; |
||||
|
#if $quest_timer==0 {#untic quest_timer;#var quest_timer <129>READY<099>}; |
||||
|
} {60} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
#CLASS ticking close |
||||
|
|
@ -0,0 +1,19 @@ |
|||||
|
#!/bin/bash |
||||
|
# This is a Tmux script that handles starting up tintin with all of the Aardwolf settings. |
||||
|
# You will need to change the -x <column> and -y <row> size |
||||
|
# Also change '/home/adam/tt/aard' to whatever directory you use for the settings. |
||||
|
# Requires Tmux 1.5 - See http://theixle.dyndns.org for a download link. |
||||
|
|
||||
|
tmux kill-session -t aardwolf |
||||
|
tmux new-session -d -s aardwolf -x 189 -y 47 |
||||
|
tmux splitw -h -l 159 'tail -fs .1 /home/adam/tt/aard/Aardwolf-chats' |
||||
|
tmux splitw -v -l 37 'tt++ -G /home/adam/tt/aard/setup.tin;bash -i' |
||||
|
tmux splitw -h -l 68 'tail -fs .1 /home/adam/tt/aard/chars' |
||||
|
tmux selectp -t 0 |
||||
|
tmux splitw -v -l 22 'tail -fs .1 /home/adam/tt/aard/minimap' |
||||
|
tmux selectp -t 0 |
||||
|
tmux splitw -v -l 14 'tail -fs .1 /home/adam/tt/aard/group' |
||||
|
tmux selectp -t 5 |
||||
|
tmux splitw -v -l 20 'tail -fs .1 /home/adam/tt/aard/quest' |
||||
|
tmux selectp -t 4 |
||||
|
tmux attach-session -t aardwolf |
@ -0,0 +1,57 @@ |
|||||
|
#CLASS {variables} OPEN |
||||
|
|
||||
|
#VARIABLE {action} {} |
||||
|
#VARIABLE {align} {-270} |
||||
|
#VARIABLE {base_con} {14} |
||||
|
#VARIABLE {base_dex} {12} |
||||
|
#VARIABLE {base_int} {11} |
||||
|
#VARIABLE {base_luck} {30} |
||||
|
#VARIABLE {base_str} {30} |
||||
|
#VARIABLE {base_wis} {30} |
||||
|
#VARIABLE {campaign} {0} |
||||
|
#VARIABLE {chanrec} {auction} |
||||
|
#VARIABLE {con} {17} |
||||
|
#VARIABLE {curr_time} {1318772334} |
||||
|
#VARIABLE {current_level} {1} |
||||
|
#VARIABLE {dex} {17} |
||||
|
#VARIABLE {dr} {187} |
||||
|
#VARIABLE {enemy_hp} {} |
||||
|
#VARIABLE {exit} {w} |
||||
|
#VARIABLE {fighting} {n} |
||||
|
#VARIABLE {floater} {rattle} |
||||
|
#VARIABLE {getmap} {0} |
||||
|
#VARIABLE {gold} {4686553} |
||||
|
#VARIABLE {healpot} {jade} |
||||
|
#VARIABLE {hp} {240} |
||||
|
#VARIABLE {hp_percent} {100.00} |
||||
|
#VARIABLE {hr} {55} |
||||
|
#VARIABLE {int} {14} |
||||
|
#VARIABLE {luck} {60} |
||||
|
#VARIABLE {mana} {200} |
||||
|
#VARIABLE {mana_percent} {100.00} |
||||
|
#VARIABLE {mapping} {1} |
||||
|
#VARIABLE {maxhp} {240} |
||||
|
#VARIABLE {maxmana} {} |
||||
|
#VARIABLE {maxmoves} {700} |
||||
|
#VARIABLE {mob_fighting} {} |
||||
|
#VARIABLE {movecolor} {<188><838>} |
||||
|
#VARIABLE {moves} {700} |
||||
|
#VARIABLE {moves_percent} {100.00} |
||||
|
#VARIABLE {player} {} |
||||
|
#VARIABLE {portalbag} {satchel} |
||||
|
#VARIABLE {pos_number} {3} |
||||
|
#VARIABLE {position} {Standing} |
||||
|
#VARIABLE {potbag} {xbag} |
||||
|
#VARIABLE {prompt} {<120>100.00 HP <150>| <140>100.00 MANA <150>| <188><838>100.00 MV<099>} |
||||
|
#VARIABLE {qp} {2315} |
||||
|
#VARIABLE {quest} {} |
||||
|
#VARIABLE {repchan} {gt} |
||||
|
#VARIABLE {str} {41} |
||||
|
#VARIABLE {temp} {} |
||||
|
#VARIABLE {time} {} |
||||
|
#VARIABLE {tnl} {3000} |
||||
|
#VARIABLE {tp} {9} |
||||
|
#VARIABLE {wis} {41} |
||||
|
#VARIABLE {word} {get aardwolf from satchel;wear aardwolf;enter;wear rattle;put aardwolf in satchel} |
||||
|
|
||||
|
#CLASS {variables} CLOSE |
@ -0,0 +1,59 @@ |
|||||
|
#ALIAS {||gmcp_prompt_statmon} |
||||
|
{ |
||||
|
#variable tier {$GMCP[CHAR][BASE][tier]}; |
||||
|
#math {tier_level} {$tier*10 + $current_level}; |
||||
|
#variable str {$GMCP[CHAR][STATS][str]}; |
||||
|
#variable base_str {$GMCP[CHAR][MAXSTATS][maxstr]}; |
||||
|
#variable int {$GMCP[CHAR][STATS][int]}; |
||||
|
#variable base_int {$GMCP[CHAR][MAXSTATS][maxint]}; |
||||
|
#variable wis {$GMCP[CHAR][STATS][wis]}; |
||||
|
#variable base_wis {$GMCP[CHAR][MAXSTATS][maxwis]}; |
||||
|
#variable dex {$GMCP[CHAR][STATS][dex]}; |
||||
|
#variable base_dex {$GMCP[CHAR][MAXSTATS][maxdex]}; |
||||
|
#variable con {$GMCP[CHAR][STATS][con]}; |
||||
|
#variable base_con {$GMCP[CHAR][MAXSTATS][maxcon]}; |
||||
|
#variable luck {$GMCP[CHAR][STATS][luck]}; |
||||
|
#variable base_luck {$GMCP[CHAR][MAXSTATS][maxluck]}; |
||||
|
#math hp_percent {((1.00*$GMCP[CHAR][VITALS][hp]) / $GMCP[CHAR][MAXSTATS][maxhp])*100}; |
||||
|
#math mana_percent {((1.00*$GMCP[CHAR][VITALS][mana])/$GMCP[CHAR][MAXSTATS][maxmana])*100}; |
||||
|
#math moves_percent {((1.00*$GMCP[CHAR][VITALS][moves])/$GMCP[CHAR][MAXSTATS][maxmoves])*100}; |
||||
|
#variable hr {$GMCP[CHAR][STATS][hr]}; |
||||
|
#variable dr {$GMCP[CHAR][STATS][dr]}; |
||||
|
#variable position {$GMCP[CHAR][STATUS][pos]}; |
||||
|
#variable hp {$GMCP[CHAR][VITALS][hp]}; |
||||
|
#variable maxhp {$GMCP[CHAR][MAXSTATS][maxhp]}; |
||||
|
#variable mana {$GMCP[CHAR][VITALS][mana]}; |
||||
|
#variable maxmana {$GMCP[CHAR][MAxSTATS][maxmana]}; |
||||
|
#variable moves {$GMCP[CHAR][VITALS][moves]}; |
||||
|
#variable maxmoves {$GMCP[CHAR][MAXSTATS][maxmoves]}; |
||||
|
#variable gold {$GMCP[CHAR][WORTH][gold]}; |
||||
|
#variable qp {$GMCP[CHAR][WORTH][qp]}; |
||||
|
#variable tp {$GMCP[CHAR][WORTH][tp]}; |
||||
|
#variable align {$GMCP[CHAR][STATUS][align]}; |
||||
|
#variable tnl {$GMCP[CHAR][STATUS][tnl]}; |
||||
|
#variable current_level {$GMCP[CHAR][STATUS][level]}; |
||||
|
#variable pos_number {$GMCP[CHAR][STATUS][state]}; |
||||
|
#variable mob_fighting {$GMCP[CHAR][STATUS][enemy]}; |
||||
|
#variable enemy_hp {$GMCP[CHAR][STATUS][enemypct]}; |
||||
|
#variable hunger {$GMCP[CHAR][STATUS][hunger]}; |
||||
|
#variable thirst {$GMCP[CHAR][STATUS][thirst]}; |
||||
|
#format {movecolor} {%c} {light yellow}; |
||||
|
#if {$hp_percent == 0.00} |
||||
|
{ |
||||
|
protocol gmcp sendchar |
||||
|
}; |
||||
|
#variable {prompt} {<120>$hp_percent HP <150>| <140>$mana_percent MANA <150>| $movecolor$moves_percent MV}; |
||||
|
#if {$pos_number == 8} |
||||
|
{ |
||||
|
#variable fighting y; |
||||
|
#variable {prompt} {$prompt <150>| <110>Enemy $enemy_hp} |
||||
|
}; |
||||
|
#else |
||||
|
{ |
||||
|
#variable fighting n |
||||
|
}; |
||||
|
#variable {prompt} {$prompt<099>}; |
||||
|
#showme {$prompt} {2} |
||||
|
} |
||||
|
{5} |
||||
|
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue