Перейти к содержимому



Фотография

Народная 2010 разработка


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 871

#840433   Dennis_Chikin

Dennis_Chikin
  • Группа:  Глобальные модераторы
  • Сообщений: 4 616
  • Регистрация: 12.02.2010
  • Пользователь: 16523
     

Отправлено 24 04 2014 - 20:34

"Что у нее внутри, и как это сделать лучше". Для тех, кто уже разбирается в скриптах, конфигах, текстурах и "других страшных словах" ©, и имеет желание и время действительно делать их лучше.
См. подробности в первом посте.

Тема НЕ является ни столом заказов, ни службой техподдержки, ни справочным бюро.


Сообщение отредактировал Dennis_Chikin: 28 04 2014 - 08:25


#41   Arhara

Arhara
  • Группа:  НС
  • Сообщений: 6 722
  • Регистрация: 21.03.2008
  • Пользователь: 1540

Отправлено 27 12 2009 - 01:11

_And_,

Андрей, не беспокойся. У меня тоже есть скрипты. Но я обещал - ни одна запятая или идея не попадёт в солянку. Беспокоится об этом не надо.
Сообщение от модератора меченый(стрелок)
Привет, эти можно wink.gif

Сообщение отредактировал меченый(стрелок): 27 12 2009 - 01:53


#42   Shadowman

Shadowman
  • Черный хирург

  • Группа:  НС
  • Сообщений: 1 877
  • Регистрация: 22.10.2008
  • Пользователь: 5731
  

Отправлено 27 12 2009 - 01:35

Цитата
ни одна запятая или идея не попадёт в солянку

Arhara, что-то я, видимо, пропустил... О чём была речь ? crazy.gif
Сообщение от модератора меченый(стрелок)
и ты ,мой друг, можешь не беспокоится wink.gif
То, что выложено выше , было решено давно выложить, но никак не получалось , а вот сейчас получилось... А Дима, немного не в курсе wink.gif

Сообщение отредактировал меченый(стрелок): 27 12 2009 - 01:56


#43   Shadowman

Shadowman
  • Черный хирург

  • Группа:  НС
  • Сообщений: 1 877
  • Регистрация: 22.10.2008
  • Пользователь: 5731
  

Отправлено 27 12 2009 - 13:51

Monnoroch, я другое вчера пробовал. Теперь отхожу smile.gif

Есть вопрос к скриптерам. Написал такую ф-цию.
-=-
на выходе - имя секции обжа. Может, я велосипед изобретаю, и есть где-то уже... Но собственно, вопрос в следующем: а можно заполучить имя секции игрового объекта без такой операции со стрингом?

И еще один вопрос. Есть ли способ скриптом проверить, есть ли объект в аллспавн и узнать номер его секции?

Monnoroch, я попробую поставить создание таблицы. Но как потом проверить, что работает? Переписать просто тупо нетпакет всем неписям, чтобы убедиться, что нормально сработало? Потому как начать НГ, дождаться что кто-то зависнет и потом проверить - это нереально smile.gif Ну а в сейве с зависом - таблица нетпакетов пока пуста. И еще нюанс: нужно не нарваться на кривые или пустые данные при записи этой таблицы.
Сообщение от модератора меченый(стрелок)
Shadowman, да вроде нет, не велосипед wink.gif...

Сообщение отредактировал меченый(стрелок): 27 12 2009 - 14:39


#44   Monnoroch

Monnoroch
  • Группа: Жители
  • Сообщений: 3 866
  • Регистрация: 03.05.2008
  • Пользователь: 2441
  

Отправлено 27 12 2009 - 14:47

Шадоу,не лукавь,я гдето видел у тебя же такую же функцию О_о
==
Про тестирование: а ты сам зависни непися.Понапиши ему в пстор хрени всякой или обнули.вызови завис короче.
===
ха,я думал ты написал а потом забыл и снова написал))
===
ты все-таки попробуй нетпакетно восстанавливать НПС.А ну как получится?

Сообщение отредактировал Monnoroch: 27 12 2009 - 15:02


#45   Shadowman

Shadowman
  • Черный хирург

  • Группа:  НС
  • Сообщений: 1 877
  • Регистрация: 22.10.2008
  • Пользователь: 5731
  

Отправлено 27 12 2009 - 14:55

Monnoroch, ну да, у меня эта ф-ция и есть. В скрипте со всеми таблицами уборщика
Просто уборщик получает имя всегда как серверного обжа, а когда понадобился игровой - оказалось, что obj:section() - это stalker, stalker_sakharov - у всех сталкеров поголовно. Не та секция короче. Вот, переписал. Решил уточнить - может, есть более простой путь. В чем лукавство-то усмотрел? blink.gif
Ф-ция эта в таком виде, как я здесь показал - пока в единственном экземпляре, только на моем компе wink.gif

меченый(стрелок), то есть я так понял, что одобряешь? biggrin.gif
По аллспавну - очень бы хотелось положительного ответа. Но, видимо, не судьба sad.gif

Monnoroch, кстати, по нетпакету: ты сам понял, какую грандиозную вещь ты придумал? Это же фактически можно сейвы редактировать!
Надо будет, если получится, для прикола эту табличку потом в файл сохранить. Даже боюсь загадывать, каков будет ее размер...

В личку кинуть, или запостить? wink.gif
Запостил.
А по файлам - вот Shoker такое написал.
===


Цитата
ха,я думал ты написал а потом забыл и снова написал))

Такая история у Дэна, по-моему наблюдается: у него в браад две функции ограбления ГГ одинакового назначения.
К тому же, список исключений, чего отбирать нельзя - был разный у каждой из ф-ций smile.gif

меченый(стрелок), да, спасибо. Насчет распакованной геймдаты и пользовать как ини - это понятно smile.gif
К сожалению, это не годится хотя бы потому, что не будем же мы распакованный спавн держать в игре. Одноразово, для себя - понятно, может пригодиться для служебных целей.
Есть класс FS, но, похоже, записать файл нельзя, можно только прочитать...
Мон, спасибо, что поправил smile.gif К сожалению, это не решает проблемы - файл в ТЧ не запишешь. Очень жаль. Можно только в лог записать.

Сообщение отредактировал Shadowman: 27 12 2009 - 16:12


#46   Monnoroch

Monnoroch
  • Группа: Жители
  • Сообщений: 3 866
  • Регистрация: 03.05.2008
  • Пользователь: 2441
  

Отправлено 27 12 2009 - 15:13

Фиг ты ее сохранишь....нету таких функций в сталкере....
Но вообще да.Это конечно вещь жесткая.

НО у меня-то только онлайновые НПС.
Кстати,я тут забыл надо еще на нет_дестрой коллбэк на чистку ставить...
==
Кинь плз мне то,что я написал тебе - я винду переставил и... sad.gif
==
В личку лучше.Ато найдутся,которые поюзают и вопить будут,если чо случится....
Я кстати заодно и допишу. smile.gif


Сообщение отредактировал Monnoroch: 27 12 2009 - 16:17


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

меченый(стрелок)
  • "Pirate Station" Dancer

  • Группа: Жители
  • Сообщений: 1 471
  • Регистрация: 01.06.2008
  • Пользователь: 3002

Отправлено 27 12 2009 - 15:41

Shadowman, Это работать не будет..в ТЧ пространства имен io,os,etc... нету sad.gif
По алл.спавну , можно , если алл.спавн будет распакован smile.gif, и то ,мягко говоря, сотворить это будет трудно и ,скажем так, нерационально .. smile.gif
просто работать с файлами алл.спавн как с ини файлами , кстати я кинул скрипт который облегчает работу с ини файлами до не хочу smile.gif
или я неправильно понял? smile.gif
Цитата
то есть я так понял, что одобряешь?

Ага smile.gif

Сообщение отредактировал меченый(стрелок): 27 12 2009 - 15:45


#48   Monnoroch

Monnoroch
  • Группа: Жители
  • Сообщений: 3 866
  • Регистрация: 03.05.2008
  • Пользователь: 2441
  

Отправлено 27 12 2009 - 16:14

Shadowman, а вот FS - это класс а не пространство имен smile.gif

Добавлено через 9 мин.:
Шадоу,ты гений!А чем тебе лог не файл?Мы ж ради интереса пишем - пусть будет в лог smile.gif

=========
глянешь как работает - отпишись smile.gif
мне самому интересно,сожрет оно такой обьем или нет...
=====
Shadowman, Ты ж тестировал мой трейд.Лог там до пары мегабайт набирался smile.gif
====
Кстати будешь выводить - имей ввиду,нетпакет - это какбы табличка.Все имена внутренние в АМК скрипте посмотри.Там туча целая...

Сообщение отредактировал Monnoroch: 27 12 2009 - 16:23


#49   Shadowman

Shadowman
  • Черный хирург

  • Группа:  НС
  • Сообщений: 1 877
  • Регистрация: 22.10.2008
  • Пользователь: 5731
  

Отправлено 27 12 2009 - 16:18

Цитата
я кинул скрипт который облегчает работу с ини файлами до не хочу

меченый(стрелок), это тот, что для телепортов в спавнер? А все, понял amkII_ini. Классная штука!
Сообщение от модератора меченый(стрелок)
Точно , о нём! рад что он будет полезен! я , кстати, за то , чтобы каждый скрипт ,или почти, использовал свой фаил настройки(это позволяет пользователям настраивать скрипт под себя без знания Lua). Так сказать лояльное отношение к Юзерам wink.gif


Monnoroch, вечером попробую. Лог вполне может и навернуться от таких объемов. Хотя - попробую, конечно.
Да, я в курсе, что там у каждого непися по таблице. Это надо будет слегка поизвращаться, чтобы увидет ее в логе. Но должно получиться.
А лог, когда из апдейта шел - валил игру минут за 5-7 smile.gif

Monnoroch, а зачем очищать табличку? А если при загрузке игры у непися уже мусор в пстор (тоже, кстати, надо как-то проверять предварительно и не писать, если уже биндер зависший)? Если в сейве ее не будет (т.е. она будет пустой) - то тогда и смысла нет ее создавать.
Кстати, ловлю вылет на несуществующий packet_table именно поэтому, наверное. (attempt to index global packet_table (a nil value)), хотя в мотиваторе объявил ее глобальной и вроде как запись туда в мотиваторе сработала. По-видимому, amk.write_stalker_params надо все-таки ставить внутрь условия if packet_table[npc_id] then

Сообщение отредактировал меченый(стрелок): 27 12 2009 - 20:08


#50   Monnoroch

Monnoroch
  • Группа: Жители
  • Сообщений: 3 866
  • Регистрация: 03.05.2008
  • Пользователь: 2441
  

Отправлено 27 12 2009 - 18:56

Shadowman, а теперь посчитай 5-7 минут * десяток раз в секунду.если не больше....это ж апдейт ГГ...

Добавлено через 4 мин.:
Shadowman, Как вылет?У меня же написано packet_table = {}
Зачем ты ее в мотиватор то сунул,оставь у меня в скрипте.

Да и условие непонятно зачем.Ведь при нет_спавне ж оно туда все пишется полюбому.
А,ну только мой метод токо для новой игра подойдет - чтобы не было зависших НПС.
Попробуй с новой игры непися насильно обрушить - все должно сработать.

Сообщение отредактировал Monnoroch: 27 12 2009 - 19:00


#51   dimos

dimos
  • Сталкер-Ковырялкер

  • Группа: Жители
  • Сообщений: 1 972
  • Регистрация: 30.03.2009
  • Пользователь: 8982

Отправлено 27 12 2009 - 19:13

меченый(стрелок), а каким образом будут выглядеть эти апгрейды? Видел как-то в одном моде как апгрейды реализовали через дополнительные конфиги (отдельные файлы) для апгрейженных (прости господи) стволов. У тебя так же или нет?
Сообщение от модератора меченый(стрелок)
Не знаю где было реализовано подобное, вспоминается только мод Zen'a ,но там не ВИЗУАЛЬНО реализован апгрейд... А по Сути, в моём скрипте, происходит замена секций оружия\костюма\итема с замещаемыми параметрами ... по сути из редми должно быть понятно... Да ,это можно назвать заменой "конфигов", но в этом самом конфиге не нужно писать все параметры ствола ,а только нужные.. к примеру увеличенную пулестойкость у броника и т.д...тут всё зависить от рациональности мышления разработчика...

З.Ы. ИМХО, не стоит спешить с добавлением всего и вся в Соль, а то потом набирается проблем. Отдельные паки типа стволов, флэшек и т.д. - вот выход, а потом уже протестированное можно ставить, если надо. Сначала все кричали давайте ремонт, потом все начали плеваться...

Сообщение отредактировал меченый(стрелок): 27 12 2009 - 20:05


#52   solvador

solvador
  • Группа: Жители
  • Сообщений: 1 061
  • Регистрация: 17.11.2008
  • Пользователь: 6120

Отправлено 27 12 2009 - 23:44

Цитата(dimos @ 27.12.2009, 19:13) <{POST_SNAPBACK}>
через дополнительные конфиги
Не вижу ничего плохого, в данном способе. Просто и без лишних заморочек. Кстати ПЫС свои уники по тому же принципу организовали.
В паке, который я недавно выложил, сделано аналогично. Апгрейд в виде простой замены одного ствола на другой. При том, что конфиг апгрейженного ствола состоит всего лишь из пары строк содержащих отличия от "родительского" конфига.
К чему изобретать велосипед... ny_wink.gif
Сообщение от модератора меченый(стрелок)
+1
Хотя, чтобы сделать по другому нужно править XrGame.dll, что без знания ассемблера представляется невозможным sad.gif

Ray, ну так многие этим и пользуются. Вроде в ОГСЕ поступили аналогично.

Сообщение отредактировал меченый(стрелок): 28 12 2009 - 00:54


#53   Ray

Ray
  • Сталкер, слушающий и поднимающий тяжелый металл

  • Группа: Жители
  • Сообщений: 2 007
  • Регистрация: 06.09.2009
  • Пользователь: 12882

Отправлено 27 12 2009 - 23:49

solvador, согласен впосне нормальное использование принципа наследования классов. Производный класс получает все, что есть в базовом и может перекрыть некоторые поля (начальная скорость пули, вес и т.д.). Эта идея у меня зрела давно (сразу после изучения файла уникуе_итемс).

Сообщение отредактировал Ray: 27 12 2009 - 23:53


#54   Shadowman

Shadowman
  • Черный хирург

  • Группа:  НС
  • Сообщений: 1 877
  • Регистрация: 22.10.2008
  • Пользователь: 5731
  

Отправлено 28 12 2009 - 01:50

Цитата
чтобы каждый скрипт ,или почти, использовал свой фаил настройки(это позволяет пользователям настраивать скрипт под себя без знания Lua)

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

Arhara, не не в сидах дело. Все равно, раз начали - нужно довести до логического конца.
А СИДы - не помогут, что так - что эдак. Восстановление нужно делать с названием секции из аллспавн (цифровым). А СИД - можно либо взять из того же аллспавн, либо прочитать у зависшего непися перед переспавном. Димос подмогнет чуток с табличкой названий секций, я напишу что-нибудь для вытаскивания цифири из аллспавн (как Меченый предложил) - и будет этот вариант.
Если не получится фокус с нетпакетом - все равно будет этот запасной вариант smile.gif
И что-то мне подсказывает, что фокус с нетпакетом должен получиться...

Monnoroch, я тут кстати подумал: а зачем, собственно, искусственно портить кому-то пстор после НГ. Я могу просто-напросто катануть зависшему неписю пстор аналогичного (я про свой конкретный пример - это охотник бар_охотник_респавн1), можно просто закатать ему нетпакет какого-нибудь рядом имеющегося, типа бар_охотник_респавн2. И, кстати, попортить пстор (именно мусором заполнить) - не так и просто. Нужно убирать зэкер из функции его записи. Так что непонятно, как тот мусор у него вообще мог появиться.

Сообщение отредактировал Shadowman: 28 12 2009 - 12:04


#55   Arhara

Arhara
  • Группа:  НС
  • Сообщений: 6 722
  • Регистрация: 21.03.2008
  • Пользователь: 1540

Отправлено 28 12 2009 - 01:55

Shadowman,

не заморачивайся. Если дело действительно стоящие - я проставлю всем СИДы

#56   sapsan

sapsan
  • Группа:  НС
  • Сообщений: 1 140
  • Регистрация: 14.09.2008
  • Пользователь: 4810
     

Отправлено 28 12 2009 - 14:47

Arhara, нужно закомментировать в gamedata/config/ui/ui_custom_msgs.xml строку 184:
<texture>ui_hud_frame_clock_vergas</texture>
Она осталась в полуфинале.

#57   Monnoroch

Monnoroch
  • Группа: Жители
  • Сообщений: 3 866
  • Регистрация: 03.05.2008
  • Пользователь: 2441
  

Отправлено 28 12 2009 - 15:25

Shadowman, а,ну даже так можно.но это не 100% проверка работы системы smile.gif


#58   Shadowman

Shadowman
  • Черный хирург

  • Группа:  НС
  • Сообщений: 1 877
  • Регистрация: 22.10.2008
  • Пользователь: 5731
  

Отправлено 28 12 2009 - 17:28

Monnoroch, а чем лучше записать скриптом в пстор что-то левое? В записи из хр_лождик стоит заглушка, там левого ничего писаться не должно.
И если я эту заглушку не сниму - то и сам ничего левого не запишу smile.gif
По-любому, тест частично будет исскусственным. Важно, чтобы перезапись "здорового" нетпакета давала результат. А тогда уже - как повезёт. имхо, без записи этой таблицы в сейв - толку будет маловато (с очисткой на нет_дестрой). Или нужно-таки ловить, где криво пишется, или вести постоянный мониторинг. Можно сеять по квестовикам, вообще-то (таблица есть уже smile.gif )

меченый(стрелок), по поводу амк2_ини и того, что мне нужно сделать:
очень надеялся, что можно, зная параметр (например, name) из аллспавн (или любого другого конфига) получить имя секции. Но, по-видимому, можно только наоборот. Собственно, это к любому конфигу применимо.
Т.е. заполучить список всех секций, или с какими-либо условиями по параметрам - не судьба sad.gif
Ну, можно, наверное, читать файл построчно и потом отсеивать, но это уже - вообще изврат.
Вобщем, придумал уже, как это сделать; не без изврата, то приемлемо smile.gif

Monnoroch, не знаю. Пока что все это дело работает при загрузке сейва. Вся кухня вылетает уже после записи нетпакета в ф-ции gulag:removeObject( obj_id ) в строке if not self.npc_info[obj_id].exclusive then с ругательством на нил в поле '?'
Перезаписал нетпакетом аналогичного охотника. Этого точно делать нельзя. Хочешь, нетпакет непися покажу? wink.gif
нетпакет охотника из того же гулага, с такой же секцией, но не зависшего


меченый(стрелок), точно! Не подумал как-то, что имя секции можно совать какое угодно. И потом уже копать на нужные ключи. Спасибо!
Кстати, массив имен секций получить можно. Не совсем автоматически, к сожалению... сортировкой строк с последующим сохранением в табличку результата сортировки biggrin.gif ..А потом перебрать уже эту табличку
Что-то начало с нетпакетом получаться... Только теперь эту всю байду нужно будет запускать как-то по-другому, потому что в сейв несколько мегов нетпакетов - никак не вогнать. А значит, "отлов" зависов придется возвращать.

Сообщение отредактировал Shadowman: 28 12 2009 - 22:56


#59   Monnoroch

Monnoroch
  • Группа: Жители
  • Сообщений: 3 866
  • Регистрация: 03.05.2008
  • Пользователь: 2441
  

Отправлено 28 12 2009 - 22:11

Shadowman, тут ты зря.смотри- повис непись,ему тут же переписало пстор и нетпакет.зачем тебе сейвы?

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

меченый(стрелок)
  • "Pirate Station" Dancer

  • Группа: Жители
  • Сообщений: 1 471
  • Регистрация: 01.06.2008
  • Пользователь: 3002

Отправлено 28 12 2009 - 22:39

Shadowman,Monnoroch, здравствуйте wink.gif.
Смотри - каждый объект имеет номер(название секции)...
наша задача прочитать все конфиги алл.спавна в табличку которая будет содержать информацию об объекты и является подтаблицей главной таблицы которая хранит подтаблицы biggrin.gif.
для это нам нужен список файлов который мы будем читать, для это табличку пишем сами smile.gif
потом - цикл в цикле, один цикл по табличке с именами файлов , (внутри)другой от 1 до 65355(ну или как вам захочется)....
в амк2_ини во всех функциях проверяется на существование секций и ключей , поэтому вылета не будет....
ну а дальше после всего ищи по табличке всё что тебе нужно...только не забудь smile.gif , в алл.спавне не только нпс(но они имеют уникальные параметры ,так что думаю проблемы сделать проверку на проверку ключа у секции нет wink.gif).. Как-то так
Цитата
очень надеялся, что можно, зная параметр (например, name) из аллспавн (или любого другого конфига) получить имя секции

можно , только если у тебя есть массив имён секций, иначе ,увы, никак
----
Рад помочь wink.gif

Сообщение отредактировал меченый(стрелок): 28 12 2009 - 22:52



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей

2007-2017 © AMK TEAM