You are on the correct path for the dwarf/poison part. It will break if you have created a custom dwarf race that doesn't have the ID rDwarf on it, but if you use the normal PC race dwarf (and any subraces attached to it) you won't ever have a problem.
For the extra damage to fiends, you can do this a couple of ways.
If you want to see it on the damage displayed on the weapons tab you can add a field "wDamExtra" to the weapon and type in " plus 2d6 damage to fiends" or the like. You can do this via the Fields button in the editor or in the eval script like:
field[wDamExtra].text &= " plus 2d6 damage vs fiends"
[HINT: Look at the Dragon Slayer magic weapon]
If you don't want it to display in the weapon tab, you can add the field "wAttackEff" and the text value would be " If the weapon strikes fiends it does an additional 2d6 damage of the same type."
or
field[wAttackEff].text &= "If the weapon strikes fiends it does an additional 2d6 damage of the same type."
[HINT: Look at Net]
Adding an asterisk to the name isn't too hard, if you look at the code for Weapon, +1 you can see where they add the +1 to the start of the weapon name. Using the same script you could do this
Code:
~set our name based on the type of weapon chosen
field[livename].text = "+1/+2 vs fiends "
perform gizmo.findchild[BaseWep].setfocus
if (state.isfocus <> 0) then
field[livename].text &= titlecase(focus.field[name].text)
else
field[livename].text &= "Weapon"
endif
field[shortname].text = field[livename].text
field[sbName].text = field[livename].text
If you wanted to add an asterisk to the end of the weapon name it is:
Code:
~set our name based on the type of weapon chosen
field[livename].text = "+1/+2 vs fiends "
perform gizmo.findchild[BaseWep].setfocus
if (state.isfocus <> 0) then
field[livename].text &= titlecase(focus.field[name].text) & "*"
else
field[livename].text &= "Weapon" & "*"
endif
field[shortname].text = field[livename].text
field[sbName].text = field[livename].text