if math.random() < 0.1 then
drop_active_item() --/ "потеря" активного предмета
end
Это один из способов установки процентной вероятности. В данном случае, в 10 процентах случаев, будет запускаться функция дропа активного предмета. Проще говоря, в 10 процентах случаев получения хита, у актора будет выпадать оружие из рук.
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Я не знаю как это объясняется, но во многих скриптах прямой вызов функции не действует. Приходится указывать таблицу this. (по умолчанию "этот файл").
добавлено спустя 8 минут
Хотя, я кажется понял, почему прямой вызов срабатывает не всегда. Весь смысл в том, что прямой вызов функции нужно производить всегда после задания функции. Тоесть, вызываемая функция должна быть прописана выше функции, из которой она вызывается. Иначе, приходится указывать файл, в котором она находится.
отредактировал(а) singapur22: 06-10-2009 10:53 GMT3 час. Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Попробовал вылетало
из за двух ефектов незнаю мож в АМк моде они и есть у меня нету таких
bloody.ppe
shoot.ppe
нащет math.random() < 0.1 then
если здоровье например 20% оружие выпадает всегда так как когдато singapur22 писал скрипт
обновляется 400 раз за минуту,
можна добавить нолей тогда будет терять изредка)))
и ненужно функцию drop_active_item() ставить на апдейт, ато будет выпадать в любом варианте.
Ну и поправить чтоб ефекты отключались когда у него здоровье нормальное
отредактировал(а) manunj: 06-10-2009 11:42 GMT3 час.
Обновил ссылку своего чит-меню для вступления в группировки.
На свободную кнопку наконец то повесил телепортацию на 50 метров вперед - без казусов проваливания по карту. (метод взят из ЧН и изменен под ТЧ)
дистанцию перемещения можно задать свою.
_http://ifolder.ru/14351418
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
manunj Уточню. Апдейт производится ~400 раз в минуту игрового времени. Соответственно, при тайм факторе равном 10. Частота апдейта на прямую зависит от загруженности системы. И колеблится от 1 до 578 тактов апдейта. В среднем колеблится от 380 до 440.
добавлено спустя 8 минут
erlik
get_console():execute("main_menu off") --/ закрываем и родительское main_menu
ЛИШНЕЕ.
отредактировал(а) singapur22: 06-10-2009 12:14 GMT3 час. Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
singapur22
Ау меня кнопка "выход" - не рабочая. Пока не смог исправить.
А без этой строчки менюшка закрываться вроде как не будет после активации кнопки. Или будет?
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
function spawn stalker_men (position, total)
alife():create("stalker_men",vector():set(-214.53, -21.66, -122.00), Левел_Вертекс,Гейм_вертекс)
end
Вот скрипт для спавна чувака из придудущёго маего поята.
А что вчтавлять в секциях Левел_вертекс, Гейм вертекс?
и как сделать чтоб после начала игры спавнился?
singapur22
Понятно. Значит уберем.
А вот с координатами активного поля меню я там вообще замучился.
Сначала были активны тока 4 или 5 кнопок, потом добился чтобы все. А вот выход так остался не рабочим. Не понял толком как рассчитывать в скрипте интерфейса это поле.
Сталкер Монолита
ты скрипт бардака почему не юзаешь?
Для тебя это самый простой вариант получения координат и вертексов - сто раз его приводили на форуме - и на вики он есть: статья "вычисляем координаты".
для спавна при старте игры есть масса способов - самый простой: открываешь файл
файл info_portions
и сюда вставляешь экшен по вызову твоей функции storyline_eliminate_gunslinger имя_файла.имя_функции_спавна
отредактировал(а) erlik: 06-10-2009 12:48 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik Как я и предполагал. У тебя зона меню оказалась слишком маленькой. Тоесть кнопка выхода находится вне зоны, поэтому и не работает. Вообще, устанавливай величину зоны меню 1024х768, и проблем с не активностью не будет.
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
singapur22
то бишь здесь оставляем как есть
local scr = {x = 0, y = 0, width = 1024, height = 768}
а здесь пишем те же размеры
local win = {x = 0, y = 0, width = 1024, height = 768}
так?
а с этим как быть:
win.x = (scr.width - win.width )/2 + 40
win.y = (scr.height - win.height)/2 + 50
убирать?
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
почему не используется? я же цифирки крутил - меню дергалось вверх-вниз, вправо-влево
Но в общем проще так сделать:
self:Init(x = 0, y = 0, width = 1024, height = 768)
а все остальное -нафиг убрать. Правильно?
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Да и если по уму, скрипт вообще можно сделать максимально компактным, если вместо кнопок использовать например CUIScrollView. А если использовать CUIListWnd, то можно избавиться от файла XML. Большинство CUIвиджетов поддерживают динамическое создание.
Сталкер Монолита
да - это экшен функции выхода из меню диалога.
добавлено спустя 9 минут
singapur22
спасибо что поправил :-)
насчет Класс CScrollView - поясни как его в сталкере можно использовать.
Это ведь уже что то из С++
Цитата
"Класс CScrollView поддерживает один определенный способ прокрутки, в котором используется одно большое окно и маленькая область вывода. Для каждого элемента определено положение внутри большого окна. Например, если необходимо отобразить на экране 10000 адресных строк, то вместо окна длиной в 10 000 строк, вероятно, лучше иметь небольшое окно, поддерживающее алгоритм прокрутки, который выбирает для отображения столько строк, сколько можно отобразить в данный момент. "
отредактировал(а) erlik: 06-10-2009 13:28 GMT3 час. Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik Это одна из ситуаций, где можно его использовать. Есть ещё такая возможность у данного типа виджетов:
AddWindow(CUIWindow*, boolean)
С помощью данного метода дабавляется дополнительный виджет в зону скрола. При этом каждый добавленый виджет может использовать один и тот же инициализатор. Тоесть не нужно создавать 100 виджетов, достаточно создать один, и при каждом добавлении его в зону скрола просто задавать соответствующие параметры. Координаты задавать не нужно, добавляются они под предыдущим виджетом.
А вообще, наилучшим классом будет конечно CUITabControl, который так же относится к семейству скролов. Этот класс виджетов специальный для кнопок, где так же не нужно создавать 100 кнопок, достаточно создать одну кнопку и при каждом добавлении задавать соответствующие параметры.
Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
singapur22
Н-да... надо бы функции бы С++ начать осваивать
в луа хелпе на этот класс C++ class CUIScrollView - стока функций повешено - и ни про одну ничего не знаю :-)
Ладно - спасибо за пояснение. Позже еще обсудим эту темку. А мне надо бежать.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
После запуска игры вылет сидор начинает болтать, и после первой фразы сразу вылет
Всё тот же постэффект
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: ....r. - shadow of chernobyl\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value)
добавлено спустя 2 минут
сам скрипт
--/-------------------------------------------------------------------
--/ Эффекты от критического ранения ГГ
--/-------------------------------------------------------------------
local health_sav = 1
local flg_blood = false
local actor = db.actor
local snd_obj = sound_object("heart\\2")
function act01_wounded_pp()
if actor.health < 0.2 then
if not flg_blood then
--level.add_pp_effector("red_fade_out.ppe", 1999, true)
level.add_pp_effector("bloody.ppe", 1999, true)
level.set_pp_effector_factor(1999, 5.0)
if not snd_obj:playing() then
snd_obj:play_at_pos(actor, actor:position(), 1, sound_object.looped)
end
flg_blood = true
elseif snd_obj:playing() then
snd_obj:set_position(actor:position())
if math.random() < 0.1 then
drop_active_item() --/ "потеря" активного предмета
end
end
elseif flg_blood then
level.remove_pp_effector(1999)
if snd_obj:playing() then
snd_obj:stop()
end
flg_blood = false
end
end
--/ эффект от ранения (материалы AMK Team)
function act02_wounded_pp()
local actor = db.actor
if actor then
local health_act = actor.health
if health_act < health_sav - 0.05 then
level.add_pp_effector("shoot.ppe", 2011, false)
level.set_pp_effector_factor(2011,(health_sav - health_act)*100)
if health_act < health_sav - 0.3 then
level.add_cam_effector("camera_effects\\fusker.anm", 999, false, "")
local snd_obj = sound_object("actor\\pain_3")
snd_obj:play_no_feedback(actor, sound_object.s2d, 0, vector(), 1.0)
if math.random() < 0.1 then
drop_active_item() --/ "потеря" активного предмета
end
end
end
health_sav = health_act
end
end
--/ "потеря" активного предмета
function drop_active_item()
local item = db.actor:active_item()
if item then
local section = item:section()
if section and
section ~= "bolt" and
section ~= "wpn_binoc" and --/?
section ~= "wpn_knife"
then
db.actor:drop_item(item)
end
end
end
отредактировал(а) Николай ФеНиКс: 06-10-2009 14:16 GMT3 час.
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.