Пользователей: 1
Гостей: 1407
Всего: 1408

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

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









Автор Сообщение
Darien Fx
    
Посты: 1372
Откуда:
Возраст: 30
27-06-2010 20:31 GMT3 час. #1279601   
Artos
Я считаю, что тема "онли скрипты" прижиться сможет. В ней необязательно затрагивать СДК\модели\текстуры (по которым уже есть темы), под конфиги оставить эту. Ведь тема скриптов может и не больше, но уж точно не меньше всех остальных разделов вместе взятых, и поговорить о чём будет. А посты не по теме беспощадно удалять.
Конечно, что то обойти будет невозможно (all.spawn, или файл с содержимым для выпарсивания скриптом - то же ведь конфиг!), ну так оно и не страшно.

отредактировал(а) Darien Fx: 27-06-2010 20:49 GMT3 час.

Artos
    
Посты: 4176
Откуда:
Возраст: 65
27-06-2010 20:47 GMT3 час. #1279614   
Николай ФеНиКс

Митрофанушка
Главный герой комедии «Недоросль» (1783) Дениса Ивановича Фонвизина (1745—1792) — избалованный помещичий сынок, лентяй и неуч.
Имя нарицательное для молодых людей подобного типа.

Как видишь не ругательное, но и не ласкательное ...

И не апелируй к понятию 'новичок'. К тебе оно не относится.

Вопросы всегда были есть и будут, и постоянно будут и новички и др., и постоянно кому-то нужна будет помощь ... Но прочти Фонзивина, если еще не дошло, что помогать/учить митрофанушек - это уже иная тема ... не буду уточнять, дабы не обижать.

... что вы должны что-то делать, но помочь-то можно?
Помочь можно раз-другой-третий ..., но когда помощь не способствует тому, кому предназначена и он превращается в 'митрофанушку' (или продолжает им быть) и такие плодятся ..., то только отказ от помощи или хорошая порка может помочь!

отредактировал(а) Artos: 27-06-2010 20:58 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Artos
    
Посты: 4176
Откуда:
Возраст: 65
27-06-2010 21:04 GMT3 час. #1279630   
Николай ФеНиКс
Я не хочу закрывать глаза! Тут публичный топик.
Я хочу читать и помогать тем, кому помощь нужна. И не важно, что порой работа по 15ч не одни сутки ...
И повторю, не нужно тут устраивать топик под 'себя', по своим ковыряниям и потугам их осилить. Делай это у себя на компе.
И если ты не можешь выкроить время на 'подумать над чем-то', то ... это уже клиника. И называется она - хочу выпендриться перед другими, каков я модмейкер. ;-)

Все, с тобою диалог закончил.
Человек или понимает другого или уперт или не хочет понимать.
Для меня - второе.

И если буду в этот топик заглядывать и помогать, то буду и 'носом тыкать в лужу' тех, кому даже штанишки лень приспустить для собственного облегчения ... (в рамках правил топика, конечно).

отредактировал(а) Artos: 27-06-2010 21:56 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
27-06-2010 21:19 GMT3 час. #1279641   
Вот и я давно уже говорю про то же.
Шансы получить ответ на интересующий меня вопрос, тут ничтожно малы. И не потому что кто-то родился с ЭВМ в голове, а потому, что (лично для меня) чувство собственного достоинства не позволяет опускаться до поднимания лапок к верху, из-за казалось бы тупиковой задачи. Ответ есть всегда. Даже отрицательный результат - тоже результат.
Поиск ответа на подобную задачу приводит и изучению кучи информации, вороша которую хоть что-то, но остается в памяти.
А если кому-то лень искать или поиски не приводят и результатам, бросайте всё это и займитесь чем-нибудь другим.
Уже сколько раз думал высказаться так, что забанят навсегда и уйти.
Но всё ещё встречаются люди, общение с которыми и интересно и полезно.
Был бы такой топик, о котором вы говорите - другое дело.


Не стань номинантом премии Дарвина.
Artos
    
Посты: 4176
Откуда:
Возраст: 65
27-06-2010 21:21 GMT3 час. #1279643   
Stalk15
Мое мнение, что конкретно те, кого упомянул в 1-м посте, вместо (само)обучения и получению навыков модмейкерству (созданию модов) - получают в основном навыки по 'как халявное прикрутить к своим похотелкам'.
На протяжении последних месяцев до сих пор практически не заметно, чтобы были подвижки в азах программирования скриптов (не будем о другом). По каждому простейшему поводу, который отличен от 'вчерашнего' порой парой символов - уже не просто вопросы, а даже "проверьте за меня чО я тут сваял".
Все неоднократные советы, как самому научиться проверять свои же поделки - мимо ушей.
Каких-либо подвижек по саостоятельному изучению/написанию своих вещей не видно. Тупо берутся чужие универсальные поделки и так же тупо делаются попытки ими воспользоваться в еще не разжеванных ситуациях. Оч. напоминает басню Н.И.Крылова "Мартышка и очки".

... и т.д. и т.п. Не вижу смысла детализировать далее.


Николай ФеНиКс

Назови хоть одно слово/фразу, где я схамил! Извинюсь публично!
Только не нужно свое понимание горькой истины называть хамством!

Назвать публично второгодника второгодником - хамство?
Назвать лентяя/плагиатчика/неумеху/неуча - тем, как это принято называть - хамство?
Сними розовые очки и взгляни в зеркало критически - и подбери себе сам достойное определение, если 'митрофанушка' - слишком обидно.


Gun12
Готов подписаться под каждым тобою высказанным словом.

Тоже, за всю свою историю ковыряния со Сталкером, только не более 3-х раз обратился с вопросом "а как сделать?" и НИ РАЗУ - а почему у меня не работает. (и я НЕ программист даже близко!).

Если человек занимается интересным/любимым делом - то почему он не считает нужным в этом совершенствоваться, при чем НЕ за счет других?!

отредактировал(а) Artos: 27-06-2010 21:50 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Cos
    
Посты: 2690
Откуда:
Возраст:
27-06-2010 21:40 GMT3 час. #1279657   
В ближайшее время тема будет почищена. Хотелось что бы Николай ФеНиКс Stalk15 поняли что им пытались донести, впрочем судя по их реакции до этого еще далеко.

Artos
Еще раз спасибо вам за проделываемую общественную работу. Что касается 'хамства' - боюсь вы переоцениваете способность к самокритики тов. Николай ФеНиКс, для этого придется скорее всего подождать пару годков.


Artos
    
Посты: 4176
Откуда:
Возраст: 65
27-06-2010 21:49 GMT3 час. #1279663   
Cos
Сорри, за несколько разворошенный пчелиный/осиный домик и спасибо за понимание! :-)
Сделал это только из чистых побуждения и конечно ни кого не хотел унизить/оскорбить.
Основная цель - чтобы хоть немного задумались над 'СОЗИДАТЕЛЬ' и 'посредственный подражатель'.
Переоценки нет, скорее терпение заканчивается наблюдать регресс.
Как уже тут упоминалось как-то - иногда 'подзатыльник' полезнее уговоров/разъяснений и тем более потаканий, ИМХО конечно.

(посты по 'общим' измышлениям конечно можно почистить ... и по-реже бы их повторять)


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
27-06-2010 22:12 GMT3 час. #1279680   
Неужели можно будет что-то почитать/узнать/вспомнить???
Дай-то Бог!


Не стань номинантом премии Дарвина.
karavan
    
Посты: 940
Откуда:
Возраст:
27-06-2010 22:14 GMT3 час. #1279684   
Artos Спасибо за ответ на мой пост.
Но тем не менее я не могу понять как правельно задать безопасную зону. Вроде прописываю все по примеру, а ГГ во время выброса всеравно хитует. Если не трудно можно пояснить что к чему в этой таблице.
Фаил: amk_hideouts.script

l01_escape={
[1]={
aviable=false,
zone={
{
p1={-256.84, -21.03, -131.65},
p2={-240.40, -24.95, -136.25}
}
}
},
[2]={
aviable=true,
community="stalker",
center=46582,
entrances={50425},
zone={
{
p1={-200.12, -19.66, -129.95},
p2={-209.13, -22.86, -126.37}
}
}
},
[3]={
aviable=true,
community="stalker",
center=40607,
entrances={41949},
zone={
{
p1={-215.67, -23.38, -120.43},
p2={-209.35, -20.52, -132.40}
}
}
},
[4]={
aviable=true,
community="military",
center=133789,
entrances={133815},
zone={
{
p1={-114.35, -30.31, -391.84},
p2={-127.62, -26.71, -372.54}
}
}
},
[5]={
aviable=true,
community="military",
center=109717,
entrances={103729,116590},
zone={
{
p1={-137.20, -30.00, -350.52},
p2={-146.17, -26.23, -364.55}
},
{
p1={-135.45, -30.00, -353.59},
p2={-138.06, -26.23, -359.95}
},
{
p1={-135.76, -30.00, -358.03},
p2={-131.64, -26.23, -353.84}
}
}
},
[6]={
aviable=true,
community="bandit",
center=406296,
entrances={406297,411354},
zone={
{
p1={104.52, -7.77, 3.97},
p2={113.42, -0.08, 12.13}
}
}
},
[7]={
aviable=true,
community="stalker",
center=268724,
entrances={274817,272132},
zone={
{
p1={-10.55, -0.01, 262.21},
p2={-10.24, -0.01, 254.92},
p3={-2.61, 4.67, 254.92}
}
}
},
[8]={
aviable=false,
zone={
{
p1={-184.80, -19.70, -133.49},
p2={-187.69, -21.80, -129.95}
}
}
},
[9]={
aviable=false,
zone={
{
p1={-219.75, -20.80, -156.68},
p2={-216.00, -22.57, -159.84}
}
}
},
[10]={
aviable=false,
defence=0.3,
zone={
{
p1={-43.91, -10.43, -65.74},
p2={-48.83, -10.15, -70.51},
p3={-60.48, -5.79, -58.84}
}
}
},
[11]={
aviable=false,
defence=0.5,
zone={
{
p1={-82.01, -2.56, -78.21},
p2={-79.50, -5.54, -67.48}
}
}
},
[12]={
aviable=true,
community="stalker",
center=593421,
entrances={588459},
zone={
{
p1={351.26, 20.25, -25.72},
p2={389.76, 13.07, -51.13}
}
}
},
[13]={
aviable=true,
community="military",
center=290783,
entrances={292328,287747},
zone={
{
p1={14.71, 7.69, 95.08},
p2={11.05, 2.36, 100.41}
}
}
},
[14]={
aviable=false,
defence=0.4,
zone={
{
p1={57.95, 18.42, 155.35},
p2={68.56, 24.28, 157.07}
}
}
},
[15]={
aviable=true,
community="stalker",
center=437657,
entrances={433994,437661,440609,443534,440601,436942},
zone={
{
p1={129.98, -0.07, 337.18},
p2={134.96, 3.52, 343.15}
}
}
},
[16]={
aviable=true,
center=311474,
entrances={303255},
zone={
{
p1={23.71, 16.31, 687.70},
p2={34.49, 20.05, 672.69}
},
{
p1={20.76, 16.25, 681.50},
p2={25.60, 20.14, 672.62}
}
}
}
},

Переводить с английского я пытался, но нормально создать безопасную зону так и не получилось.
Понял что есть точка входа для НПС минуя, которую они вбегают в безопасную область и останавливаются. НО если я вбегаю в эту точку то ГГ хитует так же как и вне её.
Какая форма безопасной области Сфера или Куб и как правельно указать p1 и p2?
И еще правельно ли я понял: в center и entrances указываются левел_вертексы уровня?

З.Ы.: По прежнему не могу отформатировать текст кода. Что не так не могу понять. :-G

отредактировал(а) Cos: 27-06-2010 22:19 GMT3 час.

Анонс мода-аддона "S.T.A.L.K.E.R. - Безопасная земля"
Узнай о моде больше - подпишись на канал (кликабельно)
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
27-06-2010 22:32 GMT3 час. #1279699   
Artos
К вопросу, - "А как сделать?"
Или я уже замучал iНЕТ, или он меня (возможно не очень настойчиво искал), но так и нашел ответа на вопрос о использовании следующих параметров логики (общие понятия мне известны, но на данный момент веду разработку программы создания гулагов. Неделю назад только начал изучать wхLuа, поэтому в поиске ответов "цейт нот". Хотелось бы, для общего блага, знать всё о нюансах) :
position_threshold
squad
groups
Или подскажите, где искать информацию.


Не стань номинантом премии Дарвина.
Artos
    
Посты: 4176
Откуда:
Возраст: 65
27-06-2010 22:57 GMT3 час. #1279716   
karavan
(сразу оговорюсь, могу сфальшивить, т.к. ориентируюсь не на 'amk_hideouts.script', а на симбионовский 'm_hideouts.script', по сути аналогичный и сделанный по материалам АМК'шного)

1. Собственно модуль 'зон укрытия' работает в паре с модулем выброса, точнее он является таблицей данных, которые используются основным модулем (выброса и также спавна дин.аномалий).

2. Все зоны безовасности (далее 'укрытия') разбиты 'по локациям', т.е. для каждой - свои укрытия.

3. Каждое укрытие ограниченно некоей областью, как правило имеет центр этой зоны/укрытия и вход в эту зону.

4. Разберем параметры:
  aviable - флаг разрешения использования неписями. Если 'true' - неписи могут в него заходить и прятаться. Обратное - как например 1-ое укрытие (бункер Сидорыча) - заходить не могут и укрытие по сути защищает Сидорыча и ГГ, если оказался там.

  community - (string) можно догадаться, строка, которая определяет какие группировки могут прятатся в данном укрытии. Необходимо для исключения бойни между враждующими круппировками в каждом укрытии. Бандиты не бегут где сталкеры и т.п.

  center - (iLvid) - вертекс, определяющий центр зоны укрытия. Дабы не скопляться в точке, неписи устраиваются по площади укрытия относительно центра. Также используется как вторая точка пути при движении неписей в укрытие.

  entrances - (iLvid) - вертекс, определяющий точку входа в зону укрытия (первая точка пути при движении в укрытие). Используется и как точка пути при выходе. Неписи бегу вначале к 'двери' и только после к 'центру'. При выходе - идут 'к двери' и далее - 'по своим делам/позициям'.

  zone - (tables) собственно описание области укрытия. Состоит из пар точек (p1 и p2) некоторых позиций (стандартные координаты (x,y,z) для позиций) на плане. Факт нахождения неписи в укрытии определяется (см. function check_npc_in_box(npc,p1,p2,p3)) как 'в квадрате, с p1 и p2 в противоположных углах'.
При наличии p3 - проверка идет 'по кубу' - это если укрытие не одноуровневое (ступеньки/ярусы/ ...).
Также при больших объемах укрытий, они могут описываться несколькими квадратами/кубами (см. укрытия с несколькими парами p1, p2, [p3] ).

Относительно ГГ в данных модулях нет никаких привилегий и особенностей. Так же вычисляется нахождение актора внутри заданных квадратов/кубов.
Особенность только в том, что ГГ сам определяет куда бежать и в каком укрытии укрываться.
Схема движения в(из) укрытия на него естественно не действует.
При нахождении вне 'зон укрытия' - хитуется как и неписи (в Симбионе посильнее).
Т.о. создав свое укрытие/зону безовасности по типу 1-го (l01_escape={ [1]={...)), ... ), добавив порядковый номер укрытия ([XX]={...)) на локации и, задав координаты для квадрата/куба -можно создать зону для ГГ (иль еще кого/чего-то).

Форматировать коды можно двояко:
а) с использованием тэга 'code' (см. там же где и 'спойлер'), сохраняются пробелы и пр., но тогда нет возможности расцвечивать,
б) форумными HTML-тегами, но пробелы следует заменять неразрывными пробелами (см. там же).



Gun12
Вынужден сейчас ответить: "Не готов."

Где почитать - не рискну даже посоветовать, т.к. многие материалы попадавшиеся на глаза написаны очень посредственно (мягко говоря) и скорее зашорят, чем помогут.
Собственно по гулагам, ИМХО, только основные старые wiki-статьи можно использовать или искать/изучать в оригинале/модах.
И, сорри, засплавился от духоты ... и друг подъехал ... ;-), прохладное пиво тоже не менее интересно в настящий момент, чем головоломки с кодами.
Давай чуть отложим, тем более ... помню за собою 'гулаговый' должок, который присувокупить можно будет.

отредактировал(а) Artos: 27-06-2010 23:20 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
karavan
    
Посты: 940
Откуда:
Возраст:
27-06-2010 23:26 GMT3 час. #1279736   
Artos Благодарю.
Остался возможно не совсем правельный вопрос.
Я не совсем понял один момент, укрытие должно полностью закрывать ГГ. Т.е. Если ГГ вошел в куб и из него торчит голова ГГ-я, то его будет хитовать. Или же укрытие формируется в вертексе и не имеет значение какой форма укрытие?

Я прощу простить, но ведь куб может иметь разный размер, вот из-за этого я и задаю свой дурацкий вопрос. Просто я пытаюсь понять какое растояние надо выбирать для точек что-бы куб был правельный, т.е. укрытие для ГГ работало.


Анонс мода-аддона "S.T.A.L.K.E.R. - Безопасная земля"
Узнай о моде больше - подпишись на канал (кликабельно)
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
27-06-2010 23:44 GMT3 час. #1279741   
....если это кому интересно:
скриптовый вызов анимации NPC (немного потестил методы и нашел наконец нужное сочетание - NPC остает**5001c54314580bda8be6** end
npc:clear_animations() -- прерывание\отключение текущей анимации
npc:add_animation("udar_0", true, false) -- активация анимации из файла state_mgr_animation_list
end[/code]
примечание: то что мы привыкли называть анимациями NPC (punch, ward, sleep, threat, wait и т.д.), правильно называть состояниями (state ) которые в свою очередь состоят из набора анимаций. Метод
add_animation() в качестве аргумента принимает именно отдельную анимацию, а не состояние(откуда их взять я указал - но там перечислены не все имеющиеся анимации.). (с методом state_mgr.set_state() еще предстоит разобраться - почему он работает не совсем так как ожидалось.)

-----------------------------------------------------------------
Atros
Загляну в указанные схемы. Спасибо что указал - а то у меня волк пока находился в состоянии "idle" никак не хотел отыгрывать состояние "punch" через метод set_state()
И еще мне пока неясно применение проверки на число анимаций.

отредактировал(а) erlik: 28-06-2010 00:24 GMT3 час.

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
27-06-2010 23:48 GMT3 час. #1279742   

# karavan :правельный

Не лично к тебе
а ко всем. ПравИльный.


Не стань номинантом премии Дарвина.
Artos
    
Посты: 4176
Откуда:
Возраст: 65
28-06-2010 00:04 GMT3 час. #1279747   
karavan
Я же дал название функции, где можно посмотреть проверку нахождения ГГ в зоне.
Упрощенно: в трех-мерных координатах заданы две точки.
ГГ считается 'внутри', если его x,y,z координаты внутри соответствующих осевых диапазонов заданных точек.
Считай это квадратной комнатой, 1-я точка в углу на полу, а 2-ая - в противоположном углу (по диагонали) на потолке. Размер ком**5002c54314580bda8be6**n("idle_0_to_sit_2",true,false)
oNPC:add_animation("item_5_attack_0",true,false) --/ пьет лекарство
oNPC:add_animation("sit_2_to_idle_0",true,false)
state_mgr.set_state(oNPC,"eat_energy",nil,nil,nil,{animation=true})
self.end_time = tg + 5000
self.end_time_total = self.end_time + 2000
self.initialized = true
local oYad = oNPC:object("yad")
if oYad then oYad:enable_attachable_item(true) end
end
else
...
[/code]
особенностью тут то, что для отыгрыша анимаций требуется время, поэтому введен таймер тайм-аутов и следующие циклы/или из других схем (если требуются), дополнительно проверяют на окончание всех ранее добавленных анимаций (:animation_count() == 0).

Примечание: Метод подходит только для клиентских объектов (game_object).


P.S. Проверка на 'число анимаций' нужна/полезна тогда, когда непись уже проигрывает некую серию анимаций и не желательно прерывать эту серию, т.е. 'ожидаем окончания'.
Иначе могут быть коллизии и непись начнет дерганно пытаться отыгрывать куски разных ему добавляемых анимаций.
Да и стейт-менеджер нередко 'давится' при подобных прерываниях/переключениях.

отредактировал(а) Artos: 28-06-2010 00:31 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Mehanik Yar
    
Посты: 469
Откуда: Уфа
Возраст:
28-06-2010 13:07 GMT3 час. #1279919   

# С Н А Й П Е Р :
Stalk15 спасибо большое, ещё один вопросик. Я хочу сделать через диалог усовершенствование оружия. Примерно будет выглядеть так - если есть 5000 и Ак-74, то 5000 и Ак-74 забираем, а выдаём Ак-74 скорострельный. Ну допустим так. Как это всё будет выглядеть в диалоге?

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

А если денег и пушки нет, то гудбай Меченый. Как это в диалоге сделать?


С Н А Й П Е Р такая фигня, вобщем если пользоваться функцией передачи денег и впиндюрить две проверки, скажем на деньги и на предмет, то функции выполянются в плане того, что появляется надпись: потерено то то то то, но сами предметы остаются, если же есть одна проверка, скажем на деньги, то деньги исчезают ( я использовать (традер актер)
Но с двумя проверками денги остаются а пишется что потеряно, и это можно решить таким образом, ставь функцию удаления предмета. У меня лично ак 74 удалятеся и ставится улучшенный, но функцию ля появления надписи (потерян предмет) я делать не стал так как много писанины и юез нее все работает.
Вот смотри как у меня все работает:
Вот функции:

function pr_wpn_rg6_m1(first_speaker, second_speaker)
return first_speaker:object("wpn_rg6") ~= nil

end
function dont_pr_wpn_rg6_m1(first_speaker, second_speaker)
return not pr_ak74(first_speaker, second_speaker)
end

function Delete_wpn_rg6_m1_yar()
local oItem = db.actor:object("wpn_rg6")
if oItem then
db.actor:drop_item(oItem)
alife():release(alife():object(oItem:id()), true)
end
end

function na_wpn_rg6_m1 (trader, actor)
dialogs.relocate_item_section(trader, "wpn_rg6_m1", "in")
end


function wznos(first_speaker, second_speaker)
return first_speaker:money() >= 2500
end

Вот диалог:


dialogs.wznos
dialogs.pr_wpn_rg6_m1


Mehanik_yar_wpn_rg6_m1
dialogs.Delete_wpn_rg6_m1_yar
dialogs.na_wpn_rg6_m1
1


Mehanik_yar_rabota
dialogs.dont_pr_wpn_rg6_m1
22


Mehanik_yar_rabota2
dialogs.wznos
222



Mehanik_yar_rabota3
dialogs.na_suk7





Сделай ка апгрейд на бульдог 6, чтоб зарубежными гранатами стрелял.
There


Хорошо..... так.... ну вот все держи.
There


Отличная работа. Спасибо чувак.
There


TYOPA
    
Посты: 129
Откуда:
Возраст: 27
28-06-2010 14:44 GMT3 час. #1279965   
Как убрать сюжетные миссии.


S.T.A.L.K.E.R. Secret of the Zone: Gunslinger's Story. Prologue - разработка.
Darien Fx
    
Посты: 1372
Откуда:
Возраст: 30
28-06-2010 15:45 GMT3 час. #1280006   
Хотелось бы уточнить, правильно ли я разобрал содержание нет пакета для НПС? В коде есть ещё 3 вспомогательные функции из Симбы (надеюсь, Artos не обидится), т.к. я и не по**5001c54314580bda8be6**
end
return v
end

function get_vu8u8(pk)
local v = {}
for i=1,8 do
table.insert(v,pk:r_u8())
end
return v
end

function get_vu32u8(pk)
local v = {}
local len = pk:r_s32()
for i=1,len do
table.insert(v,pk:r_u8())
end
return v
end[/code]

Если я сейчас похож на "нахлебника", то пост удалю и продолжу разбираться :-)


Artos
    
Посты: 4176
Откуда:
Возраст: 65
28-06-2010 16:18 GMT3 час. #1280019   
Darien Fx
Сделано как минимум три грубых ошибки:
1. Пакет имеет строго определенную последовательность байтов и их значений и малейшее нарушение порядка при чтении (и тем более при записи) ведет к фатальным ошибкам.
В твоем случае уже видно, что из пакет начато чтение НЕ секции 'cse_alife_object' а 'свойства cse_alife_trader_abstract' ...
Ну и далее все вперемешку.

2. Если читаешь пакет - то читай. Возможен совмещенный вариант: читаем и тут же пишем.
Но(!) никогда не читаем/пишем кусками!
  -- свойства cse_alife_monster_abstract
  local upd_next_game_vertex_id = pac:w_u16() --/ и это при чтении?
  ... и далее ...

3. Пакет монстров и неписей НЕ имеет точной длины. В конце есть 'кусочек', который, например меня заставил немало времени потратить ... и до сих пор нет окончательной ясности.
В простейшем случае требуется просто добавить в конце 'чтение остатка' в некий массив.

На полноту корректности не проверял. Уж больно муторно сверять каждый символ.
На то и проверка у тебя в конце. Вывести клчевые и последние значения - вот и увидишь правильно ли считал.
Еще более правильно: считать->записать->прочитать->вывести в лог и проверить значения.
Нахлебник - это не тот, кто пользуется чужим трудом, имея весткую на то причину, а тот, кто в качестве этй причиной считает свою лень/псевдозанятость/... и т.п.
Все мы начинаем с 'тыкаемся как слепые котята' и 'сосем мамкину титьку', но ... спустя неделю-две - из иждивенцев становимся совсем иными, и тем более НЕ нахлебниками! ;-)
P.S. Кстати, вопрос по нет-пакетам был одним из 3-х, который я кому-то сам задавал во кодам Сталкера. (и ответ был ... никаким, т.е. разбирайся сам ...)

отредактировал(а) Artos: 28-06-2010 16:37 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Darien Fx
    
Посты: 1372
Откуда:
Возраст: 30
28-06-2010 16:29 GMT3 час. #1280026   

В твоем случае уже видно, что из пакет якобы начато чтение НЕ секции 'cse_alife_object', 'свойства cse_alife_trader_abstract' ...
Ну и далее все вперемешку.

Я пробовал начинать с cse_alife_object, но первая же переменная указывала на количество денег НПСа, вторая на название конфига (всмысле в character_desc_*) НПСа и т.д.,**5003c54314580bda8be6**Npc = alife():create("esc_baran", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id())
local pac = net_packet()

sNpc:STATE_Write(pac)
local money = pac:r_s32()
pac:w_s32(100)
pac:r_seek(0)
sNpc:STATE_Read(pac, pac:w_tell())
end[/code]
Но к сожалению, у НПС кол-во денег так и не изменилось.
Как я понял, без общего представления "что, где и как" находиться очень трудно разобраться. Я перечитал все посты на АМК, но теория теорией, а с практикой туговато.


Можно читать не с начала, только конкретный кусок

Я догадывался, что это можно делать смещением, но конечно же не пытался :-)



erlik
Я так тоже пробовал, не выходит. Сдаётся мне, что сначала нужно считать из пакета всё, а потом уже записывать все значения (а нужные изменить). Как например в функции спавна аномалии, там считываются даже те параметры, которые не указываются при спавне аномалии в all.spawn, а потом так же все и перезаписываются. Вот и наводит на такую мысль.

отредактировал(а) Darien Fx: 28-06-2010 20:10 GMT3 час.

Artos
    
Посты: 4176
Откуда:
Возраст: 65
28-06-2010 16:36 GMT3 час. #1280030   
Darien Fx
Повторяю, последовательность в нет-пакетах строго определена классами объектов.
Можно читать не с начала, только конкретный кусок, ... но никогда не гадай/предполагай.
... (сорри, вынужден прерваться, работа ... продолжу попозже)


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
musnuk
    
Посты: 487
Откуда: припять,проспект Ленина 86
Возраст: 30
28-06-2010 18:21 GMT3 час. #1280079   
повторите (было несколько страниц назад, но страницы долго грузятся, поэтому не могу посмотреть)
тег в диалоге, удаляющий инфопоршень.


Мафия не прощает оскорблений...
Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
28-06-2010 18:47 GMT3 час. #1280097   
musnuk

name_portion


удаляющий инфопоршень.

Точнее сказать 'заберающий':-)


Новые фишки для сталкера(см. журнал)
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
28-06-2010 19:29 GMT3 час. #1280119   
Darien Fx
Попробуй так сделать: последовательное считывание и запись все таки надежнее, чем кусками.
я в свое время пробов**5001c54314580bda8be6**вку --тьфу ты здесь ошибся - нужно же айди группировки ,а не имя
packet:w_u32(rank)
packet:w_u32(reputation)
packet:w_stringZ("Дядя Вася") -- меняем реальное имя
packet:r_seek(0)
sobj:STATE_Read(packet, packet:w_tell())
end[/code]


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
musnuk
    
Посты: 487
Откуда: припять,проспект Ленина 86
Возраст: 30
28-06-2010 20:12 GMT3 час. #1280163   
каким образом идет порядок пунктов в квесте? создал квест, стал менять пункты, первый должен стоять посередине.. и вообще какая-тто чушь... какой порядок должен быть в файле task_xxx?


Мафия не прощает оскорблений...
FLIKER
    
Посты: 1047
Откуда: Краснодар
Возраст: 30
28-06-2010 20:25 GMT3 час. #1280172   
Не подскажите можно ли заспавнить Сидоровичу аптечки ,как в ЧН?


Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
28-06-2010 20:29 GMT3 час. #1280175   
musnuk
Эээ...чоёта как-то вопроса не совсем понятно ...

Могу показать на п**5001c54314580bda8be6**ap_location_type>
Escape_Trader
escape_kvest_with_military_complete

[/code]


То есть в игре, при получении квеста будет такой порядок:
Само титульное название:Сделка с Военными и далее пункты:
- Взять у Волка динамит
- Отнести динамит военным
- Принести ящик с оружием Сидрычу.Ну все, у меня так все работает на отлично:ye)




Если где не прав - поправьте.
-------------------------------------------------------------------------------------
FLIKER
Ты про Аптечки, которые рядом с Сидрычем на всяких каких-то полках лежат?

отредактировал(а) Stalk15: 28-06-2010 20:39 GMT3 час.

Новые фишки для сталкера(см. журнал)
FLIKER
    
Посты: 1047
Откуда: Краснодар
Возраст: 30
28-06-2010 20:50 GMT3 час. #1280190   
Stalk15
Да-да-да,вот я проних просто модель сидоровича из ЧН,а полки пустые ,как-то не очень смотрится!


Artos
    
Посты: 4176
Откуда:
Возраст: 65
28-06-2010 20:56 GMT3 час. #1280198   
musnuk
1. Уже давал тебе совет:

И начни с малого - пиши тексты/посты , соблюдая правила грамматики/синтаксиса.
Если люди, читая, еще смогут тебя как то понять - скрипты этого не прощают.

Видя тексты/вопросы/просьбы о помощи, оформленные наспех, без соблюдения правил русского языка, без заглавных букв, с ошибками (оЧепятки не в счет) и т.п. - как правило игнорирую.

2. Не стОит оправдывать различными причинами (плохой интернет, пишу с телефона, залипает клавиатура и т.п.) то, что в правилах или в сетевом этикете для всех.
Ты же никуда не спешишь и можно подождать загрузку и тем более - можно и поотключать картинки/банеры и пр. Пару-тройку раз подобное простительно и даже бывает, но более - это уже как минимум раздражает.

3. Задавая вопрос, потрудись сделать его информативным и понятным для вероятных адресатов.
О каком/каких квестах ты спрашиваешь? Что за 'пункты' и 'середки', что за файл без расширения, скрипт иль конфиг ил еще какая xml'ка?
Почему кто-то должен догадываться, предполагать и т.п., тратя время, если достаточно немного полнее задать свой вопрос?!
4. И что-то ты полез, ИМХО, не в ту область.
"task_XX.script" - технологические скрипты разрабов, завершающие некие задания выдачей 'полных' наборов соответствующих инфопоршней и спавном 'кучи' предметов.
Никакого отношения к игре это не имеет и по сути - чит-скрипты.
Ну а 'пункты' - это списки инфопоршней и их порядок в этом случае безразличен.

Stalk15
Ну во-первых, забИрающий.
А во-вторых, зря ты вторично уточняешь то, что по сути неверно.
'name_portion' - именно удаляющий.
Выдача инфопоршня (give_info) - занесение/добавление в некую таблицу соответствующего индекса.
Соответственно 'disable_info' - удаление из таблицы.
И хотя добавление/активизацию инфопоршня обзывают 'выдачей', то удаление/отключение/деактивацию не называют 'забиранием'.

Darien Fx, erlik
Сорри, но я не понял уже сути вопросов о нет-пакетах. Что-то конкретное делается/пишется или просто некое исследование/учеба по ним?

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Darien Fx
    
Посты: 1372
Откуда:
Возраст: 30
28-06-2010 21:06 GMT3 час. #1280206   
Artos
Пока идёт только исследование, что бы потом уже делать что-то конкретное. Вот сейчас интересует вопрос, как правильно читать и сохранять данные для оффлайн НПС, т.е. через STATE_ (неправильная работа с ними в моём предыдущем посте).

Просто хочеться знать, с чего начать:
а) с определения порядка значений в нет пакете НПС, что бы правильно считать все данные из пакета.
б) с изменения (чтения-записи) какого-либо одного параметра (как вариант первого - количество денег), для практики.

отредактировал(а) Darien Fx: 29-06-2010 02:03 GMT3 час.



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


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

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