СВОБОДА вперет!!!!! СВОБОДА!!!!! СВОБОДУ не остановить!!!!! СВОБОДУ ВСЕМ ДАРОМ!!!!!!
Hola kost - Лысый вождь
Hеrhelyafan - так говорят испанцы
Проблемы Вождя - Народ не волнуют
Ленин сбежа
Artos
Я попробовал алгоритм поменять.Как только не менял, но из-за этой проверки группировки действие не срабатывает.Вот мои жалкие попытки:
Код:
local stope = false
local npc_stalker = level.object_by_id(id)
if npc_stalker and IsStalker(npc_stalker) then
if npc_stalker:is_talking() then
stope = true
end
if stope then
if npc_stalker:character_community() == "trader" then
--/ Действие
local npc_stalker = level.object_by_id(id)
if npc_stalker:is_talking() and npc_stalker:character_community() == "trader" then
--/ Дейсвие
Вообщем много вариантов пробовал, но во всех случаях не работало.
А как можно проверить, применим ли метод character_community() к Сталкерам, например, из лагеря новичков?
Сообщение было успешно отредактировано КerYa (25-07-2010 21:41 GMT3 часа, назад) СВОБОДА вперет!!!!! СВОБОДА!!!!! СВОБОДУ не остановить!!!!! СВОБОДУ ВСЕМ ДАРОМ!!!!!!
Hola kost - Лысый вождь
Hеrhelyafan - так говорят испанцы
Проблемы Вождя - Народ не волнуют
Ленин сбежа
Stalk15
1. Ты пока не в том 'опыте', чтобы кидать куски своих скриптов и другие их могли бы понять ...
2. Нужно в 1-ю очередь думать головой, во 2-ю помнить стандартные ограничения и пр.
- те, кто имеет группировку "trader" НЕ могут пройти проверку 'IsStalker(npc_stalker)', т.к. это не сталкеры, а торгаши ...
Уже не раз говорилось: объясни что хочешь получить в конечном итоге и приведи пример, котором замялся - тогда и можно поправить/посоветовать ...
КerYa
В правилах топика говорится о том, что вопрошающий должен хотя бы ознакомиться с топиком/ФАК'ом и пр. ...
По ACDC сотни раз тут расписывалось. Чем ты такой выдающийся, кроме лени, что тебе персонально опять будут разжевывать? Может сам погуглишь и почитаешь?!
Byurrer
Тоже лень мучает?
Смотрим в азбуку модмейкера (lua_help.script):
Код:
C++ class CCar : CGameObject,holder {
...
function SetfHealth(number);
...
и что не ясно? Что это установка 'жизни' для транспорта/машин?
со старой ошибкой разобрался...но при переходе на локу теперь это:
[error]Expression : fatal error
[error]Function : CScriptEngine::lua_error
[error]File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
[error]Line : 73
[error]Description : <no expression>
[error]Arguments : LUA error: ...g\s.t.a.l.k.e.r\gamedata\scripts\task_manager.script:351: attempt to index a nil value
то, что я делал написано мною выше!
слушаю рассказы, как игроки рассказывают про свои прохождения и очень восхищаются и думают, что типа они теперь супер боги!)
моё мнение:
не забывай, что в игре ты профи, но игра это не жизнь, а в жизни ты себя не проявил никак...эти люди задроты
lickon
Ты видно действительно считаешь читающих топик телепатами.
Неужели не ясно, что то, что ты делал (добавил часики/спальник/...) - всем как-то фиолетово, а вот как ты это 'что-то' сделал и где накосячил - без информации (кодов) НИКТО тут не догадается.
ЦитатаArtos: Уже не раз говорилось: объясни что хочешь получить в конечном итоге и приведи пример, в котором замялся - тогда и можно поправить/посоветовать ...
Предлагаешь гадать по кусочкам неких кодов? Я - пас.
Artos
просто можешь сказать, что это значит и всё!?
слушаю рассказы, как игроки рассказывают про свои прохождения и очень восхищаются и думают, что типа они теперь супер боги!)
моё мнение:
не забывай, что в игре ты профи, но игра это не жизнь, а в жизни ты себя не проявил никак...эти люди задроты
lickon
Говорю просто:
В результате твоих ковыряний возникла где-то ошибка и/или нехватка необходимых данных, которую не может обработать штатный скрипт, о чем он тебе и говорит.
Далее гадай сам.
Вообщем я хочу сделать, чтоб при разговоре с НПС срабатывало действие.Но только при разговоре, например, с обычными Сталкерами - одиночками ...Проверки группировки не помогают ...
Вот скрипт, но из-за проверки группировки не срабатывает действие:
Код:
function drhyrd()
local npc_stalker = level.object_by_id(id)
if npc_stalker:is_talking() then
if npc_stalker:character_community() == "stalker" then
news_manager.send_tip(db.actor, "Говорим со Сталкером", 0, "freedom", 10000)
end
end
end
function drhyrd(id) --/ на вход ID проверяемого !!!
local npc = level.object_by_id(id)
if npc and IsStalker(npc) and npc:is_talking() then
local sCommunity = npc:character_community()
if sCommunity and sCommunity == "stalker" then
news_manager.send_tip(db.actor, "Говорим со Сталкером", 0, "freedom", 10000)
end
end
end
Так всё нормально, но сути это не меняет (о ней дальше) - ведь я могу вместо 'bit_not(5)' написать '-70', и значение параметра запишется как бы 'какое оно было', но как то это не так - вручную устанавливать, думая что всегда так оно и будет.
Так что мне надо - что бы БТР, если он заспавнен в воздухе (в обоих случаях он(бтр) 'зависает'), не висел, пока до него не дотронешься. Хотя случаи спавна БТР, а ещё и в воздухе - редки, всё таки.
Сейчас использую с 'bit_not(5)', значение у 'object_flags' равно '-6', и непонятно, как оно так 'конвертирует' числа. Тут где-то видел инфу по этому, надо будет поискать.
Stalk15
Метод проверенный, должен работать (ну, при правильном обращении должен ). Скорее всего на НПС другой группировки применяешь, определил бы её сначала.
Да и неизвестно, какой id и как ты передаёшь в функцию (а может и не id...).
P.S. А вот насчёт случаев спавна в воздухе ошибся, могут быть и не редки. Не всегда ведь указывается точная координата, именно на земле.
Сообщение было успешно отредактировано Darien Fx (26-07-2010 00:29 GMT3 часа, назад)
ЦитатаСкорее всего на НПС другой группировки применяешь
Почему, я говорю именно со Сталкерами.Даже если в скрипте проверять не Сталкеров, а "Свободу" например, а потом поговорить со Свободовцем - тот же результат.
Stalk15
Твои потуги от твоей же лени думать.
Это вариант:
Код:
function drhyrd(id) --/ на вход ID проверяемого !!!
local npc = level.object_by_id(id)
if npc
if IsStalker(npc) and npc:is_talking() then
local sCommunity = npc:character_community()
if sCommunity and sCommunity == "stalker" then
news_manager.send_tip(db.actor, "Говорим со Сталкером", 0, "freedom", 10000)
else
news_manager.send_tip(db.actor, "Это НЕ сталкер, а "..tosrting(sCommunity), 0, "freedom", 10000)
end
else
news_manager.send_tip(db.actor, "Или это не сталкер или от не говорит", 0, "freedom", 10000)
end
else
news_manager.send_tip(db.actor, "вот я лох, не тот ID=х"..tostring(id).."] дал", 0, "freedom", 10000)
end
end
тебе сообщит твои заморочки.
Darien Fx
Ну во-первых, приведенный пример от 'бардака' НЕ рабочий, т.к. оперируешь с переменной 'object_flags', а пишешь все ту же 't.object_flags'.
Что-то ты запутался ... в переменных.
Artos
Блин, не то дал - из своего кусок вырвал. Там (у бардака) без таблицы, только локальные переменные, т.е. всё в одной функции - считывание и запись. У него скрипт 'чисто заспавнить', а мне то ещё и узнать что то о БТР понадобится.
Пробовал по аналогии (у меня пока тоже всё в куче):
Код:
local t = {}
...
t.object_flags = sp:r_s32()
...
t.object_flags = bit_not(5)
sp:w_s32(t.object_flags)
Ну а так вылет, как в предыдущем посте. Хотя ведь по сути - 'bit_not(5)' - это обычное число на выходе, почему не получается записать его в таблицу - незнаю.
P.S. Я всё проверяю, т.е. что бы позиции и кол-во байт совпадали и после считывания, и после записи. Да и на 'битый сейв' тоже.
Сообщение было успешно отредактировано Darien Fx (26-07-2010 01:15 GMT3 часа, назад)
такой вопросик: не появляется у сидра костюм свободы в начале... в trade_trader.ltx в генерик пишу svoboda_outfit = 1, 3 , и в суплай старте - svoboda_outfit = 1, 1
...зона - это организм, порождённый иной формой...
слушаю рассказы, как игроки рассказывают про свои прохождения и очень восхищаются и думают, что типа они теперь супер боги!)
моё мнение:
не забывай, что в игре ты профи, но игра это не жизнь, а в жизни ты себя не проявил никак...эти люди задроты
Darien Fx
Ищи у себя ошибку.
Именно 'tT.object_flags = bit_not(5)' я использую в Симбионе при спавне машин и вертушек и никаких ошибок нет.
Ошибка 'attempt to concatenate global 'object_flags' (a nil value)' обычно идентифицирует неудачную операцию конкатенации строковых значений, а тут их вроде никак нет да и связывать их вроде как ни что не собирается. Ищи откуда ноги растут ...
что надо сделать, чтобы удалить все квесты(кроме найти стрелка, убить стрелка)????ОЧНЕ ВАЖНО!!
слушаю рассказы, как игроки рассказывают про свои прохождения и очень восхищаются и думают, что типа они теперь супер боги!)
моё мнение:
не забывай, что в игре ты профи, но игра это не жизнь, а в жизни ты себя не проявил никак...эти люди задроты
Мэны! Все кто играл в мод сиджериус (не важно на что буть то на ЗП или ЧН) помогите пожалуйста!
Как замутить чит режим через параметр?
Например приписываешь к ярлыку -cheat_mode1 и во время игры можно нажимать ф1 и открывается спавн меню как в сиджериусе! Как сделать и как это возможно?
добавлено спустя 5 минут
lickon файл отвечающий за отношение группировок game_relations в каталоге геймдата\config\creatures\game_relations.ltx
Сообщение было успешно отредактировано Колотун (26-07-2010 05:13 GMT3 часа, назад)
Я попробовал воспользовать в скрипте такую строку:
Код:
for k, v in pairs (db.storage) do
и проверка группировки заработала, наконец-то:
Код:
function drhyrd()
for k, v in pairs (db.storage) do
local npc_stalker = level.object_by_id(k)
if npc_stalker and IsStalker(npc_stalker) and npc_stalker:is_talking() then
local sCommunity = npc_stalker:character_community()
if sCommunity and sCommunity == "stalker" then
news_manager.send_tip(db.actor, "Говорим со Сталкером", 0, "freedom", 10000)
end
end
end
end
Обьясните кто-нибудь, что это?:
for k, v in pairs (db.storage) do
Это что-то типа перебора айди?И сильно ли напрягает это игру?
И еще для чего нужно (db.storage), а то если я уберу это - вылетает?
Сообщение было успешно отредактировано Stalk15 (26-07-2010 16:44 GMT3 часа, назад) Новые фишки для сталкера(см. журнал)
Stalk15
Нужно ещё и проверять, что копируешь - 'tosrting'. Буквы местами поменяй. 'db.storage' - таблица онлайн объектов. Когда распарсиваешь, как в твоём примере - каждый раз 'k' (да хоть что, всмысле ключи в таблице всегда будут id) будет id'шником объекта.
Как напрягает - незнаю. Но одноразовый вызов, всмысле не на апдейте, думаю не особо.
И... лучше ничего не убирай, если не знаешь, как оно там всё связанно (ну, так мне посоветовали, когда я начинал ). Откуда тогда у тебя возьмётся local npc_stalker = level.object_by_id(k), не из воздуха ведь.SkyLoader
Для этого есть оператор '~='.Artos
С ошибкой расправился, была довольно глупа - 'object_flags' в таблицу то записал, а параметры 'story_id', 'skeleton_name' и 'health' забыл.
И совсем забыл, что можно просто дать мелкий хит, что бы не висел .
Сообщение было успешно отредактировано Darien Fx (27-07-2010 01:58 GMT3 часа, назад)
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.