iDreD 5 Опубликовано 30 Июня 2010 Поделиться Опубликовано 30 Июня 2010 Министр, это я понимаю, но в том-то и дело что описания из xml файлов не берётся, хоть и id названия я писал такое же как в скрипте. Добавлено через 2 мин.: В принципе - да, если работает, - и то хорошо . Добавлено через 131 мин.: Можно ли перевести монстра в оффлайн сразу после спауна, а затем сделать его онлайн, при получении инфопоршна из логики нпс'а? Работа в Sculptris 3D [туториал] Страничка на Проза.ру Ссылка на комментарий
DiXares 1 Опубликовано 30 Июня 2010 Поделиться Опубликовано 30 Июня 2010 Товарищи! Каким образом можно перебрать все предметы игры разом? Повешал на калбэк взяти предмета, но не годится, надо разом и всё, если можно то и предметы в оффлайне. local ObjSection = obj:section() local ObjIdEnteS = obj:id() local tsgame = ObjSection..ObjIdEnteS Переменную tsgame я применяю себя в скрипте. Куда бы это засунуть, что бы перебрать вся и всё? Должно получиться, типа этого: [DiXarUsedItemCall] detector_simple64=SDiXarUsed device_torch65=SDiXarUsed novice_outfit66=SDiXarUsed wpn_binoc67=SDiXarUsed device_pda68=SDiXarUsed wpn_vsk9416821=SDiXarUsed wpn_vsk9416822=SDiXarUsed wpn_vsk9416823=SDiXarUsed wpn_vsk9416824=SDiXarUsed wpn_vsk9416825=SDiXarUsed wpn_ksvk16826=SDiXarUsed wpn_ksvk16827=SDiXarUsed wpn_ksvk16828=SDiXarUsed wpn_ksvk16829=SDiXarUsed wpn_ksvk16830=SDiXarUsed wpn_ksvk_black16831=SDiXarUsed wpn_ksvk_black16832=SDiXarUsed wpn_ksvk_black16833=SDiXarUsed wpn_ksvk_black16834=SDiXarUsed wpn_ksvk_black16835=SDiXarUsed wpn_addon_9x39silencer16836=SDiXarUsed wpn_addon_9x39silencer16837=SDiXarUsed wpn_addon_9x39silencer16838=SDiXarUsed wpn_addon_9x39silencer16839=SDiXarUsed wpn_addon_9x39silencer16840=SDiXarUsed wpn_bm-16_full16841=SDiXarUsed wpn_bm-16_full16842=SDiXarUsed wpn_bm-16_full16843=SDiXarUsed wpn_bm-16_full16844=SDiXarUsed wpn_bm-16_full16845=SDiXarUsed wpn_addon_acog16846=SDiXarUsed wpn_addon_acog16847=SDiXarUsed wpn_addon_acog16848=SDiXarUsed wpn_addon_acog16849=SDiXarUsed wpn_addon_acog16850=SDiXarUsed wpn_addon_acog16851=SDiXarUsed wpn_fn200016852=SDiXarUsed wpn_pm16853=SDiXarUsed wpn_pb16854=SDiXarUsed wpn_fort16855=SDiXarUsed wpn_walther16856=SDiXarUsed wpn_sig22016857=SDiXarUsed wpn_colt191116858=SDiXarUsed wpn_usp16859=SDiXarUsed wpn_desert_eagle16860=SDiXarUsed wpn_bm1616861=SDiXarUsed wpn_wincheaster130016862=SDiXarUsed wpn_spas1216863=SDiXarUsed wpn_ak74u16864=SDiXarUsed wpn_mp516865=SDiXarUsed wpn_ak7416866=SDiXarUsed wpn_abakan16867=SDiXarUsed wpn_l8516868=SDiXarUsed wpn_lr30016869=SDiXarUsed wpn_sig55016870=SDiXarUsed wpn_groza16871=SDiXarUsed wpn_val16872=SDiXarUsed wpn_vintorez16873=SDiXarUsed wpn_svu16874=SDiXarUsed wpn_svd16875=SDiXarUsed wpn_rg-616876=SDiXarUsed wpn_rpg716877=SDiXarUsed wpn_gauss16878=SDiXarUsed wpn_addon_scope16879=SDiXarUsed wpn_addon_scope_susat16880=SDiXarUsed wpn_addon_silencer16881=SDiXarUsed wpn_addon_grenade_launcher16882=SDiXarUsed wpn_addon_grenade_launcher_m20316883=SDiXarUsed bandit_outfit16884=SDiXarUsed killer_outfit16885=SDiXarUsed monolit_outfit16886=SDiXarUsed soldier_outfit16887=SDiXarUsed specops_outfit16888=SDiXarUsed military_outfit16889=SDiXarUsed stalker_outfit16890=SDiXarUsed scientific_outfit16891=SDiXarUsed exo_outfit16892=SDiXarUsed svoboda_light_outfit16893=SDiXarUsed svoboda_heavy_outfit16894=SDiXarUsed dolg_outfit16895=SDiXarUsed dolg_scientific_outfit16896=SDiXarUsed ecolog_outfit16897=SDiXarUsed protection_outfit16898=SDiXarUsed grenade_f116899=SDiXarUsed grenade_rgd516900=SDiXarUsed grenade_f116901=SDiXarUsed grenade_rgd516902=SDiXarUsed grenade_f116903=SDiXarUsed grenade_rgd516904=SDiXarUsed grenade_f116905=SDiXarUsed grenade_rgd516906=SDiXarUsed grenade_f116907=SDiXarUsed grenade_rgd516908=SDiXarUsed grenade_f116909=SDiXarUsed grenade_rgd516910=SDiXarUsed grenade_f116911=SDiXarUsed grenade_rgd516912=SDiXarUsed grenade_f116913=SDiXarUsed grenade_rgd516914=SDiXarUsed grenade_f116915=SDiXarUsed grenade_rgd516916=SDiXarUsed grenade_f116917=SDiXarUsed grenade_rgd516918=SDiXarUsed grenade_f116919=SDiXarUsed grenade_rgd516920=SDiXarUsed grenade_f116921=SDiXarUsed grenade_rgd516922=SDiXarUsed grenade_f116923=SDiXarUsed grenade_rgd516924=SDiXarUsed grenade_f116925=SDiXarUsed grenade_rgd516926=SDiXarUsed grenade_f116927=SDiXarUsed grenade_rgd516928=SDiXarUsed grenade_f116929=SDiXarUsed grenade_rgd516930=SDiXarUsed grenade_f116931=SDiXarUsed grenade_rgd516932=SDiXarUsed grenade_f116933=SDiXarUsed grenade_rgd516934=SDiXarUsed grenade_f116935=SDiXarUsed grenade_rgd516936=SDiXarUsed grenade_f116937=SDiXarUsed grenade_rgd516938=SDiXarUsed grenade_f116939=SDiXarUsed grenade_rgd516940=SDiXarUsed grenade_f116941=SDiXarUsed grenade_rgd516942=SDiXarUsed grenade_f116943=SDiXarUsed grenade_rgd516944=SDiXarUsed grenade_f116945=SDiXarUsed grenade_rgd516946=SDiXarUsed grenade_f116947=SDiXarUsed grenade_rgd516948=SDiXarUsed grenade_f116949=SDiXarUsed grenade_rgd516950=SDiXarUsed grenade_f116951=SDiXarUsed grenade_rgd516952=SDiXarUsed grenade_f116953=SDiXarUsed grenade_rgd516954=SDiXarUsed grenade_f116955=SDiXarUsed grenade_rgd516956=SDiXarUsed grenade_f116957=SDiXarUsed grenade_rgd516958=SDiXarUsed ammo_9x19_fmj23594=SDiXarUsed bolt17408=SDiXarUsed af_medusa23599=SDiXarUsed af_medusa998=SDiXarUsed Ссылка на комментарий
ФеНиКс 2 Опубликовано 30 Июня 2010 Поделиться Опубликовано 30 Июня 2010 как сделать многократный(постоянный вызов) этой функции? (она стоит на сталкер апдейте) надо чтобы при каждой попытке подойти гг к нпсу его долбил хит, а так как у меня сделано его долбит, но только один раз ( а дальше спокойно подходишь...) local flobals = false function static() local pos_mes = "" local npc = level_object_by_sid(006) if npc and not flobals then if npc:position():distance_to(db.actor:position()) < 10 then local h = hit () h.power = 1 h.direction = vector():set (0, 0, 0) h.impulse = 0 h.draftsman = npc--/ или db.actor -- от кого дать хит h.type = hit.explosion db.actor:hit(h)--кому дать хит flobals = true level.add_pp_effector("fire_hit.ppe", 1974, false) news_manager.send_tip(db.actor, "%c[255,255,1,1]Т\\n%c[255,1,255,1]Дальше подойти нельзя! О%c[default]", 0, "tips_tatar", 8000) --else----} ------------- при использование этого переполняется стек лог вылета при этом выглядит так stack overflow --static() } end end end TREWKO тебе это знакомо: for i=1, 65535 do ??? Ссылка на комментарий
меченый(стрелок) 5 Опубликовано 30 Июня 2010 Поделиться Опубликовано 30 Июня 2010 (изменено) ФеНиКс, удалить flobals = true . for i=1, 65535 do Это не рационально,если проверка не "отложена" (читать через промежуток) Изменено 30 Июня 2010 пользователем меченый(стрелок) Ссылка на комментарий
ФеНиКс 2 Опубликовано 30 Июня 2010 Поделиться Опубликовано 30 Июня 2010 (изменено) меченый(стрелок) Ясно=) а как на счет for id,v in pairs(db.storage) do ?? или аналогично? ______ Изменено 30 Июня 2010 пользователем ФеНиКс Ссылка на комментарий
Министр 3 Опубликовано 30 Июня 2010 Поделиться Опубликовано 30 Июня 2010 (изменено) ФеНиКс, у тебя переменная flobals после 1-го удара принимает значение true и больше никогда не меняется. И следовательно усл-ие if npc and not flobals никогда больше не выполняется и о следующем усл-ии с проверкой расстояния и последующем ударе и думать не стоит. Тебе нужно присвоить flobals false и тогда все будет гуд. Вот как-то так это выглядет: local flobals = false function static() local pos_mes = "" local npc = level_object_by_sid(006) if npc and not flobals then if npc:position():distance_to(db.actor:position()) < 10 then local h = hit () h.power = 1 h.direction = vector():set (0, 0, 0) h.impulse = 0 h.draftsman = npc--/ или db.actor -- от кого дать хит h.type = hit.explosion db.actor:hit(h)--кому дать хит flobals = true level.add_pp_effector("fire_hit.ppe", 1974, false) news_manager.send_tip(db.actor, "%c[255,255,1,1]Т\\n%c[255,1,255,1]Дальше подойти нельзя! О%c[default]", 0, "tips_tatar", 8000) end end if npc and flobals then if npc:position():distance_to(db.actor:position()) => 10 then flobals = false end end end В этом коде flobals заново становится false когда ГГ от НПС будет на расстоянии равном или большем чем 10 (естественно если этот НПС жив). P.S. А если просто удалишь строчку flobals = true, то тебя будет беспрерывно хренячить и так же беспрерывно будут присылаться сообщения. Изменено 30 Июня 2010 пользователем Министр Ссылка на комментарий
DiXares 1 Опубликовано 30 Июня 2010 Поделиться Опубликовано 30 Июня 2010 Можно ли как то отследить, где был убит нпс? Всмысле узнать через каллбек смерти уровень. Так и не смог перебрать всех и вся... Ссылка на комментарий
ФеНиКс 2 Опубликовано 30 Июня 2010 Поделиться Опубликовано 30 Июня 2010 (изменено) Министр Оу! Спасибо=) вот очередной вопросец: почему в сообщении присылается текст как pos_mes ??? а не текст из таблицы? pos_mes = mes_sucko[math.random(table.getn(mes_sucko))] local news_text = "%c[255,255,1,1]Татар\\n+%c[255,1,255,1] pos_mes %c[default]" db.actor:give_game_news(news_text, "ui\\ui_iconsTotal", Frect():set(249,893,83,47), 0, 13000) Изменено 30 Июня 2010 пользователем ФеНиКс Ссылка на комментарий
меченый(стрелок) 5 Опубликовано 30 Июня 2010 Поделиться Опубликовано 30 Июня 2010 TREWKO, посмотри "новостной" скрипт - там есть проверка которая даёт название уровня нпс. Дай бог памяти - из пространства alife() Ссылка на комментарий
iDreD 5 Опубликовано 30 Июня 2010 Поделиться Опубликовано 30 Июня 2010 pos_mes = mes_sucko[math.random(table.getn(mes_sucko))] --Что это? local news_text = "%c[255,255,1,1]Татар\\n+%c[255,1,255,1] pos_mes %c[default]" db.actor:give_game_news(news_text, "ui\\ui_iconsTotal", Frect():set(249,893,83,47), 0, 13000) Если не вдаваться в подробности, то сделать нужно так: pos_mes = mes_sucko[math.random(4)] mes_sucko = {"Ы", "Ы1", "Ы2", "Ы3"} local news_text = "%c[255,255,1,1]Татар\\n+%c[255,1,255,1] pos_mes %c[default]" db.actor:give_game_news(news_text, "ui\\ui_iconsTotal", Frect():set(249,893,83,47), 0, 13000) Из таблицы будет рандомно браться одно из четырёх Ы, и выводится в меседж . Работа в Sculptris 3D [туториал] Страничка на Проза.ру Ссылка на комментарий
ФеНиКс 2 Опубликовано 30 Июня 2010 Поделиться Опубликовано 30 Июня 2010 (изменено) кровоSTALKER у меня сделано почти так же... таблицу просто не выложил вот с таблицей: local mes_sucko = { "Дххх!", "ххх!", "ххх?" } pos_mes = mes_sucko[math.random(table.getn(mes_sucko))] --это??? тут берется Рандомно текст из таблицы... local news_text = "%c[255,255,1,1]Татар\\n+%c[255,1,255,1] pos_mes %c[default]" db.actor:give_game_news(news_text, "ui\\ui_iconsTotal", Frect():set(249,893,83,47), 0, 13000) или локальную убрать и сунуть всё в тело? Изменено 30 Июня 2010 пользователем ФеНиКс Ссылка на комментарий
меченый(стрелок) 5 Опубликовано 30 Июня 2010 Поделиться Опубликовано 30 Июня 2010 (изменено) math.random(table.getn(mes_sucko)) = math.random(#mes_sucko) = math.random(n) (где n - кол-во элементов в таблице). ФеНиКс, "%c[255,255,1,1]Татар\\n+%c[255,1,255,1] pos_mes %c[default]" Внимательно посмотри - у тебя это всё одна строка *** кровоSTALKER, Поэтому нужно использовать Зачем? (table.getn(mes_sucko)) - даст кол-во элементов, следовательно будет выбираться(math.random(table.getn(mes_sucko))) случайное сообщение из всей таблицы. Изменено 30 Июня 2010 пользователем меченый(стрелок) Ссылка на комментарий
iDreD 5 Опубликовано 30 Июня 2010 Поделиться Опубликовано 30 Июня 2010 (изменено) В твоём случае таблица подгружается ((table.getn(mes_sucko))), но, тебе ведь нужно рандомное значение? Так? Поэтому нужно использовать [math.random(кол-во групп текста в "", в таблице)] Изменено 30 Июня 2010 пользователем кровоSTALKER Работа в Sculptris 3D [туториал] Страничка на Проза.ру Ссылка на комментарий
ФеНиКс 2 Опубликовано 30 Июня 2010 Поделиться Опубликовано 30 Июня 2010 меченый(стрелок) Ой блин точняк я кавычки-то забыл поставить нормально!=) Благодарю!=) Ссылка на комментарий
iDreD 5 Опубликовано 30 Июня 2010 Поделиться Опубликовано 30 Июня 2010 Можно ли перевести монстра в оффлайн сразу после спауна, а затем сделать его онлайн, при получении инфопоршна из логики нпс'а?И всё таки. Работа в Sculptris 3D [туториал] Страничка на Проза.ру Ссылка на комментарий
меченый(стрелок) 5 Опубликовано 30 Июня 2010 Поделиться Опубликовано 30 Июня 2010 кровоSTALKER, методы switch_online\swicth_offline которые принимают булево (логическое - true\false) значение. Ссылка на комментарий
меченый(стрелок) 5 Опубликовано 30 Июня 2010 Поделиться Опубликовано 30 Июня 2010 (изменено) TREWKO, WriteIni(ini, "DiXarUsedItemCall", GlobalSystemObjSection..GlobalSystemObjIdEnteS, "SDiXarNotUsed") ? Дак вот, этот скрипт делает так, что бы при взятии предмета, а именно артефакта Медуза, гг получал хит, но надо это делатьтолько один раз и для 1 предмета, а в зоне таких медуз до... много. По этому при юзании применяю сохранение секции и id предмета в строку и дальше сохраняю в ini файл. Может лучше табличку? tbl[1]="af_medesaНомер" tbl[2]=true table.add(tbl2,tbl) А при сохранении\загрузки сохранять таблицу в ini файл? И все таки - WriteIni это что такое? я на другой странице))) - чего такого? Пишет ini файл и чё? в ТЧ нету такой функции. А все сторонние "перехватчики" - зло для конечного пользователя и необязательно будут работать нормально. К примеру не всем захочется настраивать фаервол для этого (Outpost при полной защите 100% запретит это). Изменено 30 Июня 2010 пользователем меченый(стрелок) Ссылка на комментарий
DiXares 1 Опубликовано 30 Июня 2010 Поделиться Опубликовано 30 Июня 2010 (изменено) меченый(стрелок), чего такого? Пишет ini файл и чё? Как это таблицей? Изменено 30 Июня 2010 пользователем TREWKO Ссылка на комментарий
меченый(стрелок) 5 Опубликовано 30 Июня 2010 Поделиться Опубликовано 30 Июня 2010 (изменено) TREWKO, for i=1,#tbl do WriteIni(....) end Изменено 30 Июня 2010 пользователем меченый(стрелок) Ссылка на комментарий
DiXares 1 Опубликовано 30 Июня 2010 Поделиться Опубликовано 30 Июня 2010 (изменено) Понял, буду пробовать юзать! То есть будет конечный вид такой?: for i=1,#tbl do WriteIni(ini, sec, key, param) end То есть, он сохранит в... ммм... разберусь. Изменено 30 Июня 2010 пользователем TREWKO Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти