Перейти к контенту

[SoC] Ковыряемся в файлах


Halford

Рекомендуемые сообщения

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

Спавнер

Поделиться этим сообщением


Ссылка на сообщение

Здрасте, у кого нибудь есть скрипт или строчки для починки машины? Я просто делаю такой мини мод, в котором при нажатии клавиши у героя востанавливается хп, выносливость и т.д; так вот мне нужна скрипт, который можно вызвать из главного меню. Поможите?

Поделиться этим сообщением


Ссылка на сообщение

Здрасте.

Знаю, что в сталкере тч есть такие функции:

    function set_character_rank(number);
    function character_rank();

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

Поделиться этим сообщением


Ссылка на сообщение

Здрасте, есть ли какой-нибудь способ телепортации, изменения позиции НПС?

Поделиться этим сообщением


Ссылка на сообщение
  16.02.2020 в 18:07, gam сказал:

Есть способ известный мне - это скрипт мобильного чейнджера (mobile_changer). Автор: Singapur22.

Конечно, спасибо, но где его можно скачать чтобы опробовать?

Поделиться этим сообщением


Ссылка на сообщение

@gam,  Я только что проверил и понял, что этот скрипт только для телепортации игрока? Просто мне нужна телепортация других объектов типо НПС, предметов и прочего.

Поделиться этим сообщением


Ссылка на сообщение

@gam, Мне нужен способ динамичной телепортации или изменения позиции объекта по такому принципу:
 

  Показать

 

Поделиться этим сообщением


Ссылка на сообщение

@Zander_driver, Вообщем мне уже больше не нужна функция телепорта, нужна помощь в установки метки на все загруженные предметы. Я бы хотел, чтобы оно работало по тому же принципу, но устанавливало метку на каждый объект. Я делаю один мини-мод, который является чем-то типо спавн меню или в таком роде и мне нужна функция при активации которой на каждый объект (нужен именно подбираемый предмет) на карте устанавливалась метка, а дальше уже я сам разберусь, а если нет - то ждите меня тут.

  Т.е. (Показать)

 

Поделиться этим сообщением


Ссылка на сообщение

Здрасте, никто не знает как можно прервать скрипт на 3 секунды и только по их истечению возобновить его? Т.е. работает скрипт, он прерывается, а потом продолжает работать

Поделиться этим сообщением


Ссылка на сообщение

Здрасте, есть ли какой-нибудь способ получить позицию или локацию сталкера, который на другой локации?

  08.06.2020 в 07:45, Pug-Lover сказал:

Здрасте, есть ли какой-нибудь способ получить позицию или локацию сталкера, который на другой локации?

Сам догадался. Вообщем:

function example()
for a=1,65534 do
obj=alife():object(a) --находим серверный объект
if obj and level.map_has_object_spot(obj.id, "kill_stalker_location")~=0 then --если объект существует и 'параметр' то
objlv=obj.m_level_vertex_id --получим левел вертекс объекта
objgv=obj.m_game_vertex_id --гейм вертекст объекта
objpos=obj.position --позицию
end
end
end

и после нахождения параметров уже можно делать с ними всё, что хочешь (желательно ещё добавить бы проверки на валидность этих параметров, но я не знаю, обязательно ли это). Я, например, с помощью этого сделал телепорт к объекту на другую локацию (идёт проверка level.map_has_object_spot(obj.id, "kill_stalker_location")~=0 позволяющая узнать, что у объекта метка задания "Убить сталкера", т.е. с этой функцией можно взять задание и быстро тпнуться прямо к нпс, чтобы убить) и с этим всем можно много всего придумать.

  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение

Кто может подсказать как можно считать данные сталкера, записать их (чтобы после перезагрузки не стёрлось) и заспавнить этого же нпс на другой локации, т.е. чтобы получилось что-то типо телепорта? Делаю мод на напарников(знаю, что уже есть другие такие моды, но мне по другой причине нужно сделать по-другому, другие моды кидать не надо) и хочу сделать, чтобы с нпс можно было по всей зоне бродить.

Поделиться этим сообщением


Ссылка на сообщение
  11.06.2020 в 19:34, Zander_driver сказал:

@Pug-Lover, Читаешь нетпакет нпс, составляешь список его имущества, для сложных предметов вроде оружия, читая и их нетпакет тоже.

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

Это если по старинке, на оригинальном движке без модернизации. Дедовскими методами.

Про работу с нетпакетами искать модули Артоса. Про чтение и спавн - общие сведения о скриптах почитать, луа-хелп там... Запись данных теми же модулями Артоса (se_stor). Как-то так.

Спасибо, конечно, но какой есть способ получения списка предметов в инвентаре?

Поделиться этим сообщением


Ссылка на сообщение

В повелителе зоны 5.0 gold в чистом небе, есть файл с координатами которые прямо в игре можно записывать и делается там это всё с помощью этой функции:
 

  Показать

Отсюда вопрос: есть ли какой-нибудь  способ записи параметров объекта в файл, который в папке с игрой, т.е. так же, как и в повелителе зоны в чн? Если да, то, если можно, пример, пожалуйста.

  30.03.2010 в 16:04, Atempad сказал:

Я же сказал, в скриптах ТЧ не работает вывод (запись) в файлы. Для этого используй ЧН или ЗП.

Лично я не вижу в этом кооператива, только изврат в чистом виде.

 

P.S. Про скайп я не шутил... Оно того не стоит. А вообще - дерзай.

Нельзя

  12.06.2020 в 17:16, Pug-Lover сказал:

Нельзя

Нашёл намного более простой способ, который работает именно так, как я хотел. Вот код, если кому-то может быть нужно:

  Показать


 

Здрасте, где можно посмотреть список параметров при подмене net_packet'ов? Т.е:

t = amk.read_stalker_params(sobj)
t.health=0.1
t.killerid=65535

и другие параметры относящиеся к нпс(или другому объекту)?

 

  • Сочувствую 1

Поделиться этим сообщением


Ссылка на сообщение

Драсте, кто может дать функцию спавна и сразу съедения водки?

Поделиться этим сообщением


Ссылка на сообщение

Драсте, делаю скрипт на телепортацию компаньона на другую локацию и мне нужен способ переписки параметров read_stalker_params(obj), т.е. способ, чтобы можно было переписать гейм и левел вертекс (способ ниже не переписывает)

  

function comp_tele()
for a=1,65534 do
obj=alife():object(a)
if obj and (level.map_has_object_spot(obj.id, "companion_friend_location")~=0 or level.map_has_object_spot(obj.id, "companion_neutral_location")~=0 or level.map_has_object_spot(obj.id, "companion_enemy_location")~=0) and alife():level_name(game_graph():vertex(db.actor:game_vertex_id()):level_id())==alife():level_name(game_graph():vertex(obj.m_game_vertex_id):level_id()) then
cobj=level.object_by_id(obj.id)
if cobj then
t=iscpxrs_utils.read_stalker_params(obj)
rep=alife():create(obj:section_name(),db.actor:position(),209876,253)
t.x=36.412
t.y=0.485
t.z=-305.825
t.game_vertex_id=253
t.level_vertex_id=209876
t.m_game_vertex_id=253
t.m_level_vertex_id=209876
iscpxrs_utils.write_stalker_params(t, rep)
local tbl = {}
cobj:iterate_inventory(function (tmp, item)
table.insert(tbl, item:section())
end,cobj)
alife():release(obj,true)
end
end
end
end

 

Нашёл решение, оказывается вместо:
 

t.game_vertex_id=253
t.level_vertex_id=209876
t.m_game_vertex_id=253
t.m_level_vertex_id=209876

нужно просто использовать:

t.gvid=253
t.lvid=209876

 

Поделиться этим сообщением


Ссылка на сообщение

@Zander_driver, ещё как пригодятся, так как при write_stalker_params прописываются и позиция и гейм с левел вертексами, что телепортирует объект обратно на начальную точку

Драсте, как можно считать данные level_changer'а? Функция get_lc_data из АМК не робит:

function get_lc_data(obj)
	local packet = net_packet()
	obj:STATE_Write(packet)
	local t={}
	t.game_vertex_id = packet:r_u16()
	t.distance = packet:r_float()
	t.direct_control = packet:r_s32()
	t.level_vertex_id = packet:r_s32()
	t.object_flags = packet:r_s32()
	t.custom_data = packet:r_stringZ()
	t.story_id = packet:r_s32()
	t.spawn_story_id = packet:r_s32()
	
	t = iscpamk.parse_shape_packet(t,packet)
	
	t.restrictor_type = packet:r_u8()
	t.dest_game_vertex_id = packet:r_u16()
	t.dest_level_vertex_id = packet:r_s32()
	t.dest_position = packet:r_vec3()
	t.dest_direction = packet:r_vec3()
	t.dest_level_name = packet:r_stringZ()
	t.dest_graph_point = packet:r_stringZ()
	t.silent_mode = packet:r_u8()

	if packet:r_elapsed() ~= 0 then
		den.cout("left="..tostring(packet:r_elapsed()))
	end
	return t
end

Вылетает начиная с:

	t.restrictor_type = packet:r_u8()

Может есть какой-то другой способ? Если есть - прошу помочь.

Поделиться этим сообщением


Ссылка на сообщение

Как удалить сталкера из гулага чтобы он просто по зоне гулял? Прогу помощи

Поделиться этим сообщением


Ссылка на сообщение

Кто может подсказать как удалить предмет из инвентаря игрока через alife():release()?

Поделиться этим сообщением


Ссылка на сообщение

Спасибо, ещё нашёл способ из amk.script:
 

-- удаляем объект из игры
function remove_item(remove_itm)
  if remove_itm~=nil then
    alife():release(alife():object(remove_itm:id()), true)
    return true
  end
  return false
end

 

Поделиться этим сообщением


Ссылка на сообщение

Кто может сказать как можно проверить разрушен ли ящик или нет?

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...