8 480 сообщений в этой теме

Тема для обсуждения скриптов всего и всех в серии игр STALKER.

Задавая вопрос (!):
1. Внимательно изучите суть вопроса. Вопрос должен соответствовать выбранной Вами темы. Это поможет сохранить порядок и читабельность темы, а также облегчит поиск и понимание сего;
2. Изучите то, что уже есть в теме (пролистайте "руками", воспользуйтесь поиском на форуме);
3. Изучите информацию которая может вам помочь:

"

Stalkerin". Там есть много хороших статей касательно данной темы.
"Уроки по модостроению". Есть рабочие примеры готовых скриптов различного назначения.

Справочное руководство по языку Lua 5.1

https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/ru
"Справочник по функциям и классам". Собрано много информации по функциям и классам, не всем, но по основные сведения предоставлены.

Логика со вступлением и четырьмя частями:

Всупление : ссылка;
Часть первая;
Часть вторая;
Часть третья;
Часть четвертая.


Smart_terrain (в простонароде - гулаг)
Интересный способ настроики логики для гулагов

Скриптовая часть игровой логики

 

4. Дабы не превращать обсуждение в "кашу" разной информативной направленности, задавайте несколько вопросов по порядку (в разных постах) после того, как получите ответ на предыдущий вопрос;
5. "Спасибо" и тому подобное - будьте так любезны в ПМ. Если не любите писать в ПМ, в конце вопроса напишите фразу: "Заранее спасибо!" - или что-то в этом духе;
6. ПОЖАЛУЙСТА! Указывайте, для какой игры Вам необходима информация (ТЧ, ЧН, ЗП), если стоит мод - укажите название мода;
7. Если Вы что-то сделали и результат не такой, какой Вами задумывался, то, пожалуйста, приводите коды которые Вы изменяли/писали целиком! Это поможет другим правильно ответить на Ваш вопрос, а также оградит Вас от лишней писанины.
8. Оформляйте сообщение. Пользуйтесь тегами для того, чтобы отделить код от текста. Пишите грамотно - ПОЛЬЗУЙТЕСЬ ЗНАКАМИ ПРЕПИНАНИЯ.
9. И помните: «Правильно заданный вопрос – половина ответа».

Какие вопросы следует задавать, а какие нет...

Читать рекомендуется.]Задавайте вопросы, которые касаются непосредственно скриптов и их работы, т.е. Вы что-то делаете, а у Вас что-то не получается, при этом у Вас на руках должен быть хотя бы какой-то код, свидетельствующий о Вашей причастности к вопросу.

Вопросы которые будут удалятся, следовательно их задавать не нужно:
-- Где находится та или иная функция?
Для ответа используем поиск по словам среди файлов оригинальной игры или мода, если объект поиска относится к нему, при помощью программы, которая Вам наиболее симпатизирует;
-- Как сделать что-то/то-то?
С подобными вопросами, либо в "ковырялки", где Вам вероятнее всего так же не ответят, либо выдвигаем мысли, подкреплённые теорией, практикой (идеальный вариант) и здравым рассудком;
-- Вопросы со смыслом: "сделайте", "совместите" и подобными глаголами повелительного наклонения.
-- К тому же удалению будут подвергаться вопросы, в которых масштабно не используются теги, для отделения кода и цитат от основного текста, а также не вписан в спойлер код размером превышающие семь строк.
Ответ на возможно возникший вопрос:В какую тему можно обратиться по поводу логики и спавна объектов?
В тему "ковырялок" соответствующей версии игры, для которой Вы задаёте вопрос.

И последнее: очень рекомендовано к прочтению правила форума

Изменено пользователем Dennis_Chikin

  • http://www.amk-team.ru/forum/uploads//ratings/wrench_orange.png × 1

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

сталкнулся с такой проблемой...

 

а как заспавнить труп?? желательно через скрипт..

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

XMK

По-моему через скрипт заспаунить сразу мертвого не получится, можно конечно его потом убить функцией npc:kill(npc) где npc это ссылка на непися, а через all.spawn спауниться без проблем, в параметрах объекта выстави health = 0 и upd:health = 0 и вроде все.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

вот так вот будет работать?

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

 

function dead_body_spawn()
    alife():create("чувак 1",vector():set(-243.6, -0.67, 309.62), 366014, 20)
    npc:kill("чувак 1")
end

 

и еще npc:kill("чувак 1") - чувак 1 писать в кавычках или без?

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

XMK

Несовсем, попробуй вот так, должно сработать:

function dead_body_spawn()
    npc=alife():create("чувак 1",vector():set(-243.6, -0.67, 309.62), 366014, 20)
    npc:kill(npc)
end

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
бить функцией npc:kill(npc) где npc это ссылка на непися

 

раз npc это ссылка на непися то возможно все таки прописать непися ?

 

щас попробую так и так

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
...

а как заспавнить труп?? желательно через скрипт..

 

 

Попробуй так:

 

function spawn_trup_npc()

local obj = alife():create("здесь профиль твоего нпс",vector():set(-45.41, 19.18, 5.84), 2340, 1530)

local tbl = amk.read_stalker_params(obj)

tbl.custom="[known_info]\nможно вставить инфопоршен" -- эту строку можно убрать. Она для выдачи инфопоршена при обыске трупа.

tbl.sid = 481543 -- id

tbl.health = 0

tbl.updhealth = 0

amk.write_stalker_params(tbl, obj)

end

 

Изменено пользователем banderos

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Влад,

Ты посмотри мод Hand Teleport. Там как раз сделано по этой статье. Сравнивай статью и файлы мода и все поймешь.

 

мож написать,попонятнее,что и куда писать?

Ты хоть начни делать-то. Если просто читать ничего понятно не будет. На практике все познается.

Изменено пользователем Kostya V

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Kostya V

спс за наводку,но я так и не понял что и как...

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

Ты хоть начни делать-то. Если просто читать ничего понятно не будет. На практике все познается.

Начал.Попробывал загрузить сейв =>вылет

Expression : fatal error

Function : CInifile::r_string

File : E:\stalker\patch_1_0004\xrCore\Xr_ini.cpp

Line : 352

Description : <no expression>

Arguments : Can't find variable hospital in [radiation_strength]

 

в zone_teleport.ltx вписал [m_teleport_hospital_dira]:zone_teleport

teleport = standart

script_binding = bind_mteleport.bind

radius = 2

z_radius = 2

poz_x = -104.20769500732

poz_y = 27.536497116089

poz_z = 631.65075683594

rotate = 1.5

в spawn_teleport.script вписал local obj

local a = vector()

a.x = -101.09741210938

a.y = 32.127510070801

a.z = 631.62628173828

obj = alife():create("m_teleport_hospital_dira",a,12829,8,65535)

 

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

Изменено пользователем Влад

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Влад,

Влад, ты что делаешь? Телепорты или переходы между локациями? Так как это разные вещи, делать их надо по-разному. В той статье, которую ты указал создаются телепорты, которые действуют только в пределах локации, на которой находится ГГ.

Если тебе нужно создать переход на другую локацию, то это делается совсем по другой статье.

Посмотри в моде Hand Teleport файл spawn_level_changer.script. Там уже все готово для создания таких переходов. Пропиши вот это в свой скриптовый файл:

 

function create_level_changer(

p_story_id, -- STORY_ID нового level_changer (понадобится нам позже)

p_position, -- вектор, координаты точки, в которой будет располагаться центр нового level_changer

p_lvertex_id, -- level_vertext_id - идентифицируют уровень, на котором будет создан level_changer

p_gvertex_id, -- game_vertext_id

 

p_dest_lv, -- level_vertex_id - идентифицируют уровень, на который level_changer будет перебрасывать игрока

p_dest_gv, -- game_vertex_id

p_dest_pos, -- координаты точки, в которой на новом уровне окажется игрок

p_dest_dir, -- направрение взгляда игрока

p_dest_level, -- название уровня, например "L11_Pripyat"

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

)

local obj = alife():create("level_changer", p_position, p_lvertex_id, p_gvertex_id)

 

level.map_add_object_spot(obj.id, "level_changer", "")

 

local packet = net_packet()

obj:STATE_Write(packet)

 

-- свойства cse_alife_object

local game_vertex_id = packet:r_u16()

local cse_alife_object__unk1_f32 = packet:r_float()

local cse_alife_object__unk2_u32 = packet:r_u32()

local level_vertex_id = packet:r_u32()

local object_flags = packet:r_u32()

local custom_data = packet:r_stringZ()

local story_id = packet:r_u32()

local spawn_story_id = packet:r_u32()

 

-- свойства cse_shape

local shape_count = packet:r_u8()

for i=1,shape_count do

local shape_type = packet:r_u8()

if shape_type == 0 then

-- sphere

local center = packet:r_vec3()

local radius = packet:r_float()

else

-- box

local axis_x_x = packet:r_float()

local axis_x_y = packet:r_float()

local axis_x_z = packet:r_float()

local axis_y_x = packet:r_float()

local axis_y_y = packet:r_float()

local axis_y_z = packet:r_float()

local axis_z_x = packet:r_float()

local axis_z_y = packet:r_float()

local axis_z_z = packet:r_float()

local offset_x = packet:r_float()

local offset_y = packet:r_float()

local offset_z = packet:r_float()

end

end

 

-- свойства cse_alife_space_restrictor

local restrictor_type = packet:r_u8()

 

-- свойства cse_level_changer

local dest_game_vertex_id = packet:r_u16()

local dest_level_vertex_id = packet:r_u32()

local dest_position = packet:r_vec3()

local dest_direction = packet:r_vec3()

local dest_level_name = packet:r_stringZ()

local dest_graph_point = packet:r_stringZ()

local silent_mode = packet:r_u8()

 

 

packet:w_begin(game_vertex_id) -- game_vertex_id

packet:w_float(cse_alife_object__unk1_f32)

packet:w_u32(cse_alife_object__unk2_u32)

packet:w_u32(level_vertex_id) -- level_vertex_id

packet:w_u32( bit_not(193) ) -- object_flags = -193 = 0xFFFFFF3E

packet:w_stringZ(custom_data)

packet:w_u32(p_story_id) -- story_id

packet:w_u32(spawn_story_id)

 

packet:w_u8(1) -- количество фигур

-- packet:w_u8(0) -- тип фигуры: сфера

-- packet:w_vec3(vector():set(0, 0, 0)) -- sphere_center

-- packet:w_float(3.0)

packet:w_u8(1) -- тип фигуры: box

packet:w_float(2) -- axis_x_x

packet:w_float(0) -- axis_x_y

packet:w_float(0) -- axis_x_z

packet:w_float(0) -- axis_y_x

packet:w_float(4) -- axis_y_y

packet:w_float(0) -- axis_y_z

packet:w_float(0) -- axis_z_x

packet:w_float(0) -- axis_z_y

packet:w_float(4) -- axis_z_z

packet:w_float(0) -- offset_x

packet:w_float(0) -- offset_y

packet:w_float(0) -- offset_z

 

packet:w_u8(3) -- restrictor_type

 

packet:w_u16(p_dest_gv) -- destination game_vertex_id

packet:w_s32(p_dest_lv) -- destination level_vertex_id

packet:w_vec3(p_dest_pos) -- destination position

packet:w_vec3(p_dest_dir) -- destination direction (направление взгляда)

packet:w_stringZ(p_dest_level) -- destination level name

packet:w_stringZ("start_actor_02") -- some string, always const

packet:w_u8(p_silent) -- 1 for silent level changing

 

packet:r_seek(0)

obj:STATE_Read(packet, packet:w_tell())

level.add_pp_effector ("teleport.ppe", 2006, false)

 

end

 

 

function exit_as()

create_level_changer(11077, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(),

28719,

1758,

vector():set(-317.23675537109,-26.327833175659,55.278633117676),

vector():set(0.0, 0.0, 0.0),

"l07_military",

1)

end

 

 

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

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
Влад,

Влад, ты что делаешь? Телепорты или переходы между локациями? Так как это разные вещи, делать их надо по-разному. В той статье, которую ты указал создаются телепорты, которые действуют только в пределах локации, на которой находится ГГ.

 

-- Получение параметров лч.

function get_lc_data(obj)

local packet = net_packet()

obj:STATE_Write(packet)

local size=packet:w_tell()

packet:r_seek(0)

 

local t={}

t.game_vertex_id = packet:r_u16()

t.distance = packet:r_float()

t.direct_control = packet:r_s32()

t.level_vertex_id = packet:r_s32()

t.object_flags = packet:r_s32()

t.custom_data = packet:r_stringZ()

t.story_id = packet:r_s32()

t.spawn_story_id = packet:r_s32()

local shape_count = packet:r_u8()

t.shapes={}

for i=1,shape_count do

local shape_type = packet:r_u8()

t.shapes<I>={}

t.shapes.shtype=shape_type

if shape_type == 0 then

t.shapes.center = packet:r_vec3()

t.shapes.radius = packet:r_float()

else

t.shapes.v1 = packet:r_vec3()

t.shapes.v2 = packet:r_vec3()

t.shapes.v3 = packet:r_vec3()

t.shapes.offset = packet:r_vec3()

end

end

t.restrictor_type = packet:r_u8()

t.dest_game_vertex_id = packet:r_u16()

t.dest_level_vertex_id = packet:r_s32()

t.dest_position = packet:r_vec3()

t.dest_direction = packet:r_vec3()

t.dest_level_name = packet:r_stringZ()

t.dest_graph_point = packet:r_stringZ()

t.silent_mode = packet:r_u8()

if packet:r_elapsed() ~= 0 then

abort("left=%d", packet:r_elapsed())

end

return t

end

 

-- Запись параметров лч.

function set_lc_data(t,obj)

local packet = net_packet()

packet:w_begin(t.game_vertex_id)

packet:w_float(t.distance)

packet:w_s32(t.direct_control)

packet:w_s32(t.level_vertex_id)

packet:w_s32(t.object_flags)

packet:w_stringZ(t.custom_data)

packet:w_s32(t.story_id)

packet:w_s32(t.spawn_story_id)

packet:w_u8(table.getn(t.shapes))

for i=1,table.getn(t.shapes) do

packet:w_u8(t.shapes.shtype)

if t.shapes.shtype == 0 then

packet:w_vec3(t.shapes.center)

packet:w_float(t.shapes.radius)

else

packet:w_vec3(t.shapes.v1)

packet:w_vec3(t.shapes.v2)

packet:w_vec3(t.shapes.v3)

packet:w_vec3(t.shapes.offset)

end

end

packet:w_u8(t.restrictor_type)

packet:w_u16(t.dest_game_vertex_id)

packet:w_s32(t.dest_level_vertex_id)

packet:w_vec3(t.dest_position)

packet:w_vec3(t.dest_direction)

packet:w_stringZ(t.dest_level_name)

packet:w_stringZ(t.dest_graph_point)

packet:w_u8(t.silent_mode)

packet:r_seek(0)

obj:STATE_Read(packet, packet:w_tell())

end

 

-- Создание лч и перемещение ГГ(Автор Xiani).

function start_jump_to(x,y,z,lv, gv, dx, dy, dz, level_name)

amk.mylog("jump:create_lc")

local lc = alife():create("level_changer", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id())

amk.mylog("jump:get_lc_data")

local tbl = get_lc_data(lc)

 

local shapes={}

shapes[1]={}

shapes[1].shtype=0

shapes[1].radius = 10

shapes[1].center = vector():set(0,0,0)

 

tbl.shapes = shapes

 

tbl.dest_level_name = level_name

tbl.dest_position = vector():set(x,y,z)

tbl.dest_direction = vector():set(dx,dy,dz)

tbl.dest_game_vertex_id = gv

tbl.dest_level_vertex_id = lv

tbl.silent_mode = 1

tbl.story_id = 8657

 

amk.mylog("jump:set_lc_data")

set_lc_data(tbl,lc)

 

db.actor:set_actor_position(lc.position)

amk.mylog("jump:finished")

end

А использовать просто:

function road_to_yantar(actor, npc)

dialogs.relocate_money(npc, 3500, "out")

start_jump_to(29.146209716797,-11.688985824585,-279.86639404297,54978,1480, 0,0,0,"L08_yantar")

end -- попадёшь в бункер к Сахарову.

 

Строгое предупреждение от администратора _And_
сутки <только чтение> за оверквотинг, цитату урезал!
Изменено пользователем DiGGeR

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Такс...другой вопрос.

Как сделать что бы при получени инфопоршня,непись говорил что-то?

Пример,если не поняли что я хо:

стоит НПЦ спиной ко мне,я подхожу к нему,но на растоянии в 10 метров он начал говорить что-то.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

я сам новичек в этом деле но это легко поэтому знаю во первых инфопоршн не нужен

нужно прописать ему логику

[logic]
active=sleeper
trade = misc\trade_prapor.ltx---основная логика
on_death = death

[sleeper]
path_main=esc_blokpost_prapor_main1
on_actor_dist_le_nvis = 2 |remark@esc_prapor--------если актер ближе двух метров выполнить

[remark@esc_prapor]
snd =  esc_saw--вот сдесь название звуковой схемы
anim = eat_vodka---------------------------------что выполнить (сесеть,выпить водки ,сказать фразу)
target = actor
meet = no_meet
on_signal = sound_end| remark@esc_prapor_go------по окончании проигрыша звука выполнить

[remark@esc_prapor_go]
path_rest=rest-------все что угодно(просто у меня так)
anim = sit
target = actor
meet = meet@esc_prapor_meet

--пользоваться сполером не умею

Изменено пользователем ColR_iT

  • http://www.amk-team.ru/forum/uploads//ratings/spellcheck.png × 1

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как через all.spawn заспаунить space_restrictor чтобы при заходе в него выдавался инфопоршень, и чтоб сам space_restrictor заспавнился после получения инфопоршня?

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

sasha47007,

Посмотри в алл.спавне секцию с рестриктором и скопируй себе с подставлением своих координат. А далее этому рестриктору пропиши логику. Рестриктор заспавнится с началом новой игры. Но в логике можно прописать, чтобы он сработал только после получения определенного инфопоршина. А вот как это сделать, можно посмотреть в статьях про логику. Там все доступно написано.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Привет кореша ! может кто помочь отспавнить аномалию(к примеру воронка) около ГГ в трех метрах. Я научился спавнить НПС ,но как вот аномалию ,вообще не пойму и не могу найти такую информацию ни в вики ,ни где . Помогите пожалуйста .

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

bandit_Borov

В старой теме меченый(стрелок) отвечал на этот вопрос, воспроизведу его ответ

 

Аномалии просто alife не заспавнишь - рабочую...вот воспользуйся функцией

 

 

function spawn_anom(anom_name,plosh,position,level_vertex_id,game_vertex_id,powers_a,time_danger
os)
local obj = alife():create(anom_name,position,level_vertex_id,game_vertex_id)
local pac = net_packet()
obj:STATE_Write(pac)
local game_vertex_id = pac:r_u16()
local distance = pac:r_float()
local direction = pac:r_u32()
local level_vertex_id = pac:r_u32()
local object_flags = pac:r_s32()
local custom_data = pac:r_stringZ()
local story_id = pac:r_s32()
local spawn_story_id = pac:r_s32()
local shape_count = pac:r_u8()
for i=1,shape_count do
local shape_type = pac:r_u8()
if shape_type == 0 then
local center = pac:r_vec3()
local plosh = pac:r_float()
else
local box = pac:r_matrix()
end
end
local restrikror_type = pac:r_u8()
local powers = pac:r_float()
local owner_id = pac:r_s32()
local on_off_mode_enabled_time = pac:r_u32()
local on_off_mode_disabled_time = pac:r_u32()
local on_off_mode_shift_time = pac:r_u32()
local offline_interactive_radius = pac:r_float()
local artefact_spawn_places_count = pac:r_u16()
local artefact_position_offset = pac:r_s32()
local last_spawn_time_present = pac:r_u8()
if pac:r_elapsed()~= 0 then 
abort("left=%d",pac:r_elapsed())
end
pac:w_begin(game_vertex_id)
pac:w_float(distance)
pac:w_u32(direction)
pac:w_u32(level_vertex_id)
pac:w_u32(object_flags)
pac:w_stringZ(custom_data)
pac:w_s32(story_id)
pac:w_s32(spawn_story_id)
pac:w_u8(1)
pac:w_u8(0)
local sphere_center = vector()
sphere_center:set(0,0,0)
pac:w_vec3(sphere_center)
pac:w_float(plosh)
pac:w_u8(restrikror_type)
if powers_a ~= nil then 
powers = powers_a 
end
pac:w_float(powers)
if time_dangeros == nil then 
owner_id = bit_not(0) 
else 
owner_id = time_dangeros 
end
pac:w_u32(owner_id)
pac:w_u32(on_off_mode_enabled_time)
pac:w_u32(on_off_mode_disabled_time)
pac:w_u32(on_off_mode_shift_time)
pac:w_float(offline_interactive_radius)
pac:w_u16(artefact_spawn_places_count)
pac:w_u32(artefact_position_offset)
pac:w_u8(last_spawn_time_present)
pac:r_seek(0)
obj:STATE_Read(pac,pac:w_tell())
return obj
end

спавнить к примеру так

 

local anom_l = {
"секция",
"секция"
}
local level_coor = {
l01_escape = {lvid=595580, gvid=44},
l02_garbage = {lvid=384039, gvid=265},
l03_agroprom = {lvid=438379, gvid=693},
l04_darkvalley = {lvid=392517, gvid=813},
l06_rostok = {lvid=69283, gvid=1311},
l07_military = {lvid=915663, gvid=1546},
l10_radar = {lvid=796328, gvid=1868},
l11_pripyat = {lvid=295965, gvid=2269}
}
function random_spawn()
local gv = level_coor[level.name()]["gvid"]
for i = 1,20 do
local lv = math.random(level_coor[level.name()]["lvid"])
spawn_anom(anom_l[math.random(21)], math.random(3,15), level.vertex_position(lv),lv,gv,math.random(60,90),bit_not(0))
end
end

Я так спавнил радиацию ...Получается отлично...рандомно спавнится

или скачай это ,можешь пользоваться ....

http://depositfiles.com/files/wf3chx3r5

 

 

срабатывала раз ,то можешь в биндер поместить dynamic_anomalies.level_spawn()

а в сам скрипт вставить это

 

function level_spawn()
local level_gg = level.name()
if level_gg == "l01_escape" then
if db.actor:dont_has_info("my1") then
random_spawn()
db.actor:give_info_portion("my1")
end
end
if level_gg == "l02_garbage" then
if db.actor:dont_has_info("my2") then
random_spawn()
db.actor:give_info_portion("my2")
end
end
if level_gg == "l03_agroprom" then
if db.actor:dont_has_info("my3") then
random_spawn()
db.actor:give_info_portion("my3")
end
end
if level_gg == "l04_darkvalley" then
if db.actor:dont_has_info("my4") then
random_spawn()
db.actor:give_info_portion("my4")
end
end
if level_gg == "l06_rostok" then
if db.actor:dont_has_info("my5") then
random_spawn()
db.actor:give_info_portion("my5")
end
end
if level_gg == "l07_military" then
if db.actor:dont_has_info("my6") then
random_spawn()
db.actor:give_info_portion("my6")
end
end
if level_gg == "l10_radar" then
if db.actor:dont_has_info("my7") then
random_spawn()
db.actor:give_info_portion("my7")
end
end
if level_gg == "l11_pripyat" then
if db.actor:dont_has_info("my8") then
random_spawn()
db.actor:give_info_portion("my8")
end
end
end

 

ну и добавить инфопоршни...удачи ..думаю рассказал больше чем надо

 

От себя добавлю, что у меня не все аномалии спавнились без проблем, в частности, непонятки возникали с радиацией и антигравитацией, хотя, возможно, просто руки не оттуда...

Но заспавнить аномалию - это еще полбеды. Реальные проблемы начинаются, когда ее пытаешься честно убрать...

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо за помощь по аномалиям ,но не дошло и не получается ,как дано в описании что именно писать в секции ?. Там была ссылка на готовые динамические аномалии ,но файл удален ,может кто зальет пожалуйста, так надо шо звездец . Я ша объясню что я в итоге хочу может есть у кого . Кто знает забытый проект Симбион 2(Симбион+Прибой) дак вот там так классно летали предметы в гравитационных аномалиях шо амбец. Я вот ша хочу в чистый Прибой это сделать , но не получаеЦа ,пытался выдрать из АМК динамические аномалии , но не по зубам мне. Может есть у кого отдельно мод на динамические аномалии для Теней. Совмещать скрипты умею ,дальше справлюсь. Выручайте пацаны !.

Изменено пользователем bandit_Borov

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спавнить командой spawn_anom(<секция нужной аномалии>,<радиус аномалии>,position,lvid,gvid,<сила аномалии>,-1)

position,lvid,gvid - как в обычном спавне.

У меня работало как надо не со всеми аномалиями, но работало. А чтобы сделать динамические аномалии, одного спавна мало, там нужно еще много чего продумать. Одно убирание аномалий чего стоит. Так и не решил я толком эту задачу. Точнее сделать - сделал, но ТАКИЕ глюки получил, что просто ужас, пришлось отказаться от этой затеи.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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


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

Войти

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


Войти

  • Пользователи, читающие эту тему   0 пользователей

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