#376 Re: GTA Modding » CLEO 4. Questions and bug reports. » 17-04-2010 17:29

I have a answer,
what for this opcode needs?
It such like just disable radio. About that must be a memory address...

#377 Re: Серия GTA » GTA IV exe для Alice » 17-04-2010 11:09

Качай crack для своего патча. Сто раз говорили что не поддерживается версия от 1С

#378 Re: Вопросы по скриптингу » Один вопрос » 16-04-2010 16:38

~AquaZ~ wrote:

Катсцена - просто набор анимаций? В чём смысл, если можно их в скрипте написать?

Катсцена - одна длинная анимация. На сайте йелми, он же, подробно описал как создавать катсцену.

#379 Re: Вопросы по скриптингу » Создание txt файла и запись » 13-04-2010 11:45

GTASA wrote:

Sanchez, не у всех есть клео 4.

Зато у всех есть руки, что бы этот клео4 скачать? Или лень перевешивает?

#380 Re: GTA Modding » Help with scenario » 13-04-2010 11:41

On the first about "send actor far away but he's falls" try to use render opcode 04E4.

#381 Re: Программирование » Краткое руководство по ассемблеру » 13-04-2010 11:36

Seemann wrote:

Можно отнести PDF в какой-нить салон печати, где не только распечатают в книжном формате, но и переплетут. По цене, думаю, получится одинаково.

О, вот это может подойти. Спасибо!

UPDATE:
Кто-нибудь может расписать про доп. операнды ассемблера. Типа jz, shr, test и т.д.

#382 Re: Программирование » Краткое руководство по ассемблеру » 08-04-2010 13:36

Легко сказать. Есть несколько причин:
1. Полностью нет краски для печати (а рисунков там полно)
2. Там не много ни мало 320 страниц!
У меня просто не хватит терпения и бумаги. Поэтому и спросил про печатную версию.

#383 Re: Программирование » Краткое руководство по ассемблеру » 07-04-2010 18:49

Нашёл PDF версию некой книжечки по ассемблеру некого Рудольфа Марека. Нет-ли её где-нибудь в печатном виде? А то очень занятно, но читать не удобно.

#384 Re: Вопросы по скриптингу » Свести поезд с рельс » 07-04-2010 16:22

У меня промелькнула маленькая мыслишка, может глупая, но всё же.
Берём поезд (либо создаём), задаём куда-нить ехать и через метров 100 ставим максимальную скорость. По-идее он должен разогнаться так, что просто слетит с рельс (делать это лучше перед поворотами, которых на ж/д сан андреаса довольно много). Правда я немного не уверен в этой теории, так как над физикой сани можно только строить догадки и гипотезы:rolleyes:.

#386 Re: Вопросы по скриптингу » Один вопрос » 06-04-2010 17:55

~AquaZ~ wrote:

Мне тоже интересно!
___
Как сделать на тачке ментовскую "графику" и мигалку? Желательно без конвертации в Макс и обратно, хотя второе без этого наверно не обойдётся...
__
Как "отучить" SAUpDownLights проверять версию игры? У меня облегчённая пропатченая, а он хочет 1.0.

Ответ 1: Заменой текстур. Причём мигалку просто так не поставишь - работать не будет. Если память мне не изменяет, за каждой машиной по мимо её модели и id закреплена группа к которой она относится. И для каждой группы свои свойства транспорта.
Ответ 2: Может просто удовлетворить потребность данного мода - поставить версию 1.0?

#387 Re: Sanny Builder и CLEO » CLEO для GTA III » 03-04-2010 09:19

Innocent wrote:
:AK_39
00D6: if and
0248:   model #AK47 available 
0248:   model #SENTINEL available 
004D: jump_if_false @AK_66 
0002: jump @AK_73 

:AK_66
0002: jump @AK_39 

:AK_73
0001: wait 0 ms

К чему такие сложности с метками? И опять же, не забывай про 'wait'.

#388 Re: GTA Modding » Undamageable car CLEO 3 mod » 02-04-2010 12:45

gtasa player wrote:

Sw[ee]t, did you mean that player can drive car (for example) down of the cliff, and the car can launch parachute like the player, and float to ground? I try that, but i don't know if that script can be created:D

It is. And also, when car falls from the sky (or the cliff, as you said). It will be some realistic.

#389 Re: GTA Modding » Undamageable car CLEO 3 mod » 01-04-2010 12:22

I will give an idea: Parachute car.
grin

#390 Re: Sanny Builder и CLEO » CLEO для GTA III » 01-04-2010 12:20

GTASA wrote:

Лучше дайте, пожалуйста, ссылки на gta3 рус или англ, главное, чтобы второй диск не просило. Извините за флуд.

Ну вряд-ли кто-то будет постить ссылки на варез (об этом уже упоминалось ранее).

Innocent wrote:

Как может работать эта проверка на смерть - если актер даже не создан (он создаеться ниже проверки)
и что это за актер? Я так понял это и есть те последующие актеры.
А актеры 12 - 13 - 14 - 15 --- создаються только в первом ?

Идёт обыкновенная проверка переменной. Если у переменной значение нуль - возвращается false и идёт переход на метку 'AK_581'. Если я не так понял - скажи.

#392 Re: GTA Modding » Help with multiple questions with cleo. » 31-03-2010 17:22

Put actors into array?
About xyz on map cursor - it could be somewhere in memory...

#393 Re: Вопросы по скриптингу » Один вопрос » 31-03-2010 17:20

Может повреждённый. Может что-то в настройках санника не то. Лучше всего - поищи стандартный мэин (там не только мэин.скм, а ещё какой-то файл с таким же названием, но другим расширением, в нём может быть вся проблема).

#394 Re: Вопросы по скриптингу » Зародилась идея » 31-03-2010 17:17

3Doomer wrote:

это уже давно искали.
зарыто в DFF-ке и ЕХЕ, как и прочие 2dfx эффекты(дым, свет и т. д.)

забудьте

Да да, уже обсуждали в теме "Один вопрос" (именно, кстати, мой вопрос и был).
Но неужели до сих пор не разрыли? На том же гтафорумсе, например.

#395 Re: Вопросы по скриптингу » Пути пешеходов скриптом! » 28-03-2010 20:50

~AquaZ~ wrote:

Не прорисовывалось ничего. Двигал мышью, до этого догадался. А что было с форумом?

Какую версию используешь? Небось 0.32?
В ней никогда (по крайней мере у меня) ничего не прорисовывалось нормально. Используй старую, 0.21 версию.:crazy:

#396 Re: Вопросы по скриптингу » Один вопрос » 28-03-2010 09:19

mfisto wrote:

@Sw[ee]t

Обычно это делается путем переменной какой нибудь, например, так делает R* в своем скрипте, просто ставишь после завершения миссии $Check_miss = 1, а в главном теле проверяешь, если она равна единице и миссия завершена (не забывай про следующее:

0180: set_on_mission_flag_to $ONMISSION // Note: your missions have to use the variable defined here

), то начинаем другую миссию. В принципе рабочая схема.

Спасибо. Посмотрю что можно с этим сделать

#397 Re: Sanny Builder и CLEO » CLEO для GTA III » 28-03-2010 09:16

GTASA wrote:

В gta 2 скрипты другие и принцип не тот.

Ты их лично рассматривал? Там даже декомпилятор не нужен.

#398 Re: Справочная информация » Основы скриптинга » 27-03-2010 17:52

~AquaZ~ wrote:

Молодец, отличная тема для новичков!

Спасибо grin
У меня есть так же английская версия, если что её тоже могу кинуть в Forum for English-speaking users.

#399 Re: Вопросы по скриптингу » Один вопрос » 27-03-2010 12:10

Я тоже об этом подумал сначала, но не знаю как лучше оформить переходы. В моём случае, будет далеко не две миссии, но идти они должны одна за другой.

#400 Справочная информация » Основы скриптинга » 27-03-2010 11:45

Sw[ee]t
Replies: 3

Тему выложил чисто ради эксперимента для людей которые пишут в "Один вопрос" такие вопросы, ответы на которые можно найти где угодно или тем кому лень читать мануал Sanny Builderа. Если тема вам чем-то не нравится, напишите об этом прямо.
Внимание! Используется оригинальный текст написанный мною от руки, за всеми исправлениями и прочим пишем в эту тему.

В этом учебнике я постараюсь рассказать обо всём что знаю. Всё что нужно для этого: Sanny Builder (далее просто SB) последней версии, оригинальная игра Grand Theft Auto San Andreas (её мы будем "разрезать"), ну и собственно желание.

[large]1. Потоки и метки[/large]
Потоком, в нашем случае, мы будем называть определённый блок с командами (опкодами) которые компилятор в последствии скомпилирует на понятный игре язык.
Простой пример потока это его создание и завершение. Смотрим ниже.

:TEST // имя нашего потока. оно может быть любым и даже содержать цифры.
wait 0 ms // кейворд wait - ожидание в 0 милисекунд.
end_thread // конец потока.
:TEST
wait 0 ms
jump @TEST_1092 // новый кейворд jump, является сигналом для перехода на указанную после @ метку

:TEST_1092
wait 0 ms
end_thread

Можете спросить, почему я каждый раз ставлю "wait 0 ms". По сути, это является правилом хорошего тона, да и так будет надёжнее.

Теперь давайте я объясню. В первом варианте, мы просто создали поток и завершили его. Во втором варианте, создали поток с ссылкой на другую метку и перешли на неё, во втором потоке просто поставили его завершение.

[large]2. Переменные - локальные и глобальные[/large]
Теперь, когда вы обладаете навыками по созданию, переходу и завершению потоков переходим к главной теме скриптинга - переменные.
Для чего-же существуют переменные и какую погоду они делают в вашем скрипте? Можно сказать основное - переменные служат для хранения в них информации. Всего их может быть создано 32 (плюс 2 таймера или 1024 если в миссии) локальных и (вроде) бесконечное число глобальных. Глобальные переменные можно так же использовать в качестве массива.
То есть:

var // кейворд который по смыслу можно перевести как "пусть"
$tempVAR : Array 5 of Integer // назначаем глобальной переменной $tempVAR массив типа Integer (Целочисленное) с пятью индексами.
end // конец кейворда "пусть"

Будет верным заметить, что существуют предопределённые переменные. Это значит что они уже (с момента старта игры) содержат в себе какие-то значения и менять их содержимое будет не самым верным шагом.
Примеры предопределённых переменных: $PLAYER_ACTOR, $PLAYER_CHAR (обозначение игрока)
Пример всего вышеперечисленного:

:TEST
wait 0 ms
15@ = 0 // присваиваем локальной переменной 15 значение 0
$CARS = 1352 // глобальной переменной CARS присвоили значение в 1352
$CARS[0] = 325 // в индекс массива глобальной переменной CARS (любой индекс начинается с нуля) 0, записали значение 325
end_thread

[large]3. Условия[/large]
Ещё одна, не менее важная тема. Умея умело манипулировать условиями можно добиться многого. В мини-таблице ниже идут перечисления "условий" и их объяснение.

if ... then ... end- если "..." тогда "..." конец
if and ... then ... end- ... то же самое, но для массовых проверок
while <условие> ... end - пока <условие> не правда, делай "..."
repeat ... until <условие> - делай "..." до тех пор пока <условие> не вернёт результат true (правда)

1) Пример для условия "if"

if
    $tempVAR = 5
then
Inc($tempVAR) // данный кейворд служит для увеличения переменной в скобках на 1.
end

2) Пример для условия "if and"

if and
     $tempVAR = 5
     $tempVAR = 4
then
Dec($tempVAR) // аналог кейворда Inc, но здесь идёт уменьшение на 1.

3) Пример для условия "while"

while $tempVAR == 5 // заметьте, присваивание переменной значения делается одним знаком равно, а проверка значения двумя.
Dec($tempVAR)
end

4) Пример для условия "repeat until"

repeat
Inc($tempVAR)
until $tempVAR == 2

Немного об кейворде "var"

var
     19@ : Integer // пустой переменной 19 присваивается тип Integer (Целочисленное)
     $PLAYER_CHAR: Player // помните, я говорил о том что некоторые переменные не изменяют своих значений. это одна из них. данная переменная содержит класс "Игрок". о том что такое класс и с чем его едят, поговорим прямо сейчас
end

[large]4. Классы[/large]
Класс в SB, это опкод записанный в виде кейворда-массива. В предыдущем примере, вы могли видеть присвоение переменной PLAYER_CHAR класс Player (Игрок по-русски). Всего классов порядка девяти, вот они (в алфавитном порядке):
A
Actor
C
Car
Camera
G
Garage
M
Marker
Model
O
Object
P
Pickup
Player

Без примера никак smile

:TEST
wait 0 ms
if
    Player.Defined($PLAYER_CHAR)
then
8@ = 1
if
    8@ == 1
jf @TEST
end_thread

В данном примере мы проверили "существует-ли игрок". Если это так, то присвоили переменной 8 значение в 1. Затем проверили, равно-ли значение переменной 8 единице. Если нет, переходим в самое начало потока, а если да то завершаем поток успехом и аплодисментами.

[large]5. Gosub - безусловный переход[/large]
Время для последней главы. Мы уже ознакомились со всеми базовыми понятиями SB и время последней темы - gosub.
Gosub является безусловным переходом на указанную метку с последующим возвратом на поток-родитель. Если проще, то смотрите пример:

:ONE
gosub @_Check // переход на метку _Check (ставить "_" ,не обязательно)
if
    $tempVAR == 150
then
Dec($tempVAR)
end
end_thread

:_Check
$tempVAR = 150
return // возвращение на последнее слово "gosub"

В данном примере мы сразу-же после старта перешли на метку-инициализацию (gosub очень хорошо подходит для инициализации каких-то данных или чтения параметров из файла с его последующим присвоением переменным и константам) в которой присвоили переменной tempVAR значение в 150 и сразу же вернулись в начало первой метки. Там нас встретила проверка "равно-ли значение tempVAR 150? Если это правда, то значение переменной уменьшается на единицу.

Собственно это всё о чём я успел рассказать. Следует заметить, что эта тема - основа основ для базовых понятий о скриптинге. Никаких мелочей, чисто по делу. В общем, оцениваем, учимся.

Board footer

Powered by FluxBB