FonSwong 33 Опубликовано 6 Октября 2015 Товарисчи, подскажите, при поиске через if string.find(1 аргумент, 2 аргумент) then бла бла 1 -аргумент то, где мы ищем, 2 аргумент- что именно ищем. Вопрос: как во 2 аргументе указать переменную, а не вручную писать? Хочу чтобы при поиске он искал реальное имя нпс, но не выходит: if string.find(npc:character_name(), n) then здесь n- имя которое ищем у нпс Поделиться этим сообщением Ссылка на сообщение
FonSwong 33 Опубликовано 12 Октября 2015 А разве npc:character_name() не возвращает это самое реальное имя ? К примеру для Волка эта ф-ция вернет "Волк". И что тут искать ? Возвращает, был мой косяк А поиск идёт в таблице db.creature, по имени, введённого вручную с кпк. путём перебора всех нпс на локации Поделиться этим сообщением Ссылка на сообщение
FonSwong 33 Опубликовано 17 Октября 2015 (изменено) Неполучается понять отчего игра ругается В архиве, в логе- последний вылет В dmx_pda_message_processor в момент if strings.substring(s,1,1) == "!" ругается на strings (nil value) хотя strings файл существует, и функция в нём есть Если указать на другой файл (копию), то функция волшебным образом становится рабочей-.- https://yadi.sk/d/OGvpmqq2joHPK Причём бывает потыкаешься в этом файле, возвращаешь обратно(ктрл+z), пробуешь, а он уже снова работает. Замечено такие затупы с любыми скриптами Изменено 17 Октября 2015 пользователем FonSwong Поделиться этим сообщением Ссылка на сообщение
FonSwong 33 Опубликовано 20 Октября 2015 (изменено) Как правильно достать профиль? В первой функции Сохраняю npc:id() непися, затем Во второй функции загружаю в npc_id и мне нужно получить его профиль, но НЕ через npc = level.object_by_id( npc_id ), ибо в оффлайне если нпс, то крашится игра затем передать "npc" другой фунции, а там уже В третьей функции она снова возьмёт из "npc" npc:id() Пробовал после загрузки профиль вытаскивать через npc = alife():object(a), но он вроде как даёт сид, а в третьей фунции нужно передать "npc" и получить npc:id() Изменено 20 Октября 2015 пользователем FonSwong Поделиться этим сообщением Ссылка на сообщение
FonSwong 33 Опубликовано 20 Октября 2015 @FonSwong, для серверного объекта - только через net_packet.А поподробней можно? Поделиться этим сообщением Ссылка на сообщение
FonSwong 33 Опубликовано 21 Октября 2015 upd. поковырял net_packet'ы, разобрался сам, спасибо. Поделиться этим сообщением Ссылка на сообщение
FonSwong 33 Опубликовано 22 Октября 2015 (изменено) Я вот не могу понять. У меня ситуация такая: нпс в оффлайне, я на этот момент знаю его ид, можно ли без вывода нпс в онлайн, получить из net_packet по ид нпс, его userdata Или же мне придётся нпс выводить в онлайн, получить userdata через npc =level.object_by_id(id) и потом отправить его снова в оффлайн Важно то, чтобы я получил userdata нпс в переменную "npc", передал "npc" в другую переменную, и там смог использовать npc:id() Изменено 22 Октября 2015 пользователем FonSwong Поделиться этим сообщением Ссылка на сообщение
FonSwong 33 Опубликовано 22 Октября 2015 (изменено) Уже и не знаю как объяснить, но всё же попытаюсь, ибо самому интересно проводится сбор 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() ид нпс у серверного объекта Изменено 22 Октября 2015 пользователем FonSwong Поделиться этим сообщением Ссылка на сообщение
FonSwong 33 Опубликовано 23 Октября 2015 (изменено) Вообще я не совсем правильно описал, взятие напарника происходит в онлайне, но вот потом, через 5 минут, допустим, он выходит из напарников, и вот в этот момент мы можем быть в машине, а если мы в машине, все компаньоны автоматом выходят в оффлайн.. Получается мне придётся выбросить временного компаньона из машины в онлайн и тут же его отписать из компаньонов? Попытался, не выходит, временного напарника выбрасывает в онлайн, да, но в файле ogse.script, который постоянно игра пробегает(раз в секунду вроде, может быстрее) Есть условие При котором если актор в машине, то напарников кидает в оффлайн и привязывает к машине. Такое чувство что я тупо не успеваю при выкиде в онлайн получить клиентскую юзердату и отрубить его от напарников Изменено 23 Октября 2015 пользователем FonSwong Поделиться этим сообщением Ссылка на сообщение
FonSwong 33 Опубликовано 25 Октября 2015 Ни чего не понял ! Что ты вообще пытаешься сделать ? Пытаюсь по-ванговать: есть НПС-напарник, актер едет в машине и в это время происходит исключение НПСа из напарников ? И проблема в том, что при нахождении актера в машине, все его напарники находятся в офф-лайне ? Именно, как я и написал в последнем посте, вывод в онлайн получился, но такое чувство что не успеваю получить клиентскую юзердату, повторяюсь.. Поделиться этим сообщением Ссылка на сообщение
FonSwong 33 Опубликовано 25 Октября 2015 (изменено) Думал об этом, но в итоге получается в 2 раза больше кода Ладно, спасибо за участие Изменено 25 Октября 2015 пользователем FonSwong Поделиться этим сообщением Ссылка на сообщение
FonSwong 33 Опубликовано 10 Января 2016 День добрый, интересует вопрос: как узнать цену предмета в инвентаре нпс? Поделиться этим сообщением Ссылка на сообщение
FonSwong 33 Опубликовано 10 Января 2016 Возможно ли как-то узнать отношение нпс к гг, где нпс серверный объект? Поделиться этим сообщением Ссылка на сообщение
FonSwong 33 Опубликовано 12 Января 2016 Уважаемые, подскажите как можно получить отношение НПС к ГГ(НПС на другой локации)? С примером желательно Поделиться этим сообщением Ссылка на сообщение
FonSwong 33 Опубликовано 13 Января 2016 (изменено) Костылем. Примеров тут масса уже готовых под любым соусом в любом моде. Эмм, если бы я нашёл пример, то и не писал бы здесь, логично предположить что раз пишу, этих самых примеров не нашёл. Тыкните в пример-то Я конечно могу записывать и в массив допустим всех друзей с которыми встречался, но это последнее что бы я хотел делать, т.к. если захочу узнать отношение НПС(который на другой локе и с которым ещё не встречался) к ГГ это не поможет Изменено 13 Января 2016 пользователем FonSwong Поделиться этим сообщением Ссылка на сообщение
FonSwong 33 Опубликовано 13 Января 2016 Оффлайн-алайф начиная от амк заканчивая симбионом. Наводящего переизбыток. Как будто я не глядел. Вы или подскажите или прекратите заниматься пустословием, от этого ни мне пользы никакой и тема засоряется. Поделиться этим сообщением Ссылка на сообщение
FonSwong 33 Опубликовано 13 Января 2016 npc:goodwill(db.actor) это применимо к онлайну, а мой вопрос заключался в том, можно ли смотреть и изменять личное отношение НПС к ГГ, в то время, когда НПС на другой локе Поделиться этим сообщением Ссылка на сообщение
FonSwong 33 Опубликовано 13 Января 2016 (изменено) @BoBaH_671, если нпс на другой локе? да и со с рандомным не получится, у него нет сида Изменено 13 Января 2016 пользователем FonSwong Поделиться этим сообщением Ссылка на сообщение
FonSwong 33 Опубликовано 13 Января 2016 (изменено) @dsh, Эмм, а откуда цифры эти берутся? Написал: log1(relation_registry.get_goodwill(1705,0)) Это Толик, вернуло 5000 выстрелом ранил, опять вызвал функцию, получил 00 зелёным цветом Изменено 13 Января 2016 пользователем FonSwong Поделиться этим сообщением Ссылка на сообщение
FonSwong 33 Опубликовано 13 Января 2016 @dsh, ранил Толика, он стал врагом, запустил функцию log1(relation_registry.get_goodwill(1705,0)) В лог вывело "00" зелёным цветом ------- Дальше взял ид патрульного военных запустил: log1(relation_registry.get_goodwill(825,0)) вывело в лог "0" Ранил его, запустил снова, вывело в лог "00" зелёным цветом Поделиться этим сообщением Ссылка на сообщение