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

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

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









Автор Сообщение
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
13-05-2010 22:49 GMT3 час. #1247127   

# TheDoktor :
Gun12 Я сначала закинул "ak74u.ogf" и "wpn_ak74u_hud.ogf", у меня даже игра не запустилась.

Откуда ты взял эти модели? Дело в том (для начала), что в них могут прописаны пути к СВОИМ "БЫВШИМ" текстурам, которых нет в оригинале.
Повторю.
Покажи лог.

отредактировал(а) Gun12: 13-05-2010 22:55 GMT3 час.

Не стань номинантом премии Дарвина.
karavan
    
Посты: 940
Откуда:
Возраст:
13-05-2010 22:53 GMT3 час. #1247128   
Люди подскажите пожалуйста есть ли возможность создать проверку на приближение ГГ к НПС?
Т.Е. если ГГ подошел на растояние 3-х метров к НПС то... действие. Помогите написать такую функцию если это возможно конечно. :-)


Анонс мода-аддона "S.T.A.L.K.E.R. - Безопасная земля"
Узнай о моде больше - подпишись на канал (кликабельно)
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
13-05-2010 22:59 GMT3 час. #1247134   
karavan
Задай больше условий.
Из этих, ИМХО, я бы сделал из логики НПС. Как? Это вопрос второй, если тебя устроит.
А если нужен именно СКРИПТ - то это уже вопрос третий.


Не стань номинантом премии Дарвина.
karavan
    
Посты: 940
Откуда:
Возраст:
13-05-2010 23:31 GMT3 час. #1247150   
Gun12 Мне именно и нужна такая функция которая будет биндится и условие как я написал:

Если ГГ подошел к НПС (с любым отношением к ГГ) на растояние 3-х метров то например вывести сообщение "отвали Меченый!!!".

Логика отдельного НПС не подходит. Хотя как это сделать я примерно понимаю. Нужен именно скрипт. Если организовать такую проверку конечно возможно вообще. :-G


Анонс мода-аддона "S.T.A.L.K.E.R. - Безопасная земля"
Узнай о моде больше - подпишись на канал (кликабельно)
TheDoktor
    
Посты: 3814
Откуда: Керчь
Возраст: 37
13-05-2010 23:35 GMT3 час. #1247151   
karavan Смотри, а мод "по одёжке встречают" не на этом принципе основан? Там получается неписи"смотрят" в какой ты одежде, допустим ты нейтрал подходишь к бандитам в куртке бандита, то они тебя принимают за своего.


Я – хозяин своей судьбы, но только судьба знает, где закончится мой путь.

Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
14-05-2010 00:08 GMT3 час. #1247157   
karavan
Я не совсем в адеквате, поэтому даю что даю. На большее сейчас мозгов не хватает. Да ещё и с теле**50016ea8aab1bb10eeba**
if obj:position():distance_to(db.actor:position()) <= сколько нужно метров then
тут пиши чё те надо
end
end
end
[/code]


Не стань номинантом премии Дарвина.
karavan
    
Посты: 940
Откуда:
Возраст:
14-05-2010 00:19 GMT3 час. #1247158   
Gun12 Спасибо. Теперь хоть что-то есть. :ye)

TheDoktor А про этот мод я и забыл.


Анонс мода-аддона "S.T.A.L.K.E.R. - Безопасная земля"
Узнай о моде больше - подпишись на канал (кликабельно)
Artos
    
Посты: 4176
Откуда:
Возраст: 65
14-05-2010 00:47 GMT3 час. #1247161   
function Come_Nearer(obj_id,Dictanse)
  if not Dictanse then Dictanse = M end --/ если дистанция не опредена, сравниваем с M метрами
  local PositionActor = db.actor:position() --/ позиция ГГ (вычисляем 1-раз)
 
  local function Compare(id) --/ внутренняя локальная функция сравнения
    local obj = level.object_by_id(id)
    if obj and IsStalker(obj) then
      if obj:position():distance_to(PositionActor) <= Dictanse then
        return true --/> дистанция не больше заданной
      end
    end
  end
 
  if obj_id then --/ если задан id конкретного сталкера
    Compare(obj_id)
  else --/ иначе перебираем всех на локации
    for id=1,65534 do
      Compare(id)
    end
  end
 
  return false --/> не близко
end

Вместо 'М' вставить нужное чисто (в метрах).
Вызывается или без аргументов, тогда функция выдаст результат о приближении к любому 'сталкеру' на дистанцию М метров, или с аргументами (Id-сталкера, Дистанция до него) - на выходе: достиг ли ГГ этой дистанции.

отредактировал(а) Artos: 14-05-2010 01:46 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
karavan
    
Посты: 940
Откуда:
Возраст:
14-05-2010 00:58 GMT3 час. #1247163   
Artos Благодарю. А где в этой функции можно поставить вывод сообщения? Т.е действие. Там где дистанция не больше заданой? Зарание прошу простить за тупость.


Анонс мода-аддона "S.T.A.L.K.E.R. - Безопасная земля"
Узнай о моде больше - подпишись на канал (кликабельно)
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
14-05-2010 01:00 GMT3 час. #1247164   
Artos
Поясните пожалуйста, как получить аргумент вызова в первой строке?


Не стань номинантом премии Дарвина.
Artos
    
Посты: 4176
Откуда:
Возраст: 65
14-05-2010 01:08 GMT3 час. #1247165   
karavan
Вызывай данную функцию, к примеру, такой (из биндера):

funсtion Check_Distanse() --/ общий мониторинг
  if Come_Nearer() then
    news_manager.send_tip(db.actor, "кто-то близко от ГГ", 0, "default", 8000)
  end
end

или

funсtion Check_Distanse(IdObj,nil) --/ персональный мониторинг
  if Come_Nearer(IdObj,5) then
    news_manager.send_tip(db.actor, "ГГ подошел к персу на M метров", 0, "default", 8000)
  end
end

где IdObj - или уже известное число или уже определенная переменная, соответствующая искомому Id-перса.

можно и так:

funсtion Check_Distanse(nil,8) --/ мониторинг по дистании
  if Come_Nearer(nil,8) then
    news_manager.send_tip(db.actor, "ГГ подошел к кому-то на 8 метров", 0, "default", 8000)
  end
end

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

Или прямо в основной функции замени "return true" на нужный код действия.

Само собою: НЕ забыть в любом случае заменить "М" (в основной функции) на нужное число.


Gun12
Аргументы вызова в 1-й строке, т.е. на входе в функцию определяются модмейкером в зависимости от условий.
Если если известно имя непися - определяем его Id и gthtlftv на вход функции
Если известен сид (story_id) - определяем Id по этому сиду.
Если есть некий список сталкеровЮ то перебирая список и определяя Id - вызываем функцию ...
Все зависит от конкретики и уже имеющихся данных.

отредактировал(а) Artos: 14-05-2010 01:58 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
karavan
    
Посты: 940
Откуда:
Возраст:
14-05-2010 01:25 GMT3 час. #1247169   
Artos Можно уточнить?
Например**50016ea8aab1bb10eeba**


Анонс мода-аддона "S.T.A.L.K.E.R. - Безопасная земля"
Узнай о моде больше - подпишись на канал (кликабельно)
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
14-05-2010 01:30 GMT3 час. #1247170   
Artos
Так в том то и дело, что нет никакой конкретики.
Именно от этого я и отталкивался.
Вы предполагаете что ID известно. А в условии я этого не увидел (возможно я их не увидел. Но причины я уже объяснил :-))
Поэтому и спрашивал, - "Откуда взялись аргументы, если по условию они должны быть неизвестны?"
При знании конкретных неписей, я бы не морочил себе голову, и проверял бы из логики (прав я или нет - это вопрос второй, но НЕ неверный. Может быть только не оптимальный).


Не стань номинантом премии Дарвина.
Artos
    
Посты: 4176
Откуда:
Возраст: 65
14-05-2010 01:32 GMT3 час. #1247171   
karavan
Да, вставив в сталкер-биндер получишь постоянный мониторинг о приближении ГГ к любому сталкеру на любой локации. Вопрос неоптимальности/чрезмерности такого решения для ресурсов - сейчас не рассматривается, это отдельная огромная тема.

"Лишний" тэг 'end' - закрывающий тэг для внутренней функции 'local Compare(id) ... end'. Т.е. НЕ лишний.


Gun12
Я дал универсальную (если ее так можно назвать) функцию, эквивалентную твоему варианту, но(!):
- несколько оптимизированней, т.к. позиция ГГ определяется один раз;
- функция может использоваться НЕ только мониторингом "по всем", а точечным (конкретного сталкера) и/или с вариациями по дистанции проближения.

Т.о. если нет конкретики - используется безаргументный вариант, если конкретика появится - почти "все" есть, чтобы ее использовать ...

отредактировал(а) Artos: 14-05-2010 01:43 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
karavan
    
Посты: 940
Откуда:
Возраст:
14-05-2010 01:41 GMT3 час. #1247172   
Artos Странно но у меня не работает.

function Come_Nearer(obj_id,Dictanse)
if not Dictanse then Dictanse = 5 end --/ если дистанция не опредена, сравниваем с M метрами
local PositionActor = db.actor:position() --/ позиция ГГ (вычисляем 1-раз)

local Compare(id) --/ внутренняя локальная функция сравнения
local obj = level.object_by_id(id)
if obj and IsStalker(obj) then
if obj:position():distance_to(PositionActor) <= Dictanse then
return true --/> дистанция не больше заданной
end
end
end

if obj_id then --/ если задан id конкретного сталкера
Compare(obj_id)
else --/ иначе перебираем всех на локации
for id=1,65534 do
Compare(id)
end
end

return false --/> не близко
end

funktion Check_Distanse() -- В бинд_сталкер на апдейт дельта
if Come_Nearer() then
news_manager.send_tip(db.actor, "кто-то близко от ГГ", 0, "default", 8000)
end
end

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

А Dictanse ненадо задавать как локальную переменную?

отредактировал(а) karavan: 14-05-2010 02:15 GMT3 час.

Анонс мода-аддона "S.T.A.L.K.E.R. - Безопасная земля"
Узнай о моде больше - подпишись на канал (кликабельно)
Artos
    
Посты: 4176
Откуда:
Возраст: 65
14-05-2010 01:47 GMT3 час. #1247173   
karavan
сорри, подправь все что выделено оранжевым ...

Distanse - можешь задавать в качестве аргумента, можешь НЕ задавать, вроде веде пояснил. В варианте 2 этот аргумент хоть и вроде задается, но как "nil", что можно рассматривать как незадано.

отредактировал(а) Artos: 14-05-2010 02:35 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
14-05-2010 01:53 GMT3 час. #1247174   
Я тоже люблю заниматься оптимизацией, просто в условиях "задания" я этого не увидел.
Поэтому дал конкретный ответ на конкретный вопрос.
Я посмотрю всё позже, дома с компьютера. На телефоне это плохочитабельно.

Идею я понял. Мой вариант не самый удачный, но ...
Пока никто не отвечал, другого не было.
У меня нет причин не доверять Вашему выбору. Разберемся. Усвоим.


Не стань номинантом премии Дарвина.
Artos
    
Посты: 4176
Откуда:
Возраст: 65
14-05-2010 01:56 GMT3 час. #1247176   
Gun12
Я же ни чего не имею против. :-) Просто постоянное вычисление/определение одного и того же параметра в цикле по-любому стОит выносить из цикла (даже если нет в "задании", а ведь в задании - использовать в биндере!). ИМХО.

отредактировал(а) Artos: 14-05-2010 02:34 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
karavan
    
Посты: 940
Откуда:
Возраст:
14-05-2010 02:07 GMT3 час. #1247177   
Artos Теперь не вылетает но сообщение при приближении к НПС не появляется


function Come_Nearer(obj_id,Dictanse)
if not Dictanse then Dictanse = 5 end --/ если дистанция не опредена, сравниваем с M метрами
local PositionActor = db.actor:position() --/ позиция ГГ (вычисляем 1-раз)

local function Compare(id) --/ внутренняя локальная функция сравнения
local obj = level.object_by_id(id)
if obj and IsStalker(obj) then
if obj:position():distance_to(PositionActor) <= Dictanse then
return true -- дистанция не больше заданной

end
end
end

if obj_id then -- если задан id конкретного сталкера
Compare(obj_id)
else -- иначе перебираем всех на локации
for id=1,65534 do
Compare(id)
end
end

return false -- не близко
end

function Check_Distanse() -- общий мониторинг
if Come_Nearer() then
news_manager.send_tip(db.actor, "кто-то близко от ГГ", 0, "default", 8000)
end
end




Анонс мода-аддона "S.T.A.L.K.E.R. - Безопасная земля"
Узнай о моде больше - подпишись на канал (кликабельно)
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
14-05-2010 02:19 GMT3 час. #1247178   
Artos
Да мне самому все эти циклы как серпом ...
Я прошу время (теперь уже до после завтра:-)) чтобы оптимизировать всё это.
Хотя Вы уже всё сделали.
Я понимаю это подспудно (т.к. состояние оставляет желать лучшего), и в конце концов я соглашусь с Вами, НО! при условии, что "заказчик" сам определится, - что ему нужно. И поставлю акцент - КОНКРЕТНО.
Дальше для всех остальных.
Акцент поставлен не случайно.
Как Вы зададите Вопрос - таков будет и ответ.
Р.S.
Такие страсти разгорелись, что даже интересно - получится или нет:-)

отредактировал(а) Gun12: 14-05-2010 02:29 GMT3 час.

Не стань номинантом премии Дарвина.
Artos
    
Посты: 4176
Откуда:
Возраст: 65
14-05-2010 02:19 GMT3 час. #1247179   
karavan
Думается мне, что ты под "прописать в файле bind_stalker" понимаешь несколько буквально.
Прописать нужно не просто в файл, а в ту

отредактировал(а) Artos: 14-05-2010 02:38 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
karavan
    
Посты: 940
Откуда:
Возраст:
14-05-2010 02:36 GMT3 час. #1247181   
Artos Вот как я делаю, поправь что не так:


В function actor_binder:update(delta)
перед последним end пришу вызов
music_near.Check_Distanse()

Ну а в файле music_near.script вот это


function Check_Distanse() -- общий мониторинг
if Come_Nearer() then
news_manager.send_tip(db.actor, "кто-то близко от ГГ", 0, "default", 8000)
end
end

function Come_Nearer(obj_id,Dictanse)
if not Dictanse then Dictanse = 5 end --/ если дистанция не опредена, сравниваем с M метрами
local PositionActor = db.actor:position() --/ позиция ГГ (вычисляем 1-раз)

local function Compare(id) --/ внутренняя локальная функция сравнения
local obj = level.object_by_id(id)
if obj and IsStalker(obj) then
if obj:position():distance_to(PositionActor) <= Dictanse then
return true -- дистанция не больше заданной

end
end
end

if obj_id then -- если задан id конкретного сталкера
Compare(obj_id)
else -- иначе перебираем всех на локации
for id=1,65534 do
Compare(id)
end
end

return false -- не близко
end




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

Результат. Игра не вылетает, но и сообшение при приближении к НПС не выводится.

отредактировал(а) karavan: 14-05-2010 02:38 GMT3 час.

Анонс мода-аддона "S.T.A.L.K.E.R. - Безопасная земля"
Узнай о моде больше - подпишись на канал (кликабельно)
Artos
    
Посты: 4176
Откуда:
Возраст: 65
14-05-2010 02:44 GMT3 час. #1247182   
karavan
Если ты используешь "общий" мониторинг, то почему же ты в основной функции оставил опциональные аргументы?

  function Come_Nearer(obj_id,Dictanse)

Если в твоем "music_near.script" где-то определена "obj_id", то будет затык.

сотри и напиши без аргументов вызова:

  function Come_Nearer()


Вот, вставь это в свой music_near.script

function Check_Distanse()
  if not Dictanse then Dictanse = 5 end
  local PositionActor = db.actor:position() --/ позиция ГГ (вычисляем 1-раз)
  local idActor = db.actor:id() --/ Id ГГ, чтобы НЕ проверял себя же!
 
  local function Compare(id) --/ внутренняя локальная функция сравнения
    local obj = level.object_by_id(id)
    if obj and IsStalker(obj) and id ~= idActor then
      if obj:position():distance_to(PositionActor) <= Dictanse then
        news_manager.send_tip(db.actor, "кто-то близко от ГГ", 0, "default", 8000)
      end
    end
  end
 
  if obj_id then --/ если задан id конкретного сталкера
    Compare(obj_id)
  else --/ иначе перебираем всех на локации
    for id=1,65534 do
      Compare(id)
    end
  end
end

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

отредактировал(а) Artos: 14-05-2010 03:00 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
karavan
    
Посты: 940
Откуда:
Возраст:
14-05-2010 03:16 GMT3 час. #1247183   
Artos Спасибо, теперь всё работает.

Вопрос чисто из любопытства: вот это IsStalker движковое? И где можно посмотреть эти методы (не знаю как правально называются)? Просто вдруг понадобится заменить IsStalker на что-то другое. Например монстров и Сидора функция не определила как НПС, вот и заинтересовало. :)


Анонс мода-аддона "S.T.A.L.K.E.R. - Безопасная земля"
Узнай о моде больше - подпишись на канал (кликабельно)
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
14-05-2010 03:28 GMT3 час. #1247184   

# karavan :IsStalker движковое?

дружище, не в обиду, но перед тем как задавать подобный вопрос, забей его в "поиск в файлах".
Найдешь в ... Не скажу где.


Не стань номинантом премии Дарвина.
karavan
    
Посты: 940
Откуда:
Возраст:
14-05-2010 03:35 GMT3 час. #1247185   
Gun12 Ладно. Ничего, поищу сам раз не движковое.
Просто не интересовался вот и не знаю. :-)

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

:ye) Такс нашел в файле _g функции
IsStalker
IsMonster
isWeapon
Теперь вопрос: Есть ли такое для торговцев, артефактов, аномалий и костюмов?

отредактировал(а) karavan: 14-05-2010 03:46 GMT3 час.

Анонс мода-аддона "S.T.A.L.K.E.R. - Безопасная земля"
Узнай о моде больше - подпишись на канал (кликабельно)
Gun12
    
Посты: 773
Откуда: СССР
Возраст: 52
14-05-2010 03:48 GMT3 час. #1247187   
Есть редактор Notepad++.
Помогает. Только я им уже не пользуясь очень давно.
Перешел на SciTE.
Теперь не представляю редактирования файлов без него.
Тем более занимаюсь Lua исключительно на нём.
Artos
Привычка большое дело.
И не столько привычка, сколько способность свободно ориентироваться в "знакомой местности".
Уже начав пользоваться SсiТЕ пытался найти что-то лучшее. Но "ностальгия" не дала :-). Да и мало редакторов такого класса.

Его файлы сами могут быть учебным пособием. На официальном сайте есть куча расширений для него.
Заключение (ИМХО) :
связка Total Commander + SciTE = атомная бомба в редактировании/программировании

отредактировал(а) Gun12: 14-05-2010 09:58 GMT3 час.

Не стань номинантом премии Дарвина.
Artos
    
Посты: 4176
Откуда:
Возраст: 65
14-05-2010 03:57 GMT3 час. #1247189   
karavan
Можно понять, когда "стройка" начинается с нуля. Тогда может и стоит брать "что под рукою" и строить как хочется, хотя тоже необходимо знать и соблюдать 'строительные нормы'.
Но если ты ПЕРЕстраиваешь, то НЕ знать собственно здание, его конструкцию, особенности и пр. - заведомо обречь себя на постоянные головоломки типа "а чой-то у меня не получается" или "а почему не выходит". И заранее обречь перестраиваемое здание на обрушениие.
Ты же придя садясь за стол не хлебаешь из тарелки, а вероятно используешь ложку! А почему? потому что уже знаешь, что она существуе, ей удобнее и чище ...
Так почему ты считаешь, что лезть в коды (и тем более скрипты) можно не озаботившись хотя бы поверхностным ознакомлением собственно что ты собираешься ковырять/надстраивать?!

Если уж читаешь заглянул и _g.script то прочти его ... может найдешь сам ответы по аналогии с уже найденным? (Прим: торговцы разрабами отнесены к монстрам, к сожалению. Поосторожнее с ними, оч.коварны порою ...).


Gun12
Пользуюсь уже более десятка лет UltraEdit'ом и ... никак не получается на SciTE пересесть. Сроднился. :-)

отредактировал(а) Artos: 14-05-2010 04:03 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
karavan
    
Посты: 940
Откуда:
Возраст:
14-05-2010 04:16 GMT3 час. #1247191   
Artos С этим я не спорю. Всё правельно. Просто я взялся учить lua на живых примерах. И это только лишь потому, что достаточного количества времени нету да и профессия другая, ника не связанная с програмированием. Да и еще игра любимая.... :) Вот и приходится то чужие моды разберать, то рабочие примеры клянчить.

Спасибо что помогаешь. Жаль нету у меня учителя, как говорится "учение свет, а за свет надо платить". :ye)


Анонс мода-аддона "S.T.A.L.K.E.R. - Безопасная земля"
Узнай о моде больше - подпишись на канал (кликабельно)
VenToReZ
    
Посты: 81
Откуда: г. Нерюнгри
Возраст: 29
14-05-2010 06:50 GMT3 час. #1247201   

# АнархОПанк :
VenToReZ не по теме



А куда тогда по теме???
Тема называется "Вопросы и ответы", я задал вопрос по моду, так что по теме.




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


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

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