Автор Сообщение
Посты: 2089
Откуда:
05-06-2011 14:11 GMT3 час. #1487517   
Struck Чёт ты наворотил, непонятно что.
Первое. Это чё за лабуда? Что она должна по твоему делать?
ui_contacts("GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG")
По сути, вроде как вызов функции с передачей в неё аргумента, ввиде текста. Но функции как таковой я не заметил.
Второе. У тебя установлено множество кнопок, но ни одна не имеет функции, которая должна вызываться. Точнее они есть, но прописаны опять же неизвестно откуда взявшемся классе ui_contacts.
И наконец третье. Я так понимаю, что текст должен выводиться в виджете self.b. Но я лично не заметил, что ты вообще к нему обращаешся во время дабл-клика списка. (обратил внимание, что на список установлен только колбэк даб-клика, по которому метод :clicked() и вызывается)
А вместо этого вызываешь непонятно что см. п. 1


Посты: 1946
Откуда:
05-06-2011 14:26 GMT3 час. #1487525   
singapur22 а как текст то правильно вызвать,и как заставить complex mode работать?(ф-ию поправил)


Посты: 2089
Откуда:
05-06-2011 14:30 GMT3 час. #1487529   
Struck Тебе нужно, чтобы в виджете вывелся определённый текст?! Так бери и выводи. Какой метод отвечает за вывод текста?
self.b:SetText(n) --Вот этот метод за что отвечает? За вывод указанного текста в указанном виджете, или за вывоз мусора с твоего двора?
Чёрт, так и придётся всё делать за тебя. :-(

Для справки. Метод вывода текста в элементе окна:
widget:SetText(text)
Где:
widget -- виджет (элемент окна), в котором должен отобразиться текст
SetText -- метод установки текста
text -- текст который должен отобразиться.
Чтобы текст выводился не в одну строчку, а в режиме мультиплекса, нужно в xml-тэге данного виджета установить аргумент complex_mode="1"

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

отредактировал(а) singapur22: 05-06-2011 14:40 GMT3 час.

Посты: 1946
Откуда:
05-06-2011 14:35 GMT3 час. #1487531   
singapur22 за вывод указанного текста в указанном виджете(под словом виджет я имею ввиду второй фрейм), но вот сейчас у меня complex mode не работает, то есть придется кучу статиков писать если продолжать в этом направлении


Посты: 2089
Откуда:
05-06-2011 14:50 GMT3 час. #1487551   
Struck Кстати. система complex_mode, не ломает слова, а переносит последнее слово на новую строку, если оно уже не влезает на текущую. Тоесть, предложение "ggggggg gggggggg ggggggggg gggggggg gggggggg ggggg" будет работать в полной мере, а вот "gggggggggggggggggggg" уже не будет переноситься, так как является одним словом.


Посты: 1946
Откуда:
05-06-2011 15:01 GMT3 час. #1487562   
singapur22 ясно, сейчас посмотрю, а текст то как правильно вызывать?


Посты: 2089
Откуда:
05-06-2011 15:01 GMT3 час. #1487564   
Struck откуда? Из string_table? Имеется два способа.
Первый: widget:SetText(game.translate_string(id_text))
Второй: widget:SetTextST(id_text)
Где, id_text -- айди тэга в string_table


Посты: 1946
Откуда:
05-06-2011 15:03 GMT3 час. #1487565   
ну ты голова, разбитая на слова строка переносится, с этим проблема решена, теперь расскажи как текст вызывать, ну в SetText как вставить правильно?...я вроде бы вызывал но у меня кроме моего типса ничего не выпадало


Посты: 3
Откуда:
05-06-2011 15:04 GMT3 час. #1487568   

# Struck :
BIGoff на модели подствольника нет => его нельзя ставить без редактирования самой модели


ну тогда подскажи мож у кого модель есть ,что ни кому не хотелось на винторез поставить подствольник полюбой кто нибудь уже сделал это ,откликнитесь.....


Посты: 2089
Откуда:
05-06-2011 15:09 GMT3 час. #1487574   
BIGoff А может ты подствольник ещё и на биноколь подставишь?! А можно и на ножик. А если ещё и прицел к ножику присандалить, ваще предел всех мечтаний будет. :-)
ИМХО, бессмыслено и не рационально.

Struck Смотри предыдущий пост.


Посты: 1946
Откуда:
05-06-2011 15:35 GMT3 час. #1487589   
singapur22 так, ну я же буду это вызывать в других функциях...то есть сам вызов, или писать кучу статиков для каждого текста?

То бишь "шаблон" для текста у меня в InitControls(), а вызывать я буду его где нибудь в blabla()


Посты: 4176
Откуда:
05-06-2011 16:08 GMT3 час. #1487601   
Struck
Как ты до сих пор не можешь понять что, имея в одном окне листинг и выбирая в нем некий элемент - во второе окно, которое организовано с учетом переноса длинного текста, ты отображаешь текст, соответствующий выбранному?!
На кой леший ты насоздавал кучу кнопочек, имея листинг? Весь список(листинг) с твоими 1...9 обрабатывается (должен, но ты не заполнил листинг) одной 'ui_events.LIST_ITEM_CLICKED', из которой тебе всего лишь требуется определить идентификатор выбранного элемента списка и отобразить во втором окне соответствующий ему текст описания.
И даже имея десяток пимпочек (зачем тогда листинг?), ты также можешь по 'ui_events.BUTTON_CLICKED' выводить во второе окно текст, соответствующий нажатой кнопке.
О каких 'кучу статиков' ты ведешь речь? Почисти мозги от мусора! Второе окно - ОДНО и в нем всего лишь ОДИН 'статик' и в этот 'статик' ты и выводишь нужный текст.
Имея пульт от TV и сам телевизор - ты для переключения каналов хочешь иметь несколько экранов? :-)


Посты: 1946
Откуда:
05-06-2011 16:36 GMT3 час. #1487604   
Artos десяток "пимпочек" я создал на дальнейшее и


Посты: 4176
Откуда:
05-06-2011 16:54 GMT3 час. #1487609   
Struck
На будущее:
Когда кто-то, называя себя дураком/нубом/ламером, просит объяснить - я закругляю диалог.
Если человек сам себя считает таковым - то нет смысла тратить время на объяснения, которые 'дураку' не по 'уму'.
Если это 'фраза речи', то ... унижая/принижая по сути себя, тем же самым унижается и собеседник, 'опустившийся' до толкований для с 'дурака'.
...
Ты создал кучу пимпочек (на будущее), но неудосужился создать элементы самого листинг, которые, помимо собственно отображения текста в листинге, и должны (при их выборе) отображать нужный текст в некоем втором окне.
Мы возвращаемся к позавчерашнему, когда тебе дан был код листинга с локациями и собственно функции ("свои") для работы с элементами листинга. Тебе всего лишь нужно адаптировать код 'под себя' и функцию обработки элементов листинга переделать под вывод текста во второе окно.
Пока ты не сделаешь эту функцию обработки элементов листинга с выводом текста во второе окно - ты будешь продолжать свои мытарства.


Посты: 1946
Откуда:
05-06-2011 17:11 GMT3 час. #1487614   
Artos О ура, я допытался...теперь у меня текст выводится, но не универсально, получается так что я для каждого пишу отдельный статик, ну хоть как то "через ж", раз на другое ума не хватает

по сути меняю только тексты, но как вызывать SetText я так и не понял

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

Посты: 2581
Откуда:
06-06-2011 01:18 GMT3 час. #1487789   
а как сделать второй обьект на небе типо луны или солнца? (Точней я хочу сделать таким способом типо северного сияния) как в книгах предвестники выброса! но лучше партиклы!


Посты: 773
Откуда:
06-06-2011 03:18 GMT3 час. #1487800   
Когда-то где-то обещал написать для новичков про "ООП на пальцах". Говорят обещанного три года ждут. Я не стал тянуть весь срок и решил сделать это немного раньше =)

Всё описанное ниже приводится в контексте "чистого" Lua, поэтому кому не интересно - дальше можете не читать.

И раз уж "на пальцах", то постараюсь опустить всяческие тонкости, которые знаю

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

Посты: 755
Откуда:
06-06-2011 08:57 GMT3 час. #1487847   
Такой вопрос назрел:
Есть ли методы проверки, что включен худ (имеется ввиду жизнь, броня и тд.)? Или можно как-нибудь проверить кастом статик этих элементов худа? (типа GetCustomSta**5005618d69873ce82a42**


Посты: 3814
Откуда:
06-06-2011 19:12 GMT3 час. #1488142   
Подскажите в каком конфиге прописана выдача Ворониным модифицированного вала? В bar_dialogs нету. Замучился искать. Просто название конфига, плиз!


Посты: 4176
Откуда:
06-06-2011 19:13 GMT3 час. #1488143   
SkyLoader
1. Если бы и были 'штатные' методы проверки наличия худа основного окна - ты бы давно их сам нашел.
Метод 'GetCustomStatic' тебе никак не подойдет, т.к. он именно для 'custom' элементов худа, а не для основного окна.
Если вопрос не просто ради интереса, то можно порассуждать на тему "как же получить инфу о состоянии худа", но все это будет не так то просто ...

2. Годик-полтора назад в этом топике (и на АМК тоже) уже муссировалась тема о таблицах и методах работы с ними, в особенности '#table' и 'get_n_table'. Нет желания опять поднимать эту тему, полазай по архивам.
Кратко:
1. Дурной тон (ИМХО) сохранять без особой необходимости в массив сами объекты (их юзердаты). Точнее, ты собственно сохраняешь ссылки/линки на них и все одно вынужден перепроверять наличие/актуальность. Так зачем использовать объекты, когда можно использовать только идентификаторы (например, игровой ID), которые и использовать для проверки наличия/актуальности самих объектов?!
2. Чистив массив, состоящий из объектов ты методом 'tabl[ i]=nil' не только таблицу чистишь(!), а и обнуляешь собственно сам объект. Т.е. имеющийся объект в игре ты приравниваешь к нилу: object = nil. ну и как думаешь отреагируют на это иные скрипты/схемы, работающие с этим же объектом?!
Уж если чистишь именно таблицу, которую пополнял через 'table.insert', так и применяй 'table.remove' для именно чистки таблицы, а не обнуления в ней самих объектов.

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


TheDoktor
Модифицированный ствол выдается Ворониным по квесту - соответственно искать его нужно в конфигах такс-менеждера в соответствующей квесту секции:
    \gamedata\config\misc\task_manager.ltx => dolg_find_item_1
'Выдается' естественно по выполнению квеста как награда.

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

Посты: 198
Откуда:
06-06-2011 20:05 GMT3 час. #1488166   
Помогите пожалуйста решить проблемку...
Делал постепенное лечение аптечками как в LURK и ABC вот по этому уроку:
Для начала создадим скрипт. Например health_effect.scripts:

---Система еды и постепенного лечения из Лурк мода---

objectinuse=0
objectused=0

--If/then statements for finding the item.
function start(obj)
snd = xr_sound.get_safe_sound_object([[$no_sound]])
if (db.actor~=nil) and (obj~=nil) then
slotinuse=db.actor:active_slot()
slot_div=1
if obj:section() == "medkit" or obj:section() == "medkit_army" or obj:section() == "medkit_scientic" then
snd= xr_sound.get_safe_sound_object([[interface\inv_medkit]])
holster_time=time_global()+7000
if (objectinuse==1) then
holster_time=holster_time+7000
end
soundhub()

elseif obj:section() == "antirad" then
snd= xr_sound.get_safe_sound_object([[interface\inv_pills]])
holster_time=time_global()+6000
if (objectinuse==1) then
holster_time=holster_time+6000
end
soundhub()

elseif obj:section() == "bandage" then
snd= xr_sound.get_safe_sound_object([[interface\inv_bandage]])
holster_time=time_global()+6000
if (objectinuse==1) then
holster_time=holster_time+6000
end
soundhub()

elseif obj:section() == "vodka" then
snd= xr_sound.get_safe_sound_object([[interface\inv_vodka]])
holster_time=time_global()+4000
if (objectinuse==1) then
holster_time=holster_time+4000
end
soundhub()

elseif obj:section() == "energy_drink" then
snd= xr_sound.get_safe_sound_object([[interface\inv_softdrink]])
holster_time=time_global()+4000
if (objectinuse==1) then
holster_time=holster_time+4000
end
soundhub()

elseif obj:section() == "bread" or obj:section() == "conserva" or obj:section() == "kolbasa" then
snd= xr_sound.get_safe_sound_object([[interface\inv_food]])
holster_time=time_global()+7000
if (objectinuse==1) then
holster_time=holster_time+7000
end
soundhub()
end

end
end

--Other stuff executes from here.
function soundhub()
if db.actor:alive() then
snd:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0)
snd = xr_sound.get_safe_sound_object([[$no_sound]])
if (objectinuse==0) then
db.actor:hide_weapon()
objectinuse=1
if slotinuse == 1 then
slot_div = ((holster_time-time_global())/1.5)
else
slot_div = 0
end
end
objectused=objectused+1
weapontimer()
end
end

--Holster time. Its set up as additive: A food and a drink taken together will apply instantly, but your gun is holstered for 9 seconds.
function weapontimer()
if (holster_time~=nil) and (time_global()>(holster_time-slot_div)) and level.present() then
objectused=objectused-1
if (objectused==0) then
db.actor:restore_weapon()
objectinuse=0
holster_time=nil
end
end
end

--Message for time remaining and math.Round function. Not used.
--[[
function message()
news_manager.send_tip(db.actor, tostring(math.Round((holster_time - time_global())/1000)).."s", nil, nil, 1000)
end

--Math.round
function math.Round(num)
local floored = math.floor(num)
if (num - floored) >= 0.5 then
return math.ceil(num)
else
return floored
end
end
]]--

Стоит, кстати, учесть параметр

snd = xr_sound.get_safe_sound_object([[interface\inv_food]])

Отвечает за воспроизводимый звук. Так что если его нет, поймаете вылет. Теперь создаёте скрипт abc_medkit.script:

-- Shortened Creds: ABC Mod made this, LURK team just cleaned up the indentions.

-- Should the use of the same medkit accumulate over the previous one?
multiple_medkit = "yes" --Не пробовал ставить no. Но почти уверен что будет вылет

-- How many minutes should take to complete the healing process.
hp_fullhealth_time = 0.125 --Кол-во в течении которого будет юзаться аптечка

--0.25

-- Health update time in MS. 1000 = 1 Second.
hupd_time = 50 --Апдейт времени.Лучше не трогать

-- Time modulation
time_mod=0

-- HP Healed. No higher than 1.
hp_med_kit = 0.65 --Параметр отвечающий за восстановление жизней одной аптечкой.Точнее за скорость восстановления
hp_med_army = 0.75
hp_med_sci = 0.80

-- Is Army faster than Normal?
army_fast = "yes"

-- Is Science faster than Normal?
sci_fast = "yes"

-- Is Science faster than Army?
sci_fast_than_army = "yes"

-- Should medkit_scientic anti-radiation process be progressive?
sci_antirad = "yes"

-- EOF


local med_kit, med_band, med_army, med_sci, medused, medid, medname
local objdtc = 0
function chk_medlot_object(obj)
if db.actor ~= nil then
local objdt = time_global()
if obj ~= nil and obj ~= "load" then
medname = obj:section()
if medname == "medkit" or medname == "medkit_army" or medname == "medkit_scientic" then
if objdtc == 0 then objdtc = time_global() + 350 end
med_used = "yes"
med_id = obj:id()
end
end
if med_used == "yes" and objdt > objdtc then
objdtc = 0
med_used = "no"
if level.object_by_id(med_id) == nil then
if medname == "medkit" then med_kit = "yes" end
if medname == "medkit_army" then med_army = "yes" end
if medname == "medkit_scientic" then med_sci = "yes" end
time_mod=0
end
end
new_medkit()
end
end

local time_mkit, time_army, time_sci, count_mkit, count_army, count_sci
function new_medkit()
if db.actor ~= nil and level.present() then
local cgametimemed = time_global()
local hft = (hp_fullhealth_time * 60000) / hupd_time
--normal
if med_kit == "yes" then
if time_mkit == nil then time_mkit = time_global() + hupd_time end
if cgametimemed > time_mkit then
time_mkit = time_global() + hupd_time
local player_hp = db.actor.health
if player_hp < 1 then
if count_mkit == nil then count_mkit = 0 end
if count_mkit < (hft + 1) then
db.actor.health = (hp_med_kit/(hft + time_mod))
count_mkit = count_mkit + 1
--abort("TimeMod: "..time_mod)
--abort("Health: "..hp_med_kit/(hft + time_mod))
time_mod = math.clamp(time_mod+0.23,0,35)
else
med_kit = nil
time_mkit = nil
count_mkit = nil
end
else
med_kit = nil
time_mkit = nil
count_mkit = nil
end
end
end
--army
if med_army == "yes" then
if time_army == nil then time_army = time_global() + hupd_time end
if cgametimemed > time_army then
time_army = time_global() + hupd_time
local player_hp = db.actor.health
if player_hp < 1 then
if count_army == nil then count_army = 0 end
if count_army < (hft + 1) then
local mamf = 0
if army_fast == "yes" then mamf = (hp_med_army/hft) / 4 end
db.actor.health = (hp_med_army/hft) + mamf
count_army = count_army + 1
time_mod = math.clamp(time_mod+0.23,0,35)
else
med_kit = nil
time_mkit = nil
count_mkit = nil
end
else
med_kit = nil
time_mkit = nil
count_mkit = nil
end
end
end
--science
if med_sci == "yes" then
if time_sci == nil then time_sci = time_global() + hupd_time end
if cgametimemed > time_sci then
time_sci = time_global() + hupd_time
local player_hp = db.actor.health
if player_hp < 1 then
if count_sci == nil then count_sci = 0 end
if count_sci < (hft + 1) then
local mamf = 0
local sfta = 4
if sci_fast_than_army == "yes" then sfta = 2 end
if sci_fast == "yes" then mamf = (hp_med_army/hft) / sfta end
db.actor.health = (hp_med_sci/hft) + mamf
if sci_antirad == "yes" then db.actor.radiation = -(hp_med_sci/hft) end
count_sci = count_sci + 1
time_mod = math.clamp(time_mod+0.23,0,35)
else
med_kit = nil
time_mkit = nil
count_mkit = nil
end
else
med_kit = nil
time_mkit = nil
count_mkit = nil
end
end
end
end
end

function math.clamp (value,mini,maxi)
local clamped = value
if clamped < mini then clamped = mini end
if clamped > maxi then clamped = maxi end
return clamped
end

Теперь самое сложное. Лезем в bind_stalker.scripts. После

self.object:set_callback(callback.on_item_drop, nil)

Пишем

self.object:set_callback(callback.use_object, nil)

В итоге получается вот так:

self.object:set_callback(callback.inventory_info, nil)
self.object:set_callback(callback.article_info, nil)
self.object:set_callback(callback.on_item_take, nil)
self.object:set_callback(callback.on_item_drop, nil)
self.object:set_callback(callback.use_object, nil)
--self.object:set_callback(callback.actor_sleep, nil)
self.object:set_callback(callback.task_state, nil)
self.object:set_callback(callback.level_border_enter, nil)
self.object:set_callback(callback.level_border_exit, nil)
self.object:set_callback(callback.take_item_from_box, nil)

После

self.object:set_callback(callback.on_item_drop, self.on_item_drop, self)

Пишем

self.object:set_callback(callback.use_object, self.use_object, self)

В итоге:

self.object:set_callback(callback.inventory_info, self.info_callback, self)
self.object:set_callback(callback.article_info, self.article_callback, self)
self.object:set_callback(callback.on_item_take, self.on_item_take, self)
self.object:set_callback(callback.on_item_drop, self.on_item_drop, self)
self.object:set_callback(callback.use_object, self.use_object, self)
self.object:set_callback(callback.trade_sell_buy_item, self.on_trade, self) -- for game stats
--self.object:set_callback(callback.actor_sleep, self.sleep_callback, self)
self.object:set_callback(callback.task_state, self.task_callback, self)
--self.object:set_callback(callback.map_location_added, self.map_location_added_callback, self)
self.object:set_callback(callback.level_border_enter, self.level_border_enter, self)
self.object:set_callback(callback.level_border_exit, self.level_border_exit, self)
self.object:set_callback(callback.take_item_from_box, self.take_item_from_box, self)

Ищем функцию:

function actor_binder:on_item_drop (obj)

и после ее завершения пишем:

----------------------------------------------------------------------------------------------------------------------
function actor_binder:use_object(obj)
heal_regen.start(obj)
end
----------------------------------------------------------------------------------------------------------------------

В итоге:

----------------------------------------------------------------------------------------------------------------------
function actor_binder:on_item_drop (obj)
level_tasks.proceed(self.object)
--game_stats.update_drop_item (obj, self.object)
abc_medkit.chk_medlot_object(obj)
abc_sleep.uptabc(obj)
end
----------------------------------------------------------------------------------------------------------------------
function actor_binder:use_object(obj)
heal_regen.start(obj)
end
----------------------------------------------------------------------------------------------------------------------

После

--game_stats.update_drop_item (obj, self.object)

Пишем

abc_medkit.chk_medlot_object(obj)

После

function actor_binder:update(delta)

Пишем

abc_medkit.chk_medlot_object()
heal_regen.weapontimer()

И все. Осталось лишь найти звуки и прописать их в директории \sounds\interface\
Автор статьи: Fireman3000, а так же спасибо Lurk моду и ABC.



При запуске новой игры словил вылет:
Expression : fatal error
Function : CScriptEngine::lua_error
File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
Line : 73
Description :
Arguments : LUA error: ...ow of chernobyl\gamedata\scripts\bind_stalker.script:269: attempt to index global 'heal_regen' (a nil value)


- как это исправить и с чем я накосячил?


Посты: 1946
Откуда:
06-06-2011 20:24 GMT3 час. #1488176   
ОТИС ты слова не за комментировал


Посты: 4176
Откуда:
06-06-2011 20:32 GMT3 час. #1488178   
ОТИС
1. для выкладки кодов, помимо спойлера, стОит использовать тэги [cоde], дабы не искажать ни сами коды, ни форматирование.
2. Читая статьи/уроки иль прочее ... стОит все же и понимать написанное, дабы и ошибки, про(до)пущенные авторами исправлять.
Читаем:

Для начала создадим скрипт. Например health_effect.scripts:
- а далее везде ссылки на heal_regen.###()
Т.е. автор у 'себя' использовал второе имя, а в статье почему то призывает создать под первым именем.
Замени созданому скрипту имя на heal_regen.script и, при условии отсутствия иных ошибок, должно заработать (не анализировал весь код).


Посты: 755
Откуда:
06-06-2011 20:36 GMT3 час. #1488181   
Artos, спасибо! table.remove(t,i) работает. Содержание таблицы тоже изменил.


Посты: 4176
Откуда:
06-06-2011 20:40 GMT3 час. #1488183   
SkyLoader
Но учти(!), если используешь 'table.remove' в цикле - то у тебя изменяется и размер массива и идентификаторы(индексы) элементов массива (сдвиг вверх), т.о. требуется прерывать цикл (break) при каждом удалении. Иначе возможны пропуски необработанных элементов.


Посты: 2089
Откуда:
07-06-2011 07:59 GMT3 час. #1488349   
Artos Не обязательно сразу прерывать цикл. Всегда можно вернуться к тому же индексу после удаления**5006618d69873ce82a42** while tbl == 55 do
table.remove(tbl, i)
end
end

for i, v in ipairs(tbl) do
print(v)
end[/code]
В результате получим:[code]2
4
8
99
10
87
999[/code]


Посты: 362
Откуда:
07-06-2011 13:01 GMT3 час. #1488436   
Скажите, а реально ли сделать на X-ray свою анимацию (например перезарядки оружия) с помощью какой либо программы?


Посты: 4176
Откуда:
07-06-2011 13:28 GMT3 час. #1488456   
singapur22
Ну раз опять ударились в подробности для таблиц, то вероятно следует внести пояснения, а не частности:

1. Конечно же, в зависимости о**5007618d69873ce82a42** local i,count = 1,#tbl
while i <= count do
if tbl == 55 then
table.remove(tbl, i)
count = count -1
else
i = i +1
end
end
[/code]
или даже так:[code] local i,count = 1,#tbl
while i <= count do
while tbl == 55 do
table.remove(tbl, i)
count = count -1
end
i = i +1
end
[/code] - т.е. заставив вложеное условие/цикл не только чистить, но и корректировать оставшийся объем таблицы и основной (первый) цикл будет обрабатывать только оставшийся объем таблицы.

Но это все же частности, которые, как писал выше, зависят от конкретного наполнения таблиц.


Посты: 13
Откуда:
07-06-2011 13:35 GMT3 час. #1488466   
Ребята спайте срочно подскажите я подключаю новую локацию в сингл всё нормально потом как с кордона перехожу на мою локацию мне даёт вылет и пишет вот это

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

Помогите пожалусто!.


Посты: 2581
Откуда:
07-06-2011 13:53 GMT3 час. #1488484   
stalker_aGG--- game.graph либо не создан либо портаченый...
создай или пересоздай геймграф




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


Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для
просмотра посетителям младше 18 лет. Организация GSC Game World признана нежелательной на территории Российской Федерации.
Использование материалов сайта возможно с разрешения администрации. © 2004–2025 «Stalker-Portal.ru»