new dead letter mission tracking

This commit is contained in:
Brandon Cornejo 2026-02-08 18:23:32 -06:00
parent 0a32a141be
commit 58bfe8d557

View File

@ -1,43 +1,38 @@
#CLASS {missiontimers_letters} {kill}; #CLASS {missiontimers_letters} {kill};
#CLASS {missiontimers_letters} {open}; #CLASS {missiontimers_letters} {open};
#NOP ======================= #VARIABLE {letter_types} {
#NOP ===== VARIABLES ===== {DLA}{DLA (close by\; smudged)}
#NOP ======================= {DLB}{DLB (close by\; handwriting)}
{DLC}{DLC (close by\; vague)}
#NOP [1 = Local, 2 = Close-by, 3 = Far Away, 4 = Distant Lands, 5 = Difficult Customer] {DLD}{DLD (close by\; city)}
#VAR {dead_letter_rewards} { {DLE}{DLE (far away\; smudged)}
{4 Ankh-Morpork dollars}{1} {DLF}{DLF (far away\; handwriting)}
{8 Ankh-Morpork dollars}{2} {DLG}{DLG (far away\; vague)}
{3 Djelian talents and 5 Djelian tooni}{3} {DLH}{DLH (far away\; city)}
{4 Lancre crowns and 2 Lancre shillings}{3} {DLI}{DLI (difficult customer)}
{7 Ephebian decadrachmae and 2 Ephebian stater}{3} };
{2 Ankh-Morpork ten-dollars}{3}
{2 Genuan forins and 5 Genuan livres}{3}
{1 Klatchian ten dinar and 2 Klatchian two dinar coins}{3}
{1 Agatean Empire ten-rhinu and 5 Agatean Empire rhinu}{3}
{7 Lancre crowns and 5 Lancre shillings}{4}
{2 Agatean Empire ten-rhinu and 5 Agatean Empire rhinu}{4}
{6 Djelian talents and 5 Djelian tooni}{4}
{4 Genuan forins and 3 Genuan livres}{4}
{3 Ankh-Morpork ten-dollars and 2 Ankh-Morpork dollars}{4}
{1 Ephebian mina and 5 Ephebian decadrachmae}{4}
{3 Agatean Empire ten-rhinu and 5 Agatean Empire rhinu}{5}
{4 Ankh-Morpork ten-dollars and 5 Ankh-Morpork dollars}{5}
{1 Lancre sovereign and 1 Lancre tencrown}{5}
{2 Ephebian minae}{5}
{1 Genuan ducat and 2 Genuan forins}{5}
}
#VARIABLE {missions[letter]} { #VARIABLE {missions[letter]} {
{last_difficulty}{0} {last_difficulty}{0}
} }
#nop Capture offering to deliver a letter;
#ALIAS {^offer to deliver {(d|D)[A-z]{2}}$} {
#send {%0};
#format {missions[letter][last_difficulty]} {%u} {%1};
};
#nop Capture offering to return a letter;
#NOP ======================= #ALIAS {return letter} {
#NOP ===== Aliases ===== #send {return letter};
#NOP ======================= #format {missions[letter][retry_list][$GMCP[charinfo][capname]]} {%T};
/letter_returned;
};
#ACTION {^You offer to give an? {.+?} letter to Frank.$} {
#format {missions[letter][retry_list][$GMCP[charinfo][capname]]} {%T};
#nop [missions[letter][last_difficulty]];
/letter_returned;
};
#ALIAS {/letter_returned} { #ALIAS {/letter_returned} {
#format {missions[letter][retry_list][$GMCP[charinfo][capname]]} {%T}; #format {missions[letter][retry_list][$GMCP[charinfo][capname]]} {%T};
@ -45,7 +40,7 @@
#line sub variable { #line sub variable {
#format {delayname} {letter_retry_%s} {$GMCP[charinfo][capname]}; #format {delayname} {letter_retry_%s} {$GMCP[charinfo][capname]};
#delay {$delayname} { #delay {$delayname} {
#format {letter_timer_line} {%c[MT] %c*%c %s can now request another letter from Frank.} {bold blue} {bold yellow} {bold blue} {$GMCP[charinfo][capname]}; #format {letter_timer_line} {<acf>[<fff>missions<acf>] <138>*<900><cfa> %s <acf>can now request another letter from Frank.<099>} {$GMCP[charinfo][capname]};
#echo {$letter_timer_line}; #echo {$letter_timer_line};
#unvar {letter_timer_line}; #unvar {letter_timer_line};
@ -55,127 +50,78 @@
#unvar {delayname}; #unvar {delayname};
}; };
#ALIAS {^return letter$} { #nop Capture being rewarded for completing delivery of the letter;
#send { return letter}; #ACTION {^You have been awarded {[0-9]{1,7}} experience points for delivering this letter.$} {
/letter_returned #local {last_difficulty} {$missions[letter][last_difficulty]};
};
#ALIAS {^give letter to {f|F}rank$} { #nop If we don't have a difficulty match, we can't act.;
#send { give letter to Frank}; #if {"$last_difficulty" == "0"} {
/letter_returned
};
#NOP =======================
#NOP ===== Actions =====
#NOP =======================
#ACTION {^You have been awarded %d experience points and given %2.$} {
#nop You have been awarded 60407 experience points and given 2 Agatean Empire ten-rhinu and 5 Agatean Empire rhinu.
#var {missions[letter][last_difficulty]} {0};
#if {&dead_letter_rewards[%2]} {
#var {missions[letter][last_difficulty]} {$dead_letter_rewards[%2]};
};
};
#ACTION {^You salute smartly as you deliver a letter} {
#nop If we don't have a difficulty match, we can't act.
#if {"$missions[letter][last_difficulty]" == "0"} {
#return; #return;
}; };
#nop If we know the difficulty, set the appropriate timer;
#switch {$missions[letter][last_difficulty]} { #nop You have been awarded 60407 experience points and given 2 Agatean Empire ten-rhinu and 5 Agatean Empire rhinu.;
#case {1} { #format {missions[letter][active_list][$GMCP[charinfo][capname]][$last_difficulty]} {%T};
#nop Local;
#if {&missions[letter][active_list][$GMCP[charinfo][capname]][local]} { #break; };
#format {missions[letter][active_list][$GMCP[charinfo][capname]][local]} {%T};
#line sub variable { #line sub variable {
#format {delayname} {letter_local_%s} {$GMCP[charinfo][capname]}; #format {delayname} {letter_%s_%s} {$last_difficulty} {$GMCP[charinfo][capname]};
#delay {$delayname} { #delay {$delayname} {
#format {letter_timer_line} {%c[MT] %c*%c %s can now do another local letter.} {bold blue} {bold yellow} {bold blue} {$GMCP[charinfo][capname]}; #format {letter_timer_line} {<acf>[<fff>missions<acf>] <138>*<900><cfa> %s <acf>can now do another "%c%s%c" letter.<099>} {$GMCP[charinfo][capname]} {Jade} {$letter_types[$last_difficulty]} {<acf>};
#echo {$letter_timer_line}; #echo {$letter_timer_line};
#unvar {letter_timer_line}; #unvar {letter_timer_line};
#unvar {missions[letter][active_list][$GMCP[charinfo][capname]][local]}; #unvar {missions[letter][active_list][$GMCP[charinfo][capname]][$last_difficulty]};
} {3600}; } {3600};
}; };
#unvar {delayname}; #unvar {delayname};
#variable {missions[letter][last_difficulty]} {0};
};
#ALIAS {/letters_recreate_delays} {
#format {current_time} {%T};
#nop == start with retry list;
#foreach {*missions[letter][retry_list][]} {player} {
#local {delay_time} {$missions[letter][retry_list][$player]};
#math {delay_time} {600 - ($current_time - $delay_time)};
#if {$delay_time < 1} {
#unvar {missions[letter][retry_list][$player]};
#continue;
}; };
#case {2} {
#nop Closeby;
#if {&missions[letter][active_list][$GMCP[charinfo][capname]][close]} { #break; };
#format {missions[letter][active_list][$GMCP[charinfo][capname]][close]} {%T};
#line sub variable { #line sub variable {
#format {delayname} {letter_close_%s} {$GMCP[charinfo][capname]}; #delay {$delay_time} {
#delay {$delayname} { #format {letter_timer_line} {<acf>[<fff>missions<acf>] <138>*<900><cfa> %s <acf>can now request another letter from Frank.<099>} {$player};
#format {letter_timer_line} {%c[MT] %c*%c %s can now do another close-by letter.} {bold blue} {bold yellow} {bold blue} {$GMCP[charinfo][capname]};
#echo {$letter_timer_line}; #echo {$letter_timer_line};
#unvar {letter_timer_line}; #unvar {letter_timer_line};
#unvar {missions[letter][active_list][$GMCP[charinfo][capname]][close]}; #unvar {missions[letter][retry_list][$player]};
} {3600};
}; };
#unvar {delayname};
}; };
#case {3} { };
#nop Faraway; #nop == do all the difficulties;
#if {&missions[letter][active_list][$GMCP[charinfo][capname]][far]} { #break; }; #foreach {*missions[letter][active_list][]} {player} {
#format {missions[letter][active_list][$GMCP[charinfo][capname]][far]} {%T}; #foreach {*missions[letter][active_list][$player][]} {$difficulty} {
#local {delay_time} {$missions[letter][active_list][$player][$difficulty]};
#math {delay_time} {3600 - ($current_time - $delay_time)};
#if {$delay_time < 1} {
#unvar {missions[letter][active_list][$player][$difficulty]};
#continue;
};
#line sub variable { #line sub variable {
#format {delayname} {letter_far_%s} {$GMCP[charinfo][capname]}; #delay {$delay_time} {
#delay {$delayname} { #format {letter_timer_line} {<acf>[<fff>missions<acf>] <138>*<900><cfa> %s <acf>can now do another "%c%s%c" letter.<099>} {$player} {Jade} {$letter_types[$difficulty]} {<acf>};
#format {letter_timer_line} {%c[MT] %c*%c %s can now do another far away letter.} {bold blue} {bold yellow} {bold blue} {$GMCP[charinfo][capname]};
#echo {$letter_timer_line}; #echo {$letter_timer_line};
#unvar {letter_timer_line}; #unvar {letter_timer_line};
#unvar {missions[letter][active_list][$GMCP[charinfo][capname]][far]}; #unvar {missions[letter][active_list][$player][$difficulty]};
} {3600}; };
}; };
#unvar {delayname};
};
#case {4} {
#nop Distantland;
#if {&missions[letter][active_list][$GMCP[charinfo][capname]][distant]} { #break; };
#format {missions[letter][active_list][$GMCP[charinfo][capname]][distant]} {%T};
#line sub variable {
#format {delayname} {letter_distant_%s} {$GMCP[charinfo][capname]};
#delay {$delayname} {
#format {letter_timer_line} {%c[MT] %c*%c %s can now do another distant land letter.} {bold blue} {bold yellow} {bold blue} {$GMCP[charinfo][capname]};
#echo {$letter_timer_line};
#unvar {letter_timer_line};
#unvar {missions[letter][active_list][$GMCP[charinfo][capname]][distant]};
} {3600};
};
#unvar {delayname};
};
#case {5} {
#nop Difficultcustomer;
#if {&missions[letter][active_list][$GMCP[charinfo][capname]][difficult]} { #break; };
#format {missions[letter][active_list][$GMCP[charinfo][capname]][difficult]} {%T};
#line sub variable {
#format {delayname} {letter_difficult_%s} {$GMCP[charinfo][capname]};
#delay {$delayname} {
#format {letter_timer_line} {%c[MT] %c*%c %s can now do another difficult customer letter.} {bold blue} {bold yellow} {bold blue} {$GMCP[charinfo][capname]};
#echo {$letter_timer_line};
#unvar {letter_timer_line};
#unvar {missions[letter][active_list][$GMCP[charinfo][capname]][difficult]};
} {3600};
};
#unvar {delayname};
}; };
}; };
#var {missions[letter][last_difficulty]} {0};
}; };
#CLASS {missiontimers_letters} {close}; #CLASS {missiontimers_letters} {close};