Вот собсна скрипт на подсчёт ГП в окне трейда... работает как надо, но вот задача, взбрело мне в голову сделать разделение на ГП, К, КК... т.е вместо 1234567 выводило бы.... 1КК.234К.567Гп... есть у кого какие предложения?... у меня едуя была тока методом перебора... вычислять сколькизначное число и Mid-ом... вырезать ГП, К, КК.... но там будет геморно
sub CheckGold()
var Type='0x0EED', Color='-1', Cont=UO.TradeContainer('right')
var item_amount = 0
If UO.TradeCount() Then
REPEAT
UO.FindType(Type, Color, Cont)
If UO.FindCount() Then
If UO.GetQuantity('finditem')==0 Then
item_amount = item_amount + 1
Else
item_amount = item_amount + UO.GetQuantity('finditem')
EndIf
UO.Ignore('finditem')
UO.FindType(Type, Color, Cont)
EndIf
Until UO.FindCount()==0 or UO.Dead()
UO.IgnoreReset()
UO.Print("Gold: "+STR(item_amount)+"Gp")
Else
UO.Print("No Trade!")
EndIf
end sub
sub LongSumm(s)
var t = '', i
dim suf[3]
suf[0] = 'gp'
suf[1] = 'K '
suf[2] = 'KK '
for i = 0 to 2
if len(s) > 3 then
t = Right(s,3) + suf[i] + t
s = left(s,len(s)-3)
else
t = s + suf[i] + t
end if
next
end sub
sub LongSumm(s)
где s - цифра в формате строки.
PS ограничение по сумме 999кк
sub CheckGold()
var Type='0x0EED', Color='-1', Cont=UO.TradeContainer('right')
var item_amount = 0, PrintText = '', i
Dim text[4]
text[0] = 3
text[1] = 'Gp'
text[2] = 'K : '
text[3] = 'Kk : '
If UO.TradeCount() Then
REPEAT
UO.FindType(Type, Color, Cont)
If UO.FindCount() Then
If UO.GetQuantity('finditem')==0 Then
item_amount = item_amount + 1
Else
item_amount = item_amount + UO.GetQuantity('finditem')
EndIf
UO.Ignore('finditem')
UO.FindType(Type, Color, Cont)
EndIf
Until UO.FindCount()==0 or UO.Dead()
UO.IgnoreReset()
item_amount = STR(item_amount)
For i = 1 TO text[0]
If len(item_amount) > 3 Then
PrintText = right(item_amount,3) + text[i] + PrintText
item_amount = left(item_amount,len(item_amount)-3)
Else
PrintText = item_amount + text[i] + PrintText
item_amount = '0'
End If
Next
UO.Print("Gold: "+PrintText)
Else
UO.Print("No Trade!")
EndIf
end sub