Есть такой прикол. Попробывал поставить в фон mainmenu видеоролик "Презентация Obilivion Lost". Качество получилось отменное (Спасибо разрабам проги SUPER@2009). Но он не подходит к той музыке, которую мне бы хотелось воткнуть. Не плохо бы было создать несколько роликов (чем больше, тем лучше), презентационного боя в игре с разнообразными врагами. Есть у кого желание попробывать свои силы в кинематографии? Мне нужны только отрывки боёв. Всё остальное (выбор, сортировка, синхронизация, склейка, конвертация), я сделаю сам. Пробывал сам записать бои, но по причине долгого не играния, получается какаято лабуда, а не презентационные бои.
отредактировал(а) singapur22: 07-09-2009 11:41 GMT3 час. Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Я пересмотрел все функции и сделал новые варианты.
В функции отбора ставок сделал так, чтобы в случае если ставка больше налички эктора отбиралась тока сумма налички - остальное писалось в долг. (ну по крайней мере мне кажется, что именно так
все будет работать - еще не проверял).
Функцию тотализатор я разделил на две и создал переменную bank в которую записывается выигрыш.
В функции totalizator после определения суммы приза идет просчет всех вариантов для разных случаев
долга нет - выигрыша нет
долга нет - выигрыш есть
долг есть -выигрыш есть
долг есть - выигрыша нет (в последнем случае ведь можно писать просто else вместо сравнения одной переменной с другой ?)
и в зависимости от случая выдается свое сообщение и также идут хитрые арифметические операции на предмет того скока эктора дать и дать ли вообще.
Бабло он будет получать через отдельную ветку диалога. Для этого - своя маленькая функция.
Для отдачи долга тож будет ветка (это на тот случай если долг будет копиться)
Вопрос такой: эта переменная bank у меня будет запоминать то что ей надо?
for _, v in ipairs(prize) do
if summa == v then
summa = bank --\ начисляем сумму в банк
end
И еще по выдаче сообщений
вот так можно?
news_manager.send_tip(db.actor, "Меченый. Твоя ставка сыграла. Ты выиграл "..tostring(bank).." р. Можешь приходить забирать.", 120, "trader", 5000)
news_manager.send_tip(db.actor, "Меченый. Твоя ставка не сыграла. твой долг "..tostring(dolg).." р. ", 120, "trader", 5000)
news_manager.send_tip(db.actor, "Меченый. На этот раз тебе повезло. Но за тобой должок, который я сразу вычту. Так что выигрыш "..tostring(bank).." р. Можешь приходить забирать.", 120, "trader", 5000)
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Представитель Осознания
копируешь текстуры, модель, иконку (через SIE - Stalker ikon editor или какой другой редактор иконок), звуки, конфиг - в конфиге ставишь правильные координаты иконки (опять же вычисляются через SIE), проверяешь в конфиге пути до модели, звуков - и если еще чего не будет хватать узнаешь через лог вылета. Можно сразу и mp_ranks копирнуть, чтобы ничего туда не вписывать. Хотя лучше наверно
все таки самому вписать. прочитай эту статью тут как раз есть о регистрации нового ствола.
И все - ставишь его в продажу торгашу и алга...
добавлено спустя 2 минут
singapur22
В сохранения я внес.
Точно - надо поменять. Спасибо что заметил, а то глупо получается :-)
отредактировал(а) erlik: 07-09-2009 13:35 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik И ещё. В сохранениях поменяй наверно u32 на u24. А то этот долбаный пакет и так уже перегрузили по полной. Того и глядишь, получишь вылет из за не возможности сохранения.
Суммы у тебя и так не будут превышать миллиона, а u24 позволяет передавать числа до 16777215.
отредактировал(а) singapur22: 07-09-2009 13:52 GMT3 час. Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
singapur22
ага поменял...тут такой вопрос по lua: оператор return может использоваться вот так:
действие
return
else (или там elseif и т.д. )
действие
или только:
return
end
else
действие
и писать false и true надо только лишь в том случае если мы собираемся использовать эту функцию из логики?
И вообще он так ли нужен? Только чтобы завершить блок и вернуть самого себя?
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
Понял.
Так значит end как может присутствовать после return так и нет...я просто думал после return надо в любом случае end ставить, а потом уже писать следующий блок функции.
Вот еще:
local armor = db.actor:object("outfit_stalker_m1")
можно ли вместо
if armor == nil then
писать так
if not armor then
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik Фактически можно. Правда я не знаю, может ли данный метод вернуть значение false. Из собственной практики, данный метод возвращает userdata объекта, или nil, если такового нет. Если у него нет больше других состояний, то можно прописать и not armor.
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Вот тут все подробно написано
_http://www.stalkerin.gameru.net/wiki/index.php/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BD%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE_%D1%82%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%86%D0%B0
singapur22
Че то я не понял как проверять на работоспособность скрипт через тест функций...
вписываешь его имя в тестфайл, а потом как активируешь? И сам скрипт где тогда должен быть - в тест файле или в геймдате?
Щас вот проверил его на синтакис - поправил, заккоментировал в файле test и пошел его обычным путем проверять - через диалог, а игра меня на раб. стол послала.
Arguments : Error : the namespace name is already being used by the non-table object!
это как я понял из-за того что два одинаковых скриптах в файлах, которые используют одни и те же имена.
То ж самое у меня было когда я не комментировал вообще - думал, что с коммент. такой ошибки не вылезет, ан нет... надо что игру перезагружать? И скрипт из тест файла удалять?
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik Из тест файла удалять его не трэба. Проверить работоспособность скрипта через тэст-файл, не много сложнее, чем просто проверка на синтаксис. Для этого, кроме его вызова (через дроп), нужно ещё передать какимто образом в скрипт данные. Это в твоём случае так. Тоесть, в конце файла пишешь подобный вызов, именно в конце, но ни как не в начале и не в середине:
db.actor:give_info_portion("айди поршна") --\ включим один из поршнэй, для тэста. local npc = level_object_by_sid(3) --\ определим userdsta Сидора, по его сиду. имя_функции(npc, db.actor) --\ и вызываем нашу функцию.
Вызов производится без приставки this. так как производится из тела файла, а не из тела функции.
Всё. Делаешь дроп и смотришь консоль.
отредактировал(а) singapur22: 07-09-2009 18:52 GMT3 час. Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
erlik Второй вариант верен. А в первом нужно ещё добавить противоположное значение:
function precond()
if bank > 0 then
return true
end
return false
end
Исходя из этого, получаем ещё и третий вариант:
function precond()
if bank > 0 then
return true
else
return false
end
end
:-)
добавлено спустя 13 минут
Есть такой прикол. У игры есть множество фиксированных разрешений экрана. Я както туда не заглядывал, и всё это время играл на разрешении 1024х786. Хотя монитор у меня '19. Но меня както это устраивало. Конечно, детали были несколько сплющены, но я както этого не замечал. Щас решил поставить разрешение по максимуму 1440х900. И что я получил? Детальность стала чересчур заужена. Хотя монитор широкоформатный. Я понимаю, что есть мониторы ещё шире. Но у меня видюха именно на это разрешение и настроена. И никаких сужений я не наблюдаю. Получается, что создавая движок, разрабы от балды брали все эти настройки? Или они среднюю ширину экрана не стали учитывать? Хотя, кажется в то время ещё не было более широких мониторов. Перебрав все разрешения в игре, я так и не нашёл, какое из них подходит под мой монитор. При любом разрешении, детальность или сильно заужена, или черезчур сплющена. В итоге остановился на том, какое и было 1024Х786. В нём хотябы это не сильно заметно.
отредактировал(а) singapur22: 07-09-2009 20:48 GMT3 час. Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
singapur22
я использовал второй вариант...однако..
диалог для выдачи призов все таки не появился - хотя вроде как должен был - выигрыш был.
правда баг с сообщениями - сразу 7 штук - пока не исправил...не знаю пока в чем дело.
второй баг - диалог со ставками не исчезает, хотя должен - его условие (в шапке диалога)- отсутствие поршня, который выдается во фразе "ставки сделаны".
добавлено спустя 6 минут
один плюс - у эктора вычитается сумма тока до ноля. остальное (видимо) пишется в dolg и bank:-)
отредактировал(а) erlik: 07-09-2009 20:55 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
local timer = level.get_time_minutes()
local sch = 0
function timer_dialog()
if timer ~= level.get_time_minutes() then
if sch == 1 then --\ в тестовых целях делfем диалог доступным через минуту
if db.actor:has_info("totalizator") then
db.actor:disable_info_portion("totalizator")
sch = 0
else
sch = sch + 1
end
timer = level.get_time_minutes() --\твоя ошибка
end
--\ перенеси сюда
end
end
добавлено спустя 2 минут
ДатчикХабара Ещё бы.
отредактировал(а) singapur22: 07-09-2009 21:01 GMT3 час. Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Klingon Самый простой способ, это добавить его к выдаваемым предметам Меченому, Волком. Открываешь файл gamedata\scripts\escape_dialog.script и находишь функцию:
function give_weapon_to_actor (trader, actor)
dialogs.relocate_item_section(trader, "wpn_pm", "in")
dialogs.relocate_item_section(trader, "ammo_9x18_fmj", "in")
dialogs.relocate_item_section(trader, "ammo_9x18_fmj", "in")
dialogs.relocate_item_section(trader, "wpn_knife", "in")
end
И добавляешь в неё выдачу экзоскелета:
function give_weapon_to_actor (trader, actor)
dialogs.relocate_item_section(trader, "wpn_pm", "in")
dialogs.relocate_item_section(trader, "ammo_9x18_fmj", "in")
dialogs.relocate_item_section(trader, "ammo_9x18_fmj", "in") dialogs.relocate_item_section(trader, "exo_outfit", "in") dialogs.relocate_item_section(trader, "wpn_knife", "in")
end
И всё.
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
singapur22
да...такие тонкости я еще не освоил.....ладно там кол-во end, но то между каким и каким end можно и нужно вставлять методы, активацию функций, переменные - пока плохо представляю.
а то что у меня диалог выдачи -идет как start_dialog -( первую фразу говорит Сидор) это может как то влиять на его появление?
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik Здесь нужно прокручивать в голове всю последовательность чтения функции системой и при этом соответствующих действий. Я уже както делаю это на лету. Вошло в привычку:-)
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
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: ...2\s.t.a.l.k.e.r\gamedata\scripts\bind_stalker.script:236: attempt to index global 'totalizator' (a function value)
в этой строчке апдейт функции totalizator.timer_dolg()
--\ таймер для активации функции выдачи гневных сообщений о долге
у меня в файле сразу два таймера - и оба в одном месте на апдейте.
local tim = level.get_time_minutes()
local sh = 0
function timer_dolg()
if tim ~= level.get_time_minutes() then
if sh == 2 then --\ в тестовых целях сообщения о долге посылаем через две минуты
this.send(actor, npc)
sh = 0
else
sh = sh + 1
end
tim = level.get_time_minutes()
end
end
Игра вылетает прямо при проверке на синтаксис.
использовать вот это \n в тексте сообщений (которые прямо в функции) нельзя? просто пробовал - и был вылет с логом
Arguments : LUA error: ...2\s.t.a.l.k.e.r\gamedata\scripts\news_manager.script:161: attempt to index field '?' (a nil value)
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.