Hey there!
Firstly, IRE muds have introduce GMCP, which is essentially a much nicer version of GMCP. Therefore, you'll want to use that. Also, GMCP isn't dependent on a certain prompt structure; it follows a different method of identification entirely. Note that vadi's code may require a certain prompt, but GMCP itself will not.
Now, for how to get it working: with your Mudlet profile open, hit the "Settings" button on the top bar. At the bottom of the General tab, you'll see a box labelled "Enable GMCP". Check that, then hit save. Now Mudlet will capture GMCP. You won't notice anything different immediately as you play the mud (unless a few triggers start catching) since the info given to Mudlet through GMCP is invisible, so to speak. Put more correctly, it is not displayed on the main screen, but rather stored in a table, "gmcp". If you hit the debug button in the script editor, each time a line of real text is received you'll get a message saying, in part, "GMCP event <gmcp.Char> display(gmcp) to see the full content".
In my case, running the function "display(gmcp)" gives the following:
table {
'Char': table {
'Items': table {
'Remove': table {
'location': 'room'
'item': 64452
}
'Add': table {
'location': 'room'
'item': table {
'id': '64452'
'name': 'a painted mountain stallion'
}
}
'List': table {
'location': 'room'
'items': table {
1: table {
'id': '133872'
'name': 'a monolith sigil'
}
2: table {
'id': '100503'
'name': 'an imposing Indorani guard'
}
3: table {
'id': '195172'
'name': 'a grotesque Nazetu guard'
}
}
}
}
'Name': table {
'name': 'Setar'
'fullname': 'Grand Duke Setar Lunare'
}
'Status': table {
'guild': 'Bloodborn'
'explorer': 'a Searcher of Horizons'
'class': 'Bloodborn'
'race': 'human'
'name': 'Setar'
'order': 'Ysmali'
'status': 'Vampire'
'level': '83 (18)'
'city': 'Bloodloch'
'fullname': 'Grand Duke Setar Lunare'
}
'Skills': table {
'Groups': table {
1: '{ "name": "Vision", "rank": "Skilled", "percent": "19" }'
2: '{ "name": "Avoidance", "rank": "Inept", "percent": "0" }'
3: '{ "name": "Tattoos", "rank": "Novice", "percent": "4" }'
4: '{ "name": "Survival", "rank": "Skilled", "percent": "8" }'
5: '{ "name": "Weaponry", "rank": "Virtuoso", "percent": "19" }'
6: '{ "name": "Reanimation", "rank": "Expert", "percent": "27" }'
7: '{ "name": "Corpus", "rank": "Transcendent", "percent": "100" }'
8: '{ "name": "Mentis", "rank": "Transcendent", "percent": "100" }'
9: '{ "name": "Hematurgy", "rank": "Transcendent", "percent": "100" }'
10: '{ "name": "Constitution", "rank": "Inept", "percent": "0" }'
11: '{ "name": "Thermology", "rank": "Inept", "percent": "0" }'
12: '{ "name": "Frost", "rank": "Inept", "percent": "0" }'
13: '{ "name": "Antidotes", "rank": "Inept", "percent": "0" }'
14: '{ "name": "Fitness", "rank": "Virtuoso", "percent": "4" }'
15: '{ "name": "Galvanism", "rank": "Inept", "percent": "0" }'
16: '{ "name": "Philosophy", "rank": "Inept", "percent": "0" }'
17: '{ "name": "Horsemanship", "rank": "Virtuoso", "percent": "18" }'
18: '{ "name": "Linguistics", "rank": "Transcendent", "percent": "100" }'
}
}
'Vitals': table {
'deaf': '1'
'ep': '23225'
'hp': '4933'
'prone': '0'
'flying': '0'
'mp': '3371'
'maxwp': '15755'
'string': 'H:4933/4906 M:3371/3371 E:23225/23225 W:15755/15755 NL:18/100 '
'cloak': '0'
'right_arm': '1'
'wp': '15755'
'blind': '1'
'left_arm': '1'
'equilibrium': '1'
'maxhp': '4906'
'xp': '9277292'
'maxxp': '50000000'
'maxep': '23225'
'maxmp': '3371'
'balance': '1'
'status': 'vampire'
'fangbarrier': '0'
'bleeding': '0'
'nl': '18'
'blood': '95'
}
'StatusVars': table {
'guild': 'Guild'
'explorer': 'Explorer rank'
'class': 'Class'
'race': 'Race'
'name': 'Name'
'order': 'Order'
'status': 'Status'
'level': 'Level'
'city': 'City'
'fullname': 'Full name'
}
}
'Comm': table {
'Channel': table {
'List': table {
1: table {
'caption': ''
'name': ''
'command': ''
}
}
}
}
'Room': table {
'Info': table {
'map': 'www.aetolia.com/irex/maps/clientmap.php?map=68&building=0&level=0 10 9'
'num': 7790
'name': 'A wide corridor passing merchants'
'environment': 'Constructed underground'
'details': table {
1: ''
}
'coords': '68,-1,12,0'
'exits': table {
's': 9188
'nw': 4575
'e': 7791
'sw': 7679
'w': 4573
'n': 4477
}
'area': 'Bloodloch'
}
}
}
You can access all the data in GMCP just as you would a normal table! The events raised whenever you receive GMCP information are "gmcp.Char" and "gmcp.Char.Vitals", which you can use as event handlers to run whatever scripts you want to execute whenever those tables are updated.