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

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

Тема для обсуждения скриптов всего и всех в серии игр STALKER.


Задавая вопрос (!):
1. Внимательно изучите суть вопроса. Вопрос должен соответствовать выбранной Вами темы. Это поможет сохранить порядок и читабельность темы, а также облегчит поиск и понимание сего;
2. Изучите то, что уже есть в теме (пролистайте "руками", воспользуйтесь поиском на форуме);
3. Изучите информацию которая может вам помочь:

  Информация (Показать)

4. Дабы не превращать обсуждение в "кашу" разной информативной направленности, задавайте несколько вопросов по порядку (в разных постах) после того, как получите ответ на предыдущий вопрос;
5. "Спасибо" и тому подобное - будьте так любезны в ПМ. Если не любите писать в ПМ, в конце вопроса напишите фразу: "Заранее спасибо!" - или что-то в этом духе;
6. ПОЖАЛУЙСТА! Указывайте, для какой игры Вам необходима информация (ТЧ, ЧН, ЗП), если стоит мод - укажите название мода;
7. Если Вы что-то сделали и результат не такой, какой Вами задумывался, то, пожалуйста, приводите коды которые Вы изменяли/писали целиком! Это поможет другим правильно ответить на Ваш вопрос, а также оградит Вас от лишней писанины.
8. Оформляйте сообщение. Пользуйтесь тегами для того, чтобы отделить код от текста. Пишите грамотно - ПОЛЬЗУЙТЕСЬ ЗНАКАМИ ПРЕПИНАНИЯ.
9. И помните: «Правильно заданный вопрос – половина ответа».

 

Какие вопросы следует задавать, а какие нет...

  Читать рекомендуется. (Показать)

И последнее: очень рекомендовано к прочтению Правила форума
 


  • Спасибо 1
  • Полезно 2
Ссылка на комментарий
  07.11.2024 в 09:35, Norman Eisenherz сказал:

anim_head, anim_global

Это же просто строки, если правильно помню. Как они могут давать вылет при определении типа?
Но вообще интересный вопрос, надо будет поэкспериментировать как-нибудь.

  • Нравится 1

Свои работы и совместные проекты: ИнструментOGSM CSFinal StrokeHARDWARMOD

Полезное: модули АртосаXML парсер

Ссылка на комментарий

Надеюсь меня не казнят за то, что я второй раз задаю вопрос. Как сделать проверку на то, есть ли соприкосновение какой либо отдельной части динамического объекта с любым статическим объектом на карте? Например м землёй, или стеной какого либо здания, и тд. 

Ссылка на комментарий

Можно ли отследить, что ГГ обыскивает труп именно мутанта и в таком случае не отображать отношение мутанта к ГГ (баг с "другом")?

Ссылка на комментарий

А можно как-то скриптом увеличивать ранг ГГ, добавлять очки, а то в моде куча предметов на локациях бесхозных уникальных. Можно попробовать сделать что-то типа бонусов. Идея какая-то такая витает. ОГСР движок.

Изменено пользователем Stalkersof
Ссылка на комментарий

Ребята а можно в хранилище данных на огср движке. Хранить таблицы, пополнять их и читать. Сделал я на калбеке on_item_take (obj) систему вознаграждения при поднятии уникальных предметов. Но есть проблемка если выкинуть предмет и снова подобрать то опять система сработает. Вот думаю может таблицу надо создавать уже поднятых предметов и проверять их наличие(что они уже были подобранны), чтоб повторно скрипт не срабатывал на уже поднятый предмет.

Если можно на огср дайте пример кода.

function item_take(obj)
	local sect = obj:section()
	local reputation
	local rang

	for i=1,#list_items do
		if sect == list_items[i].section then
		    reputation = list_items[i].reputation
			rang = list_items[i].rang
			db.actor:change_character_reputation(reputation)
			db.actor:set_character_rank(db.actor:character_rank() + rang)
			
			local news_text = "%c[255,160,160,160]".."Уникальный предмет".."\\n".."%c[default]".."Ранг+ "..rang.."  ".."Репутация+ "..reputation
			local hud = get_hud()
	        hud:AddCustomStatic("main_task", true)
	        hud:GetCustomStatic("main_task"):wnd():SetTextST(news_text)
	        hud:GetCustomStatic("main_task").m_endTime = time_global()/1000 + 5
			log1(list_items[i].section.."-"..rang.."-"..reputation)
			break
		end
	end
	
end

 

Изменено пользователем Stalkersof
Ссылка на комментарий
  09.11.2024 в 16:10, Stalkersof сказал:

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

Делай проще. Выдавай инфопоршень при наличии у ГГ предмета. На поршень повесь выдачу бонуса.

  • Спасибо 1
  • Нравится 1
  • Согласен 1
Ссылка на комментарий
  09.11.2024 в 16:45, Капрал Хикс сказал:

Делай проще. Выдавай инфопоршень при наличии у ГГ предмета. На поршень повесь выдачу бонуса.

Чем это проще на 50 предметов 50 пошней и скриптов

Ссылка на комментарий

Да там три строчки кода. Обозначить таблицу, записать данные, считать данные. Если предмета нет в таблице то выполнить скрипт. Просто я пока не докумекал как)))

 

Пс Докумекал, вопрос снят

Изменено пользователем Stalkersof
  • Нравится 3
Ссылка на комментарий

[ТЧ 1.0006]

Пытаюсь расставить метки на группе NPC приведенным ниже скриптом, но создается только одна метка посреди лагеря. Если указывать определенные id, метка будет создана именно на NPC, но только на первом из списка. В чем может быть причина?

  Показать

 

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий

При попытке заменить чтение нет-пакета с состоянием актора(бег, шаг, прыжок и т.д.) "вручную":

    se_upk:w_begin(0)
    alife():actor():UPDATE_Write(se_upk)
    se_upk:r_seek(41)
    local state = se_upk:r_u16()


на чтение с помощью функционала m_netpk:

    local act = alife():actor()
    local se_upk = get_netpk(act, 2)
    local data = se_upk:get()
    local state = data.actor_state or 0


Стал получать следующий вылет:

  Вылет (Показать)


Не понимаю, в чем конкретно прокол

Ссылка на комментарий

@Norman Eisenherz @Norman Eisenherz , а если так:
 

for id,_ in pairs(gobj.Object) do --вместо npc_info используем таблицу объектов в гулаге
   level.map_add_object_spot(id, "green_location")
end

 

  10.11.2024 в 17:28, Ghilli сказал:

Не понимаю, в чем конкретно прокол

У меня пару лет назад также начались вылеты при юзании m_netpk, решил заменой строки

if stpk:r_elapsed()~=0 or uppk:r_elapsed()~=0 then

на 

if (stpk and stpk:r_elapsed()~=0) or (uppk and uppk:r_elapsed()~=0) then

Вдруг поможет?

  • Полезно 1
Ссылка на комментарий

@phalcor Те же шарики.

 

Нашел: в ЧН сталкивался с остановкой скрипта без вылета при пустом тексте подсказки – видимо, это проблема всей трилогии, потому что при добавлении хотя бы текста "" выводятся все метки.

  • Нравится 2
  • Полезно 2

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий

Поторопился я и обнадежился. Вопрос повторяю можно на ОГСР движке сохранять данные таблицы в хранилище и считывать их. В игре все работает при загрузке сейвов скрипт выполняется. Надо сохранять данные таблицы подобранных предметов в хранилище, но как?

  код (Показать)

 

Ссылка на комментарий

@Stalkersof можно использовать SCRIPT_VARS_STORAGE

Изменено пользователем Kirgudu
  • Спасибо 1
  • Нравится 1

Свои работы и совместные проекты: ИнструментOGSM CSFinal StrokeHARDWARMOD

Полезное: модули АртосаXML парсер

Ссылка на комментарий
  11.11.2024 в 09:37, Kirgudu сказал:

@Stalkersof можно использовать SCRIPT_VARS_STORAGE

Да мне бы пример нормальный. Как записать в таблицу и как считать и хранилища.

 

В вики написано, как с обычными таблицами.

Объявил таблицу так:

local xvars = get_stored_vars()
xvars.items_podobral = {}

Вылет. Дайте пример.

Изменено пользователем Stalkersof
Ссылка на комментарий

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

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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