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

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

Более подходящей темы увы не нашел.

Есть тут добрые люди, знающие perl? Нужно немного отредактировать АСДС. Саму программу (!!!), а не all.spawn.

Изменено пользователем Отшель[НИК]
Ссылка на комментарий

Нужно добавить в АСДС секции с аномалиями. Пробовал сам, но из-за моей криворукости и незнания выдает ошибку. :)

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

Отшель[НИК],

на acdc_cs.pl или какой там у тебя, нажимаешь правой кнопкой -> изменить, или открыть с помощью, блокнота.

ищешь секции с аномалиями (правка -> найти в блокноте,)

например под етой :

zone_zharka_static            => 'se_zone_anom',
    zone_zharka_static_weak            => 'se_zone_anom',
    zone_zharka_static_average        => 'se_zone_anom',
    zone_zharka_static_strong        => 'se_zone_anom',

 

 

пишешь свою секцию(или секции, взависимости от профилей аномалий) , 3 раза tab щелкаешь и пишешь

=> 'se_zone_anom',

 

 

А что за аномалии сделал? и как делал?

Что-то кончается, что-то начинается...

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

Други. Если бы все было так просто, я бы не спрашивал на форуме :)

 

Итак объясню все с самого начала. Есть асдс от АМК, и есть асдс от Симбиона.

В АМК содержаться следующие строки:

    amk_zone_mincer_weak            =>    'se_zone_anom',    
    amk_zone_mincer_average            =>    'se_zone_anom',
    amk_zone_mincer_strong            =>    'se_zone_anom',    
    amk_zone_witches_galantine        =>    'se_zone_anom',
    amk_zone_zharka_static_weak        =>    'se_zone_anom',    
    amk_zone_zharka_static_average    =>    'se_zone_anom',
    amk_zone_zharka_static_strong    =>    'se_zone_anom',
    amk_zone_mosquito_bald_weak        =>    'se_zone_anom',
    amk_zone_mosquito_bald_average    =>    'se_zone_anom',    
    amk_zone_mosquito_bald_strong    =>    'se_zone_anom',
    amk_zone_buzz                    =>    'se_zone_anom',
    amk_zone_buzz_weak                =>    'se_zone_anom',
    amk_zone_buzz_average            =>    'se_zone_anom',
    amk_zone_buzz_strong            =>    'se_zone_anom',

 

В симбионе таких строк нет. Но есть следующие:

#[+1]
    m_zone_buzz                => 'se_zone_anom',
    m_zone_buzz_weak                => 'se_zone_anom',
    m_zone_buzz_average            => 'se_zone_anom',
    m_zone_buzz_strong            => 'se_zone_anom',
#[+2]
    m_zone_gravi_zone                => 'se_zone_anom',
    m_zone_gravi_zone_weak            => 'se_zone_anom',
    m_zone_gravi_zone_average            => 'se_zone_anom',
    m_zone_gravi_zone_strong            => 'se_zone_anom',
#[+3]
    m_zone_mincer                => 'se_zone_anom',
    m_zone_mincer_weak            => 'se_zone_anom',
    m_zone_mincer_weak_noart            => 'se_zone_anom',
    m_zone_mincer_average            => 'se_zone_anom',
    m_zone_mincer_strong            => 'se_zone_anom',
#[+4]
    m_zone_mosquito_bald            => 'se_zone_anom',
    m_zone_mosquito_bald_weak            => 'se_zone_anom',
    m_zone_mosquito_bald_weak_noart        => 'se_zone_anom',
    m_zone_mosquito_bald_average        => 'se_zone_anom',
    m_zone_mosquito_bald_strong        => 'se_zone_anom',
    m_zone_mosquito_bald_strong_noart        => 'se_zone_anom',
#[+5]
    m_zone_witches_galantine            => 'se_zone_anom',
    m_zone_witches_galantine_weak        => 'se_zone_anom',
    m_zone_witches_galantine_average        => 'se_zone_anom',
    m_zone_witches_galantine_strong        => 'se_zone_anom',
    m_zone_witches_galantine_safe        => 'se_zone_anom',
#[+6]
    m_zone_zharka_static            => 'se_zone_anom',
    m_zone_zharka_static_weak            => 'se_zone_anom',
    m_zone_zharka_static_average        => 'se_zone_anom',
    m_zone_zharka_static_strong        => 'se_zone_anom',

 

Естественно в АМК их нет.

 

Я пробовал заменять, пробовал добавлять строки из симбиона в амк, но всегда выдавалась ошибка с руганью на файл ini_file.pm и строку 156 в нем.

Вот и не знаю что делать?

 

ЗЫ: не спрашивайте зачем мне это)) Объяснять довольно долго и трудно...

Изменено пользователем Отшель[НИК]
Ссылка на комментарий

Отшель[НИК],

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

Если есть новые аномалии, то не те что ты написал...

Что-то кончается, что-то начинается...

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

Тогда я не понимаю почему в самом all.spawn-е прописаны именно они (те оторые я написал), а не "родные"...

И если ты прав, то что тогда делать? Заменить названия на те, которые есть в АМК и ничего не менять в самой программе?

Изменено пользователем Отшель[НИК]
Ссылка на комментарий

Отшель[НИК],

Может просто родные аномалии в симбионе переименовали? добавили им m_zone_buzz

 

вот у меня на чистой

zone_buzz                => 'se_zone_anom',
    zone_buzz_weak                => 'se_zone_anom',
    zone_buzz_average            => 'se_zone_anom',
    zone_buzz_strong            => 'se_zone_anom',

 

Распакуй аллспаун симбиона, и в каждом алайв,файле поищи m_zone_zharka_static, если найдешь, значит это аномалия спаунена на уровне, значит и конфиги аномалий в симбионе другие,:

1)Или они просто аномалии переименовали в конфигах, и в секциях аллспауна.

2)Или это новые аномалии и спаунены вместе с обычными.

Если найдешь и m_zone_zharka_static и zone_zharka_static, значит это новые аномалии спаунены вместе с родными, если только первое то аномалии перименованы, у меня нет етого мода, так что ничего более конкретного сказать не моуг, так что-ты хочешь? я послушаю хоть и мутарно?

Что-то кончается, что-то начинается...

Ссылка на комментарий
Если найдешь и m_zone_zharka_static и zone_zharka_static, значит это новые аномалии спаунены вместе с родными

Так и есть. Там и те и те...

 

И как тогда перенести эти m_zone..... чтобы при компиляции спавна не было ошибки?

 

Поковырял щас конфиги. m_zone используются для динамических аномалий. На сколько я понял эти м_зона... убирают аномалии со старых мест. Т.е. происходит антиспавн аномалий.

Изменено пользователем Отшель[НИК]
Ссылка на комментарий

Отшель[НИК],

Тыды еще проще, я даже не думал что там динамки стоят, я даже не знаю, почему у тебя идет ошибка,старано,

но если ты в в плагин открытый блокнотом под секциями других аномалий добавишь вот так:

m_zone_buzz                => 'se_zone_anom',
    m_zone_buzz_weak                => 'se_zone_anom',
    m_zone_buzz_average            => 'se_zone_anom',
    m_zone_buzz_strong            => 'se_zone_anom',

    m_zone_gravi_zone                => 'se_zone_anom',
    m_zone_gravi_zone_weak            => 'se_zone_anom',
    m_zone_gravi_zone_average            => 'se_zone_anom',
    m_zone_gravi_zone_strong            => 'se_zone_anom',

    m_zone_mincer                => 'se_zone_anom',
    m_zone_mincer_weak            => 'se_zone_anom',
    m_zone_mincer_weak_noart            => 'se_zone_anom',
    m_zone_mincer_average            => 'se_zone_anom',
    m_zone_mincer_strong            => 'se_zone_anom',

    m_zone_mosquito_bald            => 'se_zone_anom',
    m_zone_mosquito_bald_weak            => 'se_zone_anom',
    m_zone_mosquito_bald_weak_noart        => 'se_zone_anom',
    m_zone_mosquito_bald_average        => 'se_zone_anom',
    m_zone_mosquito_bald_strong        => 'se_zone_anom',
    m_zone_mosquito_bald_strong_noart        => 'se_zone_anom',

    m_zone_witches_galantine            => 'se_zone_anom',
    m_zone_witches_galantine_weak        => 'se_zone_anom',
    m_zone_witches_galantine_average        => 'se_zone_anom',
    m_zone_witches_galantine_strong        => 'se_zone_anom',
    m_zone_witches_galantine_safe        => 'se_zone_anom',

    m_zone_zharka_static            => 'se_zone_anom',
    m_zone_zharka_static_weak            => 'se_zone_anom',
    m_zone_zharka_static_average        => 'se_zone_anom',
    m_zone_zharka_static_strong        => 'se_zone_anom',

 

то вылета быть не должно.

 

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

Что-то кончается, что-то начинается...

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

Попробовал - все равно не помогает.... Блин не знаю что делать.

 

Самое смешное то, что когда этих секций вообще нет, то он говорит что не может прочесть секцию к примеру m_zone_mincer => 'se_zone_anom',

А когда их добавляешь, то ругается на ini_file (((

 

Т.е. он их все таки воспринимает, но что то все равно не так((

 

Вопрос снимается.

Изменено пользователем Отшель[НИК]
Ссылка на комментарий

можно спавнером переносить объекты-открываешь исходный алл берешь объект,заносишь в базу-затем другой и из базы уже в алл спавн(правда кажется он после этого неразборный становится)

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

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

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

Ребята, такая вот проблема, автора спрашивал, он молчит., вообщем скачал скрипт Шокера аномалии на болотах, там аномалии спаунятся на болота, вот два файла ( янемного правил под монстров)

--'******************************************************
--'*    Биндер объекта группировки.
--'******************************************************
function bind(obj)
    obj:bind_object(faction_binder(obj))
end

class "faction_binder" (object_binder)
function faction_binder:__init(obj) super(obj)
end
function faction_binder:net_spawn(server_object)
    if not object_binder.net_spawn(self, server_object) then
        return false
    end

    --' получить ссылку на настоящий серверный объект
    self.faction = alife():object(self.object:id())

    return true
end
function faction_binder:update(delta)
    object_binder.update(self, delta)

    self.faction:update()
    new_monsters.main()
end

 

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

local actor = db.actor

function main()
spawn_all()
end

--Спавним все аномалии
function spawn_all(respawn)
if load("spawn_anom",false)==false or respawn==true then




-- Бюрреры на болотах
   


spawn("burer_weak",vector():set(-170.53266906738,0.67925143241882,-312.03155517578),1,135)
    

   save("spawn_anom",true)
end
end

function create_anom(section,rad_anom,x,y,z,lv,gv,mode)
        --   con(section)
      if gv==nil then gv=db.actor:game_vertex_id() end
      if lv==nil then lv=db.actor:level_vertex_id() end
      if pos==nil then pos=db.actor:position() end

      local p_obj = alife():create(section,vector():set(x,y,z),lv,gv)

      local packet = net_packet()
      packet:w_begin(0)
      p_obj:STATE_Write(packet)
      packet:r_seek(2)

    local game_vertex_id = packet:r_u16()
    local cse_alife_object__unk1_f32 = packet:r_float()
    local cse_alife_object__unk2_u32 = packet:r_s32()
    local level_vertex_id = packet:r_s32()
    local object_flags = packet:r_s32()
    local custom_data = packet:r_stringZ()
    local story_id = packet:r_s32()
    local cse_alife_object__unk3_u32 = packet:r_s32()

    local shape_count = packet:r_u8()
    for i=1,shape_count do
        local shape_type = packet:r_u8()
        if shape_type == 0 then
            local center = packet:r_vec3()
            local radius = packet:r_float()
        else
            local box = packet:r_matrix()
        end
    end

    local restrictor_type = packet:r_u8()

    local cse_alife_custom_zone__unk1_f32 = packet:r_float()
    local cse_alife_custom_zone__unk2_u32 = packet:r_s32()
    local on_off_mode_enabled_time = packet:r_s32()
    local on_off_mode_disabled_time = packet:r_s32()
    local on_off_mode_shift_time = packet:r_s32()

    local offline_interactive_radius = packet:r_float()
    local artefact_spawn_places_count = packet:r_u16()
    local cse_alife_anomalous_zone__unk1_u32 = packet:r_s32()

    local last_spawn_time_present = packet:r_u8()

--    if packet:r_elapsed() ~= 0 then abort("left=%d", packet:r_elapsed()) end

    packet:w_u16(game_vertex_id)
    packet:w_float(cse_alife_object__unk1_f32)
    packet:w_s32(cse_alife_object__unk2_u32)
    packet:w_s32(level_vertex_id)
    packet:w_s32(object_flags)
    if mode~=nil then custom_data = mode end
    packet:w_stringZ(custom_data)
    packet:w_s32(story_id)
    packet:w_s32(cse_alife_object__unk3_u32)

    packet:w_u8(1)
    packet:w_u8(0)
    local sphere_center = vector()
    sphere_center:set(0, 0, 0)
    packet:w_vec3(sphere_center)
    radius = rad_anom
    packet:w_float(radius)

    packet:w_u8(restrictor_type)

    packet:w_float(cse_alife_custom_zone__unk1_f32)
    cse_alife_custom_zone__unk2_u32 = bit_not(0)
    packet:w_s32(cse_alife_custom_zone__unk2_u32)
    packet:w_s32(on_off_mode_enabled_time)
    packet:w_s32(on_off_mode_disabled_time)
    packet:w_s32(on_off_mode_shift_time)

    packet:w_float(offline_interactive_radius)
    packet:w_u16(artefact_spawn_places_count)
    packet:w_s32(cse_alife_anomalous_zone__unk1_u32)

if mode == nil then

    packet:w_u8(last_spawn_time_present)
end
    p_obj:STATE_Read(packet, packet:w_tell()-packet:r_tell())
  --    add_spot_on_map(p_obj.id,"red_location","Аномалия")


    return p_obj
end


-- Вывод инфы в консоль
function con(msg)
get_console():execute(msg)
end


-- Записываем переменную
function save(variable_name, value)
    xr_logic.pstor_store(db.actor, variable_name, value)
end

-- Загружаем переменную
function load(variable_name, value_if_not_found)
    return xr_logic.pstor_retrieve(db.actor, variable_name, value_if_not_found)
end

-- Удаляем переменную
function del(variable_name)
    if db.storage[db.actor:id()].pstor[variable_name] then
        db.storage[db.actor:id()].pstor[variable_name] = nil
    end
end

-- Функция спауна объекта
function spawn(section,pos,lv,gv)

--    vector():set(x,y,z) 

      if gv==nil then gv=db.actor:game_vertex_id() end
      if lv==nil then lv=db.actor:level_vertex_id() end
      if pos==nil then pos=db.actor:position() end

      if section==nil then
      con("Не_указанная_секция")
      else
      return alife():create(section,pos,lv,gv)
      end

end

 

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

 

Потом думал и решил этим же скриптом спаунить арты(он для егтого и был) , но чтоб этот скрипт в определенный момент времени спаунил их, ну проще говоря, куда прописать время(допустим каждые 36 часов), чтоб он оспаунил эти арты каждые 36 часов, ане зависимости от того брал ли ты предыдыщий или нет, это вообще можно сделать?

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

Что-то кончается, что-то начинается...

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

Vano_Santuri, Да можно....

Тебе нужен будет скрипт от АМК(amk.script)

в нём смотри функцию _g_start_timer ,потом _do_timer_action(select_string,params_string)..

к примеру гденить в начале игры стартуешь таймер

..

amk.g_start_timer("my_respawner",0,32,0)

..

потом в _do_timer_action

 

if select_string=="my_respawner" then

--вызов твойх функций

...

amk.g_start_timer("my_respawner",0,32,0)--стартуем таймер заново...

end

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

меченый(стрелок),

Получилось, спс, а таймер я стартовал через амк_мод.скрипт(у меня спальник от них) там и таймеры пописаны)))

Что-то кончается, что-то начинается...

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

Ребят простите если ламерский вопрос, но что лучше для спауна: скрипт или алл.спавн?

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

Смотря что спавнить. Предметы - script. НПС - spawn.

Vano_Santuri, пожалуйста.

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

А если через алл.спавн делаю, то предмет (нпс) появится сразу после начала новой игры? или можно этим путём сделать так, чтоб он появился после выполнения мною чего-либо (прим. квеста)

 

и ещё: к примеру у меня есть координаты:

position = -139.449829101563,-29.6908683776855,-351.492797851563

обязательно писать их такими длинными? можно к примеру написать?

position = -139.4,-29.6,-351.4

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

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

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

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

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

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

Войти

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

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

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