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

Народная 2010 разработка


n6260

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

(изменено)

sapsan, можт и проще,но я не уверен,что заработает....ну просто перестраховываюсь.

=========

неее,нельзя так - тогда fncs_by_info[info] 2 раза выполнится.

 

знаю,что прав,я бы не бушевал тут возмущенно пару страниц назад,если б не знал :)

 

Теперь выполнится только один раз.

Ты уверен?

Если да - я согласен.Но я пока не уверен...

 

Добавлено через 46 мин.:

sapsan,

Аргументы - не нужно иметь и синхронизировать две таблицы.

Да не,я просто сначала прочитал "не прав"...

 

=====

 

ну если точно 1 раз - проверь на практике - то я согласен полностью,да.

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

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


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

_Призрак_, хреново оно работает.надо его на биндер переделывать,только анимки нету :(

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

Так же проверь вызов из on_item_drop функции какойто там в которой есть эта секция бутылки докторской.

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

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


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

Я могу.

Конструкция

zz.m_story_id~=nil and zz.m_story_id==4294967296

 

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

Ну в общем если числу типа integer Присвоить high(integer)+1 то вылета не будет,просто оно будет равно непонятно чему.

 

Добавлено через 19 мин.:

Что я точно могу сказать,что npc:story_id() ~= 4294967296 - вот так определяется НЕквестовый НПС.

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

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


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

Ray, он это делает за 150 метров от себя :D

Да и вообще не обосновано...

 

Добавлено через 3 мин.:

Ray, да ну,глупо...

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


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

LithOS, билд-билд.под ЗП не получится перенести многое так просто - тот же сюжет.

 

Добавлено через 2 мин.:

Ray, просто ГГ не сам создает,он использует капсулу - тот же артефакт.а Сахар сидит себе в бункере и сидит...

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


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

Ray, Ты ошибаешься.Они не соль под движок адаптируют,а движок под соль :)

Тем более,что он близок к движку ТЧ.

 

А Архара - ну уж как хочет.

Не захочет Архара - кто другой возьмет и адаптирует.

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

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


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

malandrinus, Так соль уже нормально запускают на новом движке.Да,есть нюансы,типа полдня каждую загрузку,но это можно обойти по принципу сна :D

Ну или еще как.

 

С такими замашками лучше будет купить у ПЫС этот билд лицензионно и сделать "тот самый сталкер" и издать самопально :)

Потому как столько работы никто не осилит задаром - жить то как то нужно.

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

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


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

Shadowman, Шадоу,в новой схеме несколько путаней это сделан,нежели у стрима НО работеает гораздо быстрее так.

 

Добавлено через 2 мин.:

Ray, Точно.Есть вероятность.К сожалению...:(

А делать по частичному совпадению нельзя.Т.к. итерировать таблицу придется,а это ух как долго по сравнению с нынешним способом.

 

Добавлено через 1 мин.:

Ray, Да чо я говорю - ты сам знаешь :)

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


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

Ray, Ваще суперски!Спасибо!

Но чекер не мог не выдать ошибку - "actors\stalker_psihiator_master" - так писать низя.Ругань на символ "\" - он служебный для \n \f и т.д.

Правильно писать \\ вместо \.

Но все равно спасибо!

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

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


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

Ray, Если тебе интересно есть специальная "длинная строка" в которой игнорятся длинные символы.

Обозначается [[actors\hero\stalker_novice]].Только к большому сожалению ее из конфига не прочесть.

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


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

Ray, получается.только надо сконвертировать его.

Либо еще 1 длинная таблица,либо наш великий подскажет,как можно без этого обойтись...

 

Нет,не такая.

Вот такая:

 

conv_vis = {

["actors\\hero\\stalker_novice"] = [[actors\hero\stalker_novice]],

..

}

 

Добавлено через 5 мин.:

Неа.Там там "секция" = [[визуал]]

А у меня "визуал" = [[визуал]]

 

Так что 80 визуалов всего,как и предыдущая.

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

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


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

Ray, Ну так меньше работы,как я предлагаю :)

Да и я надеюсь можно конвертить както....

 

===

ты категорически прав.новую на 80 проще.и читабельнее.

а потерь - никаких.

и заодно у нас будет конверт простой строки в длинную визуалов.

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

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


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

Shadowman, Я точно знаю,что символ \ нельзя писать в простой строке.Только в длинной - потому то их и используют для пути к визуалу.

Ну,спасибо и тебе,Рэй,и маландриникус,тебе.Значит можно писать в нетпакет и простую строку - это радует.

 

Рэй,тут есть нюанс с таблицуей visuals_list - есть в XML - в хэрэктерах НПС визуалы,коих нет в конфигов брони.

Их тоже надо ассоциировать с брониками.

 

Пороешь?

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

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


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

Shadowman, :D

Это значит,где вызывается любой метод движка?

Нет,проще грамотно писать код.

 

И тем более если мы таки поставим проверки ВЕЗДЕ то ФПС раза в 3 упадет...

 

 

Дело не в ниле,дело в несоответствии типа.

В С++ типов до кучи и больше,в ЛУА 7 или 8,не помню.Короче мало. (ну там нельзя несколько операций делать,но это просто смешно,по сравнению с Сёй.И логи есть всегда.)

Так вот в твоем случае ты передал тип number скорее всего а надо string.

Намбер = сишное дубле,как я понимаю.

Стринг он и в африке стринг.Но там тоже нюансы....

 

Короче нет,тут только один вариант - писать код грамотно.

Переменные ЛУА можно крутить как хочется,а вот в движок посылать надо строго определенные вещи.

Уж ничего не поделаешь с этим - хоть движок переписывай.

Нельзя в функции движка написать "if not a then return end" - еще до срабатывания вылет,как только оно возьмет из стека переменную,посланую в функцию и попробует присвоить ее аргументу сишной функции.

А там бац - тип не совпадает,Си мрет,игра вылетает.

 

Короче вот,попытался я тут изобразить из себя прогера и изложить что и почему,чую не очень получилось... :D

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

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


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

malandrinus, Уу,я герой.

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

Ну у нас - разве только кодом разрабов игры,и то по необходимости.

 

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

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

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


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

kamikazze, Вот по поводу этой проверки на нил.

Самый главный вопрос, на который я пока не видал ответа - откуда вообще берутся эти нилы?

То есть, конечно, кривые руки, да, но есть куски кода в которых я уверен - не будет нила, хоть тресни, а поди ж ты.

Есть еще фактор странных апдейтов - бывает в мотиваторе:update() удалил переменную а в актор биндере:update() вызываешь, ну или нечто подобное. Да. Но опять же есть куски кода где я уверен - с этим все в порядке.

И таки все равно нилы вылезают периодически.

Был просто момент, когда я вообще не написал ни одной такой проверки (код-то быстрее), где был уверен - а замучался. Проверял-перепроверял - ниоткуда берутся.

 

Добавлено через 4 мин.:

Shadowman, for k,v in pairs(table) - это ты зря убрал,там же ключи не обязательно 1..#table, но раз скорость выше в разы,то и заменять везде на эту конструкцию тоже нельзя, безопасность - да,но не в ущерб производительности. Проще действительно на нил проверять.

Эх,жаль макросов нет в интерпритаторе...

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

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


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

Далее, присваивание нила элементу таблицы - фэйловая вещь, поскольку не высвобождается память, не уменьшается длина таблицы - а нам ведь надо побыстрее в цикле ее прокрутить потом.

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

 

Добавлено через 1 мин.:

kamikazze, Ну я и сказал,бывает кривые руки :)

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

 

А вообще я так почитал тут ваши пыхтения - по мне так не гуд это - такой подход.

Либо переписывать все с нуля либо не лезть в разрабовский код, я так думаю. Свои скрипты ладно, но оригинальные - ну их.

Просто по своему опыту смотришь - думаешь: "ууу, херни понаписали", а переписываешь - не работает. Возникает ощущение, что пол игры держится на принципе "четного количества ошибок в знаке".

Я их вообще стараюсь не трогать - так, колбэки разве что расставляю.

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

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


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

malandrinus, О как, мы тут уже "философию программирования на LUA" разрабатываем? :)

Существенно надежнее, зато существенно негибче.

 

Стандартный пример - ищем в таблице пока не выполнилось условие,тут же изменяем и break - вот, я отошел от правила,а ничего не напортачил.

 

Не дело это - правила жесткие,давайте еще вообще хэш-таблицы для надежности запретим...

Просто когда делаешь - понимать надо что делаешь, а остальное все - дело техники.И ограничения искусственные не нужны.

 

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

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

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


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

Shadowman, немного не так,память и стек - вещи разные.

стек он нехило меньше.

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

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

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


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

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

AMK-Team.ru

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