Вот собсна скрипт на подсчёт ГП в окне трейда... работает как надо, но вот задача, взбрело мне в голову сделать разделение на ГП, К, КК... т.е вместо 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