Alex-San
В принципе, по-человечески, я поддерживаю тебя руками и ногами.
У меня такой же ( хоть ты и не указал точно (написал - хлам), но я же не постеснялся (даже наоборот - посмотрите что из хлама можно сделать - в профиле) - написал.
Так что я тебя отлично понимаю, что значат лаги при спавне через скрипт.
Но это уже не наша с тобой проблема - это проблема развития эволюции.
Мне это тоже трудно признать (хлам он и в Африке хлам, как и у меня), так что смирись.
----- Alex-San
С удовольствием пообщаюсь, т.к. во-первых ты не "зеленый юнец" по возрасту, во-вторых - человек всегда должен иметь своё мнение (главное, конечно, не перегибать палку), ну а в- третьих - я ,почему-то просто в принципе на твоей стороне.
Наверное потому, что хоть сейчас и живу на Украине, но душу то, русскую(бунтарскую) куда девать???=)
отредактировал(а) Gun12: 19-12-2010 10:12 GMT3 час. Не стань номинантом премии Дарвина.
Artos циклом спавнить то же не всегда есть хорошо, я давно делал сценку атаки, делал из одной точки(циклом) так вот спавнились 7-8 нпс и их сразу убивали(у меня мощность оружия велика), вот и пришлось их спавнить по разным точкам(за укрытиями чтобы не сразу валили)
добавлено спустя 1 минуту
erlik таки я перебил кучу вариантом метода owner...как ни крути не работает ввод у меня...какой принцип у него?:-)
отредактировал(а) Struck: 19-12-2010 01:36 GMT3 час. Снова в строю.
Struck, дружище, хочу быть объективным, покажи, где Artos сказал, что спавн "кучей" - это панацея?
Я этого не увидел.
Может проблема во мне?
Тогда не стесняйся - ткни носом.
Struck
Про спавн "кучей" и моё отношение по этому поводу я высказал несколько выше.
Хотите верьте, хотите нет, но я имею "некоторый" опыт работы со спавном, логикой и т.д.
Спавнить можно и кучей. Вылета не будет, но нужно предусмотреть условия, при которых ГГ не "заметит" этого.
Хотя это больше проблемы движка.
Поясню.
Я "забил" на редактирование логики (да и вообще на СТАЛКЕР), когда работал в одной, очень хорошей команде, и переходы офф/он лайн так "портили" логику (делали для "обычных" пользователей, для "супер"-машин конечно это было бы реально, но ... не для них делалось), что такая логика была бы (и была!) очень не плоха(необычна), но из за "слабости" компа , или подобных компов пользователей, невозможна в использовании в моде.
И когда некоторые НПС Не могут дойти до определеной точки из-за того, что ГГ слишком быстро бегает (алайф), то ну его на фиг. Нужно вычислять последнее местоположение для каждого НПС, сохранять, загружать при переходе в ОN, я же говорю - это не для каждого компа.
Так что хоть спавн и кажется как само собой разумеющееся, но нужно 30 раз подумать , - "А каков будет конечный результат?"
отредактировал(а) Gun12: 19-12-2010 03:08 GMT3 час. Не стань номинантом премии Дарвина.
Struck
Не понятно, к чему ты связал меня и ... спавн циклом?
В моем посте был процитирован кусок предложенного варианта спавна и я его испольховал как пример НЕ оптимального спавна, который можно причесать с точки зрения экономии ресурсов. а не более ... Циклом же это сделано или посточно - совершенно не меняет сути, что неписи могут оказаться сразу под огнем.
Могу только еще раз повторить: писать скрипты нужно ГОЛОВОЮ(!), руки иль ноги, а кто и голосом - это уже инструмент для их фиксации на носителе ...
Любой спавн, хоть точечный, хоть оптом, хоть через алл.спавн должен учитывать все нюансы игры/ситуации. Без этого - и с неба падают и в стены врастают и, как ты сказал, убиваются сразу ...
До каких пор людей, по крохам собиравших державу и беспощадно каравших её врагов, мы будем обзывать палачами, а индивидов, разваливших страну и пустивших на ветер труды целых поколений, именовать реформаторами? (Ф.М. Достоевский)
Но вот в чем проблема - сталкер доходит до p1 (точки номер 1) и дальше следует вылет:
! Cannot find saved game ~~~dbg:abort!!!
! Cannot find saved game ~~~dbg:object_'%s':_path_walk_'%s',_index_%d:_cannot_find_corresponding_point(s)_on_path_look_'%s'
! Cannot find saved game ~~~dbg:object_'predbannik_blokpost_komandir11539':_path_walk_'predbannik_blokpost_smart_binocular_walk',_index_1:_cannot_find_corresponding_point(s)_on_path_look_'predbannik_blokpost_smart_binocular_look'
Почему у тебя наименование флагов одинаково? И еще у тебя точка p1 в look очень далека от точки, где НПС стоит. Хотя я точно не знаю, может быть из-за этого вылет или нет, но я так не делал.
И кстати, я флаги пронумеровываю так: 0x1, 0x2, 0x4 ...
смотрел в три различные точки
Как это НПС может смотреть сразу в 3 точки? Так нельзя. Каждой точе в walk должна соответствовать одна точка в look.
Кстати вот выдержка из сталкер вики...
Упс, извеняюсь, тут ошибся.
отредактировал(а) Stalk15: 19-12-2010 14:22 GMT3 час. Новые фишки для сталкера(см. журнал)
Struck
Не понял тебя. Ты о чем? Все с нумпадом что ли? owner это не метод -а просто переменная.
Если у тебя нет ввода - делай вывод: ловишь не то окно\эдит_бокс numpаda. У меня была такая же ошибка - пока я не въехал что **5001b67681f3126adde4**
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Добрый день.Прочитал насчёт спавна нескольких неписей в разных точках.Я делаю так:
function spawn_npc()
alife():create("marsh_bandit",vector():set(132.905197,5.831904,-271.784668),330229,960)
alife():create("marsh_bandit",vector():set(136.572937,0.232351,-245.185120),333953,956)
alife():create("marsh_bandit",vector():set(156.726868,0.164596,-272.068034),356646,962)
alife():create("ds_bandit_respawn_1",vector():set(160.576782,5.832988,-255.417999),360469,963)
alife():create("ds_bandit_respawn_1",vector():set(157.415237,5.832433,-268.237976),357411,964)
alife():create("ds_bandit_respawn_1",vector():set(141.955994,0.231231,-235.868134),340315,958)
alife():create("ds_bandit_respawn_2",vector():set(137.934494,0.234147,-261.609192),335533,959)
end
Но видимо это не совсем правильно,точнее грубо,потому как всё работает.Или так можно?
У меня опять проблема, которую уже давно не могу решить, при продаже новому торговцу чего либо, он это все выкидывает, потом поднимает, что получше, как сделать так, что бы он ничего не выкидывал?
Gun12
Рудиментарная привычка :-G разумеется проверка на nil лишняя (достаточно и просто next(tT) - можно и вообще без next(tT)). Но когда пишешь код прямо на форуме - почти всегда где-нить лишнее\некорректное припишешь.
...придираешься?
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
ksuxa
Извиняюсь, но тут люди не играют, а моды делают.
Хотя может быть кто-то и играл, но лучше разослать такой вопрос по РМ или в специализированных топиках.
Нам не "в лом" ответить, но подобные посты не несут никакой смысловой нагрузки в плане моддинга, на который и "заточен" данный топик.
Поэтому будут считаться и флудом и т.д.
Давай сделаем так - ты удаляешь свой пост, я - свой.
Так я только оттуда. Единственное что там я нашел:
ipairs (t)
Возвращает три значения: итератор, таблицу t, и 0, поэтому конструкция
for i,v in ipairs(t) do body end
будет выполнять цикл парами (1,t[1]), (2,t[2]), ···, до первого целого ключа, отсутствующего в таблице.
А вот про паирс ничего
Сейчас отвечу (забью место =) и дополню чуть позже, не уходи далеко)
Как ты уже понял, ключевое слово - это "раirs", т.е. пары ключ/значение.
Таблицы могут быть (не буду далеко лезть, тебе пока и этого хватит) таблицами-**5031b67681f3126adde4**АССИВ.
Для того, чтобы посмотреть все записи в массиве, существуют 2 способа.
Первый - это вызов оператором FОR функции-итератора IРАIRS :[code]
for k, v in ipairs(t) do
...
end[/code]
второй - это обход элементов через тот же FОR, но циклом по всем элементам :
[code]
for i = 1, #t do
...
end
[/code]
Во всех учебниках написано, что второй вариант предпочтительнее.
Я так и поступаю, и функцию не использовал никогда.
Ну давай посудим, зачем нужна функция, возвращающая 3 значения (а это запись в стек), когда есть более простой вариант, с созданием Одной! Локальной! переменной 'i'
Так, Т9 напрягает, сейчас продолжу.
Все таблицы, не попадающие под определение выше - это хэш-таблицы.
Т.е. ключами в ней может быть Бог знает что (числа, строки, функции и т.д.)
Такую таблицу "посмотреть" нечем, кроме функции-итератора РАIRS :
[code]
for k, v in pairs(t) do
...
end[/code]
Т.е. таблицу вида
[code]
t = {['a'] = "word", 7, f = function () print('HELLO FROM Lua") еnd, и в таком же плане дальше}[/code]
Надеюсь помог тебе.
отредактировал(а) Gun12: 19-12-2010 21:55 GMT3 час. Не стань номинантом премии Дарвина.
erlik
зачем нужно было приводить примеры таблиц, когда и так понятно, что и твоя (новая) функция, и стандартная работают одинаково???
Может ты думаешь что Иерусалимски что-то "упустил"?
Тогда прямиком к нему, тут всё равно никто не поймет.
Переназначение функций(операторов, методов) - стандартные действия в Luа.
Велосипеда я не вижу.
отредактировал(а) Gun12: 19-12-2010 22:46 GMT3 час. Не стань номинантом премии Дарвина.
Gun12
Примеры таблиц - просто для примера.
Ну и самом деле Иерусалимский кой чего все таки упустил.:-)
Скажем не одно поколение программистов lua ругают его за создание этих самых pairs и ipairs.
Так как удобнее было бы использовать одну функцию, которая могла бы с одной стороны видеть все(любого типа) ключи в таблице(как pairs), а с другой производить итерацию в математическом порядке(как ipairs). Хотя может быть в новых либах такая уже и есть(не в курсе).
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.