API UO Cast - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
ClassicUO / Basic IDE
Оглавление · Алфавитный указатель · Magic
Отправляет запрос на применение заклинания/навыка. Строковая форма с одним аргументом возвращает 1 при принятии запроса клиентом и 0 при неизвестном имени или отказе. Это не подтверждение успешного эффекта на сервере. Форма с target сначала ставит цель в очередь, затем отправляет действие. Компактные формы с target=0/-1 ищут персонажа по фильтрам; явный serial используется напрямую. Последний флаг wait/waitTarget включает ожидание расходования очереди target до 1000 мс; при тайм-ауте возвращается 0 и очередь очищается. Флаг не является длительностью в миллисекундах.
UO.Cast(spellName:String) -> Integer
UO.Cast(SpellID:Any) -> Any
UO.Cast(spellName:Any, target:Any) -> Integer
UO.Cast(spell:Any, target:Any, distance:Any) -> Integer
UO.Cast(spell:Any, target:Any, distance:Any, notoriety:Any) -> Integer
UO.Cast(spell:Any, target:Any, distance:Any, notoriety:Any, nearest:Any) -> Integer
UO.Cast(spell:Any, target:Any, distance:Any, notoriety:Any, nearest:Any, maxZ:Any) -> Integer
UO.Cast(spell:Any, target:Any, distance:Any, notoriety:Any, nearest:Any, maxZ:Any, wait:Any) -> Integer
Регистр имени не важен. Any — динамическое значение Basic; Unit — отсутствие возвращаемого значения. Integer — знаковое 32-битное число, Decimal — число с плавающей точкой. Правила типов, serial, индексов и ожиданий.
| Имя | Назначение |
|---|---|
spellName |
Named runtime value (Spell); use the exact registered/saved name expected by Cast. |
SpellID |
Позиционный аргумент этой перегрузки. Подробности использования указаны в описании/фактической ветви runtime ниже. |
target |
Object/mobile serial or a supported Basic object reference such as self/backpack/lasttarget/saved object name; hexadecimal and decimal serials are accepted by Variant overloads. |
spell |
Позиционный аргумент этой перегрузки. Подробности использования указаны в описании/фактической ветви runtime ниже. |
distance |
Позиционный аргумент этой перегрузки. Подробности использования указаны в описании/фактической ветви runtime ниже. |
notoriety |
Позиционный аргумент этой перегрузки. Подробности использования указаны в описании/фактической ветви runtime ниже. |
nearest |
Логический флаг: 0 — выключено, 1 — включено. Значение при пропуске зависит от перегрузки. |
maxZ |
Позиционный аргумент этой перегрузки. Подробности использования указаны в описании/фактической ветви runtime ниже. |
wait |
Позиционный аргумент этой перегрузки. Подробности использования указаны в описании/фактической ветви runtime ниже. |
Параметры обязательны внутри каждой показанной сигнатуры. Опустить аргумент можно только при наличии более короткой перегрузки; пропуск позиции посередине не подразумевается.
Каждый блок — самостоятельный скрипт из мануала проекта. Параметры демонстрационного объекта/контейнера и условия действия необходимо сопоставить с вашей игровой ситуацией.
SUB Main()
VAR accepted = UO.Cast('Heal', self)
UO.Print(CStr(accepted))
END SUBSUB Main()
VAR arg1 = 'Heal' # spell
VAR arg2 = self # target
VAR arg3 = 5 # distance
VAR arg4 = -1 # notoriety
VAR arg5 = 1 # nearest
VAR arg6 = 6 # maxZ
VAR arg7 = 7 # wait
VAR result = UO.Cast(arg1, arg2, arg3, arg4, arg5, arg6, arg7)
UO.Print(CStr(result))
END SUBSUB Main()
VAR result = UO.Cast('Heal', self)
UO.Print(CStr(result))
END SUBSUB Main()
VAR result = UO.Cast('Heal', self, 5)
UO.Print(CStr(result))
END SUBSUB Main()
VAR result = UO.Cast('Heal', self, 5, -1)
UO.Print(CStr(result))
END SUBSUB Main()
VAR result = UO.Cast('Heal', self, 5, -1, 1)
UO.Print(CStr(result))
END SUBSUB Main()
VAR result = UO.Cast('Heal', self, 5, -1, 1, 6)
UO.Print(CStr(result))
END SUBSUB Main()
VAR arg1 = 'Heal' # spellName
VAR result = UO.Cast(arg1)
# Пример порога; выберите подходящий смыслу команды.
IF result > 0 THEN
UO.Print(CStr(result))
END IF
END SUBFUNCTION ReadResult()
VAR arg1 = 'Heal' # spellName
VAR result = UO.Cast(arg1)
RETURN result
END FUNCTION
SUB Main()
VAR answer = ReadResult()
UO.Print(CStr(answer))
END SUBРеализация и проверка контракта
InjectionScript.Runtime.InjectionApiUO+<>c__DisplayClass38_0.<RegisterStealthCompatibility>b__0InjectionScript.Runtime.InjectionApiUO.<Register>b__37_25InjectionScript.Runtime.InjectionApiUO.Cast
Соответствующая ветвь совместимого обработчика в InjectionApiUO.cs. Arg(i)/Text(i) читают позицию с нуля; bridge обращается к клиенту. Прямые типизированные перегрузки перечислены выше и могут иметь отдельный маршрут.
return new InjectionValue(arguments[0].Kind == InjectionValueKind.String ? Cast(Text(0)) : bridge.Cast(Arg(0)));Источник реестра и отчёт сверки. Примеры проверяются загрузчиком/парсером включённого runtime. Действия на игровом сервере этой проверкой не исполняются.