[SoC] Ковыряемся в файлах - Страница 157 - Скрипты / конфиги / движок - AMK Team
Перейти к контенту

[SoC] Ковыряемся в файлах


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

Gonarh, Мне и надо удалить всех... А за что отвечает esc_prison?

ты не понел, нуно удалить этот рестриктор чтобы вылета небыло, на него повешана проверка находения в нем непися со стори_ид 24, а раз такого нету - нате вам вылет :ny_biggrin:

Строгое предупреждение от модератора n6260
Пишите без ошибок.
118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105

Какой максимальный обьем переменной в ЛУА сталкеровском можно сделать?Если у меня таблица,допустим,килобайт 300 будет - это нормально?

 

====

 

И еще: вот у меня есть обьект.Как мне определить клиентский он или серверный?

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

Krevedko, както так...

class "ggg"
-- вызывать из bind_stalker.actor_binder:update(delta)
function ggg:init()
for i = 0,65535,0 do
local obj = level.object_by_id(i)
if obj:id() and obj:id() == db.actor:id() then
obj = db.actor
end
end
if obj.health >0.1 then
self:gg_bessmerten(obj)
else
self:gg_bessmerten(obj)
end
end
function ggg:gg_bessmerten(obj)
for i = 1,(3-math.floor(16-225/15)-1) do
if obj.health <0.1 then
obj.health = obj.health+1
end
if obj.health >0.1 then
obj.health = obj.health+1
end
if obj.health =0.1 then
obj.health = obj.health+1
end
end
end

 

в bind_stalker.actor_binder:update(delta) (=скрипт bind_stalker, функция actor_binder:update(delta)) пишешь твое_название_скрипта.ggg:init() где название скрипта - тот скрипт,куда ты написанное мной допишешь :)

Лучше создай новый скрипт.

n6260,ахахаха :)

 

gamedata\scripts\bind_stalker.script ('это я продолжил твой путь :) )

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

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

 

Строгое предупреждение от модератора n6260
Пишите грамотно.

 

Добавлено через 6 мин.:

дай путь на файл! пример:D:\STALKER GOLD\STALKER SHADOW OF CHERNOBYL

Моннорох, ты изверг, зачем апдейтер так мучать, да еще класс вешать?!

Достаточно в апдейтере написать

db.actor.health = 1

и все в шоколаде :ny_megalol:

Изменено пользователем Gonarh
118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105

Krevedko

Всё что тебе надо, это gamedata\scripts\bind_stalker.script и в этой же папке свой файл с расширением .script.

Если ты конечно собрался использовать такую систему :lol:

Darien, Не сметь порочить мою систему!Она рабочая на все 100! :D

Gonarh, на самом деле все еще проще - можно почитать шапку темы :)

Изменено пользователем Monnoroch
Какой максимальный обьем переменной в ЛУА сталкеровском можно сделать?Если у меня таблица,допустим,килобайт 300 будет - это нормально?
Это зависит от типа хранимых в этой таблице объектов. Если чисто объекты Lua, то количество ограничено только объёмом свободной памяти. Хотя разумеется, если занять всю память, то это косвенно может сказаться и на хост-программе (на игре то бишь).

Если вдруг в таблице хранятся пользовательские объекты, т.е. объекты игры, то здесь всё зависит от способа хранения конкретных объектов. Сдаётся мне, что для некоторых объектов для хранения выделяется ограниченный пул в памяти.

И еще: вот у меня есть обьект.Как мне определить клиентский он или серверный?
По составу методов и свойств.

К примеру. У всех серверных type(<имя_объекта>.id) вернёт строку "number", а для game_object вернёт соответственно "function"

 

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Monnoroch,

Если ты имеешь в виду разбор в стиле АМК, то чаще всего это обычные данные Lua - строки, числа и т.п. Но вот например vector - уже пользовательский тип. А он вроде как там встречается. Если его на запчасти разобрать, то никаких проблем быть не должно. А может и так не будет, кто его знает...

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Я составляю таблицу полных нетпакетов НПС в онлайне которые.

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

Теперь вот решили сделать как: переписываем пстор и нетпакет.Для этого нужна таблица нетпакетов.Вот я и думаю если в онлайне 60 НПС будет игра не рухнет?

Вот функция которая у меня должна возвращать случайное имя итемса из списка и число вероятности

список обычного вида

[generic_list]

ammo_9x18_fmj = 0.9

ammo_9x18_pmm = 0.9

ammo_9x19_pbp = 0.9

и т.д. сто с лишним строчек

Сама функция все вроде отлично возвращает - (проверял через вывод всех значений функции в консоль)

function test()
    local ini = ini_file("misc\\items_link.ltx")
    if not ini then ini=system_ini() end
    if ini:section_exist("generic_list") then
           local n = ini:line_count("generic_list")
               local key = math.random(n)
                    local result, item, val = ini:r_line("generic_list",key,"","")
  --решил добавить еще этот метод -  так как числа то в списке не целые - но толку никакого
            local num = ini:r_float("generic_list", item) 
        return item, num  
    end
end

(если вместо num вернуть val - то в основном скрипте получал вылет - попытка сравнить число с nil - а в консоли все норм. выводится)

 

но стоит ее вызвать в другом коде - и начинается какая то фигня - то

то вместо чиcла передается nil, то строка, то игра ругается что не может найти переменную в списке... это вот в последний раз.

в списке все имена итемсов игры.

 

function all_secrets()
    local id, pos, lvid, gvid, count
    local n=4999 
    for col=1, 481 do
        local obj = alife():story_object(n+col)
        if obj then
            id = obj.id
                pos = obj.position
                    lvid = obj.m_level_vertex_id
                        gvid = obj.m_game_vertex_id
                           count = math.random(30)
            for i=1, count do
                local item, num = this.test()
                    item =tostring(item)
                        num = tonumber(num)
                if math.random() < num then
                    alife():create(item, pos, lvid, gvid, id)
                end
            end
         end
    end
end

 

В общем пришел к выводу что вылет из-за цикла - сделал вывод в консоль с циклом - и получил тот же вылет - Can't find variable in [generic_list]

а без цикла - то есть когда вызов функции test одноразовый - все норм. Никто не подскажет в чем тут дело?

 

Уфф проблему решил - надо же было парсить списoк от 0 и до n-1 а не от 1 и до n :lol3: пол дня ушло чтобы понять что вылет именно из-за этого был.

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

Простите немного глупый вопрос но все же: КАК убрать этот ....баный новый ремонт из народной солянки и сделать чтоб все было по старому.

Сообщение от модератора n6260
Взять и сравнить как было "по старому" и как теперь "по новому". Или просто сделать своего личного НПСа-ремонтника.

 

Строгое предупреждение от модератора n6260
Еще раз будете выражаться подобным образом - пожалеете.
Для этого нужна таблица нетпакетов.Вот я и думаю если в онлайне 60 НПС будет игра не рухнет?

Нетпакет имеет размер 8 кб и чаще всего используется не полностью. 8*60 = 480 кб - примерно полмегабайта. Добавь ещё служебную информацию: расходы на организацию блоков динамической памяти и ключи таблиц Lua - пусть будет условно столько-же. Итого, в районе мегабайта - сущие копейки.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

уж извените что постю на темах но никто мне почему то не хочет отвечать. :( дело вот в чем:

знающие люди подскажите пожалуйста как исправить этот очень досадный баг?

Expression : fatal error

Function : CScriptEngine::lua_error

File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp

Line : 73

Description : <no expression>

Arguments : LUA error: ....r. - shadow of chernobyl\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value)

 

Я догадываюсь что ошибка в логике нового нпс. я хотел создать торговца и логику взял из тутора вот:

[smart_terrains]

none = true

 

[logic]

active = walker

trade = misc\trade_kntrader.ltx

trader_flags = 0

inv_max_weight = 10000

on_death = death

 

[walker]

path_walk = esc_sin_kntrader_walk

path_look = esc_sin_kntrader_look

meet = meet

 

[meet]

use = true

use_wpn = true

meet_talk_enabled = true

 

. но с этой логикой вылеты! что делать? я все правильно писал и перепроверял. стоит только убрать trade = ... и все нормально. помогите дорогие ветераны

убийство гарика и жорика главный стимул дойти до бара

походу не находит секции death

on_death = death

ты её определил но не описал

 

проверь наличие файла trade_kntrader.ltx в папке gamedata\config\misc

если он там есть, показывай его сюда

Изменено пользователем Gonarh
118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105

Всех с Наступающим.

У меня есть очень важный вопрос(для меня), от которого в общем зависит судьба моего мини мода.

Проблема такая - я функцией выдаю актору случайное однотипное задание из таблицы. А проблема в том, что когда я записываю в таблицу названия однотипных тасков(например tm_eliminate_camp_1) из task_manager.ltx, то при старте ф-ии выскакивает такой баг:

Expression    : start_node && path
Function      : CXml::NavigateToNode
File          : E:\stalker\patch_1_0004\xrXMLParser\xrXMLParser.cpp
Line          : 97
Description   : NavigateToNode failed in XML file 
Arguments     : gameplay\game_tasks.xml

Раньше успешно тестил на вырезанных задания(типа 'sar_warlab'), и вот перед самым релизом такой досадный баг :ny_sad:

Помогите пожалуйста.

Изменено пользователем Darien
Darien, gameplay\game_tasks.xml менял? - если да, то в нем ошибка

i-igroman.ru - Мой, принципиально новый сайт о компьютерных играх

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

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

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

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

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

Войти

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

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

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