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 ??? Цитата Ссылка на комментарий
меченый(стрелок) 4 Опубликовано 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 пользователем ФеНиКс Цитата Ссылка на комментарий
меченый(стрелок) 4 Опубликовано 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 пользователем ФеНиКс Цитата Ссылка на комментарий
меченый(стрелок) 4 Опубликовано 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 [туториал] Страничка на Проза.ру Ссылка на комментарий
меченый(стрелок) 4 Опубликовано 30 Июня 2010 Поделиться Опубликовано 30 Июня 2010 кровоSTALKER, методы switch_online\swicth_offline которые принимают булево (логическое - true\false) значение. Цитата Ссылка на комментарий
меченый(стрелок) 4 Опубликовано 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 Цитата Ссылка на комментарий
меченый(стрелок) 4 Опубликовано 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 Цитата Ссылка на комментарий
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.