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

Скриптование


Svoboда

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

(изменено)

Всем привет,

Спавнил аномалии в рандомных точках на трех локациях (ЧАЭС,Припять(из ТЧ) и Затон ) таким скриптом(для каждой локи свой файл)

local anoms = {

"zone_mine_thermal",

"zone_mine_electric_weak",

"zone_mine_electric_strong",

"zone_mine_acidic",

"zone_mine_acidic",

"zone_mine_gravitational_weak",

"zone_mine_gravitational_strong",

"zone_mine_gravitational_strong",

"zone_mine_gravitational_strong"

}

 

 

 

function random_spawn1()

for i=1,500 do

local section = anoms[math.random(table.getn(anoms))]

local var = spawn_anom(section,

math.random(1,6),

level.vertex_position(math.random(1,1851251)),

math.random(1,1851251),

math.random(0,317),

math.random(1,3))

end

end

function spawn_anom(anom_name,plosh,position,level_vertex_id,game_vertex_id,powers_a,time

_dangeros)

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

 

 

 

 

 

 

Вызывал черес db.script

function add_actor( obj )

actor = obj

actor_proxy:net_spawn( obj )

add_obj( obj )

if not db.actor:has_info("anom_spawned")

then

pripyat1.random_spawn()

aes1.random_spawn_aes1()

opx.random_spawn1()

this.actor:give_info_portion("anom_spawned")

end

end

 

 

 

В итоге на ЧАЭС аномалии спавнятся нормально, в Припяти ни одной, а при переходе на затон вылет

FATAL ERROR

 

[error]Expression : it!=WeatherFXs.end()

[error]Function : CEnvironment::SetWeatherFX

[error]File : D:\prog_repository\sources\trunk\xrEngine\Environment.cpp

[error]Line : 311

[error]Description : Invalid weather effect name.

[error]Arguments : ©

 

 

stack trace:

 

 

чем это лечить?

 

ЗЫ: спавн происходил в ЗП

Изменено пользователем Горчаков Антон

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


Ссылка на сообщение
(изменено)

Kirag, про погоду я и сам догадался ,но я её ни где не менял

у меня в папке геймдата только необходимый минимум для работы уровней(погода везде динамик_дефаулт) т.е погода везде стандартная . Если отключить скрипт аномалий на Затоне то уровень нормально грузится

 

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

 

Не подскажеш как проверку наваять...

 

 

Kirag,

Списибо, аномалии появляются везде, а также исчез вылет на затоне(видать изза аномалий глючило)

Изменено пользователем Горчаков Антон

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


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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

AMK-Team.ru

×
×
  • Создать...