Compare commits

...

No commits in common. "master" and "wiki" have entirely different histories.
master ... wiki

22 changed files with 110 additions and 488 deletions

25
ProjectHome.md Normal file
View File

@ -0,0 +1,25 @@
<h1><u>Aardwolf Tintin Package</u></h1>
<p>
<b>OS</b>: Linux/Unix or Mac (Although these settings have been known to work with <a href='http://tintin.sourceforge.net/download.php'>Wintin++</a> as well)<br>
<b>Requires</b>: <a href='http://tintin.sourceforge.net'>Tintin 2.00.7</a><br>
<b>Recommended</b>: <a href='http://tmux.sourceforge.net'>Tmux 1.5</a> (or some comparable program).<br>
<table cellpadding='5px' border='1'>
<tr>
<td>
<h3><u>Features:</u></h3>
<dl>
<dt>GMCP event handling/variable setting<br>
<dt>Integrated GMCP/Tintin Mapping<br>
<dt>Captures into logfiles for "miniwindows":<br>
<blockquote><dd>ASCII Map<br>
<dd>Communications<br>
<dd>Affects<br>
<dd>Group Stats<br>
<dd>Mobs/Chars in room<br>
<dt>Spellup aliases/triggers for keeping spells up<br>
<dt>A customized prompt with several timers for ticks/quests/etc<br>
<dt>Examples of making aliases that use #map find in several ways<br>
<p>
Most of the work was done by the player "Cheezburger." It is<br>
highly undocumented and by no means bug free.<br>
<td><a href='https://lh3.googleusercontent.com/-4rqyXaYgCGw/UBnVVDdJghI/AAAAAAAAABA/BmiBKnPhkII/s800/aardwolf%252Btintin2.PNG'><img src='https://lh3.googleusercontent.com/-4rqyXaYgCGw/UBnVVDdJghI/AAAAAAAAABA/BmiBKnPhkII/s800/aardwolf%252Btintin2.PNG' alt='aardwolf-tintin screenshot'></img></a>

102
README.md
View File

@ -1,37 +1,77 @@
# TinTin++ Settings for Aardwolf MUD #Copy of the README
## Setup: ```
* Clone the repository Intro:
* Edit username in config.tin ------
* Edit password in config.tin This project compliments of the Aardwolf character Cheezburger.
* Edit bag in config.tin This is a group of settings intended to be comparable to the base MUSHClient Aardwolf settings.
* Edit paths in aardwolf-session 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.
## Usage: Getting Tintin++:
* Launch tmux (tmux -2) -----------------
* Run aardwolf-session (./aardwolf-session) These settings (mainly the mapping) require Tintin++ versin 2.00.7 or better.
* In-game: tags channel on Check out http://tintin.sourceforge.net/download.php for the latest versions.
* In-game: tags map on
* In-game: tags mapexits on
* In-game: tags mapnames on
* In-game: tags roomchars on
* In-game: tags roomobjs on
## Features Getting Started:
* GMCP powered 2-line prompt with colored percentage meters (prompt.tin) ----------------
* Quest time ticker and target tracking (quest.tin) edit setup.tin
* Repop watch and announce (gmcp.tin) start tintin with setup.tin (Ex. /usr/games/tt++ -G setup.tin)
* Minimap in seperate window (minimap.tin)
* Alias-driven note jotting system (aliases.tin)
* Channels logged to separate window (gmcp.tin)
* Room characters/mobiles and objects logged to file (minimap.tin)
## Commands Tintin Mapping:
* debug on|off - toggles echoing GMCP data as it arrives ---------------
* repopwatch on|off - toggles announcing of repops in $repchan #map create 60000 - to initialize a new tintin map
* .note *message here* - adds *message* to notes.log (bottom right window) #map flag nofollow on - to stop tintin trying to create rooms based on movement
* .newpage - clears the note screen, providing a fresh page -all the room creation is done via gmcp
* cpcheck - print list of campaign targets to note window, sorted by area #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
The actions.tin and aliases.tin files are a place for your personal triggers and aliases. 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.
```

11
RecommendedSSHClients.md Normal file
View File

@ -0,0 +1,11 @@
# Introduction #
These SSH clients have been known to work well.
# Clients #
**iPad**/**iPhone**
https://itunes.apple.com/us/app/vssh-hd-lite/id535056241?mt=8
**Android**
https://play.google.com/store/apps/details?id=org.connectbot&hl=en

1
Screenshot_PC_main.md Normal file
View File

@ -0,0 +1 @@
<img src='https://lh3.googleusercontent.com/-4rqyXaYgCGw/UBnVVDdJghI/AAAAAAAAABA/BmiBKnPhkII/s800/aardwolf%252Btintin2.PNG' alt='aardwolf-tintin screenshot'></img>

2
SubmitYourScript.md Normal file
View File

@ -0,0 +1,2 @@
For users to submit their own scripts. Simply paste it as a comment.
I have no idea what the length limit is atm.

View File

@ -1 +0,0 @@
#ACTION {The quest will start in} {#bell};

View File

@ -1,58 +0,0 @@
#ALIAS {porthome}
{
get portal $bag;
wear portal;
enter;
remove portal;
put portal $bag;
wear all;
};
#ALIAS {^.note %*}
{
#line {log} {$dir/logs/notes.log} {%1};
};
#ALIAS {^.newpage$}
{
#5 #line {log} {$dir/logs/notes.log} {\n\n\n\n};
};
#ALIAS {^.colors$}
{
#forall {0;1;2;3;4;5;6;7;8;9}
{
#showme {<0&09>\<0&09\><099> <1&09>\<1&09\><099>};
};
};
#ALIAS {cpcheck}
{
.newpage;
#var {cplog} {1};
#line {log} {$dir/logs/notes.log} {<199>-==[<169>Campaign Targets<199>]==-<099>\n};
campaign check;
};
#ACTION {^You still have to kill %. %* (%*)$}
{
#if {$cplog}
{
#list {cpareas} {find} {%3} {exists};
#if {$exists == 0} { #list {cpareas} {sort} {%3}; };
#list {cplist[%3]} {sort} {%2};
};
};
#ACTION {left to finish this campaign.$}
{
#var {cplog} {0};
#foreach {$cpareas[%*]} {area}
{
#line {log} {$dir/logs/notes.log} {<199>$area:<099>};
#foreach {$cplist[$area][%*]} {target}
{
#line {log} {$dir/logs/notes.log} { * <029>$target<099>};
}
}
};

View File

@ -1,7 +0,0 @@
#!/bin/bash
tmux split-window -h -p 22 'tail -fs .1 /home/br4n/documents/MUD/AardWolf/aardwolf-tintin/logs/minimap.log'
tmux split-window -v -p 58 'tail -fs .1 /home/br4n/documents/MUD/AardWolf/aardwolf-tintin/logs/notes.log'
tmux select-pane -L
tmux split-window -v -p 80 'tail -fs .1 /home/br4n/documents/MUD/AardWolf/aardwolf-tintin/logs/channel.log'
tmux swap-pane -Ud
tmux send-keys 'tt++ -G /home/br4n/documents/MUD/AardWolf/aardwolf-tintin/config.tin' Enter

View File

@ -1,14 +0,0 @@
#!/bin/bash
# Clear Username and Password
sed -i '1,2s/{\(.*\)} {\(.*\)}\;$/{\1} {}\;/' config.tin
echo "Clearing credentials..."
# Empty logs and history
for f in logs/*.log
do
rm $f
touch $f
echo "Clearing $f..."
done
echo "Done - ready to commit."

View File

@ -1,28 +0,0 @@
#VARIABLE {name} {};
#VARIABLE {password} {};
#VARIABLE {dir} {.};
#VARIABLE {repchan} {gt};
#VARIABLE {bag} {pentagram};
#CONFIG {LOG} {RAW}
#LOG APPEND {$dir/logs/active.log}
#READ {$dir/src/prompt.tin};
#READ {$dir/src/gmcp.tin};
#READ {$dir/src/char.tin};
#READ {$dir/src/quest.tin};
#READ {$dir/src/minimap.tin};
#READ {$dir/src/init.tin};
#READ {$dir/aliases.tin};
#READ {$dir/actions.tin};
#ACTION {{^\{chan ch={answer|question|wangrp|tech|gossip|barter|auction|nobletalk|sports|gclan|newbie|curse|market}\}%2$}} {#line gag};
#ACTION {{\{stats\}}} {#line gag};
#SESSION {aard} {aardmud.org} {4000};
#SPLIT {0} {3};
#SUB {\{chan ch=%*\}} {};

View File

View File

View File

View File

View File

View File

View File

@ -1,48 +0,0 @@
#class char kill
#class char open
#event {IAC SB GMCP char.vitals IAC SE}
{
#if {$debug} { #showme %1 };
#var {GMCPDATA[CHAR][VITALS]} {%0};
#var {hp} {$GMCPDATA[CHAR][VITALS][hp]};
#var {mana} {$GMCPDATA[CHAR][VITALS][mana]};
#var {moves} {$GMCPDATA[CHAR][VITALS][moves]};
prompt_statmon;
}
#event {IAC SB GMCP char.maxstats IAC SE}
{
#if {$debug} { #showme %1 };
#var {GMCPDATA[CHAR][MAXSTATS]} {%0};
#var {maxhp} {$GMCPDATA[CHAR][MAXSTATS][maxhp]};
#var {maxmana} {$GMCPDATA[CHAR][MAXSTATS][maxmana]};
#var {maxmoves} {$GMCPDATA[CHAR][MAXSTATS][maxmoves]};
#nop Actual stats below are yet unusued.
#var {maxstr} {$GMCPDATA[CHAR][MAXSTATS][maxstr]};
#var {maxint} {$GMCPDATA[CHAR][MAXSTATS][maxint]};
#var {maxwis} {$GMCPDATA[CHAR][MAXSTATS][maxwis]};
#var {maxdex} {$GMCPDATA[CHAR][MAXSTATS][maxdex]};
#var {maxcon} {$GMCPDATA[CHAR][MAXSTATS][maxcon]};
#var {maxluck} {$GMCPDATA[CHAR][MAXSTATS][maxluck]};
prompt_statmon;
}
#event {IAC SB GMCP char.status IAC SE}
{
#variable {GMCPDATA[CHAR][STATUS]} {%0};
#if {$debug} {#showme %1};
#var {level} {$GMCPDATA[CHAR][STATUS][level]};
#var {tnl} {$GMCPDATA[CHAR][STATUS][tnl]};
#var {hunger} {$GMCPDATA[CHAR][STATUS][hunger]};
#var {thirst} {$GMCPDATA[CHAR][STATUS][thirst]};
#var {align} {$GMCPDATA[CHAR][STATUS][align]};
#var {state} {$GMCPDATA[CHAR][STATUS][state]};
#var {position} {$GMCPDATA[CHAR][STATUS][pos]};
#var {enemy} {$GMCPDATA[CHAR][STATUS][enemy]};
#var {enemy_health} {$GMCPDATA[CHAR][STATUS][enemypct]};
prompt_statmon;
}
#class char close

View File

@ -1,89 +0,0 @@
#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 };
#showme { Debug is <139>$debug<099> };
#nop;
}
#alias {repopwatch {on|off}}
{
#if {"%1" == "on"} { #variable repop 1 };
#else { #variable repop 0 };
#showme { Repopwatch is <139>$repop<099> };
#nop;
}
#alias {{^check repop$}}
{
#format {timestamp} {%T};
#math {repop_time} {($last_repop+606)-$timestamp};
#send {$repchan @CNext repop@w: @R$repop_time @Wseconds.@w};
}
#event {IAC SB GMCP comm.channel IAC SE}
{
#if {$debug} { #showme %1 };
#var {GMCPDATA[COMM][CHATLOGGER]} {%0};
#if {"$GMCPDATA[COMM][CHATLOGGER][chan]" != "mobsay"}
{
#line log {$dir/logs/channel.log} {$GMCPDATA[COMM][CHATLOGGER][msg]};
};
}
#event {IAC SB GMCP comm.repop IAC SE}
{
#if {$debug} { #showme %1 };
#var {GMCP[COMM][REPOP]} {%0};
#format {last_repop} {%T};
#format {time} {%t} {%H:%M:%S};
#send {$repchan @WRepop @w= @r$GMCP[COMM][REPOP][zone]@w @@ @r$time};
#var time {};
#nop;
}
#nop Start up GMCP connection with the server
#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 {PROGRAM START}
{
#variable CLIENT_NAME %0;
#variable CLIENT_VERSION %1;
}
#nop Write out command history and variable class on disconnect
#event {SESSION DISCONNECTED}
{
#history write {$dir/logs/history.log};
}
#event {SESSION CONNECTED}
{
$name;
$password;
#unvar name;
#unvar password;
#history read {$dir/logs/history.log};
}
#class gmcp close

View File

@ -1,40 +0,0 @@
#class init kill
#class init open
#ALIAS {do_on_connect}
{
map;
protocol gmcp sendchar;
quest time;
look;
};
#ACTION {^############# Reconnecting to Game #############$} {do_on_connect}
#ACTION {^Welcome to Aardwolf. May your adventures be mystical, challenging and rewarding.} {do_on_connect}
#ACTION {^You do not have to wait to go on another quest.$}
{
#var {quest[timer]} {<129>READY<099>};
prompt_statmon;
#class init kill
}
#ACTION {^There are %d minutes remaining until you can go on another quest.$}
{
start_quest_timer %1;
prompt_statmon;
#class init kill
}
#ACTION {^There is less than a minute remaining until you can go on another quest.$}
{
start_quest_timer 1;
prompt_statmon;
#class init kill
}
#ACTION {^Time left for current quest: %d$}
{
#var {quest[timer]} {<fca>ACTIVE<099>};
prompt_statmon;
#class init kill
}
#class init close

View File

@ -1,61 +0,0 @@
#class minimap kill
#class minimap open
#ALIAS {get_minimap}
{
#ACTION {~%0}
{
#line log {$dir/logs/minimap.log} {%0};
#line gag;
} {10}
}
#ALIAS {get_chars}
{
#ACTION {~%0}
{
#line log {$dir/logs/mobs.log} {%0};
} {10}
}
#ACTION {^<MAPEND>$}
{
#unaction {~%%0} {};
#line gag;
} {1}
#ACTION {^<MAPSTART>$}
{
#line log {$dir/logs/minimap.log} {\n\n\n\n\n\n};
get_minimap;
#line gag;
} {1}
#ACTION {{^\{roomchars\}}}
{
#line log {$dir/logs/mobs.log} {\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n};
get_chars;
#line gag;
}
#ACTION {{^\{/roomchars\}$}}
{
#unaction {~%%0} {};
#line log {$dir/logs/mobs.log} {\n\r};
#line gag;
}
#ACTION {{^\{roomobjs\}}}
{
get_chars;
#line gag;
}
#ACTION {{^\{/roomobjs\}$}}
{
#unaction {~%%0} {};
#line log {$dir/logs/mobs.log} {\n\r};
#line gag;
}
#class minimap close

View File

@ -1,39 +0,0 @@
#FUNCTION {percent_color}
{
#var {percent_store} {};
#if {%1 > 80} { #format {percent_store} {%c%d<099>} {bold green} {%1} };
#if {%1 < 80 && %1 > 30} { #format {percent_store} {%c%d<099>} {bold yellow} {%1} };
#if {%1 < 30} { #format {percent_store} {%c%d<099>} {bold red} {%1} };
#return $percent_store;
}
#ALIAS {prompt_statmon}
{
#math hp_percent {((1.00*$hp) / $maxhp)*100};
#math mana_percent {((1.00*$mana) / $maxmana)*100};
#math moves_percent {((1.00*$moves) / $maxmoves)*100};
#var {c_hp_percent} {@percent_color{$hp_percent}};
#var {c_mana_percent} {@percent_color{$mana_percent}};
#var {c_moves_percent} {@percent_color{$moves_percent}};
#var {hp_prompt} {<039>$hp<099>/<139>$maxhp<099>hp ($c_hp_percent%)};
#var {mana_prompt} {<069>$mana<099>/<169>$maxmana<099>m ($c_mana_percent%)};
#var {moves_prompt} {<049>$moves<099>/<149>$maxmoves<099>mv ($c_moves_percent%)};
#var {prompt} {<$hp_prompt | $mana_prompt | $moves_prompt>};
#if {$state == 8}
{
#var {c_enemy_health} {@percent_color{$enemy_health}};
#var {battleprompt} {<119>$enemy<099>: $c_enemy_health%};
#var {prompt} {$prompt $battleprompt};
};
#elseif {$state == 9 || $state == 11} { #var {prompt} {$prompt <159>RESTING<099>}};
#showme {$prompt} {1};
#var {c_hunger} {@percent_color{$hunger}};
#var {c_thirst} {@percent_color{$thirst}};
#var {top_prompt} {[Quest: <169>$quest[timer]<099> | TNL: <059>$tnl<099> | Align: <149>$align<099> | Hunger/Thirst: $c_hunger%/$c_thirst%]};
#showme {$top_prompt} {2};
};

View File

@ -1,72 +0,0 @@
#class quest kill
#class quest open
#ALIAS {start_quest_timer}
{
#var {quest[timer]} {%1};
#ticker {quest[timer]}
{
#math {quest[timer]} {$quest[timer] - 1};
#if {$quest[timer] == 0}
{
#untick {quest[timer]};
#var {quest[timer]} {<cfa>READY<099>};
};
prompt_statmon;
} {60}
};
#EVENT {IAC SB GMCP comm.quest IAC SE}
{
#if {$debug} { #showme {%1} };
#var {GMCPDATA[COMM][QUEST]} {%0};
#if {"$GMCPDATA[COMM][QUEST][action]" == "ready"}
{
#send {$repchan @W\{-=@RQuest Time@W=-\}@w};
#var {quest[timer]} {<129>READY<099>};
#bell;
};
#elseif {"$GMCPDATA[COMM][QUEST][action]" == "start"}
{
#format {quest[start]} {%T};
#var {quest[timer]} {<fca>ACTIVE<099>};
#var {quest[room]} {$GMCPDATA[COMM][QUEST][room]};
#var {quest[area]} {$GMCPDATA[COMM][QUEST][area]};
#var {quest[target]} {$GMCPDATA[COMM][QUEST][targ]};
#send {$repchan @Y[@RQuest Requested@Y]@w: @YTarget@w=@R$quest[target]@w. @YRoom@w=@R$quest[room]@w. @YArea@w=@R$quest[area]@w.};
};
#elseif {"$GMCPDATA[COMM][QUEST][action]" == "fail"}
{
#send {$repchan @W\{-=@RQuest Failed@W=-\}@w};
#var {quest} {};
start_quest_timer 30;
};
#elseif {"$GMCPDATA[COMM][QUEST][action]" == "comp"}
{
#format {quest[end]} {%T};
#math {quest[time]} {$quest[end] - $quest[start]};
#var {quest[trivia]} {$GMCPDATA[COMM][QUEST][tp]};
#var {quest[pracs]} {$GMCPDATA[COMM][QUEST][pracs]};
#var {quest[trains]} {$GMCPDATA[COMM][QUEST][trains]};
#var {quest[qp]} {$GMCPDATA[COMM][QUEST][totqp]};
#send {$repchan @R[@YQuest Completed@R] @Y[@WQp: @R$quest[qp]@Y] $quest[time] secs @Y[@WBonus: @R $quest[pracs] / $quest[train] / $quest[trivia]@Y]@w};
#var {quest} {};
start_quest_timer 30;
};
#elseif {"$GMCP[COMM][QUEST][target]" == "killed"}
{
#send {$repchan @W\{-=@RQuest Target Killed@W=-\}@w};
#var {quest[timer]} {<169>RETURN<099>};
};
prompt_statmon;
}
#class quest close