Пользователей: 0
Гостей: 251
Всего: 251

» Подробно
» Сегодня


Привет, Гость!

Ник


Пароль


Запомнить?




» Добавить в избранное

» Сделать стартовой

Главная
Форум
Обзор игры
Мир Зоны
Файлы
Галерея
Разное






Форумы > Архив > Склад > Модификации ТЧ, вопросы и ответы (старое, по 14.06.11)

Страница 30 из 63Первая«27282930313233 »Последняя
Быстрый переход:


 

Автор Сообщение
erlik
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2338
Откуда: Набережные Челны
Занятие: В чем сила, брат? В AutoIT3 и WinAPI.
Возраст: 47

18-03-2015
03-04-2011 16:05 GMT3 часа #1462534   Split
Stalk15
Синие инвентарные ящики(с видимым визуалом equipments\item_box_01_visual.ogf) в оригинале расставлены по локациям в SDK и поэтому как и сказал Максим Р. впаяны в геометрию уровня. В качестве инвентарной подкладки используется ящик-невидимка(с моделькой из папки physics\equipment_cache\) и с классом O_INBOX.
Если заспавнить скриптом видимый синий ящик с классом O_INBOX, то можно обнаружить, что в этот ящик почему то нельзя заглянуть(у меня вроде так было). Все прочее ящики будут иметь нормальный доступ в инвентарь, однако будут физически проницаемыми(через них можно проходить), так как объекты класса O_INBOX не имеют физической оболочки. Поэтому чтобы решить данную проблему мне пришлось в тайниках пойти на такой трюк - спавнить два типа ящиков на одной координате - инвентарную невидимку и видимый ящик с классом P_DSTRBL (можно и O_PHYS_S). А чтобы видимый ящик(имеющий физ. оболочку) нельзя бы случайно сдвинуть с места - закреплять его на месте спавна специальной функцией.


subtlegeneral
[1] Странник
Онлайн статус=0  Профиль    




Посты: 2
Откуда:
Занятие: сталкер, электроника
Возраст:

03-04-2011 16:35 GMT3 часа #1462564   Split
помогите мне, тут такая проблемка..как уменьшить/увеличить отличие цен на продажу товара от цен на его покупку. долго везде искал, копался...не нашёл, помогите, обьясните, я просто этим никогда не занимался и не создавал модов...пожалуйста


vhodnoylogin
[1] Странник
Онлайн статус=0  Профиль    




Посты: 211
Откуда:
Занятие:
Возраст: 34

03-04-2011 20:59 GMT3 часа #1462729   Split
Люди, здравствуйте.
subtlegeneral, вот. Тут рассказано о том, что и как в торговле. В том числе и о ценах:
Цитата
Все настройки, связанные с ассортиментом торговцев в игре, находятся в файлах gamedata\config\misc\trade_***.ltx

Цитата
Секция [trader_generic_buy]
Эта секция описывает какие товары торговец будет покупать.
Название предмета = минимальная цена покупки, максимальная цена покупки
Например:
wpn_vintorez = 0.5, 0.7
Это значит что торговец купит оружие от 50% полной его стоимости до 70%, т.е. если Винторез стоит 1000, то торговец купит его в диапазоне от 500 до 700 рублей. Диапазон зависит от отношения торговца к Меченому - чем лучше, тем дороже купит


_____________________________________________________________________________

А теперь, собственно говоря, мои вопросы:
1)
Цитата
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: ...:\s.t.a.l.k.e.r\gamedata\scripts\bind_stalker.script:338: attempt to index global 'my_script' (a nil value)

Вот, я не могу понять, что же это я делаю не так. My_script - название файла с моей функцией. Функция называется: main_f(). Объявлял ее в bind_stalker вот так: my_script.main_f()


2)
Я сделал новый тип предметов. Как хранить в каждом какой-то новый параметр, чтобы при спавне нового предмета этого типа, этот параметр уже существовал (и был инициализирован). Через нет-пакеты, как мне подсказали. Но как именно?..

3)
Как вообще посмотреть содержание нет-пакета? А то, чтобы в него вносить изменения, надо знать его структуру.


Stalk15
[1] Странник
Онлайн статус=0  Профиль    




Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Занятие: Модю сталкера, полегоньку юзаю Visual Basic и Visual С#.
Возраст: 30

19-11-2012
03-04-2011 21:05 GMT3 часа #1462738   Split
erlik, Максим Р.
Спасибо, теперь разобрался.


vhodnoylogin
1) В твоем скрипте(my_script.script) допущена синтаксическая ошибка. Скачай чекер луа, он найдет ошибку.


Я заспавнил в инвентарный ящик предметы. Если сохраниться и загрузиться, то заспавненные предметы в ящике изчезают. Вроде бы должны сохраняться предметы и не изчезать.
Как быть? Придется все секции предметов сохранять в пстор(предметов то много)?


vhodnoylogin
Тогда покажи, что там у тебя в твоем скрипте написано.

Сообщение было успешно отредактировано Stalk15 (03-04-2011 21:05 GMT3 часа, назад)

vhodnoylogin
[1] Странник
Онлайн статус=0  Профиль    




Посты: 211
Откуда:
Занятие:
Возраст: 34

03-04-2011 21:03 GMT3 часа #1462741   Split
Stalk15, скачал-проверил-не нашел.
Цитата
Checking D:\S.T.A.L.K.E.R\gamedata\scripts\my_script.script:
Found 0 errors.



Проблема еще стоит.


Struck
[7] Выживший
Онлайн статус=0  Профиль    




Посты: 1946
Откуда:
Занятие:
Возраст:

03-04-2011 21:36 GMT3 часа #1462765   Split
vhodnoylogin всмысле посмотреть содержание?...может узнать на сколько заполнен?

добавлено спустя 22 секунд

vhodnoylogin кидай скрипт сюда - будем смотреть, "тут тебе не телепаты"(с)

Сообщение было успешно отредактировано Struck (03-04-2011 21:36 GMT3 часа, назад)

vhodnoylogin
[1] Странник
Онлайн статус=0  Профиль    




Посты: 211
Откуда:
Занятие:
Возраст: 34

03-04-2011 21:40 GMT3 часа #1462769   Split
--------------------------------------------------------------------------------------------
Код:
local last_active_id = 0
local last_ammo_in_mag = -1
local a_item = nil
local active_id = 0
local ammo_type = nil
local ammo_new = nil
local using_oboima = nil
local num_of_ammo = 0

--------------------------------------------------------------------------------------------

Код:
function main_f() -- ее в updata
----------------------------------------------------------------------------------------
a_item = db.actor:active_item()
    active_id = 0
    if a_item then
        active_id = a_item:id()
    end
    if active_id ~= last_active_id then
        last_active_id = active_id
        last_ammo_in_mag = a_item:get_ammo_in_magazine() or -1
    end
----------------------------------------------------------------------------------------
if system_ini():line_exist(a_item:section(),"oboima_name") then
ammo_type = system_ini():r_string(a_item:section(),"oboima_name")
if db.actor:object(ammo_type) then
ammo_new = system_ini():r_string(ammo_type:section(),"ammo_name")
if (not db.actor:object(ammo_new)) then
alife():create(ammo_new, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
end
elseif (this.number_of_ammo(db.actor:object(ammo_new)) < 100) then
alife():release(ammor_new:id(), true)
alife():create(ammo_new, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
end
end
end
end
----------------------------------------------------------------------------------------
if last_ammo_in_mag < a_item:get_ammo_in_magazine() then
a_item:set_ammo_elapsed(30) -- 30 == num_of_ammo
end
----------------------------------------------------------------------------------------
end

--------------------------------------------------------------------------------------------
function number_of_ammo(obj)
local se_obj = alife():object(obj:id())
local packet = net_packet()
cse_alife_item_ammo.STATE_Write(se_obj, packet)
packet:r_seek(packet:w_tell() - 2)
return packet:r_u16()
end

__________________________________________


erlik
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2338
Откуда: Набережные Челны
Занятие: В чем сила, брат? В AutoIT3 и WinAPI.
Возраст: 47

18-03-2015
03-04-2011 22:32 GMT3 часа #1462813   Split
Stalk15
Вообще странная проблема с исчезновением предметов.
Странная потому что я с ней не сталкивался Но в АМК дабы ее обойти придумали перевод ящиков-тайников в онлайн\оффлайн (или наоборот )
Однако у меня спавн предметов в подобные тайники проходит безупречно. Может просто люди не так спавнят?
Хотя у меня спавн предметов в ящик происходит одновременно со спавном ящика - то есть получается что они спавнятся в серверный объект - может поэтому у меня все так удачно и происходит.
Тогда тебе стоит перевести свой ящик в оффлайн перед спавном предметов. А затем в онлайн.
----------------------------------------------------------------------------------------
vhodnoylogin
Закомментировал неправильно поставленные end.
Сам код на логичность не проверял.
Используя чекер от Gun12 - есть в теме все для модостроения.
Код:
function main_f() -- ее в updata
----------------------------------------------------------------------------------------
a_item = db.actor:active_item()
    active_id = 0
    if a_item then
        active_id = a_item:id()
    end
    if active_id ~= last_active_id then
        last_active_id = active_id
        last_ammo_in_mag = a_item:get_ammo_in_magazine() or -1
    end
----------------------------------------------------------------------------------------
if system_ini():line_exist(a_item:section(),"oboima_name") then
ammo_type = system_ini():r_string(a_item:section(),"oboima_name")
if db.actor:object(ammo_type) then
ammo_new = system_ini():r_string(ammo_type:section(),"ammo_name")
if (not db.actor:object(ammo_new)) then
alife():create(ammo_new, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
--end
elseif (this.number_of_ammo(db.actor:object(ammo_new)) < 100) then
alife():release(ammor_new:id(), true)
alife():create(ammo_new, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
         end
      end
   end
--end
----------------------------------------------------------------------------------------
if last_ammo_in_mag < a_item:get_ammo_in_magazine() then
a_item:set_ammo_elapsed(30) -- 30 == num_of_ammo
end
----------------------------------------------------------------------------------------
end

Насчет нетпкетов -есть десятки примеров в модах. Есть описание в справочнике маландринуса.
Есть acdc.pl - файл из перловской версии ACDC - там если разобраться хорошо видна структура нетпакетов для каждого класса объектов. Есть файл amk.script - с полным набором готовых функций для работы с нетпакетами.


vhodnoylogin
[1] Странник
Онлайн статус=0  Профиль    




Посты: 211
Откуда:
Занятие:
Возраст: 34

03-04-2011 23:24 GMT3 часа #1462849   Split
erlik, благодарю за ссылку, но не помогло:
1) end'ы убрал. но ошибка осталась
2) чекер в моей писанине ничего не нашел
3) нашел ошибку в коде Сингапура

И все же, что означал мой лог?
Потому что я перешел к следующему логу:
Цитата
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: d:\s.t.a.l.k.e.r\gamedata\scripts\my_script.script:20: attempt to index upvalue 'a_item' (a nil value)


Чем-то похоже, да? Только тут говорится о 'a_item'.


erlik
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2338
Откуда: Набережные Челны
Занятие: В чем сила, брат? В AutoIT3 и WinAPI.
Возраст: 47

18-03-2015
03-04-2011 23:47 GMT3 часа #1462861   Split
vhodnoylogin
Если честно переписывать твой код мне лень. У тебя значение переменной active_id будет всегда 0.
Так что думай и делай выводы. А вылет связан с нелогичностью условий - поэтому если у ГГ в руках пусто - ты вылетаешь, так как a_item равна nil, а она у тебя в конце кода используется без всякой на то проверки.


karavan
[3] Новобранец
Онлайн статус=0  Профиль    




Посты: 940
Откуда:
Занятие:
Возраст:

08-05-2013
04-04-2011 01:26 GMT3 часа #1462932   Split
Кто может подсказать, как проверить ранг актера?


Struck
[7] Выживший
Онлайн статус=0  Профиль    




Посты: 1946
Откуда:
Занятие:
Возраст:

04-04-2011 01:31 GMT3 часа #1462935   Split
Код:
ranks.get_obj_rank_name(db.actor)


примеров уйма...


karavan
[3] Новобранец
Онлайн статус=0  Профиль    




Посты: 940
Откуда:
Занятие:
Возраст:

08-05-2013
04-04-2011 01:47 GMT3 часа #1462943   Split
Struck ОК посмотрю. А то искал по rang.


Stalk15
[1] Странник
Онлайн статус=0  Профиль    




Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Занятие: Модю сталкера, полегоньку юзаю Visual Basic и Visual С#.
Возраст: 30

19-11-2012
04-04-2011 14:34 GMT3 часа #1463066   Split
erlik
Я предметы спавню, когда ящик в оффлайне.
Вот так:
Код:
if #tActorItems > 0 then
      local InvBoxActorItems = alife():story_object(7007)
for i=1, #tActorItems do
local oItemSection = tActorItems[i]
alife():create(oItemSection, InvBoxActorItems.position, InvBoxActorItems.m_level_vertex_id, InvBoxActorItems.m_game_vertex_id, InvBoxActorItems.id)
    end
end

tActorItems - таблица с секциями предметов.


Artos
[20] Сталкер
Онлайн статус=0  Профиль    




Посты: 4176
Откуда:
Занятие:
Возраст: 65

04-04-2011 15:39 GMT3 часа #1463077   Split
erlik, Stalk15
Если ящик уже заспавнен и в него доспавнивать или трансферить (перемещать) - то, т.к. ящики не биндятся и не имеют апдейтов - доспавненные предметы не остаются в ящике после перезагрузки (сохраняется серверная часть, теряя клиентские дополнения). Как уже заметил erlik - следует перевеси ящик из онлайна в оффлайн и обратно (что и сделано было в АМК), тогда все предметы сохранятся в сэйвах.
Это касается не только подобных ситуаций. Например на арене - вещи тоже изымаются/возвращаются через 'онлайновые' ящики и ... если не озаботиться - после сэйва своих шмоток можно недосчитаться ...


alykard216
[1] Странник
Онлайн статус=0  Профиль    




Посты: 28
Откуда: пгт Пойковский
Занятие: модомейкерство
Возраст: 30

04-04-2011 16:58 GMT3 часа #1463103   Split
лиди скажите чтоза глюк когда на наклонной поверхности у меня гг вниз ползет это стало появлятся после изменения личных параметров

добавлено спустя 6 минут

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

Сообщение было успешно отредактировано alykard216 (04-04-2011 16:58 GMT3 часа, назад)

Silent_Assassin
[1] Странник
Онлайн статус=0  Профиль    




Посты: 78
Откуда: Ташкент
Занятие: Создаю плагины для TES
Возраст: 28

15-09-2012
04-04-2011 17:05 GMT3 часа #1463111   Split
alykard216 файл treasuremanager вроде он в скриптах вот точнее
Редактирование тайников:
Частота выпадения:
treasure_manager.script - редактируешь его получаешь частоту выпадание тайников - 65 меняй на что-нить допустим на 10...


alykard216
[1] Странник
Онлайн статус=0  Профиль    




Посты: 28
Откуда: пгт Пойковский
Занятие: модомейкерство
Возраст: 30

04-04-2011 17:10 GMT3 часа #1463117   Split
Silent_Assassin спасибо


Silent_Assassin
[1] Странник
Онлайн статус=0  Профиль    




Посты: 78
Откуда: Ташкент
Занятие: Создаю плагины для TES
Возраст: 28

15-09-2012
04-04-2011 17:13 GMT3 часа #1463118   Split
alykard216 незачто , если ещё вопрос есть задавай


alykard216
[1] Странник
Онлайн статус=0  Профиль    




Посты: 28
Откуда: пгт Пойковский
Занятие: модомейкерство
Возраст: 30

04-04-2011 17:16 GMT3 часа #1463120   Split
чеем редоктировать 3D модели

добавлено спустя 31 секунд

и all.spavn

Сообщение было успешно отредактировано alykard216 (04-04-2011 17:16 GMT3 часа, назад)

Artos
[20] Сталкер
Онлайн статус=0  Профиль    




Посты: 4176
Откуда:
Занятие:
Возраст: 65

04-04-2011 17:37 GMT3 часа #1463125   Split
Вопрос: (любителям головоломок)

Практически в любом моде появляются с той или иной частотой ошибки типа: 'e_entity->ID_Parent == id_parent'.
Мои изыскания показали, что в основном ноги растут из схемы собирательства, когда неписи собирают по локации хабар и/или обирают трупы.
Проявление ошибки довольно редко и рандомно, какой-либо закономерности установить не удалось.
Варианты ошибки также различны.

Вариант 1 (подбор одиночного предмета):
Замечено, что в редких случаях когде непись еще НЕ(!) подобрал предмет, а только приблизился к нему - предмет оказывается уже присвоен/принадлежит ему, т.е. клиентский параметр oItem:parent():id() оказывается уже равен идентификатору неписи (oNPC:id()). Естественно попытка трансфера ( oItem:transfer_item(oItem,oNPC) ) приводит к фатальной ошибке. При чем при подобном 'подборе', серверный параметр принадлежнсти предмета всегда показывает soItem.parent_id == 65535.
Ошибка устраняется только обязательной предпроверкой отсутствия владельца у клиенткого объекта предмета перед 'взятием'/трансфером (при чем, предмет волшебно сам попадает к неписю даже без трансфера).

Вариант 2 (обыск трупа):
Тут похуже. При различных вариантах итерации по предметам в трупе никаких особых коллизий не обнаруживается, предпроверки типа: oItem:parent() and oItem:parent():id() == oBody:id() проходят на ура. Трансфер предметов также (по записи в логе), но ... редко почти сразу (похоже по завершению цикла апдейта) вылезает ошибка типа:
Код:
FATAL ERROR

[error]Expression    : e_entity->ID_Parent == id_parent
[error]Function      : xrServer::Process_event_reject
[error]File          : E:\stalker\sources\trunk\xr_3da\xrGame\xrServer_process_event_reject.cpp
[error]Line          : 24
[error]Description   : device_pda23827
[error]Arguments     : gar_stalker_respawn_123826
Предметы могут быть разными (оружие, медикаменты, еда, ...). Общее одно - предмет уже прошедший операцию трансфера (перемещения) в онлайне сервер пытается разаттачить от прежнего владельца и судя по логу - владельцем оказывается сам предмет. Т.е. сервер запаздывает на цикл.
Вот два (упрощенных) варианта трансфера, которые одинаково пропускают подобную ошибку:
Код:
local iCnt = oBody:object_count()
for i=0,iCnt-1 do
  oItem = oBody:object(i)
  sSection = oItem:section()
  if sSection ~="bolt" and oItem:parent() and oItem:parent():id() == oBody:id() and not oBody:marked_dropped(oItem) then
    oBody:mark_item_dropped(oItem) --/ ставим метку перемещения
    oBody:transfer_item(oItem,oNPC) --/ перемещаем предмет
  end
end

oBody:iterate_inventory(
  function (dummy,oItem)
    local sSection = oItem:section()
    if sSection ~="bolt" and oItem:parent() and oItem:parent():id() == oBody:id() and not oBody:marked_dropped(oItem) then
      oBody:mark_item_dropped(oItem) --/ ставим метку перемещения
      oBody:transfer_item(oItem,oNPC) --/ перемещаем предмет
    end
  end
,nil)

Прим: наличие/отсутствие метки трансфера в алгоритмах не влияет на (не)возникновение ошибки.
Есть ли у кого мысли о причине возникновения подобных рандомных коллизий и варианте их устранения?

Прим: Варианты замены трансфера переспавном не предлагать. Имеются весткие причины неприемлемости подобной замены.

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


alykard216, Silent_Assassin
Не путайте форум с чатами! Спасибки, расшаркивания и пр. подобное - в ПМ, пл.
С вопросами типа 'чеем редоктировать ...' -> ФАК
C неграмотными постами -> в бан ...

Сообщение было успешно отредактировано Artos (04-04-2011 17:37 GMT3 часа, назад)

SkyLoader
[7] Выживший
Онлайн статус=0  Профиль    




Посты: 755
Откуда: Москва
Занятие:
Возраст:

09-09-2011
04-04-2011 18:00 GMT3 часа #1463140   Split
Artos, не знаю как непись, а гг пять минут назад получил такой вылет при умирании от гранаты, в то время, как был в аномалии. Аномалия уже была взведена и сразу разорвала труп гг, как тот умер. Я был в мультиплеере.. один.. без модов


Artos
[20] Сталкер
Онлайн статус=0  Профиль    




Посты: 4176
Откуда:
Занятие:
Возраст: 65

04-04-2011 18:08 GMT3 часа #1463146   Split
SkyLoader
Не очень внятна суть твоего поста.
При разрыве ГГ в аномалии или любом подобном 'исчезновении' ГГ из игры - не удивителен факт вылета. Немало кодов НЕ предусматривает исчезновение ГГ (db.actor) из игры после ее начала.

С описанным мною вопросом это никак не связано, тем более в моем случае ни труп, ни НПС ни в каких не аномалиях и никаких гранат/... НПС просто подходит к трупу и обыскивает его в относительно спокойной обстановке.


Silent_Assassin
[1] Странник
Онлайн статус=0  Профиль    




Посты: 78
Откуда: Ташкент
Занятие: Создаю плагины для TES
Возраст: 28

15-09-2012
04-04-2011 18:12 GMT3 часа #1463151   Split
alykard216 Для редактирования Allpaspawn hex редактор или xrSpawner 0.13.0 3D модели вроде 3D Max


SkyLoader
[7] Выживший
Онлайн статус=0  Профиль    




Посты: 755
Откуда: Москва
Занятие:
Возраст:

09-09-2011
04-04-2011 18:23 GMT3 часа #1463157   Split
Artos, а, у меня такого не было. Только при удалении трупа мог быть такой вылет.


alykard216
[1] Странник
Онлайн статус=0  Профиль    




Посты: 28
Откуда: пгт Пойковский
Занятие: модомейкерство
Возраст: 30

04-04-2011 18:29 GMT3 часа #1463164   Split
к стати как зделать чтобы на pda приходили сообщения о смерти сталкеров и которых я убил


Alex_v-bass
[1] Странник
Онлайн статус=0  Профиль    




Посты: 19
Откуда:
Занятие:
Возраст:

04-04-2011 18:35 GMT3 часа #1463167   Split
ребят, подскажите пожалуйста как исправить вылеты с ТТ-2 при загрузке авто и квик сейвов


Artos
[20] Сталкер
Онлайн статус=0  Профиль    




Посты: 4176
Откуда:
Занятие:
Возраст: 65

04-04-2011 18:37 GMT3 часа #1463168   Split
SkyLoader
Ты заблуждаешься в том что у 'тебя' не было. Можно пройти игру (чистую) или мод не один раз и не напоротьсяч на подобную ошибку,но это не значит что ошибка невозможна.
Давай не будем флудить не по сути. Мой вопрос не в том (не)было ли у кого-то ... а как избавиться от ошибки трансфера(!) и от вероятности ее проявления.


erlik
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2338
Откуда: Набережные Челны
Занятие: В чем сила, брат? В AutoIT3 и WinAPI.
Возраст: 47

18-03-2015
05-04-2011 01:52 GMT3 часа #1463443   Split
alykard216
xr_motivator.script->каллбек на смерть->проверка кто убил->мессидж

Silent_Assassin
Вроде у Мавроди. Если не знаешь - лучше промолчи( в соответствии со своим ником). allspawn редактируют обычным текстовым редактором - предварительно его необходимо распаковать утилитой ACDC от bardak'а. XR Spawner"ом пользуются только дети.

Alex_v-bass
В тему ТТ_2 шагай... смело и уверенно. Здесь она есть. Или на оффсайт мода. Или в тему мода на сайте amk-team. А вообще там нет таких вылетов на патче 1.0004. Если у тебя другой патч - меняй.
----------------------------------------------------
Artos
Подобная ошибка у меня интенсивно проявлялась при тестировании мода RealBags - при дропе большого числа предметов за раз из инвентаря\рюкзака. Долго искал причину и пытался придумать как обойти вылет пока наконец просто не добавил в функцию дропа дополнительную проверку IsExistObject(gObj) - где проверяется наличие серверной копии у клиентского объекта.

function IsExistObject(gObj)
return level.object_by_id(gObj:id()) and alife():object(gObj:id())
end

--// Author function 7.9 (aka MRN$)
function DropObject(gObj)
local actor = db.actor
if gObj and IsExistObject(gObj) and not tExeptItem[gObj:section()] then
local posX = actor:position().x
local posY = actor:position().y
local posZ = actor:position().z
local dirX = device().cam_dir.x
local dirZ = device().cam_dir.z
local x_off = dirX*1.6
local z_off = dirZ*1.6
local x = posX + x_off
local y = posY + 1
local z = posZ + z_off
actor:drop_item_and_teleport(gObj, vector():set(x, y, z))
end
end

Вылет как ни странно исчез. И больше при дропе никогда не проявлялся.

Сообщение было успешно отредактировано erlik (05-04-2011 01:52 GMT3 часа, назад)

Artos
[20] Сталкер
Онлайн статус=0  Профиль    




Посты: 4176
Откуда:
Занятие:
Возраст: 65

05-04-2011 13:36 GMT3 часа #1463510   Split
erlik
Bpоде бы в моем пояснении хотя и не явно, но фигурируют и клиетский и серверный объекты ..., т.е. проверка их наличия само собою подразумевается.
Да и сам лог говорит НЕ об отсутствии серверного объекта, а о некорректности 'родителя'.
Ошибка же не 'интенсивна', как ты выразился, а как раз довольно редка, но тем не менее хотелось бы ее исключить.

P.S. Резануло глаза в твоем коде:

local posX = actor:position().x
local posY = actor:position().y
local posZ = actor:position().z
local dirX = device().cam_dir.x
local dirZ = device().cam_dir.z
local x_off = dirX*1.6
local z_off = dirZ*1.6
local x = posX + x_off
local y = posY + 1
local z = posZ + z_off

Зачем же тратить ресурсы на получение одного и того же по нескольку раз?
Вот так и проще и вроде как понятнее:

local pos = actor:position()
local dir = device().cam_dir
local x = pos.x + dir.x*1.6
local y = pos.y + 1
local z = pos.z + dir.z*1.6


Сообщение было успешно отредактировано Artos (05-04-2011 13:36 GMT3 часа, назад)



Форумы > Архив > Склад > Модификации ТЧ, вопросы и ответы (старое, по 14.06.11)

Страница 30 из 63Первая«27282930313233 »Последняя


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



???????@Mail.ru Rambler's Top100
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для
просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.

Использование материалов сайта возможно с разрешения администрации. Все права защищены. © 2004–2024 «Stalker-Portal.ru»