Register to post in forums, or Log in to your existing account
 

Play RetroMUD
Post new topic  Reply to topic     Home » Forums » CMUD Beta Forum
shalimar
GURU


Joined: 04 Aug 2002
Posts: 4662
Location: Pensacola, FL, USA

PostPosted: Tue Jun 15, 2010 2:03 am   

Trigger hangs CMUD
 
The following trigger seems to hang my system, but only at certain times:

Code:
<trigger name="CraftUser" priority="90" repeat="true" enabled="false" id="9">
  <pattern>%q({@craftList})%q</pattern>
  <value><![CDATA[$color=slategray
#IF (%ismember( %1, @craftList)) {
  #NOOP
  #SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'><color $color>%1</color></send>}
  }]]></value>
</trigger>


It only seems to hang on output such as this:

Code:
a  Shadowso |<****** / ||||||> mat beeswax
h  Shadowso |<<ESC>[31m**<ESC>[33m**<ESC>[32m**<ESC>[0m / <ESC>[31m||<ESC>[33m||<ESC>[32m||<ESC>[0m> <ESC>[2Smat beeswax<ESC>[0m
i  Shadowso >mat beeswax<CR><LF>
d  Shadowso |  [1] ShadowsofIsildur Comline : stopped
i  Shadowso <<CR><LF>
a  Shadowso |
i  Shadowso <<ESC>[36mApothecary-extractions:<ESC>[0m clean beeswax<CR><LF>
<ESC>[35mPhase 1:<ESC>[0m  15 seconds<CR><LF>
In Room (Reusable): <ESC>[32m<ESC>[31ma cheerily crackling campfire<ESC>[0m<ESC>[0m, <ESC>[32m<ESC>[31ma fire in the <CR><LF>
fireplace<ESC>[0m<ESC>[0m, <ESC>[32m<ESC>[31ma bed of glowing coals<ESC>[0m<ESC>[0m, <ESC>[32m<ESC>[31ma burning campfire<ESC>[0m<ESC>[0m, <CR><LF>
<ESC>[32m<ESC>[31ma freshly-stoked fire<ESC>[0m<ESC>[0m, or <ESC>[32m<ESC>[31ma fire burning in the stove<ESC>[0m<ESC>[0m. <CR><LF>
<ESC>[35mPhase 2:<ESC>[0m  20 seconds<CR><LF>
In Room (Reusable): <ESC>[32ma large copper-bottomed pot<ESC>[0m. <CR><LF>
Held or in Room (Consumed): 12 of <ESC>[32ma lump of beeswax<ESC>[0m. <CR><LF>
<ESC>[35mPhase 3:<ESC>[0m  20 seconds<CR><LF>
<ESC>[35mPhase 4:<ESC>[0m  30 seconds<CR><LF>
<ESC>[35mPhase 5:<ESC>[0m  20 seconds, Apothecary skill utilized.<CR><LF>
In Room (Reusable): <ESC>[32ma rectangular wooden mold<ESC>[0m. <CR><LF>
<ESC>[35mPhase 6:<ESC>[0m  20 seconds<CR><LF>
<ESC>[36mProduced:<ESC>[0m <ESC>[32ma large block of yellow beeswax<ESC>[0m. <CR><LF><CR><LF>
<<ESC>[31m**<ESC>[33m**<ESC>[32m**<ESC>[0m / <ESC>[31m||<ESC>[33m||<ESC>[32m||<ESC>[0m>
a  Shadowso |Apothecary-extractions: clean beeswax
f  Shadowso |  Pattern: %q({@craftAreas})%q : (%1="Apothecary-extractions")
c  Shadowso |  exec : Pattern "CraftGroups" : #SUB {<send 'crafts %1' 'Can i do...
a  Shadowso |Phase 1:  15 seconds
a  Shadowso |In Room (Reusable): a cheerily crackling campfire, a fire in the
a  Shadowso |fireplace, a bed of glowing coals, a burning campfire,
a  Shadowso |a freshly-stoked fire, or a fire burning in the stove.
a  Shadowso |Phase 2:  20 seconds
a  Shadowso |In Room (Reusable): a large copper-bottomed pot.
a  Shadowso |Held or in Room (Consumed): 12 of a lump of beeswax.
a  Shadowso |Phase 3:  20 seconds
a  Shadowso |Phase 4:  30 seconds
a  Shadowso |Phase 5:  20 seconds, Apothecary skill utilized.
f  Shadowso |  Pattern: %q({@craftAreas})%q : (%1="Apothecary")
c  Shadowso |  exec : Pattern "CraftGroups" : #SUB {<send 'crafts %1' 'Can i do...
a  Shadowso |In Room (Reusable): a rectangular wooden mold.
a  Shadowso |Phase 6:  20 seconds
a  Shadowso |Produced: a large block of yellow beeswax.
a  Shadowso |
a  Shadowso ]<****** / ||||||>
h  Shadowso ]<<ESC>[31m**<ESC>[33m**<ESC>[32m**<ESC>[0m / <ESC>[31m||<ESC>[33m||<ESC>[32m||<ESC>[0m>
i  Shadowso <<CR><LF>


Here is the LARGE db variable the trigger references

Code:
<var name="craftList" type="Record" sorted="true" id="6">20-yard-target=set|300-arrows=divide|30-yard-target=set|40-yard-target=set|50-yard-target=set|60-yard-target=set|acorns=collect|activated-charcoal=grind|adolescent-orc=slay|agrimony=scout|alcohol-bottle=uncork|alfirin=pick|alfirin-flowers=cut|almond-basket=divide|almond-extract-bottle=divide|almond-fruit=pick|almond-fruits=pick|almond-husk=split|almond-seedlings=transplant|almond-tree=pick|almond-tree-fruit=harvest|aloe-leaves=clip|aloe-plant=prepare|alum-barrel=divide|animal-fats=render|animal-stains=clean|annulas-bush=scout|annulas-leaves=pick|anorien-red-bottle=uncork|anorien-reserve-bottle=uncork|apple-blossoms=trim|apples=pick|apples-tub=bob|arable-herb=harvest|arfandas=seek|arfandas-grass=pick|armor-chainmail-from-package=divide|armor-chainmail-package=assemble|armor-finechainmail-from-package=divide|armor-finechainmail-package=assemble|armor-leather-from-package=divide|armor-leather-package=assemble|armor-ringmail-from-package=divide|armor-ringmail-package=assemble|armor-scalemail-from-package=divide|armor-scalemail-package=assemble|ashes=leach|assembled-target=dismantle|astringent-powder=divide|attacked-exterior=breach|attacked-reinforcement=destroy|attanar=seek|attanar-moss=gather|autumn-barley-field=manure|autumn-field-barley=sow|autumn-field-oats=sow|autumn-field-root-vegetables=sow|autumn-field-russets=sow|autumn-field-rye=sow|autumn-field-wheat=sow|autumn-oat-field=manure|autumn-orchard=create|autumn-root-vegetable-field=manure|autumn-russets-field=manure|autumn-rye-field=manure|autumn-wheat-field=manure|bag-cabbage=divide|bagged-ore=divide|bag-potatoes=divide|baking-powder-tin=divide|balance-beam=walk|ballista-gauge=prepare|bandages=cut|barberries=pick|barberry-bush=harvest|barberry-shrub=scout|bark=dry|barn-floor=sweep|barrel-with-honey=fill|barrel-with-water=fill|barren-fields=clean|barricades=attack|bar-soap=grate|bartop=clean|basil=tend|basket-berries-nuts=prepare|basket-cookies=prepare|basket-fruit=prepare|basket-muffins=prepare|basket-var-fruit=prepare|bathwater=heat|bay-berries=pick|bayberry-shrub=scout|bay-leaves=pick|bear-carcass=butcher|beaver=flush|beaver-carcass=butcher|beech-husk=split|beech-nuts=collect|beeswax=clean|beeswax-block=slice|big-bundle-arrows=combine|birch-sap=gather|bistort=scout|black-bear=track|blackberries=pick|blackened-armor-from-package=divide|blackened-armor-package=assemble|black-mulberries=pick|black-mustard=scout|blackthorn=scout|blindfold=rip|bloodstains=clean|blue-book=study|blue-stilton-cheese=make|blushed-pear-fruit=pick|blushed-pear-seedlings=transplant|blushed-pear-tree=harvest|boar=track|boar-carcass=butcher|bogbean=scout|bone-shards=crush|bonfire=light|bottle=break|box-candles=package|bramble-leaves=pick|bramble-thicket=scout|bramley-apple-fruit=pick|bramley-apple-sapling=plant|bramley-apple-seedlings=transplant|bramley-apple-tree=harvest|brawling=practice|brazier=light|bread-loaf=cut|bread-slices=cut|brewfire=light|brown-book=study|buck=track|bucket=fill|buckthorn=scout|buckthorn-berries=pick|bulk-lard=render|bulk-uprooted-dandelions=prepare|bulky-layered-gauntlets-from-package=divide|bulky-layered-gauntlets-package=assemble|bulky-layered-gorgets-from-package=divide|bulky-layered-gorgets-package=assemble|bunch-vegetables=divide|bundle=unpack|burner=light|burnet-rose-bush=scout|burnet-rose-hips=pick|burnet-rose-leaves=pick|burnet-roses=pick|bushel-celery=divide|bushel-large-apples=divide|bushel-pear=divide|bushel-small-apples=divide|bushel-vegetables=divide|butter=churn|butter-bread=make|butterbur=scout|buttermilk=make|buttermilk-jar=divide|buttermilk-starter=make|cabbage-seeds=plant|cake-soap=shave|calf-carcass=butcher|campfire=make|carnation-flowers=cut|carnation-seeds=plant|carpet=clean|cat-carcass=butcher|caught-carp=gut|caught-fish=fry|caught-salmon=gut|celery-seeds=plant|cerigarmor=divide|cerig-armor=assemble|cham-flowers=dry|chamomile=scout|chamomile-bunch=divide|chamomile-flowers=gather|charcoal-armload=stack|charcoal-pitstead=dig|cheese=make|cheese-wheel=slice|cherry-blossoms=trim|chestnuts=collect|chickweed=scout|cinnamon=grate|cinnamon-sticks=divide|circle-pillows=arrange|cirvaiarmor=divide|cirvai-armor=assemble|citrus-fruit=grate|city-street=sweep|clay-globs=split|clay-pile=shovel|cleaned-fine-fleece=comb|cleaned-fleece=comb|cleared-trail=prepare|clearing=make|close-growing-cabbage=weed|close-growing-red-bean=weed|close-growing-tomatoes=weed|close-growing-turnips=thin|close-mature-tomatoes=harvest|close-ripe-tomatoes=harvest|clove-vial=divide|cluster-egg=divide|coal-fire=light|cold=some|colicwort=scout|colored-carnations=collect|colored-tub=prepare|coltsfoot=scout|comice-pear-fruit=pick|comice-pear-seedlings=transplant|comice-pear-tree=harvest|common-milkwort=scout|completed-palisade=finalize|compost-pile=turn|concorde-pear-fruit=pick|concorde-pear-seedlings=transplant|concorde-pear-tree=harvest|conference-pear-fruit=pick|conference-pear-sapling=plant|conference-pear-seedlings=transplant|conference-pear-tree=harvest|conically-shaped-trees=prune|conical-shaped-trees=train|construction-site=clear|cookie-basket=divide|cooking-oil-tin=divide|coop-eggs=gather|corn-spurrey=scout|cough-syrup=prepare|cow=milk|cowslip=scout|cowslip-flowers=prepare|cox-apple-fruit=pick|cox-apple-sapling=plant|cox-apple-seedlings=transplant|cox-apple-tree=harvest|cream=separate|cream-jar=divide|crime=stop|crimson-clover=scout|crispin-apple-seedlings=transplant|crushed-almonds=process|crystals-bag=fill|cuckoo-flower=scout|cured-meat-barrel=divide|dagorcorporalarmor=divide|dagor-corporalarmor=assemble|dagorprivatearmor=divide|dagor-privatearmor=assemble|dagorrecruitarmor=divide|dagor-recruitarmor=assemble|dagorsergeantarmor=divide|dagor-sergeantarmor=assemble|damson-plum-basket=divide|damson-plum-fruit=pick|damson-plum-sapling=plant|damson-plum-seedlings=transplant|damson-plum-tree=harvest|dandelion=scout|dandelion-flower=uproot|dandelion-plant=scout|dart=throw|dead-goldfish=remove|dead-rabbit=butcher|death-pyre=light|debris=excavate|decoction-garden-leaves=prepare|decoction-jar-floral=wash|decomposing-pile=rotate|deep-post-holes=dig|deer=track|deer-carcass=butcher|dewberries=pick|dewberry-plant=scout|dill=scout|dirty-bathtub=scrub|dirty-bucket=wash|dirty-butcher-knife=wash|dirty-carboy=wash|dirty-cauldron=wash|dirty-jar=wash|dirty-latrine=clean|dirty-milkpan=wash|dirty-pitcher=wash|dirty-pot=wash|dirty-stall=muck|dirty-teapot=wash|dirty-tub=wash|dirty-windowbox=clean|discovery-apple-fruit=pick|discovery-apple-seedlings=transplant|discovery-apple-tree=harvest|dishes-counter=wash|distilling-furnace=light|dog-carcass=butcher|dog-mercury=scout|dog-rose-bush=scout|dog-rose-hips=pick|dog-rose-leaves=pick|dog-roses=pick|dog-violet=scout|donation-bag=fill|donation-crate=fill|donations=distribute|donkey-tail=pin|dovesfoot-cranesbill=scout|downy-rose-bush=scout|downy-rose-hips=pick|downy-rose-leaves=pick|downy-roses=pick|dried-cave-debris=collect|dried-fruit-pile=divide|droppings=sweep|dropwood=gather|drunk=toss|duck=call|dug-trench=finalize|earthen-brown-book=study|egg-cluster=combine|eggs=gather|enemy-trench=fill|ewe-milk-pails=combine|ewe-nanny=milk|exotic-bath=prepare|exterior=attack|exterior-en-masse=attack|exterior-in-force=attack|fabric-bolt=cut|fairy-flax=scout|federation-crate=load|federation-shipment=unstack|fennel=prepare|fennel-plant=tend|fennel-seeds=plant|festive-bunting=hang|feta-cheese=make|feta-jar=divide|field-apples=pick|field-herb=harvest|field-plums=pick|field-poppy=scout|field-rose-bush=scout|field-rose-hips=pick|field-rose-leaves=pick|field-roses=pick|field-turnips=sow|fig-pile=gather|fig-sapling=plant|fig-seedlings=transplant|filled-cart=dump|filled-sack=divide|filthy-cow-stall=clean|fine-colored-carnations=collect|fine-colored-tub=prepare|fine-fleece=wash|fire-buckets=ready|fire-pit=light|fireplace=light|fire-smokehouse=light|firewood=assemble|firewood-pile=stack|firewood-stack=separate|fish=catch|fishbowl-with-fish=fill|fishing-contest=perform|fishing-net=braid|flaming-arrow=ignite|flaming-blaze=fight|flaming-inferno=fight|fleece=wash|flint-tinder-kit=assemble|flood-wall=construct|floor=sweep|floor-mess=sweep|floral-bath=prepare|flour=mill|flowerpot=clean|flowers=dry|food-supply=assemble|food-supply-sack=divide|foraged-grubs=trade|forge-fire=light|foundation=setup|fox-carcass=butcher|fragrant-herbs=scatter|fresh-bay-leaves=dry|fresh-berry-juice=press|fresh-cherries=dry|fresh-ginger-root=slice|fresh-grapes=dry|fresh-leaves=pick|fruit-basket=divide|fruit-cake-platter=divide|fruit-pie-platter=divide|fruit-seeds=collect|fruit-stones=collect|fumitory=scout|furnace-fire=light|gala-apple-seedlings=transplant|galenas-bed=tend|gall-nuts=collect|game=butcher|garden-leaves=dry|garden-plot=tend|garlic-head=divide|garlic-mustard=scout|gate-winch=tighten|gathered-swamp-mushrooms=grind|general-combat=practice|ginger-packet=prepare|ginger-root=grind|ginger-tea=brew|ginger-vial=divide|goat=milk|goat-carcass=butcher|goat-milk-pails=combine|goldfish=catch|goldfish-bowl=clean|gooseberries=pick|gooseberry-bush=scout|gourmet-bread-loaf=slice|grain-sacks=combine|granite-gardenbench-violets=plant|grappling-hook=setup|greater-burnet=scout|greater-celandine=scout|green-cheese=cure|green-firewood=chop|green-gage-basket=divide|green-gage-fruit=pick|green-gage-seedlings=transplant|green-gage-tree=harvest|green-herbed-cheese=cure|greenhouse-plants=tend|greens-basket=divide|green-tea-leaves=dry|green-tomatoes=pick|grimy-bandages=cut|ground-ginger=package|groundsel=scout|group-clay=gather|group-firewood=gather|group-river-rocks=collect|group-small-rocks=collect|growing-barley=tend|growing-cabbage=weed|growing-oats=tend|growing-red-bean=weed|growing-reds=tend|growing-root-vegetables=tend|growing-russets=tend|growing-rye=tend|growing-tomatoes=weed|growing-wheat=tend|grubs=find|gruel=cook|guelder-rose=scout|guelder-rose-berries=pick|half-hide=make|handful-apples=divide|handful-quince=divide|handmade-rod=disassemble|hanging-bunting=remove|hanging-lantern=remove|hares-foot-clover=scout|hawthorn-berries=pick|hay=pitch|hay-bale=toss|hay-fields=gather|haystack-pile=arrange|hay-target=make|hazel-nuts=collect|hazelnut-shells=crack|healthy-cow=milk|heath-milkwort=scout|heath-milkwort-roots=prepare|heath-violet=scout|hedge-woundwort=scout|hemp-rope=cut|herbal-bath=prepare|herbal-garden=tend|herbal-jar-1=wash|herbal-jar-10=wash|herbal-jar-11=wash|herbal-jar-12=wash|herbal-jar-13=wash|herbal-jar-14=wash|herbal-jar-15=wash|herbal-jar-16=wash|herbal-jar-2=wash|herbal-jar-3=wash|herbal-jar-4=wash|herbal-jar-5=wash|herbal-jar-6=wash|herbal-jar-7=wash|herbal-jar-8=wash|herbal-jar-9=wash|herbed-cheese=make|herb-garden=tend|herb-leaves=dry|hickory-nuts=collect|hickory-shells=crack|hide-cot=assemble|holly-berries=collect|honey=gather|honey-barrel=divide|honey-jar=divide|honey-small-jar=divide|honeysuckle-vines=tend|horse-carcass=butcher|humble-bread-loaf=slice|hydrosol-bottle=wash|ice=cut|ice-block=harvest|ice-chips=make|incense=burn|intestines=clean|iron-brand=heat|iron-ores=mine|ivory-sheep=shear|ivy-garland=make|ivy-plant=prune|jam-toast=make|jar-with-feta=fill|jasmine-vines=tend|juice-bottle=wash|juniper-berries=pick|juniper-bush=scout|khaskhas=smoke|khaskhas-crate=divide|kidney-vetch=scout|king-plum-basket=divide|king-plum-fruit=pick|king-plum-seedlings=transplant|king-plum-tree=harvest|ladys-mantle=scout|lake-trout=net|lamb-carcass=butcher|lantern=hang|large-bundled-arrows=divide|large-cake=slice|large-charcoal-block=divide|large-plot=divide|large-rock-candy=divide|latrine=dig|leached-acorns=prepare|leadership=learn|lemon-extract-bottle=divide|lesser-celandine=scout|liegeman-armor-package=assemble|liegeman-packaged-armor=divide|lily-flowers=cut|lily-seeds=plant|limestone=break|limestone-gravel=crush|lion-carcass=butcher|lit-coal-fire=feed|lit-pipe=extinguish|lit-wood-fire=feed|logging-camp=work|log-ramp=load|lone-vegetables=combine|long-iron-brand=heat|long-stem-rose=snip|lotion-jar=wash|lucerne=scout|lump-butter=divide|lump-lard=divide|luscious-tomatoes=harvest|lye-water=bottle|lynx-carcass=butcher|mallow=scout|mallow-roots=prepare|manure-pile=collect|many-sweet-chestnut-husk=split|maple-sap=gather|maple-sugar=cook|maple-sugar-brick=divide|maple-syrup=refine|marigold-plants=tend|marigold-seedlings=transplant|marigold-seeds=plant|marjoram=scout|marsh-marigold=scout|mass-grave=dig|mature-autumn-barley=harvest|mature-autumn-oats=harvest|mature-autumn-root-vegetables=harvest|mature-autumn-russets=harvest|mature-autumn-rye=harvest|mature-autumn-wheat=harvest|mature-fennel=harvest|mature-private-garden=harvest|mature-spring-barley=harvest|mature-spring-oats=harvest|mature-spring-reds=harvest|mature-spring-root-vegetables=harvest|mature-spring-russets=harvest|mature-spring-rye=harvest|mature-spring-wheat=harvest|mature-tomatoes=harvest|meadow-buttercup=scout|meadow-cranesbill=scout|meadow-herb=harvest|meadowsweet=scout|meat=roast|meat-platter=divide|meat-rations=prepare|medicine-bag-stack=make|messy-shelves=arrange|milk-bucket=strain|milk-pails=combine|milk-pan=pour|milkwort-roots=prepare|milled-flour-bag=divide|mint-cluster=tend|mistletoe=scout|mistletoe-berries=pick|moonshine-bottle=uncork|moose-carcass=butcher|mountain-cranesbill=scout|muffin-basket=divide|mustard-seed=grind|mutton-leg=carve|nailed-arrow-crate=pry|nail-sack=fill|nectarine-fruit=pick|nectarine-seedlings=transplant|nectarine-tree-fruit=harvest|nest-orcs=destroy|netted-trout=catch|new-palisade=erect|nitre-bed=prepare|noose-line=make|northland-water-access=scout|northman-meat-platter=divide|nuts-berries-basket=divide|oak-bed-cover=remove|oak-bed-mattress=cover|oat-seeds=harvest|obstacle-course=run|oil=boil|oil-soaked-arrow=prepare|oily-rag=douse|old-campfire=feed|old-cloak=shred|old-clothes=shred|open-shaped-trees=train|opium-poppy=scout|orache=scout|orache-seeds=prepare|orange-icing-jar=divide|organs=drain|ornamental-window-box=plant|ornamental-window-garden=tend|oven-fire=light|overgrown-field=clear|pasture-herb=harvest|peach-blossoms=trim|peaches=pick|peach-fruit=pick|peach-seedlings=transplant|peach-tree-fruit=harvest|pea-pile=divide|pear-blossoms=trim|pear-bushel=divide|pears=pick|pelennor-logging=order|pelennor-logging-2=order|pelennor-logs=receive|pelennor-logs-2=receive|pell-block=spar|peppercorn-vial=divide|pet-bird=feed|pig-carcass=butcher|pig-haunch=smoke|piglet-carcass=butcher|pilewort=scout|pine-bed-cover=remove|pine-bed-mattress=cover|pink-roses=tend|pipe=ignite|pipe-weed=grind|pippin-apple-fruit=pick|pippin-apple-seedlings=transplant|pippin-apple-tree=harvest|pitstead-log-pile=arrange|pixie-apple-seedlings=transplant|planting-tray=clean|plant-leaves=harvest|plants=water|platter-fruit-cake=prepare|platter-fruit-pie=prepare|platter-meat=prepare|platter-vegetable=prepare|plum-blossoms=trim|plums=pick|pointed-boots-from-package=divide|pointed-toed-boots-package=assemble|pond-carp=catch|poorly-grown-cabbage=harvest|poorly-grown-red-bean=harvest|poor-trail=repair|poppy-capsules=gather|poppy-petals=gather|potted-aloe=water|pouch-strewing-herbs=prepare|private-garden=water|private-garden-seeds=plant|quicklime-sacks=fill|quince-fruit=pick|quince-seedlings=transplant|quince-shrub=plant|rabbit=flush|rack-beef=carve|raffle-ticket=collect|raffle-tickets=draw|ragged-robin-leaves=harvest|rag-piles=work|rags=wash|range=dismantle|rank-and-obedience=learn|raspberries=pick|raspberry-bush=scout|raw-bird=roast|raw-cheese=wax|raw-fish=gut|raw-rat=butcher|raw-sausage=make|raw-side-pork=smoke|raw-side-venison=smoke|raw-tenderloin=butcher|red-bean=plant|red-bean-seeds=harvest|red-campion=scout|red-clover=scout|red-clover-flowers=gather|red-mulberries=pick|red-rose=dry|red-seed-potatoes=cut|reeve-plum-basket=divide|reeve-plum-fruit=pick|reeve-plum-seedlings=transplant|reeve-plum-tree=harvest|refuse=clear|refuse-cart=dump|riparian-herb=harvest|ripe-autumn-barley=harvest|ripe-autumn-oats=harvest|ripe-autumn-root-vegetables=harvest|ripe-autumn-russets=harvest|ripe-autumn-rye=harvest|ripe-autumn-wheat=harvest|ripe-fig=pick|ripe-quince=pick|ripe-red-tomatoes=harvest|ripe-spring-barley=harvest|ripe-spring-oats=harvest|ripe-spring-reds=harvest|ripe-spring-root-vegetables=harvest|ripe-spring-russets=harvest|ripe-spring-rye=harvest|ripe-spring-wheat=harvest|ripe-turnips=harvest|river-crawfish=catch|river-rocks=find|roast-bear=carve|roast-beef=carve|roast-boar=carve|roast-chicken=carve|roasted-lamb-leg=slice|roasted-ribs=carve|roast-goose=carve|roast-ham=carve|roasting-spit=make|roast-pheasant=carve|roast-turkey=carve|roast-venison=carve|roast-warg-haunch=carve|roast-wolf-haunch=carve|rock-collection=disassemble|rocks=assemble|rock-trough=fill|rolled-smokeleaf=ignite|rolled-westmansweed=ignite|roots=dry|rope-climbing=practice|rose-bush-leaves=pick|rose-hips=pick|rose-incense=burn|rosemary-bush=scout|rosemary-bush-leaves=pick|roses=tend|rosewater-bottle=divide|rowan-berries=pick|rowanjam-jar=divide|rubble=clear|rummaged-dropwood=gather|rummaged-round-stones=gather|russet-apple-fruit=pick|russet-apple-seedlings=transplant|russet-apple-tree=harvest|russet-seed-potatoes=cut|sack-cabbage-seed=divide|sack-nails=divide|saddle-soap=divide|saffron-vial=divide|sage=scout|salt-barrel=divide|salted-meat-barrel=smoke|salt-meat-barrel=prepare|salt-salmon=preserve|sandbags=shovel|scaledagorcorporal=divide|scale-dagorcorporal=assemble|scaledagorprivate=divide|scale-dagorprivate=assemble|scaledagorsergeant=divide|scale-iron-gauntlets-from-package=divide|scale-iron-gauntlets-package=assemble|scale-iron-orkish-armor-from-package=divide|scale-iron-orkish-armor-package=assemble|scented-water=wash|scurvy-grass=scout|sealed-barrel=tap|sealed-juice-bottle=uncork|seed-cabbage=harvest|seeds-almond=plant|seeds-blushed-pear=plant|seeds-bramley-apple=plant|seeds-carnation=collect|seeds-comice-pear=plant|seeds-concorde-pear=plant|seeds-conference-pear=plant|seeds-cox-apple=plant|seeds-crispin-apple=plant|seeds-damson-plum-stones=plant|seeds-discovery-apple=plant|seeds-fig=plant|seeds-gala-apple=plant|seeds-green-gage-stones=plant|seeds-king-plum-stones=plant|seeds-lily=collect|seeds-marigold=collect|seeds-nectarine-stones=plant|seeds-peach-stones=plant|seeds-pippin-apple=plant|seeds-pixie-apple=plant|seeds-quince=plant|seeds-reeve-plum-stones=plant|seeds-russet-apple=plant|seeds-tomato=plant|seeds-victoria-plum-stones=plant|seeds-williams-pear=plant|shabiarmor=divide|shabi-armor=assemble|shaving-lather=prepare|sheep-carcass=butcher|sheep-herd=cull|shepherds-purse=scout|shored-defence=construct|shrub-quince=plant|side-horsemeat=carve|side-pork=carve|side-venison=carve|siege-tree=cut|signalfire=light|signal-fire=make|silver-candlestick=refill|silvermoon-armor=package|silvermoon-armor-package=unpack|silverweed=scout|simple-fishing-rod=fashion|simple-tea=brew|skeleton=crush|slack-ballista=wind|sling-bullets=find|slit-helm-package=assemble|slit-helms-from-package=divide|sloe-berries=pick|small-acorns=collect|small-bundled-arrows=divide|small-bundled-bolts=divide|small-dirty-bottle=wash|smaller-bundle-arrows=combine|smaller-bundle-bolts=combine|small-fountain=clean|small-game=butcher|small-plot-cabbage=plant|small-plots=combine|small-red-seed-potatoes=cut|smokehouse-fire=light|smokeleaf-pipe=ignite|smoke-signal=make|snakemeat=scorch|snow=shovel|snowball=make|snowman=make|snowmound=gather|soaked-acorns=prepare|soap-cakes=cut|soapwort=scout|soft-fruit-jam-jar=divide|soiled-linens=remove|sphagnum=seek|spiked-armor-from-package=divide|spiked-leather-armor-package=assemble|spoiled-grain-bag=divide|spring-field=manure|spring-field-barley=sow|spring-field-oats=sow|spring-field-reds=sow|spring-field-root-vegetables=sow|spring-field-russets=sow|spring-field-rye=sow|spring-field-wheat=sow|spun-thread=cut|squirrel-carcass=butcher|stack-grainbags=stack|stack-medicine-bag=divide|stag-carcass=butcher|starch=prepare|stewing-meat=cut|still-fire=light|stilton-cheese=make|stinging-nettle=scout|stinging-nettle-leaves=prepare|stinking-hellebore=scout|stitchwort=scout|stonekiln=light|stone-pit=heat|stovefire=light|stove-from-fireplace=light|strawberries=pick|strawberryjam-jar=divide|strawberry-plant=scout|straw-fields=gather|straw-pile=arrange|string-pieces=cut|strong-man=armwrestle|sugar=crush|sugar-bacon=cure|sugar-barrel=divide|sugar-ham=cure|summer-orchard=create|swamp-dust=ingest|swamp-mushrooms=gather|sweet-chestnut-husk=split|sweet-violet=scout|syrup-bucket=divide|tall-melilot=scout|tallow-candles=make|tarry-mess=clean|tea-plant=scout|tended-conical-trees=prune|tended-vase-trees=prune|thyme=scout|tiger-carcass=butcher|tirithcorporalarmor=divide|tirith-corporalarmor=assemble|tirithprivatearmor=divide|tirith-privatearmor=assemble|tirithrecruitarmor=divide|tirith-recruitarmor=assemble|tirithsergeantarmor=divide|tirith-sergeantarmor=assemble|tomato-bushel=divide|tomato-pile=divide|tomato-plants=plant|tomato-sack=fill|tomato-seeds=collect|torches=make|torchlit-campfire=make|tormentil=scout|trail-base=lay|tree-bark=strip|tree-leaves=dry|trench=dig|trough=fill|tutsan-berries=pick|tutsan-bush=scout|unevenly-grown-cabbage=harvest|unevenly-grown-red-bean=harvest|unmade-beds=make|unskilled-fish=catch|unsmoked-cheese=smoke|unsmoked-fish-fillet=smoke|unsmoked-sausage=smoke|untilled-field=till|uprooted-agrimony=prepare|uprooted-barberry=prepare|uprooted-bistort=prepare|uprooted-black-mustard=prepare|uprooted-butterbur=prepare|uprooted-cuckoo-flower=prepare|uprooted-dandelion=prepare|uprooted-dovesfoot-cranesbill=prepare|uprooted-ginger=prepare|uprooted-marsh-marigold=prepare|uprooted-meadow-cranesbill=prepare|uprooted-mountain-cranesbill=prepare|uprooted-red-campion=prepare|uprooted-soapwort=prepare|uprooted-stinking-hellebore=prepare|uprooted-sweet-violet=prepare|uprooted-weld=prepare|uprooted-white-campion=prepare|uprooted-white-mustard=prepare|uprooted-white-water-lily=prepare|uprooted-wood-anemone=prepare|uprooted-wood-avens=prepare|uprooted-woody-nightshade=prepare|vanilla-bottle=divide|var-fruit-basket=divide|vase-shaped-trees=prune|vegetable-platter=divide|vial-floral-oil=wash|vial-herbal-oil-1=wash|vial-herbal-oil-2=wash|vial-herbal-oil-3=wash|vial-herbal-oil-4=wash|vial-herbal-oil-5=wash|vial-herbal-oil-6=wash|victoria-plum-basket=divide|victoria-plum-fruit=pick|victoria-plum-sapling=plant|victoria-plum-seedlings=transplant|victoria-plum-tree=harvest|vinegar-jar=divide|violet-runner=plant|violets=tend|volunteers-crate=prepare|wall-climbing=practice|wall-hooks=affix|walnuts=collect|walnut-shells=crack|water-access1=scout|watercress=scout|weapons-practice=perform|wedge-cheese=grate|weed-roll=roll|weeds=uproot|weedy-path=tend|weld=scout|well-grown-cabbage=harvest|well-grown-red-bean=harvest|well-made=a|westron=study|wheat-seeds=harvest|whitebeam-berries=pick|white-campion=scout|white-deadnettle=scout|white-melilot=scout|white-mulberries=pick|white-mustard=scout|white-rabbit=flush|white-roses=tend|white-water-lily=scout|whole-almonds=crush|whole-berry-pie=slice|whole-cake=slice|whole-cheesetart=slice|whole-chicken-pie=slice|whole-cloves=grind|whole-fruit-pie=slice|whole-fruittart=slice|whole-grain-bag=divide|whole-herb=dry|whole-lili-cake=slice|whole-peppercorns=grind|whole-roast-boar=carve|whole-roast-pig=carve|whole-salted-salmon=divide|whole-steak-pie=slice|whole-walnuts=crush|wicks=make|wild-black-fox=track|wild-fox=track|wild-liquorice=scout|wild-liquorice-roots=prepare|wild-pheasant=flush|wild-raccoon=track|wild-rat=snare|wild-salmon=catch|williams-pear-fruit=pick|williams-pear-seedlings=transplant|williams-pear-tree=harvest|window-box=plant|window-garden=tend|winter-fruit-tree=prune|wolf-carcass=butcher|wolf-meat=roast|wood-anemone=scout|wood-avens=scout|wood-fire=light|woodland-herb=harvest|wood-pyre=stack|wood-sorrel=scout|wood-violet=scout|woody-nightshade=scout|writing=erase|yeast=divide|yellow-cheese=make|yellow-roses=tend</var>
_________________
Discord: Shalimarwildcat
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Tue Jun 15, 2010 4:55 pm   
 
I wasn't able to get any hang here. If you can get it to hang on certain text from your MUD, try creating a debug log file to send to me. Connect to your MUD, then type:

#DEBUGFILE test.raw test.txt

and then do whatever on the MUD to display the text that is causing the trigger to hang. Then exit CMUD and send me the test.raw and test.txt files as email attachments so I can try to replay them here.

Be sure to reference this forum post in your email so I can connect the two and use your above trigger and database variable.

Also, in your above debugger output, it shows your trigger firing on two lines:
Quote:
Apothecary-extractions: clean beeswax
Phase 5: 20 seconds, Apothecary skill utilized.

I can see how the first line would fire the trigger and that works fine here, converting "beeswax" to a hyperlink that sends "mat beeswax" when I click it. However, I can't get the second line to fire the trigger. Do you have some other similar trigger that is firing?
Reply with quote
shalimar
GURU


Joined: 04 Aug 2002
Posts: 4662
Location: Pensacola, FL, USA

PostPosted: Tue Jun 15, 2010 11:44 pm   
 
yes i do, its a smaller stringlist of craftsets, but its not the one causing the issue as when i turn off the one i posted, things run smoothly {Apothecary|Apothecary-extractions|etc}.
I think the error is coming from the red colored text... i will send the .raw shortly,
_________________
Discord: Shalimarwildcat
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Wed Jun 16, 2010 12:32 am   
 
Is it possible that you have an infinite loop of triggers causing each other to fire? This would explain how turning off one of them fixes the issue.

You might want to create a new session with just the single trigger above and then test it on your MUD to see if it fails with just that trigger alone. That's what I'll be testing here with your raw file.
Reply with quote
shalimar
GURU


Joined: 04 Aug 2002
Posts: 4662
Location: Pensacola, FL, USA

PostPosted: Wed Jun 16, 2010 2:23 am   
 
Possible i suppose, but it still crashes when the other one is disabled, but here is the other one anyway

Code:
<var name="craftAreas" type="StringList" sorted="true" id="7">apothecary|apothecary-extractions|apothecary-speciality|athletics|butchering|chandlery|construction|farming-field|farming-general|farming-processing|foraging|gardening|general|general-fire|general-food|general-labor|general-recreation|general-serving|herbalism|hunting|laborers|orcharding|packaging|perfumery|recreation|sages|shepherd|siegecraft|study|taming|timberwright|training|yrch-general</var>


Code:
<trigger name="CraftGroups" priority="80" repeat="true" enabled="false" id="8">
    <pattern>%q({@craftAreas})%q</pattern>
    <value><![CDATA[#SUB {<send 'crafts %1' 'Can i do any %1 crafts?'><color yellow>%1</color></send>}]]></value>
  </trigger>


Oh this isnt just any crash... it bypasses the normal crash controls and i have to kill it from the task manager.

P.S. The files are sent.
_________________
Discord: Shalimarwildcat
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Wed Jun 16, 2010 4:14 pm   
 
I didn't receive any files yet. Be sure you sent them to the sales@zuggsoft.com account.

If it bypasses the normal crash dump dialog, then it's some sort of infinite loop that is blowing away the memory stack.

Are you able to reproduce the crash in a fresh session with just the first trigger shown in the original post?
Reply with quote
shalimar
GURU


Joined: 04 Aug 2002
Posts: 4662
Location: Pensacola, FL, USA

PostPosted: Wed Jun 16, 2010 4:52 pm   
 
That was the problem. I had mailed it to support, not sales... I forwarded it just now.
_________________
Discord: Shalimarwildcat
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Fri Jun 18, 2010 5:24 pm   
 
Just wanted to follow up with this. I received the files and I was able to reproduce the hang. So hopefully I can fix it for the next release.
Reply with quote
shalimar
GURU


Joined: 04 Aug 2002
Posts: 4662
Location: Pensacola, FL, USA

PostPosted: Fri Jun 18, 2010 5:31 pm   
 
I'm glad it wasn't just me or corrupted settings for a change.
_________________
Discord: Shalimarwildcat
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Fri Jun 18, 2010 8:23 pm   
 
Not sure why this crashes now but not in previous versions. The issue was a problem with #SUB and is something I haven't messed with in a while.

I think I have this fixed in the next update, but I'd be interested in knowing if it also failed in 3.17 or earlier versions.
Reply with quote
shalimar
GURU


Joined: 04 Aug 2002
Posts: 4662
Location: Pensacola, FL, USA

PostPosted: Sat Jun 19, 2010 3:51 am   
 
It was in 3.17 when i reported the issue, seems fixed in 3.20
_________________
Discord: Shalimarwildcat
Reply with quote
shalimar
GURU


Joined: 04 Aug 2002
Posts: 4662
Location: Pensacola, FL, USA

PostPosted: Sun Sep 12, 2010 4:01 pm   
 
For some reason, this package is once again causing CMUD to hang in 3.25.
_________________
Discord: Shalimarwildcat
Reply with quote
Moo
Apprentice


Joined: 10 Apr 2009
Posts: 145

PostPosted: Sun Sep 12, 2010 10:24 pm   
 
A bit off-topic, but I'm curious. What is your script and that huge list doing?
Reply with quote
shalimar
GURU


Joined: 04 Aug 2002
Posts: 4662
Location: Pensacola, FL, USA

PostPosted: Mon Sep 13, 2010 3:56 pm   
 
It turns crafts, the means of performing skilled labor on the mud in question, into a quick click link to see the procedure of, or to perform.
_________________
Discord: Shalimarwildcat
Reply with quote
shalimar
GURU


Joined: 04 Aug 2002
Posts: 4662
Location: Pensacola, FL, USA

PostPosted: Mon Sep 13, 2010 4:49 pm   
 
I have new data.
This is no longer an issue of the red colored text, that is indeed fixed.

But it is the same trigger and variable.

I have since found that the dbVar is getting corrupted some how to include some of the send data by the #SUB.

The command i used was 'say brawling'

Normally it prints like this:

Quote:
You say in Westron,
"Brawling."


Now is printing like:

Quote:
You say in study|Westron,
"practice|practice|<send 'mat practice|practice|<send 'mat practice|practice|<spractice|practice|<send 'mat Brawling|Brawling Brawling|Brawling|Brawling|Brawling."


But with debug i find it is firing WAY too many times:

Quote:
You say in study|Westron,
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
"practice|practice|<send 'mat practice|practice|<send 'mat practice|practice|<spractice|practice|<send 'mat Brawling|Brawling Brawling|Brawling|Brawling|Brawling."
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
[%q({@craftList})%q-> $color=slategray
#IF (%ismember( %1, @craftList)) {
#NOOP
#SUB {<send 'mat %1|@{craftlist.%1} %1' 'Materials for %1|Perform %1'>%1</send>}
}]
_________________
Discord: Shalimarwildcat
Reply with quote
shalimar
GURU


Joined: 04 Aug 2002
Posts: 4662
Location: Pensacola, FL, USA

PostPosted: Tue Oct 05, 2010 7:09 pm   
 
A fix! (Thanks darmir)
But I don't understand why this fixes it......

change the trigger above from:

Code:
  <trigger name="CraftUser" priority="90" repeat="true">
    <pattern>%q({@craftList})%q</pattern>
    <value><![CDATA[$color=slategray
#IF (%ismember( %1, @craftList)) {
  #NOOP
  #SUB {<send 'mat %1|@{craftList.%1} %1' 'Materials for %1|Perform %1'><color $color>%1</color></send>}
  }]]></value>
  </trigger>


To:

Code:
<trigger name="CraftUser" priority="90" repeat="true" id="9">
  <pattern>%q({@craftList})%q</pattern>
  <value><![CDATA[$color=slategray
#SUB {<send 'mat %1|#EXEC {~@{craftList.%1} %1}' 'Materials for %1|Perform %1'><color $color>%1</color></send>}
]]></value>
</trigger>


#NOOP does nothing so i should be able to assume that wasn't the issue...

Which only leaves the #IF, %ismember, or <send> as the culpret for variable corruption in the value of the key=value pairs in my dbvar.
_________________
Discord: Shalimarwildcat
Reply with quote
shalimar
GURU


Joined: 04 Aug 2002
Posts: 4662
Location: Pensacola, FL, USA

PostPosted: Tue Oct 05, 2010 7:53 pm   
 
Further testing shows that the #NOOP #IF and %ismember have nothing to do with the error, i put them back in and so long as the #EXEC is there, nothing fails or corrupts.

I forget why I wanted them there originally... just getting rid of possible factors now.

i suspect its something in the <send> code.
_________________
Discord: Shalimarwildcat
Reply with quote
darmir
Sorcerer


Joined: 10 Oct 2000
Posts: 706
Location: USA

PostPosted: Tue Oct 05, 2010 9:13 pm   
 
There is still the issue with the Perform menu not working correctly. If you try it the doesn't work. See the other thread I started about this.
_________________
Run as hard as a wild beast if you will, but you won't get any reward greater than that destined for you.
Source: (Egyptian)

Last edited by darmir on Fri Nov 12, 2010 9:22 pm; edited 1 time in total
Reply with quote
Rahab
Wizard


Joined: 22 Mar 2007
Posts: 2320

PostPosted: Wed Oct 06, 2010 12:23 pm   
 
Shalimar, the reason the #EXEC fixes it is because that part of the <SEND> has to be a command. Commands cannot start with a function or variable. They must start with an alias (explicitly written out--not an indirection through a variable), or a Cmud command (i.e. starting with #), or a mud command (again, explicitly written out). Even the mere mud command is better done with a #SEND command.
Reply with quote
shalimar
GURU


Joined: 04 Aug 2002
Posts: 4662
Location: Pensacola, FL, USA

PostPosted: Wed Oct 06, 2010 12:58 pm   
 
It USED to work a few beta versions ago... so this must not have always been the case. I had to change the script to make it compatible with the current version.
_________________
Discord: Shalimarwildcat
Reply with quote
Rahab
Wizard


Joined: 22 Mar 2007
Posts: 2320

PostPosted: Wed Oct 06, 2010 5:14 pm   
 
It has been the case from the beginning in Cmud. Under _some_ circumstances you can get a commandline to work with a variable or function at the beginning of the command, but it is not correct syntax and may stop working at any time. Using a variable or function at the beginning of a command line is unsupported and deprecated--technically, I believe it was incorrect syntax in Zmud as well, but Zmud was much more forgiving of syntax variations.
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Thu Oct 14, 2010 5:26 pm   
 
I posted this in another thread. You need to put a ~ character before the | character in the SEND command to prevent CMUD from parsing it as a string list for #SUB.
Reply with quote
shalimar
GURU


Joined: 04 Aug 2002
Posts: 4662
Location: Pensacola, FL, USA

PostPosted: Fri Nov 12, 2010 8:59 pm   
 
Version History wrote:
# Fixed problems using | character to build a string list when mixed with other variables and functions

Does this remove the need to use the ~ in <send> if the command/menu is a anonymous string list?
_________________
Discord: Shalimarwildcat
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Fri Nov 12, 2010 9:34 pm   
 
Yes, that was actually fixed in v3.31.
Reply with quote
Display posts from previous:   
Post new topic   Reply to topic     Home » Forums » CMUD Beta Forum All times are GMT
Page 1 of 1

 
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

© 2009 Zugg Software. Hosted by Wolfpaw.net