[script] n0= n1=on *:text:*³»¿ª*:#: { n2= n3= ;debug n4= ;msg $chan start n5= n6= set %string $1- n7= n8= if ($chr(60) isin $1-) && ($chr(62) isin $1-) { n9= n10= var %lbracket = $pos($1-,$chr(60)) n11= var %rbracket = $pos($1-,$chr(62)) n12= n13= var %inbetween = $calc(%rbracket - %lbracket - 1) n14= var %lbracket = $calc(%lbracket + 1) n15= n16= set %name $mid($1-,%lbracket,%inbetween) n17= n18= set %string $remove(%string,<,>,%name) n19= n20= } n21= ;end if NPC name n22= n23= else { n24= set %name $nick n25= } n26= ;end if PC name n27= n28= ;debug n29= ;msg $chan %name n30= n31= var %which = $findtok(%charlist,%name,1,124) n32= n33= if (%which == $null) { n34= ;debug n35= msg $chan 14 $+ %name $+ ÀÇ ±¼¸² ±â·ÏÀÌ ¾ø½À´Ï´Ù. n36= goto endfunction n37= } n38= n39= if ($count(%string,$chr(39)) == 2) { n40= n41= var %lbracket = $pos($1-,$chr(39),1) n42= var %rbracket = $pos($1-,$chr(39),2) n43= n44= var %inbetween = $calc(%rbracket - %lbracket - 1) n45= inc %lbracket n46= n47= set %trait $mid($1-,%lbracket,%inbetween) n48= set %string $remove(%string,',%trait) n49= n50= } n51= ;end if '' in string, get trait n52= n53= ;debug n54= ;msg $chan %string n55= n56= set %unstring %string n57= n58= while ($len(%unstring) > 0) { n59= n60= var %first = $left(%unstring,1) n61= n62= if (%first isnum) { n63= set %extractnum %numlist $+ %first n64= } n65= n66= var %stringlen = $len(%unstring) n67= n68= var %stringlen = $calc(%stringlen - 1) n69= n70= set %unstring $right(%unstring,%stringlen) n71= n72= } n73= ;end while to extract number n74= n75= unset %unstring n76= n77= if (%extractnum < 1) { n78= unset %extractnum n79= } n80= n81= var %traitlist = $($+(%,traitlist.,%which),2) n82= n83= if (%traitlist == $null) { n84= n85= msg $chan 14 $+ %name $+ ÀÇ ³»¿ª ±â·ÏÀÌ ¾ø½À´Ï´Ù. n86= n87= goto endfunction n88= n89= } n90= n91= if (³Ö isin %string) || (Ãß°¡ isin %string) || (´õÇϱâ isin %string) || (µ¡ºÙ isin %string) { n92= n93= goto endif n94= n95= if (%trait == $null) { n96= goto endfunction n97= } n98= n99= :endif n100= n101= if (%extractnum != $null) { n102= n103= var %countoks = $numtok(%traitlist,44) n104= n105= ;debug n106= ;msg $chan %countoks n107= n108= if (%extractnum <= %countoks) { n109= set %traitlist.new $instok(%traitlist,%trait,%extractnum,44) n110= goto output n111= } n112= ;end if number same as or less than number of tokens n113= else { n114= goto noextractnum n115= } n116= n117= } n118= ;end if no position set n119= else { n120= n121= :noextractnum n122= n123= set %traitlist.new $addtok(%traitlist,%trait,44) n124= goto output n125= n126= } n127= ;end if position set n128= n129= } n130= ;end if adding trait n131= n132= if (»© isin %string) || (Áö¿ö isin %string) || (Áö¿ò isin %string) || (Áö¿ì isin %string) || (Á¦°Å isin %string) { n133= n134= if (%extractnum != $null) && (%extractnum <= $numtok(%traitlist,44)) { n135= n136= set %traitlist.new $deltok(%traitlist,%extractnum,44) n137= goto output n138= n139= } n140= ;end if number in the string n141= n142= if (%trait != $null) { n143= n144= if ($matchtok(%traitlist,%trait,0,124) > 0) { n145= var %matchingtoken = $matchtok(%traitlist,%trait,1,44) n146= ;debug n147= ;msg $chan %matchingtoken n148= n149= set %traitlist.new $remtok(%traitlist,%matchingtoken,1,44) n150= goto output n151= } n152= ;end if the trait matches one in trait list n153= n154= else { n155= msg $chan 14 $+ %name $+ ÀÇ ÁÖ»çÀ§ ³»¿ª¿¡ ±×·± ³»¿ªÀÌ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù. n156= goto endfunction n157= } n158= ;end if exact trait not in trait list n159= n160= } n161= ;end if trait specified in the string n162= n163= } n164= ;end if removing trait n165= n166= if (¹Ù²Ù isin %string) || (¹Ù²ã isin %string) || (¹Ù²Þ isin %string) || (´ëü isin %string) { n167= n168= ;debug n169= ;msg $chan change n170= n171= if (%extractnum == $null) || (%trait == $null) { n172= goto endfunction n173= } n174= ;end if number to replace or replacing trait not specified n175= n176= set %traitlist.new $puttok(%traitlist,%trait,%extractnum,44) n177= goto output n178= n179= } n180= n181= else { n182= goto endfunction n183= } n184= n185= :output n186= n187= msg $chan 14 $+ %name $+ ÀÇ ÁÖ»çÀ§ ³»¿ª: %traitlist.new n188= n189= set $+(%,traitlist.,%which) %traitlist.new n190= n191= unset %traitlist.new n192= n193= goto endfunction n194= n195= :endfunction n196= n197= unset %extractnum n198= unset %string n199= unset %name n200= unset %trait n201=} n202=;end function n203= n204= n205=on *:text:*d*:#: { n206= n207= if (d isin $1) { n208= n209= n210= set %roll $1 n211= n212= if (! isin $1) { n213= set %roll $remove($1,!) n214= } n215= n216= var %pos = $pos(%roll,d) n217= var %len = $len(%roll) n218= n219= if (%pos == 1) || (%pos == %len) { n220= goto endfunction n221= } n222= ;if d first or last letter n223= n224= else { n225= n226= var %pos = $calc(%pos - 1) n227= n228= set %count $left(%roll,%pos) n229= set %sides $right(%roll,$calc(%len - %pos - 1)) n230= n231= if (%count !isnum) || (%sides !isnum) { n232= goto endfunction n233= } n234= ;if %count or %sides not number n235= n236= else { n237= ;if both %count and %sides numbers n238= n239= if ($chr(60) isin $2-) && ($chr(62) isin $2-) { n240= n241= var %lbracket = $pos($1-,$chr(60)) n242= var %rbracket = $pos($1-,$chr(62)) n243= n244= var %inbetween = $calc(%rbracket - %lbracket - 1) n245= var %lbracket = $calc(%lbracket + 1) n246= n247= set %name $mid($1-,%lbracket,%inbetween) n248= n249= } n250= ;end if NPC name n251= n252= else { n253= set %name $nick n254= } n255= ;end if PC name n256= ;debug n257= ;msg $chan %name n258= n259= if ($len(%charlist) <= 0) { n260= set %charlist %name n261= set %char 1 n262= } n263= ;if no character list n264= n265= else { n266= n267= var %num = 1 n268= n269= set %char $findtok(%charlist,%name,1,124) n270= n271= if ($len(%char) <= 0) { n272= n273= ;add new character to list n274= n275= set %charlist %charlist $+ $chr(124) $+ %name n276= n277= set %char $numtok(%charlist,124) n278= n279= ;debug n280= ;msg $chan %char n281= } n282= ;if not in list n283= n284= } n285= ;if character list exists n286= n287= n288= var %dicelist = $($+(%,dicelist.,%char),2) n289= n290= var %traitlist = $($+(%,traitlist.,%char),2) n291= n292= set %traitname $2- n293= n294= if ($chr(60) isin %traitname) && ($chr(62) isin %traitname) { n295= n296= var %len = $len(%traitname) n297= n298= var %lbracket = $pos(%traitname,$chr(60)) n299= var %rbracket = $pos(%traitname,$chr(62)) n300= n301= var %lbracket = $calc(%lbracket - 1) n302= var %rbracket = $calc(%len - %rbracket) n303= n304= var %left.trait = $left(%traitname,%lbracket) n305= var %right.trait = $right(%traitname,%rbracket) n306= set %traitname %left.trait $+ %right.trait n307= n308= ; xxx[xxxx]xxxxx n309= n310= } n311= ;end remove NPC name n312= n313= var %newtrait = %roll %traitname n314= n315= unset %traitname n316= n317= var %temp = $rand(1,%sides) n318= n319= if (%dicelist == $null) { n320= n321= set $+(%,dicelist.,%char) %temp n322= set $+(%,traitlist.,%char) %newtrait n323= n324= } n325= ;if %dicelist not set n326= n327= else { n328= n329= set $+(%,dicelist.,%char) %dicelist $+ , $+ %temp n330= set $+(%,traitlist.,%char) %traitlist $+ , %newtrait n331= n332= } n333= ;if %dicelist set, append n334= n335= var %traitlist = $($+(%,traitlist.,%char),2) n336= n337= set %templist %temp n338= n339= var %dstat = $($+(%,d,%sides,.,$nick),2) n340= n341= if (%dstat == $null) { n342= n343= var %num = 1 n344= n345= set $+(%,d,%sides,.,$nick) 0 n346= n347= while (%num < %sides) { n348= n349= var %dstat = $($+(%,d,%sides,.,$nick),2) n350= n351= set $+(%,d,%sides,.,$nick) %dstat $+ , $+ 0 n352= n353= inc %num n354= } n355= ;end while n356= n357= } n358= ;end if no dice stat for that size die and nick n359= n360= var %dstat = $($+(%,d,%sides,.,$nick),2) n361= n362= var %diceplace = $gettok(%dstat,%temp,44) n363= n364= inc %diceplace n365= n366= set $+(%,d,%sides,.,$nick) $puttok(%dstat,%diceplace,%temp,44) n367= n368= ;increase the instance of this result for this die and this person by one n369= n370= n371= var %num = 1 n372= n373= while (%num < %count) { n374= n375= var %temp = $rand(1,%sides) n376= n377= n378= var %dstat = $($+(%,d,%sides,.,$nick),2) n379= n380= var %diceplace = $gettok(%dstat,%temp,44) n381= n382= inc %diceplace n383= n384= set $+(%,d,%sides,.,$nick) $puttok(%dstat,%diceplace,%temp,44) n385= n386= ;increase the instance of this result for this die and this person by one n387= n388= n389= var %dicelist = $($+(%,dicelist.,%char),2) n390= n391= set $+(%,dicelist.,%char) %dicelist $+ , $+ %temp n392= n393= set %templist %templist $+ , $+ %temp n394= n395= inc %num n396= n397= } n398= ;end while n399= n400= var %dicelist = $($+(%,dicelist.,%char),2) n401= n402= set $+(%,dicelist.,%char) %dicelist n403= n404= if (! isin $1) { n405= set $+(%,dicelist.,%char) (°á°ú À¯º¸) n406= } n407= ;end if ! in $1 n408= n409= else { n410= msg $chan 14 $+ %name $+ ÀÇ ±¼¸²: %roll ( $+ %templist $+ ) n411= msg $chan 14 $+ %name $+ ÀÇ ÁÖ»çÀ§ °á°ú: $($+(%,dicelist.,%char),2) n412= } n413= ;end if ! not in $1 n414= n415= msg $chan 14 $+ %name $+ ÀÇ ÁÖ»çÀ§ ³»¿ª: $($+(%,traitlist.,%char),2) n416= n417= n418= } n419= ;end if both %count and %sides numbers n420= n421= } n422= ;if d not first or last letter n423= n424= } n425= ;end if d in first word n426= n427= :endfunction n428= unset %roll n429= unset %templist n430= unset %count n431= unset %sides n432= unset %name n433= unset %char n434=} n435=; end function n436= n437= n438=on 10:text:Àüü ÃʱâÈ­:#: { n439= n440= if ($len(%charlist) > 0) { n441= n442= var %num = 1 n443= n444= var %len = $numtok(%charlist,124) n445= n446= while (%num <= %len) { n447= n448= set $+(%,dicelist.,%num) $null n449= set $+(%,traitlist.,%num) $null n450= n451= inc %num n452= } n453= ;end while n454= n455= unset %charlist n456= n457= msg $chan 14±¼¸²À» Àüü ÃʱâÈ­Çß½À´Ï´Ù. n458= n459= } n460= ;if character list exists n461= n462= else { n463= n464= msg $chan 14ÃʱâÈ­ÇÒ ±¼¸²ÀÌ ¾ø½À´Ï´Ù. n465= n466= } n467= n468=} n469=;end function n470= n471= n472=on *:text:*ÃʱâÈ­*:#: { n473= n474= if ($chr(60) isin $1-) && ($chr(62) isin $1-) { n475= n476= var %lbracket = $pos($1-,$chr(60)) n477= var %rbracket = $pos($1-,$chr(62)) n478= n479= var %inbetween = $calc(%rbracket - %lbracket - 1) n480= var %lbracket = $calc(%lbracket + 1) n481= n482= set %name $mid($1-,%lbracket,%inbetween) n483= n484= } n485= ;end if NPC name n486= n487= else { n488= set %name $nick n489= } n490= ;end if PC name n491= n492= if (%charlist != $null) { n493= n494= var %char = $findtok(%charlist,%name,1,124) n495= n496= if (%char == $null) { n497= n498= msg $chan 14 $+ %name $+ ÀÇ ±¼¸²ÀÌ ¾ø½À´Ï´Ù. n499= n500= } n501= ;If character not in list n502= n503= else { n504= n505= set %charlist $puttok(%charlist,¡Ø,%char,124) n506= set $+(%,dicelist.,%char) $null n507= set $+(%,traitlist.,%char) $null n508= n509= msg $chan 14 $+ %name $+ ÀÇ ±¼¸²À» ÃʱâÈ­Çß½À´Ï´Ù. n510= n511= } n512= ;if character in list n513= n514= } n515= ;if character list exists n516= n517= else { n518= n519= msg $chan 14ÃʱâÈ­ÇÒ ±¼¸²ÀÌ ¾ø½À´Ï´Ù. n520= n521= } n522= ;if no character list n523= n524= :endloop n525= n526= unset %name n527=} n528=;end function n529= n530= n531= n532=;ÀÌÁ¦ °á°ú º¸¿©ÁÖ±â¿Í Áö¿ì±â Ãß°¡ÇÏ¸é µÉµí.. n533= n534=on *:text:*º¸*±â*:#: { n535= n536= if (ÁÖ»çÀ§ isin $1-) || (´ÙÀ̽º isin $1-) || (°á°ú isin $1-) || (±¼¸² isin $1-) { n537= n538= if ($chr(60) isin $1-) && ($chr(62) isin $1-) { n539= n540= var %lbracket = $pos($1-,$chr(60)) n541= var %rbracket = $pos($1-,$chr(62)) n542= n543= var %inbetween = $calc(%rbracket - %lbracket - 1) n544= var %lbracket = $calc(%lbracket + 1) n545= n546= set %name $mid($1-,%lbracket,%inbetween) n547= n548= } n549= ;end if NPC name n550= n551= else { n552= set %name $nick n553= } n554= ;end if PC name n555= n556= if ($len(%charlist) > 0) { n557= n558= set %char $findtok(%charlist,%name,1,124) n559= n560= if (%char == $null) { n561= n562= msg $chan 14 $+ %name $+ ÀÇ ÁÖ»çÀ§ °á°ú ±â·ÏÀÌ ¾ø½À´Ï´Ù. n563= n564= } n565= ;if %name not in %charlist n566= n567= else { n568= n569= msg $chan 14 $+ %name $+ ÀÇ ÁÖ»çÀ§ °á°ú: $($+(%,dicelist.,%char),2) n570= msg $chan 14 $+ %name $+ ÀÇ ÁÖ»çÀ§ ³»¿ª: $($+(%,traitlist.,%char),2) n571= n572= } n573= ;if %name in %charlist n574= n575= } n576= ;if %charlist set n577= n578= else { n579= n580= msg $chan 14ÁÖ»çÀ§ ±â·ÏÀÌ ¾ø½À´Ï´Ù. n581= n582= } n583= ;if %charlist not set n584= } n585= ;end if ÁÖ»çÀ§ or ´ÙÀ̽º in string n586= n587= unset %char n588= unset %name n589=} n590=;end function n591= n592= n593=on *:text:*Áö*±â*:#: { n594= n595= if (ÁÖ»çÀ§ isin $1-) || (´ÙÀ̽º isin $1-) || (°á°ú isin $1-) || (±¼¸² isin $1-) { n596= n597= set %string $1- n598= n599= ;get name & string n600= n601= if ($chr(60) isin $1-) && ($chr(62) isin $1-) { n602= n603= var %lbracket = $pos($1-,$chr(60)) n604= var %rbracket = $pos($1-,$chr(62)) n605= n606= var %inbetween = $calc(%rbracket - %lbracket - 1) n607= var %lbracket = $calc(%lbracket + 1) n608= n609= set %name $mid($1-,%lbracket,%inbetween) n610= n611= n612= var %len = $len($1-) n613= n614= var %lbracket = $pos($1-,$chr(60)) n615= var %rbracket = $pos($1-,$chr(62)) n616= n617= var %lbracket = $calc(%lbracket - 1) n618= var %rbracket = $calc(%len - %rbracket) n619= n620= var %left.trait = $left($1-,%lbracket) n621= var %right.trait = $right($1-,%rbracket) n622= n623= set %string %left.trait $+ %right.trait n624= n625= } n626= ;end if NPC name n627= n628= else { n629= set %name $nick n630= } n631= ;end if PC name n632= n633= n634= ;start extracting numbers n635= n636= ;debug n637= ;msg $chan %string n638= n639= while ($len(%string) > 0) { n640= n641= var %first = $left(%string,1) n642= var %second = $mid(%string,2,1) n643= var %len = $len(%string) n644= n645= if (%first isnum) { n646= n647= if (%second isnum) { n648= n649= set %num %first $+ %second n650= n651= } n652= ;end if second letter also number (double digit) n653= n654= else { n655= n656= set %num %first n657= n658= } n659= ;end if second letter not number (single digit) n660= n661= if ($len(%erasenum) <= 0) { n662= n663= set %erasenum %num n664= } n665= ;end if list of numbers to be erased not set n666= n667= else { n668= n669= set %erasenum %erasenum $+ , $+ %num n670= } n671= ;end if list of numbers to be erased already compiled n672= n673= set %string $right(%string,$calc(%len - 2)) n674= } n675= ;end if first letter number n676= n677= else { n678= set %string $right(%string,$calc(%len - 1)) n679= } n680= ;end if first letter not number n681= n682= n683= } n684= ;end while n685= n686= unset %string n687= unset %num n688= n689= n690= if ($len(%charlist) > 0) { n691= n692= set %char $findtok(%charlist,%name,1,124) n693= n694= if (%char == $null) { n695= n696= msg $chan 14 $+ %name $+ ÀÇ ±¼¸² ±â·ÏÀÌ ¾ø½À´Ï´Ù. n697= n698= goto endfunction n699= n700= } n701= n702= } n703= else { n704= n705= msg $chan 14±¼¸² ±â·ÏÀÌ ¾ø½À´Ï´Ù. n706= n707= goto endfunction n708= } n709= n710= n711= n712= var %num = 1 n713= var %len = $numtok(%erasenum,44) n714= n715= while (%num <= %len) { n716= n717= var %which = $gettok(%erasenum,%num,44) n718= n719= var %dicelist = $($+(%,dicelist.,%char),2) n720= n721= if ($istok(%dicelist,%which,44) == $true) { n722= n723= set $+(%,dicelist.,%char) $remtok(%dicelist,%which,1,44) n724= n725= } n726= ;end if the number is in the dice list n727= n728= inc %num n729= } n730= ;end while n731= n732= var %dicelist = $($+(%,dicelist.,%char),2) n733= n734= msg $chan 14 $+ %name $+ ÀÇ ÁÖ»çÀ§ °á°ú: %dicelist n735= msg $chan 14 $+ %name $+ ÀÇ ÁÖ»çÀ§ ³»¿ª: $($+(%,traitlist.,%char),2) n736= n737= } n738= ;end if ÁÖ»çÀ§ or ´ÙÀ̽º in string n739= n740= :endfunction n741= n742= unset %erasenum n743= unset %char n744= unset %name n745=} n746=;end function n747= n748=on *:text:*»©*±â*:#: { n749= n750= set %string $1- n751= n752= ;get name & string n753= n754= if ($chr(60) isin $1-) && ($chr(62) isin $1-) { n755= n756= var %lbracket = $pos($1-,$chr(60)) n757= var %rbracket = $pos($1-,$chr(62)) n758= n759= var %inbetween = $calc(%rbracket - %lbracket - 1) n760= var %lbracket = $calc(%lbracket + 1) n761= n762= set %name $mid($1-,%lbracket,%inbetween) n763= n764= n765= var %len = $len($1-) n766= n767= var %lbracket = $pos($1-,$chr(60)) n768= var %rbracket = $pos($1-,$chr(62)) n769= n770= var %lbracket = $calc(%lbracket - 1) n771= var %rbracket = $calc(%len - %rbracket) n772= n773= var %left.trait = $left($1-,%lbracket) n774= var %right.trait = $right($1-,%rbracket) n775= n776= set %string %left.trait $+ %right.trait n777= n778= } n779= ;end if NPC name n780= n781= else { n782= set %name $nick n783= } n784= ;end if PC name n785= n786= n787= ;start extracting numbers n788= n789= ;debug n790= ;msg $chan %string n791= n792= while ($len(%string) > 0) { n793= n794= var %first = $left(%string,1) n795= var %second = $mid(%string,2,1) n796= var %len = $len(%string) n797= n798= if (%first isnum) { n799= n800= if (%second isnum) { n801= n802= set %num %first $+ %second n803= n804= } n805= ;end if second letter also number (double digit) n806= n807= else { n808= n809= set %num %first n810= n811= } n812= ;end if second letter not number (single digit) n813= n814= if ($len(%erasenum) <= 0) { n815= n816= set %erasenum %num n817= } n818= ;end if list of numbers to be erased not set n819= n820= else { n821= n822= set %erasenum %erasenum $+ , $+ %num n823= } n824= ;end if list of numbers to be erased already compiled n825= n826= set %string $right(%string,$calc(%len - 2)) n827= } n828= ;end if first letter number n829= n830= else { n831= set %string $right(%string,$calc(%len - 1)) n832= } n833= ;end if first letter not number n834= n835= n836= } n837= ;end while n838= n839= unset %string n840= unset %num n841= n842= n843= if ($len(%charlist) > 0) { n844= n845= set %char $findtok(%charlist,%name,1,124) n846= n847= if (%char == $null) { n848= n849= msg $chan 14 $+ %name $+ ÀÇ ±¼¸² ±â·ÏÀÌ ¾ø½À´Ï´Ù. n850= n851= goto endfunction n852= n853= } n854= n855= } n856= else { n857= n858= msg $chan 14±¼¸² ±â·ÏÀÌ ¾ø½À´Ï´Ù. n859= n860= goto endfunction n861= } n862= n863= n864= if ($len(%erasenum) <= 0) { n865= n866= goto endfunction n867= n868= } n869= ;end if no number in the string n870= n871= else { n872= n873= var %num = 1 n874= var %len = $numtok(%erasenum,44) n875= n876= while (%num <= %len) { n877= n878= var %which = $gettok(%erasenum,%num,44) n879= n880= var %dicelist = $($+(%,dicelist.,%char),2) n881= n882= if ($istok(%dicelist,%which,44) == $true) { n883= n884= set $+(%,dicelist.,%char) $remtok(%dicelist,%which,1,44) n885= n886= } n887= ;end if the number is in the dice list n888= n889= else { n890= msg $chan 14 $+ %which $+ : %name $+ ÀÇ ÁÖ»çÀ§ °á°ú¿¡ ¾ø´Â ¼ýÀÚÀÔ´Ï´Ù. n891= } n892= ;end if the number not in dice list n893= n894= inc %num n895= } n896= ;end while n897= n898= var %dicelist = $($+(%,dicelist.,%char),2) n899= n900= msg $chan 14 $+ %name $+ ÀÇ ÁÖ»çÀ§ °á°ú: %dicelist n901= msg $chan 14 $+ %name $+ ÀÇ ÁÖ»çÀ§ ³»¿ª: $($+(%,traitlist.,%char),2) n902= } n903= ;end if numbers in the string n904= n905= :endfunction n906= n907= unset %erasenum n908= unset %char n909= unset %name n910= n911= n912=} n913=;end function n914= n915=on *:text:*³Ö*±â*:#: { n916= n917= set %string $1- n918= n919= ;get name & string n920= n921= if ($chr(60) isin $1-) && ($chr(62) isin $1-) { n922= n923= var %lbracket = $pos($1-,$chr(60)) n924= var %rbracket = $pos($1-,$chr(62)) n925= n926= var %inbetween = $calc(%rbracket - %lbracket - 1) n927= var %lbracket = $calc(%lbracket + 1) n928= n929= set %name $mid($1-,%lbracket,%inbetween) n930= n931= n932= var %len = $len($1-) n933= n934= var %lbracket = $calc(%lbracket - 1) n935= var %rbracket = $calc(%len - %rbracket) n936= n937= var %left.trait = $left($1-,%lbracket) n938= var %right.trait = $right($1-,%rbracket) n939= n940= set %string %left.trait $+ %right.trait n941= n942= set %string %left.trait $+ %right.trait n943= n944= } n945= ;end if NPC name n946= n947= else { n948= set %name $nick n949= } n950= ;end if PC name n951= n952= n953= ;start extracting numbers n954= n955= while ($len(%string) > 0) { n956= n957= var %first = $left(%string,1) n958= var %second = $mid(%string,2,1) n959= var %len = $len(%string) n960= n961= if (%first isnum) { n962= n963= if (%second isnum) { n964= n965= set %num %first $+ %second n966= n967= } n968= ;end if second letter also number (double digit) n969= n970= else { n971= n972= set %num %first n973= n974= } n975= ;end if second letter not number (single digit) n976= n977= if ($len(%erasenum) <= 0) { n978= n979= set %erasenum %num n980= } n981= ;end if list of numbers to be erased not set n982= n983= else { n984= n985= set %erasenum %erasenum $+ , $+ %num n986= } n987= ;end if list of numbers to be erased already compiled n988= n989= set %string $right(%string,$calc(%len - 2)) n990= } n991= ;end if first letter number n992= n993= else { n994= set %string $right(%string,$calc(%len - 1)) n995= } n996= ;end if first letter not number n997= n998= n999= } n1000= ;end while n1001= n1002= unset %string n1003= unset %num n1004= n1005= if ($len(%charlist) > 0) { n1006= n1007= set %char $findtok(%charlist,%name,1,124) n1008= n1009= if (%char == $null) { n1010= n1011= msg $chan 14 $+ %name $+ ÀÇ ±¼¸² ±â·ÏÀÌ ¾ø½À´Ï´Ù. n1012= n1013= goto endfunction n1014= n1015= } n1016= n1017= } n1018= else { n1019= n1020= msg $chan 14±¼¸² ±â·ÏÀÌ ¾ø½À´Ï´Ù. n1021= n1022= goto endfunction n1023= } n1024= n1025= n1026= if ($len(%erasenum) <= 0) { n1027= goto endfunction n1028= } n1029= ;end if no number in string n1030= n1031= else { n1032= n1033= var %num = 1 n1034= var %len = $numtok(%erasenum,44) n1035= n1036= while (%num <= %len) { n1037= n1038= var %which = $gettok(%erasenum,%num,44) n1039= n1040= var %dicelist = $($+(%,dicelist.,%char),2) n1041= n1042= var %end = $numtok(%dicelist,44) n1043= var %end = $calc(%end + 1) n1044= n1045= set $+(%,dicelist.,%char) $instok(%dicelist,%which,%end,44) n1046= n1047= inc %num n1048= } n1049= ;end while n1050= n1051= var %dicelist = $($+(%,dicelist.,%char),2) n1052= n1053= msg $chan 14 $+ %name $+ ÀÇ ÁÖ»çÀ§ °á°ú: %dicelist n1054= msg $chan 14 $+ %name $+ ÀÇ ÁÖ»çÀ§ ³»¿ª: $($+(%,traitlist.,%char),2) n1055= } n1056= ;end if number(s) in string n1057= n1058= :endfunction n1059= n1060= unset %erasenum n1061= unset %char n1062= unset %name n1063= n1064=} n1065=;end function n1066= n1067= n1068=on *:text:*Á¤·Ä*:#: { n1069= n1070= if (ÁÖ»çÀ§ isin $1-) || (´ÙÀ̽º isin $1-) || (°á°ú isin $1-) || (±¼¸² isin $1-) { n1071= n1072= if ($chr(60) isin $1-) && ($chr(62) isin $1-) { n1073= n1074= var %lbracket = $pos($1-,$chr(60)) n1075= var %rbracket = $pos($1-,$chr(62)) n1076= n1077= var %inbetween = $calc(%rbracket - %lbracket - 1) n1078= var %lbracket = $calc(%lbracket + 1) n1079= n1080= set %name $mid($1-,%lbracket,%inbetween) n1081= n1082= } n1083= ;end if NPC name n1084= n1085= else { n1086= set %name $nick n1087= } n1088= ;end if PC name n1089= n1090= if ($len(%charlist) <= 0) { n1091= n1092= msg $chan 14±¼¸² °á°úÀÇ ±â·ÏÀÌ ¾ø½À´Ï´Ù. n1093= n1094= goto endfunction n1095= n1096= } n1097= ;end if no character list n1098= n1099= else { n1100= n1101= var %which = $findtok(%charlist,%name,1,124) n1102= n1103= if (%which == $null) { n1104= n1105= msg $chan 14 $+ %name $+ ÀÇ ±¼¸² °á°ú ±â·ÏÀÌ ¾ø½À´Ï´Ù. n1106= n1107= goto endfunction n1108= n1109= } n1110= ;end if character not in list n1111= n1112= var %dicelist = $($+(%,dicelist.,%which),2) n1113= n1114= if (¿ª isin $1-) || (°Å²Ù·Î isin $1-) { n1115= set $+(%,dicelist.,%which) $sorttok(%dicelist,44,nr) n1116= } n1117= else { n1118= set $+(%,dicelist.,%which) $sorttok(%dicelist,44,n) n1119= } n1120= n1121= msg $chan 14 $+ %name $+ ÀÇ ÁÖ»çÀ§ °á°ú: $($+(%,dicelist.,%which),2) n1122= msg $chan 14 $+ %name $+ ÀÇ ÁÖ»çÀ§ ³»¿ª: $($+(%,traitlist.,%which),2) n1123= n1124= } n1125= ;end if there is character list n1126= n1127= } n1128= ;end if dice string n1129= n1130= :endfunction n1131= n1132= unset %name n1133=} n1134=;end function