#1 23-05-2010 19:08

BullDogHEMI427
From: Рязань
Registered: 02-04-2009
Posts: 54

Система укрытий/Covers system v1

Даёт возможность ныкаться в укрытия, стрелять оттуда, возвращаться.
Управлние: подойти к стене, нажать Z - в укрытие, опять Z или клавишу движения - уйти ооттуда.
Прицел+Влево/вправо - выйти в соответствующем направлении для стрельбы, отпустить ПКМ - вернуться, можно просто пойти вперёд (главгерой возвращаться в укрытие не будет)

Не забываем добавить в архив gta3.img файл covers.ifp, идущий в аттаче

// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007

{$VERSION 3.1.0027}
{$CLEO .cs}

//-------------MAIN---------------
thread 'COVERSYS' 
04ED: load_animation "COVERS" 

:COVERSYS_29
wait 0 
if 
   Player.Defined($PLAYER_CHAR)
jf @COVERSYS_29 
if and
   not Actor.Driving($PLAYER_ACTOR)
   not Actor.Dead($PLAYER_ACTOR)
jf @COVERSYS_29 
if 
04EE:   animation "COVERS" loaded 
jf @COVERSYS_29 
if 
0AB0:   key_pressed 90 
jf @COVERSYS_29 
Actor.StorePos($PLAYER_ACTOR, 0@, 3@, 2@)
04C4: store_coords_to 4@ 1@ 2@ from_actor $PLAYER_ACTOR with_offset 0.02 1.0 0.0 
if 
86BD:   not no_obstacles_between 0@ 3@ 2@ and 4@ 1@ 2@ solid 1 car 1 actor 1 object 1 particle 0 
jf @COVERSYS_29 
0812: AS_actor $PLAYER_ACTOR perform_animation "COVER_IDLE" IFP_file "COVERS" 4.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1 // versionB 
wait 400 

:COVERSYS_235
wait 0 
04C4: store_coords_to 4@ 1@ 2@ from_actor $PLAYER_ACTOR with_offset 0.02 1.0 0.0 
Actor.StorePos($PLAYER_ACTOR, 0@, 3@, 2@)
if or
0AB0:   key_pressed 90 
06BD:   no_obstacles_between 0@ 3@ 2@ and 4@ 1@ 2@ solid 1 car 1 actor 0 object 1 particle 0 
jf @COVERSYS_380 
0812: AS_actor $PLAYER_ACTOR perform_animation "COVER_IDLE0" IFP_file "COVERS" 4.0 loopA 0 lockX 1 lockY 1 lockF 0 time 50 // versionB 
wait 300 
jump @COVERSYS_29 

:COVERSYS_380
wait 0 
0494: get_joystick 0 data_to 5@ 6@ 7@ 8@ 
if and
  5@ == 128 
00E1:   player 0 pressed_key 6 
jf @COVERSYS_717 
9@ = Actor.Angle($PLAYER_ACTOR)
0812: AS_actor $PLAYER_ACTOR perform_animation "COVER_STARTSHOOT_L" IFP_file "COVERS" 4.0 loopA 0 lockX 1 lockY 1 lockF 0 time -1 // versionB 
wait 400 

:COVERSYS_486
wait 0 
if 
80E1:   not player 0 pressed_key 6 
jf @COVERSYS_665 
Actor.Angle($PLAYER_ACTOR) = 9@
04C4: store_coords_to 10@ 11@ 12@ from_actor $PLAYER_ACTOR with_offset 0.06 0.045 -1.0 
Actor.PutAt($PLAYER_ACTOR, 10@, 11@, 12@)
0812: AS_actor $PLAYER_ACTOR perform_animation "COVER_STOPSHOOT_L" IFP_file "COVERS" 4.0 loopA 0 lockX 1 lockY 1 lockF 1 time -1 // versionB 
wait 380 
Actor.Angle($PLAYER_ACTOR) = 9@
0812: AS_actor $PLAYER_ACTOR perform_animation "COVER_IDLE" IFP_file "COVERS" 4.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1 // versionB 
jump @COVERSYS_235 

:COVERSYS_665
wait 0 
0494: get_joystick 0 data_to 5@ 6@ 7@ 8@ 
if or
   not 5@ == 0 
   not 6@ == 0 
jf @COVERSYS_486 
jump @COVERSYS_29 

:COVERSYS_717
wait 0 
0494: get_joystick 0 data_to 5@ 6@ 7@ 8@ 
if or
   not 5@ == 0 
   not 6@ == 0 
jf @COVERSYS_832 
if 
80E1:   not player 0 pressed_key 6 
jf @COVERSYS_832 
0812: AS_actor $PLAYER_ACTOR perform_animation "COVER_IDLE0" IFP_file "COVERS" 4.0 loopA 0 lockX 1 lockY 1 lockF 0 time 50 // versionB 
wait 300 
jump @COVERSYS_29 

:COVERSYS_832
wait 0 
0494: get_joystick 0 data_to 5@ 6@ 7@ 8@ 
if and
  5@ == -128 
00E1:   player 0 pressed_key 6 
jf @COVERSYS_235 
9@ = Actor.Angle($PLAYER_ACTOR)
0812: AS_actor $PLAYER_ACTOR perform_animation "COVER_STARTSHOOT_R" IFP_file "COVERS" 4.0 loopA 0 lockX 1 lockY 1 lockF 0 time -1 // versionB 
wait 430 

:COVERSYS_937
wait 0 
if 
80E1:   not player 0 pressed_key 6 
jf @COVERSYS_1116 
Actor.Angle($PLAYER_ACTOR) = 9@
04C4: store_coords_to 10@ 11@ 12@ from_actor $PLAYER_ACTOR with_offset -0.06 0.045 -1.0 
Actor.PutAt($PLAYER_ACTOR, 10@, 11@, 12@)
0812: AS_actor $PLAYER_ACTOR perform_animation "COVER_STOPSHOOT_R" IFP_file "COVERS" 4.0 loopA 0 lockX 1 lockY 1 lockF 1 time -1 // versionB 
wait 380 
Actor.Angle($PLAYER_ACTOR) = 9@
0812: AS_actor $PLAYER_ACTOR perform_animation "COVER_IDLE" IFP_file "COVERS" 4.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1 // versionB 
jump @COVERSYS_235 

:COVERSYS_1116
wait 0 
0494: get_joystick 0 data_to 5@ 6@ 7@ 8@ 
if or
   not 5@ == 0 
   not 6@ == 0 
jf @COVERSYS_937 
jump @COVERSYS_29

P.S. посреди открытого пространства главгерой на воздух опираться не будет

Last edited by BullDogHEMI427 (22-09-2010 10:10)


Also known as HemiG
It's cool to Hate. It's cool to be a bloody guitarist.
284487-39e63-35897154-h200.jpg

Offline

#2 23-05-2010 19:34

BullDogHEMI427
From: Рязань
Registered: 02-04-2009
Posts: 54

Re: Система укрытий/Covers system v1

Да, на большое расстояние между стеной и гг на первом скрине не обращайте внимание, он был снят в ещё недоделанной версии

Last edited by BullDogHEMI427 (31-08-2010 14:21)


Also known as HemiG
It's cool to Hate. It's cool to be a bloody guitarist.
284487-39e63-35897154-h200.jpg

Offline

#3 23-05-2010 19:54

~AquaZ~
Registered: 01-03-2010
Posts: 726

Re: Система укрытий/Covers system v1

Слушай, вот ты умный человек, ifp-шки делаешь, не знаешь ли случайно, как изменить имя модели в аниме на другое имя, другой длины?

Offline

#4 23-05-2010 20:36

BullDogHEMI427
From: Рязань
Registered: 02-04-2009
Posts: 54

Re: Система укрытий/Covers system v1

Имя МОДЕЛИ? Не совсем понял вопрос
И резать/ускорять имеющиеся ifpшки - не такой уж и труЪд по сравнению с их созданием с нуля

Last edited by BullDogHEMI427 (23-05-2010 20:37)


Also known as HemiG
It's cool to Hate. It's cool to be a bloody guitarist.
284487-39e63-35897154-h200.jpg

Offline

#5 23-05-2010 20:41

~AquaZ~
Registered: 01-03-2010
Posts: 726

Re: Система укрытий/Covers system v1

Вот кусок катовского IFP

$   ¤  Ђ€  Ђ?               BNAME
     cscopcarla92    DGAN<`  INFO   

и я хочу поменять cscopcarla92 на, например, cssavanna. Как это сделать?

Offline

#6 23-05-2010 20:56

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

Re: Система укрытий/Covers system v1

Заархивируй IFP в архив и выложи тут или на цивилизованный файлообменник. Летитбит улетает.

Offline

#7 23-05-2010 21:01

~AquaZ~
Registered: 01-03-2010
Posts: 726

Re: Система укрытий/Covers system v1

Форум аттачит только известные ему расширения, например, rar.

Offline

#8 23-05-2010 21:31

BullDogHEMI427
From: Рязань
Registered: 02-04-2009
Posts: 54

Re: Система укрытий/Covers system v1

Зааттачено в первом посте
~AquaZ~, катчценовские ifp открывают yelmi'вским скриптом IFP-ANPK-TOOL, если ты открывал им и не нашёл там, то врятли чем могу помочь.

Last edited by BullDogHEMI427 (24-05-2010 12:23)


Also known as HemiG
It's cool to Hate. It's cool to be a bloody guitarist.
284487-39e63-35897154-h200.jpg

Offline

#9 24-05-2010 16:32

yelmi
Registered: 10-12-2006
Posts: 134
Website

Re: Система укрытий/Covers system v1

~AquaZ~ wrote:

Вот кусок катовского IFP

$   ¤  Ђ€  Ђ?               BNAME
     cscopcarla92    DGAN<`  INFO   

и я хочу поменять cscopcarla92 на, например, cssavanna. Как это сделать?

HEX-редактор тебе в помощь.

4b   - FourCC   - "NAME"
4b   - Int32    - Length of the name of the animation (X)
Xb   - char[X]  - Animation name (null-terminated string)

Правда, смысла менять имя анимации для объектов (автомобилей) нет. У каждого автомобиля свой набор названий объектов.

Offline

#10 24-05-2010 17:33

~AquaZ~
Registered: 01-03-2010
Posts: 726

Re: Система укрытий/Covers system v1

Так, т.е. 4 байта (unsigned?) - длина имени, потом имя этой длины и \0? Но после NAME перед cscopcarla92 6 байт, а не четыре

NAME      cscopcarla92

4E 41 4D 45 0D 20 20 20 20 20 63 73 63 6F ...

а после cscopcarla92 не 00 а 20
[---]
Так, походу кривой файл был.
Вот у меня другой - сначала 09 00 00 00, потом cstaxi92 и 00 00 00 00 - как это понимать?

Last edited by ~AquaZ~ (24-05-2010 18:06)

Offline

#11 25-05-2010 05:41

~AquaZ~
Registered: 01-03-2010
Posts: 726

Re: Система укрытий/Covers system v1

А ANPK IFP TOOL - скрипт на Макс, у меня комп 64, а винда 32 - Макс не ставится.

Offline

#12 04-06-2010 20:00

Sw[ee]t
From: Нижний Новгород
Registered: 16-02-2009
Posts: 686
Website

Re: Система укрытий/Covers system v1

offtop

~AquaZ~ wrote:

у меня комп 64, а винда 32

Ололо... Такое реально?
/offtop

Offline

#13 05-06-2010 09:00

reute70
From: Средняя Волга
Registered: 22-08-2009
Posts: 182

Re: Система укрытий/Covers system v1

наверно, подразумевается, что проц 64битный, так это уже давно...

Offline

#14 25-08-2010 17:09

El Sanchez
From: Пермь
Registered: 25-08-2010
Posts: 20

Re: Система укрытий/Covers system v1

Отличный скрипт! Просто отличный! Давненько мечтал о таком.

Offline

#15 22-09-2010 10:13

BullDogHEMI427
From: Рязань
Registered: 02-04-2009
Posts: 54

Re: Система укрытий/Covers system v1

Служу Родному Скриптингу grin
Слегка обновил код. Теперь всегда прислоняется к стене, если она есть, и не прислоняется, если нет.

Позже обновлю анимации, чтоб из укрытия выходил быстрее и дальше.

Last edited by BullDogHEMI427 (08-10-2010 18:38)


Also known as HemiG
It's cool to Hate. It's cool to be a bloody guitarist.
284487-39e63-35897154-h200.jpg

Offline

Board footer

Powered by FluxBB