Скриптование - Скрипты / конфиги / движок - AMK Team
Перейти к контенту

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

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


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

 
 

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

 

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

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

 

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

 

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

 

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

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


  • Спасибо 1
  • Полезно 1
Ссылка на комментарий
https://www.amk-team.ru/forum/topic/6185-skriptovanie/

XMK

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

  • Спасибо 1

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

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

 

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

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

sasha47007,

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

  • Согласен 1

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

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 пользователей

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