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

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


Halford

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

Товарисчи, подскажите, при поиске через if string.find(1 аргумент, 2 аргумент) then бла бла

1 -аргумент то, где мы ищем, 2 аргумент- что именно ищем.

Вопрос: как во 2 аргументе указать переменную, а не вручную писать?

Хочу чтобы при поиске он искал реальное имя нпс, но не выходит: if string.find(npc:character_name(), n) then

здесь n- имя которое ищем у нпс

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


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

А разве npc:character_name() не возвращает это самое реальное имя ? К примеру для Волка эта ф-ция вернет "Волк". И что тут искать ?

Возвращает, был мой косяк:)

А поиск идёт в таблице db.creature, по имени, введённого вручную с кпк. путём перебора всех нпс на локации

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


Ссылка на сообщение
(изменено)

Неполучается понять отчего игра ругается

В архиве, в логе- последний вылет

В dmx_pda_message_processor

в момент if strings.substring(s,1,1) == "!"

ругается на strings (nil value)

хотя strings файл существует, и функция в нём есть

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

https://yadi.sk/d/OGvpmqq2joHPK

 

Причём бывает потыкаешься в этом файле, возвращаешь обратно(ктрл+z), пробуешь, а он уже снова работает.

Замечено такие затупы с любыми скриптами

Изменено пользователем FonSwong

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


Ссылка на сообщение
(изменено)

Как правильно достать профиль?

 

В первой функции Сохраняю npc:id() непися, затем

Во второй функции загружаю в npc_id и мне нужно получить его профиль, но НЕ через npc = level.object_by_id( npc_id ), ибо в оффлайне если нпс, то крашится игра

затем передать "npc" другой фунции, а там уже

В третьей функции она снова возьмёт из "npc" npc:id()

 

Пробовал после загрузки профиль вытаскивать через npc = alife():object(a), но он вроде как даёт сид, а в третьей фунции нужно передать "npc" и получить npc:id()

Изменено пользователем FonSwong

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


Ссылка на сообщение
(изменено)

Я вот не могу понять.

У меня ситуация такая: нпс в оффлайне, я на этот момент знаю его ид, можно ли без вывода нпс в онлайн, получить из net_packet по ид нпс, его userdata

 

Или же мне придётся нпс выводить в онлайн, получить userdata через npc =level.object_by_id(id) и потом отправить его снова в оффлайн

 

Важно то, чтобы я получил userdata нпс в переменную "npc", передал "npc" в другую переменную, и там смог использовать npc:id()

Изменено пользователем FonSwong

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


Ссылка на сообщение
(изменено)

Уже и не знаю как объяснить, но всё же попытаюсь, ибо самому интересно:D

 

 

проводится сбор npc:id() нпс подходящих под условие и записываются ид в tbl_sos, после сбора запускается функция

function start_sos()

выбирается рандомный ид

local npc_id=tbl_sos[math.random(#tbl_sos)]

получаем юзер дату

npc= --получить как серверный объект или клиентский? ведь нпс может быть оффлайн!

делаем нпс компаньоном

dialogs.companion_start_folowing(npc,db.actor

запуск таймера

ogse.g_start_timer("sms_sos_stop", 0,0,1)

end

 

В фунцию companion_start_folowing передаётся юзердата через "npc"

Вот начало этой функции:

function companion_start_folowing(npc, actor)

local st = db.storage[npc:id()]

Уже тут ошибка- попытка получить через npc:id() ид нпс у серверного объекта

 

 

 

Изменено пользователем FonSwong

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


Ссылка на сообщение
(изменено)

Вообще я не совсем правильно описал, взятие напарника происходит в онлайне, но вот потом, через 5 минут, допустим, он выходит из напарников, и вот в этот момент мы можем быть в машине, а если мы в машине, все компаньоны автоматом выходят в оффлайн..

 

Получается мне придётся выбросить временного компаньона из машины в онлайн и тут же его отписать из компаньонов?

 

Попытался, не выходит, временного напарника выбрасывает в онлайн, да, но в файле ogse.script, который постоянно игра пробегает(раз в секунду вроде, может быстрее) Есть условие При котором если актор в машине, то напарников кидает в оффлайн и привязывает к машине.

Такое чувство что я тупо не успеваю при выкиде в онлайн получить клиентскую юзердату и отрубить его от напарников

Изменено пользователем FonSwong

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


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

Ни чего не понял ! Что ты вообще пытаешься сделать ? Пытаюсь по-ванговать: есть НПС-напарник, актер едет в машине и в это время происходит исключение НПСа из напарников ? И проблема в том, что при нахождении актера в машине, все его напарники находятся в офф-лайне ?

Именно, как я и написал в последнем посте, вывод в онлайн получился, но такое чувство что не успеваю получить клиентскую юзердату, повторяюсь..

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


Ссылка на сообщение
(изменено)

Думал об этом, но в итоге получается в 2 раза больше кода:)

Ладно, спасибо за участие

Изменено пользователем FonSwong

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


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

День добрый, интересует вопрос: как узнать цену предмета в инвентаре нпс?

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


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

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

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


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

Уважаемые, подскажите как можно получить отношение НПС к ГГ(НПС на другой локации)?

С примером желательно ^_^

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


Ссылка на сообщение
(изменено)
Костылем. Примеров тут масса уже готовых под любым соусом в любом моде.

Эмм, если бы я нашёл пример, то и не писал бы здесь, логично предположить что раз пишу, этих самых примеров не нашёл.

Тыкните в пример-то

 

Я конечно могу записывать и в массив допустим всех друзей с которыми встречался, но это последнее что бы я хотел делать, т.к. если захочу узнать отношение НПС(который на другой локе и с которым ещё не встречался) к ГГ это не поможет

Изменено пользователем FonSwong

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


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

 

 

Оффлайн-алайф начиная от амк заканчивая симбионом. Наводящего переизбыток.

Как будто я не глядел.

Вы или подскажите или прекратите заниматься пустословием, от этого ни мне пользы никакой и тема засоряется.

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


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

 

 

 npc:goodwill(db.actor)
это применимо к онлайну, а мой вопрос заключался в том, можно ли смотреть и изменять личное отношение НПС к ГГ, в то время, когда НПС на другой локе

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


Ссылка на сообщение
(изменено)

@BoBaH_671, если нпс на другой локе? да и со с рандомным не получится, у него нет сида

Изменено пользователем FonSwong

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


Ссылка на сообщение
(изменено)

@dsh, Эмм, а откуда цифры эти берутся? Написал:

log1(relation_registry.get_goodwill(1705,0)) 
Это Толик, вернуло 5000
выстрелом ранил, опять вызвал функцию, получил 00 зелёным цветом
Изменено пользователем FonSwong

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


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

@dsh, ранил Толика, он стал врагом, запустил функцию 

log1(relation_registry.get_goodwill(1705,0))

В лог вывело "00" зелёным цветом

-------

Дальше взял ид патрульного военных

запустил:

log1(relation_registry.get_goodwill(825,0))

вывело в лог "0"

Ранил его, запустил снова, вывело в лог "00" зелёным цветом

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


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

AMK-Team.ru

×
×
  • Создать...