first commit maybe
This commit is contained in:
commit
c6b18a44ca
1
Aardwolf-chats
Normal file
1
Aardwolf-chats
Normal file
@ -0,0 +1 @@
|
||||
This file intentionally blank. It stores communications once connected.
|
74
README
Normal file
74
README
Normal file
@ -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.
|
4
Todo
Normal file
4
Todo
Normal file
@ -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
|
38
active_log.raw
Normal file
38
active_log.raw
Normal file
@ -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
|
59
affcap.tin
Normal file
59
affcap.tin
Normal file
@ -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
|
1
affects
Normal file
1
affects
Normal file
@ -0,0 +1 @@
|
||||
This file left intentionally blank. It will store affects list once connected.
|
1
chars
Normal file
1
chars
Normal file
@ -0,0 +1 @@
|
||||
This file left intentionally blank. Will store characters and mobs in room once connected.
|
78
general.tin
Normal file
78
general.tin
Normal file
@ -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}
|
309
gmcp.tin
Normal file
309
gmcp.tin
Normal file
@ -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
|
1
group
Normal file
1
group
Normal file
@ -0,0 +1 @@
|
||||
This file intentionally blank. It stores group data once connected.
|
3
history-discon.txt
Normal file
3
history-discon.txt
Normal file
@ -0,0 +1,3 @@
|
||||
|
||||
quit
|
||||
#end
|
77
map.tin
Normal file
77
map.tin
Normal file
@ -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
|
1
minimap
Normal file
1
minimap
Normal file
@ -0,0 +1 @@
|
||||
This file left intentionally blank. Will store ascii map once connected.
|
272
paths.tin
Normal file
272
paths.tin
Normal file
@ -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
|
109
pathwalk.tin
Normal file
109
pathwalk.tin
Normal file
@ -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
|
7
pmuxit
Executable file
7
pmuxit
Executable file
@ -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
|
89
quest.tin
Normal file
89
quest.tin
Normal file
@ -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
|
26
setup.tin
Normal file
26
setup.tin
Normal file
@ -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
|
170
spellup.tin
Normal file
170
spellup.tin
Normal file
@ -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;
|
41
ticking.tin
Normal file
41
ticking.tin
Normal file
@ -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
|
||||
|
19
tmuxit
Executable file
19
tmuxit
Executable file
@ -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
|
57
variables.tin
Normal file
57
variables.tin
Normal file
@ -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
|
59
zzGMCP_to_stat.tin
Normal file
59
zzGMCP_to_stat.tin
Normal file
@ -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}
|
||||
|
Loading…
x
Reference in New Issue
Block a user