А если будет 100, то это не будет грузить систему сильно?
Я добавил в код вывод в консоль (get_console():execute("zombi[1]") ). Сейчас попробовал на 2-х неписях, пишет в консоль так:
! Unknown command: zombi[1]
! Unknown command: zombi[1]
! Unknown command: zombi[2]
Вместо этого:
! Unknown command: zombi[1]
! Unknown command: zombi[2]
отредактировал(а) SkyLoader: 02-09-2010 22:44 GMT3 час.
Artos Эммм... Спасибо конечно, за пример. Теперь стало более ясно, что ты имел ввиду. Но... Как не странно, это не решает проблему. Предложенный тобой способ, только и пригодится, для установки координат direction, при спавне через скрипт. Всё остальное в пакете данного класса, при подобном использовании, както без надобности. Проблема же заключается, как раз в последующем доступе к классу cse_abstract, объекта.
отредактировал(а) singapur22: 03-09-2010 07:53 GMT3 час. Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Подскажите, какой параметр относиться до массы машин, например в veh_btr_u_01. А то как-то не правдоподобно получается. Мутанты могут пинать БТР как мячик, да и собак можно использовать вместо колес :) Как бы не старался искать гуглом, ни чего не получается
singapur22
От тебя не ожидал такого ограниченного восприятия данной информации.
Не стОит вероятно сейчас устраивать викторину по "как это применять", потребность приходит по мере возникноверия идей и желаний ...
Могу пока подбросить несколько идеек :-)
1. Именно в этом пакете имеется игровой идентификатор, имя объекта и пр. А что ежели эти параметры при загрузке сэйва изменять?
2. Если сохранить исходную табличку этого пакето, то что будет, ежели удалить предмет и ... новому созданному предмету подсунуть запомненную? Не возникнет ли клон с тем же идентификатором? (айди конечно должен буть свободен).
3. Не в этом ли пакете прописана принадлежность того же КПК именно актору?
4. Наличие 'respawn_time' и 's_flags' навевает желание поисследовать - а может и сгодятся для чО-нить?
Ну а доступ к этому пакету 'по-потребности', а не только при моменте спавна или загрузки игры можно и принудительно организовать, было бы желание.
MRN$
Ты бы назвал свой класс объекта, может я пример бы дал именно на примере его ...
пригодится, для установки координат direction, при спавне через скрипт
Спасибо Артосу - мне "как раз того и нужно" - можно попробовать одну висяк-тему закрыть. Вот только как это на нужный класс ляжет...
=================================================================
singapur22
MRN$ Чё за висяк?
Ой!, спасибо, что спросил! Я как любой, про наболевшее... но лучше просто процитируюсь:
1. Замаскированный тайник.
Реализуется размещением (спавном) невидимого тайника, в координатах, просто совпадающих с координатами видимого объекта или его части. То-есть, у тайника нет собственного визуала, в качестве его используется визуал видимого объекта или его иллюзии, что и делает тайник "замаскированным".
Абзацы про генерацию - убрал, это другой вопрос
Artos
Класс O_INVBOX Artos
Одна надежда - на тебя.
Если привлекать моделеров, то 14 накладок на 1 тип тайника... даже если их всего 3... :lok5)
.
отредактировал(а) MRN$: 03-09-2010 14:28 GMT3 час. всё легко
MRN$
Хм, опять O_INVBOX всплыл ...
Я пока отлюжил возню с ними (инвентори-боксами), хотя и не надолго.
Думается мне, что тут как и с КПК (класс D_PDA) будет заморочка, т.е. отсутствие доступа к методам 'se_INVBOX:STATE_Write(packet)' ...
Но надежда умирает последней и немного позже (пару-тройку дней) продолжу ковыряния и с КПК и с тайниками. может чем и помогу. :-)
Вот на ЗП - скорее всего запросто, там разрабы и инвентори-боксы 'по-человечески' прописали.
P.S. Хех. вспомнил, у меня же самого рюкзаки и мой фейковый ящик (технологическое хранилище) сделан на O_INVBOX!
Мне ж тоже приходится его отыскивать каждый раз по косвенным признакам. Так что в этой части наши с тобою пожелалки совпадают. Так что может и сможем отыскать приемлемый вариант решения.
Реализуется размещением (спавном) невидимого тайника, в координатах, просто совпадающих с координатами видимого объекта или его части.
Ты имеешь ввиду, замаскировывать его под частями геометрии? Или опять же под физикой?
Если первое, то тут сложность только заключается в снятии координат. Я собсно так уже делал. Спавнил естественно, через all.spawn
А если второе. Или первое, но через скрипт. То эта тема пока не решена.
Artos
От тебя не ожидал такого ограниченного восприятия данной информации.
Вот такой вот я не предсказуемый. :-)
А по сути. У меня мания изучения, причём по большей части, методом тыка. А придумывать как и что применять, меня както не очень волнует.
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
SkyLoader
Во-первых, это у тебя строка, и иного результата не будет. Если же нужна НЕ строка, то нужно убрать кавычки (а ведь знаешь!). А во-вторых, что ты хочешь получить в результате? Не представляю объект в консоли, но ежели ты просто хочешь проверить, то не забывай перевести его в строку через tostring - это хотя бы отсечёт вылет (и переводить в ручную лучше всегда, когда нужно, не надеясь на сталкеровский компилятор).
Блин, что-то я вообще не то написал похоже...
Я добавил в код вывод в консоль (get_console():execute("zombi[1]") ). Сейчас попробовал на 2-х неписях, пишет в консоль так:
Покажи весь твой код, что бы понятнее было куда именно. Artos
Интересная инфа, пригодится.
Darien Fx, нет, это просто текст. Я просто всегда вставляю в вывод лога название функц**50016ea8aab1bb10eeba**d
if zombi[2] then
npc2 = zombi[2]
get_console():execute("Функция_для_нпц_2")
end
end
end
end[/code]
В игре лог должен быть такой:
[code]! Unknown command: Функция_для_нпц_1
! Unknown command: Функция_для_нпц_2[/code]
А он такой всегда:
[code]! Unknown command: Функция_для_нпц_1
! Unknown command: Функция_для_нпц_1
! Unknown command: Функция_для_нпц_2[/code]
SkyLoader
Твоя ошибка в том, что не закончив цикл, ты выводишь свои строки в л**50016ea8aab1bb10eeba**
if zombi[2] then
npc2 = zombi[2]
get_console():execute("Функция_для_нпц_2")
end
end[/code]
упс, уже подсказали. :-)
P.S. Кстати Darien Fx, вынос из тела функции таблички и переменных может сыграть и плохую службу. При вторичном иль периодическом вызове функции - табличка накапливает(!), а переменные НЕ обнуляются, если конечно не делать это отдельным не упомятутым тут способом. Хотя ... npc1,npc2 собственно и не возможно будет использовать 'извне'. Ну да это уже SkyLoader'у ломать голову, что же он хочет ...
Возможно ему достаточно будет:
[code]local zombi = {}
local npc1, npc2 --/ и нафига это, если есть таблица?
function death_update()
zombi = {} --/ чистим табличку
for a=1,65635 do
local obj=level.object_by_id(a)
if obj and string.find(obj:name(),"sers") then
table.insert(zombi, obj)
end
end --/ конец цикла
npc1,npc2 = nil,nil --/ обниляем объекты
for k,v in ipairs(zombi) do
if not npc1 then
npc1 = v
get_console():execute("Функция_для_нпц_1")
elseif not npc2 then
npc2 = v
get_console():execute("Функция_для_нпц_2")
end
end
end[/code]
Спасибо, Darien Fx и Artos, проверю, скажу. Artos, а если и**50016ea8aab1bb10eeba** table.remove (t, table.getn (t))
end
end
[/code]
Табличка пустеет после повтора функции, так что не потребуется clear_table (t)
А можно делать так, например: zombi[1].position()?
А обязательно делать проверку на позицию? Проверка на онлайн, это ведь if zombi[1]?
отредактировал(а) SkyLoader: 03-09-2010 17:06 GMT3 час.
SkyLoader Я не понимаю. Зачем производить подобные манипуляции с таблицами для очистки, когда достаточно просто прописать: tbl = {} И таблица очистится полностью. Точнее переустановится. Но результат собсно тот же. Получим пустую таблицу. Artos Может ты мне объяснишь, в чём тут суть? В оставшемся мусоре, или в чём то другом?
-------------------------------------
Ковыряя движок, надыбал класс IMainMenu. Интересно получается. Видимо меню делали в основе движка, но потом по каким то причинам вывели его полностью в скрипты. Интересно по каким?!
P.S.
Хочу знать историю. :-)
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
singapur22
Меня не спрашивай, чего хочет SkyLoader, мне неведомо. Если бы он пояснил толком, то о чем-то можно было бы говорить. Но из его кусочных и малоинформативных вопросов/пояснений я до сих пор не понял цель ковыряний ...
Ему что-то требуется достаточно тривиальное, но делает он это через ...
Ну а по истории ... многим бы хотелось ее зать/понять, но ... это ведомо только разрабам, да и то ... их комманда не раз менялась/изменялась.
Так что - только предполагать можем.
Короче. Я подумал сделать совершенно новый файл для иконок (аля аналогию ui_icon_equiptment) но вот проблема - как и где его зарегать в игре чтобы оттуда итемы брали свои иконки? Я так думаю иконки не будут волшебным образом сами по себе читаться из моего файла, верно? Я знаю что можно зарегистрировать новый файл иконок сталкеров в полный рост, подумал сделать с иконочным файлом по аналогии, но после недолгих обдумываний понял что это глупо и бессмысленно.
Новый проект в разработке, ищи в моём журнале.
В теории - всё легко, а вот на деле - гораздо сложнее.
У меня почему то (может не только у меня) троица долговцев во главе с Прапором, которые в Бар не пропускают, не реагируют на монстров. Почему? И как это исправить?
Я – хозяин своей судьбы, но только судьба знает, где закончится мой путь.
АнархОПанк
Однозначно ты накосячил с конфигами погоды.
Погодный менеджер не может найти требуемую секцию. Что ты там накосячил - только по всем погодным конфигам можно понять. MRN$
Я бы добавил, чтобы не (пере)компилить каждый раз движок, под каждый тестовый билд, вынесли то что стОило бы распараллелить по разным командам/группам ... Fantom2323
Некоторые вещи (пути/наименования/...) строго закреплены и не поддаются изменениям/добавлениям. ИМХО, файл иконоок предметов в их числе.
Artos я думаю это все из-за выброса (т.к после его добавления стали косяки, если помнишь я спрашивал на счет вылета с логом о не найденной секции 1000, этот вылет исправил, теперь этот). Пробовал отключить выброс вылетает все равно... ДАже если удалить папку weathers, то вылетает все равно! Ну, спасибо, буду юзать копать искать ошибку...:-)
P.S. Кстати Darien Fx, вынос из тела функции таблички и переменных может сыграть и плохую службу.
Угу, но вдруг эта функция вызывается только один раз, никто ж не знает. Поэтому и вынес, ибо в варианте SkyLoader пропадал смысл, т.к. npc1/2 всё равно по завершению функции обнулялись бы. Да кому я это говорю? :-)
Иногда вижу функции **50016ea8aab1bb10eeba**pult:__finalize()
end[/code]
Что это за "Без тельная функция"?:-)Чем она служит?
Если что, данную функцию увидел в чит-меню erlik'а из такого скрипта:
function ui_set_pult:on_quit()
self:GetHolder():start_stop_menu(self,true)
--get_console():execute("main_menu off") --/ закрываем и родительское main_menu
end
--\\ почти все функции повешены и на клавиши numpad - но они работают только при откытом меню ноутбука - так что особой пользы от этого нет, кроме Esc
function ui_set_pult:OnKeyboard(dik, keyboard_action)
CUIScriptWnd.OnKeyboard(self,dik,keyboard_action)
if keyboard_action == ui_events.WINDOW_KEY_PRESSED then
if dik == DIK_keys.DIK_ESCAPE then self:on_quit() --/ на выходе - Esc
elseif dik == DIK_keys.DIK_NUMPAD1 then self:set_pult_1()
elseif dik == DIK_keys.DIK_NUMPAD2 then self:set_pult_2()
elseif dik == DIK_keys.DIK_NUMPAD3 then self:set_pult_3()
elseif dik == DIK_keys.DIK_NUMPAD4 then self:set_pult_4()
elseif dik == DIK_keys.DIK_NUMPAD5 then self:set_pult_5()
elseif dik == DIK_keys.DIK_NUMPAD6 then self:set_pult_6()
elseif dik == DIK_keys.DIK_NUMPAD7 then self:set_pult_7()
elseif dik == DIK_keys.DIK_NUMPAD8 then self:set_pult_8()
elseif dik == DIK_keys.DIK_NUMPAD9 then self:set_pult_9()
end
end
end
function ui_set_pult:set_pult_1()
set_com.set_bandit()
self:on_quit()
end
function ui_set_pult:set_pult_2()
set_com.set_killer()
self:on_quit()
end
function ui_set_pult:set_pult_3()
set_com.set_army()
self:on_quit()
end
function ui_set_pult:set_pult_4()
set_com.set_monolit()
self:on_quit()
end
function ui_set_pult:set_pult_5()
set_com.set_dolg()
self:on_quit()
end
function ui_set_pult:set_pult_6()
set_com.set_freedom()
self:on_quit()
end
function ui_set_pult:set_pult_7()
set_com.set_zombi()
self:on_quit()
end
function ui_set_pult:set_pult_8()
set_com.set_single()
self:on_quit()
end
function ui_set_pult:set_pult_9()
set_com.set_teleport()
set_com.effect_tele()
self:on_quit()
end
function ui_set_pult:set_pult_10()
--set_com.set_teleport() -- \сюда ставим имя своего скрипта
self:on_quit()
end
function ui_set_pult:set_pult_11()
--set_com.set_teleport() -- \сюда ставим имя своего скрипта
self:on_quit()
end[/code]
MRN$при начале новой игры... Вобщем когды был вылет с секцией 1000 мол найти не мог (Хотя ее и не было вовсе), он даже не доходил до меню. А теперь вылетает с таким логом, но на синхронизации. Само сабой начинаем новую игру.
Выброс из ОГСЕ, юзает 2 погодных файла которые идут в комплекте - файлы выброса само сабой. В папке weathers лежат только они. Они нормальные, не коверканые и ничего такого. Однако вылет все равно...
Пробовал отключить выброс вылетает все равно
ДАже если удалить папку weathers
Может состояние погоды в сейве сохраняется?
И у тебя теперь просто плохой сейв?
Попробуй на сейвах "до выброса".
--------------------------------------------------------------------------------------------
АнархОПанк
Понятно, видимо, как писал Артос, - надо смотреть всё в совокупности.
Если ты возишься с Генезисом, возможно, где-то "на старте" устанавливается погода которой у тебя уже/ещё нет. Обрати внимание на то как там стартует игра, там-же начало из Фриплей Старта...
Думается мне, что АнархОПанк сунул нос слишком глубоко, не удосужившись понять всех составляющих и необходимых кодов ...
Не имея перед глазами кодов можно только гадать, чем предпочитаю не заниматься, но все же ... может натолкны на мысль.
При выбросах погода должнаменять на свою, запоминая прежнюю. После них, как правило она должна восстанавливаться. Если не запомнить прежнее состояние (название), то ... после вброса будет закономерное - "не могу найти имени погодного цикла" ...
Так что не в сэйвах нужно искать. погода при старте генерится заново, а в отсутствующих сохранениях былого состояния (обычно в сторадже актора).
Stalk15
Структуры классов в кодах подразумевают некую шаблонность, т.е. наличие некоторых обязательных элементов/компонентов.
Часто это инициализация, апдейт, ..., И финализация.
То, что ты не используешь где-то что-то - не повод, что этого элемента не должно быть.
Вспомни сам, какого хрена в конфигах предметов обязаны быть вроде как к ним неотносящиеся строки/параметры.
Ну а то, что бестелесная - это в данном случае. Если по завершению работы данного класса потребуется что-то, то как раз и будет восстребовано. Возьми к примеру ... гранатометание с использованием фейковых гранат. По выходу из игры все фейковые гранаты должны быть изничтожены - вот и требуются подобные финализаторы/деструкторы, освобождающие от мусора.
MRN$ Кхм... Что на ФС 1.2 что на генесисе, один результат...
НАчалось после вставки выброса в игру... Вобщем непонятно.
Artos зря так думаешь. Сую на столько на сколько знаю. Выброс этот я сувал сотни раз. А сейчас пишу так как есть. Выброс был в фриплей старте, но отключен. Вся погода там уже адаптирована под выброс. Я лишь только восстановил его.
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.