Пользователей: 0
Гостей: 337
Всего: 337

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


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

Ник


Пароль


Запомнить?




» Добавить в избранное

» Сделать стартовой

Главная
Форум
Обзор игры
Мир Зоны
Файлы
Галерея
Разное






Форумы > Архив > Склад > Вопросы и ответы (ТЧ по 18.11.2010)

Страница 5 из 70Первая«2345678 »Последняя
Быстрый переход:


 

Автор Сообщение
Artos
[20] Сталкер
Онлайн статус=0  Профиль    




Посты: 4176
Откуда:
Занятие:
Возраст: 65

14-09-2010 05:07 GMT3 часа #1344349   Split
MRN$
Вариантов ошибки три:
а) Ты передаешь на вход НЕ клиентский объект. Попытка применить к нему методы для клиентского объекта приводит к 'No such operator defined'.
b) Ошибка идет из другой функции. Возможно из вызывающей, где некорректно обрабатывается возвраженный аргумент(ы) ...
в) Неизвестный нам фактор ... может ты вообще в другую игру скрипт пихнул?

P.S. По инвентарным боксам: Моя оценка: менее 25%.


Darien Fx , SkyLoader
Если бы клиентский объект НЕ был бы в онлайне иль еще где-то не зарегистрировался бы, то НЕ прошла бы проверка 'if obj then', т.к. нечего было бы передавать на вход ...
Гадаем поманеньку?!


SkyLoader
Ты опять в дебри полез, забыв дома азбуку?!
Позиция камеры(device().cam_pos) и позиция актора (db.actor:position()) - разные вещи, хотя и взаимосвязанные. Не стОт их путать.
Сам вспомни, что есть еще в игре вид от 2-го и 3-го лица, где камера отделена от актора.

Сообщение было успешно отредактировано Artos (14-09-2010 05:07 GMT3 часа, назад)

MRN$
[1] Странник
Онлайн статус=0  Профиль    




Посты: 114
Откуда:
Занятие:
Возраст: 16

14-09-2010 05:15 GMT3 часа #1344353   Split
Делаю так. Вроде должно всё правильно передаться

Код:
local test_obj = nil

function create(item, fpos_x, fpos_y, fpos_z, flvid, fgvid)
test_obj = alife():create("item",vector():set(fpos_x, fpos_y, fpos_z), flvid, fgvid)
end

function get()
local fpos_x, fpos_y, fpos_z, flvid, fgvid, fdir_x, fdir_y, fdir_z = get_object_param(test_obj)
end

function get_object_param(obj)
if obj then
local pos = obj:position()
local dir = obj:direction()
local lvid = obj:level_vertex_id()
local gvid = obj:game_vertex_id()
return pos.x, pos.y, pos.z, lvid, gvid, dir.x, dir.y, dir.z
else
return false
end
end


ps: исправил - не то скопировал, сорри...


Artos
[20] Сталкер
Онлайн статус=0  Профиль    




Посты: 4176
Откуда:
Занятие:
Возраст: 65

14-09-2010 05:32 GMT3 часа #1344354   Split
MRN$
Ну тогда возможно Darien Fx и SkyLoader частично правы!
Любой вызов твоей функции 'get()' при отсутствии объекта приводит к тому, что второй (fpos_y) и всем последующим (fpos_z, ..., fdir_z) функция 'get_object_param(nil)' ничего не возвращает. Даже nil'ов! Она возвращает 1 (один!) параметр, а ты просишь 8!
Можно игнорировать лишние возвращаемые параметры, но НЕ требовать(!) несуществующие -> 'No such operator defined'.

Если сделать так: return false, nil,nil,nil,nil,nil,nil,nil,nil - то должно сработать, но это уже 'плохой' почерк кодера-программера.


P.S. Собственно вероятную причину ошибки тебе подсказал. Как вариант можно делать так, дабы избежать ошибки с несуществующими операторами:
Код:
function get()
  local fpos_x, fpos_y, fpos_z, flvid, fgvid, fdir_x, fdir_y, fdir_z
  local arg = get_object_param(test_obj)
  if arg[1] and #arg == 8 then
   fpos_x, fpos_y, fpos_z, flvid, fgvid, fdir_x, fdir_y, fdir_z = arg
  end
  --/ ну и далее...
end


MRN$
[1] Странник
Онлайн статус=0  Профиль    




Посты: 114
Откуда:
Занятие:
Возраст: 16

14-09-2010 07:48 GMT3 часа #1344356   Split
этот код как-бы "в принципе" - реально он несколько другой... в общем - лопачу код на предмет казусов.

Artos, спасибо, буду разбираться...

=========================================

PS

А не может быть такого, что у предметов вообще нет методов direction и vertex-ов? Пробовал у O_INVBOX или аптечки получить дирекцию и вертексы - ничего, только id и position-ы.

Нужен предмет у которого можно получить текущую дирекцию и вертексы.

Сообщение было успешно отредактировано MRN$ (14-09-2010 07:48 GMT3 часа, назад)

erlik
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2338
Откуда: Набережные Челны
Занятие: В чем сила, брат? В AutoIT3 и WinAPI.
Возраст: 47

18-03-2015
14-09-2010 15:39 GMT3 часа #1344429   Split
MRN$
У объектов O_INVBOX, так же как и прочих и дирекция и вертексы (они то уж никак отсутствовать не могут) имеются.
вот так я получал данные для своих схронов:
Код:
function InventoryBox:net_spawn(data)
taynik_rnd.SpawnVisibleTreasure(self.object)
local dir = self.object:direction()
local pos = self.object:position()
Console("InventoryBox:net_spawn: Переход в онлайн")
Console(string.format("Direction = %.1f, %.1f, %.1f, Position: x= %.1f, y=%.1f, z=%.1f Lvid = %d Gvid = %d Id = %d",
dir.x, dir.y, dir.z,
pos.x, pos.y, pos.z,
self.object:level_vertex_id(),
self.object:game_vertex_id(),
self.object:id()))
return object_binder.net_spawn(self, data)
end

вот результат: дирекция есть и у всех походу одна и таже
Код:
! Cannot find saved game ~ direction = -0.0, 0.0, 1.0, position: x= 203.0, y=8.9,   z=158.9 lvid = 499116 gvid = 149 id = 43520
! Cannot find saved game ~ direction = -0.0, 0.0, 1.0, position: x= 121.1, y=8.0,   z=242.9 lvid = 424715 gvid = 240 id = 50432
! Cannot find saved game ~ direction = -0.0, 0.0, 1.0, position: x= 82.6,  y=-11.7, z=250.6 lvid = 377462 gvid = 189 id = 50445
! Cannot find saved game ~ direction = -0.0, 0.0, 1.0, position: x= 76.3,  y=1.8,   z=345.1 lvid = 369409 gvid = 192 id = 51456

--------------------------------------------------------------------
VITOSSSSS
Есть такой файлик в папке config\misc - items.ltx называется.
а еще есть unique_items.ltx и quest_items.ltx

Сообщение было успешно отредактировано erlik (14-09-2010 15:39 GMT3 часа, назад)

Vitоs
[1] Banned
Онлайн статус=0  Профиль    




Посты: 467
Откуда: Колхоз :D
Занятие: Бaмбук...
Возраст: 27

14-09-2010 14:58 GMT3 часа #1344467   Split
А кaкой фийл отвeчaeт зa конфиги продуктов?

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

и зa прeдмeты?

Сообщение было успешно отредактировано VITOSSSSS (14-09-2010 14:58 GMT3 часа, назад)

Mehanik Yar
[1] Странник
Онлайн статус=0  Профиль    




Посты: 469
Откуда: Уфа
Занятие:
Возраст:

14-09-2010 17:29 GMT3 часа #1344528   Split
к сожилению нет там такой строчки.


SPD mechenuy
[1] Странник
Онлайн статус=0  Профиль    




Посты: 20
Откуда: Кировоград
Занятие: Модостроение
Возраст: 27

14-09-2010 17:31 GMT3 часа #1344530   Split
VITOSSSSS item.ltx


TheDoktor
[20] Сталкер
Онлайн статус=0  Профиль    



Вернулся...

Посты: 3820
Откуда: Керчь
Занятие: MotoGP
Возраст: 37

26-10-2012
14-09-2010 18:53 GMT3 часа #1344591   Split
Помогите, плиз! Вставил дробовик, уже давно, но у него проблема, прицеливание идёт не через мушку, вот так:

Какой параметр надо подредактировать, что бы прицеливаться через мушку, т.е. так:


userbar
SkyLoader
[7] Выживший
Онлайн статус=0  Профиль    




Посты: 755
Откуда: Москва
Занятие:
Возраст:

09-09-2011
14-09-2010 19:39 GMT3 часа #1344604   Split
Artos, да, но насколько я знаю device().cam_pos не изменяется, как же изменить позицию камеры? Имею ввиду, чтобы координаты вписал, и камера переместилась.

Сообщение было успешно отредактировано SkyLoader (14-09-2010 19:39 GMT3 часа, назад)

Максим Р.
[3] Новобранец
Онлайн статус=0  Профиль    




Посты: 1026
Откуда:
Занятие:
Возраст:

14-09-2010 19:09 GMT3 часа #1344605   Split
TheDoktor, вроде, какой-то из этих параметров zoom_rotate_x и zoom_rotate_y, ещё, может быть, zoom_offset. Это всё в конфиге оружия в секции настройки hud'а. В данном случае, скорее всего, нужно менять zoom_rotate_y.


Stalk15
[1] Странник
Онлайн статус=0  Профиль    




Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Занятие: Модю сталкера, полегоньку юзаю Visual Basic и Visual С#.
Возраст: 30

19-11-2012
14-09-2010 20:07 GMT3 часа #1344651   Split
Код:
    <game_task id="kvest_gygygygy">
    <title>///</title>
<objective>
<icon>ui_iconsTotal_find_item</icon>
<text>///</text>
<infoportion_complete>kvest_pick_up_order_complete</infoportion_complete>
</objective>
<objective>
<text>///</text>
<infoportion_complete>waiting_order_complete</infoportion_complete>
  <!-- <function_complete>order_items.timer_waiting_order</function_complete>  -->
    </objective>
<objective>
<text>///</text>
       <infoportion_complete>kvest_pick_up_order_complete</infoportion_complete>
    </objective>
</game_task>

Подскажите, как подобные квесты выдавать несколько раз, тоесть просле прохождения этого квеста можно было его еще раз взять и пройти?Удаление инфопоршней не помогает.Или квесты в игре одноразовы?


karavan
[3] Новобранец
Онлайн статус=0  Профиль    




Посты: 940
Откуда:
Занятие:
Возраст:

08-05-2013
14-09-2010 20:25 GMT3 часа #1344658   Split
Дайте пример функции, которая срабатывает при использовании предмета, т.е. из дропа так сказать. Просто забыл как это делается.
Нужно что бы при использовании предмета (например Хлеба) выводилось сообщение.


blackraven6
[1] Странник
Онлайн статус=0  Профиль    



Черный Ворон

Посты: 625
Откуда: СПб
Занятие: Страйкбол. Мододел STALKER, Fallout 3. В КОМАНДУ НЕ ЗВАТЬ!!!
Возраст: 31

01-09-2010
14-09-2010 20:31 GMT3 часа #1344664   Split
karavan Скачай (если у тебя нету, но уверен что есть) скрипт бомбы с дистанционным управлением товарища erlik'a и возьми там скрипт от ремнабора.


userbar
Vitоs
[1] Banned
Онлайн статус=0  Профиль    




Посты: 467
Откуда: Колхоз :D
Занятие: Бaмбук...
Возраст: 27

14-09-2010 20:55 GMT3 часа #1344677   Split
Я скaчaл рaпaковaный all.spawn и отрeдaктировaл тaм всe что мнe нaдо, включaю новую игру и мои измeнeния нe происходят. Можeт нaдо спaковaть aлл.спaвн? Или что то другоe?


Vitоs
[1] Banned
Онлайн статус=0  Профиль    




Посты: 467
Откуда: Колхоз :D
Занятие: Бaмбук...
Возраст: 27

14-09-2010 21:15 GMT3 часа #1344687   Split
Блин тeпeрь прeйдeтся учится упaковывaть aлл.спaвн. А кaк упaковaть all.spawn?


and_modern
[1] Странник
Онлайн статус=0  Профиль    




Посты: 61
Откуда:
Занятие: нету
Возраст:

25-05-2011
14-09-2010 21:21 GMT3 часа #1344689   Split
VITOSSSSS А гугл для чего? Впиши в поиск all.spawn ТЧ или полностью сталкер тени...
Там и статью может найдешь...а вообще в архиве все есть как запак. и как разпак...
-------------
karavan


erlik
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2338
Откуда: Набережные Челны
Занятие: В чем сила, брат? В AutoIT3 и WinAPI.
Возраст: 47

18-03-2015
14-09-2010 21:22 GMT3 часа #1344690   Split
karavan, blackraven6
Я уже гораздо проще делаю - ставлю ГГ каллбек на использование предметов:
Код:
db.actor:set_callback(callback.use_object,         this.OnUseActorObject)

эту строчку надо вписать в любой скрипт который вызывается при загрузке игры. В bind_stalker например в метод reinit или reload или load или net_spawn.

а это функция которая будет вызываться на юзание ГГ любого предмета

Код:
function OnUseObject(obj, who)
    if obj then
-- делаем проверку на использование нужного предмета
        if obj:section() =="communicator" then
        alife():create("communicator", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) -- спавним его обратно
        level.start_stop_menu(this.my_message(), true) --запускаем меню
           end
     end
end


Darien Fx
[1] Странник
Онлайн статус=0  Профиль    




Посты: 1372
Откуда:
Занятие:
Возраст: 30

14-09-2010 21:26 GMT3 часа #1344694   Split
Цитата
Если бы клиентский объект НЕ был бы в онлайне иль еще где-то не зарегистрировался бы, то НЕ прошла бы проверка 'if obj then', т.к. нечего было бы передавать на вход ...

Прошла бы, ведь серверный объект то (уже) есть! И в данном случае 'if obj then' сработает и для оффлайн аптечки с последующим приминением 'онлайн-методов' к ней и вылетом.
P.S. Гаданиями не занимаюсь, ибо проверено это .


erlik
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2338
Откуда: Набережные Челны
Занятие: В чем сила, брат? В AutoIT3 и WinAPI.
Возраст: 47

18-03-2015
14-09-2010 22:26 GMT3 часа #1344732   Split
Кстати нашел в справочнике malandrinusa один замечательный каллбек, который никто не использует хотя он очень удобен в некоторых ситуациях. Наверно многие (как впрочем и я) его просто проглядели.
Например мы спавним объект и нам тут же надо что-нить с этим объектом сотворить - убить, пнуть, зафиксировать, получить дирекцию или еще чего.
Так как практически все нужные нам методы работают только с клиентскими объектами приходится ждать пока объект перейдет в онлайн - то есть ставить таймер на 0.5-1 cек или же лезть в его биндер и отлавливать наш объект там на выходе в онлайн.
Но все можно сделать гораздо проще, так как существует каллбек на выход в онлайн.
Пример: спавним объект

Код:
function Spawn()
local pos = db.actor:position()
local lvid = db.actor:level_vertex_id()
local gvid=  db.actor:game_vertex_id()
local obj = alife():create("объектi", pos, lvid, gvid)
--вызываем метод add  класса client_spawn_manager()  которому передаем айди нашего объекта
level.client_spawn_manager():add(obj.id, 0, spawn_callback, "дополнительный аргумент")
end

аргументы метода:
obj.id -- это айди объекта на который ставим каллбек
0 -- это айди эктора - нафиг не нужно, но нужно
spawn_callback -- имя функции которая вызовется при переходе объекта в онлайн
"дополнительный аргумент" -- дополнительный аргумент для функции spawn_callback - что хотим то и передаем, если оно конечно надо, либо вообще ничего не пишем.

-- сюда ставим вызов нужного нам действия при переходе объекта в онлайн
Код:
function spawn_callback(arg, iId, gObj)
news_manager.send_tip(db.actor, "Каллбек на переход в онлайн вызван", 0, "trader", 10000)
-- снимаем каллбек, чтобы он не вызывался каждый раз когда объект снова окажется в онлайне
level.client_spawn_manager():remove(iId, 0) 
end


принимаемые параметры:
arg - тот самый дополнительный аргумент
iId - айди объекта на который поставлен каллбек
gObj -- клиентская юзердата объекта на который поставлен каллбек

как видно один параметр явно лишний - вполне хватило бы одной юзердаты. Но раз разрабы так сделали, значит им зачем то это надо было.

Сообщение было успешно отредактировано erlik (14-09-2010 22:26 GMT3 часа, назад)

Darkscape
[1] Странник
Онлайн статус=0  Профиль    




Посты: 696
Откуда: Якутск
Занятие: ЕГЭ, ЕГЭ и ещё раз ЕГЭ!
Возраст: 26

23-06-2014
14-09-2010 22:31 GMT3 часа #1344742   Split
Я повторяю свой вопрос:
Какую строчку надо писать чтоб броня могла восстанавливать здоровье?


qwqwqwqw1
[1] Странник
Онлайн статус=0  Профиль    




Посты: 28
Откуда: Новокуйбышевск
Занятие: флуд
Возраст: 32

14-09-2010 22:34 GMT3 часа #1344747   Split
Darkscape конфиг лечебного Берилла посмотри, он в файле config\misc\unique_items.ltx


Ma$ter
[1] Странник
Онлайн статус=0  Профиль    




Посты: 477
Откуда: Tamboff
Занятие: Мотоциклы, программирование
Возраст:

26-06-2011
15-09-2010 00:52 GMT3 часа #1344844   Split
Из мода под ЧН взял ПДА и решил переделать под себя, но есть проблема:

xml:InitWindow("description_item:content_text", 0, ctrl)
self.desc_item_fn_sz = vector2():set(ctrl:GetWidth(), ctrl:GetHeight())

Это я так понимаю создается некое окошко и задаются его размеры. Но проблема в том что vector2 в ТЧ не сушествует в отличии от ЧН и ЗП. Как по другому задать размеры окошка?


erlik
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2338
Откуда: Набережные Челны
Занятие: В чем сила, брат? В AutoIT3 и WinAPI.
Возраст: 47

18-03-2015
15-09-2010 03:08 GMT3 часа #1344885   Split
Ma$ter
В ТЧ координаты и размер окон задаются через метод Init(number, number, number, number), или Init(Frect*) или SetWndRect(Frect) или SetWndRect(number, number, number, number);
Если только размеры - то есть метод SetWndSize(number, number). Но не помню работает ли он как надо - помню, что пробовал его использовать, в одном меню, но потом заменил.
Примеры смотри в геймдате или модах.
Хотя не думаю, что тебе это поможет засунуть меню из ЧН в ТЧ - так как чувствую там не одну строчку переписывать придется. Тем более, что раз параметр self.desc_item_fn_sz требует именно векторный массив из двух цифр, то замена vector2() методом из ТЧ вряд ли будет возможна.


MRN$
[1] Странник
Онлайн статус=0  Профиль    




Посты: 114
Откуда:
Занятие:
Возраст: 16

15-09-2010 14:04 GMT3 часа #1344902   Split
По прежнему, не могу получить с объекта вертексы и дирекцию... ни время, ни перевод онлайн-офлайн - не влияет... в общем, всё что знал - перепробовал. Тут какая-то тонкость, может даже элементарная, но моей компетенции, что-бы разобраться - не хватает.
Здесь - всё как есть: файл scop.script, строки 138 и 153 - функция get_object_param() - не работает ни в каких вариантах: position - есть, а оба вертекса - всегда nil

Если у кого есть возможность - прошу помочь сделать эту функцию рабочей.

как проверять:
0. предмет в слоте 2.
1. активировать слот, ввести дистанцию, кнопка "тест", спавниться предмет, выход.
2. погулять вокруг предмета, сколько угодно - не влияет.
3. активировать слот, ввести имя, кнопка "сохранить тест", будет "новость" с параметрами где вертексы == nil
:(


====================================================


erlik
Весьма спасибо.
Значит всё-таки - "пальцы-сосиски"
Вот, что бывает когда "постановщик" за "программирование" берётся...

Сообщение было успешно отредактировано MRN$ (15-09-2010 14:04 GMT3 часа, назад)

strelka2000
[1] Странник
Онлайн статус=0  Профиль    




Посты: 60
Откуда: л-к
Занятие: играть в stalker
Возраст: 23

15-09-2010 13:31 GMT3 часа #1344964   Split
а как выйти из чаэс когда он на башне появляется мод бессмертие


erlik
[10] Житель
Онлайн статус=0  Профиль    




Посты: 2338
Откуда: Набережные Челны
Занятие: В чем сила, брат? В AutoIT3 и WinAPI.
Возраст: 47

18-03-2015
15-09-2010 13:52 GMT3 часа #1344970   Split
MRN$
Посмотрел скрипт - у тебя там было две ошибки:
1) В функции get_object_param() ты пытался получить данные с серверной юзердаты заспавненного объекта не получив ее клиентскую копию.
2) в функции вывода данных экран была ошибка - свойства m_level_vertex_id и m_game_vertex_id были неверно указаны - без буквы m_ - потому и nil получал вместо вертексов.
В общем я там переписал две функции - под клиентскую юзердату. Посмотри - как будешь в итоге выводить и форматировать - тут уж сам выбирай.
ссыль
_http://narod.ru/disk/24909268000/scop.rar.html


Darkscape
[1] Странник
Онлайн статус=0  Профиль    




Посты: 696
Откуда: Якутск
Занятие: ЕГЭ, ЕГЭ и ещё раз ЕГЭ!
Возраст: 26

23-06-2014
15-09-2010 14:08 GMT3 часа #1344977   Split
qwqwqwqw1
Лечебный Берилл не восстанавливает здоровье,он препятсвует кровотечению.


Fantom2323
[1] Странник
Онлайн статус=0  Профиль    




Посты: 778
Откуда: 25 RUS
Занятие: Универсальное модостроение
Возраст: 28

29-08-2013
15-09-2010 14:45 GMT3 часа #1344998   Split
Darkscape
Ты по прикалываться решил?! Берилл в игре на то и лечебный, потому что лечит, да и вообще, если самому было лень найти эту строчку, то вот:

health_restore_speed -- как-то так,


Artos
[20] Сталкер
Онлайн статус=0  Профиль    




Посты: 4176
Откуда:
Занятие:
Возраст: 65

15-09-2010 18:12 GMT3 часа #1345006   Split
Fantom2323
Ты не прав.
То, что написано ... не всегда работает!
Параметр 'health_restore_speed' и прочие 'ххх_restore_speed' на брониках НЕ работаею.
Они только для класса артефактов.
Для броников требуется писать скриптовую схему, которая и будет обрабатывать этот (эти) парамерт(ы), типа как в Zenobian-mod'е.


MRN$
Хотя erlik уже тебе подсказал ошибки, но все же глянь и этот вариант. И подправлено и подоптимизировано: <скрипт>

Сообщение было успешно отредактировано Artos (15-09-2010 18:12 GMT3 часа, назад)



Форумы > Архив > Склад > Вопросы и ответы (ТЧ по 18.11.2010)

Страница 5 из 70Первая«2345678 »Последняя


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



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

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