#1 03-02-2007 12:44

svetka
Registered: 29-12-2006
Posts: 222

Один вопрос

Создала эту тему для единичных вопросов, ради которых не имеет смысла создавать отдельных тем.
Вот мой вопрос.
Есть скрипт расхода бензина. Он состоит из двух thread-ов: контроля за расходом топлива, и части посвященной бензозаправкам.
Можно ли этот скрипт (весь или одну из частей) внести в мейн как экстернальный? Просто он места много занимает.

Last edited by svetka (03-02-2007 12:45)

Offline

#2 03-02-2007 13:01

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: Один вопрос

Можно. Нужно проверять, если игрок в машине, затем проверить загружен ли скрипт, если нет - загрузить его и активировать (init). Хендл машины (переменную) можно передать в скрипт через опкод 0913, а в самом скрипте использовать переменную 0@ (хотя можно и как обычно).

Offline

#3 04-02-2007 00:17

Capushon
Registered: 13-08-2006
Posts: 352
Website

Re: Один вопрос

2Seemann:

сдал

Поздравляю!  wink


Сначала ты надежда и гордость,
Потом о спину ломают аршин. (c)БГ

Offline

#4 06-02-2007 09:17

svetka
Registered: 29-12-2006
Posts: 222

Re: Один вопрос

Seemann, помню ты где-то рассказывал как вставлять через мейн свой текст в игру, но вот что не помню где.
Подскажи, пожалуйста, как это сделать или дай ссылку. smile

Offline

#6 09-02-2007 10:36

svetka
Registered: 29-12-2006
Posts: 222

Re: Один вопрос

У меня есть магазин по скупке автомобилей. Если возможно, то как сделать так, чтобы каждый раз мне за авто платили разные суммы, но не меньше $1000? Или просто разные. smile

Offline

#7 09-02-2007 10:46

Sanchez
Registered: 18-08-2006
Posts: 280

Re: Один вопрос

svetka wrote:

У меня есть магазин по скупке автомобилей. Если возможно, то как сделать так, чтобы каждый раз мне за авто платили разные суммы, но не меньше $1000? Или просто разные.

0099: $8224 = random_integer_0-to-65535
0208: 17@ = random_float -0.2 0.2001
0209: 17@ = random_int 0 10

Или надо что-то другое?

Last edited by Sanchez (09-02-2007 10:47)

Offline

#8 09-02-2007 10:58

svetka
Registered: 29-12-2006
Posts: 222

Re: Один вопрос

Честно говоря не знаю, но попробую разобраться. А пока мне за каждую (любую) машину платят одну и ту же сумму (за то, что я ее пригнала).

Offline

#9 09-02-2007 11:04

Sanchez
Registered: 18-08-2006
Posts: 280

Re: Один вопрос

Честно говоря не знаю, но попробую разобраться. А пока мне за каждую (любую) машину платят одну и ту же сумму (за то, что я ее пригнала).

Приведи часть кода, где деньги платят.

Offline

#10 09-02-2007 11:16

svetka
Registered: 29-12-2006
Posts: 222

Re: Один вопрос

Вот:

wait 2000
0615: define_action_sequences 6@
05B9: unknown_action_sequence -1 1000
05D1: AS_actor -1 drive_car 0@ to 1643.425 -1512.051 13.55889 speed 7.0 0 0 3
0633: AS_actor -1 exit_vehicle
0616: define_action_sequences_end 6@
0618: assign_actor $PLAYER_ACTOR to_action_sequences 6@
061B: remove_references_to_action_sequences 6@
062E: (unknown) $PLAYER_ACTOR 1560 7@
wait 3000
Garage.Close('MUL_LAN')
wait 500
fade 0 500
wait 500
03E6: remove_text_box
fade 1 500
0362: remove_actor $PLAYER_ACTOR from_car_and_place_at 1643.525 -1525.051 13.49873
1@ = Car.Model(0@)
3@ = Car.Health(0@)
Car.Destroy(0@)
Car.RemoveReferences(0@)
Player.CanMove($PLAYER_CHAR) = True
Camera.SetBehindPlayer
Camera.Restore_WithJumpCut
if
  $12498 >= 49 // integer values
jf @SNKCHP_970
jump @SNKCHP_1033

:SNKCHP_970
Player.Money($PLAYER_CHAR) += 1000
01E3: text_1number_styled 'IE30' 1000 5000 ms 1  // Earnings~N~~w~$~1~
Player.WantedLevel($PLAYER_CHAR) = 10@
10@ += 1 // integer values
$12498 += 1 // integer values
11@ = 0 // integer values
jump @SNKCHP_412

Last edited by svetka (09-02-2007 11:16)

Offline

#11 09-02-2007 11:23

Sanchez
Registered: 18-08-2006
Posts: 280

Re: Один вопрос

Так можно ?

:SNKCHP_970
0209: $money = random_int 1000 2000
Player.Money($PLAYER_CHAR) += $money
01E3: text_1number_styled 'IE30' 1000 5000 ms 1  // Earnings~N~~w~$~1~

Offline

#12 09-02-2007 11:46

svetka
Registered: 29-12-2006
Posts: 222

Re: Один вопрос

О, да! Sanchez, спасибо!

Offline

#13 11-02-2007 09:07

kostia
Registered: 05-01-2007
Posts: 17

Re: Один вопрос

Создала эту тему для единичных вопросов, ради которых не имеет смысла создавать отдельных тем.

Так вот ктонибуть, чтонибуть нашёл нашёт Скейтборда.

Offline

#14 11-02-2007 09:08

kostia
Registered: 05-01-2007
Posts: 17

Re: Один вопрос

тоесть в игровой памети gtasa.exe

Offline

#15 19-02-2007 21:49

NEMESIS.kt
Registered: 19-02-2007
Posts: 17

Re: Один вопрос

Seemann как ты узнаёшь что 0@ = 362041 где 362041 адрес отвечает за цвет звёзд или адрес 304476 за клавишу End и Page Up?

например можешь найти адрес (чит) пополнения здоровья и как его активировать,
активировать этой командой &0(0@,1i) = 0xFF0000FF ?  а что писать заместо 0xFF0000FF ?

Last edited by NEMESIS.kt (19-02-2007 23:55)

Offline

#16 20-02-2007 08:38

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: Один вопрос

2NEMESIS.kt:
Значения локальных переменных - это указатель на адрес памяти, подробнее читай в моей статье "Меняем игровую память через SCM" в хелпе к билдеру или здесь.
Адреса памяти находятся путем исследования gta_sa.exe. Ты тоже можешь, для этого тебе понадобится любой дизассемблер/отладчик, начиная с простых OllyDbg и W32Dasm и заканчивая мощными IDA 5 и SoftIce.

Насчет активации читов смотри эту тему
http://www.sannybuilder.com/forums/viewtopic.php?id=24

Там как раз есть возможность активировать в цикле любой чит при нажатии кнопки Действие.

Offline

#17 20-02-2007 13:27

NEMESIS.kt
Registered: 19-02-2007
Posts: 17

Re: Один вопрос

а где мне скачать дизассемблер? начиная с простого.

Offline

#18 20-02-2007 14:06

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: Один вопрос

А гугл и яндекс уже не работают?

Offline

#19 20-02-2007 16:22

NEMESIS.kt
Registered: 19-02-2007
Posts: 17

Re: Один вопрос

дак какой именно дизассамблер нужен? их там стоко всякие разные

Offline

#20 20-02-2007 20:38

flacs
Registered: 17-01-2007
Posts: 16

Re: Один вопрос

svetka wrote:

А пока мне за каждую (любую) машину платят одну и ту же сумму (за то, что я ее пригнала).

А зачем тебе изп. случайные цены?
А ты запиши в перемнную сколько стоит определенная машина по умолчанию опкодом:

09E1: get_vehicle_model $car monetary_value $car_money

Offline

#21 21-02-2007 13:01

Alexander
Registered: 19-08-2006
Posts: 184
Website

Re: Один вопрос

NEMESIS.kt : я пользуюсь IDA , Seemann тоже ей , поэтому качай её .

Offline

#22 21-02-2007 16:45

flashTrash
From: Н.Новгород
Registered: 21-02-2007
Posts: 260
Website

Re: Один вопрос

так как я после долгого перерыва в скриптинге снова взялся за него, то решил перейти с SAMB на Sanny Builder. я пользовался вот этим методм http://missions.gtamaps.net/readarticle … cle_id=138 чтоб продолжать игру с сейва с новым скриптом, а не начинать каждый раз новую. попытался я использовать этот способ в Сани Билдере, сделал как написано(с поправками на СБ) - попробовал вставить скрипт спидометра(естественно переписал его на "диалект" СБ), загружаю игру - вылет. написал маленький скрипт с обращением к памяти - работает... такое ощущение, что "длинные" скрипты не работают со способом выше по ссылке... в SAMB проблема решалась с помощью deffine memory, в самом начале мэйна, а в Санни Билдере - я define memory не нашел....

вобщем можно ли как то в СБ сделать так, чтоб не начинать каждый раз новую игру? а то уж очень не хочется возвращаться к SAMB..

надеюсь не очень заумно\занудно всё написал...

Offline

#23 21-02-2007 18:29

Alexander
Registered: 19-08-2006
Posts: 184
Website

Re: Один вопрос

Просто:
1) скрипт не качественно переведён под СБ
2) почитай комменты к той статье , изменения можно делать только минорные и чтобы ещё сейв старый грузился

Last edited by Alexander (21-02-2007 18:30)

Offline

#24 21-02-2007 18:49

flashTrash
From: Н.Новгород
Registered: 21-02-2007
Posts: 260
Website

Re: Один вопрос

Alexander wrote:

Просто:
1) скрипт не качественно переведён под СБ

возможно, но я переводил вручную несколько раз.

Alexander wrote:

Просто:
2) почитай комменты к той статье , изменения можно делать только минорные и чтобы ещё сейв старый грузился

не, почему же? я в SAMB много скриптов проворачивал этим способом. там когда пишет ошибку, что недостаточно define memory(а как известно если её увеличить, то сэйв не загрузится), то надо увеличить её(память), что бы скрипт скомпилировался удачно, а потом вернуть старое значение define memory и снова откомпилировать. САМБ естествено выдаст ошибку о недостачи памяти, но скрипт будет работать с сэйвами. можно сказать это моё ноу-хау.... будет очень обидно, если в Сани Билдере нельзя так хитро сделать(или еще как нибудь)...

Last edited by flashTrash (21-02-2007 18:51)

Offline

#25 22-02-2007 09:59

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: Один вопрос

2flashTrash:
Define memory в Mission Builder'е не имеет никакого отношения к совместимости сейвов, обычным его редактированием ты не добьешься, чтобы сейвы работали.

Насчет этой технологии (Darkpact) скажу, что на гтафорумс публиковали специальную его версию под SB. Посмотри здесь
http://www.gtaforums.com/index.php?show … &p=3881003

Offline

Board footer

Powered by FluxBB