1. Не желательно использовать сравнение с ID диалога, т.к. они периодически меняются и могут быть одинаковыми. Лучше делать поиск по контексту диалога или титульника.
2. Для математических действий число типа string не обязательно конвертировать в целочисленное,т.к. при самой математической операции строка автоматически конвертируется в число.
3. При использовании match необходимо заключать в скобки объекты поиска, которые необходимо вытащить по шаблону. Иначе функция просто вернут всю строку.
4. Не забывай про hex теги цветов, типа {FFFFFF}, которые используются в диалогах. Я их ниже обозначил как {......}
Приблизительно такой такой код:
function sampev.onShowDialog(dId,s,t,b1,b2,text)
if t:find("Баланс Франкций") then
for line in text:gmatch("[^\r\n]+") do
print(line)
if line:find("- [а-яА-Я%a%s]+: {......}[%d.]+") then
local frac, money = line:match("- ([а-яА-Я%a%s]+): {......}([%d.]+)")
money = money:gusb("%.", "")
sampAddChatMessage(frac.."; money: "..money, 0xFFF000)
end
end
end
end
И ещё, соблюдайте пожалуйста табуляцию. Она делает код не только красивым, но и читабельным. Иногда просто могут отказать в помощи, если не соблюдается табуляция в больших фрагментах кода.