erlikМаксим Р. вот ведь попадалово! Я вчера перерыл кучу модов, от мелких до глобалок, нигде и намёка на этот конфиг. :-( Попробую сделать как вы советуете. Спасибо!
добавлено спустя 31 минут
Максим Р. спасибо огромное! Помогло! Но я не могу понять, что собственно нужно было в этом файле? Я его вообще пустым сделал.:dry:
отредактировал(а) TheDoktor: 30-06-2010 21:39 GMT3 час.
Я – хозяин своей судьбы, но только судьба знает, где закончится мой путь.
TheDoktor, в этом файле прописываются параметры самой модели, среди них есть защитные параметры. К примеру, если прописать сталкеру модельку новичка в обычной куртке, то он будет получать больший урон, нежели у него будет моделька в экзоскелете. Это как раз настраивается в этих файлах.
Наверняка, кто делал этот файл, хотел сделать уникальных персонажей более защищёнными.
Stalk15,
soObj - локальная переменная в функции gygy_gygy(), в функции hit() она уже не известна. Для этого в коде предусмотрена переменная idMyobj, которая будет доступна, и функции hit(), и gygy_gygy().
Поскольку в функции gygy_gygy() ты присваиваешь значение этой переменной, то в hit() измени:
local obj = level.object_by_id( soObj.id ) --> local obj = level.object_by_id( idMyobj )
Но не помешало бы сделать проверку на nil в hit().
Xray23
Изначально электро-химера появилась в АМК-моде. sevitov_yura прав, в Симбионе тоже есть.
Но ... многие моды, вначале добавив электрохимеру, позже отказывались от нее. Некоторые видеокарты не тянут ее. Stalk15
Советую почитать повнимательнее несколько раз доки по LUA касательно 'Локальных объявлений' и 'Зон видимости и Upvalues'.
Большинство твоих ошибок связаны с тем, что ты 'теряешь' переменные и неправильно понимаешь их 'зоны видимости'.
Alex-San
Что мешает самому воспользоваться поисковиком с запросом "LUA по русски"?
...
Вот тут сам выбирай.
Stalk15
А если самому задуматься и попытаться понять "почему хит не наносится?".
Что мешает посмотреть, а собственно клиентский объект существует на момент нанесения хита?
Ошибка многих: заспавнив объект, сразу же пытаться применить к нему (точнее к его уже клиентскому воплощению) он-лайн методы ...
Считай как в жизни, пока из род-дома не выписали - 'приласкать' дитя не сможешь. ;-)
Порой требуется 3-5 периодов апдейта ... (или 200...300 ms тайм-аута). P.S. Апдейт (update): в данном контексте - function actor_binder:update(delta) (см. bind_stalker.script) или аналоги ... Mehanik Yar, Deviks
Один спросил 'куце', второй ответил ... не подумав.
Если речь о схеме 'xr_sleeper.script', то 'чтобы НЕ спал' достаточно внести нужную непись в исключения ... Ma$ter
Не совсем так.
а) local time - должна быть НЕ в теле самой функции (иначе будет обновляться с каждым вызовом).
б) вызов функции нанесения хита должен быть 'забинден', т.е. вызывать из указанного выше апдейта.
Ну и ... какой-нить флаг-триггер, выключающий апдейт хитовой функции, дабы не 'долбил' постоянно.
XrKamp
А показать свои 'попытки' - слабо? :-)
Чаще полезнее понять свои ошибки, чем получить 'готовенькое' от кого-то.
Готовый ответ тут:
Проверка на нейтральность к группировке (например к Cвободе): local iGoodWill = relation_registry.community_goodwill("freedom", db.actor:id()) , где iGoodWill - текущее значение отношения группировки к ГГ.
Диапазон нейтральности (indifferent) прописан в параметрах 'благосклонность' (см. 'goodwill_names' в game_relations.ltx) и дефолтно равен -400...500 (в модах может отличаться!).
Т.о.if iGoodWill > -400 and iGoodWill <= 500 then
return true --/ нейтральное отношение
else
return false --/ НЕ нейтральное
end Внимание!: Не следует путать с проверкой "Не хуже нейтральной?" или "Не враждебное?":if iGoodWill > -400 then
return true --/ Не враждебное отношение
else
return false --/ враждебное
end
Stalk15
А зачем тебе вообще цикл перебирающий все объекты игры, если у тебя объект уже и так определен local obj = level.object_by_id( soObj.id )
У тебя получается по бомбе наносится 65 тысяч раз хит :-) если конечно проходит проверка
if obj and obj:section() == "bomba" then
но если obj на момент проверки nil (то есть клиентский объект еще не успел появиться - в отличие от серверного, который ты заспавнил и чей айди записал) - тогда, конечно, хита нет - и поэтому нужна как и советует Artos пауза примерно в полсекунды между спавном и хитом.
добавлено спустя 1 минуту
Без биндера(или точнее апдейта) можно обойтись - если заспавнить объект, записать\сохранить его айди.
А потом - через некоторое время - нанести хит используя записанный айди.
Все зависит от того что именно и когда именно тебе требуется - а нам этого неизвестно.
отредактировал(а) erlik: 01-07-2010 11:08 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Artos
А вот отношение к ГГ группировкам, в зависимости от его "поступков", можно как-то вернуть в первоначальное состояние? Если я стал врагом Свободе, можно ли создать функцию, которая так сказать сбросит текущее отнощение на первоначальное, т.е. на нейтрала?
Да и само отношение как меняется к ГГ? Был нейтрал "0" пристрелил члена группировки и сразу "-5000" или был друг "+5000" и сразу стал врагом "-5000"
Эти значения, они ни как не накапливаются, а просто переключаются "-5000", "0", "+5000"?
Но пути там поставлены разные и они состоят из одной точки, по идее НПС должен стоять в точке и смотреть в другую, но игра просто вылетает, в чем фигня не подскажите?
отредактировал(а) Mehanik Yar: 01-07-2010 11:19 GMT3 час.
karavan
а ты в game_relations заглядывал ?
вот сюда:
;очки рейтинга, репутации и доброжелательности начисляемые
;в зависимости от совершенного действия
и ниже длинный-длинный список раздачи "слонов".
ну и метод set_community_goodwill(группировка, к кому, отношение) никто не отменял.
хотя таких функций (general_goodwiil , goodwill, set_goodwill, change_goodwill ) много - каждая для чего то своего.
отредактировал(а) erlik: 01-07-2010 11:33 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
из 1 точки нельзя блин. Хорошо, сделаю две в одном месте.
Тогда такой вопрос, как у РПГ 7 изменить урон? там не поймешь где он находится. Скажите плиз.
добавлено спустя 17 минут
Да блин нефурычит этот валкер, сделал только один путь из двух точек, сначала НПС в одной потом должен идтить в другую и там дальше уже точек нет.
Логика вот такая
[logic]
active = walker
[walker]
path_walk = mar_meh_yar1
Но игра всеравно вылетает.
отредактировал(а) Mehanik Yar: 01-07-2010 11:48 GMT3 час.
erlik Да, заглядывал. Но всё таки не понятно как это работает.
Например, в моде "Встречают по одежке" отношение НПС разных групировок происходит в зависимости от надетого костюма. Указано растояние, на которое нельзя близко подходить, а так же растояние с которого НПС примут ГГ как своево. Я пытался менять значения в game_relations.ltx (-5000, 0, +5000) на значения в 10 раз меньше, т.е. (-500, 0, +500), разницы не какой не заметил. И соответственно пришел к выводу что существует три вида отношений враг (-5000), нейтрал (0), друг (+5000) и не может быть например, друг (+4500) или враг (-3200), а только в граничных пределах. Возможно я не прав, вот и прошу пояснить если это так.
Например: Если пристрелить "Долговца" вне зоны видимости других "Долговцев", то можно свободно общаться с членами этой групировки и дальше. Вот мне и стало интересно сколько минуса за убийство члена групировки в репутацию ГГ?
karavan
А ты попробуй поиграться со значениями в указанном мной списке - скажем замени
free_neutral_attack_goodwill = -1000 -- атака нейтрала не в бою
на free_neutral_attack_goodwill = 1000 или 2500 или 0
и попробуй стрельнуть в нейтрала в лагере новичков на кордоне - если эти параметры имеют значения -то должен быть и какой то другой эффект от произведения ГГ враждебного действия против нейтрала.
Поэксперементируй. Формулы по которой высчитывается итоговое отношение к ГГ у меня нет - это надо все параметры ковырять и смотреть как они в скриптах используются и как делается расчет.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Не робит типовой квест(
"Написал" свой первый типовой квест для Волка, а он его не берёт, гад) Короче если ставишь моему прироритет =1, то он появляется и выполняется. Тоесть с самим квестои всё пучком. Проблема в том что я не могу ТРЕТИЙ(ну и т.д.) по счёту типовой квест Волку всучить. Не берёт падла и усё)
Насколько я понимаю проблема в том что сами типовые квесты обрабатываюся ДРУГИМ скриптом, который и следит за порядком их выдачи. Вот только вопрос - КАКОЙ!?
2 Stalk15
Спс за адрес офсайта по LUA, но гугл мне его давным-давно уже подсказал)
Stalk15
Ну во первых не стоит давать своим функциям названия идентичные названиям методов сталкера - hit() метод и твоя функция тоже hit() .
И проверка на obj:section() == "bomba" в общем то лишняя. Раз цикл убрал - то и не нужна она.
А во вторых - через что ты вызываешь саму функцию?
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Stalk15
А названия функций почему одинаковые?
странно что ГГ хит получает. (названия то сделай все таки разные)
h.draftsman = db.actor здесь можно obj поставить - то есть источник хита - сама бомба.
Николай ФеНиКс
Так не проще - у него же объект не через allspawn заспавнен - и каким боком он name определит если в его случае name создается автоматически.
Вот если name заменить на section_name() или section() - тогда другое дело - можно и так.
Но ведь у него в данном случае айдишка объекта уже есть - зачем ему цикл - сам подумай.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.