Перейти к контенту

Рекомендуемые сообщения

Министр, это я понимаю, но в том-то и дело что описания из xml файлов не берётся, хоть и id названия я писал такое же как в скрипте.

 

Добавлено через 2 мин.:

В принципе - да, если работает, - и то хорошо :D .

 

Добавлено через 131 мин.:

Можно ли перевести монстра в оффлайн сразу после спауна, а затем сделать его онлайн, при получении инфопоршна из логики нпс'а?

Ссылка на комментарий
Поделиться на других сайтах

Товарищи!

Каким образом можно перебрать все предметы игры разом?

Повешал на калбэк взяти предмета, но не годится, надо разом и всё, если можно то и предметы в оффлайне.

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

 

 

Ссылка на комментарий
Поделиться на других сайтах

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

 

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

 

???

87728-stalker.gif
Ссылка на комментарий
Поделиться на других сайтах

ФеНиКс, удалить flobals = true .

for i=1, 65535 do

Это не рационально,если проверка не "отложена" (читать через промежуток)

Изменено пользователем меченый(стрелок)
Ссылка на комментарий
Поделиться на других сайтах

меченый(стрелок)

Ясно=)

а как на счет for id,v in pairs(db.storage) do ?? или аналогично?

 

______

Изменено пользователем ФеНиКс
87728-stalker.gif
Ссылка на комментарий
Поделиться на других сайтах

ФеНиКс, у тебя переменная 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, то тебя будет беспрерывно хренячить и так же беспрерывно будут присылаться сообщения.

Изменено пользователем Министр
Ссылка на комментарий
Поделиться на других сайтах

Можно ли как то отследить, где был убит нпс?

Всмысле узнать через каллбек смерти уровень.

 

Так и не смог перебрать всех и вся...

Ссылка на комментарий
Поделиться на других сайтах

Министр

Оу! Спасибо=)

вот очередной вопросец:

почему в сообщении

присылается текст как 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)

Изменено пользователем ФеНиКс
87728-stalker.gif
Ссылка на комментарий
Поделиться на других сайтах

TREWKO, посмотри "новостной" скрипт - там есть проверка которая даёт название уровня нпс.

Дай бог памяти - из пространства alife()

Ссылка на комментарий
Поделиться на других сайтах

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)

Из таблицы будет рандомно браться одно из четырёх Ы, и выводится в меседж ^_^ .

Ссылка на комментарий
Поделиться на других сайтах

крово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)

 

 

или локальную убрать и сунуть всё в тело?

Изменено пользователем ФеНиКс
87728-stalker.gif
Ссылка на комментарий
Поделиться на других сайтах

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))) случайное сообщение из всей таблицы.

Изменено пользователем меченый(стрелок)
Ссылка на комментарий
Поделиться на других сайтах

В твоём случае таблица подгружается ((table.getn(mes_sucko))), но, тебе ведь нужно рандомное значение? Так? Поэтому нужно использовать

[math.random(кол-во групп текста в "", в таблице)]

Изменено пользователем кровоSTALKER
Ссылка на комментарий
Поделиться на других сайтах

меченый(стрелок)

Ой блин точняк я кавычки-то забыл поставить нормально!=)

Благодарю!=)

87728-stalker.gif
Ссылка на комментарий
Поделиться на других сайтах

Можно ли перевести монстра в оффлайн сразу после спауна, а затем сделать его онлайн, при получении инфопоршна из логики нпс'а?
И всё таки.
Ссылка на комментарий
Поделиться на других сайтах

кровоSTALKER, методы switch_online\swicth_offline которые принимают булево (логическое - true\false) значение.
Ссылка на комментарий
Поделиться на других сайтах

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% запретит это).

Изменено пользователем меченый(стрелок)
Ссылка на комментарий
Поделиться на других сайтах

меченый(стрелок), чего такого? Пишет ini файл и чё?

Как это таблицей?

 

Изменено пользователем TREWKO
Ссылка на комментарий
Поделиться на других сайтах

TREWKO,

for i=1,#tbl do
WriteIni(....)
end

Изменено пользователем меченый(стрелок)
Ссылка на комментарий
Поделиться на других сайтах

Понял, буду пробовать юзать!

То есть будет конечный вид такой?:

for i=1,#tbl do
WriteIni(ini, sec, key, param)
end

То есть, он сохранит в... ммм... разберусь.

Изменено пользователем TREWKO
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.

AMK-Team.ru

×
×
  • Создать...