Пользователей: 1
Гостей: 1246
Всего: 1247

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

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









Автор Сообщение
Artos
    
Посты: 4176
Откуда:
Возраст: 65
24-06-2010 20:17 GMT3 час. #1277683   
Николай ФеНиКс
и это ты называешь 'ясно'? "Ясно ято ничего не ясно".

Ты хоть понимаешь что такое 'db.actor', использ


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
24-06-2010 20:22 GMT3 час. #1277686   
Stalk15
Добавил в свою функцию универсального спавна новую возможность (спавн в инвентарь NPC по его профильному имени) - загляни в журнал. Функция пока не никак неоптимизировалась, но вполне рабочая.
Проверил как на онлайн, так и на оффлайн объектах - Волку и Толику точно спавнится, ну а к Скряге и Серому я не ходил - но по крайней мере тестовое сообщение что все заспавнилось было. Так что проверяй дальше сам. Кстати не жди увидеть заспавненые вещи у них в рюкзаке - они как правило не отображаются - разве что ствол, если он лучше чем у них, NPC сразу возьмут в руки.
И кстати после смерти NPC их инвентарь чистится и все удаляется, кроме квестовых предметов - так что думай что им стоит спавнить, а что не стоит.


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Николай ФеНиКс
    
Посты: 1493
Откуда: От Туда!
Возраст: 29
24-06-2010 20:31 GMT3 час. #1277692   
Artos
Ну отдыхай;-)

я сделал, вроде так в


musnuk
    
Посты: 487
Откуда: припять,проспект Ленина 86
Возраст: 30
24-06-2010 20:53 GMT3 час. #1277710   
есть важный вопрос. собираюсь начать учить луа. как можно начать его учить или просто занямиась скриптами знание придет незаметно? (все же повторюсь: хочу учиться сам, знаю что трудно, но тут никак не обойтись)


Мафия не прощает оскорблений...
Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
24-06-2010 20:56 GMT3 час. #1277712   
Artos
Спасибо, попробую ..

erlik
Спасибо, а то у меня по сиду не работало, а по профильному имени пашет.

И кстати после смерти NPC их инвентарь чистится и все удаляется, кроме квестовых предметов - так что думай что им стоит спавнить, а что не стоит.

Я как раз спавню квестовый предмет.

добавлено спустя 15 минут

erlik
Еще раз спасибо за "профильно-именную" функцию, теперь можно спавнить в инвентарь не определяя Id.
А вот та функция, что последняя доработанная:Она только для спавна по профильному имени или так же можно, как раньше - в инвентарь актора и по координатам использовать?

отредактировал(а) Stalk15: 24-06-2010 21:12 GMT3 час.

Новые фишки для сталкера(см. журнал)
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
24-06-2010 21:19 GMT3 час. #1277721   
musnuk

или просто занимаясь скриптами знание придет незаметно

Ага :-) оно так незаметно подкрадется и "вдруг ...как в сказке скрипнула дверь Все мне стало ясно теперь..."
Читай:

_http://www.lua.ru/doc/ - справочное руководство по lua - Библия скриптеров :-)


_http://www.script-coding.info/Lua.html - скриптовый язык lua - статья


_http://www.lua.ru/forum/posts/list/21.page настройка lua и scite

_http://www.lua.ru/forum/posts/list/16.page установка lua на hp


_http://netsago.org/ru/docs/1/4/ - Введение в Lua. _ Engine _ Статьи _ GameDev.ru - Разработка игр - статья проф. Matheson

_http://steps3d.narod.ru/tutorials/lua-tutorial.html - Язык Lua и использование скриптов на нем в программах на С++.

_http://ilovelua.narod.ru/

_http://ru.worms-mods.wikia.com/wiki/%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B_Lua#.D0.A1.D0.BC.D1.8B.D1.81.D0.BB_.D1.81.D0.BA.D1.80.D0.B8.D0.BF.D1.82.D0.BE.D0.B2

_http://www.ogre3d.ru/wik/pmwiki.php?n=Main.LuaScripts статья в википедии

_http://ltwood.wikidot.com/scripting:lua-lang – краткое введение из книги Roberto Ierusalimsky


_http://ltwood.wikidot.com/scripting:lua-lib - стандартная библиотека – краткий обзор

_http://luaforge.net/frs/?group_id=377 - дополнительные библиотеки lua dll

И скачай программу для написания и отладки скриптов ScITE.

добавлено спустя 38 секунд

Stalk15
все что можно было раньше, можно и сейчас.

отредактировал(а) erlik: 24-06-2010 21:20 GMT3 час.

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
24-06-2010 21:21 GMT3 час. #1277723   

# musnuk : начать его учить или просто занямиась скриптами знание придет незаметно?


Изучать весь язык может и не прийдётся, достаточно понять основные принципы. Хотя...
Открой любой скрипт, возьми любую функцию и начинай читать каждую строчку, слово, символ.
Останавливайся там, где не понимаешь о чём идёт речь, и ищи ответ на этот вопрос.
И так далее до последнего END.
Сначала будет нелегко. Потом начнёшь замечать знакомые\изученные конструкции.
В общем - дерзай.


Не стань номинантом премии Дарвина.
Artos
    
Посты: 4176
Откуда:
Возраст: 65
24-06-2010 21:22 GMT3 час. #1277724   

musnuk: как можно начать его учить или просто занямиась скриптами знание придет незаметно?
Однозначно: Учить И заниматься!

Голая теория, неподкрепленная практикой - мертвые знания.
'Наколенная' практика дешево стОит, но дорого выходит.

И начни с малог

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
24-06-2010 21:59 GMT3 час. #1277740   
Artos
function Has_ManyItems(...)
В аргументах ни разу не встречал многоточие ...Можно поинтересоваться, для чего нужно\служит многоточие?
----------------------------------------------------------------------------------------
А-а, понятно ..

отредактировал(а) Stalk15: 24-06-2010 22:14 GMT3 час.

Новые фишки для сталкера(см. журнал)
Artos
    
Посты: 4176
Откуда:
Возраст: 65
24-06-2010 22:12 GMT3 час. #1277751   
Stalk15
при вызове функции ей могут передаваться аргументы, которые внутри функции могут/должны быть задействованы.

Например привычный уже вызов спавн-функции:

  local soObj = alife():create("section", vector():set(x,e,z), lvid, gvid, id)

изнутри ее можно представить так:
function create(section, vector, lvid, gvid, id)
  --/ тело функции
end
или так:
function create(...)
  local arg = {...} --/ исправлено!
  section = arg[1]
  vector = arg[2]
  lvid = arg[3]
  gvid = arg[4]
  id = arg[5]
  --/ тело функции
end
Т.е. все аргументы, передаваемые на вход функции, собственно называют массивом аргументов и этот массив имеет зарезервированное имя: arg .
Собственно этот массив всегда есть. При отсутствии аргументов его объем равен 0.

Т.о. если точно известно, что переданно функции - то все это можно 'обозвать' локальными для функции переменными 'на входе' (вариант 1).
А можно и просто принять весь массив и 'вынимать' из него нужные аргументы (перебирая или прямой адресацией) уже внутри (вариант 2).

Читай мануалы по языкам - там порой попадается и полезное и даже увлекательное! :-)

отредактировал(а) Artos: 25-06-2010 01:42 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
musnuk
    
Посты: 487
Откуда: припять,проспект Ленина 86
Возраст: 30
24-06-2010 22:15 GMT3 час. #1277752   
ну значит в добрый путь))) начну читать, учить, тестировать, создавать...

надеюсь со временем всё станет ясно. спасибо за советы Artos, Gun12 и erlik ... и простите меня, дяди модераторы за оффтоп.


Мафия не прощает оскорблений...
Artos
    
Посты: 4176
Откуда:
Возраст: 65
24-06-2010 22:25 GMT3 час. #1277757   
musnuk
Когда кто-то/что-то зарождается - это уже НЕ оффтопик! :-beer)

Терпения и настойчивости в пути! :-cool)


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
musnuk
    
Посты: 487
Откуда: припять,проспект Ленина 86
Возраст: 30
24-06-2010 22:40 GMT3 час. #1277765   

# Artos :
musnuk
Когда кто-то/что-то зарождается - это уже НЕ оффтопик! :-beer)

Терпения и настойчивости в пути! :-cool)


за это, отдельное спасибо... уж этого мне понадобится много. начну с википедии, потом "библия", ну и конечно помощь друзей с сп в поиске ошибок, недочетов и просто для упрощения жизни. ну и конечно труд, скрипты, тест0, скрипты,исправления, скрипты!


Мафия не прощает оскорблений...
Ma$ter
    
Посты: 477
Откуда: Tamboff
Возраст:
24-06-2010 22:41 GMT3 час. #1277766   
У меня есть вопрос. Зачем нужно это: alife():create(1)
или это: alife():create(2)?
Вот кусок скрипта где это находится:
local obj = get_story_object("exit_to_pripyat_from_st2")
if not obj then
alife():create(2)
obj = get_story_object("exit_to_pripyat_from_st2")
end


Знание assembler, C/C++, Pascal, Lua.
Stalker94
    
Посты: 192
Откуда: Волковыск
Возраст: 31
24-06-2010 22:44 GMT3 час. #1277768   
Ma$ter походу это переходы через локатию я точно незнаю.


Свабоду не астановить!
Эх гробы подаражают!!!
Вливайся в "Свободу" лучший из кланов, заявки принимаем ежедневно и еженочно!!!!
Говари что думаеш и думай что говариш.
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
24-06-2010 22:49 GMT3 час. #1277772   

# musnuk :
начну с википедии, потом "библия"


Начни с установки SciTE.
Всё что будешь читать - тут же проверяй в деле.
Поверь, понимание прийдёт быстрее.
У тебя в занятиях написано "шахматы". Значит усидчивость и логическое мышление есть. А это хорошее подспо**5001c54314580bda8be6**pe(k) == 'string' then
sItem = v
else
return false
end
if not Has_N_Item(sItem, iNum, oNPC) then
return false
end
bHas = true
[/code]


(эх, пора комп выключать уходить отдыхать ...)

Да уж, треть жизни пропадает.:-):-(

отредактировал(а) Gun12: 24-06-2010 23:23 GMT3 час.

Не стань номинантом премии Дарвина.
Artos
    
Посты: 4176
Откуда:
Возраст: 65
24-06-2010 22:52 GMT3 час. #1277773   
(эх, пора комп выключать уходить отдыхать ...)

Ma$ter
В данном контексте: 'alife():create(2)' - под '2' имеется ввиду секция спавна [2]. Это то, что можно видеть в распакованных из 'all.spawn' файлах типа 'alife_lXXX.ltx'.

Иначе: При старте новой игры все объекты создаются в игре из all.spawn'а.
Упомянутая тобою строка позволяет 'точечно' заспавнить объект конкретной секции (если конечно его уже нет в игре!), со всеми параметрами, указанными в секции.
Т.е. объект будет точно таким и там же как при старте новой игры.

Открывай 'all.spawn' и смотри, что за объект под [1] иль [2] иль .... [222]

Gun12
Не спорю, такой вариант с таблицей вполне ...
Я собственно этот кусок, взяв из предыдущего, еще 'осилком' не правил. :-)


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Artos
    
Посты: 4176
Откуда:
Возраст: 65
25-06-2010 01:27 GMT3 час. #1277815   
Gun12
Или я перегрелся или ... заработался (Warning!)

Все же я был изначально правЕе в сомнениях (см. [url=http://stalker-portal.ru/forums.php?m=post**5012c54314580bda8be6**rintf(fmt,...)
log(string.format(fmt,unpack(arg)))
end[/code]или[code]function random_choice(...)
local r = math.random(1, arg.n)
return arg[r]
end[/code]
Но(!), уже в релизном '_g.script' видим:
[code]function printf(fmt,...)
log(string.format(fmt,...))
end[/code]и[code]function random_choice(...)
local arg = {...}
local r = math.random(1, table.getn(arg))
return arg[r]
end[/code]

Т.о. НЕТ зарезервированной переменной 'arg' (это проверял и еще раз перепроверил) и массив входных данных одномерен, т.е. 'arg.n == nil' и применение этого варианта приводит к фатальным ошибкам.

Пока рабочим вариантом функции для списков/массивов для Сталкера получается:
[code]function Has_ManyItems(...)
local arg = {...}
local iCnt = arg and #arg --/ кол-во элементов в массиве входных аргументов
if iCnt and iCnt ~= 0 then
--/ и т.д.
[/code]




"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Mehanik Yar
    
Посты: 469
Откуда: Уфа
Возраст:
25-06-2010 07:53 GMT3 час. #1277858   
Здрасьте, есть функция .....

function dergi (trader, actor)
dialogs.relocate_item_section(trader, "wpn_ak74u", "out")
dialogs.relocate_money(trader, 1500, "in")

end

или

function dergi (first_speaker, second_speaker)
dialogs.relocate_item_section(second_speaker, "wpn_ak74u", "out")
dialogs.relocate_money(second_speaker, 1500, "in")

end

в первой ГГ отдает Ак74у но у него он не исчезает, т.е. может сколько угодно раз отдавать.
во второй он отдает ак74 но тогда он будет у НПС и тот может поменять оружие, но мне надо чтобы у НПСа ак не было, т.е. нужно чтобы предмет просто исчез и все.


Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
25-06-2010 09:15 GMT3 час. #1277877   
Mehanik Yar
Можно просто удалить предмет из инвентаря ГГ:
Со


Новые фишки для сталкера(см. журнал)
Artos
    
Посты: 4176
Откуда:
Возраст: 65
25-06-2010 09:23 GMT3 час. #1277880   
Mehanik Yar
1. 'мне надо'/"нужно чтобы" - это из разряда "Дайте/сделайте мне ...".
Тут все же "Вопросы и Ответы", а не стол заказов ... Где вопрос то?

2. Ты пробовал хотя бы перевести название тобою применяемой функции?
"Перемещение предмета". Естественно пре**5003c54314580bda8be6**u_from_Actor()
local oItem = db.actor:object("wpn_ak74u") --/ определяем предмет у ГГ
if oItem then --/ у ГГ есть предмет
db.actor:drop_item(oItem) --/ выбрасываем предмет (опционально)
alife():release(alife():object(oItem:id()), true) --/ удаляем из игры
end
end[/code]


Stalk15
Не весели ... :sarcastic:

отредактировал(а) Artos: 25-06-2010 09:33 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
25-06-2010 09:36 GMT3 час. #1277882   
Artos

Не весели ...

Функция, что я писал неправильная, да?:-)
----------------------------------------------------------------------------


В твоем случае "правильная" - может работать, но "сюда_пишем_что_удалять_будем" - вот это и смешит(!

Да я это со Сталкер вики скопировал ...

Забыл свои вчерашние мытарства с ID?

Нее, не забыл ;-)

отредактировал(а) Stalk15: 25-06-2010 09:53 GMT3 час.

Новые фишки для сталкера(см. журнал)
Artos
    
Посты: 4176
Откуда:
Возраст: 65
25-06-2010 09:46 GMT3 час. #1277888   
Stalk15
В твоем случае "правильная" - может работать, но "сюда_пишем_что_удалять_будем" - вот это и смешит(!). Это просто 'рыба', по удалению некоего объекта из игры.
Чтобы эта 'правильная' заработала, т.е. могла быть применена на практике и тем более к конкретному вопросу, тебе еще 'что-то' придется понаписать ... Забыл свои вчерашние мытарства с ID?


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
25-06-2010 10:14 GMT3 час. #1277908   
Вот смотрите:Чтоб спавнить сталкеров в all.spawn'е, указываю секцию:
[12478]
; cse_abstract properties
section_name = stalker
Я спавню монолитовца, пишу:
[12478]
; cse_abstract properties
section_name = monolith
Но при запаковки жалуется на monolith ...Что не так? ...Или нужно тоже написать stalker, а по профилю уже определится его группировка?


Новые фишки для сталкера(см. журнал)
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
25-06-2010 10:19 GMT3 час. #1277913   
Artos
Не поверил :-G, и проверил Ваше утверждение насчёт arg.
СтОит признать что Вы абсолютно правы.
Знаю что вырезаны библиотеки, но честно сказать я и подумать не мог, что у разрабов поднимется рука даже на такую мелочь.
Резюме : ИМХО использовать Lua Сталкера для изучения и практики, чревато последствиями неправильной интерпритации многих стандартных конструкций, прекрасно работающих (даже больше - удобно работающих с помощью вырезанных в Сталке библиотек) в классическом Lua.


Не стань номинантом премии Дарвина.
musnuk
    
Посты: 487
Откуда: припять,проспект Ленина 86
Возраст: 30
25-06-2010 10:45 GMT3 час. #1277927   
нет... учить ин яз. невозможно, если незнать как читаются буквы и не использавать его на практике...
прошу помочь, братья-порталовцы, в чтении скриптов.

вот такой скрипт в котором вроде что-то понятно

вернее три скрипта.

class "CZoneNoWeapon"

function CZoneNoWeapon:__init( zone, binder, ini )
// Если уже есть актер и он в зоне, то убираем оружие
if binder.actor_inside then
db.actor:hide_weapon()
end
end

function CZoneNoWeapon:on_enter( actor )
actor:hide_weapon()
end

function CZoneNoWeapon:on_leave( actor )
actor:restore_weapon()
end



скрипт на убор оружия, в таких зонах. сначала я вижу класс (class "CZoneNoWeapon"), как я понял это не столь важно, но все же для чего-то он ведь нужен.
затем идет обычный айди функции(CZoneNoWeapon:on_enter), где CZoneNoWeapon- класс, а on_enter-какое-то условие. затем показывается предмет\персонаж накоторый\который используется в функции. перейдем к рассмотрению поотдельности.
первый скрипт непонятен совсем, его оставим,перейдем сразу ко второму.
CZoneNoWeapon:on_enter( actor )- CZoneNoWeapon незнаю, а вот on_enter- значит вошел на территорию. в скобках actor- которое используется в этой функции.
actor:hide_weapon()- переводится, как ГГ:убирает оружие, но что значат эти скобки(зеленым выделены)уже не впервый раз вижу такие.

второй скрипт такой же, только на противное. т.е. при выходе из зоны убора, оружие автоматом достается.

правильно ли я разобрался?на то что я не понял просьба ответить.


Мафия не прощает оскорблений...
sevitov_yura
    
Посты: 79
Откуда: Брест
Возраст: 30
25-06-2010 11:00 GMT3 час. #1277936   
подскажите, как сделать, чтобы ноутбук можно было юзнуть: т.е. подходиш к ноуту нажимаеш F, и выполняется срипт(появляется окошко, выдаётся инфопоршень и т.д.).???

отредактировал(а) sevitov_yura: 25-06-2010 11:19 GMT3 час.

Darien Fx
    
Посты: 1372
Откуда:
Возраст: 30
25-06-2010 11:10 GMT3 час. #1277942   
musnuk
Если кто-то возьмётся отвечать на твои последние вопросы, то врятли ты что-то поймёшь, ведь классы - это далеко не азы (а без них никуда). Начни с прочтения различных введений, erlik недавно давал ссылки. И обязательно скачай Scite с Lua, ибо начинать скриптовать со Сталкера гораздо сложнее.


Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
25-06-2010 11:22 GMT3 час. #1277949   

# musnuk :...но что значат эти скобки


Это оператор Lua, который озн


Не стань номинантом премии Дарвина.
musnuk
    
Посты: 487
Откуда: припять,проспект Ленина 86
Возраст: 30
25-06-2010 11:30 GMT3 час. #1277953   
я не собираюсь создавать новый класс (ибо понимаю тяжесть и провально


Мафия не прощает оскорблений...


Форумы Архив » Свалка Вопросы и ответы (по 15.07.10)


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

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