#1 19-04-2007 21:42

Anubix
From: Одесса
Registered: 10-04-2007
Posts: 15
Website

Скриптинг для чайников

Господа.
Я все таки решил начать постепенно практиковаться в скриптинге.
Но для начала я выбрал GTA 3, потом возьмусь за GTA:VC и потом уже перейду на GTA:SA.
Итак, начнем...
Я решил дать Клоду доступ на все три острова ЛС с самого начала игры, но при этом не трогать сюжет. Т.е. мост Калахан Бридж я не трогаю, только открываю подземку и подземные туннели между островами.
Подземку с туннелями я открыл, но появилась проблема: мост между Стаунтоном и Шорсайд Вэйл не работает. Поднимающийся сектор висит в воздухе и не опускается.

Я думал, что проблема во флаге:
FLAG_SHORESIDE_OPEN = 0/1,
но ставя его в начале первой миссии на "1" не помогает.

В чем моя ошибка?
Где указывается этот сектор моста?

Координаты искомого сектора:
bridge_liftsec     -283.159 -629.847 74.7116

З.Ы.
Буду благодарен за любую подсказку. smile

Offline

#2 20-04-2007 07:38

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

Re: Скриптинг для чайников

034B: staunton_complete

Offline

#3 20-04-2007 10:46

Anubix
From: Одесса
Registered: 10-04-2007
Posts: 15
Website

Re: Скриптинг для чайников

to Seemann:
Спасибо. smile

Господа, еще один вопрос.
На этом же форуме я нашел скрипт ограничения скорости для GTA:SA.
Вот, решил его переделать под GTA3, но опять столкнулся с проблемой... sad

Сам скрипт:

:ogranichitel
wait 5000
:ogranichitel_2    
wait 0 
if
00E1:   key_pressed 0 11 
jf @ogranichitel_2
:ogranichitel_3
wait 0
if
player.Defined($PLAYER_CHAR)
jf @ogranichitel_3
if
 Actor.Driving($PLAYER_ACTOR)
jf @ogranichitel_3
03C0: 1@ = actor $PLAYER_ACTOR car 
02E3: 2@ = vehicle 1@ speed   
if
2@ > 29.0
jf @ogranichitel_3
Car.SetSpeedInstantly(1@, 30.0)
car.RemoveReferences(1@)
if
00E1:   key_pressed 0 10 
jf @ogranichitel_3
jump @ogranichitel_2

Я поискал в мэйне GTA3 эти команды и коды и получилось вот что:

create_thread_wb @ogranichitel

:ogranichitel
0001: wait 5000 ms 
:ogranichitel_2
0001: wait 0 ms 
00D6: if 
00E1:   key_pressed 0 11
004D: jump_if_false @ogranichitel_2 
:ogranichitel_3
0001: wait 0 ms 
00D6: if
0256:   player $PLAYER_CHAR defined 
004D: jump_if_false @ogranichitel_3 
00D6: if 
00E0:   player $PLAYER_CHAR driving 
004D: jump_if_false @ogranichitel_3 
03C1: 1@ = player $PLAYER_CHAR car 
02E3: 2@ = car 1@ speed 
00D6: if 
0019:   2@ > 29 
004D: jump_if_false @ogranichitel_3 
?   ?   ?   ?   ?
?   ?   ?   ?   ?
00D6: if
00E1:   key_pressed 0 10
004D: jump_if_false @ogranichitel_3 
0002: jump @ogranichitel_2
create_thread_wb @ogranichitel

Я не смог найти опкоды и команды двух строк:
Car.SetSpeedInstantly(1@, 30.0)
car.RemoveReferences(1@)
Подскажите, плиз, какие данные необходимо подставить.

З.Ы.
Я также не нашел jf и подставил вместо него "jump_if_false". Я правильно поступил? smile

Offline

#4 20-04-2007 10:49

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

Re: Скриптинг для чайников

Car.SetSpeedInstantly(1@, 30.0)

02db=2,set_boat %1d% speed_to %2d%

car.RemoveReferences(1@)

01c3=1,remove_references_to_car %1d%  // Like turning a car into any random car

Я также не нашел jf и подставил вместо него "jump_if_false". Я правильно поступил?

да

Offline

#5 20-04-2007 13:21

Anubix
From: Одесса
Registered: 10-04-2007
Posts: 15
Website

Re: Скриптинг для чайников

to Seemann:
Спасибо за помощь. smile

Не хочу казаться наглым, но есть еще один скрипт, с которым у меня проблемы. Причем глобальные.
Это штраф за превышение скорости:

:SpeedLimitFine
while true
  wait 0 
  if Player.Defined($PLAYER_CHAR)
  then
    if Actor.Driving($PLAYER_ACTOR)
    then
      03C0: 0@ = actor $PLAYER_ACTOR car  
      02E3: 1@ = vehicle 0@ speed   
      080E: store_actor $PLAYER_ACTOR present_ped_event_to 2@
      if and
        2@ == 72
        1@ > 30.0 // SPEED LIMIT   
      then
        if 0154: actor $PLAYER_ACTOR in_zone 'SAN_AND' 
        then     
          Player.SetMinWantedLevel($PLAYER_CHAR, 2)
        end
      end 
    end
  end
end // while

Не нашел ни while, ни then, ни WantedLevel...

Нашел только:

0256:   player $PLAYER_CHAR defined
00E0:   player $PLAYER_CHAR driving
03C1: 0@ = player $PLAYER_CHAR car 
02E3: 1@ = car 1@ speed

to Seemann:
У меня громаднейшая просьба. Я пойму, если ты не станешь за меня делать весь скрипт (если станешь, то заранее огромное спасибо). Мне хотя бы инфу, которая мне поможет понять суть данного кода и переделать под GTA 3.

З.Ы.
Буду благодарен, если кто-нибудь даст линк на учебник или справочник по скриптингу GTA3 и GTA:VC (не GTA:SA).

Last edited by Anubix (20-04-2007 13:35)

Offline

#6 22-04-2007 10:21

Sanchez
Registered: 18-08-2006
Posts: 280

Re: Скриптинг для чайников

Но для начала я выбрал GTA 3, потом возьмусь за GTA:VC и потом уже перейду на GTA:SA.

Страно, зачем такой долгий путь бери зразу СА.

Мне хотя бы инфу, которая мне поможет понять суть данного кода и переделать под GTA 3.

080E: store_actor $PLAYER_ACTOR present_ped_event_to 2@

Здесь в переменную 2@ заносится событие связанное с актером $PLAYER_ACTOR.

2@ == 72

Здесь сравнивается это событие с опр. номером 72 (72 - номер события, когда игрок видит копа или копы видят игрока).
Так вот в gta3 этого нет, вроде бы.

Не нашел ни while, ни then,

В декомпиленном коде ты этого и не увидишь wink

ни WantedLevel...

В SB для GTA3 нет поддержки классов, используй опкоды:

010D: set_player $PLAYER_CHAR wanted_level_to $1149 
010E: set_player $PLAYER_CHAR minimum_wanted_level_to 1 
010F:   player $PLAYER_CHAR wanted_level > 0 
0110: clear_player $PLAYER_CHAR wanted_level 
01C0: $1149 = player $PLAYER_CHAR wanted_level 
01F0: set_max_wanted_level_to 4

Offline

#7 22-04-2007 10:38

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

Re: Скриптинг для чайников

Буду благодарен, если кто-нибудь даст линк на учебник или справочник по скриптингу GTA3 и GTA:VC (не GTA:SA).

погляди это http://gtacoding.nm.ru/mb/faq/

Offline

#8 23-04-2007 08:10

Anubix
From: Одесса
Registered: 10-04-2007
Posts: 15
Website

Re: Скриптинг для чайников

Если бы добавить ограничение скорости, штраф за превышение, штраф за столкновение (ДТП), спидометр (просто цифрой) и полосу здоровья машины, игра преобразиться только в лучшую сторону. ИМХО. smile

Здесь сравнивается это событие с опр. номером 72 (72 - номер события, когда игрок видит копа или копы видят игрока).
Так вот в gta3 этого нет, вроде бы.

Значит штраф за превышение скорости и ДТП переносятся на GTA:VC. smile Кстати, а как для GTA:VC аналог этого события есть?
За список опкодов с "wanted_level" спасибо. smile

to Seemann:

погляди это http://gtacoding.nm.ru/mb/faq/

Спасибо. smile

to all:
Никак не могу запустить скрипт ограничения скорости.
Благодаря Seemann'у я смог прийти к сл. коду:

create_thread @ogranichitel

:ogranichitel
0001: wait 5000 ms 
:ogranichitel_2
0001: wait 0 ms 
00D6: if 
00E1:   key_pressed 0 10
004D: jump_if_false @ogranichitel_2 
:ogranichitel_3
0001: wait 0 ms 
00D6: if
0256:   player $PLAYER_CHAR defined 
004D: jump_if_false @ogranichitel_3 
00D6: if 
00E0:   player $PLAYER_CHAR driving 
004D: jump_if_false @ogranichitel_3 
03C1: 1@ = player $PLAYER_CHAR car 
02E3: 2@ = car 1@ speed 
00D6: if 
0019:   2@ > 29 
004D: jump_if_false @ogranichitel_3 
02db: set_car 1@ speed_to 30
01c3: remove_references_to_car 1@
00D6: if
00E1:   key_pressed 0 11
004D: jump_if_false @ogranichitel_3 
0002: jump @ogranichitel_2
004E: end_thread

Дляначала оставил клавиши "10" и "11" (влево и вправо). Как только заработает, можно будет поменять клавиши.
Никак не получается найти ошибку. Пробовал менять 1@ и 2@ на $1 и $2, пробовал подставить вместо "02db: set_car 1@ speed_to 30" код "00AD: set_car 1@ max_speed_to 30.0"...
Скажите, плиз, в чем моя ошибка.

З.Ы.
Можно ли проверить не нажатие клавиши (напр. "00E1: key_pressed 0 10"), а зажатие клавиши на (допустим) 3 секунды?

З.З.Ы.
Еще раз спасибо за внимание и помощь.

Offline

#9 23-04-2007 10:37

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

Re: Скриптинг для чайников

Вместо 02DB используй 04BA: set_car 0@ speed_instantly 10.0, если ты делаешь для VC.
Вообще советую переходить на SA, там возможностей больше.

Кстати, а как для GTA:VC аналог этого события есть?

нет, события были введены только в SA.

Можно ли проверить не нажатие клавиши (напр. "00E1: key_pressed 0 10"), а зажатие клавиши на (допустим) 3 секунды?

самый простой способ

:loop
wait 0
if
00e1: 0 4
jf @loop
wait 3000
if
00e1: 0 4
jf @loop
// 3 sec

если делать по уму, надо использовать таймеры 16@ и 17@ (кажется в факе по МБ это было описано).

Offline

#10 23-04-2007 15:02

Anubix
From: Одесса
Registered: 10-04-2007
Posts: 15
Website

Re: Скриптинг для чайников

to Seemann:

Вообще советую переходить на SA, там возможностей больше.

Все таки хочу немного "улучшить" сначала Либерти Сити и Вайс Сити. smile

Спасибо за код проверки.
Кстати, в том ФАКе использование таймеров не показано. Раздел есть, но он пустой...

З.Ы.
to all:
Есть у кого-нибудь линк на оригинальный мэйн GTA:VC?

Offline

#11 24-04-2007 13:13

fedo
Registered: 24-04-2007
Posts: 25

Re: Скриптинг для чайников

как то раз говорил про бандитов - ну типа что кода прицеливаешься там у них появляется кольт 45 и они становятся в твоей банде

\GTA San Andreas\data\Decision

посмторите не то ли ?
подозрительные файлы с названиями GangMbr(я понял что ганг мембер)
и GROVE и скажите кто нить умеет их редактировать.
весь мейн облазал ничего не нашел искал раздачу кольта 45 и нажатие клавиши 8 то есть G и еще прицеливание)

Last edited by fedo (24-04-2007 13:14)

Offline

#12 24-04-2007 13:39

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

Re: Скриптинг для чайников

fedo wrote:

подозрительные файлы с названиями GangMbr(я понял что ганг мембер)
и GROVE и скажите кто нить умеет их редактировать.

почитай эту тему про decisions: http://www.sannybuilder.com/forums/viewtopic.php?id=44

весь мейн облазал ничего не нашел искал раздачу кольта 45 и нажатие клавиши 8 то есть G и еще прицеливание)

gta_sa.exe

2Anubix:
вот еще неплохой фак. Я начинал с него smile
http://forums.ag.ru/?board=gta&action=d … 1057863893

Там и про таймеры было. Посмотри еще в скм использование переменных 16@ и 17@. Они сначала обнуляются, а потом в цикле проверяются на достижение нужного времени в мс (16@ > 3000)

Offline

#13 24-04-2007 13:44

fedo
Registered: 24-04-2007
Posts: 25

Re: Скриптинг для чайников

спасибо то есть встроено в EXE . никак практически не отредактировать наверно,
а можно создать такой скрипт? ответ напишешь пожалуста в той теме про уникальное поведение - а то оффтоплю я .

Offline

#14 24-04-2007 14:31

Anubix
From: Одесса
Registered: 10-04-2007
Posts: 15
Website

Re: Скриптинг для чайников

Спасибо за линки и советы. smile

З.Ы.
Еще раз напоминаю про свою просьбу насчет оригинального (или любого другого, который комплируется/декомпилируется СанниБилдером и МишнБилдером) мэйна для GTA:VC. smile
Заранее сенкс. smile

Offline

#15 03-05-2007 12:50

Tector
Registered: 01-05-2007
Posts: 34

Re: Скриптинг для чайников

Вот "чистый" main.scm для GTA:Vice City
http://www.ifolder.ru/1886323

Offline

#16 03-05-2007 15:04

Anubix
From: Одесса
Registered: 10-04-2007
Posts: 15
Website

Re: Скриптинг для чайников

Спасибо. smile

Offline

#17 17-07-2007 21:48

fedo
Registered: 24-04-2007
Posts: 25

Re: Скриптинг для чайников

кароче у меня вопрос к опытным скриптерам - возможно он вас заинтересует - вообщем вам надеюсь всем изветна модель чувака male 01 это чувак такой нигер в ждинсовой курточке он еще на повторах заменяет спец педов , так вот иногда на улицах лос сантоса (в основном )
можно встретить что бандиты BALLAS и FAMILES вытаскивают из машины таких чуваков и начинаю мочить , они же не одеты как бандиты - зачем они это делают и ни как ли не связано это с вот таким приемом рокстара
076C: set_zone 'IWD3A' gang 1 density_to 0
076C: set_zone 'IWD3A' gang 0 density_to 100
076C: set_zone 'IWD3B' gang 1 density_to 0
076C: set_zone 'IWD3B' gang 0 density_to 100
076C: set_zone 'IWD1' gang 1 density_to 0
076C: set_zone 'IWD1' gang 0 density_to 100
076C: set_zone 'IWD4' gang 1 density_to 0
076C: set_zone 'IWD4' gang 0 density_to 100
зачем они прописывали то что грув владеет с денсити 0
не для такого эффеткта?

Offline

#18 17-07-2007 22:11

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

Re: Скриптинг для чайников

fedo wrote:

кароче у меня вопрос...

Вероятно этим они задали полное отсутствие банды на територии. К педу male01 это никакого отношения не имеет.

Offline

#19 17-07-2007 22:21

fedo
Registered: 24-04-2007
Posts: 25

Re: Скриптинг для чайников

полное отсутсвие то есть они даже не захоядт на территорию - ну стараются по крайней мере , да скорее всего щас тестировал
40 поставил у Гантона и еще пол айдлвуда видел фамилисов (они прям на улицах стояли толпами), а если сделать так как они то туда заедет лишь одна машинка  ну просто по путям .
а еще подскажите мне вот такую вещь пожалуста
один хороший человек - его зовут serginio37 сказал что вот так
0226: $health = actor $PLAYER_ACTOR health
04F7: status_text $health type 1 line 1 GXT 'SPEED'
можно вывести на экран" линию жизни "
а можно ли вывести ее без надписи - тоесть нельзя ли сократить опкод или еще кто то мне говорил только не вспомнил что есть имя пустой GTX записи???

Last edited by fedo (17-07-2007 22:23)

Offline

#20 18-07-2007 09:39

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

Re: Скриптинг для чайников

fedo wrote:

...
а можно ли вывести ее без надписи - тоесть нельзя ли сократить опкод или еще кто то мне говорил только не вспомнил что есть имя пустой GTX записи???

Есть пустая GXT строка, DUMMY .

04F7: status_text $health type 1 line 1 GXT 'DUMMY'

Offline

#21 18-07-2007 15:45

fedo
Registered: 24-04-2007
Posts: 25

Re: Скриптинг для чайников

спасибо

Offline

#22 21-07-2007 20:42

fedo
Registered: 24-04-2007
Posts: 25

Re: Скриптинг для чайников

можно ли сделать так чтобы актер стрелял как коп держа кольт или глок (больше машет на 2-ой )
двумя руками

Offline

#23 21-07-2007 21:02

Tector
Registered: 01-05-2007
Posts: 34

Re: Скриптинг для чайников

Ну, если нужно чтобы это было постоянно -- то подобные характеристики вроде бы прописываются в Weapons.dat

Offline

#24 21-07-2007 21:14

fedo
Registered: 24-04-2007
Posts: 25

Re: Скриптинг для чайников

нет веапон дат не хотелось бы едактировать а так можно скопировать строку с коповским кольтом и встатвить в обычный - речь идет о уникальном актере

Offline

#25 21-07-2007 22:15

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

Re: Скриптинг для чайников

fedo wrote:

нет веапон дат не хотелось бы едактировать а так можно скопировать строку с коповским кольтом и встатвить в обычный - речь идет о уникальном актере

Типы оружия. Возможно не работают, не проверял.

01B2: give_actor $player_actor weapon 'ID#' ammo 50

0 - Unarmed
1 - Brass Knuckles
2 - Golf Club
3 - Night Stick
4 - Knife
5 - Baseball Bat
6 - Shovel
7 - Pool cue
8 - Katana
9 - Chainsaw
10 - Purple Dildo
11 - White Dildo
12 - Long White Dildo
13 - White Dildo 2
14 - Flowers
15 - Cane
16 - Grenades
17 - Tear Gas
18 - Molotovs
19 - Missile (crashes if you try to fire)
20 - Missile (crashes if you try to fire)
21 - Missile (crashes if you try to fire)
22 - Pistol
23 - Silenced Pistol
24 - Desert Eagle
25 - Shotgun
26 - Sawn Off Shotgun
27 - Combat Shotgun
28 - Micro Uzi (Mac 10)
29 - MP5
30 - AK47
31 - M4
32 - Tec9
33 - Rifle
34 - Sniper Rifle
35 - RPG
36 - Missile Launcher
37 - Flame Thrower
38 - Minigun
39 - Sachet Charges
40 - Detonator
41 - Spray Paint
42 - Fire Extinguisher
43 - Camera
44 - Nightvision Goggles
45 - Thermal Goggles
46 - Parachute
47 - Pistol (Unusable)(Unskilled animations)
48 - Silenced Pistol (Unusable)(Unskilled animations)
49 - Desert Eagle (Unusable)(Unskilled animations)
50 - Shotgun (Unusable)(Unskilled animations)
51 - Sawn Off Shotgun (Unusable)(Unskilled animations)
52 - Combat Shotgun (Unusable)(Unskilled animations)
53 - Micro Uzi (Mac 10)(Unusable)(Unskilled animations)
54 - MP5 (Unusable)(Unskilled animations)
55 - AK47 (Unusable)(Unskilled animations)
56 - M4 (Unusable)(Unskilled animations)
57 - Tec9 (Unusable)(Unskilled animations)
58 - Pistol (Unusable)(Hitman animations)
59 - Silenced Pistol (Unusable)(Hitman animations)
60 - Desert Eagle (Unusable)(Hitman animations)
61 - Shotgun (Unusable)(Hitman animations)
62 - Sawn Off Shotgun (Unusable)(Hitman animations)
63 - Combat Shotgun (Unusable)(Hitman animations)
64 - Micro Uzi (Mac 10)(Unusable)(Hitman animations)
65 - MP5 (Unusable)(Hitman animations)
66 - AK47 (Unusable)(Hitman animations)
67 - M4 (Unusable)(Hitman animations)
68 - Tec9 (Unusable)(Hitman animations)
69 - Pistol (Unusable)(Gangster animations)

Offline

Board footer

Powered by FluxBB