Регистрация Главная Форум Файлы

Вернуться   Mafia-Game Forum > Mafia: The City Of Lost Heaven > Скриптинг
Расширенный поиск

 
 
Опции темы Опции просмотра
Старый 06.12.2018, 14:47   #1
El Padrino вне форума El Padrino
Аватар для El Padrino
Senior Member
Сообщений: 102
Репутация: 162
El Padrino has a spectacular aura aboutEl Padrino has a spectacular aura about

Part - I

Скрипт регенерации (EgoR[SLM])

Если вы играли в Мафию2, то видели, что Вито имел способность регенерации здоровья, что здорово облегчало игру. Благодаря этому скрипту, регерация доступна и в Мафии 1. Строка wait 2000, это скорость регенерации, если его уменшьить, то скорость восстановления будет больше, если увеличить, то соответственно меньше.

dim_act 1
dim_flt 1
getactiveplayer 0

label regen
human_getproperty 0,0, Energy
if flt[0]<100, -1, regen
wait 2000\\скорость регенерации
human_getproperty 0,0, Energy
let flt[0]=flt[0]+1
human_setproperty 0,flt[0],Energy
goto regen
[свернуть]


Скрипт ожидания смерти сразу нескольких enemy (EgoR[SLM])

dim_act 6
dim_flt 1
findactor 0, "enemy00"
findactor 1, "enemy01"
findactor 2, "enemy02"
findactor 3, "enemy03"
findactor 4, "enemy04"
findactor 5, "enemy05"
label 101
human_getproperty 0, 0, Energy
if flt[0] = 0, -1, 101
human_getproperty 1, 0, Energy
if flt[0] = 0, -1, 101
human_getproperty 2, 0, Energy
if flt[0] = 0, -1, 101
human_getproperty 3, 0, Energy
if flt[0] = 0, -1, 101
human_getproperty 4, 0, Energy
if flt[0] = 0, -1, 101
human_getproperty 5, 0, Energy
if flt[0] = 0, -1, 101
label dead
....//далее - действие которое выполняет скрипт после смерти enemy00-05.
[свернуть]


Скрипт рандомных характеристик у enemy (EgoR[SLM])

dim_flt 2
dim_act 1

findactor 0, ""

rnd 0, 8
let flt[0]=flt[0]+1
goto flt[0]

label 1
\\хар-ка_1
goto script

label 2
\\хар-ка_2
goto script

label 3
\\хар-ка_3
goto script

label 4
\\хар-ка_4
goto script

label 5
\\хар-ка_5
goto script

label 6
\\хар-ка_6
goto script

label 7
\\хар-ка_7
goto script

label 8
\\хар-ка_8
label script
goto script
[свернуть]


Cкрипт отключения/включения city music (EgoR[SLM])

При игре в Гонку Без Правил (FREERIDE), порой хочется отключить всю городскую музыку, спокойно ходить, ездить на поездах и трамваях. Если вы из такого типа людей, то вам наверняка понравится этот скрипт. По нажатию кнопки дополнительного свистка,отключается городская музыка. При повторном нажатии - включается обратно

dim_flt 1
//по нажатию кнопки дополнительного свистка
//отключается\включается городская музыка
label 1
ctrl_read 0,HORN1
if flt[0]=1, -1, 1
citymusic_off
console_addtext 229
wait 300
goto 2
label 2
ctrl_read 0,HORN1
if flt[0]=1, -1, 2
citymusic_on
console_addtext 228
wait 300
goto 1
[свернуть]


Вид от первого лица (EgoR[SLM])

Скрипт для игры от первого лица. First Person mode включается/отключается на кнопку HORN1 ("дополнительный свист", но можно заменить.) Работает нормально только тогда, когда игрок без оружия, или в машине.

dim_act 1
dim_frm 2
dim_flt 1
findactor 0, "Tommy"
getactivecamera 0
findframe 1, "Tommy.neck"
//вид от первого лица везде (работает нормально только когда томми без оружия)
//и в машине
label 1
ctrl_read 0,HORN1
if flt[0]=1, -1, 1
camera_lock 1
frm_seton 1, 0
frm_linkto 0,1
console_addtext 222
wait 300
goto 2
label 2
ctrl_read 0,HORN1
if flt[0]=1, -1, 2
camera_unlock
console_addtext 229
wait 300
goto 1
[свернуть]


Скрипт спринта (EgoR[SLM])

По нажатию кнопки "MAP" ("КАРТА", но можно поменять), персонаж ускоряется в 3 раза, при этом, бег сопровождается вытягиванием экрана, что придает ощущение скорости. Спустя несколько секунд эффект проходит и нужно некоторое время (от 1 секунды до 13-15) чтобы персонаж отдохнул и снова мог использовать спринт.

dim_act 1
dim_flt 3
getactiveplayer 0

label 156
ctrl_read 0, MAP
if flt[0]=1, -1, 156
camera_getfov 1
human_setproperty 0, 300, Speed

label 124
commandblock 0
commandblock 1
let flt[1] = flt[1] + 0.5
camera_setfov flt[1]
if flt[1]>110, -1, 124

label 182
commandblock 0
commandblock 1
let flt[1] = flt[1] - 0.4
camera_setfov flt[1]
if flt[1]<75, -1, 182
commandblock 0
wait 100
human_setproperty 0, 100, Speed
rnd 2,99
let flt[2] = flt[2] * 120
wait flt[2]
goto 156
[свернуть]


Скрипт моментальной смерти от выстрела в голову (EgoR[SLM])

В оригинальной Мафии, была такая недоработка (а может быть и специально), что выстрел в голову практически из всех пистолетов не убивал врага. Благодаря этому скрипту, это исправлено. Иногда противнику сносит голову от выстрела, сопровождаясь фонтаном крови. Вписывать не в актора-противника, а в отдельный скрипт! Иначе работать не будет.

dim_act 1
dim_flt 10
dim_frm 1

findactor 0, "actor"
findframe 0, "actor.neck"

human_setproperty 0, 60000, ENERGY

frm_getscale 0, 2

let flt[2] = 0.000001
let flt[3] = 0.000001
let flt[4] = 0.000001

label 303
commandblock 0
commandblock 1
human_getactanimid 0, 1
if flt[1]=204, neck1, -1
human_getactanimid 0, 1
if flt[1]=205, neck2, -1
goto 303

//==========================
//Голова, спереди.

label neck1
human_setproperty 0, 0, ENERGY
rnd 5,10
//freeride_scoreset flt[5]
if flt[5]<3, -1, 402
frm_setscale 0, 2
emitparticle 0,40, 0

//==========================
//Голова, сзади

label neck2
human_setproperty 0, 0, ENERGY
rnd 5,10
//freeride_scoreset flt[5]
if flt[5]<3, -1, 402
frm_setscale 0, 2
emitparticle 0,40, 0
goto 1001

label 402
wait 5000
end
[свернуть]


Новая версия телохранителя угоняющего автомобили (Atrox)

---------------------------------
Телохранитель угоняющий автомобили - V.4.
///programmed by Atrox (c)
///sergey.brusov@gmail.com

Что бы телохранитель угнал автомобиль, надо дать ему команду " стоять " и рядом с ним сесть в автомобиль и нажать на клаксон.
Если у Томми есть 500 игровых уе - то телохранитель начнет искать автомобиль для угона, исходя из ниже приведенных четырёх НО.

НО:
0. Угоняет только стоячие автомобили.
1. Если в них не сидит Томми!
2. Автомобили не шибко повреждены!
3. Автомобили не далее 96-ти игрометров!
PS: Угоняет даже автомобили, указанные на радаре красным цветом.

Если у Томми нет 500 игровых уе - то телохранитель намекнет Томми об этом.

Когда телохранитель поймает автомобиль, то, если Томми дальше 30-ти игрометров, то подгонит автомобиль к Томми и вылезет из автомобиля.
Если Томми ближе 30-ти игрометров, то телохранитель подождет Томми 20-ть секунд, и если Томми не сядет в его автомобиль, то телохранитель поедет в 3-тий фрейм, вылезет и пойдет в 4-ый фрейм.
PS: А так же выполняет команды " стоять " и " за мной ".

Рекомендуется ставиль на модель Полли (Paulie) с именем Paulie
Если не хотите, то в findactor 0, "***" и в findframe 0, "***",
между кавычек, вместо Paulie напишите имя ... любое.
Например Atrox.

------------------------------------------------------------

dim_act 10
dim_flt 10
dim_frm 10

findactor 0, "Paulie"
findactor 1, "Tommy"
findactor 2, "null"
///programmed by atrox (c)
///sergey.brusov@gmail.com
findframe 0, "Paulie"
findframe 1, "Tommy"
findframe 2, "null"
findframe 3, "taxi_point22"
findframe 4, "taxi_point21"

human_set8slot 0, 1
human_setproperty 0, 999, Energy
human_setproperty 0, 999, Intelligence
human_addweapon 0,12,2,8888
human_holster 0
enemy_blastfire
let flt[0]=1

label 1
if flt[0]=1, stopp, -1
let flt[1]=1
enemy_action_follow 1, 1, nonext, crouch, 1
enemy_followplayer yes
let flt[1]=0

label stopp
human_holster 0
setplayerhornevent 0, 1
goto 1

event use_ab,10970002
enemy_forcescript 0
enemy_actionsclear
enemy_brainwash
enemy_stop
detector_issignal 5, 65, -1
getactorsdist 0, 5, 2
if flt[2]<5, -1, 65

label 65
event_use_cb 1
if flt[0]=1, 2, -1
enemy_talk 1, 11990741
enemy_wait
human_looktoactor 0, 1, 1
enemy_talk 0, 950020
enemy_wait
enemy_talk 0, 950011
enemy_wait
human_looktoactor 0
enemy_forcescript 0
let flt[0]=1
return

label 2
enemy_talk 1, 11990731
enemy_wait
human_looktoactor 0, 1, 1
enemy_talk 0, 950008
enemy_wait
human_stoptalk 0
human_looktoactor 0
let flt[0]=0
return

label go
let flt[0]=0
return

event enemy_to_ai
event_use_cb 1
if flt[1]=1, ret, -1
enemy_talk 0, 950089
enemy_wait
label ret
human_holster 0
return

event 1
enemy_look 1
commandblock 1
getactorsdist 0, 1, 0
if flt[0]>9, ret, -1
commandblock 0
enemy_talk 1, 950106
enemy_wait
freeride_scoreget 0
if flt[0]<500,MALOPENEZ,-1
let flt[0]=flt[0]-500
freeride_scoreset flt[0]
human_getowner 1, 2
human_looktoactor 0, 1, 1
enemy_playanim "gestikulace03.i3d", 1, simple
enemy_talk 0, 19991497
enemy_wait
enemy_stopanim
enemy_talk 0, 950005
enemy_playanim "gestikulacenew02.i3d"
enemy_wait
enemy_stopanim
setnoanimhit 0, 1
human_looktoactor 0
label 202
findnearactor 0, 3, car
car_getspeed 3, 3
if flt[3]>0.05, -1, 212
goto 202
label 212
car_switchshowenergy 3, 1
getcardamage 3, 3
if flt[3]<0.7, -1, 222
goto 202
label 222
getactorsdist 1, 3, 1
if flt[1]<3, -1, 232
goto 202
label 232
getactorsdist 3, 0, 3
if flt[3]>96, -1, 242
goto 202
label 242
car_getspeed 3, 3
if flt[3]>0.05, -1, 252
goto 202
label 252
car_lock_all 3, 1
human_holster 0
enemy_move_to_car 3, 0, run
enemy_look 3
human_holster 0
playsound "carunlock3.wav", -1, 12, 1
enemy_playanim "KradeniAuta.i3d", 1
let flt[1]=flt[1]-83
wait flt[1]
enemy_usecar 3, 0
car_lock_all 3, 0
label 262
human_getowner 0, 4
actorupdateplacement 4
car_calm 4
getactorsdist 0, 1, 0
if flt[0]>29, -1, 272
getactorframe 1, 1
enemy_car_moveto 4, 1, stop
enemy_usecar
wait 1000
human_holster 0
let flt[0]=1
return
label 272
wait 18000
compareownerwithex 1, 4, -1, 282
carlight_light 4, 1
enemy_car_moveto 4, 3, stop
carlight_light 4, 0
enemy_usecar
wait 1000
human_holster 0
goto 292
label 282
car_setactlevel 4, 1
wait 2000
carlight_light 4, 1
enemy_car_moveto 4, 3, stop
carlight_light 4, 0
wait 2000
car_setactlevel 4, 0
enemy_usecar
wait 1000
human_holster 0
label 292
enemy_changeanim "walk1.i3d", "ChuzeRuceZaZady1.I3D"
enemy_move_to_frame 4, 0, walk
setnoanimhit 0, 0
human_setproperty 0, 999, Energy
wait 1000
let flt[0]=1
return

label MALOPENEZ
human_looktoactor 0, 1, 1
enemy_playanim "Gestikulace01.I3D", 0
enemy_talk 0, 18990131
enemy_wait
enemy_stopanim
human_looktoactor 1, 0, 1
enemy_talk 1, 18990161
enemy_wait
human_looktoactor 1
enemy_playanim "Gestikulace02.I3D", 0
enemy_talk 0, 18990151
console_addtext 3472
enemy_wait
enemy_stopanim
human_looktoactor 1, 0, 1
enemy_talk 1, 18990261
enemy_wait
human_looktoactor 1
enemy_playanim "Gestikulace03.I3D", 0
enemy_talk 0, 18990291
enemy_wait
enemy_stopanim
enemy_talk 1, 18990301
enemy_wait
human_looktoactor 0
enemy_playanim "polst03.i3d"
enemy_talk 0, 18020560
enemy_wait
enemy_talk 0, 18020570
enemy_wait
enemy_stopanim
let flt[0]=1
return

event hit_from_player
enemy_actionsclear
enemy_stop
enemy_look 1
enemy_wait
human_looktoactor 0, 1, 1
rnd 1,4
if flt[1]=0,-1,113
enemy_talk 0, 950080
enemy_wait
label 113
if flt[1]=1,-1,114
enemy_talk 0, 950003
enemy_wait
label 114
if flt[1]=2,-1,115
enemy_talk 0, 950004
enemy_wait
label 115
if flt[1]=3,-1,116
enemy_talk 0, 950031
enemy_wait
label 116
human_looktoactor 0
enemy_forcescript 0
return
[свернуть]
[свернуть]

Последний раз редактировалось El Padrino; 12.12.2018 в 21:56.
цитата
Поблагодарили: 6
Andrey (08.12.2018), EmptyBowl (06.12.2018), Johnny777 (05.06.2019), Knight Rider (06.12.2018), spartaque12 (06.12.2018), Staghound (08.12.2018)
 

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Информация о репутации
×
За активное участие в жизни форума и помощь пользователям вы можете получить очки репутации. За определённое количество очков репутации вам будет присвоенно соответствующее звание. Полученное звание всегда будет отображаться в нижней части области Вашего профиля, слева от сообщения.
Вы / 10
Dealer
0
Racketier
15
Thug
30
Enforcer
80
Button Men
190
Racketier
15
Thug
30
Enforcer
80
Button Men
190

Текущее время: 21:05. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.11 Release Candidate 2
Copyright ©2000 - 2019, vBulletin Solutions Inc. Перевод: zCarot