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

[SoC] Ковыряемся в файлах


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

ins33

if db.actor ~= nil and
if has_alife_info("doctor_one_start") and
time_news < time then

ошибка в if после первого and. Имеется в виду, что if там не должно быть.

 

Стрелок

Ответы на Ваш вопрос:

- Вы инфо-порцию kontroler_trup прописали как положено ?

- А как Вы проверяете, что инфо-порция не выдается ?

Изменено пользователем AndreySol
Ссылка на комментарий

Стрелоk, секцию спавнер пиши с самого начала, перед smart_terrains. И советую в спавне оставлять только секцию спавнер. А логику выносить в отдельный файл. Будет проще, легче и без лишней перепаковки. Не факт, что данный инфопоршень не выдаёться. Может ошибка там, где он что-то должень делать.

ins33, два if и два end. А где завершающий end самой функции? И зачем if после and?

Изменено пользователем panzyuza
Ссылка на комментарий

Всем привет,

я клепал моды друг на друга(детекторы артов, арсенал, новая броня, еда и медикаменты, выброс, сон, напарники, по одежке встречают.... может еще что-то, не помню)

клепал не тупо копированием а осознано(ну и winmerge мне в этом помог)))

вообщем потом начал тестить на баги и вот один из них:

сначала не мог поговорить с сидором и со всеми остальными(сразу вылет)

попытался исправить, но стало еще хуже - вылетает после начального ролика, когда у сидора появляюсь(новая игра)

играю в тч версии 1.0004

 

* Detected CPU: AuthenticAMD , F15/M4/S8, 808.00 mhz, 5-clk 'rdtsc'

* CPU Features: RDTSC, MMX, 3DNow!, SSE, SSE2

 

Initializing File System...

using fs-ltx fsgame.ltx

FS: 29977 files cached, 4477Kb memory used.

Init FileSystem 2.231211 sec

'xrCore' build 3116, Aug 15 2007

 

Initializing Engine...

Executing config-script "user.ltx"...

[c:\documents and settings\all users\Документы\stalker-shoc\user.ltx] successfully loaded.

Starting INPUT device...

Loading DLL: xrRender_R1.dll

Loading DLL: xrGame.dll

* [win32]: free[2030320 K], reserved[9476 K], committed[57292 K]

* [ D3D ]: textures[0 K]

* [x-ray]: crt heap[6846 K], process heap[1147 K], game lua[0 K], engine lua[0 K], render[0 K]

* [x-ray]: economy: strings[1501 K], smem[0 K]

Executing config-script "c:\games\s.t.a.l.k.e.r\gamedata\config\default_controls.ltx"...

! cant convert dik_name for dik[16], prop=[

! cant convert dik_name for dik[17], prop=[

! cant convert dik_name for dik[18], prop=[

! cant convert dik_name for dik[19], prop=[

! cant convert dik_name for dik[20], prop=[

! cant convert dik_name for dik[21], prop=[

! cant convert dik_name for dik[22], prop=[

! cant convert dik_name for dik[23], prop=[

! cant convert dik_name for dik[24], prop=[

! cant convert dik_name for dik[25], prop=[

! cant convert dik_name for dik[26], prop=[

! cant convert dik_name for dik[27], prop=[

! cant convert dik_name for dik[30], prop=[

! cant convert dik_name for dik[31], prop=[

! cant convert dik_name for dik[32], prop=[

! cant convert dik_name for dik[33], prop=[

! cant convert dik_name for dik[34], prop=[

! cant convert dik_name for dik[35], prop=[

! cant convert dik_name for dik[36], prop=[

! cant convert dik_name for dik[37], prop=[

! cant convert dik_name for dik[38], prop=[

! cant convert dik_name for dik[39], prop=[

! cant convert dik_name for dik[40], prop=[

! cant convert dik_name for dik[41], prop=[

! cant convert dik_name for dik[44], prop=[

! cant convert dik_name for dik[45], prop=[

! cant convert dik_name for dik[46], prop=[

! cant convert dik_name for dik[47], prop=[

! cant convert dik_name for dik[48], prop=[

! cant convert dik_name for dik[49], prop=[

! cant convert dik_name for dik[50], prop=[

! cant convert dik_name for dik[51], prop=[

! cant convert dik_name for dik[52], prop=[

! cant convert dik_name for dik[144], prop=[

[c:\games\s.t.a.l.k.e.r\gamedata\config\default_controls.ltx] successfully loaded.

Executing config-script "user.ltx"...

Executing config-script "c:\games\s.t.a.l.k.e.r\gamedata\config\rspec_minimum.ltx"...

! Unknown command: r__dtex_range

! Unknown command: r__ssa_glod_end

! Unknown command: r__ssa_glod_start

! Unknown command: r__wallmark_ttl

! Unknown command: rs_detail

! Unknown command: rs_skeleton_update

! Unknown command: vid_bpp

[c:\games\s.t.a.l.k.e.r\gamedata\config\rspec_minimum.ltx] successfully loaded.

Executing config-script "c:\games\s.t.a.l.k.e.r\gamedata\config\default_controls.ltx"...

[c:\games\s.t.a.l.k.e.r\gamedata\config\default_controls.ltx] successfully loaded.

[c:\documents and settings\all users\Документы\stalker-shoc\user.ltx] successfully loaded.

SOUND: OpenAL: enumerate devices...

SOUND: OpenAL: EnumerationExtension Present

devices Generic Hardware

SOUND: OpenAL: system default SndDevice name is Generic Hardware

SOUND: OpenAL: default SndDevice name set to Generic Software

SOUND: OpenAL: All available devices:

1. Generic Hardware, Spec Version 1.1

2. Generic Software, Spec Version 1.1 (default)

SOUND: OpenAL: SelectBestDevice is Generic Software 1.1

SOUND: OpenAL: Required device: Generic Software. Created device: Generic Software.

* sound: EAX 2.0 extension: absent

* sound: EAX 2.0 deferred: absent

* sound : cache: 65538 kb, 7609 lines, 8820 bpl

Starting RENDER device...

* GPU [vendor:1002]-[device:4150]: RADEON 9600 SERIES

* GPU driver: 6.14.10.6719

* CREATE: DeviceREF: 1

* Vertex Processor: PURE HARDWARE

* Texture memory: 301 M

* DDI-level: 9.0

* GPU shading: vs(fffe0200/2.0/20), ps(ffff0200/2.0/20)

* GPU vertex cache: unrecognized, 16

* DVB created: 1536K

* DIB created: 512K

count of .thm files=1

load time=1156 ms

* distortion: used, dev(20),need(14)

* SSample: 1024x768

* SSample: enabled

- r__tf_aniso 1

- r1_tf_mipbias 0.

Starting engine...

! Missing ogg-comment, file: c:\games\s.t.a.l.k.e.r\gamedata\sounds\material\dead-body\collide\hithard01hl.ogg

! Missing ogg-comment, file: c:\games\s.t.a.l.k.e.r\gamedata\sounds\material\dead-body\collide\hithard02hl.ogg

! Missing ogg-comment, file: c:\games\s.t.a.l.k.e.r\gamedata\sounds\material\dead-body\collide\hithard03hl.ogg

! Missing ogg-comment, file: c:\games\s.t.a.l.k.e.r\gamedata\sounds\material\dead-body\collide\hithard04hl.ogg

! Missing ogg-comment, file: c:\games\s.t.a.l.k.e.r\gamedata\sounds\material\actor\step\default1.ogg

! Missing ogg-comment, file: c:\games\s.t.a.l.k.e.r\gamedata\sounds\material\actor\step\default2.ogg

! Missing ogg-comment, file: c:\games\s.t.a.l.k.e.r\gamedata\sounds\material\actor\step\default3.ogg

! Missing ogg-comment, file: c:\games\s.t.a.l.k.e.r\gamedata\sounds\material\actor\step\default4.ogg

! Missing ogg-comment, file: c:\games\s.t.a.l.k.e.r\gamedata\sounds\material\actor\step\new_wood1.ogg

! Missing ogg-comment, file: c:\games\s.t.a.l.k.e.r\gamedata\sounds\material\actor\step\new_wood2.ogg

! Missing ogg-comment, file: c:\games\s.t.a.l.k.e.r\gamedata\sounds\material\actor\step\new_wood3.ogg

! Missing ogg-comment, file: c:\games\s.t.a.l.k.e.r\gamedata\sounds\material\actor\step\new_wood4.ogg

! Missing ogg-comment, file: c:\games\s.t.a.l.k.e.r\gamedata\sounds\material\actor\step\earth1.ogg

! Missing ogg-comment, file: c:\games\s.t.a.l.k.e.r\gamedata\sounds\material\actor\step\earth2.ogg

! Missing ogg-comment, file: c:\games\s.t.a.l.k.e.r\gamedata\sounds\material\actor\step\earth3.ogg

! Missing ogg-comment, file: c:\games\s.t.a.l.k.e.r\gamedata\sounds\material\actor\step\earth4.ogg

! Missing ogg-comment, file: c:\games\s.t.a.l.k.e.r\gamedata\sounds\material\actor\step\gravel1.ogg

! Missing ogg-comment, file: c:\games\s.t.a.l.k.e.r\gamedata\sounds\material\actor\step\gravel2.ogg

! Missing ogg-comment, file: c:\games\s.t.a.l.k.e.r\gamedata\sounds\material\actor\step\metal_plate1.ogg

! Missing ogg-comment, file: c:\games\s.t.a.l.k.e.r\gamedata\sounds\material\actor\step\metal_plate2.ogg

! Missing ogg-comment, file: c:\games\s.t.a.l.k.e.r\gamedata\sounds\material\actor\step\metal_plate3.ogg

! Missing ogg-comment, file: c:\games\s.t.a.l.k.e.r\gamedata\sounds\material\actor\step\metal_plate4.ogg

! Missing ogg-comment, file: c:\games\s.t.a.l.k.e.r\gamedata\sounds\material\actor\step\grass1.ogg

! Missing ogg-comment, file: c:\games\s.t.a.l.k.e.r\gamedata\sounds\material\actor\step\grass2.ogg

! Missing ogg-comment, file: c:\games\s.t.a.l.k.e.r\gamedata\sounds\material\actor\step\grass3.ogg

! Missing ogg-comment, file: c:\games\s.t.a.l.k.e.r\gamedata\sounds\material\actor\step\grass4.ogg

Loading DLL: xrGameSpy.dll

! Missing ogg-comment, file: c:\games\s.t.a.l.k.e.r\gamedata\sounds\characters_voice\scenario\video\intro_gsc_wp_r.ogg

* DVB created: 1536K

* DIB created: 512K

- r__tf_aniso 1

- r1_tf_mipbias 0.

* SSample: 1024x768

* SSample: enabled

* GPU shading: vs(fffe0200/2.0/20), ps(ffff0200/2.0/20)

* GPU vertex cache: unrecognized, 16

*** RESET [1452 ms]

"c:\games\s.t.a.l.k.e.r\bin\xr_3da.exe"

* phase time: 0 ms

* phase cmem: 103240 K

Кэширование объектов...

Loading objects...

Loading models...

* [prefetch] time: 408456 ms

* [prefetch] memory: 85553Kb

* phase time: 409533 ms

* phase cmem: 177937 K

Сервер: Старт...

* phase time: 151 ms

* phase cmem: 178151 K

Сервер: Загрузка симуляции жизни...

* phase time: 10 ms

* phase cmem: 178151 K

Создание новой игры...

* Creating new game...

* Loading spawn registry...

* 8641 spawn points are successfully loaded

* Saving spawns...

* Saving objects...

* 18254 objects are successfully saved

* Game all.sav is successfully saved to file 'c:\documents and settings\all users\Документы\stalker-shoc\savedgames\all.sav'

* New game is successfully created!

* phase time: 12222 ms

* phase cmem: 208818 K

Сервер: Соединяемся...

MaxPlayers = 32

* phase time: 43 ms

* phase cmem: 208818 K

Клиент: Соединение с localhost...

Player not found

* client : connection accepted - <>

* phase time: 29 ms

* phase cmem: 208842 K

Открытие потока...

* phase time: 19 ms

* phase cmem: 208842 K

Загрузка формы объектов...

* phase time: 12821 ms

* phase cmem: 281509 K

Загрузка шейдеров...

* phase time: 1413 ms

* phase cmem: 282595 K

Загрузка геометрии...

* [Loading VB] 65532 verts, 2047 Kb

* [Loading VB] 65525 verts, 2047 Kb

* [Loading VB] 65535 verts, 2047 Kb

* [Loading VB] 65466 verts, 2045 Kb

* [Loading VB] 17208 verts, 537 Kb

* [Loading VB] 65533 verts, 2047 Kb

* [Loading VB] 65534 verts, 2047 Kb

* [Loading VB] 65534 verts, 2047 Kb

* [Loading VB] 65531 verts, 2047 Kb

* [Loading VB] 65535 verts, 2047 Kb

* [Loading VB] 65535 verts, 2047 Kb

* [Loading VB] 46595 verts, 1456 Kb

* [Loading VB] 65534 verts, 2047 Kb

* [Loading VB] 65533 verts, 2047 Kb

* [Loading VB] 65535 verts, 2047 Kb

* [Loading VB] 65532 verts, 2047 Kb

* [Loading VB] 65533 verts, 2047 Kb

* [Loading VB] 65533 verts, 2047 Kb

* [Loading VB] 53181 verts, 1661 Kb

* [Loading IB] 1048575 indices, 2047 Kb

* [Loading IB] 1048572 indices, 2047 Kb

* [Loading IB] 1048572 indices, 2047 Kb

* [Loading IB] 1048572 indices, 2047 Kb

* [Loading IB] 1048572 indices, 2047 Kb

* [Loading IB] 1048572 indices, 2047 Kb

* [Loading IB] 1048575 indices, 2047 Kb

* [Loading IB] 1048572 indices, 2047 Kb

* [Loading IB] 1048575 indices, 2047 Kb

* [Loading IB] 228285 indices, 445 Kb

* phase time: 3959 ms

* phase cmem: 282999 K

Загрузка базы пространств...

* phase time: 4160 ms

* phase cmem: 286870 K

Загрузка детальных объектов...

* [DETAILS] VertexConsts(256), Batch(61)

* [DETAILS] 40687 v(20), 26352 p

* [DETAILS] Batch(61), VB(794K), IB(154K)

* phase time: 175 ms

* phase cmem: 286896 K

Загрузка секторов и порталов...

* Loading HOM: c:\games\s.t.a.l.k.e.r\gamedata\levels\l01_escape\level.hom

* phase time: 56 ms

* phase cmem: 287070 K

Загрузка ИИ объектов...

! Missing ogg-comment, file: c:\games\s.t.a.l.k.e.r\gamedata\sounds\scripts\magnitofon\magnitofon_2.ogg

- Loading music tracks from 'l01_escape_musics'...

* phase time: 205 ms

* phase cmem: 287107 K

Клиент: Создание...

- Game configuring : Started

- Game configuring : Finished

* phase time: 2097 ms

* phase cmem: 295479 K

Загрузка текстур...

* t-report - base: 914, 118378 K

* t-report - lmap: 10, 10241 K

***FATAL***: Too many lmap-textures (limit: 8 textures or 32M).

Reduce pixel density (worse) or use more vertex lighting (better).

* phase time: 17106 ms

* phase cmem: 295479 K

Клиент: Синхронизация...

* phase time: 320 ms

* phase cmem: 295479 K

* [win32]: free[1240504 K], reserved[143960 K], committed[712624 K]

* [ D3D ]: textures[128619 K]

* [x-ray]: crt heap[295479 K], process heap[254679 K], game lua[25982 K], engine lua[230 K], render[0 K]

* [x-ray]: economy: strings[4295 K], smem[28221 K]

Intro start 334

* MEMORY USAGE: 317286 K

 

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: ...:\games\s.t.a.l.k.e.r\gamedata\scripts\xr_box.script:112: attempt to index field '?' (a nil value)

 

 

stack trace:

 

 

 

 

ошибка такая же как была у "_Sniper_" но разница в том что до ящиков я даже не доходил...

 

я так сказать пока новичек, но целеустремленный, так что не ругайтесь)))

вообщем прошу всех кто может - помочь...

Изменено пользователем Mega-Max
Ссылка на комментарий
panzyuza, ну вообще я код не менял. Этот контролер у меня был в моде и при переносе я ничего не изменил. У меня при убийстве этого контролера должно выполнится задание, но оно не выполняется.

К20

Ссылка на комментарий

Starter

local all_pstor_keeper = {
    ["l01_escape"] = {
. . .
    },
    ["predbannik"] = {
        [1] = {
            section_key = "hanging_lamp",
            pos_x = 91.98,
            pos_y = 3.53,
            pos_z = -64.79,
            id = nil
        },
. . .
}}

function find_keeper(position, key_find)
for b = 0, 65534 do
    local obj = level.object_by_id(b)
    if obj and (db.storage[b] ~= nil) then
    local sec = obj:section()
    if sec then
    if string.find(sec, key_find) then
        local v = obj:position()
        if v:distance_to(position) < 1 then
            return b
        end
    end
    end
    end
end
return nil
--- возвращает ID хранителя
end

 

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий

Возник такой вопрос.

На локации есть аномалия (любая), заспавненная через all.spawn.

Есть ли возможность проследить, сработала ли эта аномалия хотя бы один раз и, если сработала, удалить ее с локации? Подскажите, хотя бы, в какую сторону рыть?

Пробовал мод "Нейтрализатор аномалий" из Раритетов, но там немного не то, точнее, совсем не то. Аномалия просто нейтрализуется (obj:disable_anomaly()) до следующей загрузки уровня, после загрузки - она опять на своем месте, а мне надо ее полностью удалить из игры.

 

Уточню немного - главный вопрос в том можно ли проследить, сработала аномалия хотя бы один раз или нет.

Изменено пользователем Marafon6540
Ссылка на комментарий
Marafon6540, аномалию нужно удалить из алл. спавна, замерь координаты по ближе к центру аномалии, и ориентируйся по ним, когда будешь искать секцию аномалии, если будешь удалять не забывай про номер секии, лучше ее заменить самой последней секцией, а секцию которой будешь заменять удали. Я так делаю может, кто-то знает способ по лучше.
Ссылка на комментарий

Какую логику нужно прописать в схеме walker, чтобы НПС бежал в панике в определённую точку, как Стрелок в ЧН? Мне кажется, дело в этих строках:

def_state_moving1 = run
def_state_moving2 = run
def_state_moving3 = run

Только при таких настройках он передвигается лёгким бегом, а мне нужно, чтобы бежал, как угорелый (извиняюсь за выражение). Заранее спасибо за помощь.

Ссылка на комментарий
Sany@Prizrak, нужно в настройке точки пути, в all.spawn, после имени точки типа name00 поставить |a=sprint Изменено пользователем KitkaT.Net

Ничто не вечно под луной.

Ссылка на комментарий

wikreznow, перечитай пост.

Marafon6540, общего _хорошего_ решения нет. С аномалиями вообще сильно не разгуляешься. По конкретно твоей проблеме - можно глянуть в сторону метода inside() класса game_object. Сигнатура функции такая: bool inside(const vector& position) const, position - координаты, которые проверяются на вхождение в аномалию. Метода примерно такая: в апдейт аномалии ставишь вызов этой функции для координат нужных объектов, если inside начинает возвращать true, взводишь какой-нибудь флажок, переводишь аномалию в оффлайн и удаляешь, как обычно удаляют аномалии. Естественно, если проверяемых объектов много, такая проверка будет тормозить. Но если задача проверить чисто попадание актора в аномалию - почему бы и нет.

Ссылка на комментарий

По аномалиям:

Исходный вопрос от Marafon6540 имеет два подвопроса (как я понял):

1. главный вопрос в том можно ли проследить, сработала аномалия хотя бы один раз или нет.

2. надо ее полностью удалить из игры

Если по второму варианты решений есть, то по главному вомпросу однозначностей нет.

Во-первых, все методы типа callback.zone_enter или inside() все же дают результат по геометрии, т.е. "есть ли в зоне аномалии некий об'ект или нет", но срабатывание аномалии хотя и завязано тоже на геометрии, но не "как-только попал в зону" - не зря же существует "эффективный радиус", да и вспомним, бросив иной предмет - можно заставить сработать аномалию, не входя в нее ...

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

 

Наверное общего решения нет, а на вскидку, более подойдет коллбек на хит, по которому можно определить аномалия ли сработала и нанесла хит - и уже далее манипулировать с нею. Так что требуется сузить условия "срабатывания" (вообще иль при попадание кого-то в нее) и тогда по нему подбирать приемлемые методы.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий
_Призрак_, malandrinus как-то писал, что колбек работает только для ce_script_zone. Я и не стал предлагать :) А что, для аномалий работает? Изменено пользователем KD87
Ссылка на комментарий
KD87, прав malandrinus ... для аномалий в игре (со штатным движком) этот коллбэк не работает.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Но ведь нередки и случаи (особенно с актором) - когда аномалия сработала, но хита никому не нанесла.

К примеру карусель/мясорубку можно активировать и вырваться до завершения "закрутки" - аномалия сработает как полагается но никому вреда не нанесет.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий

Друзья, спасибо, что откликнулись на мой вопрос.

Оптимальным решением будет подсказка камрада Artos'a

коллбек на хит, по которому можно определить аномалия ли сработала и нанесла хит
и практически такой же совет дал камрад Charsi мне в личке.

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

Увы, но такое решение пока для меня очень сложно (в плане написания подобного скрипта). Я надеялся на более простой вариант. Придется придумывать какой-то другой путь. ;)

Ссылка на комментарий

У меня такой вопрос:

Как сделать чтобы при взрыве гранаты (ручной\ подствольной\ракетной боеголовки) выделялась радиация и оставалась там некоторое время (не исчезала быстро)???

32481252.f.500.500.jpg
Ссылка на комментарий

Marafon6540 (и др.) - настоятельно рекомендую прочитать (если еще не читали) давний мануальчик: "Как правильно задавать вопросы" и в частности про "Описывайте цель, а не отдельный шаг" - тогда пользы будет больше, а времени теряться меньше ...

Описывайте цель, а не отдельный шаг

Если вы пытаетесь разобраться, как что-либо сделать (а не сообщаете об ошибке), начинайте с описания цели. И только потом описывайте конкретный шаг на пути к ней, который вы не смогли выполнить.

 

Зачастую люди, которым необходима техническая помощь, имеют на уме высокоуровневую цель и привязываются к одному из возможных, по их мнению, путей ее достижения. Они просят помочь выполнить один шаг, не отдавая себе отчета в том, что выбрали неверный путь. Чтобы разобраться в этом, может потребоваться много усилий.

 

Глупо:

Как заставить диалог выбора цвета в программе FooDraw воспринимать шестнадцатеричное RGB-значение?

 

Разумно:

Я пытаюсь заменить таблицу цветов в изображении нужными мне значениями. Сейчас я вижу только один способ сделать это - редактируя каждый слот таблицы, но я не могу задать шестнадцатеричное RGB-значение в диалоге выбора цвета программы FooDraw.

 

Вторая версия вопроса - разумна. Она позволяет получить ответ, в котором будет предложено средство, более подходящее для решения задачи.

 

 

В твоем же вопросе вообще нет конкретики ...

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

Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Приветствую!

Можно ли выдать определенную инфо_порцию при атаке определенного вида монстра?

Пример:

Атакует нас boar_weak и/или flesh_normal выдается порция под названием хх_name.

 

Что хочу увидеть?

Хотелось бы добавить эффектов после атак некоторых монстров.

Artos Спасибо.

Изменено пользователем amik

Мой архив

Сталкером не занимаюсь.

Ссылка на комментарий

amik, выдать то любой инфопоршень можно, но совершенно непонятно зачем пытаться использовать инфопоршни в твоем случае? (прочти мой предыдущий пост).

Инфопоршень удобен и востребован тогда, когда наступило некое событие и чтобы при создании сохранения игры факт наступления события восстановился - используется или инфопоршень или, например, запоминание в pstor. Во всех иных случаях вполне достаточно локальных/глабальных переменных.

В твоем же случае наоборот, запоминать НЕ нужно, т.к. атака - это онлайновая схема логики и при рестарте игры (из сэйва) эта схема изначально не активна, т.е. твой атаковавший монстр изначально не атакует. Т.о. ты получишь ситуацию - монстр не атакует, а инфопоршень говорит об "атаке" ...

Да и представь себе сколько инфопоршней может быть из комбинаций всяческий "видов монстров"? Десятки-сотни ... и все их собираешься перебирать?

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

Примеры определения атаки определенного класса/вида монстров в модах достаточно. Вспомни атаки собак, электро-химеры иль контролера из АМК-мода. Вот по аналогии и выбирай своих "некоторых монстров" и пляши от этого, а не от инфопоршней.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

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

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