Горчаков Антон 0 Опубликовано 3 Июня 2010 (изменено) Всем привет, Спавнил аномалии в рандомных точках на трех локациях (ЧАЭС,Припять(из ТЧ) и Затон ) таким скриптом(для каждой локи свой файл) 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: чем это лечить? ЗЫ: спавн происходил в ЗП Изменено 3 Июня 2010 пользователем Горчаков Антон Поделиться этим сообщением Ссылка на сообщение
Горчаков Антон 0 Опубликовано 3 Июня 2010 (изменено) Kirag, про погоду я и сам догадался ,но я её ни где не менял у меня в папке геймдата только необходимый минимум для работы уровней(погода везде динамик_дефаулт) т.е погода везде стандартная . Если отключить скрипт аномалий на Затоне то уровень нормально грузится На других локациях они тоже должны заспавниться, и тоже будут привязаны к террейну, но к террейну первой локации, на которой функция была вызвана. А то я думаю почему у меня на Припяти один раз заспавнилось штук 5 аномалий и то гдето в воздухе. Не подскажеш как проверку наваять... Kirag, Списибо, аномалии появляются везде, а также исчез вылет на затоне(видать изза аномалий глючило) Изменено 4 Июня 2010 пользователем Горчаков Антон Поделиться этим сообщением Ссылка на сообщение