Пользователей: 0
Гостей: 467
Всего: 467

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

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

» Добавить в избранное

» Сделать стартовой

Главная
Форум
Обзор игры
Мир Зоны
Файлы
Галерея
Разное





Форумы > Архив > Свалка > Модификации ТЧ, вопросы и ответы (старое, по 14.06.11)

Страница 17 из 63Первая«14151617181920 »Последняя

 
Автор Сообщение
killer2203
[1] Странник
    
0
Посты: 55
Откуда:
Возраст: 26
02-03-2011 12:28 GMT3 часа #1443790    
Блин где мне ActivePerl скачать чтобы алл.спавн упаковать?

добавлено спустя 23 секунд

Блин где мне ActivePerl скачать чтобы алл.спавн упаковать?

Сообщение было успешно отредактировано killer2203 (02-03-2011 12:28 GMT3 часа, назад)

да, да, да!
Леня_Агитатор
[1] Странник
    
0
Посты: 40
Откуда: Чита
Возраст:
02-03-2011 12:59 GMT3 часа #1443802    
killer2203 держи http://www.google.ru/url?sa=t&source=web&cd=1&ved=0CB4QFjAA&url=http%3A%2F%2Fdownload.chip.eu%2Fru%2FActivePerl-for-Windows-5.8.8_42267.html&rct=j&q=ActivePerl%205.8.8%20&ei=jPhtTdyCGoKfOvfK3IAD&usg=AFQjCNGGOm-3uMfWqP1rkw7MQ2ja2ZsFpA&cad=rja сам вчера скачал.


killer2203
[1] Странник
    
0
Посты: 55
Откуда:
Возраст: 26
02-03-2011 14:35 GMT3 часа #1443824    
спасибо. короче теперь вообще незнаю че я с диалогами натворил но когда в 1 диалоге сидору говориш хорошо я попробую или давай как с новичком... то идет вылет а если говориш давай как с опытным и доходия до фразы хорошо я попробую нажимаеш "Esc" то можно выйти к волку


да, да, да!
SkyLoader
[7] Выживший
    
0
Посты: 755
Откуда: Москва
Возраст:
02-03-2011 17:26 GMT3 часа #1443849    
Привет всем. Кто подскажет, как заставить один гулаг напасть на другой?
________
Я знаю способ назначения работы валкера до точки смарта-врага, но это мне не подходит.
________
Ну, например, есть нападения на гулаги в ЧН. Как там это сделано?

Сообщение было успешно отредактировано SkyLoader (02-03-2011 17:26 GMT3 часа, назад)

Хочешь работать нормально, работай один!
TYOPA
[1] Странник
    
0
Посты: 129
Откуда:
Возраст: 27
02-03-2011 20:16 GMT3 часа #1443986    
Подскажите как запустить anm файл?


S.T.A.L.K.E.R. Secret of the Zone: Gunslinger's Story. Prologue - разработка.
Stalk15
[1] Странник
    
0
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
02-03-2011 20:57 GMT3 часа #1444004    
TYOPA
Код:
level.add_cam_effector("camera_effects\\earthquake.anm", 1974, false, "")


Новые фишки для сталкера(см. журнал)
karavan
[3] Новобранец
    
0
Посты: 940
Откуда:
Возраст:
02-03-2011 20:59 GMT3 часа #1444007    
Vitek5 Ели надо с моделями работать работай в Милке (MilkShape 3D 1.8.4), там и плагины вменяемые и помойму намного проще чем в Майя.


Анонс мода-аддона "S.T.A.L.K.E.R. - Безопасная земля"
Узнай о моде больше - подпишись на канал (кликабельно)
killer2203
[1] Странник
    
0
Посты: 55
Откуда:
Возраст: 26
02-03-2011 21:01 GMT3 часа #1444009    
Леня_Агитатор сыль непашет


да, да, да!
Vitek5
[1] Странник
    
0
Посты: 359
Откуда:
Возраст:
02-03-2011 22:56 GMT3 часа #1444067    
karavan
Да я в курсе тока когда импортирую в милку высокополигонные модели она вылетает....


В журнал добавлены 2 полезные статьи.
erlik
[10] Житель
    
0
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
03-03-2011 03:33 GMT3 часа #1444077    
killer2203
Ссылку тебе дали рабочую.(проверил).
---------------------------------------------------------
SkyLoader
Если не подходит логика - пиши АИ -схему
------------------------------------------------------------------------------------------------
Кто-нибудь в курсе какой эвалюатор (или что то другое) может запрещать NPC(который изначально находится под дефолтной логикой) перемещаться на новую позицию?
Написал небольшую (больше для теста, чем для игры) АИ схему, и никак не могу заставить NPC подбегать к ГГ, если расстояние дальше, чем нужно.
Собственно вот скрипт добавляющий мои эвалюатор и оператор в планировщик.
Код:
--// получаем объект нашего оператора
local action = action_bar_facer (object,"bar_facer", storage)
--// добавляем в нее предусловия работы
action:add_precondition(world_property(stalker_ids.property_alive, true))           --// npc живой
action:add_precondition(world_property(stalker_ids.property_enemy, false))          --// врагов рядом нет
action:add_precondition(world_property(xr_evaluators_id.sidor_wounded_base, false)) --// npc не ранен

xr_motivator.addCommonPrecondition(action)
--// что делает эта строчка? без нее операторы схемы не выполняются, когда эвалюатор в true
action:remove_precondition(properties["bar_facer"])
--// наш эвалюатор должен быть истинным
action:add_precondition (world_property(properties["bar_facer"], true))
--// если эвалюатор стал ложным - прекратить выполнение действий
action:add_effect (world_property(properties["bar_facer"], false))
--// добавляем нашу схему в планировщик
manager:add_action (operators["bar_facer"], action)

--// получим некоторые стандартные эвалюаторы и добавим к их предусловиям,
--//что наш эвалюатор должен быть ложным, тем самым запрещая им работать, когда наш эвалюатор истинен
 
action = manager:action (xr_actions_id.alife) --//эвалюатор алайфа
action:add_precondition (world_property(properties["bar_facer"], false))
   
action = manager:action (world_property(xr_evaluators_id.abuse_base))  -- эвалюатор "я обижен ГГ"
action:add_precondition (world_property(properties["bar_facer"], false))

action = manager:action (world_property(xr_evaluators_id.stohe_meet_base + 1)) -- эвалюатор  "ГГ хочет со мной поговорить"
action:add_precondition (world_property(properties["bar_facer"], false))
end

Собственно все прочее в схеме работает - NPC показывает гг фак, бъет в морду, бросает в него предметы, но подбегать не подбегает.
---------------------------------------------------------
SkyLoader
Насчет ЧН я не в курсе, но думаю логично предположить, что для массы народа удобнее организовать подобный экшен - нападение гулагов друг на друга - через АИ-схему.
ЗЫ: Сделал таки, чтобы NPC бегали за ГГ (просчет был в одной строчке) - теперь носятся за ним по всему бару, пока в морду не дадут

Сообщение было успешно отредактировано erlik (03-03-2011 03:33 GMT3 часа, назад)

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
SkyLoader
[7] Выживший
    
0
Посты: 755
Откуда: Москва
Возраст:
02-03-2011 23:56 GMT3 часа #1444125    
erlik, в чн сделана схема? Интересно, может удастся ее перенести?
Посмотри, как это сделано в Наемниках. Там он много чего сделал.


Хочешь работать нормально, работай один!
Vich2010
[1] Странник
    
0
Посты: 46
Откуда:
Возраст: 47
03-03-2011 13:10 GMT3 часа #1444250    
Всем привет!!! у меня пара-тройка вопросов,кто может помочь буду рад!!!
1.Сделал новые боеприпасы 7,62х39,везде все нормально с ними работает,НО при закладки их в ящик начинается ерунда,Они есть их видно, только ГГ не может их взять.Почему?

2.На Ростоке и на Агропроме есть места где камера "летает" показывая что ожидает ГГ впереди.Вопрос как сделать так на других локациях?

3.И как добавить локацию? кто знает киньте ссылку!!

Всем заранее спасибо!!

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

killer2203 привет!! открой файл outfit.ltx и внимательно поизучай его! там все подробно написано про все комбезы!!!

Сообщение было успешно отредактировано Vich2010 (03-03-2011 13:10 GMT3 часа, назад)

Большая Земля - это часть Зоны Отчуждения и наоборот.
Stalk15
[1] Странник
    
0
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
03-03-2011 14:22 GMT3 часа #1444277    
Я на скриптовое окно вывожу текст:
Код:
self.text_GInfo2 = CUIStatic()
self.text_GInfo2:Init(-200,365,650,30)
self.text_GInfo2:SetText("Типа текст:)")
self.text_GInfo2:SetFont(GetFontGraffiti22Russian())
self.text_GInfo2:SetTextAlign(2)
self.wind_v:AttachChild (self.text_GInfo2)

Если я вывожу содержательный текст, то он выходит за пределы скриптового окошка. Как сделать перенос строки? \n - это не работает. Знаю, что можно разделить текст и потом несколько раз повторить вышепоказанный код, меняя текст на следующую его часть. Но может есть вариант 'посимпатичней'?


Новые фишки для сталкера(см. журнал)
erlik
[10] Житель
    
0
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
03-03-2011 15:01 GMT3 часа #1444295    
Stalk15
У класса CUIStatic() есть такая досадная недоработка, то что он не умеет переносить текст - то есть в его конструкторе нет нужного метода. Есть только атрибут complex_mode="1", который читается из xml настроек. Он как раз и включает режим переноса строк у статика. Но применить его можно только в xml.
Хотя у статиков есть еще метод SetPPMode() - который непонятно что делает, я его ни разу не применял - попробуй, вдруг это и есть метод переноса .


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Stalk15
[1] Странник
    
0
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
03-03-2011 15:10 GMT3 часа #1444298    
erlik
Ну, ладно, придется текст в конфиги переносить. А SetPPMode() текст на какой-то светло-черный цвет поменял.
Спасибо.


Новые фишки для сталкера(см. журнал)
qwer54321
[1] Banned
    
0
Посты: 56
Откуда:
Возраст: 32
03-03-2011 16:58 GMT3 часа #1444331    
Люди, может кто подсказать что может означать такой лог и как его можно исправить?

[16-9] get_xml_name for[maingame_pda_msg.xml] returns [maingame_pda_msg.xml]
! Cannot find saved game ~~~ nil self.object in motivator_binder
* Log file has been saved successfully!

FATAL ERROR

[error]Expression : fatal error
[error]Function : CScriptEngine::lua_error
[error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
[error]Line : 73
[error]Description : <no expression>
[error]Arguments : LUA error: e:\games\stalker\gamedata\scripts\_g.script:1121: bad argument #2 to 'format' (string expected, got no value)


stack trace:


1. Вы сейчас в интернете
2. Вы на сайте stalker-portal
3. Вы читаете
5. Вы не заметили, что отсутствует пункт 4
6. Вы это проверили
7. Вы улыбаетесь
8. Поставь себе в подпись и нас будет больше
Максим Р.
[3] Новобранец
    
0
Посты: 1026
Откуда:
Возраст:
03-03-2011 20:37 GMT3 часа #1444438    
Есть ли возможность использовать предмет через скрипт?
Под "использованием" подразумевается, когда игрок подходит, например, к выключателю и нажимает клавишу F (или другую, в зависимости от настроек), и выключатель переключается. При этом в логике выключателя можно прописать on_use и какое-то действие, и оно сработает. А вот можно ли написать функцию, которая бы имитировала вот это нажатие F (не само нажатие, а именно то действие, которое происходит, когда ГГ нажимает на F, наведя прицел на объект)? Причём, необязательно выключатель, любой физический объект, будь то дверь, машина, ящик, тайник и тп. То есть что-то наподобие этого:
...
local obj = level_object_by_sid(numInt)
db.actor:use(obj)
...

Надеюсь, понятно объяснил.


SkyLoader
[7] Выживший
    
0
Посты: 755
Откуда: Москва
Возраст:
03-03-2011 21:40 GMT3 часа #1444459    
Максим Р.,
Если я тебя правильно понял, то меняй кастомдату этого физ объекта через нет-пакеты и ставь в нее логику.


Хочешь работать нормально, работай один!
Stalk15
[1] Странник
    
0
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
03-03-2011 21:52 GMT3 часа #1444464    
Максим Р.
Ну, если я правильно понял, то, например, так скриптом используется актором хлеб:
Код:
local obj = db.actor:object("bread")
if obj then
db.actor:eat(obj)
end


Новые фишки для сталкера(см. журнал)
Artos
[20] Сталкер
    
0
Посты: 4176
Откуда:
Возраст: 65
03-03-2011 22:01 GMT3 часа #1444466    
Максим Р.
Что-то ты или заумно или наоборот куце поставил задачу ....
Если тебя интересует именно иммитатор некоего действия типа 'нажатие/использование', то без определения критериев 'а что же считается нажатием' - никакого иммитатора не получишь.
Пример (из практики): Для машин есть возможность задействовать 'нажатие' и сажать актора в автомобиль. Для вертолетов такого нет. Мне потребовалось условно говоря симмитировать процесс посадки (использовать объект через скрипт). Критерием послужило: актор находится около объекта не далее чем Х метров.
Строго говоря, это не иммитатор, т.к. и находясь около машины игрок не обязательно нажимает <F>, что и является 'нажатием'.
Поясни несколько подробнее, что же ты подразумеваешь под 'использовать объект через скрипт', т.к. в любом случае использование идет через скрипт, и что за критерии для 'пора использовать'.


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
killer2203
[1] Странник
    
0
Посты: 55
Откуда:
Возраст: 26
04-03-2011 00:25 GMT3 часа #1444552    
Все знают что НПС могут в репу съезить. А как сделать такойже удар после которого нпс нестановился врагом а просто падал как раненый на секунды и потом вставал и разумеется чтоб жизи тратились (у НПС конечно) ну может после третьего удара он бы и делался врагом. Лучше конечно вместа ножа или типа смены вида потронов (нож/кулак)


да, да, да!
Byurrer
[1] Странник
    
0
Посты: 82
Откуда: А зачем?
Возраст: 32
04-03-2011 12:42 GMT3 часа #1444671    
Здравствуйте. Возникла проблема, делаю схему поведения "шмон", суть в том что живые НПС будут обыскивать мертвых. Но столкнулся с проблемой - при включении схемы НПС тупо стоят на своих местах и не обыскивают трупы, но расходяться на прежние места, то естьВолк идет на свое место где он обычно стоит но не разворачиваеться, другие НПС идут к костру, но не садяться, а стоя рассказывают истории, а партульные тупо остановились по среди своего пути ... Вэтой схеме они должны просто подходить к трупу и стоять возле него но увы ... Что не так не могу сообразить, вот как подулючил:
"xr_shmon.script"
Код:
priperty_base = 1777
property_object_for_shmon = priperty_base + 1

property_obj_base = 666
property_obj_item = property_obj_base + 1

time_run = 1000 * 5
dist = 30
tab_id_shmon = {}
bad_id = {}

local timer,last

class "evaluator_object_for_shmon" (property_evaluator)

function evaluator_object_for_shmon:__init(name, storage) super (nil, name)
self.st = storage
end

function evaluator_object_for_shmon:evaluate()
--fdb.how_table_in_table(tab_id_shmon)
self.position = self.object:position()
if timer == nil then
timer = time_global() + time_run
else last = timer - time_global()
end
if last == nil then
last = timer - time_global()
end
if last <= 0 then
timer = nil last = nil
local npc
for k=1, 65534 do
npc = level.object_by_id(k)
if npc and not npc:alive() and is_is_tab_id_shmon(k) and is_bad_id(k) and self.position:distance_to(npc:position()) < dist then
tab_id_shmon[self.object:name()] = {}
table.insert(tab_id_shmon[self.object:name()],k)
fdb.logS(">>npc:id() = "..k)
end
end
end
--fdb.logS("flush")
return is_chtonit(self.object)
end


class "action_go_to_shmon" (action_base)

function action_go_to_shmon:__init(obj, storage) super (nil, obj)
self.st = storage
end

function action_go_to_shmon:initialize()
action_base.initialize(self)
fdb.how_table_in_table(tab_id_shmon)
fdb.logS("flush")
self.obj.lv = self.object:level_vertex_id()
self.obj_item = level.object_by_id(tab_id_shmon[self.object:name()])
self.obj_item.lv = self.obj_item:level_vertex_id()
self.obj:set_dest_level_vertex_id(self.obj_item.lv)
end

function action_go_to_shmon:execute()
action_base.execute(self)
fdb.logS("function action_go_to_shmon:execute()")
if self.obj_item.lv ~= self.obj:level_vertex_id() then
self.obj_item.lv = self.obj_item:level_vertex_id()
self.obj:set_dest_level_vertex_id(self.obj_item.lv)
end
end

function action_go_to_shmon:finalize()
action_base.finalize (self)
end


function add_to_binder(npc,ini,scheme,section,st)
local manager = npc:motivation_action_manager()
manager:add_evaluator(property_object_for_shmon, evaluator_object_for_shmon("evaluator_object_for_shmon",st))
fdb.logS("flush")
local action = action_go_to_shmon(npc, st)
action:add_precondition (world_property(stalker_ids.property_alive, true))
action:add_precondition (world_property(stalker_ids.property_danger,false))
action:add_precondition (world_property(stalker_ids.property_enemy, false))
action:add_precondition (world_property(stalker_ids.property_anomaly,false))
action:add_precondition (world_property(property_object_for_shmon), true)
xr_motivator.addCommonPrecondition(action)
action:add_effect (property_object_for_shmon, false)
manager:add_action (property_obj_item, action)
end

---------------
function set_scheme(npc,ini,scheme,section)
local st = xr_logic.assign_storage_and_bind(npc, ini, scheme, section)
st.enabled=true
end

function disable_scheme(npc,scheme)
local st = db.storage[npc:id()][scheme]
if st then
st.enabled = false
end
end
---------------

function is_is_tab_id_shmon(id)
local count = 0
local bool = true
for k,v in pairs(tab_id_shmon) do
for q=1,#v do
if v[q] == id then
count = count + 1
end
end
end
if count == 0 then
bool = true
else bool = false
end
return bool
end

function is_bad_id(id)
local bool = true
for k=1, #bad_id do
if bad_id[k] == id then
bool = false
break
end
end
return bool
end

function is_chtonit(npc)
local name = npc:name()
local bool = false
if tab_id_shmon[name] and #tab_id_shmon[name] > 0 and tab_id_shmon[name][1] ~= nil then
bool = true
end
return bool
end


"modules.script"
Код:
...
-- Загрузка модулей сталкеров:
----------------------------------------------------------------------
load_scheme("xr_danger", "danger", stype_stalker)
load_scheme("xr_abuse", "abuse", stype_stalker)
load_scheme("xr_walker", "walker", stype_stalker)
load_scheme("xr_remark", "remark", stype_stalker)
load_scheme("xr_sleeper", "sleeper", stype_stalker)
load_scheme("xr_kamp", "kamp", stype_stalker)
load_scheme("xr_camper", "camper", stype_stalker)
load_scheme("xr_meet", "meet", stype_stalker)
--load_scheme("xr_reactions", "reactions", stype_stalker)
load_scheme("xr_test", "test", stype_stalker)
load_scheme("xr_heli_hunter", "heli_hunter", stype_stalker)
load_scheme("xr_attendant", "follower", stype_stalker)
load_scheme("xr_combat", "combat", stype_stalker)
load_scheme("xr_death", "death", stype_stalker)
load_scheme("xr_use", "use", stype_stalker)
load_scheme("xr_hit", "hit", stype_stalker)
load_scheme("xr_wounded", "wounded", stype_stalker)
load_scheme("xr_rest", "rest", stype_stalker)
load_scheme("xr_meet", "actor_dialogs",stype_stalker)
load_scheme("xr_combat_ignore", "combat_ignore", stype_stalker)
load_scheme("xr_patrol", "patrol", stype_stalker)
load_scheme("xr_shmon", "shmon", stype_stalker)
...


"xr_motivator.script"
Код:
function motivator_binder:net_spawn(sobject)
printf("motivator_binder:net_spawn(): self.object:name()='%s'", self.object:name())
--memusage.collect_info(self.object, "netspawn_start")
if not object_binder.net_spawn(self, sobject) then
return false
end

-- if self.object:spawn_ini():section_exist("dont_spawn_online") then
-- printf("!!!OFFLINE")
-- alife():object(self.object:id()).dont_spawn_online = true
-- end

db.add_obj(self.object)

-- Все CALLBACK-и ставить здесь:
local manager = self.object:motivation_action_manager()
manager:add_evaluator(xr_shmon.property_object_for_shmon, property_evaluator_const(false))
...
function addCommonPrecondition(action)
action:add_precondition (world_property(xr_shmon.property_object_for_shmon,false))
--action:add_precondition (world_property(xr_evaluators_id.reaction,false))
action:add_precondition (world_property(xr_evaluators_id.stohe_meet_base + 1,false))
action:add_precondition (world_property(xr_evaluators_id.sidor_wounded_base + 0, false))
action:add_precondition (world_property(xr_evaluators_id.chugai_heli_hunter_base, false))
action:add_precondition (world_property(xr_evaluators_id.abuse_base, false))
end


"xr_logic.script"
Код:
function disable_generic_schemes(npc, stype)
if stype == modules.stype_stalker then
xr_combat.disable_scheme(npc, "combat")
xr_use.disable_scheme(npc, "use")
xr_hit.disable_scheme(npc, "hit")
xr_meet.disable_scheme(npc, "actor_dialogs")
xr_heli_hunter.disable_scheme(npc, "heli_hunter")
xr_combat_ignore.disable_scheme(npc, "combat_ignore")
xr_shmon.disable_scheme(npc,"shmon")
elseif stype == modules.stype_mobile then
mob_combat.disable_scheme(npc, "mob_combat")
mob_trade.disable_scheme(npc, "mob_trade")
elseif stype == modules.stype_item then
ph_on_hit.disable_scheme(npc, "ph_on_hit")
elseif stype == modules.stype_heli then
xr_hit.disable_scheme(npc, "hit")
end
end
...
function enable_generic_schemes(ini, npc, stype, section)
if stype == modules.stype_stalker then
...
local heli_hunter_section = utils.cfg_get_string(ini, section, "heli_hunter", npc, false, "")
xr_heli_hunter.set_scheme(npc, ini, "heli_hunter", heli_hunter_section)

local shmoning = utils.cfg_get_string(ini, section, "shmon", npc, false, "")
xr_shmon.set_scheme(npc,ini,"shmon",shmoning)
...


project S.I.P
SkyLoader
[7] Выживший
    
0
Посты: 755
Откуда: Москва
Возраст:
04-03-2011 14:00 GMT3 часа #1444697    
Такой вопрос: есть табличка:
Код:
local t ={
[1]="1",
[2]="2"
}


Есть часть ф-ции:
Код:
for k, v in pairs(t) do
if v==string then
alife():release(alife():object(obj:id()), true)
get_console():execute(k)
end
end


Как мне сделать проверку, если string не соответствует ни одно значение v. Например, если писать так: if v~=string then, то это будет проверка только для текущего значения v.


Хочешь работать нормально, работай один!
Stalk15
[1] Странник
    
0
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
04-03-2011 14:25 GMT3 часа #1444705    
Подключаюсь к вопросу SkyLoader'а. У меня такойже вопрос в такой ситуации:

Есть две таблицы:
Код:
local tQuestions = {
[1] = {"question_1", "1", "2", "3", "4"},
[2] = {"question_2", "11", "22", "33", "44"}
}
local tUsedQuestions = {}

Я вытаскиваю из таблицы tQuestions рандомный элемент, которые не записан в таблицу tUsedQuestions и записываю его в таблицу tUsedQuestions:
local SelectQuestion = math.random(#tQuestions)
Код:
if #tUsedQuestions > 0 then
for k, v in pairs(tUsedQuestions) do
while v == SelectQuestion do
SelectQuestion = math.random(#tQuestions)
end
end
end

Но вытащить я хочу только тот елемент, которого нет в таблице tUsedQuestions. Но моя проверка v == SelectQuestion не срабатывает и получается, что вытащенный один раз предмет можно повторно вытащить еще раз.


Новые фишки для сталкера(см. журнал)
Byurrer
[1] Странник
    
0
Посты: 82
Откуда: А зачем?
Возраст: 32
04-03-2011 14:48 GMT3 часа #1444714    
SkyLoader можно так:

Код:
local t ={
[1]="1",
[2]="2"
}

for k, v in pairs(t) do
if is_is(string) then
alife():release(alife():object(obj:id()), true)
get_console():execute(k)
end
end

--// если хоть одно занчение из таблицы будет равно string функция вернет false и условие не выполниться
function is_is(num)
local bool = true
for k,v in paits(t) do
if num == v then
bool = false
break
end
end
return bool
end


project S.I.P
AAAAKKK
[1] Странник
    
0
Посты: 65
Откуда: Кострома
Возраст: 47
04-03-2011 15:49 GMT3 часа #1444738    
Artos

Цитата
1. Для чего создавать новые секции предметов, писать доп.логику и пр. извраты (тем более не без ошибок), когда все можно сделать 'подручными' средствами уже имеющимися в игре и не более сложными (точнее простыми), чем предлагаемые?
Все твои потуги от того, что тебе 'захотелось почесать нечто' и ты, НЕ раздумывая, изобретаешь свой способ почесать ...
А если просто подумать и составить прежде чем 'чесать' простенький алгоритм
?

мое
Подходим к предмету который лежит в Баре около некоторого перса у предмета
соответствующая логика
при попытке взять сьесть
отсутствие инфо поршня = удар в рожу
присутствие инфо поршня = сьел выпил взял
отсутствие непися на данной работе = сьел выпил взял

ваще

и при условии совпадения секции + нахождения ГГ именно в Баре (рестриктор) + отсутствия факта покупки (нет окна торговли) + наличие рядом непися => обрабатываем событие, вызываю нужный набор функций.


вы считаете проще ?



Цитата
а) обрабатывается объект/предмет, который лежит в Баре около некоторого перса.
СтОит ли залезать в алл.спавн и вводить секции/логики/...?
Достаточно использовать коллбэк на взятие актором предмета, обработать секцию/имя(!) взятого предмета и при условии совпадения секции + нахождения ГГ именно в Баре (рестриктор) + отсутствия факта покупки (нет окна торговли) + наличие рядом непися => обрабатываем событие, вызываю нужный набор функций.
б) Не хочется чтобы любая буханка была запретной? Чтобы можно было выбросить и подбрать 'свою' без шанса получить в лоб и лишиться денег? Нет проблем. Уникальные имена уже данные предметам в алл.спавне (типа bar_conserva/bar_bread_0000) или присвоение story_id (что явно излишне, но проще создания новых секций и логик) - решают эту пожелалку. Остается только проверять взятое ГГ на соответствие этим именам/стори_идам.

Цитата
2. Прописав в логике: on_use = %=act_punch%, стОит помнить про аргументы, с которыми логика вызывает прописанную функцию. И если 'новые' знания не затуманили старые, то строка if db.actor:position():distance_to_sqr(npc:position()) > 4 then никогда не вернет true, т.к. 'npc' и 'db.actor' - одно и то же, и никак не будет далее 2-х метров от самого себя.
Так что тут без сканирования локации и проверки дистанции именно до неписей не обойтись. Тем более это и пригодится для более логичной обработки события - ГГ получает удар и теряет деньги, а вот кто врезал и кому ушли деньги - не ясно! Вот и пригодится ближайший перс и для анимации нанесения удара и для трансфера денег ...


Цитата
б) Не хочется чтобы любая буханка была запретной? Чтобы можно было выбросить и подбрать 'свою' без шанса получить в лоб и лишиться денег?

а ОНА и так не запретна толька та у которой соответствующая логика



Так что тут без сканирования локации и проверки дистанции именно до неписей не обойтись. Тем более это и пригодится для более логичной обработки события - ГГ получает удар и теряет деньги, а вот кто врезал и кому ушли деньги - не ясно! Вот и пригодится ближайший перс и для анимации нанесения удара и для трансфера денег



мое
Подходим к предмету который лежит в Баре около некоторого перса у предмета
соответствующая логика
при попытке взять сьесть
отсутствие инфо поршня = удар в рожу потерял деньги нпс находящийся на данной работе получил
присутствие инфо поршня = сьел выпил взял
отсутствие непися на данной работе = сьел выпил взял


С уважением .

Да и совсем забыл вам веть еще рестрикторы потребуються.

ЗЫ. Я Не пытаюсь оспорить ваш авторитет и знания
просто привык отстаивать свою точку зрения
если я не прав всегда это признаю
ну и приведите если не сложно пример для чистой игры 1.0004
хотя не настаиваю можно просто описание функций.

Сообщение было успешно отредактировано AAAAKKK (04-03-2011 15:49 GMT3 часа, назад)

Зацикленный лагерь в журнале.
SkyLoader
[7] Выживший
    
0
Посты: 755
Откуда: Москва
Возраст:
04-03-2011 15:49 GMT3 часа #1444743    
Byurrer, спасибо, заработало. Только не paits(t), а pairs(t). Насчет схемы. Посмотри, как это сделано в Marauder scheme.


Хочешь работать нормально, работай один!
STALKER-DRUZIA
[1] Странник
    
0
Посты: 46
Откуда: Кировоград
Возраст: 28
04-03-2011 15:50 GMT3 часа #1444744    
Как убрать бесконечные патроны в мультиплеере?


Romzik2033
[1] Странник
    
0
Посты: 2
Откуда:
Возраст:
04-03-2011 15:52 GMT3 часа #1444745    
У мя вопрос. Как сделать так, чтобы например Волк после какого-либо разговора пошёл в другую точку и там стоял?


Byurrer
[1] Странник
    
0
Посты: 82
Откуда: А зачем?
Возраст: 32
04-03-2011 16:06 GMT3 часа #1444748    
SkyLoader я уже и амк посмотрел, и статью на вики всю уже раз на 7 прочитал, и схемы ПЫСов разбираю (камп, комбат), и вот вроде бы все так как надо, так как другие схемы активированы, но вот этот косяк не дает мне покоя ...


project S.I.P


Форумы > Архив > Свалка > Модификации ТЧ, вопросы и ответы (старое, по 14.06.11)

Страница 17 из 63Первая«14151617181920 »Последняя

Эта тема закрыта, публикация новых сообщений недоступна.

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

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