Попробуй так:
Найди в module_dialogs этот диалог гильдмейстера, который у тебя появляется и перед ним (или ещё раньше) пропиши свой с условием в первых кв. скобках (eq, "$g_talk_troop", "trp_кузнец"), .
Естественно, вместо "кузнец" должен стоять идентификатор твоего кузнеца из module_troops.
Например:
[anyone,"start", [(eq, "$g_talk_troop", "trp_кузнец"), ], "Bla bla bla!", "kuznec1",[]],
А дальше пойдут вопросы игрока:
[anyone|plyr,"kuznec1", [], "Vopros 1", "kuznec2",[]],
[anyone|plyr,"kuznec1", [], "Vopros 1", "kuznec3",[]],
и т.д. В конце надо сделать выход из диалога:
[anyone|plyr,"kuznec1", [], "Vopros 1", "close_window",[]],
А дальше будут ответы кузнеца - "kuznec2" и "kuznec3":
[anyone,"kuznec2",[], "Otvet 1", "kuznec1",[]],
[anyone,"kuznec3",[], "Otvet 2", "kuznec1",[]],
Ну, и т.д., и т.п. Разветвлённость базара зависит от тебя.