You are not logged in.
I have a answer,
what for this opcode needs?
It such like just disable radio. About that must be a memory address...
Качай crack для своего патча. Сто раз говорили что не поддерживается версия от 1С
Катсцена - просто набор анимаций? В чём смысл, если можно их в скрипте написать?
Катсцена - одна длинная анимация. На сайте йелми, он же, подробно описал как создавать катсцену.
Sanchez, не у всех есть клео 4.
Зато у всех есть руки, что бы этот клео4 скачать? Или лень перевешивает?
On the first about "send actor far away but he's falls" try to use render opcode 04E4.
Можно отнести PDF в какой-нить салон печати, где не только распечатают в книжном формате, но и переплетут. По цене, думаю, получится одинаково.
О, вот это может подойти. Спасибо!
UPDATE:
Кто-нибудь может расписать про доп. операнды ассемблера. Типа jz, shr, test и т.д.
Легко сказать. Есть несколько причин:
1. Полностью нет краски для печати (а рисунков там полно)
2. Там не много ни мало 320 страниц!
У меня просто не хватит терпения и бумаги. Поэтому и спросил про печатную версию.
Нашёл PDF версию некой книжечки по ассемблеру некого Рудольфа Марека. Нет-ли её где-нибудь в печатном виде? А то очень занятно, но читать не удобно.
У меня промелькнула маленькая мыслишка, может глупая, но всё же.
Берём поезд (либо создаём), задаём куда-нить ехать и через метров 100 ставим максимальную скорость. По-идее он должен разогнаться так, что просто слетит с рельс (делать это лучше перед поворотами, которых на ж/д сан андреаса довольно много). Правда я немного не уверен в этой теории, так как над физикой сани можно только строить догадки и гипотезы:rolleyes:.
What a mods or scripts do u have?
Мне тоже интересно!
___
Как сделать на тачке ментовскую "графику" и мигалку? Желательно без конвертации в Макс и обратно, хотя второе без этого наверно не обойдётся...
__
Как "отучить" SAUpDownLights проверять версию игры? У меня облегчённая пропатченая, а он хочет 1.0.
Ответ 1: Заменой текстур. Причём мигалку просто так не поставишь - работать не будет. Если память мне не изменяет, за каждой машиной по мимо её модели и id закреплена группа к которой она относится. И для каждой группы свои свойства транспорта.
Ответ 2: Может просто удовлетворить потребность данного мода - поставить версию 1.0?
: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'.
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.
I will give an idea: Parachute car.
Лучше дайте, пожалуйста, ссылки на gta3 рус или англ, главное, чтобы второй диск не просило. Извините за флуд.
Ну вряд-ли кто-то будет постить ссылки на варез (об этом уже упоминалось ранее).
Как может работать эта проверка на смерть - если актер даже не создан (он создаеться ниже проверки)
и что это за актер? Я так понял это и есть те последующие актеры.
А актеры 12 - 13 - 14 - 15 --- создаються только в первом ?
Идёт обыкновенная проверка переменной. Если у переменной значение нуль - возвращается false и идёт переход на метку 'AK_581'. Если я не так понял - скажи.
Nice! Is it your first work?
Put actors into array?
About xyz on map cursor - it could be somewhere in memory...
Может повреждённый. Может что-то в настройках санника не то. Лучше всего - поищи стандартный мэин (там не только мэин.скм, а ещё какой-то файл с таким же названием, но другим расширением, в нём может быть вся проблема).
это уже давно искали.
зарыто в DFF-ке и ЕХЕ, как и прочие 2dfx эффекты(дым, свет и т. д.)забудьте
Да да, уже обсуждали в теме "Один вопрос" (именно, кстати, мой вопрос и был).
Но неужели до сих пор не разрыли? На том же гтафорумсе, например.
Не прорисовывалось ничего. Двигал мышью, до этого догадался. А что было с форумом?
Какую версию используешь? Небось 0.32?
В ней никогда (по крайней мере у меня) ничего не прорисовывалось нормально. Используй старую, 0.21 версию.:crazy:
@Sw[ee]t
Обычно это делается путем переменной какой нибудь, например, так делает R* в своем скрипте, просто ставишь после завершения миссии $Check_miss = 1, а в главном теле проверяешь, если она равна единице и миссия завершена (не забывай про следующее:
0180: set_on_mission_flag_to $ONMISSION // Note: your missions have to use the variable defined here), то начинаем другую миссию. В принципе рабочая схема.
Спасибо. Посмотрю что можно с этим сделать
В gta 2 скрипты другие и принцип не тот.
Ты их лично рассматривал? Там даже декомпилятор не нужен.
Молодец, отличная тема для новичков!
Спасибо 
У меня есть так же английская версия, если что её тоже могу кинуть в Forum for English-speaking users.
Я тоже об этом подумал сначала, но не знаю как лучше оформить переходы. В моём случае, будет далеко не две миссии, но идти они должны одна за другой.
Тему выложил чисто ради эксперимента для людей которые пишут в "Один вопрос" такие вопросы, ответы на которые можно найти где угодно или тем кому лень читать мануал 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.
end2) Пример для условия "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
Без примера никак 
: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? Если это правда, то значение переменной уменьшается на единицу.
Собственно это всё о чём я успел рассказать. Следует заметить, что эта тема - основа основ для базовых понятий о скриптинге. Никаких мелочей, чисто по делу. В общем, оцениваем, учимся.