Artos
ну насчет вертушек и бтр я тож потом дописал...:-) что имеет смысл.
а толкнуть предмет если я не ошибаюсь можно ведь и другим методом - не через хит.
set_const_force(const vector&, number, number); или это не работает? проверить как то все руки не дошли... karavan
самым первым тебе айди объекта нужно сохранить при спавне
local obj_id = 0 -- вне тела функции
-- здесь получим и сохраним в переменной
local objbomb = alife():create("bomba", pos, db.actor:level_vertex_id(), db.actor:game_vertex_id())
obj_id = objbomb.id -- id объекта после создания
и потом уже используешь это айди для определения объекта которому нужно дать хит
local boom_obj = level.object_by_id(obj_id)
хит и так наносится по предмету - просто для того чтобы движок знал по какому объекту нужно наносить хит требуется уникальный идентификатор объекта который назначается объекту автоматически при его спавне.
can_take = true\false просто дописываешь
вместо айди при хите можно использовать либо sid объекта, либо его уникальное name - которое прописывается в allspawn - то есть в этом случае как ты понимаешь объект спавнится не через скрипт.
отредактировал(а) erlik: 28-04-2010 16:55 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
FLIKER
Тебе дали направление поиска и не стОит предполагать, что кто-то имеет возможность (и желание!) копаться в файлах, которые ты же ковыряешь на своем компе. erlik
Конечно можно нечто делать разными способами/методами.
'set_const_force' гораздо менее гибок (ИМХО) в применении и имеет значительно меньше параметров, которыми от 'hit'а можно добиваться. Да и собственно 'толчок' - это только одно действие, а 'хит' - довольно универсален, да и обрабатывается логикой во многочисленных случаях.
Gun12 ну я говорил,у меня на кордоне на мосту стоят снайперы,и мне надо чтоб они были как те солдаты которые ходят вокруг Кузнецова,например:если пробежишь и не дашь взятку Кузнецову то они должны открывать огонь,по ГГ,а если даёшь взятку то они также стоят не двигаясь,а вот если ты убил Кузнецова то сразу-же пусть стреляют,только ты можешь так сделать чтобы когда они атакуют ГГ они не уходили своих мест,а стояли тамже.
Artos
Всё я исправил ..
1)Как сделать чтобы появились БТР"ы у военных ,как например в AMK.
2)как исправить вылет?скопировал скрипты с вертолётом чтобы он нападал на ГГ когда ГГ нападает на военных у меня вылет...пишит что не может открыть секцию "ammo_btr"....Что делать?
#erlik : Gun12...я предполагаю что ты так и сделал.
Чего там греха таить?
Мог бы и промолчать, но скажу.
Я и забыл про xr_psy_antenna.script. И сделал как мне хотелось. Через bind-ер. Ты, конечно, прав что использовал готовый скрипт. Но если бы я вспомнил о нём в тот момент, мне бы стало не интересно. А так - конечно, нужно использовать этот скрипт, и (лично для меня) интрига пропадает.
Тем не менее через пару часов буду дома, и опробую своё безобразие.
Gun12 ну я говорил,у меня на кордоне на мосту стоят снайперы,и мне надо чтоб они были как те солдаты которые ходят вокруг Кузнецова,например:если пробежишь и не дашь взятку Кузнецову то они должны открывать огонь,по ГГ,а если даёшь взятку то они также стоят не двигаясь,а вот если ты убил Кузнецова то сразу-же пусть стреляют,только ты можешь так сделать чтобы когда они атакуют ГГ они не уходили своих мест,а стояли тамже.
karavan
(ИМХО) самый лучший источник для 'почитать' - собственно коды самой игры, в которой разрабы дали немало информауии и собственно примеров 'как применить'.
Элементарное знание английского (хотя бы и со словарем) и немного логики - дают возможность читать коды 'по-человечески', т.е. на доступном обычному человеку языке, и(!) имеющему желание разобраться, а не 'на халяву' получить результат.
Взгляни на твой же фрагмент кода и переведи названия 'на русский'!
Все что нужно уже содержится в самих названиях: position - позиция, direction - направление, ... и т.д.
Дальше складывай слова в предложения: 'boom_obj:position' - объект бомба + позиция => позиция бомбы, 'h.direction' - хит+направление => направление хита ...
Различные мануалы конечно хороши, т.к. дают 'черновое' толкование, но ... Нередко их пишут далеко НЕ проффессионалы не то что в программировании, но и в комппьютерах ... :-(, что нередко надевает на читающих 'шоры', органичивающие их познания или даже дающие некорректные/ошибочные понятия.
По поводу хита.
Кто в курсе дела, вот например если выбрасываеш предмет - динамит из рюкзака, то он получает хит или нет? Или при падении с высоты любой предмет получает хит или нет?
Ящик например при падении с высоты разбивается о землю. А возможно ли взорвать динамит сбросив с высоты?
FLIKER
"Как быть счастливым?"
"Как заработать денег?"
"На ком жениться?"
Не находишь некую бессмысленность в вопросах и огромное многообразие возможных ответов.
Если не знаешь арифметики, НЕ стоит спрашивать: "Как умножить 2х2"!
Ответ потребует значительного времени. Причем, на следующий: "А как 3х3?" - потребуется не менее пространное пояснение.
Знать/учить нужно основы/базовые знания и задавать вопросы по неизвестным/непонятным частностям, а не 'вообще'. (тем более тут не школа и далеко не педагоги отвечают).
karavan
Спустись с небес на землю!
Не стоит проецировать реалии на виртуальность. Все что присуще объектам/классам в игре им (НЕ)ПРОПИСАНО программерами. Будет ли получать ущерб предмет или нет - зависит от предмета и приписанных ему свойств. Ту же вертушку можно заставить летать сквозь стены и под землю, не получая никаких хитов/повреждений и простой строчкой helli:Die() - уничтожить в воздухе.
Ящики разрущаются от падения с высоты - потому что им (их классу) разрабы дали такое свойство и при наступлении подобного события это свойство (развалиться) и задействуется.
Взорвется динамит от падения? Не знаю точно, не проверял. А в кодах подобных ситуаций или комментариев не встречал. Пробуй! (хотя врядли получится).
Artos, одно время я пытался бороться с этим "безобразием". Никакого эффекта не получил. Даже мой сын стоя рядом, и не понимая о чем пишут, говорит нелицеприятные вещи о заседателях форума. Так что либо смириться, либо не встревать. Стараюсь (но не всегда получается) придерживаться поговорки, - "Не спорь с дураками, иначе люди не поймут между вами разницу".
отредактировал(а) Gun12: 28-04-2010 18:01 GMT3 час. Не стань номинантом премии Дарвина.
Gun12
:-) согласен, но ... если иногда не давать дурню тумака - так дурнем и ...
Так что, спорить и наставлять конечно бессмысленно зачастую, но ... ежели кто-то иногда этого не будет делать - остатки или зачатки серого вещества у многих совсем заплесневеют. :-)
P.S. Цель моих редких 'поправок/ворчания' - отбить привычку халявничать и пробудить инстинкты исследователя (собственно Сталкер как игра оч.способствует этому!).
P.S.S. 'Тумаки' никогда не проходят без последствий. Хотя иногда требуется время, повторы и не всегда "импульс в желаемом направлении".
:-) Это нужно спросить у сына. Возымели-ли действия тумаки:-)
По-моему нет. Всё. Прекращаю флуд.
Ну раз уж такой уважаемый человек Р.S.S. даёт, то мне сам Бог велел:-)
Парни, не в обиду, но если у Вас хватает мозгов понять, что раз уж (хотя бы по определению IQ) это дело Вам не под силу, то ПОЖАЛУЙСТА , хотя бы не засоряйте форум. Никто из нас не святой. Просто "умные" люди выкладывают сюда "умные вещи". И из-за Вашей несостоятельности (и как следствие посттверстве), найти эту вещь очень сложно.
Ещё раз - пожалуйста, оцените себя достойно.
отредактировал(а) Gun12: 28-04-2010 19:21 GMT3 час. Не стань номинантом премии Дарвина.
вот описание класса хит - все его параметры, свойства и методы
C++ class hit {
//константные значения - типы хита
const burn = 0; ожог
const chemical_burn = 6; химический ожог
const dummy = 10;
const explosion = 7; взрыв
const fire_wound = 8; пуля
const radiation = 4; радиация
const shock = 1; разрыв если не ошибаюсь
const strike = 2; удар
const telepatic = 5; псивоздействие
const wound = 3; ранение
//свойства которым можно назначать значения
property direction;
property draftsman;
property impulse;
property power;
property type;
// методы
hit ();
hit (const hit*);
/дополнительный метод для нанесения хита в кость
function bone(string);
};
столкновение объектов с геометрией уровня это не хит.
Хит это специальный метод для нанесения объекту определенного урона и метод этот нужно либо специально вручную применить либо использовать объект который этот метод собственно использует - оружие например.
Взорвется ли динамит я думаю зависит от того что ты ему пропишешь в секции
[dinamit_immunities_sect]
если иммунитет от удара убрать - вполне может быть.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Такая проблема. Допустим убиваю непися, "снимаю" с него тайник, ухожу с локи, возвращаюсь, а с того же трупака опять можно "снять" тайник. Как сделать что бы с одного трупака снимался один тайник?
Я – хозяин своей судьбы, но только судьба знает, где закончится мой путь.
Как сделать что бы с одного трупака снимался один тайник?
Я для этого дела специальную таблицу заводил**50036ea8aab1bb10eeba**:id())
if se_obj.treasure_processed == true then
return --/ Объект уже проверялся
end
se_obj.treasure_processed = true[/code]
и все. проверяй - вроде должно работать. Все значения будут сохраняться (и потом загружаться) в\из нетпакет в биндере файла xr_motivator.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik Не работает.:-( Слушай, может я не понял, вот эту строчку так и писать?
return --/ Объект уже проверялся
добавлено спустя 6 минут
Вот смотри как у меня в скрипте:
--' Проверим, не вызывались ли мы уже для этого объекта.
local se_obj = alife():object(npc:id())
if se_obj.treasure_processed == true then
return--/
end
se_obj.treasure_processed = true
отредактировал(а) TheDoktor: 28-04-2010 22:27 GMT3 час.
Я – хозяин своей судьбы, но только судьба знает, где закончится мой путь.
TheDoktor
Все что пишется после -- это комментарий - его можно как оставить так и убрать вовсе . (Комментарии игнорируются скриптовыми парсерами при чтении файла.)
А ты в самое начало функции вписал код?
Просто тогда я не понимаю как это в моде работает...впрочем я мог конечно упустить еще какой то момент - но я специально поиском проверил всю геймдату и вот эту строчку treasure_processed ( которая собственно является флагом что объект юзался) нашел только в двух файлах в моде и только в одном файле в оригинале. Потому и сделал вывод что тот код вроде как полный. (Надо будет еще глянуть попозже)
Но если это все таки не работает - ну тогда остается делать свой код - как его сделал я (у меня то дважды объекты не юзаются) - но этот код часть моей разработки по рандомным тайникам и пока я его выкладывать не собираюсь. Тем более там слишком много надо объяснять куда и что вписывать.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
karavan я видел в скриптах функцию хита гейм объекта, всё расписано от и до, со спавна сталкера до его красивой смерти, то бишь спавн-отслежка-непсредственно сам хит в каком либо условии, главное это получить объект, не суть как, далее ты можешьчто угодно с ним делать, хитовать-метку ставить-переодевать и т.д. и т.п.
Struck
"Иногда лучше промолчать ..." чем пустословить. erlik , TheDoktor
Указанные строки для "treasure_manager.script" достаточны и обязаны работать, ежели конечно вставлены корректно и в нужное место (в самое начало функции "function CTreasure:use(npc)").
Если в "xr_motivator.script" не залезали 'шаловливые ручки', и/или не привнесены какие-либо иные коды, 'чистящие' метки/параметры у серверных объектов неписей - то НЕ работать НЕ может!
TheDoktor, при недостатке опыта в работе со скриптами, советую вначале пробовать незначительные правки на 'чистых' кодах игры, а не на "своем" моде. Если подобные правки не удаются, то ... или а) опечатался/обшибся, б) с модом что-то не так или в) с руками ... проблемы. Gun12
(немного мыслей вслух)
А стОит ли тревожить all.spawn без особой нужды?
В каждом конкретном случае следует подбирать соответствующий способ/инструмент/...
Шуруп вогнать в стены можно и молотком (прочность крепления под сомнением!), гвоздь заколотить кирпичом (удобство и мусор - не всчет) ...
Логика может быть прописана в нескольких местах и несколькими способами:
- в all.spawn'е - прописал (правильно) и забыл! (путь разрабов). А ежели модмейкер? И захотел внести правку иль дополнить? Опять перекомпилировать и начинать игру заново?
- в *.ltx файлах, дав только ссылку на нужный файл в all.spawn'е. Удобно и реализуемо. Доступна оперативная правка, ежели потребуется.
- в скриптах(!). Достоинства: а) логика может быть динамичной (вспомним о динамических ltx, применяемых и раздабами), б) запросто можно подменять (теми же нет-пакетами) как ссылки на нужные файлы, так и собственно саму логику, запихиваю в нужное время нужные коды/секции/параметры.
Выбирать конечно способ должен каждый сам, но ... почему то все последнее время все пытаются сделать наиболее закостенелым и статичным способом, хотя работают над недоделанными изменяемыми модами.
Ведь один раз сделав Толика 'раненым' (прописав это в алл.спавн) далее по игре придется вносить более сложные правки, пытаясь заставить его вести себя 'как остальные'.
АнархОПанк Ты там случайно не новую локацию компилил? Игра тебе говорит что у тебя граф-поинт на локации не соответствует ее же таблице. Это либо ошибка компила либо какой-то конфликт из за спавна. Ты хоть что делал последним?
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.