Пользователей: 0
Гостей: 779

» Подробно
Привет, гость!








Автор Сообщение
g-side
    
Посты: 25
Откуда:
Возраст:
09-08-2010 09:49 GMT3 час. #1312824   
убрал ,вот что выдаёт

Expression : fatal error
Function : CScriptEngine::lua_error
File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
Line : 73
Description :
Arguments : LUA error: ....r. - shadow of chernobyl\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value)

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

игра была с модом (старый сюжет + vss+ + сон с матрацем + ремонт оружия + мои доьовления

отредактировал(а) g-side: 09-08-2010 09:58 GMT3 час.

Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 31
09-08-2010 10:09 GMT3 час. #1312836   
Я тут юзал мобильныйл телепортатор singapur'a22 - хотел выдрать саму функцию, которая телепортиру


Новые фишки для сталкера(см. журнал)
STALKER 7777
    
Посты: 40
Откуда:
Возраст: 30
09-08-2010 10:18 GMT3 час. #1312839   
приветствую

я хотел плеер от феррари 314 поставить к себе в свой мод
делал всё по инструкции

но у меня вылет при заходе в игру
лог такой

FATAL ERROR

[error]Expression : fatal error
[error]Function : CInifile::r_section
[error]File : E:\stalker\patch_1_0004\xrCore\Xr_ini.cpp
[error]Line : 342
[error]Description :
[error]Arguments : Can't open section 'identity_immunities'


stack trace:

как исправить эту ошибку?

заранее благодарен.


Быть СТАЛКЕРОМ - значит быть СВОБОДНЫМ человеком!
AAAAKKK
    
Посты: 65
Откуда: Кострома
Возраст: 47
09-08-2010 10:22 GMT3 час. #1312844   
Artos 08-08-2010 17:19 GMT


Поправка НЕ принимается, т.к. по сути бессмысленна.
Работа гулага там (на той локации), где гулаг! Естественно гулаги могут быть на любой локации и соответственно их работы тоже, но именно на локации соответствующего гулага.
Вспоминаем - работа начинает выполняться по достижении некоторой дистанции до гулага, а значит - соответствующей локации. В теории можно задать рестрикторами работу где-то ... но выполняться она не будет, т.к. флаг достижения гулага будет сбрасываться как только ...


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.

нет пакет переписывается только если непись в оф лайне


Зацикленный лагерь в журнале.
Sine
    
Посты: 960
Откуда: Краснодар
Возраст: 30
09-08-2010 10:34 GMT3 час. #1312851   
STALKER 7777 не может открыть секцию identity_immunities = выход, добавить эту секцию ( =скорее всего это в папке креэйчурс, там в твой файл скопируй эту секцию из других файлов)


Last Day Mod Team work |==>>>ПОСЛЕДНИЙ ДЕНЬ
Кто понял с первого раза,
Тот ловит музу,
Когда каждая фраза
Ломает все сразу.
Darien Fx
    
Посты: 1372
Откуда:
Возраст: 31
09-08-2010 12:21 GMT3 час. #1312916   
AAAAKKK
cse_shape - не один параметр, и отвечают они за тип формы и размер зоны.


AAAAKKK
    
Посты: 65
Откуда: Кострома
Возраст: 47
09-08-2010 12:35 GMT3 час. #1312928   
Darien Fx
Да понимаю я ето только в установках смарт-террайна он ни на что не влияет

в рестрикторе этот пораметр важен

[87]
; cse_abstract properties
section_name = space_restrictor
name = esc_lager_guard_kill_zone
position = -212.610015869141,-22.8791561126709,-122.060478210449
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 0
distance = 0
level_vertex_id = 594270
object_flags = 0xffffff3e
custom_data = < [logic]
active = sr_idle@lager

[sr_idle@lager]
on_info = {+escape_lager_killers_die} nil, {+esc_return} sr_idle@killers %+esc_fanat_spawn%

[sr_idle@killers]
on_info = {+escape_lager_help !gulag_empty(esc_killers)} sr_idle@fighting

[sr_idle@fighting]
on_info = {=gulag_empty(esc_killers)} nil %+escape_lager_killers_die%
END

; cse_shape properties
shapes = shape0,shape1,shape2,shape3
shape0:type = box
shape0:axis_x = 6.23620176315308,0,0
shape0:axis_y = 0,3.98619985580444,0
shape0:axis_z = 0,0,3.83500003814697
shape0:offset = 0,0,0
shape1:type = box
shape1:axis_x = 7.71732950210571,0,0
shape1:axis_y = 0,24.0907764434814,0
shape1:axis_z = 0,0,17.714391708374
shape1:offset = 47.7419891357422,2.33591651916504,-10.4073867797852
shape2:type = box
shape2:axis_x = 1.57269442081451,0,0
shape2:axis_y = 0,11.6672286987305,0
shape2:axis_z = 0,0,18.4270477294922
shape2:offset = -15.5425109863281,7.22870635986328,-10.7128219604492
shape3:type = box
shape3:axis_x = 61.7394027709961,0,0
shape3:axis_y = 0,18.8940544128418,0
shape3:axis_z = 0,0,49.526496887207
shape3:offset = 16.0246124267578,4.26228523254395,-26.3295516967773
; cse_alife_space_restrictor properties
restrictor_type = 0



а в смарте нет выделенное значение может быть любым только больше 0

[101]
; cse_abstract properties
section_name = smart_terrain
name = esc_lager
position = -208.551208496094,-20.0917911529541,-141.64958190918
direction = 0.062321275472641,0.00316426996141672,0.0140644172206521

; cse_alife_object properties
game_vertex_id = 61
distance = 4.19999980926514
level_vertex_id = 44622
object_flags = 0xffffffbe
custom_data = < [smart_terrain]
type = esc_lager
capacity = 13
squad = 1
groups = 5
respawn = esc_respawn_inventory_box_0000
END

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 4.5480751991272
; cse_alife_space_restrictor properties
restrictor_type = 3

; se_smart_terrain properties


Зацикленный лагерь в журнале.
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
09-08-2010 12:43 GMT3 час. #1312935   
Stalk15 Так и передавать:

имя файла.start_level_changer(позиция, левел вертекс, гейм вертекс, скриптовое наименование локации)

все передаваемые параметры являются координатами места назначения.

erlik
Здарова. В том то и дело, что размер как положено, даже меньшим делал, как по пикселам, так и по ёмкости.
Про C#, я уже забыл как он выглядит :-)
У меня щас временная передышка. Занялся ремонтом квартиры. Вот и решил вспомнить Сталкера. Както потянуло по новой. :-)


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 31
09-08-2010 13:47 GMT3 час. #1312996   
Что-то не получается.Вот**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()

-----------------------------------------------------------
packet:w_begin(game_vertex_id)
packet:w_float(distance)
packet:w_u32(direct_control)
packet:w_u32(level_vertex_id)
packet:w_u32( bit_not(193) )
packet:w_stringZ(custom_data)
packet:w_u32(46489)
packet:w_u32(46489)
packet:w_u8(1)
packet:w_u8(0)
packet:w_vec3(vector():set(0, 0, 0))
packet:w_float(2)
packet:w_u8(3)
packet:w_u16(p_dest_gv)
packet:w_u32(p_dest_lv)
packet:w_vec3(p_dest_pos)
packet:w_vec3(vector():set(0, 0, 0))
packet:w_stringZ(p_dest_level)
packet:w_stringZ("start_actor_99")
packet:w_u8(1)

packet:r_seek(0)
obj:STATE_Read(packet, packet:w_tell())
end

test()

[/code]

то вылетает без лога.Пробовал отдельно функции pасположить, все равно - вылет без лога:
[code]function test()
имя_файла.test22222(vector():set(156.42, 0.17, 71.66), 41158, 1180, l05_bar)
end

test()[/code]

Подскажите, в чем дело?


Новые фишки для сталкера(см. журнал)
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
09-08-2010 14:16 GMT3 час. #1313019   
Stalk15 Я так понимаю ты активируешь функцию через dofile(...). Если нет. Если вызов производится на момент загрузки, то ничего удивительного.
В первом случае ошибку получил изза того, что чтение стартовой функции производилось раньше загрузки основной функции. Во втором ... уточни на счёт вызова.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 31
09-08-2010 14:29 GMT3 час. #1313027   
singapur22
Да, через dofile(...).Ща попробовал вызвать по обычному - через диалог:
for**50016ea8aab1bb10eeba**ket:w_u8(1)

packet:r_seek(0)
obj:STATE_Read(packet, packet:w_tell())
end[/code]

Сообщение выводится,а ГГ не телепортируется.

---------------------------------------------------------------------
singapur22
А, точно, не заметил.Спасибо.

отредактировал(а) Stalk15: 09-08-2010 14:42 GMT3 час.

Новые фишки для сталкера(см. журнал)
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
09-08-2010 14:36 GMT3 час. #1313033   
Stalk15

l05_bar --это должна быть строка!!!
Тобишь возьми её в кавычки. Иначе вместо параметра ты передаёшь значение nil.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
vhodnoylogin
    
Посты: 211
Откуда:
Возраст: 35
09-08-2010 17:19 GMT3 час. #1313146   
Люди, здравствуйте.
Итак, вопрос(ы):
В конфигах оружия прописаны различные параметры, и игра их использует. То есть как-то получает значения этих параметров.
А как человеку получить значения этих параметров? А именно: как статичные (скорострельность, макс. объем рожка), так и изменяемые (кол-во патронов, повреждение ствола)...
Должен же быть метод для их получения?

Есть ли функция для отслеживания выстрела? Если ГГ произвел выстрел, возвращает true, а то отслеживать через изменение кол-ва патронов в рожке не всегда возможно.


Зачем доказывать кому-то, что ты настоящий мужик? Лучше потратьте это время на добрые дела!
Darien Fx
    
Посты: 1372
Откуда:
Возраст: 31
09-08-2010 18:07 GMT3 час. #1313179   
vhodnoylogin
Для этого ес


erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 48
09-08-2010 18:13 GMT3 час. #1313181   
vhodnoylogin
Все параметры можно считать из конфиг файла нужного ствола. Есть специальные м

отредактировал(а) erlik: 09-08-2010 18:53 GMT3 час.

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
vhodnoylogin
    
Посты: 211
Откуда:
Возраст: 35
09-08-2010 21:14 GMT3 час. #1313369   
Еще пару вопросов:
есть ли различие между предметом в инвентаре и им же, но на земле (помещаясь в инвентарь, предмет получает новое ID)? Или, спрашивая по-другому, существует некое "инвентарное" ID?



На счет ф-ии condition(): что она делает? Может выдать информацию о стволе или изменять этот параметр?
Или это перегрузка:
condition() - инфа
condition(num) - "лечение" ствола (где num - (float?) от 0.0 до 1.0)




НА счет проверки наличия выстрела. Можно ли проверить выстрел по косвенным признакам: а именно, по анимации выстрела (патикл, кажется так называется)? Или через отслеживание нажатия на кнопку выстрела (но это трудно - возникают многие другие вопросы)...




PS:
Dietrich2009, а где ты такую аватарку нашел? Интересно знать источник.

отредактировал(а) vhodnoylogin: 09-08-2010 22:26 GMT3 час.

Зачем доказывать кому-то, что ты настоящий мужик? Лучше потратьте это время на добрые дела!
Чувак на болоте
    
Посты: 87
Откуда: Волгодонск
Возраст:
09-08-2010 21:19 GMT3 час. #1313377   
Люди добрые помогите ответом - как увеличить скорость регенирации здоровья?


vhodnoylogin
    
Посты: 211
Откуда:
Возраст: 35
09-08-2010 21:36 GMT3 час. #1313403   
Чувак на болоте, лично я знаю такой способ:
satiety_v - ;скорость уменьшения сытости со временем
satiety_health_v - ;увеличение здоровья при уменьшении сытости
Из этого следует, что ты ставишь большое значение для satiety_health_v и малое для satiety_v.
Сам таким методом пользовался этим способом и не понимал, почему я так быстро лечусь сам.




Раз о конфигах, то: что такое мораль, зачем нужна и что дает?

отредактировал(а) vhodnoylogin: 09-08-2010 22:39 GMT3 час.

Зачем доказывать кому-то, что ты настоящий мужик? Лучше потратьте это время на добрые дела!
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 48
09-08-2010 22:35 GMT3 час. #1313434   
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",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Artos
    
Посты: 4176
Откуда:
Возраст: 66
10-08-2010 00:54 GMT3 час. #1313474   
AAAAKKK
Что-то часто заучат фразы о поправкахи заблуждениях, при чем аргументация ... "а вот прочти там ..."
Начну с конца (так проще):

нет пакет переписывается только если непись в оф лайне
Абсолютно неверное утверждение. Если объект существует, то изменение (перезапись) нет-пакета объекта возможна условно В ЛЮБОЙ момент времени (главное не попасть в момент 'штатной' перезаписи, чтобы не возникли коллизии). Иное дело, что внесенные изменения могут проявиться не сразу, а по прошествии некоторого времени. Для ускорения этого процесса можно использовать принудительный метод, отравляя объект в офф-лайн и возврат его в он-лайн с уже обновленными параметрами.
Собственно изменения/перезапись нет пакетов происходят для серверных объектов, для которых состояние 'он-лайн' - только некоторое состояние одного из параметров, и неясно чем вызвана такая категоричность процитированной фразы.
Не вижу смысла далее дискутировать на тему смартов/гулагов, т.к. диалог идет на разных языках. Во-первых, мы все тут пишем не научные трактаты, а достаточно сжатые сообщения, в которых порой нет цели максимально правильно и всесторонне формулировать все затронутые понятия. И во-вторых, если уж затрагивается/оспаривается одно, то не перескакивают на следующее ... Если цель - достижение правильного толкования и практического применения, то диалог возможен далее. Если же цель - перебрасывание субъективными аксиомами - не вижу смысла далее продолжать.
Меня поправляешь отказывая смарту в признаке 'территории', называя объект - предустановками, забывая, элементарное: точка - это тоже площадь, хотя и выродившаяся до точки.
Итак, смарт-террейн это объект, имеющий некий центр, радиус , т.е некая территория или же начнем опять приводить крайности и необязательности, нивелируя его до 'предустановки'?

Не стОит мне в качестве аргументов приводить некие статьи, даже написанные кем-либо из разрабов.
а) Никогда всех нюансов кодов не описать в статье для 'остальных'
б) После написания коды были не раз изменены.
... и т.д.
Взгянув не в статью, а в коды (не призываю их анализировать и делать выводи исходя из них), но даже комменты самих разрабов уже опровергают:

--/ условия достижения персонажем места работы:
--/ а) в офлайне: персонаж пришёл на нужную точку графа
--/ б) в онлайне: персонаж продошёл на расстояние iJobPositionThreshold
Для чего(?) приводить тавтологию типа:

... работа начинает выполнятся не при достижении некоторой дистанции до гулага а при достижении некоторой дистанции до места работы ...

Есть точка отсчета - гулаг, он же смарт-террейн, от него отсчитывается некая дистанция 'Job.position_threshold', которая считается 'дистанцией/позицией достижения работы'. Что неправильного в первоначальной моей фразе???
Расстояние от города до города можно считать хоть от окраины до окраины, хоть от центра, до цента. Но(!) базовой точкой отсчета будет все равно ЦЕНТР, о не производная от него.
Все далее лень писать ...



erlik
Однозначно, игровой идентификатор объектов в игре (ID) назначается один раз (при первичном спавне) и неизменен на всем протяжении игры или до уничтожения объекта.
Каких либо метаморфоз с идентификатором при перемещении объекта в рюкзак иль еще куда и обратно НЕ происходит.
Те, кто утвердает/высказывает обратное мнение путают банальное - при некоторых операциях с рюкзачными предметами порой объект удаляется и спавнится вновь или нечто аналогичное. Естественно у 'него' будет иной ID, но это у же и не 'тот' же объект!


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
10-08-2010 05:03 GMT3 час. #1313519   
vhodnoylogin
erlik
Artos


Определить, находится объект в инвентаре, или на земле достаточно просто. Для этого имеется соответствующий метод obj:parent() для клиентского объекта. Возвращает userdata материнского объекта. Тоесть, при перемещении объекта в какой либо инвентарь, объект становится дочерним. Это и будет различием. Если объект не дочерний, то метод вернёт nil. Вот тут то и существует некоторая неясность. По существу перемещённый, да и просто заспавненый объект в инвентарь не удаляется и не переводится в оффлайн. Он остаётся в онлайне, но при этом не отображается. Смею предположить, что дочерние элементы просто напросто не считываются рендерингом. Но может быть и другая предустановка.
Так же есть и переменная для определения материнства серверного объекта sobj.parent_id. Возвращает айди материнского объекта, тобишь инвентаря.

erlik Кстати. Поздравляю с повышением!!! Обмывал?:-)


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 31
10-08-2010 08:41 GMT3 час. #1313592   
erlik
Спасибо за написанное про колбеки, теперь мне понятно, для чего они нужны:-).

А можно как-нибудь поставить колбэк на то, что ГГ обыскал тайник и опустошил его?
Или как можно опредилить, забрал игрок все вещи из тайника или нет?


Новые фишки для сталкера(см. журнал)
KontrolЛер
    
Посты: 367
Откуда:
Возраст: 34
10-08-2010 08:44 GMT3 час. #1313593   
Люди помагите! А как можно создать своего персонажа?


Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 31
10-08-2010 08:46 GMT3 час. #1313594   


Новые фишки для сталкера(см. журнал)
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
10-08-2010 09:00 GMT3 час. #1313607   
Stalk15 Ты чёта плохо врубился в понятие колбэка. Это во первых, а во втор

отредактировал(а) singapur22: 10-08-2010 09:08 GMT3 час.

Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Artos
    
Посты: 4176
Откуда:
Возраст: 66
10-08-2010 09:25 GMT3 час. #1313625   
singapur22
Собственно я давал подтверждение по Неизменности игрового ID объекта.
Ну по 'parent_id', я бы не назвал достаточно простым определение нахождения в инчентаре. :-)
1. Само понятие 'в инвентаре' - расплывчато для игроков. Если считать по 'parent_id' (идентификатору владельца), но находясь в руках/слотах/поясе - это вроде как не в инвентаре, т.е. путаница. Есть и более неочевидные моменты. Из вопроса vhodnoylogin онозначно понять что его интересует невозможно.
2. Все же метод 'obj:parent()' и переменная sobj.parent_id - методы определения владельца, коим не обязательно может быть актор или непись. Это могут быть и ящики и пр. , т.е. однозначности в принадлежности к инвентори тут нет.
3. Как ты сам указал, метод obj:parent() для клиентского объекта, т.о. существуют моменты/периоды, когда объест уже/еще НЕ в инвенторе. Задержки изменения признака 'parent' - от 3-4 апдейтов актора. Это следует учитывать.


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
10-08-2010 09:41 GMT3 час. #1313632   
Artos Это всё понятно. Я лишь обобщённо прояснил ситуацию. Точнее я понял так, что vhodnoylogin понадобилось узнать имеет ли объект хоть какието различия находясь в инвентаре или на воле. Вот я и выдвинул метод определения, который именно за это и отвечает. А то, что объект может быть как в инвентаре актора, или в ящике, сути не меняет. В обоих случаях объект становится дочерним. Всё остальное примочки распределения дочерних объектов. С нпс вообще сложная конструкция. Первая ступень дочерности именно инвентарь, после него уже идёт пояс и всё остальное. Не будем вдаваться в подробности, это уже отдельная тема которая никакого отношения к данному случаю не имеет.
А на счёт тебя, скажу так. Довольно расплывчато написал. Тобишь я не совсем понял. Вот и отметил. Извиняй, если что. :-)

отредактировал(а) singapur22: 10-08-2010 09:48 GMT3 час.

Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 48
10-08-2010 09:45 GMT3 час. #1313633   
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",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 31
10-08-2010 10:21 GMT3 час. #1313649   
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 час.

Новые фишки для сталкера(см. журнал)
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 48
10-08-2010 10:55 GMT3 час. #1313666   
Stalk15
На net_spawn вызов я не ставил. У меня именно на апдейте фасткал вызывается при каждой загрузке
- для мо

отредактировал(а) erlik: 10-08-2010 15:37 GMT3 час.

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"


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


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

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