Скрипты для GTA от dim1988 aka d88

Главная | Регистрация | Вход

Приветствую Вас Гость | RSS
[Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » Скрипты » Всё о клео скриптах » Вопросы по созданию скриптов
Вопросы по созданию скриптов
dim1988 Дата: Воскресенье, 19.07.2009, 18:43 | Сообщение # 1
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline
Ответы на самые часто задаваемые вопросы

Как сохранить (компилировать) скрипт?
Почему не следует использовать в клео скриптах глобальные переменные?
Как узнать координаты мест, через какую прогу?
Как поместить игрока в интерьер?
Опкод, который открывает все дома в СА
Запись в переменную ближайшего педа и проверка его модели
Как заставить актёров ходить по определённым координатам
Проверка нажатия определённой клавиши
Пак пути с анимацией
Как сделать так, чтоб 2 миссии следовали друг за другом?
Как актёру дать оружие?
Как создать транспорт
Как создать жёлтый маркер для входа в интерьер?
При компиляции выдаёт ошибку перехода на нулевой оффсет,что это и как исправить?
Как транспорту присвоить определённый цвет?
Что делать если пишет ожидалось 'x' параметров?
Как написать цветной текст?
Номера костей актёра
Что такое gosub?
Опкоды, связанные с созданием огня
Как изменить оружие банд?
Образец добавления в игру объектов
Проверка нажатия клавиши в игре и список значений
Путь или scmpath
Как изменить цвет затемнения экрана?
Как записать в переменную случайное число из интервала
Список стилей боя
Как привязать эффект к кости актёра?
Как произвести действия, над педами, созданными игрой
Как заменить модель игрока
Как заставить актёра поднять руки, как при аресте
Сброс анимации
Как метнуть объект?
Как из одного скрипта запустить другой?

+ файл от пользователя нашего сайта Absolute . Здесь перечислены все вопросы из этой этой темы и ответы на них. Скачать
 
 
Ford Дата: Пятница, 10.12.2010, 13:47 | Сообщение # 1771
Группа: Проверенные
Сообщений: 190
Замечания: 20%
Статус: Offline
Помогите с такой задачкой как сделать чтобы в этом скрипте телепортирование в каждую точку происходило независимо друг от друга, а не попоряку или нужно делать несколько скриптов.

Добавлено (10.12.2010, 13:47)
---------------------------------------------
Скажите какой опкод можно поставить, чтобы народ разбегался со страха, как когда вертолет садится или стрельба происходит.

Сообщение отредактировал Ford - Четверг, 09.12.2010, 13:29
 
 
Den_spb Дата: Пятница, 10.12.2010, 20:23 | Сообщение # 1772
Мастер по скриптингу
Группа: Проверенные
Сообщений: 295
Замечания: 0%
Статус: Offline
Code
{$CLEO}
wait 0
while true
      wait 0
      if
          not player.Defined($PLAYER_CHAR)
      then
          continue
      end
      if
          not actor.Driving($PLAYER_ACTOR)
      then
          continue
      end
      if
          0AB0: key_pressed 84
      then
          if
              0AB0: key_pressed 98
          then
              fade 0 3000    
              select_interior 10   
              0860: link_actor $PLAYER_ACTOR to_interior 10   
              Actor.PutAt($PLAYER_ACTOR, 268.9182, 119.1801, 1004.617)   
              fade 1 3000
              continue   
          end
          if
              0AB0: key_pressed 99
          then
              fade 0 3000    
              select_interior 10   
              0860: link_actor $PLAYER_ACTOR to_interior 10   
              Actor.PutAt($PLAYER_ACTOR, -1576.539, 682.6322, -4.9063)   
              fade 1 3000   
          end
      end      
end


Сообщение отредактировал Den_spb - Пятница, 10.12.2010, 20:32
 
 
ЧИтЕР Дата: Пятница, 10.12.2010, 20:57 | Сообщение # 1773
Группа: Проверенные
Сообщений: 168
Замечания: 0%
Статус: Offline
Я опять взялся за скрипты,и вот у меня вопрос по миссиям.
Вроде был опкод для прыжка на метку в другом клео файле...
Ну всмысле мне нужно сделать так,чтоб после прохождения миссии cs поток продолжал свое действие


Сообщение отредактировал ЧИтЕР - Пятница, 10.12.2010, 21:13
 
 
Jin Дата: Суббота, 11.12.2010, 12:02 | Сообщение # 1774
Группа: Друзья
Сообщений: 193
Замечания: 0%
Статус: Offline
dim1988, помоги почему пед не делает анмацию?



Скачать альбом Лумен-Лучшее(2008)
Скачать Хиты Европы Плюс(2000-2010)
 
 
dim1988 Дата: Суббота, 11.12.2010, 13:25 | Сообщение # 1775
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline
Quote (ЧИтЕР)
Я опять взялся за скрипты,и вот у меня вопрос по миссиям.
Вроде был опкод для прыжка на метку в другом клео файле...

Не понял о чём речь.
Quote (ЧИтЕР)
Ну всмысле мне нужно сделать так,чтоб после прохождения миссии cs поток продолжал свое действие

Так он и так продолжается независимо от того прошёл ты миссию или нет.
Quote (Jin)
помоги почему пед не делает анмацию?

Нет команды

04ED: load_animation "FIGHT_D"

Да и далее у тебя какие-то названия анимаций, по-моему таких названий нет.


Mortal Kombat Conquest for GTA SA V2.0
GTA Invasion V2.0
Частная собственность
 
 
Ford Дата: Суббота, 11.12.2010, 14:02 | Сообщение # 1776
Группа: Проверенные
Сообщений: 190
Замечания: 20%
Статус: Offline
Господа скриптеры помогите плиз какой командой добиться, что-бы от актера народ разбегался с воплями ужаса.
 
 
gtacleo Дата: Понедельник, 13.12.2010, 17:26 | Сообщение # 1777
Группа: Проверенные
Сообщений: 157
Замечания: 0%
Статус: Offline
dim1988, а каким опкодом заставить актёра защищать гг???
Ато я искал в по ненашол.
И мне для вс. smile


 
 
dim1988 Дата: Понедельник, 13.12.2010, 18:20 | Сообщение # 1778
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline
01DF: tie_actor 5@ to_player $PLAYER_CHAR

Mortal Kombat Conquest for GTA SA V2.0
GTA Invasion V2.0
Частная собственность
 
 
gtacleo Дата: Понедельник, 13.12.2010, 18:49 | Сообщение # 1779
Группа: Проверенные
Сообщений: 157
Замечания: 0%
Статус: Offline
dim1988, Как всегда!!
Спс!+


 
 
Colt_8 Дата: Вторник, 14.12.2010, 11:27 | Сообщение # 1780
Красавчик
Группа: Проверенные
Сообщений: 295
Замечания: 0%
Статус: Offline
Здарова всем!
У меня как всегда, вопрос по клавишам)))
Какой номер клавиши Num Del?


 
 
DK22Pac Дата: Вторник, 14.12.2010, 16:11 | Сообщение # 1781
Группа: Проверенные
Сообщений: 205
Замечания: 0%
Статус: Offline
VK_DELETE 0x2E

Мои скрипты
Grand Theft Auto III HD Development Team
 
 
Colt_8 Дата: Среда, 15.12.2010, 00:28 | Сообщение # 1782
Красавчик
Группа: Проверенные
Сообщений: 295
Замечания: 0%
Статус: Offline
Скажите, а какой опкод включает двигатель авто?
вот этот выключает: 02D4: car 0@ turn_off_engine


 
 
Den_spb Дата: Среда, 15.12.2010, 01:10 | Сообщение # 1783
Мастер по скриптингу
Группа: Проверенные
Сообщений: 295
Замечания: 0%
Статус: Offline
0ABF: set_vehicle 0@ engine_state_to 0
0ABF устанавливает режим двигателя: выключен, включен.

Параметры:
1 - хендл машины
2 - режим двигателя:
0 - выключить двигатель
1 - включить двигатель
(справка СБ)

 
 
dim1988 Дата: Среда, 15.12.2010, 08:34 | Сообщение # 1784
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline
Quote (Colt_8)
02D4: car 0@ turn_off_engine

Вроде это проверка.


Mortal Kombat Conquest for GTA SA V2.0
GTA Invasion V2.0
Частная собственность
 
 
Ford Дата: Четверг, 16.12.2010, 17:43 | Сообщение # 1785
Группа: Проверенные
Сообщений: 190
Замечания: 20%
Статус: Offline
Доброго времени суток.
Дайте пожалуста образец скрипта, кому не трудно, установки на конкретное авто определенных объектов.
 
 
gtacleo Дата: Четверг, 16.12.2010, 18:35 | Сообщение # 1786
Группа: Проверенные
Сообщений: 157
Замечания: 0%
Статус: Offline
Ford,
Вот код:
Code
0681: attach_object 2@ to_car 1@ at_offset 0.5 0.3 0.3 rotation 0.0 0.0 0.0  
  прицепить объект к машине на опред. расстоянии от центра и под опред. углом.

Вот пример:
Code
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007

{$VERSION 3.1.0027}
{$CLEO .cs}

//-------------MAIN---------------
thread "GROVE"  

:H1
wait 0
model.Load(#PRIVATESIGN3)
038B: load_requested_models  

:H_2
wait 0
if and
model.Available(#PRIVATESIGN3)
jf @H_2
object.Create(2@,#PRIVATESIGN3,0.0 0.0 0.0)
object.Angle(2@) = 270.0
014B: 1@ = init_parked_car_generator #FREEWAY color -1 -1 1 alarm 0 door_lock 0 0 10000 at 2497.788 -1649.174 13.5626 angle 92.4158  
014C: set_parked_car_generator 1@ cars_to_generate_to 101  
0681: attach_object 2@ to_car 1@ at_offset 0.5 0.3 0.3 rotation 0.0 0.0 0.0  
jump @H_10

Вродибы так!Может я ошибаюсь wink Я не проверял...

Добавлено (16.12.2010, 18:10)
---------------------------------------------
#PRIVATESIGN3-ток это измени на id.

Добавлено (16.12.2010, 18:35)
---------------------------------------------
dim1988, а неможеш ли дать список анимок VC???


 
 
Den_spb Дата: Пятница, 17.12.2010, 04:49 | Сообщение # 1787
Мастер по скриптингу
Группа: Проверенные
Сообщений: 295
Замечания: 0%
Статус: Offline
В 1@ записан хэндл парковочного генератора, а не машины. Поэтому с этим скриптом игра вылетит, т.к. будет произведена попытка прицепления объекта к несуществующей машине.
Есть два варианта правильных действий: 1. непосредственное создание машины - car.create(1@ ID 0.0 0.0 0.0)
2. поиск машины в зоне парковочного генератора (опкоды "get car")
Вторая ошибка, также ведущая к вылету - скрипт не завершён. Вместо jump @H_10 надо поставить команду окончания скрипта 0A93:


Сообщение отредактировал Den_spb - Пятница, 17.12.2010, 04:51
 
 
Ford Дата: Пятница, 17.12.2010, 10:38 | Сообщение # 1788
Группа: Проверенные
Сообщений: 190
Замечания: 20%
Статус: Offline
Ясно.
Может кто подскажет, координаты в этих опкодах как-то вычисляются (с помощью какой-нибудь проги) или ставятся методом тыка.

0681: attach_object 2@ to_car 0@ with_offset 1.7 -1.0 0.1 rotation 0.0 30.0 95.0
0407: store_coords_to 22@ 23@ 24@ from_car 0@ with_offset -1.6 -0.7 0.1

 
 
GTAshnik Дата: Пятница, 17.12.2010, 21:08 | Сообщение # 1789
Скриптер
Группа: Проверенные
Сообщений: 109
Замечания: 0%
Статус: Offline
Quote (Ford)
Может кто подскажет, координаты в этих опкодах как-то вычисляются (с помощью какой-нибудь проги) или ставятся методом тыка.

Интересный ты человек, в скриптинге вообще методом тыка ничего нельзя делать.
Можешь вычислять координаты при помощи самого СаниБилдер(я лично так делаю), а можешь скачать какой-то скрипт или не скрипт (точно не помню), который на экран выводит координаты, это проще, но я предпочитаю 1-ый метод.


Не учите меня жить! Я ещё вас научу!
 
 
Den_spb Дата: Пятница, 17.12.2010, 21:15 | Сообщение # 1790
Мастер по скриптингу
Группа: Проверенные
Сообщений: 295
Замечания: 0%
Статус: Offline
Расстояния в опкодах приведены в метрах, углы - в градусах. Можно попробовать подбирать значения методом тыка, а можно открыть модели в 3ds max и замерить расстояния там.

Сообщение отредактировал Den_spb - Пятница, 17.12.2010, 21:17
 
 
DK22Pac Дата: Пятница, 17.12.2010, 23:28 | Сообщение # 1791
Группа: Проверенные
Сообщений: 205
Замечания: 0%
Статус: Offline
Quote (Den_spb)
а можно открыть модели в 3ds max и замерить расстояния там.

Я так понимаю, надо как-то поменять формат координат? (В САшние юниты)?


Мои скрипты
Grand Theft Auto III HD Development Team
 
 
Den_spb Дата: Суббота, 18.12.2010, 01:59 | Сообщение # 1792
Мастер по скриптингу
Группа: Проверенные
Сообщений: 295
Замечания: 0%
Статус: Offline
Да, единицы измерения меняются через меню: Customize-Units setup-Generic units (это универсальная единица длины, применяющаяся не только в СА).
 
 
Ford Дата: Суббота, 18.12.2010, 09:34 | Сообщение # 1793
Группа: Проверенные
Сообщений: 190
Замечания: 20%
Статус: Offline
Quote (GTAshnik)
Можешь вычислять координаты при помощи самого СаниБилдер(я лично так делаю), а можешь скачать какой-то скрипт или не скрипт (точно не помню), который на экран выводит координаты, это проще, но я предпочитаю 1-ый метод.

Я тебя понял. У меня такой скрипт и стоит - это когда речь идет об актере, а здесь речь об тюнинге на самом авто.
 
 
Innocent Дата: Суббота, 18.12.2010, 14:45 | Сообщение # 1794
Скриптер
Группа: Проверенные
Сообщений: 105
Замечания: 20%
Статус: Offline
Да что там разбираться, впринципе. Если стоит 0.0 0.0 0.0 - значит это середина автомобиля,средняя высота (завися от самой модели автомобиля)

если брать вид сверху автомобиля допустим то если поставить 0.5 0.0 0.0 то обьект сдвинеться или в правую или в левую сторону от оси. В игре посмотришь как оно, и поймешь какие цифры отвечают за какие стороны. Следовательно Х имеет и -10 и просто 10
Так же и У

А Z то понятное дело,высота.

Это простая геометрия,и не надо мудохаться с 3д Махом,а если тебе конечно важны размеры вплоть до милиметров.Тогда лучше измерь через 3дмах,а для среднестатической задачи подойдет и "метод тыка"

Quote (GTAshnik)
Интересный ты человек, в скриптинге вообще методом тыка ничего нельзя делать.

Как раз таки наоборот, если чего то не знаешь, то приходиться эксперементировать.Иногда эти эксперименты удаються - так и приходит опыт.
Если надо могу привести пример из своей практики, если не понятно о чём я.
 
 
dim1988 Дата: Суббота, 18.12.2010, 19:16 | Сообщение # 1795
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline
Quote (Ford)
речь об тюнинге на самом авто.

Вообще-то с тюнингом по-другому делается:

06E9: request_car_component #COMPONENT - загрузить компонент тюнинга
06E7: $Comp = add_car_component #COMPONENT to_car $Car - прицепить машине компонент тюнинга.


Mortal Kombat Conquest for GTA SA V2.0
GTA Invasion V2.0
Частная собственность
 
 
crips Дата: Воскресенье, 19.12.2010, 00:36 | Сообщение # 1796
Группа: Проверенные
Сообщений: 79
Замечания: 0%
Статус: Offline
Здравствуйте,а можете подсказать несколько вопросов:
как сделать индекатор шума(как в миссии ограбление)
можно ли записать в переменные те координаты куда целится игрок
 
 
Ford Дата: Воскресенье, 19.12.2010, 07:18 | Сообщение # 1797
Группа: Проверенные
Сообщений: 190
Замечания: 20%
Статус: Offline
Помогите с этим скриптом (ни как не могу добиться чтобы приборы (текстуры) выключались по нажатию клавиш)
 
 
gtacleo Дата: Воскресенье, 19.12.2010, 09:01 | Сообщение # 1798
Группа: Проверенные
Сообщений: 157
Замечания: 0%
Статус: Offline
Подскажите пожалуйста по гта 3:
Code
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007

{$VERSION 3.1.0027}
{$CLEO .cs}

//-------------MAIN---------------
:NONAME_2
wait 0   
if   
     Actor.Driving($PLAYER_ACTOR)
jf @NONAME_2
Model.Load(#GANG11)
Model.Load(#GANG12)
Model.Load(#GANG07)
Model.Load(#GANG08)
Model.Load(#YAKUZA)

:MAYHEM_3
wait 0   
if or
     not Model.Available(#GANG11)
     not Model.Available(#GANG12)
     not Model.Available(#YAKUZA)
     not Model.Available(#GANG08)
     not Model.Available(#GANG07)
jf @MAYHEM_2   
jump @MAYHEM_3
$194 = Actor.Create(21, #GANG11, -377.0, 277.0, 62.0)
$195 = Actor.Create(21, #GANG11, -376.0, 279.0, 62.0)
$196 = Actor.Create(21, #GANG11, -376.0, 275.0, 62.0)
$197 = Actor.Create(21, #GANG12, -374.0, 274.0, 62.0)
$198 = Actor.Create(21, #GANG12, -375.0, 274.0, 62.0)
$199 = Actor.Create(21, #GANG12, -374.0, 273.0, 62.0)
$200 = Actor.Create(21, #GANG12, -376.0, 271.0, 62.0)
$201 = Actor.Create(21, #GANG11, -377.0, 278.0, 62.0)
$202 = Actor.Create(21, #GANG11, -374.0, 272.0, 62.0)
$193 = Actor.Create(21, #GANG11, -371.0, 272.0, 62.0)
$1723 = Actor.Create(21, #GANG11, -375.0, 272.0, 62.0)
$1724 = Actor.Create(21, #GANG12, -383.0, 292.0, 62.0)
$1725 = Actor.Create(21, #GANG11, -381.0, 299.0, 62.0)
$1726 = Actor.Create(21, #GANG12, -378.0, 295.0, 62.0)
$1727 = Actor.Create(21, #GANG07, -352.0, 253.0, 60.0)
$1728 = Actor.Create(21, #GANG08, -352.0, 253.0, 60.0)
$1730 = Actor.Create(21, #GANG07, -354.0, 256.0, 60.0)
$1731 = Actor.Create(21, #GANG08, -352.0, 256.0, 60.0)
$1732 = Actor.Create(21, #GANG07, -357.0, 251.0, 60.0)
$1733 = Actor.Create(21, #GANG07, -371.0, 254.0, 61.0)
$1734 = Actor.Create(21, #GANG07, -372.0, 258.0, 61.0)
$1735 = Actor.Create(21, #GANG07, -375.0, 251.0, 61.0)
$1736 = Actor.Create(21, #GANG07, -373.0, 253.0, 61.0)
$1737 = Actor.Create(21, #GANG07, 836.1246, -308.2333, 6.2637)
01B2: give_actor $194 weapon 5 ammo 999   
01B2: give_actor $195 weapon 5 ammo 999   
01B2: give_actor $196 weapon 5 ammo 999   
01B2: give_actor $197 weapon 5 ammo 999   
01B2: give_actor $198 weapon 5 ammo 999   
01B2: give_actor $199 weapon 5 ammo 999   
01B2: give_actor $200 weapon 5 ammo 999   
01B2: give_actor $201 weapon 5 ammo 999   
01B2: give_actor $202 weapon 5 ammo 999   
01B2: give_actor $193 weapon 5 ammo 999   
01B2: give_actor $1723 weapon 5 ammo 999   
01B2: give_actor $1724 weapon 5 ammo 999   
01B2: give_actor $1725 weapon 5 ammo 999   
01B2: give_actor $1726 weapon 5 ammo 999   
01B2: give_actor $1727 weapon 3 ammo 999   
01B2: give_actor $1728 weapon 3 ammo 999   
01B2: give_actor $1730 weapon 3 ammo 999   
01B2: give_actor $1731 weapon 3 ammo 999   
01B2: give_actor $1732 weapon 3 ammo 999   
01B2: give_actor $1733 weapon 3 ammo 999   
01B2: give_actor $1734 weapon 3 ammo 999   
01B2: give_actor $1735 weapon 3 ammo 999   
01B2: give_actor $1736 weapon 3 ammo 999   
01B2: give_actor $1737 weapon 3 ammo 999   
01C9: actor $194 kill_actor $1727   
01C9: actor $195 kill_actor $1728   
01C9: actor $196 kill_actor $1730   
01C9: actor $197 kill_actor $1731   
01C9: actor $198 kill_actor $1732   
01C9: actor $199 kill_actor $1733   
01C9: actor $200 kill_actor $1734   
01C9: actor $201 kill_actor $1735   
01C9: actor $202 kill_actor $1736   
01C9: actor $193 kill_actor $1737   
01C9: actor $1723 kill_actor $1737   
01C9: actor $1727 kill_actor $194   
01C9: actor $1728 kill_actor $195   
01C9: actor $1730 kill_actor $196   
01C9: actor $1731 kill_actor $197   
01C9: actor $1732 kill_actor $198   
01C9: actor $1733 kill_actor $199   
01C9: actor $1734 kill_actor $200   
01C9: actor $1735 kill_actor $201   
01C9: actor $1736 kill_actor $202   
01C9: actor $1737 kill_actor $193   
01CA: actor $1724 kill_player $PLAYER_CHAR   
01CA: actor $1725 kill_player $PLAYER_CHAR   
01CA: actor $1726 kill_player $PLAYER_CHAR   
jump @MAYHEM_3

:MAYHEM_3
wait 0   
if and
     Actor.Dead($194)
     Actor.Dead($195)
     Actor.Dead($196)
     Actor.Dead($197)
     Actor.Dead($198)
jf @MAYHEM_3   
if and
     Actor.Dead($199)
     Actor.Dead($200)
     Actor.Dead($201)
     Actor.Dead($202)
     Actor.Dead($193)
     Actor.Dead($1723)
jf  @MAYHEM_3   
if and
     Actor.Dead($1724)
     Actor.Dead($1725)
     Actor.Dead($1726)
jf @MAYHEM_3   
jump @MAYHEM_2

Насчёт глобальных перемен я знаю wink
Прост пишет метка MAYHEM_3 переобявлена.Я пробывал исправить.Всё впустую sad




Сообщение отредактировал gtacleo - Воскресенье, 19.12.2010, 09:02
 
 
DK22Pac Дата: Воскресенье, 19.12.2010, 11:44 | Сообщение # 1799
Группа: Проверенные
Сообщений: 205
Замечания: 0%
Статус: Offline
Ты два раза обьявил (т.е. написал) метку с именем MAYHEM_3

Мои скрипты
Grand Theft Auto III HD Development Team
 
 
dim1988 Дата: Воскресенье, 19.12.2010, 13:33 | Сообщение # 1800
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline
crips, я не знаю как это сделать, зеаю только ecть опкод

0855: get_actor 1@ noise_level_at 160@ 161@ 162@ store_to 166@ //?

записывает в переменную уровень шума актера для указанной точки (например слышимость актера из другой комнаты, как в миссии Robbing Uncle Sam)

Ford, если я правильно понял, за это отвечает фрагмент

Code
:NONAME_4555  
wait 0  
if and  
0AB0: key_pressed 50  
0AB0: key_pressed 78  
04C8: actor $PLAYER_ACTOR driving_flying_vehicle  
else_jump @NONAME_4

Ну тут вроде должно работать, если ты знаешь, какие это кнопки.


Mortal Kombat Conquest for GTA SA V2.0
GTA Invasion V2.0
Частная собственность
 
 
Форум » Скрипты » Всё о клео скриптах » Вопросы по созданию скриптов
Поиск:

Copyright dim1988 aka d88 © 2024
Сайт управляется системой uCoz