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

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

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









Автор Сообщение
ДатчикХабара
    
Посты: 558
Откуда: Saratov
Возраст:
10-09-2009 16:27 GMT3 час. #1032263   
erlik Это скрипт банка или тотализатор?


erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
10-09-2009 16:30 GMT3 час. #1032265   
то что написано в классе у нпс вообще ведь вроде в игре не используется и можно че хошь писать...
хотя я тож всегда одинаковое писал: что в классе, что в


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
10-09-2009 16:31 GMT3 час. #1032267   
ДатчикХабара
и того и другого:-)


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
10-09-2009 16:36 GMT3 час. #1032268   
erlik

function percent_deposit()
if deposit > 0 and deposit > 10000 and deposit < 50000 then --\это лишнее
deposit = deposit + deposit\100*(math.random(5,8)) --\ правельней будет так deposit\(100*math.random(5,8))
elseif deposit > 50000 and deposit < 100000 then
deposit = deposit + deposit\100*(math.random(9,12)) --\аналогично предыдущему
elseif deposit > 100000 and deposit < 500000 then
deposit = deposit + deposit\100*(math.random(13,15)) --\аналогично предыдущему
elseif deposit > 500000 then
deposit = deposit + deposit\100*(math.random(16,20)) --\аналогично предыдущему
end
end


и как оправильно арифметические операции произоводить: что и когда надо в скобки заключать?


Так же, как и в школе на математике. В скобки заключается то, что нужно выполнить в первую очередь.

local deposit = 0 --\ не там поставил. Должна стоять перед первой функцией, где она используется впервые.

if deposit > 0 then --\ если на депозите че появилось то обнулим банк
bank = 0
--\зачем проделывать два раза одно и тоже? Пропиши bank = 0 в предыдущей проверке, а это удали.

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

erlik Ты не прав. Именно класс и индефицирует профиль и характеристику нпс. А всё остальное шняга.

отредактировал(а) singapur22: 10-09-2009 16:39 GMT3 час.

Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
10-09-2009 16:46 GMT3 час. #1032279   
singapur22
Понял. По математике тройка была :-)
значит здесь так лучше:
local deposit = 0

function transfer_bank()
if bank > 0 then --\ если в банке че есть то
deposit = bank --\ сделаем трансфер в другую переменную
news_manager.send_tip(db.actor, "Меченый, на твой счет поступила сумма в "..tostring(deposit).." р.", 5, "trader", 10000)
bank = 0
end
end

а все мои локальные переменные (которые в теле файла объявлены) может вообще в самый верх файла вынести? Их положение внутри файла получается имеет значение?


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
10-09-2009 17:07 GMT3 час. #1032316   
erlik Ну ты блин даёшь. Естественно имеет. Чтение любого файла производится всегда сверху вниз, по порядку символов и соответственно строк.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
10-09-2009 18:05 GMT3 час. #1032381   
singapur22
Да я вот пока не задумывался над этим...(ну так что с меня взять - все таки первый сложный скрипт пишу). Теперь буду учитывать это. Спасибо за поправки.


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Code Name - Stalker
    
Посты: 9
Откуда:
Возраст:
10-09-2009 19:55 GMT3 час. #1032499   
А как сделать проверку наличия определённого предмета в первом слоте?
так:

function test()
local item_in_slot_1 = db.actor:item_in_slot(1)
local item_prot_pp = db.actor:object("test_pp")
if item_in_slot_1 == item_prot_pp then
this.test2()
end
end

?


erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
10-09-2009 20:46 GMT3 час. #1032529   
singapur22
При такой записи на тесте выдается ошибка на символ "\" в этой строке
deposit = deposit + deposit\(100*math.random(5,8))
а луа чекер так вообще штук 20 ошибок показывает (но это он всегда так делает, хотя ошибка может быть всего одна )

Checking D:\Program files2\S.T.A.L.K.E.R\gamedata\test.script:
test.script (334): no viable alternative at "\"
test.script (336): no viable alternative at "\"
test.script (338): no viable alternative at "\"
test.script (340): no viable alternative at "\"
test.script (349): no viable alternative at "\"
test.script (351): no viable alternative at "\"
test.script (353): no viable alternative at "\"
test.script (349): mismatched input '100' expecting 'end'
test.script (350): no viable alternative at input 'dolg'
test.script (350): no viable alternative at input 'dolg'
test.script (350): no viable alternative at input 'dolg'
test.script (350): no viable alternative at input 'dolg'
test.script (351): mismatched input '100' expecting 'end'
test.script (352): no viable alternative at input 'dolg'
test.script (352): no viable alternative at input 'dolg'
test.script (352): no viable alternative at input 'dolg'
test.script (352): no viable alternative at input 'dolg'
test.script (353): mismatched input '100' expecting 'end'
test.script (354): no viable alternative at input 'deposit'
test.script (354): no viable alternative at input 'deposit'
test.script (355): no viable alternative at "\"


И еще - мне ведь надо, что бы сначала от суммы deposit находился 1% - то есть делим сумму на сто, а затем уже умножаем на рандомный процент от 5 до 8. Получаем сумму начисляемого процента, которую и прибавляем к основной сумме. А в такой записи по моему не так получается....


Что тут не так?

И еще : как в сталкере просмотреть стэк программных вызовов?
Запись в логе stack trace тебе ведь знакома (сегодня не могу от нее избавиться).
Эта строка в логе как я узнал указывает на то что надо смотреть стэк вызовов, где в порядке с последнего до первого будет список всех загруженных методов, один из которых и привел к исключению.
Но в логе после строки stack trace пишется тока указание на библиотеки игры
001B:007B105B XRLUA.DLL
001B:03381E7C xrGame.dll
И как это понимать? Это и есть тот самый стэк вызовов?

добавлено спустя 1 час 20 минут

Code Name - Stalker

Так и делается.
создаем к примеру локальную переменую item_slot и назначаем ей значение вещи в слоте 2
создаем вторую локальную переменную и назначаем ей значение айди конкретной вещи в инвентаре эктора, а дальше производим проверку на то что слот 2 не пуст и что в слоте находится нужная нам вещь
function test()
local item_slot = db.actor:item_in_slot(2)-- вещь в слоте два
local obj = db.actor:object("wpn_beretta") - объект в инвентаре эктора - беретта
if item_slot ~= nil then --\ если слот два не пуст
if item_slot == obj then --\ то если вещь в слоте равна беретте
действие
end
end
end

или как там
if item_slot == obj then --\ если вещь в слоте 2 равна объекту в инвентаре эктора - "беретта" то
действие
end
end

или так
if item_slot and item_slot:section() == "wpn_beretta" then --\ если вещь в слоте 2 есть и эта вещь равна секции ltx "беретта" то производим нужное действие
вот здесь скобочки забыл поставить.

и так с любым слотом.

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

singapur22
Нашел ошибку - надо ведь вместо "\" использовать "/ " :-) вот блин надо же какую мелочь забыл...

отредактировал(а) erlik: 11-09-2009 08:27 GMT3 час.

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Code Name - Stalker
    
Посты: 9
Откуда:
Возраст:
10-09-2009 22:52 GMT3 час. #1032587   
erlik
Только прочитал сообщение..
Впринципе всё ясно..спасибо.


крысобелка
    
Посты: 1185
Откуда: Россия-матушка
Возраст: 132
10-09-2009 23:18 GMT3 час. #1032592   
где находятся модели NPC???и можно их исправить фотошопом???


erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
11-09-2009 08:45 GMT3 час. #1032647   
крысобелка
1 .модели в папке meshes - формат ogf, редактируется программами 3D моделирования (Макс - 3DStudioMax, Майя - Maya, Милка - Milkshape 3D) . предварительно ogf конвертируется конвертером от bardak"а в формат с которым эти проги могут работать - object, bones, skls или skl. Для работы программ с моделями сталкера требуются доп. плагины.
2. фотошопом можно редактировать только текстуры.
требуется плагин для dds (это формат текстур сталкера).


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Psychologist
    
Посты: 1806
Откуда: Челябинск
Возраст: 28
11-09-2009 09:36 GMT3 час. #1032675   
Я хочу попробывать себя в модостроении. У меня есть некоторый опыт конечно(изменение цены в ЧН и добавление в асартемент торговца ЧН) но я хочу попробывать нечто иное.
Начнём с малого:
Как и где менять имена квестовых НПС; Группировок.
Диологи распрастраняются на всех НПС? (приветствие)
Если да то мне их нужно тоже отредактировать чтоб ГГ приветствовали нормально. Затем: Где и Как изменить текст сообщений.
Пример: Военные режут нашего брата сталкера! изменить на Привет как дела?
Да и для общей информации киньте сайт СДК чтоб Вас не мучить.
Зарание Спасибо!!!


И все мы ждем чего-то. Работа - дом - работа ©
крысобелка
    
Посты: 1185
Откуда: Россия-матушка
Возраст: 132
11-09-2009 10:16 GMT3 час. #1032688   
а где эти программы найти???


Psychologist
    
Посты: 1806
Откуда: Челябинск
Возраст: 28
11-09-2009 10:29 GMT3 час. #1032689   
крысобелка Юзай Гугл или Яндекс


И все мы ждем чего-то. Работа - дом - работа ©
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
11-09-2009 12:02 GMT3 час. #1032750   
Сталкер Монолита

Как и где менять имена квестовых НПС; Группировок.

Имена квестовых персов - в файле stable_bio_name (text\rus)
напимер вот

Бес
Имена группировок в string_table_general (text\rus)


Пример: Военные режут нашего брата сталкера! изменить на Привет как дела?


Это насколько я помню озвучка - а значит если хочешь заменить фразы из озвучки нужно делать свою озвучку, а потом заменять ту что в игре на свою. Нужна прога для конвертации звука в ogg формат.
Ну и почитать уроки по работе со звуком.
Конвертнуть звук можно и через SDK - зайди на эту страницу
_http://sdk.stalker-game.com/ru/index.php?title=X-Ray_SDK_0.4
там про SDK и ссылки на скачивание (не забудь скачать и патч для СДК)
(Вообще официальный SDK (полная версия - не русифицированная и не урезанная - другие не рекомендуют к использованию) находится тока на официальном сайте GSC - там же есть куча ссылок на разные проги и моды, также свой форум. )

Если же ты хочешь заменить просто текстовые фразы, то покопайся в файлах папки rus - там лежат все тексты игры, и просто подредактируй нужные тебе фразы.

Например открываем файл stable_dialogs там есть несколько стнадартных фраз типа Привет, Как ты, До встречи, меняем их на свои, и в игре будут уже твои фразы.
Более серьзный набор текстовых фраз содержится в файлах stable_dialogs_имя_уровня.
Там для каждого уровня свой набор текста из диалогов персонажей этого уровня. Тоже можно поменять. Но только если ты знаешь из какого диалога та или иная фраза. А иначе можешь так все наизменять, что потом получится путаница в квестовых диалогах.


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
S.н.а.й.п.е.р.
    
Посты: 316
Откуда: Рязань
Возраст: 30
11-09-2009 12:35 GMT3 час. #1032765   
erlik
тут чето не то.
я решил просто заспаунить 10 наемников на кордоне. получилось!:yahoo

попробывал в темной долине. неполучается!:ary() выдает дебильную ошибку:

Expression : fatal error
Function : CScriptEngine::lua_error
File : D:\xray-svn\xr_3da\xrGame\script_engine.cpp
Line : 70
Description :
Arguments : LUA error: d:\games\s.t.a.l.k.e.r\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value)


Хорошо смеется тот , кто стреляет первым.

S.T.A.L.K.E.R. 1st mini-mod вышел=) скачать в журнале.

Моя первая моделька ПМ в журнале=)
ДатчикХабара
    
Посты: 558
Откуда: Saratov
Возраст:
11-09-2009 12:42 GMT3 час. #1032776   
S.н.а.й.п.е.р выложи сюда скрипт спауна.


S.н.а.й.п.е.р.
    
Посты: 316
Откуда: Рязань
Возраст: 30
11-09-2009 12:48 GMT3 час. #1032782   
вот val_killer_npc:

function spawn_npc ()
alife():create("val_killer_npc",vector():set(3.76,1.23,-24.17),178237,1023)
alife():create("val_killer_npc",vector():set(3.76,1.23,-24.17),178237,1023)
alife():create("val_killer_npc",vector():set(3.76,1.23,-24.17),178237,1023)
alife():create("val_killer_npc",vector():set(3.76,1.23,-24.17),178237,1023)
alife():create("val_killer_npc",vector():set(3.76,1.23,-24.17),178237,1023)
alife():create("val_killer_npc",vector():set(3.76,1.23,-24.17),178237,1023)
alife():create("val_killer_npc",vector():set(3.76,1.23,-24.17),178237,1023)
alife():create("val_killer_npc",vector():set(3.76,1.23,-24.17),178237,1023)
alife():create("val_killer_npc",vector():set(3.76,1.23,-24.17),178237,1023)
alife():create("val_killer_npc",vector():set(3.76,1.23,-24.17),178237,1023)
end


Хорошо смеется тот , кто стреляет первым.

S.T.A.L.K.E.R. 1st mini-mod вышел=) скачать в журнале.

Моя первая моделька ПМ в журнале=)
ДатчикХабара
    
Посты: 558
Откуда: Saratov
Возраст:
11-09-2009 12:57 GMT3 час. #1032789   
S.н.а.й.п.е.р.
А откуда ты вызываешь данную функцию?


S.н.а.й.п.е.р.
    
Посты: 316
Откуда: Рязань
Возраст: 30
11-09-2009 12:58 GMT3 час. #1032790   
из info_portions


Хорошо смеется тот , кто стреляет первым.

S.T.A.L.K.E.R. 1st mini-mod вышел=) скачать в журнале.

Моя первая моделька ПМ в журнале=)
Psychologist
    
Посты: 1806
Откуда: Челябинск
Возраст: 28
11-09-2009 12:59 GMT3 час. #1032791   
erlik Спасибо. Попробую. Кстате а можно например изменить модель Волка на волка.?
Да мне нужны были толко стандартные диологи.


И все мы ждем чего-то. Работа - дом - работа ©
ДатчикХабара
    
Посты: 558
Откуда: Saratov
Возраст:
11-09-2009 13:01 GMT3 час. #1032794   
S.н.а.й.п.е.р.
напиши как ты вызываешь функцию из info_portions.

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

Сталкер Монолита
В смысле на волка,на собаку чтоли?

отредактировал(а) ДатчикХабара: 11-09-2009 13:02 GMT3 час.

Psychologist
    
Посты: 1806
Откуда: Челябинск
Возраст: 28
11-09-2009 13:03 GMT3 час. #1032796   
ДатчикХабара да на волка.(животное)


И все мы ждем чего-то. Работа - дом - работа ©
ДатчикХабара
    
Посты: 558
Откуда: Saratov
Возраст:
11-09-2009 13:06 GMT3 час. #1032797   
в файле character_desc_escape
поменяй это
actors\neytral\stalker_neytral_balon_1
на это
monsters\dog\dog_bulterier


Psychologist
    
Посты: 1806
Откуда: Челябинск
Возраст: 28
11-09-2009 13:07 GMT3 час. #1032798   
ДатчикХабара тэто что в игре есть модель волка?!(хотя там много чего есть) Спасибо!!!


И все мы ждем чего-то. Работа - дом - работа ©
ДатчикХабара
    
Посты: 558
Откуда: Saratov
Возраст:
11-09-2009 13:12 GMT3 час. #1032800   
Сталкер Монолита

Нет это собака бультерьер...
;Вот список моделей собак

dog --пёс обычный
dog_bulterier --собака бультерьер
dog_bulterier_dead -мертвый бультерьер
dog_dead --мертвый пёс
dog_red --красный шарик
dog_red_dead --мертвый шарик
dog_white --белая собака
dog_white_dead --собака белая мёртвая


erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
11-09-2009 13:26 GMT3 час. #1032804   
S.н.а.й.п.е.р.
Да, я и забыл что при переходе на другие локи этот вариант не совсем годится.
Надо сделать так.


Это из скрипта singapur22 - я в него внес активацию функции спавна на локе бар, у него было активация слота 2 при заходе на локу бар. А так будет активация спавна чуваков. Точно так же делаешь функции и для прочих лок.

То есть сначала функцию спавна с координатми и вертексами. а потом висываешь активацию своей функции в тело функции level_active().
А в самой level_active() уже пишешь имя уровня на котором должны появится твои чуваки.
Если в эту впишешь имя уровня темная долина - "l04_darkvalley", то тогда твои чуваки и заспавнятся по прописанным им координатам и вертексам, когда ты зайдешь на локу.
Для спавна на другой локе делаешь функцию level_active_2() - а в ней пишешь нужный уровень и новый поршень и пишешь активацию другой функции спавна (например - spawn_npc_2 () - с другим вертексами и координатами снятыми с нужного уровня и другим именем).

Имя новой функции level_active_2() - добавляешь в список function list_new_funcs()

Текст из его журнала.
Многие задаются вопросом, как запустить ту или иную функцию, при переходе на локацию. В принципе, тут ничего сложного нет. Достаточно прописать проверку, какая локация активна в данный момент, с установкой ключа на разовый вызов, чтобы функция не вызывалась постоянно, пока актор находится на прописанной локации.

Итак, создадим постоянную проверку активной локи. В файле bind_stalker.script находим функцию actor_binder:update(delta). В конце функции (перед последним end) прописываем путь к проверочной функции. Например:

new_funcs.list_new_funcs()

Теперь создаём новый скрипт-файл new_funcs.script.
В новом файле создаём функцию списка новых функций:

function list_new_funcs()
this.level_active()
end

Для тех кто не понял, зачем она нужна, поясняю. Так как одной функцией, любые разработки не ограничиваются, мы создали специальную функцию, из которой будет производиться, вызов вновь созданых функций, которые требуют постоянную работу. В данном случае, прописан постоянный вызов функции level_active() из этого же файла. Чтобы добавить в список новую функцию, достаточно вписать в теле функции list_new_funcs() строку this.имя функции()

Теперь создаём нашу проверочную функцию, активной локи:

function level_active()
if not has_alife_info('level_active') and level.name() == "l05_bar" then
имя_файла.spawn_npc ()
db.actor:give_info_portion('level_active')
elseif has_alife_info('level_active') and level.name() ~= "l05_bar" then
db.actor:disable_info_portion ('level_active')
end
end

В данном случае, запускаемым эффектом прописана активация слота номер 2 (автомат). Тоесть, при переходе на локацию Бар, актор будет появляться с автоматом в руках, не зависимо от того, с каким слотом он был до перехода.

В качестве ключа, в нашем случае использован инфопоршен 'level_active'. Поэтому нужно зарегистрировать его в файле info_portions.xml

отредактировал(а) erlik: 11-09-2009 13:39 GMT3 час.

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
S.н.а.й.п.е.р.
    
Посты: 316
Откуда: Рязань
Возраст: 30
11-09-2009 13:45 GMT3 час. #1032821   
так что ли level_active(l04_darkvalley)?


Хорошо смеется тот , кто стреляет первым.

S.T.A.L.K.E.R. 1st mini-mod вышел=) скачать в журнале.

Моя первая моделька ПМ в журнале=)
Psychologist
    
Посты: 1806
Откуда: Челябинск
Возраст: 28
11-09-2009 13:48 GMT3 час. #1032824   
Да а где имена торговцев можно редактировать?


И все мы ждем чего-то. Работа - дом - работа ©


Форумы Архив » Свалка Как сделать свой мод? (по 08.10.09)


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

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