Статейки - MSACH https://msach.ru/ ru Статейки - MSACH DataLife Engine Как сделать свой Skybox https://msach.ru/sa-android/stateyki/783-kak-sdelat-svoy-skybox.html https://msach.ru/sa-android/stateyki/783-kak-sdelat-svoy-skybox.html ]]> 1. Прямые руки и IQ не ниже 70
2. Прога Planetical (бесплатно в Google Play)
3. Прога PicSay Pro (платная в Маркете, но я скачал с Трэшбокса)
4. Картинка с красивым пейзажем, которое вы хотите видеть в игре.

1 шаг.
Открываем прогу Planetical и загружаем своё фото (Chose Existing). Далее выбираем фото и выбираем две галочки внизу.
Было|СталоДалее жмакаем Done, сохраняем и закрываем прогу.
2 шаг
Открываем готовую картинку в PicSay, нажимаем Normal, и видим панель редактирования. Жмакаем Adjust и выбираем пункт как на скрине:Дальше выставляем разрешение (я выставил 2048x2048), нажимаем Export. Потом появятся способы экспорта, но нас интересует строка вверху:Там выбираем имя(saM-утро,saN-ночь,saA-после полудня,saD-день), жмём на формат и выбираем png. Экспортируем, и после этого импортируем в папку txd GTA-шки с Uncompressed 32bpp. Ну а то что получилось вы можете увидеть на скрине, который был на заголовке.
Удачи с созданием! ]]>
hackandrew Wed, 22 Nov 2017 16:28:06 +0300
Установка машин в GTA SA ANDROID и IOS https://msach.ru/sa-android/stateyki/660-ustanovka-mashin-v-gta-sa-android-i-ios.html https://msach.ru/sa-android/stateyki/660-ustanovka-mashin-v-gta-sa-android-i-ios.html Установка машин в GTA SA ANDROID и IOS

]]>
]]> imilka Fri, 28 Jul 2017 18:20:09 +0300
Урок по cleo №5 https://msach.ru/sa-android/stateyki/665-urok-po-cleo-5.html https://msach.ru/sa-android/stateyki/665-urok-po-cleo-5.html
#Уроки
Сегодня на уроке мы изучим:
-Анимация
-Объект
-Активация на зоны]]>

Теория:

-Перед использованием анимаций их следует загрузить
-Перед использованием объектов их следует загрузить

Конец теории

Практика:
Эм... ну что же начнем

Значит создаем новый скрипт-файл(ctrl+n)
Жмем F6(компиляция, да и кстати после завершения работы надо делать компиляцию, что бы получить готовый файл иначе игра не распознает его)

Путь сохранения (путь к GTA)/cleo//
В графе название пишим "MyFirstAnimAndObject"

Далее

В скрипте пишим
{$cleo .формат}(формат смотри в первом уроке)
0000:
thread "MyFirstAnimAndObject"
end_thread
Между
thread "MyFirstAnimAndObject"
*тут*
end_threadModel.Load(1485) // Модель сигареты
04ED: load_animation "smoking" // Загружаем ПАКЕТ анимаций, пакет ped грузить не надо M_smk_drag
04EE: animation "smoking" loaded
038B: load_requested_models // Грузим модельки
Пишем:Бесконечный цикл:
:1
wait 0
if and
00E1: player 3 pressed_key 5 // Если нажата зона 5
00E1: player 3 pressed_key 7 // И зона 7
jf @1Object.Create(1@,1485,0.0,0.0,0.0) // создаем объект в любых координатах
070A: AS_actor $PLAYER_ACTOR attach_to_object 1@ offset 0.0 0.0 0.0 on_bone 6 16 perform_animation "M_smk_drag" IFP_file "smoking" time 3760 // Заставляем игрока исполнить анимацию и присоединить объект к кости правой руки
wait 3760 // Ждем пока она кончится
Object.Destroy(1@) // Уничтожаем объект
Object.RemoveReferences(1@) // И ещё разок
jump @1 // И назад к началу.
Тут сам код, я все поясню Итог:

-Мы умеем проверять клавиши
-Спавнить объекты
-И делать анимации для актеров

В следущем уроке:

-Эффекты ]]>
imilka Thu, 16 Mar 2017 18:47:21 +0300
Урок по cleo №4 https://msach.ru/sa-android/stateyki/664-urok-po-cleo-4.html https://msach.ru/sa-android/stateyki/664-urok-po-cleo-4.html
#Уроки 
Сегодня на уроке мы изучим: 
-Пикапы, сейвинг, телепортацию и интерьеры. ]]>
 

Теория: 

-С помощью определеных опкодов можно вызвать save меню 
-С помощью определеных опкодов можно сделать телепортацию и смену интерьера игроку 
-pawnokit.com/Ru/Interiors- тут можно найти id всех интерьеров(Мне не платили) 

Конец теории 

Практика: 
Эм... ну что же начнем 

Значит создаем новый скрипт-файл(ctrl+n) 
Жмем F6(компиляция, да и кстати после завершения работы надо делать компиляцию, что бы получить готовый файл иначе игра не распознает его) 

Путь сохранения (путь к GTA)/cleo// 
В графе название пишим "MyFirstHouse" 

Далее 

В скрипте пишим 
{$cleo .формат}(формат смотри в первом уроке) 
0000: 
thread 'MyFirstHouse' 
end_thread 


После thread 'MyFirstHouse' 
0518: 1@ = create_available_asset_pickup 'PROP_3' at 2498.5393 -1642.2543 14.1131 price 120000 // Пикап покупки 
Marker.CreateIconWithoutSphere(2@,31,2498.539, -1642.254, 0.0) 

Далее пишим условие 
if 
$MyFirstHouseBuy == 0 
jf @Buy1 

Сразу же после пишим :NotBuy1 
И :Buy1 
После :NotBuy1 
Пишим условие 
if and 
0214: pickup 1@ picked_up 
jf @NotBuy1 


Дальше сетим поворот и координаты игроку и ещё камеру 
Actor.PutAt($PLAYER_ACTOR,2498.4053, -1645.4764, 13.537) 
Actor.Angle($PLAYER_ACTOR) = 180.0 
Camera.SetBehindPlayer() 
$MyFirstHouseBuy = 1 


Потом уничтожаем на всякий случай прошлый пикап и на место него ставим другой пикап входа/выхода и убераем метку 

Pickup.Destroy(1@) 
0A40: 1@ = create_entrance_marker_at 2498.539 -1642.254 14.1131 color 14 
Marker.Disable(2@) 


Потом условие 
:1 
wait 0 
if 
00ED: actor $PLAYER_ACTOR sphere 0 near_point 2498.539 -1642.254 radius 1.0 1.0 on_foot 
jf @1 


Ииииииии... 
Телепортируем игрока, разворот ставим, камеру, интерьер, присоединяем игрока к интерьеру.... дальше делаем функционал сами 
!!!ПОСЛЕ ЗАВЕРШЕНИЯ РАБОТЫ КОМПИЛИРУЙТЕ СКРИПТ!!! 
!!!КООРДИНАТЫ ТУТ ТОЛЬКО ДЛЯ ПРИМЕРА! СТАВЬТЕ СВОИ И РАЗВОРОТ И ИНТЕРЬЕР ТОЖЕ СВОЙ!!! 
Actor.PutAt($PLAYER_ACTOR,-42.5258, 1408.2278, 1084.4297) 
Actor.Angle($PLAYER_ACTOR) = 0.0 
Camera.SetBehindPlayer() 
04BB: select_interior 8 
0860: link_actor $PLAYER_ACTOR to_interior 8 


После :Buy1 

0A40: 1@ = create_entrance_marker_at 2498.539 -1642.254 14.1131 color 14 
:2 
wait 0 
if 
00ED: actor $PLAYER_ACTOR sphere 0 near_point 2498.539 -1642.254 radius 1.0 1.0 on_foot 
jf @2 
Actor.PutAt($PLAYER_ACTOR,-42.5258, 1408.2278, 1084.4297) 
Actor.Angle($PLAYER_ACTOR) = 0.0 
Camera.SetBehindPlayer() 
04BB: select_interior 8 
0860: link_actor $PLAYER_ACTOR to_interior 8 

И тут тоже сами функционал... 
!!!ПОСЛЕ ЗАВЕРШЕНИЯ РАБОТЫ КОМПИЛИРУЙТЕ СКРИПТ!!! 
!!!КООРДИНАТЫ ТУТ ТОЛЬКО ДЛЯ ПРИМЕРА! СТАВЬТЕ СВОИ И РАЗВОРОТ И ИНТЕРЬЕР ТОЖЕ СВОЙ!!! 

Практика кончилась теперь бонус 

3@ = Pickup.Create(модель,коорд_x,коорд_y,коорд_z) 
:228 
wait 0 
if 
Pickup.picked_up 
jf @228 
03D8: show_save_screen 


!!!03D8-ой опкод показывает save меню!!! 

Итог: 

-Мы умеем телепортровать игрока 
-Мы умеем устанавлить игроку угол разворота 
-Менять интерьер 
-Присоединять актера к интерьеру 
-Делать сохранение 
-Устанавливать камеру за игроком 
-Делать проверки на поднятие пикапа 
-Делать маркеры входа/выхода 
-Создавать маркер для покупки имущества(не только дома, но и бизнесы можно сделать через это) 
-Все то что мы умели делать в прошлом уроке 

В следущем уроке: 

-Мы разберем объекты 
-Мы разберем анимации 
-Мы разберем активации на зоны 

Да и кстати, большое тебе спасибо, что прочитал это, потому что на этот мануал я убил один час своего сна :( 
КОНЕЦ ]]>
imilka Wed, 15 Mar 2017 19:43:58 +0300
Урок по cleo №3 https://msach.ru/sa-android/stateyki/663-urok-po-cleo-3.html https://msach.ru/sa-android/stateyki/663-urok-po-cleo-3.html
#Уроки
Сегодня на уроке мы изучим:
-Доучим условия
-Машины
-Пешеходов]]>

Как всегда теория:
- Условия - это вопросы "задаваемые" игре.
- Педы - это жители штата.
- Координаты - это положение по XYZ.
- Машины - это машины.
- И очень важно! В игре есть баг, что если игрок в коодинатах 0.0 0.0 0.0(например), а мы спавним пешехода в 1000.0 1000.0 1000.0, то пешеход появится с большим удаление от заданых координат :(
- В cleo существует три вида условий:
-- 1) -if-Это тот который уже использовался нами, простой вопрос.(один вопрос)
-- 2) -if or- Дословно "если или", более понятным языком "если одно из условий верно". Пример из жизни: Если ты школьник или тебе 13 лет.(До 8 вопросов)
-- 3) -if and- Дословно "если и", более понятным языком "если все из условия верны". Пример из жизни: Если ты школьник и тебе 13 лет.(До 8 вопросов)
Конец теории
Берем прошлый скрипт
К model.load(#fam1) дописываем на следущией строке model.load(#bullet)
К if дописываем and.
Получается if and
После 00EC опкода пишем Player.Defined($PLAYER_CHAR)
К Actor.Create дописываем на следущией строке Car.Create(2@,#BULLET,2500.00,-1660.0,13.3437)
Тут все понятно, но я объясню Car - что, Create - что с ним сделать, 2@ - локальная переменная, #BULLET - модель, далее координаты.
Дальше:
05CA: AS_actor 1@ enter_car 2@ passenger_seat 0 time 10000

1@ - переменная актера
2@ -
0 - Пассажирское место, рядом с водетелем
10000 - это время в течении которого он будет идти, если время кончится,а он не дошел то он ТПится в машину
И наконец Model.Destroy(#BULLET)
В итоге:
{$CLEO .cs}
0000:
thread "MyFirstScritp"
Model.Load(#fam1)
Model.load(#BULLET)
:1
wait 0
if and
00EC: actor $PLAYER_ACTOR sphere 0 near_point 2488.5601 -1666.5066 radius 80.0 80.0
Player.Defined($PLAYER_CHAR)
jf @1
Actor.Create(1@,Gang2,#fam1,2488.5601, -1666.5066,13.3437)
Car.Create(2@,#BULLET,2500.00,-1660.0,13.3437)
05CA: AS_actor 1@ enter_Car 2@ passenger_seat 0 1000 ms
Model.Destroy(#FAM1)
Model.Destroy(#BULLET)
end_thread

]]>
imilka Tue, 14 Mar 2017 19:36:40 +0300
Урок по cleo №2 https://msach.ru/sa-android/stateyki/662-urok-po-cleo-2.html https://msach.ru/sa-android/stateyki/662-urok-po-cleo-2.html Эйоу, всем ещё раз приветик :3
Сегодня на уроке мы изучим:
-Условия
-Пешеходов(педов)
-Как достать координаты из игры.]]>

Как всегда теория:
- Условия - это вопросы "задаваемые" игре.
- Педы - это жители штата
- Координаты - это положение по XYZ.
- И очень важно! В игре есть баг, что если игрок в коодинатах 0.0 0.0 0.0(например), а мы спавним пешехода в 1000.0 1000.0 1000.0, то пешеход появится с большим удаление от заданых координат :(
Конец теории
Практика:
Мы хотим, что бы пешеход заспавнился на кольце грув
Берем старый скрипт и стираем Player.Money(или опкод)
Пишем:
Model.Load(#fam1) // Загружаем модель для последущего использования
:1 //метка
wait 0 //Ожидание, что бы игра не вылетела при быстром условии
if //Условие "если"
00EC: actor $PLAYER_ACTOR sphere 0 near_point 2488.5601 -1666.5066 radius 80.0 80.0//Сам вопрос.
jf @1 // Иначе, если не выполнено условие
Actor.Create(1@,Gang2,#fam1,2488.5601, -1666.5066,13.3437) // Спаним педа
Model.Destroy(#FAM1) // Выгружаем модель из памяти, что бы не нагружать игру

Скрипт готов, но я все поясню
Метка(label) - это место для возрата назад или вперед в коде.
wait 0 - необходимо писать из-за того, что у нас цикличная проверка, иначе игра зависнит.
00ec - опкод
actor - это просто для того что бы сделать код более ЧП(человеко - понятным)
$PLAYER_ACTOR - это глобальная переменная для игрока, как актека(позиция, оружие и прочее).
sphere - это просто для того что бы сделать код более ЧП(человеко - понятным)
0 - Это аргумент, отвечающий за то будет ли красный маркер в районе этой метки(0-нет|1-да)
near_point - это просто для того что бы сделать код более ЧП(человеко - понятным)
2488.5601 -1666.5066 - координаты.
!!!Вот тут очень важное!!!
!!!Что бы узнать координаты, мы в окошке SB нажимаем f8, у нас загружается игра. Далее идем к тому месту откуда брать координаты. Скрываем GTA и в SB жмем Shift+cntl+c и у нас появиляются координаты!!!
radius - это просто для того что бы сделать код более ЧП(человеко - понятным)
80.0 80.0 - Это радиус действия от координат указаных левее. 80 во все строны, кроме вверх-вниз
jf @1 - Если игрок не в радиусе 80 от центра грув стрит, то возрашяемся назад к вопросу.
Actor - сложно обяъяснить
Create - Это то что нужно сделать. В данном случае заспавнить.
1@ - Это локальная переменная куда мы записываем пешехода.
Gang2 - это тип пешехода, в данном случае это бандит из банды 2(по умолчанию грув).
#FAM1 - Это название модели персонажа. Перед использованием загрузить!!!
Далее координаты, как найти я уже рассказал.
В итоге у нас вот такой код:
{$CLEO .cs}
0000:
thread "MyFirstScritp"
Model.Load(#fam1)
:1
wait 0
if
00EC: actor $PLAYER_ACTOR sphere 0 near_point 2488.5601 -1666.5066 radius 80.0 80.0
jf @1
Actor.Create(1@,Gang2,#fam1,2488.5601, -1666.5066,13.3437)
Model.Destroy(#FAM1)
end_thread

Итог:
-Мы изучили ещё пару опкодов.
-Мы узнали про условия(1/3 знаем)
-Мы узнали как достать координаты.
]]>
imilka Mon, 13 Mar 2017 18:34:58 +0300
Урок по cleo №1 https://msach.ru/sa-android/stateyki/661-urok-po-cleo-1.html https://msach.ru/sa-android/stateyki/661-urok-po-cleo-1.html Эйоу, здарова гитта тащер.
Сегодня мы будем учиться делать cleo скрипты.
С помощью cleo можно сделать: Миссию и обычный скрипт.
Хорош воду гнать, го учиться.]]>
-ПК(консолька не подойдет :( )
-ЖТА:СА на твой ПэКа
-Android
-ЖТА:СА на твой Android
-Cleo библиотека на твою ЖТА:СА на Android(Сам ищи)
-Cleo библиотека на твою ЖТА:СА на пк(http://www.cleo.li)
-Sanny Builder(SannyBuilder.com)
-Руки из правильного места и чучуть мозгов(вроде-бы у всех есть)
И так подготовка закончена.

Теперь ставишь ЖТА, cleo и Билдер, после чего открываешь санный билдер, БЕАЧ
Указываешь в настройках место где у тебя стоит ЖТА.
И все ты готов.

Теория(можно не читать):
*.cs - Custom Script - основной вид скриптовтов для ПК версии ГТА
*.cm - Custom Mission - основной вид внешних миссий для ПК версии ГТА
*scm - Хз как расшивровать, но тут сам игровой скрипт, но мы не будем им пользоваться(все внутрении миссии, пикапы и прочее)
*.csa - Custom Script Android - Автозагружаемый вид скриптов для Android версии ГТА
*.csi - Custom Script I(что на i) - Вызываемый(через cleo menu) вид скриптов для Android версии ГТА
Теория кончилась.

Практика:

Открываешь SB.
Жмакаешь Contol+N.
Тут типа надо скрипт писать, кекъ
Ну пишешь значит:
{$Cleo .формат}
 форматы читай выше,scm не используй
Эта строчка позволяет компилятору узнать, что ему копмилировать и в каком формате.
Дальше
0000:

"0000" - это операционный код(опкод), ":" - это отделение опкода от аргументов. У данного опкода нету аргументов, посему мы ничего не пишим.
Этот опкод нужен, что бы избежать ошибки при прыжке на первую метку.
Но лучше его писать всегда.
thread "MyFirstScritp"

Это можно и не писать, но лучше написать, потом объясню зачем это нужно
И в конец
end_thread

Это что бы когда скрипт закончит свою работу игра не вылетала
Все, первый скрипт готов, но он не сохранен.
Жмем F6 и указываем путь. У меня это "C:\Program Files (x86)\Advance RolePlay\San Andreas Multiplayer\cleo"
И название не забудь. Желательно, что бы название совпадало с тем, что написано в thread
Все, скрипт готов, но он ни чего не делает:(. НАДО ИСПРАВИТЬ!
Можно например написать(между thread и end_thread):
Player.Money($PLAYER_CHAR) += 228
или
0109: player $PLAYER_CHAR money += 100
Это одно и тоже. У некоторых опкодов есть более человеко-понятный вид
Теперь разберем:
0109 - опкод.
: - разделение опкода и аргументов.
player - это часть описания опкода, что бы сделать его понятнее, можно не писать(это не аргумент)
$Player_Char - глобальная переменная отвечающая за данные игрока. (это аргумент)
money - это часть описания опкода, что бы сделать его понятнее, можно не писать(это не аргумент)
+= - это действие которое неободимо совершить. (это необходимо писать)
100 - это операнд, количество денег.
И разберем первый вариант:
Player - это сложно объяснить, но это нужно.
Money - это то, что мы будем изменять
$Player_Char - глобальная переменная отвечающая за данные игрока. (это аргумент)
+= - это действие которое неободимо совершить. (это необходимо писать)
228 - это операнд, количество денег.
Итог:
-У нас есть программы для скриптинга
-У нас есть небольшой, но рабочий скрипт.
-Мы знаем уже два опкода.

]]>
imilka Sun, 12 Mar 2017 19:31:09 +0300