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

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

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









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


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Struck
    
Посты: 1946
Откуда:
Возраст:
05-06-2011 14:26 GMT3 час. #1487525   
singapur22 а как текст то правильно вызвать,и как заставить complex mode работать?(ф-ию поправил)


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

l
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
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 час.

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


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

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


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Struck
    
Посты: 1946
Откуда:
Возраст:
05-06-2011 15:01 GMT3 час. #1487562   
singapur22 ясно, сейчас посмотрю, а текст то как правильно вызывать?


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

l
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
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


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


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

l
BIGoff
    
Посты: 3
Откуда: Байкал
Возраст:
05-06-2011 15:04 GMT3 час. #1487568   

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


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


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

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


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

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


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

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


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


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

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


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

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

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

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

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


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

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

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

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

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


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


Я – хозяин своей судьбы, но только судьба знает, где закончится мой путь.

Artos
    
Посты: 4176
Откуда:
Возраст: 65
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
Откуда: Минск
Возраст: 27
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)


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


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


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

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

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


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
SkyLoader
    
Посты: 755
Откуда: Москва
Возраст:
06-06-2011 20:36 GMT3 час. #1488181   
Artos, спасибо! table.remove(t,i) работает. Содержание таблицы тоже изменил.


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


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
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]


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


Не говори что мне делать, и я не скажу куда тебе идти! (с)
Artos
    
Посты: 4176
Откуда:
Возраст: 65
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] - т.е. заставив вложеное условие/цикл не только чистить, но и корректировать оставшийся объем таблицы и основной (первый) цикл будет обрабатывать только оставшийся объем таблицы.

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


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
stalker_aGG---
    
Посты: 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

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


Не отпушу, стой догоню :):-G
Strchi
    
Посты: 2581
Откуда: Уфа-Челябинск-Фритаун
Возраст:
07-06-2011 13:53 GMT3 час. #1488484   
stalker_aGG--- game.graph либо не создан либо портаченый...
создай или пересоздай геймграф




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


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

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