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

Рефакторинг: _g.script


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

@KD87, т.е. если заинклюдить в сустем.лтх все файлы то будет нормально все, я правильно понял?

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


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

проверка алайфа все же может и нужна. так как различные деятели порой во всякие меню пихают не только смену флагов (и висяк опять-же, но это личное кому-то в прикол там где надо по сто раз одно и тоже писать), а info_id ~= "" лишнее так как невозможно написать has_alife_info(""), ну никак в моей голове не укладывается что напишут в массиве (ну не руками же) такое работая с этой функцией, если и делать что-то такое, то проверку существования инфо в массиве по переданному аргументу и выводить явно в лог что не так, ну или аборт тут кому как нравится, или вообще поддержку и создание инфо только об этом надо сообщать, а то незадачливый модмейкер слишком сильно обрадуется. и опять-же эта затычка вообще никак не локализирует проблему, а только все усугубит.
так или иначе у меня вообще вот так:
 

function has_alife_info(info_id)
return sim and sim:has_info(0, info_id)
end
function has_info(info_id)
return actor and actor:has_info(info_id) or has_alife_info(info_id)
end

"Читаемости вашему коду оно не добавляет."

 

вот посмотри, откопал какую-то старую версию торговли, вот там несколько функций построено таким образом, так как в противном случае код увеличивался невероятно:

tbl_sell = flag and (IsTable(vv.traders) and vv.traders) or (is_friend and (IsTable(vv.sell_stalkers_friend) and vv.sell_stalkers_friend) or (IsTable(vv.sell_stalkers) and vv.sell_stalkers))

в целом я наверное и сейчас так бы сделал, иное трудно придумать, разве что ini_file ;), зато т.о. вся недвижковая торговля вышла в 350 строк. и читаемость как никрути выше чем у кучи if-then-elseif

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

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


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

"Почему ты так уверен?"

 

о том тебе и говорю, что там где есть подозрение, там и проверяй, генератор строк я думаю у тебя в паре мест (н-р диалоги, квесты), когда эта проверка в сотне. какой-то реальный смысл в этой проверке не вижу так как функция все равно вернет false даже при "" и вообще чему попало непонятному, она именно булевая и другое она вернуть не может (если конечно ты не из любителей гонятся за наносекундами которые начнут говорить что str ~= "" быстрее итерации по массиву, но в таком случае эту проверку стоит переписать хотя бы на (type(str) == 'string' and str ~= ''), а в функции например выдачи инфо эта проверка вообще понесет вред.

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


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

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

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


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

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