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

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

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









Автор Сообщение
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
07-06-2011 14:11 GMT3 час. #1488503   
Artos

- т.е. заставив вложеное условие/цикл не только чистить, но и корректировать
Не спорю, в моём примере мы не избавляемся от проверок не существующих индексов. Я лишь привёл пример, который опровергает первоначальное твоё выражение:

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


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
stalker_aGG---
    
Посты: 13
Откуда:
Возраст:
07-06-2011 14:26 GMT3 час. #1488513   

# Strchi :
stalker_aGG--- game.graph либо не создан либо портаченый...
создай или пересоздай геймграф

Гейм граф есть я когда из Ле[Level editor] уровень вытошил тот гейм граф обьеденил с графом из ориганала тоесть мой из моего грава в оригиналльный граф вставил свой левл а он вот это пигшет когда на уровень новый загружает
Expression : cross_table().header().game_guid() == game_graph().header().guid()
Function : CAI_Space::load
File : E:\stalker\patch_1_0004\xr_3da\xrGame\ai_space.cpp
Line : 121
Description : graph doesn't correspond to the cross table

Люди кто знает помогите пожалусто!


Не отпушу, стой догоню :):-G
Comador
    
Посты: 248
Откуда:
Возраст:
07-06-2011 14:34 GMT3 час. #1488518   
stalker_aGG--- , вот цитата с другого форума

[error]Description : graph doesn't correspond to the cross table
Забыл скопировать в свою геймдату файлы уровней level.gct из levels.


Не столь важно что ты делаешь, важно как ты это делаешь! (Джимми Лансфорд)
Artos
    
Посты: 4176
Откуда:
Возраст: 65
07-06-2011 14:40 GMT3 час. #1488523   
singapur22
Мы, конечно, уже немного в тавто**5001618d69873ce82a42** table.remove(tbl, i)
end
[/code] все одно является циклом с прерыванием (по условию), т.е. 'удаляем один иль несколько -> прерываем' :-P


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
serega_zombi_stalker
    
Посты: 49
Откуда: Омутсити
Возраст: 26
07-06-2011 15:08 GMT3 час. #1488545   
Делал нового непися по статейке

Создание НПС

Для того, чтобы создать нового НПС нам понадобятся координаты нужного места, где и будет заспаунен наш NPC. Возьмём Кордон, лагерь новичков. Можете снять координаты сами, а можете взять мною уже снятые: (-218.20,-20.2,-145.63),35362,47). Далее. Создаём файл в папке gamedata/scripts файл, скажем esc_unik_npc.script. В нём создаём функцию. Код: function esc_unik_npc () alife():create("esc_unik_npc",vector():set(-218.20,-20.2,-145.63),35362,47) end

Теперь мы в файле npc_profile.xml (в папке gameplay) добавляем нашего НПС. Код: Trader escape_trader

esc_unik_npc esc_unik_npc

Копируем или создаём по образцу только нижний блок Второго торговца нам ненадо. Теперь моздадим секцию нашего персоонажа. В файле spawn_section.ltx (gamedata/config/creatures) в блоке:

--------Escape--------------
--------neutrals------------

Создаём секцию. Код: [esc_unik_npc]:stalker $spawn = "respawn\esc_unik_npc" character_profile = esc_unik_npc spec_rank = regular community = dolg

В строке community можете вместо долга вписать другую группировку. Однако если мы хотим, чтоба наш персоонаж не гулял по Зоне, пока не наткнётся на первуюю аномалию, то пропишем чтобы он стоял на месте. Для этого под community вставляем: custom_data = scripts\esc_unik_npc.ltx Далее создаём в gamedata/config папку scripts в в папке создаём файл esc_unik_npc.ltx В наш созданый файл вставляем: Код: [logic] active = remark1 danger = danger_ignore

[danger_ignore] ignore_distance = 5

[remark1] no_move = true

Всё наш НПС будет стоять на месте своего спауна. Едем дальше. Нам надо активировать нашего персоонажа. для этого мы должны вставить строку: esc_unik_npc.esc_unik_npc Либо в диалог, либо в какой-нибудь квест. Давайте вставим строку в файл info_portions.xml (gamedata/gameplay) под Код:


storyline_eliminate_gunslinger

Выклядеть это будет так:

Код:


storyline_eliminate_gunslinger
esc_unik_npc.esc_unik_npc


Однако мы не прописали самого НПС, как личность В файле character_desc_escape.xml (gamedata/gameplay) добавляем: Код: GENERATE_NAME_bandit ui_npc_u_stalker_bandit_3 esc_wolf_bio

esc_otbrosi_1 dolg stalker_terrain

367 -60

characters_voice\human_01\monolith\ -1

actors\bandit\stalker_bandit_3 [spawn] \n

wpn_groza \n

ammo_9x39_pab9 \n

1. include "gameplay\character_items.xml" \n
2. include "gameplay\character_food.xml"



1. include "gameplay\character_criticals_3.xml"

1. include "gameplay\character_dialogs.xml"



Правда тут получится у нас долговец в одежде бандита и говорящего голосом монолитовца xD Всё сохроняем. НПС готов.

Но так же можно добавить нашему НПС диалог) Как добавлять диалоги написано в нашем факе) Если хотяте сделать нашему НПС своё имя то в файле stable_bio_name.xml (gamedata/config/text/rus) добавляем: Код: Факер-мазафакер

А в файле сharacter_desc_escape.xml (gamedata/gameplay) находим нашего уже прописаного НПС и вставляем в секцию (у нас в ней написано GENERATE_NAME_bandit) esc_unik_npc Всё Поздравляю)









И получил вылет
Expression : fatal error
Function : CInifile::r_section
File : E:\stalker\patch_1_0004\xrCore\Xr_ini.cpp
Line : 342
Description :
Arguments : Can't open section '1. include "gameplay\character_items.xml"'


Че за чуш???? и как это исправить?


1. Вы сейчас в интернете
2. Вы на сайте stalker-portal
3. Вы читаете
5. Вы не заметили, что отсутствует пункт 4
6. Вы это проверили
7. Вы улыбаетесь
8. Поставь себе в подпись и нас будет больше
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
07-06-2011 15:25 GMT3 час. #1488556   
Artos Ну в данном случае оператор while используется не как итератор, а как зацикленное условие. Так что, выражение "циклом с прерыванием", пусть даже по условию, не особо подходит. Основным здесь всётаки является первый итератор (оператор for).

Кстати, попытался произвести подобную операцию с использованием функции ipairs(). Положительных результатов, так и не смог добиться.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Artos
    
Посты: 4176
Откуда:
Возраст: 65
07-06-2011 15:28 GMT3 час. #1488560   
serega_zombi_stalker
'Чушь' в том, что вместо понимания того, что написано в статьях/уроках многие тупо копипастят коды, не удосуживаясь шевелить извилинами.
Все основная масса статей/уроков и пр. писаны не преподавателями иль профессорами, а такими же кодоковырялкинами ... и требуют перепроверок.
Также стОит иметь элементарные понятия о кодах и логах.
ПОвторюсь:

1. для выкладки кодов, помимо спойлера, стОит использовать тэги [cоde], дабы не искажать ни сами коды, ни форматирование.
2. Читая статьи/уроки иль прочее ... стОит все же и понимать написанное, дабы и ошибки, про(до)пущенные авторами исправлять.
и добавлю, раз повторно постится статья с переформатированием:
3. Первоисточник следует или цитировать с сохранением смысла и формата или давать ссылку, дабы не гадать по поводу возможных искажений при неумелом цитировании вопрошающего.

К сути: Читаем в статье:
Код:

  ...
  actors\bandit\stalker_bandit_3
 
    [spawn] \n
      wpn_groza \n
      ammo_9x39_pab9 \n
1. include "gameplay\character_items.xml" \n
2. include "gameplay\character_food.xml"
 


1. include "gameplay\character_criticals_3.xml"
1. include "gameplay\character_dialogs.xml"



Цветом выделено недопустимое для xml-конфигов.
Включения выполняются оператором '#include', т.е. указанный фрагмент кода должен иметь вид:


  ...
  actors\bandit\stalker_bandit_3
 
    [spawn] \n
      wpn_groza \n
      ammo_9x39_pab9 \n
#include "gameplay\character_items.xml" \n
#include "gameplay\character_food.xml"
 


#include "gameplay\character_criticals_3.xml"
#include "gameplay\character_dialogs.xml"




singapur22
'ipairs' работает с изначально полученными индексами, т.е. объем таблицы 'измеряется' в начале цикла и далее ни размер таблицы ни индексы не корректируются, хотя поля, соответствующие индексам могут удаляться/изменяться в самом цикле. Поэтому и 'не выходит'.

отредактировал(а) Artos: 07-06-2011 15:45 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
serega_zombi_stalker
    
Посты: 49
Откуда: Омутсити
Возраст: 26
07-06-2011 16:05 GMT3 час. #1488577   
Artos спс, мне кстати тоже ети цифри непонравились)) а статья и была в таком виде! приходилось самомоу по блокам распихивать! А еще игра норм включилась, Там где должен появится новый непись никого небыло, прошел АТП взял спец у сидора-серовно никого нет. Что сделать чтоб он спавнился после АТП???


1. Вы сейчас в интернете
2. Вы на сайте stalker-portal
3. Вы читаете
5. Вы не заметили, что отсутствует пункт 4
6. Вы это проверили
7. Вы улыбаетесь
8. Поставь себе в подпись и нас будет больше
Struck
    
Посты: 1946
Откуда:
Возраст:
07-06-2011 16:08 GMT3 час. #1488580   
serega_zombi_stalker проверять наличие инфопоршня о завершении квеста на АТП, и если он есть то проверить не заспавнили ли мы его уже, и если нет то спавним


Снова в строю.

l
serega_zombi_stalker
    
Посты: 49
Откуда: Омутсити
Возраст: 26
07-06-2011 16:21 GMT3 час. #1488587   
гы......можно по проще?))) Я так понел esc_unik_npc.esc_unik_npc это и есть вызов спавна?


1. Вы сейчас в интернете
2. Вы на сайте stalker-portal
3. Вы читаете
5. Вы не заметили, что отсутствует пункт 4
6. Вы это проверили
7. Вы улыбаетесь
8. Поставь себе в подпись и нас будет больше
Struck
    
Посты: 1946
Откуда:
Возраст:
07-06-2011 16:24 GMT3 час. #1488592   
serega_zombi_stalker в xml файлах, лучше сделать скриптом и вызывать в net_spawn, и сохраняй в пстор когда заспавнишь своего НПС чтобы он уже 100% не заспавнился дважды


Снова в строю.

l
killer2203
    
Посты: 54
Откуда:
Возраст: 26
07-06-2011 17:11 GMT3 час. #1488639   
Struck Думаю он просто не может заспавнить своего НПС...


да, да, да!
serega_zombi_stalker
    
Посты: 49
Откуда: Омутсити
Возраст: 26
07-06-2011 17:17 GMT3 час. #1488642   
Ну зоть кто то догадался! Struck- я просто спросил как заспавнить моего непися через диалог с сидором...но незнаю что прописать


1. Вы сейчас в интернете
2. Вы на сайте stalker-portal
3. Вы читаете
5. Вы не заметили, что отсутствует пункт 4
6. Вы это проверили
7. Вы улыбаетесь
8. Поставь себе в подпись и нас будет больше
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
07-06-2011 17:18 GMT3 час. #1488643   

# singapur22 :
Кстати, попытался произвести подобную операцию с использованием функции ipairs(). Полож**5001618d69873ce82a42** tbl[k] == 55 do
table.remove(tbl, k)
end
end

for i=1,#tbl do
print(tbl)
end
[/code]
Цикл for k in ipairs(tbl) do отрабатывает всего 8 раз, а не по изначальной длине таблицы в отличии от for i=1, #tbl do (16 раз).
Или я не понял о чём речь?


Struck
Извини. Ни фи.. чего не понял. Ещё конкретнее, плз, что ты хочешь. Т.е. подробнее.

отредактировал(а) Gun12: 07-06-2011 17:42 GMT3 час.

Не стань номинантом премии Дарвина.
Struck
    
Посты: 1946
Откуда:
Возраст:
07-06-2011 17:30 GMT3 час. #1488655   
Как получить из таблицы значения по**50036ea8aab1bb10eeba**]local tbl = {1,2,3,4,5,6}[/code]

Как из неё получить в переменную эти числа по порядку?(Т.е. перебираем таблицу, и выводим числа по порядку в какую-нибудь переменную)


Снова в строю.

l
Artos
    
Посты: 4176
Откуда:
Возраст: 65
07-06-2011 17:51 GMT3 час. #1488693   
Struck
Чуть выше как раз и приведен ко

отредактировал(а) Artos: 07-06-2011 18:14 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Struck
    
Посты: 1946
Откуда:
Возраст:
07-06-2011 17:52 GMT3 час. #1488696   
Artos мне надо не напечатать а просто получить, печатать я их буду потом


Снова в строю.

l
Artos
    
Посты: 4176
Откуда:
Возраст: 65
07-06-2011 17:56 GMT3 час. #1488698   
Struck
А я и не заставляю тебя печатать, а даю только метод/способ получения значения поля (v) из таблицы.
Неужели сложно самому додуматься, что если тебе потребно присвоить это значение - то и присваивай вместо печати в лог, заменив на 'свое':
  printf(tbl[k]) -> local my_variable = tbl[k]
  printf(v) -> local my_variable = v ... иль что-то иное

(учи азы!)


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
07-06-2011 18:16 GMT3 час. #1488710   
Gun12

Цикл for k in ipairs(tbl) do отрабатывает всего 8 раз, а не по изначальной длине таблицы в отличии от for i=1, #tbl do (16 раз).
Хм. Прикольно. Вот и решение. Прикольно то, что если использовать два ключа:
for k, v in ipairs(tbl) do
И производить проверку не с tbl[k], а со вторым ключом: v == 55, то вообще получаем бесконечный цикл.
Оно собственно и правильно, так и должно быть. А вот сверка с tbl[k] как раз то, что и нужно было, при использовании функции ipairs(tbl). И даже, я бы сказал будет лучшей версией кода, по сравнению с предложеным мной, так как не производит итерацию по не существующим индексам, поэтому и получил 8 циклов, вместо 16'ти.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
serega_zombi_stalker
    
Посты: 49
Откуда: Омутсити
Возраст: 26
07-06-2011 18:18 GMT3 час. #1488713   
Да как заспавнить этого долбаного НПС?!! Я уже свой миниатюрный мозг вынес!


1. Вы сейчас в интернете
2. Вы на сайте stalker-portal
3. Вы читаете
5. Вы не заметили, что отсутствует пункт 4
6. Вы это проверили
7. Вы улыбаетесь
8. Поставь себе в подпись и нас будет больше
Artos
    
Посты: 4176
Откуда:
Возраст: 65
07-06-2011 18:34 GMT3 час. #1488722   
serega_zombi_stalker
Может быть первоначально направить остатки твоего 'миниатюрного мозга' на:
  а) соблюдение элементарных правил грамматики и общения?! Твои 'чушь, долбаные' и прочие "взрослости" только отвращают от общения с тобою.
  б) на чтение ФАКа и статей. Или ты ждешь что кто-то в сотый раз персонально тебе будет разжевывать уже перетертое до состояния пюре и кормить с ложечки?
Захотелось сделать самому - так и делай САМ, а не канючь, чтобы это сделали за тебя ...


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
killer2203
    
Посты: 54
Откуда:
Возраст: 26
07-06-2011 18:41 GMT3 час. #1488725   
Подскажите плиз, где хранятся вырезанные и тюнингованные броники? Просто в outfit.ltx только обычные, а брони типа "бандитский комбез с кальчугой" и прочих там нету.


да, да, да!
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
07-06-2011 18:44 GMT3 час. #1488727   

# singapur22 :...поэтому и получил 8 циклов, вместо 16'ти.


Да я знаю почему получил 8 вместо 16-ти :-)
К этому-то и стремился.
Кстати, хотел тебе сказать - молодец.
Хорошее решение придумал с этим удалением.

отредактировал(а) Gun12: 07-06-2011 18:53 GMT3 час.

Не стань номинантом премии Дарвина.
serega_zombi_stalker
    
Посты: 49
Откуда: Омутсити
Возраст: 26
07-06-2011 18:46 GMT3 час. #1488728   
Artos Просто я спавню НПС первый раз! и в модмейкерстве я нуб! еслиб я был опытней-я бы недостовал вас одним вопросом несколько раз!


1. Вы сейчас в интернете
2. Вы на сайте stalker-portal
3. Вы читаете
5. Вы не заметили, что отсутствует пункт 4
6. Вы это проверили
7. Вы улыбаетесь
8. Поставь себе в подпись и нас будет больше
Struck
    
Посты: 1946
Откуда:
Возраст:
07-06-2011 19:09 GMT3 час. #1488743   
killer2203 unique_items.ltx или как то так


Снова в строю.

l
Artos
    
Посты: 4176
Откуда:
Возраст: 65
07-06-2011 19:10 GMT3 час. #1488745   
serega_zombi_stalker
Судя по тому, что после твоих 'добавок' игра у тебя не вылетает - значит не все потеряно. :-)
Возможны**5007618d69873ce82a42**e]function esc_unik_npc()
alife():create("esc_unik_npc",vector():set(-218.20,-20.2,-145.63),35362,47)
end[/code] например, в конец файла 'escape_dialog.script' и поменяй вызов в диалоге на:
  escape_dialog.esc_unik_npc

Если опять не будет вылета игры и не будет заспавнен непись - перепроверяй все что сделал ...

Примечание: 'НУБ' - это не оправдание, а диагноз, с которым НЕ следует заниматься тем, в чем 'нуб'.


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Struck
    
Посты: 1946
Откуда:
Возраст:
07-06-2011 19:12 GMT3 час. #1488746   
serega_zombi_stalker если ты "нуб", то иди на сталкерский вики, там куча статей по разным сферам модостроя, или здесь в шапке есть копка "F.A.Q.", вот на неё кликай и тоже найдешь несколько полезных вещей.


Снова в строю.

l
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
07-06-2011 19:13 GMT3 час. #1488747   
Gun12 И тебе респект, за правильное решение с функцией ipairs(). :victory


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Struck
    
Посты: 1946
Откуда:
Возраст:
07-06-2011 19:16 GMT3 час. #1488748   
singapur22 мне нужно из таблицы получить значения именно по порядку что бы их вывести в список(листбокс).


Снова в строю.

l
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
07-06-2011 19:19 GMT3 час. #1488750   
Struck Чтобы получить значения из таблицы, в нужном тебе порядке, имеется специальная для того функция:
table.sort(tbl [, условия сортировки])
Используй её перед итерацией таблицы.
Как настраивать условия сортировки, читай в справочниках по Луа.

P.S. Сортировку таблиц обсуждали на предыдущих страницах данного топика.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.


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


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

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