Проблема со скрипт на определение злобности !

Ask for help

Moderators: Murderator+, Murderator

Post Reply
DarkpSy
Posts: 18
Joined: 2007-11-26 22:29:01

Проблема со скрипт на определение злобности !

Post by DarkpSy »

Вроде все правильно и должно работать, но выдает проста 5 раз
FINDDISTANS=0
item found = 0
И ето возле ББ где куча народу !

Сам скрипт
sub zloba()
Var i
Var color
For i=1 to 5
__uo.ignore('self')
__uo.set('finddistance','i')
__uo.findtype('0x0190','-1','ground')
__if uo.findcount() > 0 then
_____while UO.FindCount() > 0
________if uo.isNPC('finditem') then
___________color=uo.GetNotoriety('finditem')
___________UO.Print( 'Уровень злобноста: ' + str( color ) )
___________wait(1000)
___________uo.ignore('finditem')
_________else
___________UO.Print('призрак')
___________wait(1000)
___________uo.ignore('finditem')
________end if
________wait(2000)
_____wend
_____wait(1000)
__end if
Next
uo.ignorereset()
end sub

И вообсче почемуто проблем с поиском uo.findtype() очень много особенно если искать людей , то ишет то не ищет ,чорт знает что !
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

uo.set('finddistance','i')

'i' => str( i )
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
DarkpSy
Posts: 18
Joined: 2007-11-26 22:29:01

Post by DarkpSy »

Вот я все никак не пойму что делает str в хелпе написанно что преобразовывает числа в строчку токо до меня недоводит что ето значит обьяните по подробней ))
вот здесь uo.GetNotoriety('finditem') итак зимеет значения в числах 0-6
но и принтиться же тоже в числах )))
сolor=uo.GetNotoriety('finditem')
UO.Print( 'Уровень злобноста: ' + str( color ) )
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

DarkpSy wrote:Вот я все никак не пойму что делает str в хелпе написанно что преобразовывает числа в строчку токо до меня недоводит что ето значит обьяните по подробней ))
вот здесь uo.GetNotoriety('finditem') итак зимеет значения в числах 0-6
но и принтиться же тоже в числах )))
сolor=uo.GetNotoriety('finditem')
UO.Print( 'Уровень злобноста: ' + str( color ) )


Могу ошибаться, но у тебя uo.GetNotoriety возвращает значение целочисленного типа, а в uo.Print формальный параметр строка или символьный массив.

Вот как раз str делает конвертирование из int -> string (char*)
volhram
Posts: 95
Joined: 2004-10-19 16:25:45

Post by volhram »

это из программирования....преобразование типов
если не связывался то просто запомни, что для uo.set() все входные данные - строковые..
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

Скриптовый модуль Injection поддерживает три типа данных - число, строка, объект. Речь пойдёт о первых двух.
Итак переменная строкового типа. Что это? - Это набор букв и Injection соответственно будет работать со строковой переменной как с буквами. К строковым переменным так же относятся числа в шестндцатеричной системе счиления (идентификаторы, графические типы, цвета).

Далее - переменная числового типа. Это непосредственно число и Injection будет с такой переменной оперировать как с числом.

Пример.

Code: Select all

var result
var string1 = "123"
var string2 = "456"
result = string1 + string2
uo.print( result ) ; 123456
var number1 = val( string1 )
var number2 = val( string2 )
result = str( number1 + number2 )
uo.print( result ) ; 579


Соответственно разные функции принимают разные типы аргументов, тебе нужно просто запомнить, что все функции вызываемые из строки чата в UO принимают только строковые аргументы.
Например:

Code: Select all

uo.msg( str( uo.getX() ) )
uo.say( str( uo.getY() ) )
uo.privategettile( uo.getX(), uo.getY(), -1, 0, 1000 )
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
Post Reply