Перейти к контенту

Рекомендуемые сообщения

Помогите пож. разобрать алл.спавн 3 версии, сколько не пробовал версий acdc не работает, хотя его же можно разобрать :ny_rolleyes:

 

Ссылка на комментарий

Как и предполагал, mob_walker наличествует ;). Задержку я имел в виду, чтобы зомби не сразу падал, а через некоторое время после окончания "тревоги" - тут можно после окончания действия условий тревоги переключиться, например, на схему mob_remark, а в ней задать условие on_timer = 10000 | mob_fake_death. А как сделать, чтобы не сразу падал, а "медленно"... даже не знаю :).

И ещё у тебя есть условие (on_actor_dist_le = 5 | nil), по нему, если игрок приблизится к зомби менее, чем на 5 м., монстр уйдёт из-под логики, и обратно его под управление уже не взять. К тому же, по этому условию зомби будет реагировать только на игрока - рекомендую всё же использовать dist_to_enemy_le, и переключаться не на nil (выход монстра из-под логики), а на какую-нибудь существующую схему. Вдруг к "отдыхающему" зомби подберётся какой-нибудь "природный" враг (или сталкер), а не игрок, тогда on_actor_dist_le не сработает.

Ссылка на комментарий

Разобрался уже- нашел рабочую acdc для 3-ки. но появился другой вопрос: хочу разобрать all от vehicles and monster pack. пишет data left in ammo at C://perl/bin/acdc.pl line 2549. (я так понял надо дописать строку в acdc.pl?)

Ссылка на комментарий

midichs, лучше закомментируй. Я так делал - комментируешь на время разбора, потом обратно. Вот мой ACDC, 3 разбирает вроде:

http://rghost.ru/4525829

Ссылка на комментарий

да, 3-й разбирает, а 3-й от этого мода - никак: update data left in explosive barrel at acdc.pl line 2306. Может подробнее расскажеш, что делать, а то я в этом не разбираюсь :wacko2:

Ссылка на комментарий

@"StreloK", по поводу активации точки респона. Сама точка респона у тебя настроена работать безо всяких условий. То есть, она будет спонить неписей через положенные промежутки времени, независимо от рестриктора-"активатора".

Для того, чтобы респоновая точка (я так понимаю, функция, которая у тебя прописана в кустодате рестриктора должна была активировать не только респон, но и включить смарт впридачу?) действительно начала работать только после вхождения игрока в рестриктор, в кустодате точки респона, как уже было упомянуто, нужно добавить вот такое условие:

conditions = {+infoportion} 100, 0

А для активации смарта (в кустодате смарттеррейна) вот такое:

cond = {+infoportion}

Функция, указанная у тебя в кустодате рестриктора (=cit_gulag_1_restavn), действительно не нужна, нужен только "эффект" с получением инфопоршна:

on_actor_inside = nil %+infoportion%

Тогда, как только игрок войдёт в рестриктор, будет получен инфопоршн, который автоматически активирует точку респона и смарт (если нужно). Смарт включится, а респоновая точка начнёт плодить неписей в соответствии с глобальными настройками респона. А сам рестриктор "уйдёт в nil", чтобы не обрабатывать в дальнейшем условия этого рестриктора. Кстати, правильно условия указываются перед именем новой схемы, а эффекты - после:

on_actor_inside = {условия +(-)инфопоршны и (или) =(!)функции} новая схема %эффекты +(-)инфопоршны и (или) =функции%

Конечно, можно указывать вообще одни только эффекты, если условие не для переключения на другую схему, а только для получения нужного инфопоршна и (или) запуска нужной функции.

Изменено пользователем =VENOM=
Ссылка на комментарий
Скажите пожалуйсто, как заспавнить огонь в керосиновой лампе.

Ulman, пробуй это:

[80]

; cse_abstract properties

section_name = lights_hanging_lamp

name = light_gas_4m

position = 237.878204345703,9.45947265625,-8.03389835357666

direction = 0,0,0

 

; cse_alife_object properties

game_vertex_id = 0

distance = 0

level_vertex_id = 293223

object_flags = 0xffffff3a

 

; cse_visual properties

 

; cse_ph_skeleton properties

 

; cse_alife_object_hanging_lamp properties

main_color = 0xffffcb81

main_brightness = 0.600000023841858

main_color_animator = koster

main_range = 3

light_flags = 0xa

health = 100

main_virtual_size = 0.100000001490116

ambient_radius = 1

ambient_power = 0.100000001490116

main_cone_angle = 2.09439492225647

glow_radius = 0.699999988079071

cse_alife_object_hanging_lamp__unk1_f32 = 1

cse_alife_object_hanging_lamp__unk2_f32 = 1

cse_alife_object_hanging_lamp__unk3_f32 = 1

 

 

 

Рандомит!!! В большинстве случаев - когда берёшь банку энергетика на Затоне...

FATAL ERROR

 

[error]Expression : error handler is invoked!

[error]Function : invalid_parameter_handler

[error]File : D:\prog_repository\sources\trunk\xrCore\xrDebugNew.cpp

[error]Line : 815

[error]Description :

 

 

stack trace:

 

 

 

Что надо ввести в консоли, чтобы ГГ стал бессмертным, мне в тестах нужно.

 

Выводы модмейкера:

1)Вылетает - это хорошо. Значит, работает :)

2) Если хочешь сделать что-то хорошо, делай сам!

3) Если падёшь духом, падёт и мод.

4) Он живой... :o

Ссылка на комментарий

В консоли нечего не поучится

Засунь зто в \S.T.A.L.K.E.R. - Shadow of Chernobyl\gamedata\config\creatures\actor.ltx (замени то что там на это)

 

[actor_terrain]

255,255,000,255

 

[actor]:common_ph_friction_params_on_npc_death

GroupControlSection = spawn_group

$spawn = "actor"

$ed_icon = ed\ed_actor

$player = on

$prefetch = 16

cform = skeleton

class = O_ACTOR

money = 40;

rank = 3;

script_binding = bind_stalker.actor_init

visual = actors\hero\stalker_novice.ogf

destroyed_vis_name = physics\Dead_Body\skelet_crash

 

terrain = actor_terrain

 

max_item_mass = 200.0

jump_speed = 6.

crouch_coef = 0.45

climb_coef = 0.7

run_coef = 2.1

sprint_koef = 2.6

run_back_coef = 1.8

walk_back_coef = 0.8

air_control_param = 0.1

walk_accel = 17

 

;радиус в котром над предметами выводятся их названия

pickup_info_radius = 5 ;3

 

ef_creature_type = 17 ; option for evaluation functions

 

; attach params

attachable_items = device_torch,attachable_item,hand_radio

 

ph_box0_center = 0.0, 0.9, 0.0

ph_box0_size = 0.35, 0.9, 0.35

ph_box1_center = 0.0, 0.75, 0.0

ph_box1_size = 0.35, 0.75, 0.35

ph_box2_center = 0.0, 0.6, 0.0

ph_box2_size = 0.35, 0.6, 0.35

stalker_restrictor_radius = .05;0.55;0.75;0.9

stalker_small_restrictor_radius = .05;

medium_monster_restrictor_radius = 0.1

ph_crash_speed_min = 14

ph_crash_speed_max = 30

ph_collision_damage_factor = 1.0

ph_mass = 80

 

weapon_bone0 = bip01_r_finger1

weapon_bone1 = bip01_l_finger1

weapon_bone2 = bip01_r_finger11

 

damage = actor_damage

 

hit_probability_gd_novice = 0.20

hit_probability_gd_stalker = 0.30

hit_probability_gd_veteran = 0.40

hit_probability_gd_master = 0.50

hit_sounds = actor_hit_snds

;actor condition

 

immunities_sect = actor_immunities_gd_master

condition_sect = actor_condition

 

heavy_breath_snd = actor\breath_1 ;звук тяжелого дыхания при усталости

heavy_blood_snd = affects\heartbeat; heart\8

 

material = creatures\actor

camera_height_factor = 0.85

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-----(AMK SNIPER ADDON v1.0)-----

;дисперсия стрельбы с учетом ходьбы и бега

disp_base = 0.51 ;угол (в градусах) разлета пуль, когда актер стоит на месте

disp_aim = 0.04 ;0.51

disp_vel_factor = 1.0 ;на сколько увеличится дисперсия при скрости в 10 м/с (не обязательно при беге)

disp_accel_factor = 2.0 ;еще на сколько увеличится, если актер бежит (+ скорость)

disp_crouch_factor = -0.3 ;уменьшение если актер сидит

disp_crouch_no_acc_factor = -0.6 ;уменьшение если актер сидит + no acceleration

;disp_jump_factor = 2.0

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-----

 

missile_throw_offset = 0.3, 0.5, 0.5

 

body_remove_time = 30000 ;время уничтожения трупа (с учетом TimeFactor)

 

sleep_time_factor = 1000 ;400 ;во сколько раз время идет быстрее, когда актер спит

max_sleep_hours = 12

;species of monster

species = actor

 

 

;---STEP MANAGER------------------------------------------------------

LegsCount = 2

step_params = stalker_step_manager

foot_bones = stalker_foot_bones

 

memory_update_time = 100

 

; visibility parameters

DynamicObjectsCount = 32

min_view_distance = 1.0 ; коэффициент, который множится на eye_range, в зависимости от угла

max_view_distance = 1.0 ; коэффициент, который множится на eye_range, в зависимости от угла

visibility_threshold = 1.0 ; значение, при достижении суммой которого объект считается видимым

always_visible_distance = 1.0

time_quant = 0.005

decrease_value = 0.1 ; значение, на которое уменьшается вес, если объект попал в фрустум, но отсёкся по каким-то причинам

velocity_factor = 0.5

luminocity_factor = 0.5;0 ; фактор освещения (только для Актёра)

transparency_threshold = 0.4 ; 0.25

still_visible_time = 5000 ; время, которое объект всё ещё считается видимым, даже если он уже не во фрустуме

 

[actor_immunities_gd_novice]

burn_immunity = 0.0 ;коэффициенты иммунитета

strike_immunity = 0.0

shock_immunity = 0.0

wound_immunity = 0.0

radiation_immunity = 0.0

telepatic_immunity = 0.0

chemical_burn_immunity = 0.0

explosion_immunity = 0.0

fire_wound_immunity = 0.0

 

 

[actor_immunities_gd_stalker]

burn_immunity = 0.65 ;коэффициенты иммунитета

strike_immunity = 0.65

shock_immunity = 0.65

wound_immunity = 0.65

radiation_immunity = 0.65

telepatic_immunity = 0.65

chemical_burn_immunity = 0.65

explosion_immunity = 0.3

fire_wound_immunity = 0.65

 

[actor_immunities_gd_veteran]

burn_immunity = 0.8 ;коэффициенты иммунитета

strike_immunity = 0.8

shock_immunity = 0.8

wound_immunity = 0.8

radiation_immunity = 0.8

telepatic_immunity = 0.8

chemical_burn_immunity = 0.8

explosion_immunity = 0.6

fire_wound_immunity = 0.8

 

[actor_immunities_gd_master]

burn_immunity = 1.0 ;коэффициенты иммунитета

strike_immunity = 1.0

shock_immunity = 1.0

wound_immunity = 1.0

radiation_immunity = 1.0

telepatic_immunity = 1.0

chemical_burn_immunity = 1.0

explosion_immunity = 1.0

fire_wound_immunity = 1.0

 

[actor_condition]

satiety_v = 0.000001 ;скорость уменьшения сытости со временем

radiation_v = 0.001 ;скорость уменьшения радиации

satiety_power_v = 0.000055 ;увеличение силы при уменьшении сытости

satiety_health_v = 0.0001 ;увеличение здоровья при уменьшении сытости

satiety_critical = 0.0 ;критическое значения сытости (в процентах от 0..1) когда здоровье начианает уменьшаться

radiation_health_v = 0.0001 ;уменьшение здоровья при воздействии радиации

morale_v = 0.0001 ;скорость восстановления морали

psy_health_v = 0.001 ;скорость восстановления psy-здоровья

alcohol_v = -0.0005

health_hit_part = 1.0 ;процент хита, уходящий на отнимание здоровья

power_hit_part = 0.1 ;процент хита, уходящий на отнимание силы

max_power_leak_speed = 0.0 ;накопление усталости (макс граница, до которой восстанавливается сила) в секунду игрового времени

max_walk_weight = 90

 

bleeding_v = 0.00001 ;потеря крови при номинальной ране в секунду

wound_incarnation_v = 0.3 ;скорость заживления раны

min_wound_size = 0.00001 ;минимальный размер раны, после которого она считается зажившей

 

;--when actor in sleep

satiety_v_sleep = 0.00001

radiation_v_sleep = 0.0003

satiety_power_v_sleep = 0.0001

satiety_health_v_sleep = 0.00001

radiation_health_v_sleep = 0.001

morale_v_sleep = 0.0

psy_health_v_sleep = 0.0

 

alcohol_v_sleep = -0.0005

 

bleeding_v_sleep = 0.0

wound_incarnation_v_sleep = 0.0

max_power_leak_speed_sleep = -0.00001;

;health_restore_v = 0.0001

 

;;;;;;;;

;actor_condition only

 

jump_power = 0.01 ;0.005 ;умешьшение силы с прыжком без учета веса ноши

jump_weight_power = 0.05 ;0.045 ;умешьшение силы с прыжком с учетом веса ноши, для максимального допустимого веса

overweight_jump_k = 5;10 ;10 ;коэффициент влияние перегрузки прыжок с весом (умножается на jump_weight_power)

 

stand_power = -0.01

walk_power = 0.00002 ;умешьшение силы за секнду во время ходьбы без учета веса ноши

walk_weight_power = 0.0001; ;умешьшение силы за секнду во время ходьбы с учетом веса ноши, для максимального допустимого веса

overweight_walk_k = 5;9 ;10 ;коэффициент влияние перегрузки ноши (умножается на walk_weight_power)

accel_k = 3;5 ;коэффициент на бег (умножается walk_power, walk_weight_power)

sprint_k = 75;150;185;180;200; ;коэффициент на "sprint" бег (умножается walk_power, walk_weight_power)

 

; хромота

limping_health_begin = 0.1 ;порог здоровья меньше которого актер начинает хромать

limping_health_end = 0.2 ;порог здоровья больше которого актер перестает хромать

limping_power_begin = 0.1 ;порог силы меньше которого актер начинает хромать

limping_power_end = 0.2 ;порог силы больше которого актер перестает хромать

use_limping_state = on

 

cant_walk_power_begin = 0.01 ;порог силы меньше которого актер не может двигаться

cant_walk_power_end = 0.10 ;порог силы больше которого актер сможет двигаться

 

cant_sprint_power_begin = 0.20 ;порог силы меньше которого актер не может бежать в спринте

cant_sprint_power_end = 0.30 ;порог силы больше которого актер сможет бежать в спринте

 

can_sleep_callback = dream.can_sleep_callback

sleep_video_name_callback = dream.sleep_video_name_callback

 

[actor_damage]

;bone_name = <hit_scale>,<fwd_damage_anim_index>,<wound_scale>

;<hit_scale> - коэфф. изменения хита (уменьшения здоровья)

;<wound_scale> - коэфф. изменения величины открытой раны

;-1 - нет анимаций, четный номер - спереди, нечетный номер - сзади, УКАЗЫВАЕТСЯ ТОЛЬКО ПЕРЕДНИЙ!!! ЗАДНИЙ НА АВТОМАТЕ

default = 1.0, -1, 1.0

 

bip01_pelvis = 1.0, 10, 1.5

bip01_spine = 1.0, 10, 1.5

bip01_spine1 = 1.0, 0, 1.5

bip01_spine2 = 1.0, 0, 1.5

bip01_neck = 1.0, 0, 1.5

bip01_head = 0.2, 0, 1.5

eyelid_1 = 0.0, 0, 0.0

eye_left = 0.0, 0, 0.0

eye_right = 0.0, 0, 0.0

jaw_1 = 0.0, 0, 0.0

 

bip01_l_clavicle = 1.0, 4, 1.5

bip01_l_upperarm = 1.0, 4, 1.5

bip01_l_forearm = 1.0, 4, 1.5

bip01_l_hand = 1.0, 4, 0.5

bip01_l_finger0 = 0.0, 4, 0.0

bip01_l_finger01 = 0.0, 4, 0.0

bip01_l_finger02 = 0.0, 4, 0.0

bip01_l_finger1 = 0.0, 4, 0.0

bip01_l_finger11 = 0.0, 4, 0.0

bip01_l_finger12 = 0.0, 4, 0.0

bip01_l_finger2 = 0.0, 4, 0.0

bip01_l_finger21 = 0.0, 4, 0.0

bip01_l_finger22 = 0.0, 4, 0.0

 

bip01_r_clavicle = 1.0, 2, 1.5

bip01_r_upperarm = 1.0, 2, 1.5

bip01_r_forearm = 1.0, 2, 1.5

bip01_r_hand = 1.0, 2, 0.0

bip01_r_finger0 = 0.0, 2, 0.0

bip01_r_finger01 = 0.0, 2, 0.0

bip01_r_finger02 = 0.0, 2, 0.0

bip01_r_finger1 = 0.0, 2, 0.0

bip01_r_finger11 = 0.0, 2, 0.0

bip01_r_finger12 = 0.0, 2, 0.0

bip01_r_finger2 = 0.0, 2, 0.0

bip01_r_finger21 = 0.0, 2, 0.0

bip01_r_finger22 = 0.0, 2, 0.0

 

bip01_l_thigh = 1.0, 8, 1.5

bip01_l_calf = 1.0, 8, 1.5

bip01_l_foot = 1.0, 8, 1.5

bip01_l_toe0 = 1.0, 8, 1.5

bip01_r_thigh = 1.0, 6, 1.5

bip01_r_calf = 1.0, 6, 1.5

bip01_r_foot = 1.0, 6, 1.5

bip01_r_toe0 = 1.0, 6, 1.5

 

[actor_animation]

;углы дворота ног актера во время стрейфов (в градусах)

fwd_l_strafe_yaw = 45

back_l_strafe_yaw = 45

fwd_r_strafe_yaw = 45

back_r_strafe_yaw = 45

l_strafe_yaw = 0

r_strafe_yaw = 0

 

 

[actor_hit_snds]

burn =actor\pain1,actor\pain2,actor\pain3; ,actor\hurt4

shock =actor\pain1,actor\pain2,actor\pain3; ,actor\hurt4

strike =actor\pain1,actor\pain2,actor\pain3; ,actor\hurt4

wound =actor\pain1,actor\pain2,actor\pain3; ,actor\hurt4

radiation =monsters\biting\def_0; actor\hurt1,actor\hurt2,actor\hurt3,actor\hurt4

telepatic =actor\pain1,actor\pain2,actor\pain3; ,actor\hurt4

fire_wound =actor\bullet_hit_1,actor\bullet_hit_2,actor\bullet_hit_3,actor\bullet_hit_4

; actor\pain_1,actor\pain_3,actor\pain_4,actor\pain_5,actor\pain_6,actor\pain_7,actor\pain_8

chemical_burn =actor\pain1,actor\pain2,actor\pain3; ,actor\hurt4

explosion =affects\tinnitus3a

wound_2 =actor\hurt1,actor\hurt2,actor\hurt3,actor\hurt4

physic_strike =actor\pain1,actor\pain2,actor\pain3; ,actor\hurt4

 

 

 

ЗЫ . Для ТЧ

Изменено пользователем AKKK1
Ссылка на комментарий

Доброго времени суток.

У меня такой вопрос:

Можно ли заставить динамический объект проигрывать анимацию после получения определенного события?

Если можно то как ему это прописать?

Например - чтобы вентилятор работал только когда актор находится в комнате с этим вентилятором.

Заранее спасибо.


Команда ReWrite Team. От сталкера отошли. Пересели за другую платформу.

 

Ссылка на комментарий

Вот создал непися через спавн (третьего)

Первый и второй появляются но 3 никак. прописывал везде похоже. Только 1 и 2 на кордоне а 3 в подземельи агропрома. Но он не появляется. Вот его секция

[2097]
; cse_abstract properties
section_name = stalker
name = provodnik
position = 38.078643798828, -3.8874468803406, 19.942394256592
direction = 0,0,0

; cse_alife_trader_abstract properties
money = 5000
character_profile = esc_ag_prov

; cse_alife_object properties
game_vertex_id = 725
distance = 0
level_vertex_id = 4869
object_flags = 0xffffffbf
custom_data = <<END

[logic]
cfg = scripts\provodnik_logic.ltx

; cse
[smart_terrains]
none = true
END
story_id = 10002

; cse_visual properties
visual_name = actors\bandit\stalker_bandit_master

; cse_alife_creature_abstract properties
g_team = 0
g_squad = 1
g_group = 2
health = 1
dynamic_out_restrictions =
dynamic_in_restrictions =

upd:health = 1
upd:timestamp = 0
upd:creature_flags = 0
upd:position = 38.078643798828, -3.8874468803406, 19.942394256592
upd:o_model = 0
upd:o_torso = 0.028013030067086,0,0.9996075630188
upd:g_team = 0
upd:g_squad = 1
upd:g_group = 2

; cse_alife_monster_abstract properties

upd:next_game_vertex_id = 65535
upd:prev_game_vertex_id = 65535
upd:distance_from_point = 0
upd:distance_to_point = 0

; cse_alife_human_abstract properties
predicate5 = 1,2,2,1,2
predicate4 = 0,1,1,1

; cse_ph_skeleton properties

upd:start_dialog =

; se_stalker properties

 

Скажите пожалуйста что сделать чтобы он появился! Очень надо!

Ссылка на комментарий

Ulman, может так?

Spawn_Inventory_Item_Section = mutant_krovosos_jaw, mutant_flesh_eye

Сам не знаю, не делал...

TRAMP14, хм... Должен появится, попробуй заново коодинаты снять, может нолик не дописал или - + перепутал... Не забывай указывать level_vertex и game_vertex, от них тоже многое зависит...

Изменено пользователем Disord
Ссылка на комментарий

Некоторое время назад было предложение верней возмушение

почему меченый безнаказанно хватает все с столов в баре ?

ну и вот в свете новых знаний а именно ковыряния схемы ph_idle

практически не документированной

всего одна строчка в описании

Для всех физических объектов есть секция ph_idle, поддерживающая кондлист в которую можно при необходимости переводить объекты.

В общем научился вызывать любю функцию при юзе обьекта для этого достаточно прописать обьекту

следующее (секция болон в алл спавне ).

 

;

cse_abstract properties

section_name = physic_object

name = trader_physic_object0007

position = -250.935073852539,-24.7987232208252,-135.995330810547

direction = 0,4.36330795288086,0

 

; cse_alife_object properties

game_vertex_id = 0

distance = 0

level_vertex_id = 594270

object_flags = 0xfffffffa

custom_data = <<END

[collide]

ignore_static

 

[logic]

cfg = scripts\esc_balon.ltx

END

; cse_visual properties

visual_name = physics\balon\balon_01

 

; cse_ph_skeleton properties

skeleton_name =

 

; cse_alife_object_physic properties

physic_type = 0x3

mass = 10

 

логика

 

[logic]

active = ph_idle

 

[ph_idle]

tips = tip_bolon используем добавляем свой тип в snring_table_ui.xml типа так

<string id="tip_bolon">

<text>ПОГОВОРИ СО МНОЙ ($$ACTION_USE$$)</text> показываемый текст

</string>

on_use = %=функция_запускаемая_при_юзе% нажатии f или enter у меня

 

Думаю с этим все понятно вернемся к нашим баранам

так вот хлеб водка консервы являются итемами (короче их можно брать выкидывать пользовать из инвенторИ).

 

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

snring_table_ui.xml ну и

изменил секцию консервы(в баре на столе перед новичком) так (выделенное)

[4593]

; cse_abstract properties

section_name = physic_object

name = bar_conserva

position = 129.616775512695,-3.60408997535706,28.8814792633057

direction = 0,0,0

 

; cse_alife_object properties

game_vertex_id = 1168

distance = 0

level_vertex_id = 76465

object_flags = 0xfffffffa

custom_data = <<END

[logic]

cfg = scripts\bar_bread.ltx

END

; cse_visual properties

visual_name = food\conserv1

 

; cse_alife_item properties

condition = 1

 

upd:num_items = 0

 

 

логика

scripts\bar_bread.ltx

[logic]

active = ph_idle

 

[ph_idle]

tips = tip_bar_bread

on_use = %=act_punch%

 

функция act_punch получаем удар в рожу теряем 80% денег (при попытке взять сьесть чужую консерву)

а именно лежащую на столе перед новичком

function act_punch(npc)

if db.actor:position():distance_to_sqr(npc:position()) > 4 then

return

end

 

local active_slot = db.actor:active_slot()

if active_slot ~= 1 and

active_slot ~= 2

then

return

end

 

local active_item = db.actor:active_item()

if active_item then

db.actor:drop_item(active_item)

end

 

set_inactivate_input_time(30)

local snd_obj = xr_sound.get_safe_sound_object([[affects\hit_fist]])

snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0)

level.add_cam_effector("camera_effects\\fusker.anm", 999, false, "")

test_script.out_money_and_dream()

end

 

ну и test_script

 

function out_money_and_dream()

local money = db.actor:money()

local money_out = money * (math.random(5,8)/10)

 

db.actor:give_money(-money_out)

end

 

 

 

Спасибо Allender АМК-2

Спасибо Stalk 15

 

-------

Видео

 

http://video.yandex.ru/users/krepishev-al/view/1/

Изменено пользователем Cyclone
Ссылка на комментарий
TRAMP14, по крайней мере гейм- и левелвертексы в норме (для подземелья Агропрома). Непись вообще не спонится (то есть при запуске игры сам игрок уже находится в подземке Агропрома) или когда игрок через некоторое время добирается до подземки, непися там нет? Что у него в логике?
Ссылка на комментарий

У него в логике прописано стоять на месте. Я прописал одне логику на всех троих, те двое стоят. С помощью "мобилы модмэйкера" от сингапура я использовал координаты и появился точно там где должен появится непись, всё отлично.

Ссылка на комментарий

Привет. Заспавнил зомбика

[664]

; cse_abstract properties

section_name = vodjanoj

name = jup_vodjanoj

position = 250.87719726563,-28.507953643799,97.133178710938

direction = 0.180322349071503,-0.275118470191956,-0.294997245073318

 

; cse_alife_object properties

game_vertex_id = 3740

distance = 25.1999988555908

level_vertex_id = 1139318

object_flags = 0xffffffff

custom_data = <<END

[smart_terrains]

none = true

 

[spawner]

cond = none

END

 

; cse_visual properties

visual_name = monsters\vodjanoj\vodjanoj

 

; cse_alife_creature_abstract properties

g_team = 0

g_squad = 0

g_group = 0

health = 1

dynamic_out_restrictions =

dynamic_in_restrictions =

 

upd:health = 1

upd:timestamp = 0

upd:creature_flags = 0

upd:position = 250.87719726563,-28.507953643799,97.133178710938

upd:o_model = 0

upd:o_torso = -0.275118470191956,0.180322349071503,0

upd:g_team = 0

upd:g_squad = 0

upd:g_group = 0

 

; cse_alife_monster_abstract properties

 

upd:next_game_vertex_id = 65535

upd:prev_game_vertex_id = 65535

upd:distance_from_point = 0

upd:distance_to_point = 0

 

; cse_ph_skeleton properties

 

; cse_alife_monster_base properties

 

; se_monster properties

Хочу сделать ему лагерь радиусом 30-40м. Прочитал что можно сделать так:

[665]

; cse_abstract properties

section_name = smart_terrain

name = jup_gen_lager

position = 250.87719726563,-28.507953643799,97.133178710938

direction = 0.0,0.0,0.0

 

; cse_alife_object properties

game_vertex_id = 3740

distance = 2.0

level_vertex_id = 1139318

object_flags = 0xffffffff

custom_data = <<END

[smart_terrain]

type = general_lager

capacity = 1

communities = zombie

END

 

; cse_shape properties

shapes = shape0

shape0:type = sphere

shape0:offset = 0,0,0

shape0:radius = 35.55957102775574

 

; cse_alife_space_restrictor properties

restrictor_type = 3

 

; se_smart_terrain properties

С зомбиком все окей, а вот ограничение на 30-40м нету. Как сделать правильно? У меня одна локация пока чистая.

Мой архив

Сталкером не занимаюсь.

Ссылка на комментарий

amik, У зомбика ты должен в:

[smart_terrains]
none = true

Поставить вместо none название своего смарта.

А также можешь убрать:

[spawner]
cond = none

Она не нужна тебе в таком виде, нужна, если есть нужные поршни. Также советую почитать это:

Логика

Там с 0 по 2 части говорят про смарттеррейны. Во второй части - про монстровые. А также в последней части по смарттеррейнам есть много нужного.

P.S. Если что - обращайся в ЛС. Я сейчас как раз гулаги и смарты учу, пока получается делать... Ну, если не понятно - спрашиваю у друзей :)

Изменено пользователем Disord
Ссылка на комментарий

amik лучше сделай так

[smart_terrains]
none = true

[logic]
active = mob_home

[mob_home]
path_home = path1 - точка лагеря
home_min_radius = 10 - мин радиус от дома
home_max_radius = 30 - макс радиус от дома

Prefiero morir de pie, que vivir siempre arrodillado.
 

Ссылка на комментарий
amik, (да и для других тоже будет полезным) от себя могу добавить, что радиус смарта или, по другому, гулага - не на что не влияет, лично я его ставлю в две еденицы. Раньше, в более ранних билдах, гулаг "захватывал" НПС под свою логику и дальность "захвата" был именно радиус, сейчас же это делается иначе. Изменено пользователем Куфзук
Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...