Compare commits
No commits in common. "wiki" and "master" have entirely different histories.
@ -1,25 +0,0 @@
|
||||
<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
102
README.md
@ -1,77 +1,37 @@
|
||||
#Copy of the README
|
||||
# TinTin++ Settings for Aardwolf MUD
|
||||
|
||||
```
|
||||
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.
|
||||
## Setup:
|
||||
* Clone the repository
|
||||
* Edit username in config.tin
|
||||
* Edit password in config.tin
|
||||
* Edit bag in config.tin
|
||||
* Edit paths in aardwolf-session
|
||||
|
||||
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.
|
||||
## Usage:
|
||||
* Launch tmux (tmux -2)
|
||||
* Run aardwolf-session (./aardwolf-session)
|
||||
* In-game: tags channel on
|
||||
* 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
|
||||
|
||||
Getting Started:
|
||||
----------------
|
||||
edit setup.tin
|
||||
start tintin with setup.tin (Ex. /usr/games/tt++ -G setup.tin)
|
||||
## Features
|
||||
* GMCP powered 2-line prompt with colored percentage meters (prompt.tin)
|
||||
* Quest time ticker and target tracking (quest.tin)
|
||||
* Repop watch and announce (gmcp.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)
|
||||
|
||||
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
|
||||
## Commands
|
||||
* debug on|off - toggles echoing GMCP data as it arrives
|
||||
* repopwatch on|off - toggles announcing of repops in $repchan
|
||||
* .note *message here* - adds *message* to notes.log (bottom right window)
|
||||
* .newpage - clears the note screen, providing a fresh page
|
||||
* cpcheck - print list of campaign targets to note window, sorted by area
|
||||
|
||||
|
||||
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.
|
||||
```
|
||||
The actions.tin and aliases.tin files are a place for your personal triggers and aliases.
|
||||
|
@ -1,11 +0,0 @@
|
||||
# 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 +0,0 @@
|
||||
<img src='https://lh3.googleusercontent.com/-4rqyXaYgCGw/UBnVVDdJghI/AAAAAAAAABA/BmiBKnPhkII/s800/aardwolf%252Btintin2.PNG' alt='aardwolf-tintin screenshot'></img>
|
@ -1,2 +0,0 @@
|
||||
For users to submit their own scripts. Simply paste it as a comment.
|
||||
I have no idea what the length limit is atm.
|
1
actions.tin
Normal file
1
actions.tin
Normal file
@ -0,0 +1 @@
|
||||
#ACTION {The quest will start in} {#bell};
|
58
aliases.tin
Normal file
58
aliases.tin
Normal file
@ -0,0 +1,58 @@
|
||||
#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>};
|
||||
}
|
||||
}
|
||||
};
|
7
bin/aardwolf-session
Executable file
7
bin/aardwolf-session
Executable file
@ -0,0 +1,7 @@
|
||||
#!/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
|
14
bin/release
Executable file
14
bin/release
Executable file
@ -0,0 +1,14 @@
|
||||
#!/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."
|
28
config.tin
Normal file
28
config.tin
Normal file
@ -0,0 +1,28 @@
|
||||
#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=%*\}} {};
|
||||
|
0
logs/active.log
Normal file
0
logs/active.log
Normal file
0
logs/channel.log
Normal file
0
logs/channel.log
Normal file
0
logs/history.log
Normal file
0
logs/history.log
Normal file
0
logs/minimap.log
Normal file
0
logs/minimap.log
Normal file
0
logs/mobs.log
Normal file
0
logs/mobs.log
Normal file
0
logs/notes.log
Normal file
0
logs/notes.log
Normal file
48
src/char.tin
Normal file
48
src/char.tin
Normal file
@ -0,0 +1,48 @@
|
||||
#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
|
89
src/gmcp.tin
Normal file
89
src/gmcp.tin
Normal file
@ -0,0 +1,89 @@
|
||||
#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
|
40
src/init.tin
Normal file
40
src/init.tin
Normal file
@ -0,0 +1,40 @@
|
||||
#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
|
61
src/minimap.tin
Normal file
61
src/minimap.tin
Normal file
@ -0,0 +1,61 @@
|
||||
#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
|
39
src/prompt.tin
Normal file
39
src/prompt.tin
Normal file
@ -0,0 +1,39 @@
|
||||
#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};
|
||||
};
|
||||
|
72
src/quest.tin
Normal file
72
src/quest.tin
Normal file
@ -0,0 +1,72 @@
|
||||
#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
|
Loading…
x
Reference in New Issue
Block a user