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

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

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









Автор Сообщение
Struck
    
Посты: 1946
Откуда:
Возраст:
05-08-2011 20:14 GMT3 час. #1508572   
TheDoktor подобные вылеты происходят по большей части из-за конфиго-скриптов, выкини все модели и текстуры, залей мод, но и тогда вряд ли кто-то будет делать за тебя. Сейчас есть масса модов которые способны "обойти" подобный вылет и дать некую подсказку "почему". Намёк ясен?


Снова в строю.

l
Artos
    
Посты: 4176
Откуда:
Возраст: 65
05-08-2011 20:30 GMT3 час. #1508582   
TheDoktor
Ну во-первых, поиск и анализ подобных ошибок возможен только на реальных кодах и при наличии сэйва, который воспроизводит твою ошибку. Так что ... если залил - то и ссылку приводи, может кто и не прочь скачать и поковыряться.

Могу дать пока только некоторые наметки, которые помогут сузить круг поиска.

- граница вылета врядли обширна. Скроее всего это все же точка. Подобные вылеты могут быть по немалому кол-ву причин, но общее - некий объект, который попадает в дистанцию алайфа или в логике объекта прописан радиус до ГГ, оказывается на расстоянии, которое активирует некую логику/схему/функцию, в которой имеется ошибка ...
Первое, что стОит сделать - снизить дистанцию алайфа и ... если граница возникновения ошибки изменится - следует искать в направлении 'стандартной' логики, которая зависит от 'штатных' значений алайфа. Если нет - искать в направлении эксклюзивной логики, где имеются параметры дистанции/радиуса.
- причиной может быть и срабатывание рестриктора и активизация логики некоего объекта.
Поиск виновника 'в лоб' может быть например таким: удалять по одному или группами объекты из игры в самом начале ее старта. Т.о. можно отыскать тот объект, который провоцирует ошибку и уже с ним разбираться.
...


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
TheDoktor
    
Посты: 3814
Откуда: Керчь
Возраст: 37
05-08-2011 20:41 GMT3 час. #1508588   
Artos да я то понимаю что причина вылета некий предмет в центре... Но там же нет ничего особенного, одни бандюки. К примеру на армейских складах безлоговый вылет может происходить из - за калаша в тисках у Скряги, если модель менял, там кости не совпадают, а тут... Скрипты, логику я не трогал, добавил новые стволы, да старым визуалы поменял, всё! Больше ничего не трогал.
Кстати, вот ссыль<<<, если что. Сэйв<<<
Struck

Сейчас есть масса модов которые способны "обойти" подобный вылет и дать некую подсказку "почему".
Чё то первый раз слышу. А где можно такой взять?

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

Блин! Два месяца стволы "выводил" чуть ли не под линеечку, а тут такой облом!:obstenu:

отредактировал(а) TheDoktor: 05-08-2011 21:07 GMT3 час.

Я – хозяин своей судьбы, но только судьба знает, где закончится мой путь.

Struck
    
Посты: 1946
Откуда:
Возраст:
05-08-2011 20:48 GMT3 час. #1508595   
TheDoktor ну я когда обленюсь пользуюсь вот этим http://stalker-portal.ru/plug.php?e=weblogs&m=page&id=6655 , довольно полезная штука чтобы по сто раз не перезаходить.


Снова в строю.

l
Struck
    
Посты: 1946
Откуда:
Возраст:
05-08-2011 21:01 GMT3 час. #1508600   
Dark Scripter , вставляем свои скрипты, и отлавливаем вылет. Обойти вылет ничто не сможет, точнее обойти как раз таки сможет, но не предотвратить.


Снова в строю.

l
Artos
    
Посты: 4176
Откуда:
Возраст: 65
05-08-2011 21:04 GMT3 час. #1508601   
TheDoktor
Кроме ссылки на коды моды не вижу ссылки на сэйв. Или ты предполагаешь что время, потраченное на прохождение до ТД - это малость? Если я и скачаю мод и найду время 'посмотреть ошибку' - то точно не стану проходить игру с самого начала ...
И не нужно пустословия о том что 'там же нет ничего особенного'. Что должно быть особенным и вызывать ошибки? Любой объект в игре может провоцировать фатальные вылеты если имеет некорректные параметры или вносить в логику свою или чужую недопустимое.
...

Struck
Упомянутое тобою в данном случае не имеет смысла. Искать ошибки в синтаксисе скрипта на лету иль иначе - это совершенно иной пласт ошибок. В данном конкретном случае это тлько потеря времени.


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
TheDoktor
    
Посты: 3814
Откуда: Керчь
Возраст: 37
05-08-2011 21:10 GMT3 час. #1508603   
Artos добавил сэйв в предыдущий пост. Ну эт на тот случай если ты заинтересовался.:-) Ну или кто другой заинтересовался.;-)


Я – хозяин своей судьбы, но только судьба знает, где закончится мой путь.

Artos
    
Посты: 4176
Откуда:
Возраст: 65
05-08-2011 21:36 GMT3 час. #1508617   
TheDoktor
Не обольщайся, заинтересованности моей нет. Просто ... встречая и в своем моде порою подобные ошибки, наработав некие навыки по их поиску, имея все же какой-никакой самодельный доп.инструментарий ... могу (если будет время и желание) а) потренироваться дополнительно и б) попутно помочь менее опытному в таких делах модмейкеру.
Не более ...


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Arist
    
Посты: 310
Откуда: Москва
Возраст:
05-08-2011 22:26 GMT3 час. #1508627   
Если нетрудно,подскажите,где ошибка.Есть статья.Спавн мертвеца.Добавляю контроллёру выдачу инфопоршня при убийстве:
on_info = %+prizrak_ubit%
Призраку в логику:
on_info = {+prizrak_ubit} %=kill_npc()%
Вылет при убийстве контроллёра:
[error]Arguments : LUA error: d:\s.t.a.l.k.e.r\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value)
Если контроллёр убивает Призрака раньше, то вылета нет.Игра идёт своим чередом.


Artos
    
Посты: 4176
Откуда:
Возраст: 65
05-08-2011 23:01 GMT3 час. #1508636   
Arist
Совсем недавно в этом топике (а ранее десятки раз в других местах) давалось пояснение о строках лога типа: _g.script:20: bad argument #2 to 'format'. Найди и почитай, т.к. еще не раз встретишься с подобным.

А ошибка твоя банальна (если конечно не изменены коды и не добавлены функции):
Часть строки логики для Призрака: %=kill_npc()% - это ни что иное как вызов из 'xr_effects.script' функции 'kill_npc()' которая просто напросто отсутствует в этом файле, а имеется 'kill()'. Вот и ругается схема вызовом функции 'abort' при смерти Призрака, прерывая игру.
И, кстати, совершенно непонятно, для чего вызывать в логике функцию суицида (самоубийства) для уже трупа?
Как впрочем и непонятна твоя добавка к логике для контролера - он дает инфопоршень, что убит Призрак ...


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Artos
    
Посты: 4176
Откуда:
Возраст: 65
06-08-2011 00:05 GMT3 час. #1508651   
Dark Scripter
Сформулируй конкретные требования к результату, а не размытые "хотя бы" ...
Что должно являться результатом парсинга строки?
Да и возможные вариации для самой строки 's' неплохо бы уточнить.
Тебе требуется разделить строку по первому вхождению символа '_' или нечто более сложное?
И требуется ли использование именно данной функции/итерации или важен результат вне зависимости от использованного способа?


Arist
Если нет причины добалять коды - стОит использовать те, что есть.
Для чего создавать новую функцию, если уже есть ее полный 'штатный' аналог ( function kill(actor, npc) )?
Чтобы проще было самому запутаться? :-)

отредактировал(а) Artos: 06-08-2011 00:29 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Artos
    
Посты: 4176
Откуда:
Возраст: 65
06-08-2011 00:58 GMT3 час. #1508657   
Dark Scripter
Тогда в твоем случае стОит использовать патерн типа '^(.+)_', но(!) т.к. gfind() ищет все вхождения и игнор**5001618d69873ce82a42**

отредактировал(а) Artos: 06-08-2011 01:46 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Artos
    
Посты: 4176
Откуда:
Возраст: 65
06-08-2011 01:46 GMT3 час. #1508663   
Dark Scripter
Выше чуток уже дал попытку оптимизации ...
Тут скорее всего не выжмешь более ничего.
На выходе требуется задать в статистике актора то оружие, которым он суммарно нанес наибольший урон для всех объектов.
Имеем четыре типа: гранаты, десерт-игл, гранатомет и остальное оружие.
Порядок проверки уже достаточно оптимален, первыми отсекаются гранаты, далее игл и гранатомет.
Если порядок поменять, то придется все одно вводить условия и их кол-во превысит исходные проверки.

И в заключение. Вызов подобных функций относительно одиночен. В игре актор наносит не каждую секунду хиты ... Если уж оптимизировать - то подобные места я бы рассматривал в последнюю очередь.

Н**5002618d69873ce82a42**:object(active_item:id())
if s_obj then
local s = s_obj:section_name()
for w in string.gfind(s, "%w+") do
if weapons_table[w] ~= nil then
weapons_table[w] = weapons_table[w] + hit_amount
end
end
local amount,mask = 0
local mask = nil --/#+# маска секции самого хитового оружия
for k,v in pairs(weapons_table) do
if v > amount then
amount = v
mask = k
end
end
if mask then
if mask == "rgd5" or mask == "f1" then
actor_statistic.favorite_weapon_sect = "grenade_"..mask
elseif mask == "desert" then
actor_statistic.favorite_weapon_sect = "wpn_desert_eagle"
elseif mask == "rg" then
actor_statistic.favorite_weapon_sect = "wpn_rg-6"
else
actor_statistic.favorite_weapon_sect = "wpn_"..mask
end
end
end
end
end
[/code]

отредактировал(а) Artos: 06-08-2011 02:18 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Artos
    
Посты: 4176
Откуда:
Возраст: 65
06-08-2011 02:30 GMT3 час. #1508669   
Dark Scripter
Смотри в корень, а потом уж по сторонам.
Для чего/что делает эта функция? Эта функция всего лишь выводит в статистике актора н

отредактировал(а) Artos: 06-08-2011 06:40 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Struck
    
Посты: 1946
Откуда:
Возраст:
06-08-2011 13:35 GMT3 час. #1508822   
Можете пояснить систему рюкзаков в амк? Конкретно меня интересует как сделать ограничение по взятие тех или иных вещей. Смотрел скрипт(restriction_stock.script), мало понятного. Я даже действия не понял, т.е. как оно работает. Смутно так понял что есть некие два параметра, один как ограничитель, а другой постоянно меняется(от кол-ва вещей), они сравниваются и при определенном значении производится действие.


Снова в строю.

l
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
06-08-2011 13:36 GMT3 час. #1508823   
Dark Scripter
Так. Через пару дней выйду из загула и расскажу как всё сделать по правилам Lua.
А пока не занимайся ерундой. Lua не для того придумали, чтобы над ним издеваться.


Не стань номинантом премии Дарвина.
Zippеr
    
Посты: 967
Откуда:
Возраст: 25
06-08-2011 13:41 GMT3 час. #1508826   
Как сделать чтобы в зависимости от надетого костюма менялись текстуры рук гг как в ЧН и ЗП?


singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
06-08-2011 13:49 GMT3 час. #1508827   
Struck
1. Имеются параметры "макс-кол", для определённых категорий предметов.
2. Отслеживаются все виды взятия предметов в инвентарь.
3. При каждом событии взятия, производится итерация инвентаря с распределением имеющихся вещичек, по категориям.
4. После итерации инвентаря производим сравнение полученных значений с параметрами "макс-кол".
5. Если одно из значений превышает установленный порог, то производим выбрасывание взятого предмета, путём дропа.

Это взято не из АМК, а всего лишь один из вариантов подобной фичи. Не удивлюсь, если в АМК так и сделано.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Struck
    
Посты: 1946
Откуда:
Возраст:
06-08-2011 13:59 GMT3 час. #1508829   
singapur22 хочется велосипед смастерить...


Снова в строю.

l
bandит
    
Посты: 96
Откуда: Симферополь
Возраст:
06-08-2011 14:53 GMT3 час. #1508847   
_ZIP_ http://www.amk-team.ru/forum/index.php?showtopic=9669
а вообще поисковик в интернете не отменили.


Zippеr
    
Посты: 967
Откуда:
Возраст: 25
06-08-2011 15:04 GMT3 час. #1508850   
bandит спс

А чё так много весит?

Сори за офтоп


singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
06-08-2011 15:11 GMT3 час. #1508855   
Struck Я понимаю на счёт велосипеда, когда хочется самому. И одобряю. Но не до такой же степени. Ты ещё оператор for распиши на составляющие while_do_end.
Для итерации инвентаря, имеется специальный ме**5002618d69873ce82a42**ion blabla()
...
db.actor: inventory_for_each(target)
...
end

function target(item)
local sec_name = itrm:section()
...
end[/code]


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Struck
    
Посты: 1946
Откуда:
Возраст:
06-08-2011 16:04 GMT3 час. #1508882   
singapur22 не въехал я с этим методом, сейчас разобрался с iterate_inventory, он пойдет?


Снова в строю.

l
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
06-08-2011 16:24 GMT3 час. #1508889   
Struck Оба метода работают аналогично, с той лишь разницей, что метод iterate_inventory(...) производит итерацию только по явным предметам.
При этом, метод inventory_for_each(...) производит итерацию абсолютно по всем предметам инвентаря, включая скрытые.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Struck
    
Посты: 1946
Откуда:
Возраст:
06-08-2011 16:31 GMT3 час. #1508891   
singapur22 ясно, значит буду использовать который понял, ибо подсчет ножей и биноклей я делать не собираюсь.

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

А как правильно дропнуть только что взятый итем из определенной категории в iterate_inventory(?), db.actor:drop_item(item:id()) я пробовал так.

отредактировал(а) Struck: 06-08-2011 17:31 GMT3 час.

Снова в строю.

l
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
06-08-2011 17:38 GMT3 час. #1508901   
Struck Не советую дропить предметы во время итерации. Можно получить баг с итерацией, вплоть до краша игры (если не установить соответствующих защит). Так как данный итератор завершить преждевременно нельзя, советую производить установку ключа. При истином значении которого, производить дроп взятого предмета, после завершения итерации.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Геныч Defake
    
Посты: 305
Откуда: Аша
Возраст: 29
06-08-2011 18:06 GMT3 час. #1508905   
Есть скрипт на спавн двух зомби:

function wolf_lager_create_zombie()
alife():create(zombie_normal,vector():set(-174.166,-20.01,-131.69),78664,55)
alife():create(zombie_normal,vector():set(-175.15,-19.93,-159.579),75357,52)
end

Как выдать игроку инфопоршн, после смерти обоих этих зомбей?


Сталкер - круто, Сталкер - класс,
Crysis смоем в унитаз!!

Метро не круто и не класс!
ПЫСа смоем в унитаз!))
---
Если у кого то есть вопросы по Game Maker, модмейкерству или языку html, то пишите - вместе потупим =))
Struck
    
Посты: 1946
Откуда:
Возраст:
06-08-2011 18:07 GMT3 час. #1508906   
singapur22 надо тогда его как-то сохранять(как?)(когда вводить этот ключ?, я так понимаю у него система true/false будет), ибо переменная item вне итерации равна nil. Во время итерации уже**5002618d69873ce82a42**y,item)
if blabla[item:section()] then
autoweapon = autoweapon+1
if autoweapon > 4 then
--db.actor:drop_item(item:id())
sendtip("Это уже некуда положить")
end
end
end, nil)
end[/code]

отредактировал(а) Struck: 06-08-2011 18:11 GMT3 час.

Снова в строю.

l
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
06-08-2011 18:27 GMT3 час. #1508919   
Struck

надо тогда его как-то сохранять(как?


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Struck
    
Посты: 1946
Откуда:
Возраст:
06-08-2011 18:44 GMT3 час. #1508927   
singapur22 не работа


Снова в строю.

l


Форумы Архив » Свалка Вопросы и ответы (старое, по 12.09.11)


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

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