Ack..! What the heck is that, an esoteric language? lol I really don't get why people that code clients like mm seem to thing making the languages so that you can cram 50 lines of code on one line and make it completely unreadable is a 'good' thing. :(
Hmm.. This would require not merely a script, but a full plugin. For instance /action is a trigger, which you 'could' generate in JScript, but is better off done in a plugin, unless you are continually creating and deleting them.
Hmm.
<triggers
<trigger
match="Upkeep: *"
enabled="y"
group="ItemID"
send_to="12">
<send>setvariable ("ObjKeep","%1");</send>
</trigger>
<trigger
match="Location: *"
enabled="y"
group="ItemID"
send_to="12">
<send>setvariable ("ItemEquip","%1");</send>
</trigger>
<trigger
match="Weapon Proficiency type is * weapons"
enabled="y"
group="ItemID"
send_to="12">
<send>setvariable ("WpnProf","%1");</send>
</trigger>
<trigger
match="^ .* to .*"
regexp="y"
enabled="y"
group="ItemID"
send_to="12">
<send>
if (getvariable("ItemAffectCount == 0)
{setvariable ("ItemAffectCount",1);
setvariable ("ItemAffectOneNum","%1");
setvariable ("ItemAffectOneStat","%2");}
if (getvariable("ItemAffectCount == 1)
{setvariable ("ItemAffectCount",2);
setvariable ("ItemAffectTwoNum","%1");
setvariable ("ItemAffectTwoStat","%2");}
if (getvariable("ItemAffectCount == 2)
{setvariable ("ItemAffectCount",3);
setvariable ("ItemAffectThreeNum","%1");
setvariable ("ItemAffectThreeStat","%2");}
</send>
</trigger>
<trigger
match="^AC-apply is .* Armor type is .*"
regexp="y"
enabled="y"
group="ItemID"
send_to="12">
<send>
setvariable ("ItemAC","%1");
setvariable ("ItemACType","%2")
</send>
</trigger>
<trigger
match="^Attributes: .*"
regexp="y"
enabled="y"
group="ItemID"
send_to="12">
<send>
setvariable ("ItemAttr","%1")
</send>
</trigger>
<trigger
match="^Damage Dice is .*"
regexp="y"
enabled="y"
group="ItemID"
send_to="12">
<send>
setvariable ("ItemDice","%1")
</send>
</trigger>
<trigger
match="^Item type: .* Effects: .*"
regexp="y"
enabled="y"
group="ItemID"
send_to="12">
<send>
setvariable ("ItemType","%1");
setvariable ("TempEffects","%2")
</send>
</trigger>
<trigger
match="^Object: .* [.*]"
regexp="y"
enabled="y"
group="ItemID"
send_to="12">
<send>
setvariable ("ObjectName","%1");
setvariable ("Object","%2")
</send>
</trigger>
<trigger
match="^Weight: .* Value: .* Level Restriction: .*"
regexp="y"
enabled="y"
group="ItemID"
send_to="12">
<send>
setvariable ("ItemWeight","%1");
setvariable ("ItemValue","%2");
setvariable ("ItemLevel","%3")
</send>
</trigger>
<trigger
match="^Your divination is complete"
regexp="y"
enabled="y"
group="ItemID"
send_to="12">
<send>
var temp;
var temp2;
var temp3;
var chan;
chan = getvariable("chan");
if (chan || "")
{temp = getvariable("ItemEquip");
temp2 = temp2.concat(ANSI(1), ANSI(31), " Loc", ANSI(34), "(", ANSI(37), temp.toLowerCase(), ANSI(34));
temp = getvariable("ItemLevel");
temp2 = temp2.concat(" ", ANSI(31), "Lev", ANSI(34), "(", ANSI(37), temp, ANSI(34),")");
temp = getvariable("ItemType");
temp2 = temp2.concat(" ", ANSI(31), "Type", ANSI(34), "(", ANSI(37), temp, ANSI(34),")");
temp = getvariable("ItemAc");
if (temp || "")
{temp2 = temp2.concat(" ", ANSI(31), "Ac", ANSI(34), "[", ANSI(37), temp, ANSI(34), "]")
};
temp = getvariable("ItemDice");
if (ItemDice || "")
{temp2 = temp2.concat(" ", ANSI(31), "Dice", ANSI(34), "[", ANSI(37), temp, ANSI(34), "]")
};
lookupeff;
ansinote temp2
temp2 = ""
temp = getvariable("ItemAffectOneStat");
temp3 = getvariable("ItemAffectOneNum");
if (temp || "")
{temp2 = temp2.concat(ANSI(1), ANSI(31), temp.toLowerCase(), ANSI(34), "(", ANSI(37), temp3, ANSI(34),")")
};
temp = getvariable("ItemAffectTwoStat");
temp3 = getvariable("ItemAffectTwoNum");
if (temp || "")
{temp2 = temp2.concat(ANSI(31), temp.toLowerCase(), ANSI(34), "(", ANSI(37), temp3, ANSI(34),")")
};
temp = getvariable("ItemAffectThreeStat");
temp3 = getvariable("ItemAffectThreeNum");
if (temp || "")
{temp2 = temp2.concat(ANSI(31), temp.toLowerCase(), ANSI(34), "(", ANSI(37), temp3, ANSI(34),")")
};
ansinote temp2
temp2 = ""
temp = getvariable("ItemCond");
if (temp || "")
{temp2 = temp2.concat(ANSI(1), ANSI(31), temp, ANSI(34), "(", ANSI(37), temp3, ANSI(34),")")
};
temp2 = temp2.concat(ANSI(31), " Effects", ANSI(34)"[", ANSI(37), temp, ANSI(34), "]")
ansinote temp2
}
else
{setvariable("chan","%1")
temp = getvariable("ObjectName");
temp2 = temp2.concat(temp, ":");
temp = getvariable("ItemLevel");
temp2 = temp2.concat(" Lev(", temp, ")");
temp = getvariable("ItemEquip");
temp2 = temp2.concat(" Loc(", temp.toLowerCase(), ")");
temp = getvariable("ItemAC");
if (temp || "")
{temp2 = temp2.concat(" Ac(", temp, ")")
};
temp = getvariable("ItemDice");
if (temp || "")
{temp2 = temp2.concat(" ", temp)
};
lookupeff;
temp = getvariable("ItemAffectOneStat");
temp3 = getvariable("ItemAffectOneNum");
if (temp || "")
{temp2 = temp2.concat(" ", temp.toLowerCase(), "(", temp3, ")")
};
temp = getvariable("ItemAffectTwoStat");
temp3 = getvariable("ItemAffectTwoNum");
if (temp || "")
{temp2 = temp2.concat(" ", temp.toLowerCase(), "(", temp3, ")")
};
temp = getvariable("ItemAffectThreeStat");
temp3 = getvariable("ItemAffectThreeNum");
if (temp || "")
{temp2 = temp2.concat(" ", temp.toLowerCase(), "(", temp3, ")")
};
temp = getvariable("ItemEffects");
temp2 = temp2.concat(" [", temp, "]"
send(chan.concat(" ", temp2));
};
setvariable ("ItemAffectCount",0);
setvariable ("ItemAffectOneStat","");
setvariable ("ItemAffectOneNum","");
setvariable ("ItemAffectTwoStat","");
setvariable ("ItemAffectTwoNum","");
setvariable ("ItemAffectThreeStat","");
setvariable ("ItemAffectThreeNum","");
setvariable ("ItemAttr","");
setvariable ("ItemDice","");
setvariable ("ItemSpell","");
setvariable ("ItemAC","");
setvariable ("ItemCond","");
setvariable ("TempEffects","");
setvariable ("ItemEffects","");
setvariable ("ObjName","");
setvariable ("WpnProf","")
</send>
</trigger>
<trigger
match="This item appears to be in perfect pristine condition."
enabled="y"
group="ItemID"
send_to="12">
<send>
setvariable ("ItemCond","pristine");
setvariable ("Object","%2")
</send>
</trigger>
</triggers>
<aliases>
<alias
match="chid"
enabled="y"
send_to="12"
>
<send>
setvariable("chan","")
</alias>
<alias
match="id *"
enabled="y"
send_to="12"
>
<send>
</send>
</aliases>
<script>
function lookupeff()
{
I have no clue how to make a multidimansional array in Jscript, so...
??????
}
</script>
This should give someone else a good starting point at least. :p The last bit in the lookupeff part looks fairly straight forward, once you figure out how to create the array.
NOTE: The code to send to a channel or display had to be moved into the trigger for completing the divination. Apparently MM's scripts run parallel or something, but in Mushclient the display code would never produce results, because the alias would execute, try to do stuff, and 'then' the triggers would all fire.
This brings up another issue. Do MM aliases not just execute MM script, or do they pass the alias itself on to the mud to execute? I don't see how this works, since no commands are executed by the aliases to begin a divination. Maybe I just missed something, but in the above form it wouldn't do anything, since no divination would ever be started by either alias. |