Forum Links 

Click to return to main page
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile  Log in to check your private messagesLog in to check your private messages    Log inLog in 
 Current Top Rated Killers 
 Next Event   Voting Links 


The event "The Assault on Taekir" is beginning in 1 day, 12 hours.

Tintin++ script
Goto page Previous  1, 2, 3, 4
 
Post new topic   Reply to topic    Abandoned Realms Forum Index -> Newbie Q/A
View previous topic :: View next topic  
Author Message
deauja



Joined: 11 Apr 2006
Posts: 149
Location: rain forest

PostPosted: Wed Jan 27, 2021 10:42 am    Post subject: finally an update.

It's been a while. Posted an update at the beginning of this thread. Hope this helps.
Back to top
View user's profile Send private message
 
2 0 0
deauja



Joined: 11 Apr 2006
Posts: 149
Location: rain forest

PostPosted: Wed Feb 24, 2021 7:09 am    Post subject:

Go tmux web frontend - display current tmux session and window information via browser (gin, bower)

https://leanpub.com/the-tao-of-tmux/read#example-projects
Back to top
View user's profile Send private message
 
0 0 0
deauja



Joined: 11 Apr 2006
Posts: 149
Location: rain forest

PostPosted: Tue Mar 16, 2021 5:31 pm    Post subject:

Now compatible with Windows 10 via WSL
(Windows Subsystems for Linux)

How to install:
Code:
    1) Use search assistant to open the 'For Developers' setting and enable 'Developer Mode'.  Accept it.

    2) Ctrl+Esc & type 'Turn Windows features on or off' select and turn on 'Windows Subsystem for Linux'

    3) Open web browser and type 'https://aka.ms/wslstore' now select/install Ubuntu, set up and sign in.

    4) Type 'sudo apt-get update' & 'sudo apt-get upgrade' & 'sudo apt-get install tintin++ imagemagick'

    5) Download and run relevant wsltty installer from github: https://github.com/mintty/wsltty/releases

    6) In WSL Terminal home directory, type 'git clone https://github.com/AbandonedRealms-tintin/ARTT.git'

    7) In WSL Terminal type 'cd ~/ARTT' & 'chmod +x linux.sh' & './linux.sh' this will setup/launch game.
Back to top
View user's profile Send private message
 
0 0 0
deauja



Joined: 11 Apr 2006
Posts: 149
Location: rain forest

PostPosted: Sun Nov 26, 2023 8:59 pm    Post subject:

restarting for simplicity. It will be imperfect and may not function as intended.
plan is to continue improving without sacrificing simplicity.

even if you aren't using tintin++ you might get some ideas from it.
this code is for tintin++ with msdp function working

I will save my progress here and provide updates here
here we go back to 1.0

My hope is to interest players in the mechanics and implications of scripting both for discussion and implementation. Also I need a place to back up my code. I hope I am welcome to do so, if not let me know and I'll keep it to myself. Wink

artt 1.0
Code:

#nop abandonedrealms.com

#nop SECTION: WIELD

#act {<worn as shield>     a spiked buckler} {#var shield buckler};
#act {<wielded>            (Glowing) a sword with a swiftbird hilt} {#var weapon swift};
#act {<dual wielded>       (Glowing) a fiery dagger} {#var offhand fiery};

#act {%1 disarms you and sends your weapon flying!} {get $weapon;wield $weapon};

#nop SECTION: MSDP

#EVENT {SESSION CONNECTED}
{
     #variable TELNET[IAC]  \xFF;
     #variable TELNET[DONT] \xFE;
     #variable TELNET[DO]   \xFD;
     #variable TELNET[WONT] \xFC;
     #variable TELNET[WILL] \xFB;
     #variable TELNET[SB]   \xFA;
     #variable TELNET[SE]   \xF0;
     #variable TELNET[MSDP] \x45;
     #variable MSDP[VAR]   \x01;
     #variable MSDP[VAL]   \x02;
     #variable MSDP[TABLE_OPEN]  \x03;
     #variable MSDP[TABLE_CLOSE] \x04;
     #variable MSDP[ARRAY_OPEN]  \x05;
     #variable MSDP[ARRAY_CLOSE] \x06;
     #variable {MSDP_REPORTABLE_VARIABLES}{
        {AC_BASH};
        {AC_MAGIC};
        {AC_PIERCE};
        {AC_SLASH};
        {ADRENALINE};
        {AFFECTS};
        {AREA_NAME};
        {CHANNELS};
        {CHARACTER_NAME};
        {CHII_BOLT};
        {CLASS};
        {COMBAT_STYLE};
        {CON};
        {CON_PERM};
        {DAMROLL};
        {DEX};
        {DEX_PERM};
        {ENERGY};
        {ENERGY_MAX};
        {EXPERIENCE};
        {EXPERIENCE_MAX};
        {EXPERIENCE_TNL};
        {GOLD};
        {GROUP};
        {HEALTH};
        {HEALTH_MAX};
        {HINT};
        {HITROLL};
        {HUNGER};
        {INT};
        {INT_PERM};
        {INVENTORY};
        {LEVEL};
        {MANA};
        {MANA_MAX};
        {MOVEMENT};
        {MOVEMENT_MAX};
        {OPPONENT_COMBAT_STYLE};
        {OPPONENT_HEALTH};
        {OPPONENT_HEALTH_MAX};
        {OPPONENT_LEVEL};
        {OPPONENT_NAME};
        {OPPONENT_WEAPON_OFFH};
        {OPPONENT_WEAPON_TYPE};
        {OVERLORD};
        {OVERLORD_NAME};
        {POKER};
        {POWER};
        {QUESTOR};
        {RACE};
        {ROOM_DESC};
        {ROOM_EXITS};
        {ROOM_MAP};
        {ROOM_NAME};
        {ROOM_TERRAIN};
        {ROOM_VNUM};
        {SAVING_AFF};
        {SAVING_MAL};
        {SAVING_MEN};
        {SHIELD};
        {SHIELD_MAX};
        {STR};
        {STR_PERM};
        {TANK_NAME};
        {TARGET};
        {THIRST};
        {TITLE};
        {WEAPON_OFFH};
        {WEAPON_TYPE};
        {WEIGHT};
        {WEIGHT_MAX};
        {WIMPY};
        {WIS};
        {WIS_PERM};
        {WORLD_TIME};};
     #nop Turn telnet debug on if there are problems.;
     #config {debug telnet} {off};
     #split 0 1;
}

#EVENT {SESSION DISCONNECTED}
{
     #write $msdp_character_name.tt;
}

#EVENT {IAC WILL MSDP}
{
     #send {$TELNET[IAC]$TELNET[DO]$TELNET[MSDP]\};
     msdp_report
}

#alias {replace_color_codes} {

    #replace {%1} {`1}  {<018>}; #nop {RED};
    #replace {%1} {`2}  {<028>}; #nop {GREEN};
    #replace {%1} {`3}  {<038>}; #nop {YELLOW};
    #replace {%1} {`4}  {<048>}; #nop {BLUE};
    #replace {%1} {`5}  {<058>}; #nop {PURPLE};
    #replace {%1} {`6}  {<068>}; #nop {CYAN};
    #replace {%1} {`7}  {<eee>}; #nop {WHITE};
    #replace {%1} {`8}  {<ccc>}; #nop {GRAY};
    #replace {%1} {`9}  {<158>}; #nop {PURPLE BOLD};
    #replace {%1} {`!}  {<118>}; #nop {RED BOLD};
    #replace {%1} {`@}  {<128>}; #nop {GREEN BOLD};
    #replace {%1} {`#}  {<138>}; #nop {YELLOW BOLD};
    #replace {%1} {`\$} {<148>}; #nop {BLUE BOLD};
    #replace {%1} {`%}  {<158>}; #nop {PURPLE BOLD};
    #replace {%1} {`^}  {<168>}; #nop {CYAN BOLD};
    #replace {%1} {`&}  {<178>}; #nop {WHITE BOLD};
    #replace {%1} {``}  {<088>}; #nop {RESET TO DEFAULT};

    };
   
#EVENT {IAC SB MSDP}
{
        #nop Save all variables with an msdp_ prefix.;
        #nop Set all variables to lower case msdp_blah;
       
        #format   {test} {%l} {%0};
        #variable {msdp_$test} {%1};
       
        #if { "%0" == "ROOM_MAP" } {
                #var {msdp_room_map} {%1};
                replace_color_codes msdp_room_map;
        };

        #elseif { "%0" == "CHANNELS" } {
                #var {msdp_channels} {%1};
                replace_color_codes msdp_channels;
                #replace {msdp_channels} {\n}  { };     
        };
         
        #elseif { "%0" == "OPPONENT_COMBAT_STYLE" } {
                #var {msdp_opponent_combat_style} {%1};
                replace_color_codes msdp_opponent_combat_style;
                #replace {msdp_opponent_combat_style} {\n}  { };
        };
       
        #elseif { "%0" == "COMBAT_STYLE" } {
                #var {msdp_combat_style} {%1};
                replace_color_codes msdp_combat_style;
                #replace {msdp_combat_style} {\n}  { };
        };
}

#EVENT {IAC SB MSDP IAC SE}
{
     #if {&{msdp_room_exits} == 0}
     {
          #return
     };

     #showme {<$msdp_health\hp $msdp_mana\m $msdp_movement\mv $msdp_opponent_combat_style> $msdp_world_time} {0};
}

#EVENT {IAC SB MSDP ROOM}
{
     #variable {MSDP_ROOM} {%1};
}

#ALIAS {msdp_report}
{
     #nop Ask the server to report all keys inside REPORTABLE_VARIABLES;
     #variable result {$TELNET[IAC]$TELNET[SB]$TELNET[MSDP]$MSDP[VAR]REPORT};
     #foreach {*MSDP_REPORTABLE_VARIABLES[]} {tmp}
     {
          #variable result {$result$MSDP[VAL]$tmp}
     };
     #send {$result$TELNET[IAC]$TELNET[SE]\}
}

#ALIAS {msdp_list}
{
     #send {$TELNET[IAC]$TELNET[SB]$TELNET[MSDP]$MSDP[VAR]LIST$MSDP[VAL]%0$TELNET[IAC]$TELNET[SE]\}
}

#ALIAS {msdp_send}
{
     #send {$TELNET[IAC]$TELNET[SB]$TELNET[MSDP]$MSDP[VAR]SEND$MSDP[VAL]%0$TELNET[IAC]$TELNET[SE]\}
}

#ALIAS {example}
{
     msdp_list COMMANDS;
     msdp_list REPORTABLE_VARIABLES;
     msdp_report
}
   
#nop SECTION: CONNECTION;

#ses abandonedrealms abandonedrealms.com 9000;

#act {By what name do you wish to be remembered?} {};
#act {Password:} {};
Back to top
View user's profile Send private message
 
3 0 0
deauja



Joined: 11 Apr 2006
Posts: 149
Location: rain forest

PostPosted: Tue Nov 28, 2023 3:15 pm    Post subject:

edit

Last edited by deauja on Wed Jan 31, 2024 7:23 am; edited 3 times in total
Back to top
View user's profile Send private message
 
1 0 1
deauja



Joined: 11 Apr 2006
Posts: 149
Location: rain forest

PostPosted: Mon Dec 04, 2023 5:13 pm    Post subject: ARTT 1.21

this post is right here.

Last edited by deauja on Sun Jan 07, 2024 4:20 am; edited 1 time in total
Back to top
View user's profile Send private message
 
0 0 0
deauja



Joined: 11 Apr 2006
Posts: 149
Location: rain forest

PostPosted: Thu Dec 07, 2023 7:18 pm    Post subject: ARTT 1.22

this post is gone.

Last edited by deauja on Sun Jan 07, 2024 4:20 am; edited 1 time in total
Back to top
View user's profile Send private message
 
1 0 0
deauja



Joined: 11 Apr 2006
Posts: 149
Location: rain forest

PostPosted: Sat Dec 16, 2023 6:38 pm    Post subject: ARTT 1.4

This botting may work well on mobs however use against other players at your risk and concurrent demise. getting neater. check it out. set various weapon variables before enabling autoweapontype and autocombatstyle. configured for warrior class but should be easilly modifiable for other classes as well. This kind of thing should free up some of your energy for focusing on immersion and roleplay. Don't hesitate to try scripting some RP moves as well. Godspeed.

screenshot:
https://postimg.cc/4mWhMR8g

map.tt:
https://ufile.io/aax359qh

Code:

#nop https://tintin.mudhalla.net/manual/;
#nop ####### MUD clients manual ########;

#nop https://abandonedrealms.com/
#nop ###### game website #######;

#class all open;

#nop Global variables;
#nop ################;

#nop gag, reformat.;
#var gagdamage yes;
#var gagmissed yes;
#var concatenate yes;
#var gagcondition yes;

#nop auto login.;
#var autosign no;
#var autopass no;
#var charname
#var password

#nop combat related.;
#var autochase no;
#var autoattack no;
#var autoweapon no;
#var autocombat no;

#var autowarcry yes;
#var autohobble yes;
#var autodirt yes;
#var autodisarm no;

#nop weapon/shield default.;
#nop set b4 autocombat=yes.;
#var buckler shield;
#var blade   swo;
#var shaft   mace;
#var segment whip;
#var dual    dagger;

#nop onehanded wpn default.;
#var onehand swo;

#nop twohanded wpn default.;
#var twohand forged;

#nop tintin++ map.;
#var tintinmap no;
#var autofind no;

#nop Movement keys;
#nop see #help macro;
#nop #############;

#mac {^H} {w};
#mac {^J} {s};
#mac {^K} {n};
#mac {^L} {e};
#mac {^O} {u};
#mac {^>} {d};
#mac {^M} {m};
#mac {^U} {whe};
#mac {^I} {sca};
#mac {^<} {flee};
#mac {*} {$murder $player};

#nop including msdp variables!;
#nop #########################;
#nop 'help msdp', '#help msdp';
#nop for further informations.;

#EVENT {SESSION CONNECTED} {
    #variable TELNET[IAC]  \xFF;
    #variable TELNET[DONT] \xFE;
    #variable TELNET[DO]   \xFD;
    #variable TELNET[WONT] \xFC;
    #variable TELNET[WILL] \xFB;
    #variable TELNET[SB]   \xFA;
    #variable TELNET[SE]   \xF0;
    #variable TELNET[MSDP] \x45;
    #variable MSDP[VAR]   \x01;
    #variable MSDP[VAL]   \x02;
    #variable MSDP[TABLE_OPEN]  \x03;
    #variable MSDP[TABLE_CLOSE] \x04;
    #variable MSDP[ARRAY_OPEN]  \x05;
    #variable MSDP[ARRAY_CLOSE] \x06;
    #variable {REPORTABLE_VARIABLES}{
        {AC_BASH};{AC_MAGIC};{AC_PIERCE};{AC_SLASH};{ADRENALINE};{AFFECTS};
        {AREA_NAME};{CHANNELS};{CHARACTER_NAME};{CHII_BOLT};{CLASS};{COMBAT_STYLE};
        {CON};{CON_PERM};{DAMROLL};{DEX};{DEX_PERM};{ENERGY};
        {ENERGY_MAX};{EXPERIENCE};{EXPERIENCE_MAX};{EXPERIENCE_TNL};{GOLD};{GROUP};
        {HEALTH};{HEALTH_MAX};{HINT};{HITROLL};{HUNGER};{INT};
        {INT_PERM};{INVENTORY};{LEVEL};{MANA};{MANA_MAX};{MOVEMENT};
        {MOVEMENT_MAX};{OPPONENT_COMBAT_STYLE};{OPPONENT_HEALTH};{OPPONENT_HEALTH_MAX};
        {OPPONENT_LEVEL};{OPPONENT_NAME};{OPPONENT_WEAPON_OFFH};{OPPONENT_WEAPON_TYPE};
        {OVERLORD};{OVERLORD_NAME};{POKER};{POWER};{QUESTOR};{RACE};
        {ROOM_DESC};{ROOM_EXITS};{ROOM_MAP};{ROOM_NAME};{ROOM_TERRAIN};{ROOM_VNUM};
        {SAVING_AFF};{SAVING_MAL};{SAVING_MEN};{SHIELD};{SHIELD_MAX};{STR};
        {STR_PERM};{TANK_NAME};{TARGET};{THIRST};{TITLE};{WEAPON_OFFH};
        {WEAPON_TYPE};{WEIGHT};{WEIGHT_MAX};{WIMPY};{WIS};{WIS_PERM};{WORLD_TIME};
        };
    #nop Turn telnet debug on if there are problems.;
    #config {debug telnet} {off};
    #split 0 1;
    };

#EVENT {IAC WILL MSDP} {
    #send {$TELNET[IAC]$TELNET[DO]$TELNET[MSDP]\};
    report
    };

#alias {replace_color_codes} {
    #replace {%1} {`1}  {<018>}; #nop {RED};
    #replace {%1} {`2}  {<028>}; #nop {GREEN};
    #replace {%1} {`3}  {<038>}; #nop {YELLOW};
    #replace {%1} {`4}  {<048>}; #nop {BLUE};
    #replace {%1} {`5}  {<058>}; #nop {PURPLE};
    #replace {%1} {`6}  {<068>}; #nop {CYAN};
    #replace {%1} {`7}  {<eee>}; #nop {WHITE};
    #replace {%1} {`8}  {<ccc>}; #nop {GRAY};
    #replace {%1} {`9}  {<158>}; #nop {PURPLE BOLD};
    #replace {%1} {`!}  {<118>}; #nop {RED BOLD};
    #replace {%1} {`@}  {<128>}; #nop {GREEN BOLD};
    #replace {%1} {`#}  {<138>}; #nop {YELLOW BOLD};
    #replace {%1} {`\$} {<148>}; #nop {BLUE BOLD};
    #replace {%1} {`%}  {<158>}; #nop {PURPLE BOLD};
    #replace {%1} {`^}  {<168>}; #nop {CYAN BOLD};
    #replace {%1} {`&}  {<178>}; #nop {WHITE BOLD};
    #replace {%1} {``}  {<088>}; #nop {RESET TO DEFAULT};
    };
   
#alias {strip_color_codes} {
    #replace {%1} {`1}  {};#replace {%1} {`2}  {};#replace {%1} {`3}  {};
    #replace {%1} {`4}  {};#replace {%1} {`5}  {};#replace {%1} {`6}  {};
    #replace {%1} {`7}  {};#replace {%1} {`8}  {};#replace {%1} {`9}  {};
    #replace {%1} {`!}  {};#replace {%1} {`@}  {};#replace {%1} {`#}  {};
    #replace {%1} {`\$} {};#replace {%1} {`%}  {};#replace {%1} {`^}  {};
    #replace {%1} {`&}  {};#replace {%1} {``}  {};
    };

#EVENT {IAC SB MSDP} {

    #format   {test} {%l} {%0};
    #variable {$test} {%1};

    #if { "%0" == "ROOM_MAP" } {
        #var {room_map} {%1};
        replace_color_codes room_map;
        };

    #elseif { "%0" == "CHANNELS" } {
        #var {channels} {%1};
        replace_color_codes channels;
        #replace {channels} {\n}  { };     
        };

    #elseif { "%0" == "OPPONENT_COMBAT_STYLE" } {
        #var {opponent_combat_style} {%1};
        strip_color_codes opponent_combat_style;
        #var {opponent_combat_style_clr} {%1};
        replace_color_codes opponent_combat_style_clr;
        };

    #elseif { "%0" == "COMBAT_STYLE" } {
        #var {combat_style} {%1};
        strip_color_codes combat_style;
        #var {combat_style_clr} {%1};
        replace_color_codes combat_style_clr;
        };

    #elseif { "%0" == "OPPONENT_WEAPON_TYPE" } {
        #var {opponent_weapon_type} {%1};
        strip_color_codes opponent_weapon_type;
        #var {opponent_weapon_type_clr} {%1};
        replace_color_codes opponent_weapon_type_clr;
        };

    #elseif { "%0" == "GROUP" } {

        #nop set lower_case and upper_case;
        #nop for attacking and being attacked.;
        #nop so fight_check triggers rightly.;
       
        #var group_01 *group[-1]; #replace {group_01} {a %+}  {A &1};
        #var group_02 *group[-2]; #replace {group_02} {a %+}  {A &1};
        #var group_03 *group[-3]; #replace {group_03} {a %+}  {A &1};
        #var group_04 *group[-4]; #replace {group_04} {a %+}  {A &1};
        #var group_05 *group[-5]; #replace {group_05} {a %+}  {A &1};
        #var group_06 *group[-6]; #replace {group_06} {a %+}  {A &1};
        #var group_07 *group[-7]; #replace {group_07} {a %+}  {A &1};
        #var group_08 *group[-8]; #replace {group_08} {a %+}  {A &1};
        #var group_09 *group[-9]; #replace {group_09} {a %+}  {A &1};
        #var group_10 *group[-10]; #replace {group_10} {a %+}  {A &1};
        #var group_11 *group[-11]; #replace {group_11} {a %+}  {A &1};
        #var group_12 *group[-12]; #replace {group_12} {a %+}  {A &1};
        #var group_13 *group[-13]; #replace {group_13} {a %+}  {A &1};
       
        #var group_14 *group[-14];
        #replace {group_14} {a %+}  {A &1};
       
       
        };

        #if { "$tank_name" != "" } {
            #regexp {$group[$tank_name]} {"hp":%+,"mp":%+} {#var tank_life &1};
            };

    #elseif { "%0" == "WORLD_TIME" } {
        #var tick 35;
        #if { "%1" != "" && "%1" != " " } {
            #tick {tick} {#math {tick} {$tick-1}} {1};
            #var {time} {%1};
            #regexp {$time} {{.*} {(.*)}} {#var hour &1};
            };
        };
    };

#alias {report} {
    #nop Ask the server to report all keys inside REPORTABLE_VARIABLES;
    #variable result {$TELNET[IAC]$TELNET[SB]$TELNET[MSDP]$MSDP[VAR]REPORT};
   
    #foreach {*REPORTABLE_VARIABLES[]} {tmp} {
        #variable result {$result$MSDP[VAL]$tmp}
        };

    #send {$result$TELNET[IAC]$TELNET[SE]\};
    };

#alias {msdp_list} {
    #send {$TELNET[IAC]$TELNET[SB]$TELNET[MSDP]$MSDP[VAR]LIST$MSDP[VAL]%0$TELNET[IAC]$TELNET[SE]\};
    };

#alias {send} {
    #send {$TELNET[IAC]$TELNET[SB]$TELNET[MSDP]$MSDP[VAR]SEND$MSDP[VAL]%0$TELNET[IAC]$TELNET[SE]\};
    };

#nop enter the multiuser dungeon abandoned realms.;
#nop #############################################;

#act {By what name do you wish to be remembered?} {
    #if { "$autosign" == "yes" } { $charname };
    };

#act {Password:} {
    #if { "$autopass" == "yes" } { $password };
    };

#ses abandonedrealms abandonedrealms.com 9000;

#event {SESSION DEACTIVATED} {
    #gts {
        #delay {.5} {
            #show {Recconect? y/n};
            #macro {n} {
                #end
                };
            #macro {y} {
                #unmacro {n}; #unmacro {y}; #read {ar.tt};
                };
            };
        };
    };

#nop SECTION: POTIONS;
#nop ################;

#nop quaff purple;
#alias {pp} {
    #if { "$opponent_name" != "None." && "$opponent_name" != "" } {
        get purple sac;hold purple;quaf purple;
        };
    #else { get purple sac;quaf purple };
    };
   
#alias {gp} {
    #if { "$opponent_name" != "None." && "$opponent_name" != "" } {
        get gyvel sac;hold gyvel;quaf gyvel;
        };
    #else { get gyvel sac;quaf gyvel };
    };

#nop quaff recall;
#alias {rp} {get recall sac;quaf recall };

#nop ###### where into approach ########;

#act {<PK> %1 %s %2} {
    #if { "%1" == "$player" && "%1" != "$character_name" && "$autofind" == "yes" } {
        #map run %2;
        };
    };
   
#nop ###### scan into auto chase ########;

#nop for testing
#var target boogum;

#event {VARIABLE UPDATED opponent_name} {
    #if { "$opponent_name" != "None." && "$opponent_name" != "" } {
        #var    {player} {$opponent_name};
        #format {target} {%l} {$opponent_name};
        };
    };

#nop *** Range 2 (south, 2 west) ***;
#nop *** Range 2 (2 north, west) ***;

#act {*** Range %1 (%2) ***} {#alias {approach_opponent} {#%1 %2}} {4}

#act {*** Range %1 (%2, %3 %4) ***} {#alias {approach_opponent} {%2; #%3 %4}} {1}
#act {*** Range %1 (%2 %3, %4) ***} {#alias {approach_opponent} {#%2 %3; %4}} {2}
#act {*** Range %1 (%2, %3) ***} {#alias {approach_opponent} {%2; %3}} {3}

#var {player} {};
#var murder murder;

#act {You scan all around.} {
    #class {scan} {open};
    #act {${target}} {
        #if { "$autochase" == "yes" } {
            approach_opponent;
            $murder $target;
            };
        #class scan kill;
        } {2};
    #if { "$target" != "$player" && "$player" != "" } {
        #act {${player}} {
            #if { "$autochase" == "yes" } {
                approach_opponent;
                $murder $player;
                };
            #class scan kill;
            } {2};
        };
    #delay {.2} {#class scan kill};
    };

#nop ####### Loot #########;

#act {%1 drops a fancy lockbox.} {
    get lockbox;
    unlock lockbox;
    open lockbox;
    get all lockbox;
    drop lockbox;
    sac lockbox;
    };

#nop ########## prompt ############;

#split 2 2

#nop hide variable until initialized.;
#var tick_bar {};
#var hour {};

#nop set tickbar variable and show prompt.;
#event {VARIABLE UPDATE tick} {
    #if { "$tick" == "35" } { #var {tick_bar} {[<038>-----<088>-----------|]}};
    #if { "$tick" == "33" } { #var {tick_bar} {[<038>-----<088>----------|-]}};
    #if { "$tick" == "31" } { #var {tick_bar} {[<038>-----<088>---------|--]}};
    #if { "$tick" == "29" } { #var {tick_bar} {[<038>-----<088>--------|---]}};
    #if { "$tick" == "27" } { #var {tick_bar} {[<038>-----<088>-------|----]}};
    #if { "$tick" == "25" } { #var {tick_bar} {[<038>-----<088>------|-----]}};
    #if { "$tick" == "23" } { #var {tick_bar} {[<038>-----<088>-----|------]}};
    #if { "$tick" == "21" } { #var {tick_bar} {[<038>-----<088>----|-------]}};
    #if { "$tick" == "19" } { #var {tick_bar} {[<038>-----<088>---|--------]}};
    #if { "$tick" == "17" } { #var {tick_bar} {[<038>-----<088>--|---------]}};
    #if { "$tick" == "15" } { #var {tick_bar} {[<038>-----<088>-|----------]}};
    #if { "$tick" == "13" } { #var {tick_bar} {[<038>-----<088>|-----------]}};
    #if { "$tick" == "11" } { #var {tick_bar} {[<038>----|<088>------------]}};
    #if { "$tick" == "9" } { #var {tick_bar} {[<038>----|<088>------------]}};
    #if { "$tick" == "7" } { #var {tick_bar} {[<038>---|-<088>------------]}};
    #if { "$tick" == "5" } { #var {tick_bar} {[<038>--|--<088>------------]}};
    #if { "$tick" == "3" } { #var {tick_bar} {[<038>-|---<088>------------]}};
    #if { "$tick" == "1" } { #var {tick_bar} {[<038>|----<088>------------]}};

    #showme { < $mylife $mymana $mymove > $tick_bar <058>$xptnl<088> <038>$gold<088>
    $hour $adrenaline} {0};
    };

#EVENT {IAC SB MSDP IAC SE} {
    #nop if you aren't in a room stop.;
    #if {&{room_exits} == 0} {#return};

    #nop center area/room name at top.;
    #var {screen_title} {$area_name};
    #var {screen_title2} {$room_name};
    #screen get cols columns;
    #math halfcols { $columns / 2 };
    #format {length_title} {%L} {$screen_title};
    #format {length_title2} {%L} {$screen_title2};
    #math halftitle { $length_title / 2};
    #math halftitle2 { $length_title2 / 2};
    #math padtitle { $halfcols + $halftitle };
    #math padtitle2 { $halfcols + $halftitle2 };
    #format {test} {%+${padtitle}s} {$screen_title};
    #format {test2} {%+${padtitle2}s} {$screen_title2};

    #nop showme them.;
    #showme {$test} {1};
    #showme {$test2} {2};

    #nop calculate life, mana, move percentages.;
    #math {mylife} { 100 * $health / $health_max };
    #math {mymana} { 100 * $mana / $mana_max };
    #math {mymove} { 100 * $movement / $movement_max };

    #nop colorize my hp percent.;
    #if { $mylife > 59 } { #var {mylife} {<088>$mylife<088>} };
    #elseif { $mylife < 30 } { #var {mylife} {<118>$mylife<088>} };
    #elseif { $mylife < 60 } { #var {mylife} {<138>$mylife<088>} };

    #nop colorize opponent hp percent.;
    #if { $opponent_health > 59 } { #var {opponent_health} {<088>$opponent_health<088>} };
    #elseif { $opponent_health < 30 } { #var {opponent_health} {<118>$opponent_health<088>} };
    #elseif { $opponent_health < 60 } { #var {opponent_health} {<138>$opponent_health<088>} };

    #nop calculate xptnl.;
    #math {xptnl} { $experience_tnl - $experience };
    #math {xptnl_max} { $experience_tnl - $experience_max };

    #nop show me prompt.;
    #showme { < $mylife $mymana $mymove > $tick_bar <058>$xptnl<088> <038>$gold<088>
    $hour $adrenaline} {0};

    #if { "$opponent_combat_style" != "no opponent" && "$opponent_name" != "" } {
        #if { "$tank_name" != "" } {
            #showme { < $tank_name < $tank_life vs $opponent_health > $opponent_name >
            $opponent_combat_style_clr $opponent_weapon_type_clr } {-3};
            };
        #elseif { "$tank_name" == "" } {
            #showme { < $character_name < $mylife vs $opponent_health > $opponent_name >
            $opponent_combat_style_clr $opponent_weapon_type_clr } {-3};
            };
        } {
        #showme { } {-3};
        };
    };

#nop ########## COMBAT ##########;

#nop concatenate fighting data (remove empty lines).;
#act {%0} {
    #if { "%0" == "" && "$opponent_combat_style" != "no opponent" && "$opponent_name" != "" } {
        #if { "$concatenate" == "yes" } {#line gag};
        };
    } {9};
   
#nop remember what weapon I am using to grab it in case I'm disarmed.;
#event {VARIABLE UPDATED weapon_type} {
    #if { "%1" != "none" } {
        #var weapon $%1;
        };
    };
   
#nop get/wield weapon/shield when disarmed.;
#act {%1 disarms your shield, sending it flying!} {get $buckler;wield $buckler};
#act {%1 disarms you and sends your weapon flying!} {get $weapon;wield $weapon};
#act {%1 disarms you!} {wield $weapon};

#var lag 0;

#event {RECEIVED LINE} {

    #nop if msdp exits variable doesn't exist, return.;
    #if {&{room_exits} == 0} {#return};
   
    #nop in case I am NOT fighting.;
   
    #if { "$opponent_combat_style" == "no opponent" } {
        #if { "$lag" != "0" } { #var {lag} {0} };
        reset_combat;
        };

    #nop in case that I AM fighting.;
   
    #if { "$opponent_combat_style" != "no opponent" && "$opponent_name" != "" && "$lag" == "0" && "$autoattack" == "yes" } {

        #nop auto switch weapon type.;
        #nop ########################;

        #if { "$autoweapon" == "yes" } {

            #if { "$opponent_weapon_type" == "segment"
            && "$weapon_type" == "blade" ||
            "$opponent_weapon_type" == "segment"
            && "$weapon_type" == "none" ||
            "$opponent_weapon_type" == "segment"
            && "$weapon_type" == "segment" } {wi $shaft};

            #elseif { "$opponent_weapon_type" == "blade"
            && "$weapon_type" == "shaft" ||
            "$opponent_weapon_type" == "blade"
            && "$weapon_type" == "none" ||
            "$opponent_weapon_type" == "blade"
            && "$weapon_type" == "blade" } {wi $segment};

            #elseif { "$opponent_weapon_type" == "shaft"
            && "$weapon_type" == "segment" ||
            "$opponent_weapon_type" == "shaft"
            && "$weapon_type" == "none" ||
            "$opponent_weapon_type" == "shaft"
            && "$weapon_type" == "shaft" } {wi $blade};
            };

        #nop auto switch combat style.;
        #nop #########################;

        #if { "$autocombat" == "yes" } {

            #nop assuming your combat style is armed here.;
            #nop than wield a weapon if you unarmed.;
           
            #if { "$weapon_type" == "none" } {wi $onehand};

            #nop enemy is using 'balanced' combat style!;
            #nop #######################################;
           
            #if { "$opponent_combat_style" == "balanced"
            && "$combat_style" == "offensive" ||
            "$opponent_combat_style" == "balanced"
            && "$combat_style" == "none" } {wi $buckler};
           
            #elseif { "$opponent_combat_style" == "balanced"
            && "$combat_style" == "balanced" } {
                wi $onehand;
                wi $buckler;
                };

            #nop enemy is using 'offensive' combat style!;
            #nop ########################################;
           
            #elseif { "$opponent_combat_style" == "offensive"
            && "$combat_style" == "defensive" } {
                rem $weapon;
                rem $buckler;
                wi $twohand;
                #var weapon $twohand;
                };
               
            #elseif { "$opponent_combat_style" == "offensive"
            && "$combat_style" == "offensive" ||
            "$opponent_combat_style" == "offensive"
            && "$combat_style" == "none" } {
                wi $twohand;
                #var weapon $twohand;
                };

            #nop enemy is using 'defensive' combat style!;
            #nop ########################################;
           
            #elseif { "$opponent_combat_style" == "defensive"
            && "$combat_style" == "balanced" } {
                wi $onehand;
                dual $dual;
                };
               
            #elseif { "$opponent_combat_style" == "defensive"
            && "$combat_style" == "defensive" ||
            "$opponent_combat_style" == "defensive"
            && "$combat_style" == "none" } {
                dual $dual;
                };

            #elseif { "$opponent_combat_style" == "mob"
            && "$combat_style" == "none" } {
                dual $dual;
                };
            };

        #nop automatically choose and execute attacks.;
        #nop #########################################;

        #if { "$autoattack" == "yes" } {

            #if { "$warcried" != "true" && "$autowarcry" == "yes" } {
                #var attack warcry;
                };

            #elseif { "$hobbled" != "true" &&
            "$weapon_type" != "none" &&
            "$autohobble" == "yes" &&
            "$usingbow" != "true" } {
                #var {attack} {overpower hobble};
                };

            #elseif { "$dirted" != "true" &&
            "$autodirt" == "yes" &&
            "$room_terrain" != "river (%D)" &&
            "$room_terrain" != "ocean (%D)" &&
            "$room_terrain" != "rapids (%D)" &&
            "$room_terrain" != "lagoon (%D)" &&
            "$room_terrain" != "pond (%D)" &&
            "$room_terrain" != "underwater (%D)" } {
                #var {attack} {dirt};
                };


        #elseif { "$room_terrain" == "pond %D" } {
            #map set roomsymbol <168>~;
            #map set roomcolor <168>;
            };
        #elseif { "$room_terrain" == "lagoon %D" } {
            #map set roomsymbol <168>~;
            #map set roomcolor <168>;
            };
        #elseif { "$room_terrain" == "rapids %D" } {
            #map set roomsymbol <168>~;
            #map set roomcolor <168>;
            };
       
       
            #elseif { "$disarmed" != "true" &&
            "$autodisarm" == "yes" &&
            "$opponent_weapon_type" != "none" &&
            "$opponent_weapon_type" != "unknown" } {
                #var {attack} {disarm};
                };

            #elseif { "$opponent_combat_style" == "defensive"
            && "$combat_style" == "offensive"
            && "$counterbalance" != "true"
            && "$distended" != "true"
            && "$handed" != "two" } {
                #var {attack} {barrage};
                };

            #elseif { "$opponent_combat_style" == "offensive"
            && "$combat_style" == "balanced"
            && "$usingbow" != "true" ||
            "$opponent_combat_style" == "mob"
            && "$combat_style" == "balanced"
            && "$usingbow" != "true" } {
                #var {attack} {over};
                };

            #elseif { "$opponent_combat_style" == "balanced"
            && "$combat_style" == "defensive" ||
            "$opponent_combat_style" == "mob"
            && "$combat_style" == "defensive" } {
                #var {attack} {swipe};
                };

            #else {#var {attack} {overpower kick}};

            #echo { };
            #show {<108><$count seconds lag, $attack><088>};
            #var count 0;
            $attack;
            #var lag 1;
            #nop cmd below returns after attack lag ends.;
            release;
            };
        };
    };

#nop count seconds in lag between attacks.;
#var count 0;
#tick {new} {#math count  $count + .25} {.25}

#nop knowing attack lag ended, submit lag as 0, send next atck;
#act {Release whom?} {
    #var lag 0;
    #line gag;
    };

#nop when fight stops reset these variables.;
#alias {reset_combat} {
    #if { "$counterbalance" == "true" } { #var counterbalance false };
    #if { "$itsflying" == "true" }      { #var itsflying false };
    #if { "$distended" == "true" }      { #var distended false };
    #if { "$disarmed" == "true" }       { #var disarmed false };
    #if { "$usingbow" == "true" }       { #var usingbow false };
    #if { "$hobbled" == "true" }        { #var hobbled false };
    #if { "$dirted" == "true" }         { #var dirted false };
    #var {handed} {};
    };

#act {You can't do that with a bow.} {
    #var usingbow true;
    };
   
#act {You are now off-balance.} {
    #var weaponlag true;
    };
#act {Your dominant hand steadies.} {
    #var weaponlag false;
    };
   
#act {You swing your weapons at mid-air.} {
    #var counterbalance true;
    };
#act {%1 feet aren't on the ground.} {
    #var itsflying true;
    };

#act {%1's shield arm regains its strength.} {
    #var distended false;
    };

#act {%1's shield arm distends from the assault.} {
    #var distended true;
    };

#act {%1 wields %2.} {
    #var disarmed false;
    };
#act {You disarm %1 to the ground!} {
    #var disarmed true;
    };

#act {%1 is blinded by the dirt in %2 eyes!} {
    #var dirted true;
    };
#act {%1 eyes stop watering.} {
    #if { "%1" != "Your" } {
        #var dirted false;
        };
    };

#act {%1 clutches %2 leg painfully as %3 begins to hobble.} {
    #var hobbled true;
    };
#act {You cripple %1 ankles with a double strike!} {
    #var hobbled true;
    };
#act {%1 stops hobbling around.} {
    #var hobbled false;
    };

#act {Not with a weapon that can only be used two-handed.} {
    #var handed two;
    };
   
#act {You prepare your resolve and stand ready for battle.} {
    #var tenacity true;
    };
#act {Your body relaxes as you fall into slumber.} {
    #var tenacity false;
    };
#act {You are already fighting with full resolve.} {
    #var tenacity true;
    };
#act {You relax your posture as your resolve fades.} {
    #var tenacity false;
    };

#act {You get a little madder.} {
    #var berserked true;
    };
#act {You feel your pulse slow down.} {
    #var berserked false;
    };
#act {Your pulse races as you are consumed by rage!} {
    #var berserked true;
    };

#act {Not with a weapon that requires two hands.} {
    #var handed two;
    };

#act {You feel righteous as you yell out your warcry.} {
    #var warcried true;
    };
#act {You already feel righteous.} {
    #var warcried true;
    };
#act {Your warcry wears off.} {
    #var warcried false;
    };
   
#nop mute various combat related messages.;
#act {You didn't autoloot because you already have %1.} {#line gag};
#act {^The corpse of %1 is lying here.} {#line gag};

#nop mute opponent condition statements as combat prompt shows opponent health.;

#act {%1 is in excellent condition.} {
    #var condition {%1 is in excellent condition.};
    #if { "$opponent_combat_style" != "no opponent" && "$gagcondition" == "yes" } {#line gag};
    };
#act {%1 has a few scratches.} {
    #var condition {%1 has a few scratches.};
    #if { "$opponent_combat_style" != "no opponent" && "$gagcondition" == "yes" } {#line gag};
    };
#act {%1 has some small wounds and bruises.} {
    #var condition {%1 has some small wounds and bruises.};
    #if { "$opponent_combat_style" != "no opponent" && "$gagcondition" == "yes" } {#line gag};
    };
#act {%1 has quite a few wounds.} {
    #var condition {%1 has quite a few wounds.};
    #if { "$opponent_combat_style" != "no opponent" && "$gagcondition" == "yes" } {#line gag};
    };
#act {%1 has some big nasty wounds and scratches.} {
    #var condition {%1 has some big nasty wounds and scratches.};
    #if { "$opponent_combat_style" != "no opponent" && "$gagcondition" == "yes" } {#line gag};
    };
#act {%1 looks pretty hurt.} {
    #var condition {%1 looks pretty hurt.};
    #if { "$opponent_combat_style" != "no opponent" && "$gagcondition" == "yes" } {#line gag};
    };
#act {%1 is in awful condition.} {
    #var condition {%1 is in awful condition.};
    #if { "$opponent_combat_style" != "no opponent" && "$gagcondition" == "yes" } {#line gag};
    };

#var combat 0;

#alias {fight_check} {
    #if $combat==0   {
        #var combat 1;
        #echo { };
        #showme {You begin fighting.};
        } {#var combat 2};
    };

#act {You flee from combat!} {
    #var combat 0;
    #show {You stop fighting.};
    #echo {$condition};
    #if { "$map" == "loaded" } {
        #delay {.2} {#map goto $room_name};
        };
    };

#act {%1 has fled!} {
    #var combat 0;
    #show {You stop fighting.};
    #echo {$condition};
    };

#act {You have been KILLED!!} {
    #var combat 0;
    #show {You stop fighting.};
    #if { "$map" == "loaded" } {
        #delay {.2} {#map goto $room_name};
        };
    };

#act {%1 is DEAD!!} {
    #var combat 0;
    #show {You stop fighting.};
    };
   
#act {Your %1 {scratch|graze|hit|injure|wound|maul|decimate|devastate|maim|MUTILATE|DISEMBOWEL|DISMEMBER|MASSACRE|MANGLE|DEMOLISH|DEVASTATE|OBLITERATE|ANNIHILATE|ERADICATE|scratches|grazes|hits|injures|wounds|mauls|decimates|devastates|maims|MUTILATES|DISEMBOWELS|DISMEMBERS|MASSACRES|MANGLES|DEMOLISHES|DEVASTATES|OBLITERATES|ANNIHILATES|ERADICATES} %2{.|!}} {
    fight_check;
    #if { "$gagdamage" == "yes" } {#line gag};
    };

#act {Your %1 {miss|misses} %2{.|!}} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
   
#act {%1's %2 {scratch|graze|hit|injure|wound|maul|decimate|devastate|maim|MUTILATE|DISEMBOWEL|DISMEMBER|MASSACRE|MANGLE|DEMOLISH|DEVASTATE|OBLITERATE|ANNIHILATE|ERADICATE|scratches|grazes|hits|injures|wounds|mauls|decimates|devastates|maims|MUTILATES|DISEMBOWELS|DISMEMBERS|MASSACRES|MANGLES|DEMOLISHES|DEVASTATES|OBLITERATES|ANNIHILATES|ERADICATES} you{.|!}} {
    fight_check;
    #if { "$gagdamage" == "yes" } {#line gag};
    };
   
#act {%1's %2 {miss|misses} you{.|!}} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
   
#act {{$group_01|$group_02|$group_03|$group_04|$group_05|$group_06|$group_07|$group_08|$group_09|$group_10|$group_11|$group_12|$group_13|$group_14}'s %1 {scratch|graze|hit|injure|wound|maul|decimate|devastate|maim|MUTILATE|DISEMBOWEL|DISMEMBER|MASSACRE|MANGLE|DEMOLISH|DEVASTATE|OBLITERATE|ANNIHILATE|ERADICATE|scratches|grazes|hits|injures|wounds|mauls|decimates|devastates|maims|MUTILATES|DISEMBOWELS|DISMEMBERS|MASSACRES|MANGLES|DEMOLISHES|DEVASTATES|OBLITERATES|ANNIHILATES|ERADICATES} %2{.|!}} {
    fight_check;
    #if { "$gagdamage" == "yes" } {#line gag};
    };

#act {{$group_01|$group_02|$group_03|$group_04|$group_05|$group_06|$group_07|$group_08|$group_09|$group_10|$group_11|$group_12|$group_13|$group_14}'s %1 {miss|misses} %2{.|!}} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
   
#act {%1's %2 {scratch|graze|hit|injure|wound|maul|decimate|devastate|maim|MUTILATE|DISEMBOWEL|DISMEMBER|MASSACRE|MANGLE|DEMOLISH|DEVASTATE|OBLITERATE|ANNIHILATE|ERADICATE|scratches|grazes|hits|injures|wounds|mauls|decimates|devastates|maims|MUTILATES|DISEMBOWELS|DISMEMBERS|MASSACRES|MANGLES|DEMOLISHES|DEVASTATES|OBLITERATES|ANNIHILATES|ERADICATES} {$group_01|$group_02|$group_03|$group_04|$group_05|$group_06|$group_07|$group_08|$group_09|$group_10|$group_11|$group_12|$group_13|$group_14}{.|!}} {
    fight_check;
    #if { "$gagdamage" == "yes" } {#line gag};
    };

#act {%1's %2 {miss|misses} {$group_01|$group_02|$group_03|$group_04|$group_05|$group_06|$group_07|$group_08|$group_09|$group_10|$group_11|$group_12|$group_13|$group_14}{.|!}} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };

#nop SECTION: TAG DATA;
#nop PARRY;

#act {%1 thrusts your %2 aside in a skillful parry.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {You dual parry %1.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {%1 weapon advantage overcomes your parry attempt.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {Your weapon advantage overcomes %1 parry attempt.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {A quick swipe of your off-hand weapon parries %1 aside easily.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {You deflect %1 aside in an ungraceful parry.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {You parry %1 with an easy flourish.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {%1 deflects your %2 aside in an ungraceful parry.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {%1 awkwardly parries your %2 with a loud clang.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {You thrust %1 aside in a skillful parry.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {You awkwardly parry %1 with a loud clang.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {%1 parries your %2.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {You parry %1.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };

#nop DODGE;

#act {%1 can't dodge away from the reach of %2 fast enough.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {%1 dodges your %2.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {You manage to dodge %1 with a lot of effort.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {%1 stumbles and barely dodges your %2.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {You dance around %1 and easily dodge it.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {You dodge %1.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {You nimbly dodge %1 with a practiced maneuver.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {%1 dances around your %2, easily dodging it.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {%1 manages to dodge your %2 with a lot of effort.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {You stumble and barely manage to dodge %1.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {You concentrate on your combat style to prevent %1 from dodging.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {%1 concentrates on %2 combat style to prevent %3 from dodging.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {%1's weapon advantage overcomes %2's parry attempt.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {You concentrate on your combat style to inflict more damage.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
   
#nop SHIELD BLOCK;

#act {%1 grips %2 shield firmly, staving off your %3.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {%1 shield jolts under your %2, but holds.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {%1 shield wobbles and barely deflects your %2.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {%1 blocks your attack with %2 shield.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {You block %1 with your shield.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {Your shield jolts under %1, but holds.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {Your shield wobbles and barely deflects %1.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {Your shield absorbs the impact of %1 easily.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {%1's shield absorbs the impact of your %2 easily.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {You grip your shield firmly, staving off %1.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {You block %1 and attempt to strike at the brief opening.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };
#act {%1 blocks your attack and attempts to strike at the brief opening.} {
    fight_check;
    #if { "$gagmissed" == "yes" } {#line gag};
    };

#nop    These are not suppose to trigger fightcheck
#nop   ***************************************************************

#gag {A goblin dart %1 you.}
#gag {Your thirst %1 you!}
#gag {Your thirst %1 you.}
#gag {Your hunger %1 you!}
#gag {Your hunger %1 you.}
#gag {The old sign %1 you.}
#gag {Your poison %1 you!}
#gag {Your poison %1 you.}
#gag {Your mystic tendrils %1 you.}
#gag {Your mystic tendrils %1 you!}
#gag {A drow hustler's backstab %1 you%2}

#act {~A drow hustler's backstab %1 you%2} {
    #echo {A drow hustler's backstab %1 you%2}}  {2}
#act {~Your mystic tendrils %1 you.} {
     #echo {Your mystic tendrils %1 you.}}  {2}
#act {~Your mystic tendrils %1 you!} {
     #echo {Your mystic tendrils %1 you!}}  {2}
#act {~A goblin dart %1 you.} {
    #echo {A goblin dart %1 you.}}  {2}
#act {~Your thirst %1 you.} {
    #echo {Your thirst %1 you.}}  {2}
#act {~Your hunger %1 you.} {
    #echo {Your hunger %1 you.}} {2}
#act {~Your thirst %1 you!} {
    #echo {Your thirst %1 you!}}  {2}
#act {~Your hunger %1 you!} {
    #echo {Your hunger %1 you!}}  {2}
#act {~The old sign %1 you.} {
    #echo {The old sign %1 you.}} {2}
#act {~Your poison %1 you.} {
    #echo {Your poison %1 you.}}  {2}
#act {~Your poison %1 you!} {
    #echo {Your poison %1 you!}}  {2}

#nop artificial intelligence;
#nop #######################;

#act {In your dreams, or what?} {#var state sleeping};
#act {You go to sleep.} {#var state sleeping};
#act {You wake and stand up.} {#var state standing};
#act {You rest.} {#var state resting};
#act {You stop resting.} {#var state sitting};
#act {You are already sitting down.} {#var state sitting};
#act {You sit down.} {#var state sitting};
#act {You stand up.} {#var state standing};
#act {You are already standing.} {#var sate standing};
#act {You are already resting.} {#var state resting};
#act {You wake and sit up.} {#var state sitting};
#act {You wake up and start resting.} {#var state resting};

#nop for hiding abandonedrealms castle.;
#nop ##################################;

#class hide_castle open

#act {^                                   ]=I==II==I=[          _/} {
    #line gag;
    #act {~%%0} {#line gag} {4};
    };

#act {    -------------------------------------------------------------------} {
    #line gag;
    #unact {~%%0};
    } {3};

#class hide_castle close

#nop for mapping world!;
#nop ##################;

#map read map.tt

#nop run these two commands after creating new maps;
#map flag vtmap on
#map offset 3 101 -4 -1

#nop reset loaded value;
#var map loading;

#event {VARIABLE UPDATED room_name} {
    #if { "$map" != "loaded" && "$room_name" != "" && "$tintinmap" == "yes" } {
        #map goto $room_name;
        };
    };

#event {MAP ENTER MAP} {
    #split 2 2 0 -100;
    #var map loaded;
    };

#EVENT {SESSION DISCONNECTED} {
    #map write map.tt;
    };

#act {[Exits:%1]} {

    #if { "$map" == "loaded" } { #map get {roomid} {checkid} };
   
    #if { "$room_vnum" != "$checkid" && "$map_aligned" != "yes" && "$tintinmap" == "yes" } {
        #map flag static on;
        #show Move around to align tintin++ map.;
        #map goto $room_name;
        };
    #elseif { "$room_vnum" == "$checkid" && "$map_aligned" != "yes" } {
        #var map_aligned yes;
        #show Unique room name.  Map aligned!;
        };

    #if { "$map" == "loaded" } { #map get {roomname} {checkroomname} };
   
    #if { "$checkroomname" == "" } {
        #nop write said info to map.tt;
        #map set roomname $room_name;
        #map set roomarea $area_name;
        #map set roomterrain $room_terrain;
        #map set roomid $room_vnum;
        #map set roomdesc $room_desc;

        #nop set room symbols and colors;
        #nop note:;
        #nop I've used a %D to replace;
        #nop (indoors) and (outdoors);
        #nop (not discriminating here);
        #nop see #help reg for more info;

        #if { "$room_terrain" == "cave %D" } {
            #map set roomsymbol <108>o;
            #map set roomcolor <108>;
            };
        #elseif { "$room_terrain" == "inside %D" } {
            #map set roomsymbol <078>*;
            #map set roomcolor <078>;
            };
        #elseif { "$room_terrain" == "field %D" } {
            #map set roomsymbol <028>o;
            #map set roomcolor <028>;
            };
        #elseif { "$room_terrain" == "hills %D" } {
            #map set roomsymbol <028>z;
            #map set roomcolor <028>;
            };
        #elseif { "$room_terrain" == "road %D" } {
            #map set roomsymbol <108>+;
            #map set roomcolor <108>;
            };
        #elseif { "$room_terrain" == "forest %D" } {
            #map set roomsymbol <028>f;
            #map set roomcolor <028>;
            };
        #elseif { "$room_terrain" == "city %D" } {
            #map set roomsymbol <108>+;
            #map set roomcolor <108>;
            };
        #elseif { "$room_terrain" == "mountain %D" } {
            #map set roomsymbol <038>x;
            #map set roomcolor <038>;
            };
        #elseif { "$room_terrain" == "pond %D" } {
            #map set roomsymbol <168>~;
            #map set roomcolor <168>;
            };
        #elseif { "$room_terrain" == "lagoon %D" } {
            #map set roomsymbol <168>~;
            #map set roomcolor <168>;
            };
        #elseif { "$room_terrain" == "rapids %D" } {
            #map set roomsymbol <168>~;
            #map set roomcolor <168>;
            };
        #elseif { "$room_terrain" == "river %D" } {
            #map set roomsymbol <168>~;
            #map set roomcolor <168>;
            };
        #elseif { "$room_terrain" == "ocean %D" } {
            #map set roomsymbol <048>~;
            #map set roomcolor <048>;
            };
        #elseif { "$room_terrain" == "underwater %D" } {
            #map set roomsymbol <048>~;
            #map set roomcolor <048>;
            };
        #elseif { "$room_terrain" == "sand %D" } {
            #map set roomsymbol <038>!;
            #map set roomcolor <038>;
            };
        };
    };

#alias {mapdown} {
    #map set roomcolor <048>;
    };

#alias {mapup} {
    #map set roomcolor <158>;
    };

#alias {mapwater} {
    #map set roomsymbol <078>W;
    };

#alias {mapshop} {
    #map set roomnote shop;
    #map set roomsymbol <038>S;
    };

#alias {mapfood} {
    #map set roomnote food;
    #map set roomsymbol <038>F;
    };

#alias {mapnexus} {
    #map set roomnote nexus;
    #map set roomsymbol <078>N;
    };

#alias {mapbank} {
    #map set roomnote bank;
    #map set roomsymbol <078>B;
    };

#alias {mapguild} {
    #map set roomnote guild;
    #map set roomsymbol <178>G;
    };

#alias {maptemple} {
    #map set roomnote temple;
    #map set roomsymbol <178>T;
    };

#act {No way!  You are still fighting!} {#map undo};

#act {The world around you begins disintegrating.} {#delay 6 #map goto $room_name};

#alias {runexile} {#map run {A Small Boat Ramp} {.5}}
#alias {runseringale} {#map run {South Square} {.5}}
#alias {runtimaran} {#map run {City Centre of Timaran} {.5}}
#alias {rundarkhaven} {#map run {An opening in the fog} {.5}}

#nop designed with xfce4-terminal emulator.;
#nop If the colors off, try xfce4-terminal.;


Last edited by deauja on Sun Jan 07, 2024 9:44 am; edited 17 times in total
Back to top
View user's profile Send private message
 
0 0 0
Davairus
Implementor


Joined: 16 Jan 2004
Posts: 10344
Location: 0x0000

PostPosted: Sat Dec 16, 2023 7:27 pm    Post subject:

That's amazing man! I noticed though you do not have any MXP handler. Is that something I can help with? I can supply the control code sequences if you need them
Back to top
View user's profile Send private message Send e-mail
 
1 0 0
deauja



Joined: 11 Apr 2006
Posts: 149
Location: rain forest

PostPosted: Sun Dec 17, 2023 12:31 am    Post subject:

Yeah, that would be good. I haven't done much with MXP however it's something I'd be willing to learn about for the fun of it.

Last edited by deauja on Wed Jan 03, 2024 7:42 am; edited 2 times in total
Back to top
View user's profile Send private message
 
0 0 0
Davairus
Implementor


Joined: 16 Jan 2004
Posts: 10344
Location: 0x0000

PostPosted: Sun Dec 17, 2023 1:39 am    Post subject:

\033[1z and \033[7z and I think we have \t (tab) to separate things inside but thats a bit fuzzy for me.
Back to top
View user's profile Send private message Send e-mail
 
1 0 0
deauja



Joined: 11 Apr 2006
Posts: 149
Location: rain forest

PostPosted: Sun Jan 07, 2024 9:40 am    Post subject: ARTT 1.4

ARTT 1.4
I keep updating last posted script.
so for newest version copy, paste.

new screen shot Cool
new code, lots of fixes
added link to dl map.tt

screenshot:
https://postimg.cc/4mWhMR8g

map.tt:
https://ufile.io/aax359qh

questions here, will help if I can.
Back to top
View user's profile Send private message
 
0 0 0
Display posts from previous:   
Post new topic   Reply to topic    Abandoned Realms Forum Index -> Newbie Q/A All times are GMT
Goto page Previous  1, 2, 3, 4
Page 4 of 4

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © phpBB Group