#Stalk15 : Обьясните, как пользоваться этой функцией?
Сначала ответь - что должна возвратить функция вызываемая в ? Николай ФеНиКс
Да, дело хуже чем я думал.
Даже не знаю с чего начать. Вот с чего. Изучай xr_kаmр. Да и вообще скриптование.
отредактировал(а) Gun12: 23-06-2010 17:57 GMT3 час. Не стань номинантом премии Дарвина.
function Actor_Has_ListItems(sSection,iNum) --Просто секция обьекта и число(Ну вы поняли, что я имею ввиду(Наверно)
...
Actor_Has_ListItems("2_bumazhki_sidora", 2) -- Конкретная секция обьекта и его число
Почему в аргументах первой функции написано sSection,iNum, а не Section,Num?
musnuk
дайте функцию спавна ,в скрипте, npc в деревне новичков.
А разве бываю функции, предназначеные специально для определенной локации и местности на ней?(Рит.вопрос)Я таких функций не встречал, и, думаю, таковых нет.
вопрос: куда прописать новую анимацию из stalker_animation.omf чтоб ее можно было использывать в игре? в state_lib.script нужно точно... но думаю что не только туда.... мне для стоячего состояния
Внимание! В подписи запрещены ссылки на любые внешние ресурсы! не смотри журнал
Stalk15
**5001c54314580bda8be6**
Это вызов функции. Что это значит?
Начинается выполнение функции Actor_Has_ListItems
Дополнительно, в неё передаются некие данные.
В нашем случае это 2 аргумента "2_bumazhki_sidora" и 2, с которыми эта функция будет что-то делать.
Теперь сама "виновница" Actor_Has_N_Item(sSection,iNum)
Как объяснить?
Она ждёт, когда её что-нибудь вызовет.
Также она принимает 2 аргумента, которые программист укажет в вызове, описанном выше.
Но так как эта функция может запуститься от разных вызовов, в которых могут передаваться разные аргументы, то в самой функции объявляются переменные (например sSection и iNum, или A и B, или что хочешь пиши). Эти переменные являются локальными , использующимися только внутри самой функции. Поэтому назови их хоть матом, наружу они не выйдут, но будут принимать любые значения от вызывающей конструкции.
Так что поговорка, - "Как вы лодку назовёте - так она и поплывёт" к этому случаю не относится.
Почему в аргументах первой функции написано sSection,iNum, а не Section,Num?
Artos любит использовать венгерскую нотацию Симони в именовании переменных - перед именем переменной ставится префикс обозначающий тип переменной (ИМХО стиль неудобный -разве что для UI элеметов).
А вообще имена входных параметров внутри скобок функций могут быть любые. В том числе и совершенно одинаковые (у разных функций имею ввиду). Поскольку они (процитирую Gun12 )" являются локальными , использующимися только внутри самой функции".
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik
Ты по сути прав, в том что мною использована некая система нотации именования элементов программирования.
Назовем это - почерк программиста.
Ранее, я придерживался "стиля" разрабов и ... не особенно затрагивал их "систему" наименований, т.к. чем-то проще искать то, что изменено ... Но(!) надоело!!! Более неудобного наименования сложно придумать, точнее и придумывать то нечего, т.к. никто из разрабов не озаботился систематизацией наименования переменных и пр. элементов.
Не буду тут разъяснять/навязывать что-то, просто ... буду 'гнуть свою линию'.
В моих кодах принята некая 'система' при которой элементам (имена начинаются в верхнем регистре) присваивается некая приставка/префикс (в нижнем регистре):
- 's' - string/строка - строковая переменная;
- 'i' - indes/индекс - числовая переменная;
- 't' - table/таблица
- 'v' - vector/вектор**5001c54314580bda8be6**string" then
local iNum = 1
if type(arg[i+1]) == "number" then
iNum = arg[i+1]
end
if not Has_N_Item(arg, iNum, oNPC) then
return false --/> у NPC нет i-предмета(ов)
end
end
end
return true --/> NPC имеет полный набор предметов
end
return false
end
--/ Примеры вызова:
--/ Result = Has_TableItems({"section1", "section2", "section3"})
--/ Result = Has_TableItems({["section1"]=3, ["section2"]=5, ["section3"]=2}, [oNPC])
function Has_TableItems(tTable, oNPC)
if type(tTable) == "table" and ( oNPC == nil or type(oNPC) == "userdata") then
for k,v in pairs(tTable) do
if type(k) == "string" and type(v) == "number" then
if not Has_N_Item(k, v, oNPC) then
return false --/> у NPC нет k-предмета(ов)
end
elseif type(k) == "number" and type(v) == "string" then
if not Has_N_Item(v, 1, oNPC) then
return false --/> у NPC нет k-предмета
end
else
return false --/> ошибка в таблице
end
end
return true --/> NPC имеет полный набор предметов
end
return false
end
[/code]
- пока не все (пере)проверил.
Дописал 'с колена' и собираюсь, перепроверив, внести в мною используемый модуль общих функций.
Если у вас есть замечания/предложения - давайте вместе доделаем универсальные/надежные 'кирпичики' ...
GIDDRA
Это просто вариант метки на (мини)карте.
Отличается от остальных - названием (ты сам именуешь) и используемым фрагментом текстуры.
Создаешь свой тип метки, аля "red_location", используя нужный фрагмент текстуры (можешь из ЗП импортировать) и ... используй, аналогично остальным, по тобою выбранному имени.
Привет!
ВОПРОС:
В секции [stalker_damage] прописаны четыре столбика с параметрами урона
1-й - вроде прямой урон от пули
4-й - возможность крита За что отвечают 2-й и 3-й столбики?
ВОПРОС2: Как отключить красные метки врагов на миникарте?
отредактировал(а) EvgenWeb: 23-06-2010 21:27 GMT3 час. Мой ник в сетевой - Б.А.Р.С.[KMW]
;------------------------------------------------
Не завидуй тому, кто сильней и богат.
3а рассветом всегда наступает закат.
С этой жизнью короткою, равною вздоху,
Обращайся, как с данной тебе напрокат.
Здрасьте ребят. Вопрос такой, где можно увидеть нормальную функцию проверки. Проверки на деньги (чтоб у ГГ было нужное кол) и проверки на предмет (1 шт или несолько).
GIDDRA
Я же написал - имя ты сам какое нужно тебе самому назначаешь вновь созданной метке.
Хочешь как в ЗП - бери из ЗП.
Также фрагмент текстуры для метки - хоть сам рисуй, х
Artos
Спасибо за подсказку!:ye) А на счет красных меток на миникарте не в курсе как их отключить?
Мой ник в сетевой - Б.А.Р.С.[KMW]
;------------------------------------------------
Не завидуй тому, кто сильней и богат.
3а рассветом всегда наступает закат.
С этой жизнью короткою, равною вздоху,
Обращайся, как с данной тебе напрокат.
EvgenWeb
Извини, но ... на вопросы мне НЕ интересные, и тем более на которые любой НЕ ленивый может сам получить ответ, заглянув в многочисленные ФАК'и, статьи и/или в оригиналы кодов от разрабов - как правило НЕ отвечаю.
Сорри. :-G
Мой ник в сетевой - Б.А.Р.С.[KMW]
;------------------------------------------------
Не завидуй тому, кто сильней и богат.
3а рассветом всегда наступает закат.
С этой жизнью короткою, равною вздоху,
Обращайся, как с данной тебе напрокат.
... я тут все мозги над своим виджетом сломал - так что не до предложений сейчас.:-)
-----------------------------------------------------------------------------------------------------------------
Не могу понять почему у меня вылетает при перезаг**5006c54314580bda8be6** inventory_open = true
inventory = level.main_input_receiver()
elseif info_id == "ui_inventory_hide" then
inventory_open = false
end
end [/code]
[code]это ставил на вызов в net_destroy
function DetachWnd()
inventory:DetachChild(wnd)
end[/code]
-- объект самого виджета назначается переменной один раз в момент приаттачивания. Больше мой класс Gravi не вызывается. Хотя пробовал как и с однократным приаттачиванием - так что даже после перезагрузки новая инициализация виджета не происходит, так и с повторным аттачем.
В обоих случаях виджет все равно присутствует в инвентаре.
Но заметил такую вещь - если использовать DetachChild() то кнопки вроде как принимают дефолтное(выключенное состояние), а если его не использовать - то сохраняют свое состояния даже после перезагрузки игры.
... На net_destroy Колмогор посоветова ставить. Правда Меченый(Стрелок) сказал что у них с Колмогором вроде так и не решилась проблема идентичная моей (давно это было и они сами точно не помнят как там и что - но вылеты были при аналогичных действиях).
в логе почти всегда (последние вылеты) это:
stack trace:
001B:00584360 xrCore.dll, IReaderBase::find_chunk
[error][ 259] : Дополнительные данные отсутствуют.
--]]
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
1. Уточни, плз, что ты подразумеваешь под "у меня вылетает при перезагрузке"?
Перезагрузаешь сэйв? Игру (с выходом в ОС)?
Насчет DetachChild():
Разрабы действительно не дали примеров использования, остается домысливать/предполагать.
Мыслю так: После аттача - виджет принимает установки скоррелированные с родительским объектом. Это и проверить можно. Аттачил твои кнопки и к инвентори и к статику - кнопки появлялись соответственно по надлежащим им координатам.
После де-аттача - координаты остаются(!) и визуально ты видишь кнопки на своих местах, но апдейт окон/виджетов уже не затрагивает твои кнопки, т.е. они стали неинтерактивным рудиментом - вот и не определяется их статус/состояние.
Насчет вылетов. То, что у тебя вылетает - это требует анализа. Я пока не анализировал разницу между твоими кодами и теми, которые у меня. Действительно, у меня вылетов ... не было, пока не стал оптимизировать коды. Логически все должно оставаться было неизменным, но ... после некоего шага стал тоже ловить вылеты при наведении курсора на раб.область кнопок. Причем вылеты по времени рандомны (1...5 сек).
Могу только пока предполагать - что-то связано с апдейтом состояния кнопок.
Более пока писать не считаю возможным. Погадалки/предполагалки редко приносят пользу, а шоры надеть или в тупик завести - запросто ...
Поковыряюсь еще сегодня. Думаю нужное тебе исчезновение виджета при отсутствии в слоте предмета - удатся сделать. Ну а далее - либо откачусь на раб. вариант 'дооптимизации' или ... еще поковыряю (более вероятно).
Прибой Слипченко
Тут топик как делать моды, а не как их удалять!
Тебе сюда: <Проблемы с модами>
P.S. Это НЕ повод оффтопить куда не попадя! :st)
Спешка нужна при ловле блох.
Не смертельно НЕ поиграться в твоем возрасте часок-другой ...
Банально попробуй удалить папку "gamedata" в директории/папке где у тебя установлена игра.
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.