Поправка НЕ принимается, т.к. по сути бессмысленна.
Работа гулага там (на той локации), где гулаг! Естественно гулаги могут быть на любой локации и соответственно их работы тоже, но именно на локации соответствующего гулага.
Вспоминаем - работа начинает выполняться по достижении некоторой дистанции до гулага, а значит - соответствующей локации. В теории можно задать рестрикторами работу где-то ... но выполняться она не будет, т.к. флаг достижения гулага будет сбрасываться как только ...
Artos вы заблуждаетесь работа начинает выполнятся не при достижении некоторой дистанции до гулага а при достижении некоторой дистанции до места работы вот цитата всем известной статьи про логику пункт 6 и пункт 7 тоже смотреть
3.11.3. Новые особенности смарттеррейнов
Возможности нового смарттеррейна (СТ):
1) Не держит сталкеров постоянно в онлайне. Работает стандартный онлайн-радиус.
2) Сталкеры идут на ближайшие работы.
3) На места работ сталкеры идут независимо от того, в онлайне они или в оффлайне.
4) СТ в офлайне работает так же, как и в онлайне: выполняет переключение своих состояний, перераспределение работ.
5) Сталкерам можно прописать, при каких условиях в какие СТ они могут идти. (см. ниже) Если сталкер попал в СТ, то онбудет находится в нём, пока не истечёт время и выполняется условие. 6) Работы могут находиться на разных уровнях. 7) Скриптовая зона СТ теперь не используется для захвата персонажей.8) Симуляция заключается в миграции персонажей между разными СТ.
да и если посмотреть файл gulag_general.script (универсальные гулаги) видно что координаты работ данного гулага находяться на разных уровнях правда загружаемых динамически что впрочем не мешает сделать и статически .
Вобще разделение гулагов по уровням только для удобства можно создать один гулаг на всю игру с работами на разных уровнях и для разных неписей
Тоже неудачная попытка поправки/пояснения.
Смарт-терейн - а) объект игры, а не некие преустановки! Он имеет и геометрию (cse_shape properties), т.е. позицию и радиус(ы)! Это именно территория, ограниченная некоей границей. Собственно и само название 'smart terrain' - 'умный ландшафт', т.е. область на локации, в пределах которой работает некая логика.
Ну а уж гулаг - это уже логический/организационный объект, т.е. набор предустановок и пр. ... И есть он или нет - свойства смарта!
Смарт-терейн именно предустановки для гулага никакой геометрии он не имеет (верней имеет но это поБочный эфект работы в СДК (Сказанно не мной а IG-2007)
Параметр (cse_shape properties), вобше ни на что не влияет главное чтоб значение было отлично от нуля хоть 0.34556788 хоть 0.000000001 (проверенно впрочем можете проверить сами)
Не нужно мне пояснять о том что 'некое' условие - инфопоршень. Я пишу общим определением! И если для тебя 'некое' только инфопоршень из оригинальных кодов, то мое определение дает 'свободу' и смена Волка на Фаната, к примеру, может поизводится любым подходящим событием, который взбредет в голову модмейкеру. И сними шоры! Фанат в игре изначально заспавнен! Хотя собственно это не столь уж важно для конкретного случая для SkyLoader.
Заставить его проявиться, заставить уйти Волка на Склады иль еще чего - не суть разбираемого вопроса.
Фанат изначально присутствует в алл спавне только спаунится при определенных условиях
Зы. Извените если чем-то обидел или задел но истина дороже
SkyLoader.
нет пакет переписывается только если непись в оф лайне
STALKER 7777 не может открыть секцию identity_immunities = выход, добавить эту секцию ( =скорее всего это в папке креэйчурс, там в твой файл скопируй эту секцию из других файлов)
Last Day Mod Team work |==>>>ПОСЛЕДНИЙ ДЕНЬ
Кто понял с первого раза,
Тот ловит музу,
Когда каждая фраза
Ломает все сразу.
имя файла.start_level_changer(позиция, левел вертекс, гейм вертекс, скриптовое наименование локации)
все передаваемые параметры являются координатами места назначения.
erlik
Здарова. В том то и дело, что размер как положено, даже меньшим делал, как по пикселам, так и по ёмкости.
Про C#, я уже забыл как он выглядит :-)
У меня щас временная передышка. Занялся ремонтом квартиры. Вот и решил вспомнить Сталкера. Както потянуло по новой. :-)
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Что-то не получается.Вот**50016ea8aab1bb10eeba**ek(0)
obj:STATE_Read(packet, packet:w_tell())
end[/code]
Пишет ошибку:new_test.script:2:_attempt_to_index_global_'this'_(a_nil_value).Если поменять местоположение функций:
[code]function test()
this.test22222(vector():set(156.42, 0.17, 71.66), 41158, 1180, l05_bar)
end
function test22222(p_dest_pos, p_dest_lv, p_dest_gv, p_dest_level)
local obj = alife():create("level_changer", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id())
local packet = net_packet()
obj:STATE_Write(packet)
-- свойства cse_alife_object
local game_vertex_id = packet:r_u16()
local distance = packet:r_float()
local direct_control = packet:r_u32()
local level_vertex_id = packet:r_u32()
local object_flags = packet:r_u32()
local custom_data = packet:r_stringZ()
local story_id = packet:r_u32()
local spawn_story_id = packet:r_u32()
-- свойства cse_shape
local shape_count = packet:r_u8()
for i=1,shape_count do
local shape_type = packet:r_u8()
if shape_type == 0 then
-- sphere
local center = packet:r_vec3()
local radius = packet:r_float()
else
-- box
local axis_x = packet:r_vec3()
local axis_y = packet:r_vec3()
local axis_z = packet:r_vec3()
local offset = packet:r_vec3()
end
end
-- свойства cse_alife_space_restrictor
local restrictor_type = packet:r_u8()
-- свойства cse_alife_level_changer
local dest_game_vertex_id = packet:r_u16()
local dest_level_vertex_id = packet:r_u32()
local dest_position = packet:r_vec3()
local dest_direction = packet:r_vec3()
local dest_level_name = packet:r_stringZ()
local dest_graph_point = packet:r_stringZ()
local silent_mode = packet:r_u8()
Stalk15 Я так понимаю ты активируешь функцию через dofile(...). Если нет. Если вызов производится на момент загрузки, то ничего удивительного.
В первом случае ошибку получил изза того, что чтение стартовой функции производилось раньше загрузки основной функции. Во втором ... уточни на счёт вызова.
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Люди, здравствуйте.
Итак, вопрос(ы):
В конфигах оружия прописаны различные параметры, и игра их использует. То есть как-то получает значения этих параметров.
А как человеку получить значения этих параметров? А именно: как статичные (скорострельность, макс. объем рожка), так и изменяемые (кол-во патронов, повреждение ствола)...
Должен же быть метод для их получения?
Есть ли функция для отслеживания выстрела? Если ГГ произвел выстрел, возвращает true, а то отслеживать через изменение кол-ва патронов в рожке не всегда возможно.
Зачем доказывать кому-то, что ты настоящий мужик? Лучше потратьте это время на добрые дела!
Еще пару вопросов:
есть ли различие между предметом в инвентаре и им же, но на земле (помещаясь в инвентарь, предмет получает новое ID)? Или, спрашивая по-другому, существует некое "инвентарное" ID?
На счет ф-ии condition(): что она делает? Может выдать информацию о стволе или изменять этот параметр?
Или это перегрузка: condition() - инфа condition(num) - "лечение" ствола (где num - (float?) от 0.0 до 1.0)
НА счет проверки наличия выстрела. Можно ли проверить выстрел по косвенным признакам: а именно, по анимации выстрела (патикл, кажется так называется)? Или через отслеживание нажатия на кнопку выстрела (но это трудно - возникают многие другие вопросы)...
PS:
Dietrich2009, а где ты такую аватарку нашел? Интересно знать источник.
отредактировал(а) vhodnoylogin: 09-08-2010 22:26 GMT3 час. Зачем доказывать кому-то, что ты настоящий мужик? Лучше потратьте это время на добрые дела!
Чувак на болоте, лично я знаю такой способ: satiety_v - ;скорость уменьшения сытости со временем satiety_health_v - ;увеличение здоровья при уменьшении сытости
Из этого следует, что ты ставишь большое значение для satiety_health_v и малое для satiety_v.
Сам таким методом пользовался этим способом и не понимал, почему я так быстро лечусь сам.
Раз о конфигах, то: что такое мораль, зачем нужна и что дает?
отредактировал(а) vhodnoylogin: 09-08-2010 22:39 GMT3 час. Зачем доказывать кому-то, что ты настоящий мужик? Лучше потратьте это время на добрые дела!
vhodnoylogin
condition() возвращает состояние предмета к которому это метод применяется. Аргументов у метода нет.
Ремонт\ломание ствола не condition(num) - а set_condition(num) -аргумент число от 0 до 1 - где 0 будет ствол в хлам, а 1 - как новенький. Оба методы применяются к клиентской юзердате объекта.
Айдишка вроде как не меняется (хотя высказывались мнения что все таки меняется в процессе игры) - но по моему опыту могу сказать что от перемещения объекта с земли в инвентарь и обратно айди не меняется.
Инвентарного айди нет,но есть порядковый номер инвентарного объекта в массиве куда заносятся все объекты инвентаря - при итерации рюкзака\массива объектов рюкзака как раз можно использовать эти порядковые номера через метод object(число)
local cnt = db.actor:object_count() -- возвращает кол-во объектов в инвентаре ГГ
for i=0,cnt-1 do -- итерация номеров
local item = db.actor:object(i) --возвращает объект по его номеру в инвентаре
и номера эти если объект поперемещать туда-сюда как раз меняются.
-----------------------------------------------------------------------------------
Отследить нажатие ЛКМ (как и ПКМ) напрямую нельзя - не предусмотрено(разве что кейлоггером). Только косвенно. Как - уже писалось. ПКМ можно по изменению accuracy() - точности. По анимации выстрела - не представляю как.
отредактировал(а) erlik: 09-08-2010 23:13 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
AAAAKKK
Что-то часто заучат фразы о поправкахи заблуждениях, при чем аргументация ... "а вот прочти там ..."
Начну с конца (так проще):
нет пакет переписывается только если непись в оф лайне
Абсолютно неверное утверждение. Если объект существует, то изменение (перезапись) нет-пакета объекта возможна условно В ЛЮБОЙ момент времени (главное не попасть в момент 'штатной' перезаписи, чтобы не возникли коллизии). Иное дело, что внесенные изменения могут проявиться не сразу, а по прошествии некоторого времени. Для ускорения этого процесса можно использовать принудительный метод, отравляя объект в офф-лайн и возврат его в он-лайн с уже обновленными параметрами.
Собственно изменения/перезапись нет пакетов происходят для серверных объектов, для которых состояние 'он-лайн' - только некоторое состояние одного из параметров, и неясно чем вызвана такая категоричность процитированной фразы.
Не вижу смысла далее дискутировать на тему смартов/гулагов, т.к. диалог идет на разных языках. Во-первых, мы все тут пишем не научные трактаты, а достаточно сжатые сообщения, в которых порой нет цели максимально правильно и всесторонне формулировать все затронутые понятия. И во-вторых, если уж затрагивается/оспаривается одно, то не перескакивают на следующее ... Если цель - достижение правильного толкования и практического применения, то диалог возможен далее. Если же цель - перебрасывание субъективными аксиомами - не вижу смысла далее продолжать.
Меня поправляешь отказывая смарту в признаке 'территории', называя объект - предустановками, забывая, элементарное: точка - это тоже площадь, хотя и выродившаяся до точки.
Итак, смарт-террейн это объект, имеющий некий центр, радиус , т.е некая территория или же начнем опять приводить крайности и необязательности, нивелируя его до 'предустановки'?
Не стОит мне в качестве аргументов приводить некие статьи, даже написанные кем-либо из разрабов.
а) Никогда всех нюансов кодов не описать в статье для 'остальных'
б) После написания коды были не раз изменены.
... и т.д.
Взгянув не в статью, а в коды (не призываю их анализировать и делать выводи исходя из них), но даже комменты самих разрабов уже опровергают:
--/ условия достижения персонажем места работы:
--/ а) в офлайне: персонаж пришёл на нужную точку графа
--/ б) в онлайне: персонаж продошёл на расстояние iJobPositionThreshold
Для чего(?) приводить тавтологию типа:
... работа начинает выполнятся не при достижении некоторой дистанции до гулага а при достижении некоторой дистанции до места работы ...
Есть точка отсчета - гулаг, он же смарт-террейн, от него отсчитывается некая дистанция 'Job.position_threshold', которая считается 'дистанцией/позицией достижения работы'. Что неправильного в первоначальной моей фразе???
Расстояние от города до города можно считать хоть от окраины до окраины, хоть от центра, до цента. Но(!) базовой точкой отсчета будет все равно ЦЕНТР, о не производная от него.
Все далее лень писать ...
erlik
Однозначно, игровой идентификатор объектов в игре (ID) назначается один раз (при первичном спавне) и неизменен на всем протяжении игры или до уничтожения объекта.
Каких либо метаморфоз с идентификатором при перемещении объекта в рюкзак иль еще куда и обратно НЕ происходит.
Те, кто утвердает/высказывает обратное мнение путают банальное - при некоторых операциях с рюкзачными предметами порой объект удаляется и спавнится вновь или нечто аналогичное. Естественно у 'него' будет иной ID, но это у же и не 'тот' же объект!
Определить, находится объект в инвентаре, или на земле достаточно просто. Для этого имеется соответствующий метод obj:parent() для клиентского объекта. Возвращает userdata материнского объекта. Тоесть, при перемещении объекта в какой либо инвентарь, объект становится дочерним. Это и будет различием. Если объект не дочерний, то метод вернёт nil. Вот тут то и существует некоторая неясность. По существу перемещённый, да и просто заспавненый объект в инвентарь не удаляется и не переводится в оффлайн. Он остаётся в онлайне, но при этом не отображается. Смею предположить, что дочерние элементы просто напросто не считываются рендерингом. Но может быть и другая предустановка.
Так же есть и переменная для определения материнства серверного объекта sobj.parent_id. Возвращает айди материнского объекта, тобишь инвентаря.
erlik Кстати. Поздравляю с повышением!!! Обмывал?:-)
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Stalk15 Ты чёта плохо врубился в понятие колбэка. Это во первых, а во втор
отредактировал(а) singapur22: 10-08-2010 09:08 GMT3 час. Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
singapur22
Собственно я давал подтверждение по Неизменности игрового ID объекта.
Ну по 'parent_id', я бы не назвал достаточно простым определение нахождения в инчентаре. :-)
1. Само понятие 'в инвентаре' - расплывчато для игроков. Если считать по 'parent_id' (идентификатору владельца), но находясь в руках/слотах/поясе - это вроде как не в инвентаре, т.е. путаница. Есть и более неочевидные моменты. Из вопроса vhodnoylogin онозначно понять что его интересует невозможно.
2. Все же метод 'obj:parent()' и переменная sobj.parent_id - методы определения владельца, коим не обязательно может быть актор или непись. Это могут быть и ящики и пр. , т.е. однозначности в принадлежности к инвентори тут нет.
3. Как ты сам указал, метод obj:parent() для клиентского объекта, т.о. существуют моменты/периоды, когда объест уже/еще НЕ в инвенторе. Задержки изменения признака 'parent' - от 3-4 апдейтов актора. Это следует учитывать.
Artos Это всё понятно. Я лишь обобщённо прояснил ситуацию. Точнее я понял так, что vhodnoylogin понадобилось узнать имеет ли объект хоть какието различия находясь в инвентаре или на воле. Вот я и выдвинул метод определения, который именно за это и отвечает. А то, что объект может быть как в инвентаре актора, или в ящике, сути не меняет. В обоих случаях объект становится дочерним. Всё остальное примочки распределения дочерних объектов. С нпс вообще сложная конструкция. Первая ступень дочерности именно инвентарь, после него уже идёт пояс и всё остальное. Не будем вдаваться в подробности, это уже отдельная тема которая никакого отношения к данному случаю не имеет.
А на счёт тебя, скажу так. Довольно расплывчато написал. Тобишь я не совсем понял. Вот и отметил. Извиняй, если что. :-)
отредактировал(а) singapur22: 10-08-2010 09:48 GMT3 час. Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Stalk15
В bind_stalker есть что то типа каллбека на взятие вещи из ящика:
actor_binder:take_item_from_box(box, item)
функция возвращает юзердату ящика и объекты взятых итемов.
проверка на то что ящик пустой if box:is_inv_box_empty() == true then -- не помню работает ли.
Можешь на ящик (например какой то один конкретный) поставить каллбек на юзание тем способом что я описал, а в функции которая будет вызываться при обыске ящика поставить указанную проверку на пустой ли ящик. И если пустой - то нужное действие.
--------------------------------------------------------------
Проверил - проверка на пуст ли ящик - работает.
Но срабатывает только на вторичный юз ящика - уже после его опустошения.
Так что тут придется видимо ставить на апдейт эту проверку - если ты хочешь чтобы она срабатывала сразу же после того, как из ящика изъяли все вещи. Или ящик на fastcall поставить.
отредактировал(а) erlik: 10-08-2010 10:15 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik
Спасибо, я тоже проверил:-)
Думал, что можно такой колбэk поставить:take_item_from_box, но что-то не сработал.
Значит апдейтом надо.
добавлено спустя 7 минут
Хотел проверить, как работает fastcal**50316ea8aab1bb10eeba**ейва, потом пару раз все потухло и вылетело.Если что, вот как я делал:
В actor_binder:net_spawn(data):
[code]for_chek.test()[/code]
Файл for_chek:
[code]local fast = false
function test()
if not fast then
db.actor:set_fastcall( fastcall, db.actor )
fast = not fast
end
end
function fastcall()
this.fastgeg()
end
function fastgeg()
if db.actor:object("medkit") then
news_manager.send_tip(db.actor, "Апдейт пашет", 0, nil, 5000)
end
end[/code]
Может, что не правильно сделал?
отредактировал(а) Stalk15: 10-08-2010 10:38 GMT3 час. Новые фишки для сталкера(см. журнал)
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.