Странносте тред

Insallah

Специалист
👑
⚖️
🏆
📜
💎
  • Золотая медаль
А есть ли смысл, в случае успешного взлома? Если персонажу вскрывают учётку, банк — далеко не самая страшная из его потерь. Могут, например, все вещи выбросить, или похуже чего.
 

Cester

Постигающий
📜
А есть ли смысл, в случае успешного взлома? Если персонажу вскрывают учётку, банк — далеко не самая страшная из его потерь. Могут, например, все вещи выбросить, или похуже чего.
Само собой, но этот момент как по мне необходимо тоже продумать на перёд.
 

Insallah

Специалист
👑
⚖️
🏆
📜
💎
  • Золотая медаль
  • в базу добавляется ячейка password;
  • в игру добавляется кнопка: установить пароль для входа в банк;
  • проверка: если поле не пустое — запрашивать пароль.
Прямолинейная до одури реализация.
 

Insallah

Специалист
👑
⚖️
🏆
📜
💎
  • Золотая медаль
PHP:
if (isset($_GET['obraz']) && $_GET['obraz'] !== null && $_GET['obraz'] !== false && $_GET['obraz'] !== 0 &&    !empty($_GET['obraz']) {...}
Типа чтобы уже наверняка защититься от взлома! :ROFLMAO:
 

kinokrads.online

<вырезано цензурой>
💀
PHP:
     if(!in_array($start, [3,5,10,15,30,45,60])) {$start = 10;}
     if(!in_array($timeout, [3,4,5,7,10])) {$timeout = 3;}
//   if($start == 3 || $start == 5 || $start == 10 || $start == 15 || $start == 30 || $start == 45 || $start == 60) {
//
//   } else {
//     $start = 10;
//   }
//
//
//   if($timeout == 3 ||  $timeout == 4 || $timeout == 5 ||  $timeout == 7 ||  $timeout == 10) {
//
//   } else {
//     $timeout = 3;
//   }
Ну вы поняли…
типичная работа с масивами, странно что никто не помог тебе
 

kinokrads.online

<вырезано цензурой>
💀
У меня намечается прогресс.
Посмотреть вложение 1748

После полутора месяцев откровенного сношания мозгов и кода меня начало пускать чуть дальше стартовой страницы. ;)
это какой движок не можешь поставить? разве сложно установить движок? вывод ошибок все же показывает, пробуй сменить версию Php, включить модули php которых не хватает и т.д.
 

Bayer

Специалист
⚖️
🏆
📜
💎
  • Надмозг
это какой движок не можешь поставить? разве сложно установить движок? вывод ошибок все же показывает, пробуй сменить версию Php, включить модули php которых не хватает и т.д.
Тема такая , что его не устраивает быдло гавно код и он его переписывает отсюда и все трудноти .
 

Insallah

Специалист
👑
⚖️
🏆
📜
💎
  • Золотая медаль
Медленно, окольными путями приезжаю к мысли о переезде на Postgresql/Mssql. Гоню от себя мысль подальше, но червячок есть и ворочается.

разве сложно установить движок?
Ты даже представить себе не можешь насколько нетривиальна эта задача. ;)
Самые тривиальные проблемы:
Код:
Deprecated:  mysql_query(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead
Notice:  Undefined index
Warning:  mysql_fetch_array() expects parameter 1 to be resource, boolean given
Причём количество их идёт на тысячи.

А ведь есть куда более упоротые ошибки…
 
Последнее редактирование:
  • Like
Реакции: Cro

habilis

Интересующийся
📜
Щяс этот гений тебе ответит,
"Поставь ПоХнаПэ 4.0, и не будет этих ошибок, чего сложного!? Странно что тебе ни кто с этим не помог! Разве сложно?" (с)
 

Insallah

Специалист
👑
⚖️
🏆
📜
💎
  • Золотая медаль
Ну представь, что ты писатель и поддерживаешь проект «Война и мир». У тебя задача — написать главу как Наташа Ростова гуляла под дождём по парку. Ты пишешь «шёл дождь», сохраняешь, вылетает сообщение об ошибке: «Наташа Ростова умерла, продолжение невозможно». Почему умерла? Начинаешь разбираться. Выясняется, что у Пьера Безухова скользкие туфли, он упал, его пистолет ударился о землю и выстрелил в столб, а пуля от столба срикошетила в Наташу. Что делать? Зарядить пистолет холостыми? Поменять туфли? Решили убрать столб. Получаем сообщение «Поручик Ржевский умер». Выясняется, что он в следующей главе облокачивается о столб, которого уже нет...
Последний крупный факап: есть 6 (шесть!) разных функций, которые отображают информацию о персонаже. Образ там, что надето… Каждая посылает по запросу на каждый предмет и практически на каждый второй стат. Захотели уменьши количество запросов. Оказалось, что уменьшить нельзя, потому что в списке одетых предметов нету(!) ни одного упоминания в какой слот они одеты. Вложенные запросы отмелись сразу. 20 отдельных запросов это одно и то же что 1 запрос состощий из 20. JOIN отмели через день тестов, когда оказалось, что запрос реально один, но из за сложности в плане производительности прироста никакого нет. Начал играть с многомерными массивами, но где-то в процессе конструкции типа $items[$value[$status[$row_name[$row['id']]]]] всплакнул и помянул чёрта.
Нашёл элегантное решение — писать в ячейку dressed не true/false, а column_name/0. Казалось бы, что могло пойти не так? Всего-то около 200 запросов, где явно прописано WHERE dressed=1. Поменять? Отвалится undress, который привязан к true/false.
А на фоне оказалось, что одевание и снятие предмета переписывают over50 значений в базе, которые нужно тоже отказывать и переносить на математику, чтобы избавиться от зависимости…
И это ещё не все дебри.

Кстати, пока это всё-всё-всё не будет сделано, игра будет встречать игрока весёлым:
1522508589680.png

А зачем мы во всё это вообще ввязались?
Правильно — чтобы избавиться от Deprecated: mysql_query().
 

oxy

Продвинутый
🏆
📜
💎
  • Надмозг
А я пошел еще дальше, переписываю на ооп и mvc и это вот товарищи полный писец. Я так глянул движки, бк на нормальном ооп до сих пор нет... То что написано в комбатс я не считаю ооп
 

oxy

Продвинутый
🏆
📜
💎
  • Надмозг
PHP:
$igogo = $fbattle->getpriems($_SESSION['uid']);
Игого бл%дь! Игого!!! Вот к этому уровню я буду стремиться! Сразу ясно что в этой переменной. Особенно если она где то потом вызывается через global $igogo....


PHP:
$fbattle->checkShit()
А это вообще шедевр))) Судя по названию функция проводит код ревью
 
Последнее редактирование:

oxy

Продвинутый
🏆
📜
💎
  • Надмозг
Я думал что меня ничего не удивит но нет...
Есть метод drawTrick() вот где истинная магия!

Есть в ней параметр resourse. Так вот в него передается вот такая канитель:

Код:
(0 + $p2->n_hit) . "," . (0 + $p2->n_krit) . "," . (0 + $p2->n_counter) . "," . (0 + $p2->n_block) . "," .(0 + $p2->n_parry) . "," .(0 + $p2->n_hp) . "," .(0 + $p2->sduh) . "," .(0 + $p2->mana) . "," .(0 + $p2->wait) . "," .($act['wait'] > 0 ? $act['wait'] : 0) . "," .(0 + $p2->maxuses) . "," .($p2->maxuses ? $act['uses'] - 1 : 0) . "," .($p2->startwait ? $p2->startwait : 0)
Оригинальный синтаксис оставил спецом. Долго думал что это за дрянь.

Открываю я значится сам метод и вижу
Код:
$res = explode(',', $resource);
Я опять хочу ударить человека который писал вирт-лайф... Сильно ударить...
 
  • Like
Реакции: Cro

Insallah

Специалист
👑
⚖️
🏆
📜
💎
  • Золотая медаль
А я пошел еще дальше, переписываю на ооп и mvc и это вот товарищи полный писец.
Я классы очень выборочно добавляю. Кое где — незаменимо. Кое где, когда бессмысленно.

PHP:
$fbattle->checkShit()
А это вообще шедевр))) Судя по названию функция проводит код ревью
Кстати не факт. Может это какая-то проверка наличия щита в руке? Да-да. У меня в базе и в коде везде shit, а не shield. Как натыкаюсь — похрюкиваю.
 
  • Like
Реакции: Cro

oxy

Продвинутый
🏆
📜
💎
  • Надмозг
Кстати не факт. Может это какая-то проверка наличия щита в руке? Да-да. У меня в базе и в коде везде shit, а не shield. Как натыкаюсь — похрюкиваю.
Ну так естественно так и есть, просто тогда уже или пишите proverkaShita или checkShield))
 

oxy

Продвинутый
🏆
📜
💎
  • Надмозг
Я классы очень выборочно добавляю. Кое где — незаменимо. Кое где, когда бессмысленно.
Почему так? все таки классы это в первую очередь структурирование кода а при правильной архитектуре вообще сократит твой код до минимума.

Не ну у меня тоже есть один класс-хелпер с статическими методами, но не более
 

Insallah

Специалист
👑
⚖️
🏆
📜
💎
  • Золотая медаль
Ну как. Классы в целом это хорошо, но лепить их на каждый чих (например на функцию в 1-2 строки — это перебор, ящитайу. То же наследование — хорошо. Но есть места, где оно просто нафиг не нужно и вряд ли когда-либо будет.
 

Insallah

Специалист
👑
⚖️
🏆
📜
💎
  • Золотая медаль
Зашёл в одну вапку, а там…
PHP:
if($i >= 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 
    && $i < 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) {
$i = number_format($i, 0, '', '.'); 
$i = round($i,1).'ay';
}
Возведение в степень? Не, не слышал…
PHP:
if($i >= pow(10,174) && $i < pow(10,177)) {
$i = number_format($i, 0, '', '.'); 
$i = round($i,1).'ay';
}

ZOMG! А потом я рассмотрел зачем это…
PHP:
if($i >= 1 && $i < 1000) {
$i = number_format($i, 0, '', '.');
$i = round($i,1).'';
}
if($i >= 1000 && $i < 1000000) {
$i = number_format($i, 0, '', '.'); 
$i = round($i,1).'k';
}
if($i >= 1000000 && $i < 1000000000) {
$i = number_format($i, 0, '', '.'); 
$i = round($i,1).'m';
}
if($i >= 1000000000 && $i < 1000000000000) {
$i = number_format($i, 0, '', '.'); 
$i = round($i,1).'b';
}
if($i >= 1000000000000 && $i < 1000000000000000) {
$i = number_format($i, 0, '', '.'); 
$i = round($i,1).'t';
}
if($i >= 1000000000000000 && $i < 1000000000000000000) {
$i = number_format($i, 0, '', '.'); 
$i = round($i,1).'q';
}
Товарищи, товарищи, зачем усложнять?
PHP:
if ($n < pow(10,6)) {
    $n_format = $n;
} else if ($n < pow(10,9)) {
    $n_format = number_format($n / pow(10,6), 3) . 'M';
} else {
    $n_format = number_format($n / pow(10,9), 3) . 'B';
# Принцип уловили?
}
 
  • Like
Реакции: Cro

Insallah

Специалист
👑
⚖️
🏆
📜
💎
  • Золотая медаль
Минимизация без комментариев — зло.
JavaScript:
(function(){function n(b,a,e){e||(e=r);var d={};b=[b];for(var f,j={},h;h=b.length;){f=s;for(var c=0;c<h;c++){var g=b[c];if(!(!g||j[g])){var i=e[g];if(i)f=f.concat(i);if(i=a[g])for(var k in i)!i.hasOwnProperty(k)||d.hasOwnProperty(k)||(d[k]=i[k]);j[g]=true}}b=f}return d}function o(b,a){if(b=="ru"){a=t(a)%100;return a%10===1&&a%100!==11?1:a%10>=2&&a%10<=4&&(a%100<10||a%100>=20)?2:0}else return b=="en"?a==1||a==-1?1:0:0}function u(b,a,e){var d=a[e+"G"];if(d)return d;a=a[e];if(b=="ru")if(v.test(a))return"F";else if(w.test(a))return"P";return"M"}function x(b,a,e,d){var f,j=e&&e;f=p[b]||(p[b]=n(b,y));if(a<=0)return"0 "+(d&&f["second0"+d]||f.second0);var h,c;l.length=0;for(var g=z;g-=2;){c=m[g];if(a>=c){if(c===1)h=a;else a-=(h=A(a/c))*c;c=m[g+1]+o(b,h);l.push(h+" "+(d&&f[c+d]||f[c]));if(e&&!--j)break}}return l.join(" ")}function q(b){var a=b.LocalText;a||(b.LocalText=a={});a.Inherit=n;a.PluralForm=o;a.Gender=u;a.PeriodToText=x;a.ExportTo=q}var r={ja:["en","zh"],en:["ru"]},s=[],l=[],t=Math.abs,A=Math.floor,v=/[ая]$/i,w=/[иы]$/i,y={ru:{year0:"лет",year1:"год",year2:"года",month0:"месяцев",month1:"месяц",month2:"месяца",week0:"недель",week1:"неделя",week1ACC:"неделю",week2:"недели",day0:"дней",day1:"день",day2:"дня",hour0:"часов",hour1:"час",hour2:"часа",minute0:"минут",minute1:"минута",minute1ACC:"минуту",minute2:"минуты",second0:"секунд",second1:"секунда",second1ACC:"секунду",second2:"секунды"},en:{year0:"years",year1:"year",month0:"months",month1:"month",week0:"weeks",week1:"week",day0:"days",day1:"day",hour0:"hours",hour1:"hour",minute0:"minutes",minute1:"minute",second0:"seconds",second1:"second"}},m=[0,0,1,"second",60,"minute",3600,"hour",86400,"day",604800,"week",2592E3,"month",31536E3,"year"],z=m.length,p={};q(this);typeof DLoad==="object"&&(new DLoad.pkg("LocalText")).complete()})()
 

oxy

Продвинутый
🏆
📜
💎
  • Надмозг
Минимизация без комментариев — зло.
JavaScript:
(function(){function n(b,a,e){e||(e=r);var d={};b=[b];for(var f,j={},h;h=b.length;){f=s;for(var c=0;c<h;c++){var g=b[c];if(!(!g||j[g])){var i=e[g];if(i)f=f.concat(i);if(i=a[g])for(var k in i)!i.hasOwnProperty(k)||d.hasOwnProperty(k)||(d[k]=i[k]);j[g]=true}}b=f}return d}function o(b,a){if(b=="ru"){a=t(a)%100;return a%10===1&&a%100!==11?1:a%10>=2&&a%10<=4&&(a%100<10||a%100>=20)?2:0}else return b=="en"?a==1||a==-1?1:0:0}function u(b,a,e){var d=a[e+"G"];if(d)return d;a=a[e];if(b=="ru")if(v.test(a))return"F";else if(w.test(a))return"P";return"M"}function x(b,a,e,d){var f,j=e&&e;f=p[b]||(p[b]=n(b,y));if(a<=0)return"0 "+(d&&f["second0"+d]||f.second0);var h,c;l.length=0;for(var g=z;g-=2;){c=m[g];if(a>=c){if(c===1)h=a;else a-=(h=A(a/c))*c;c=m[g+1]+o(b,h);l.push(h+" "+(d&&f[c+d]||f[c]));if(e&&!--j)break}}return l.join(" ")}function q(b){var a=b.LocalText;a||(b.LocalText=a={});a.Inherit=n;a.PluralForm=o;a.Gender=u;a.PeriodToText=x;a.ExportTo=q}var r={ja:["en","zh"],en:["ru"]},s=[],l=[],t=Math.abs,A=Math.floor,v=/[ая]$/i,w=/[иы]$/i,y={ru:{year0:"лет",year1:"год",year2:"года",month0:"месяцев",month1:"месяц",month2:"месяца",week0:"недель",week1:"неделя",week1ACC:"неделю",week2:"недели",day0:"дней",day1:"день",day2:"дня",hour0:"часов",hour1:"час",hour2:"часа",minute0:"минут",minute1:"минута",minute1ACC:"минуту",minute2:"минуты",second0:"секунд",second1:"секунда",second1ACC:"секунду",second2:"секунды"},en:{year0:"years",year1:"year",month0:"months",month1:"month",week0:"weeks",week1:"week",day0:"days",day1:"day",hour0:"hours",hour1:"hour",minute0:"minutes",minute1:"minute",second0:"seconds",second1:"second"}},m=[0,0,1,"second",60,"minute",3600,"hour",86400,"day",604800,"week",2592E3,"month",31536E3,"year"],z=m.length,p={};q(this);typeof DLoad==="object"&&(new DLoad.pkg("LocalText")).complete()})()
это как раз нормально, называется вебпак. Утилита сжимает JS до такого вида для уменьшения веса файла и ссответственно скорости загрузки. Комменты с кода выпиливаются автоматом
 

Insallah

Специалист
👑
⚖️
🏆
📜
💎
  • Золотая медаль
и тебе остаётся догадываться — зачем этот файл, что оно делает, и так далее…
 

oxy

Продвинутый
🏆
📜
💎
  • Надмозг
Подобное минимизирование подразумевает то что никто в этот код не полезет. В основном так заворачивают библиотеки

https://code.jquery.com/jquery-3.3.1.min.js
Я думаю с одного названия понятно что это за файл и зачем он))
А если вот прямо хочется порыться в исходнике то можно спросить у гугла) Аналогично и там.
Плюс если ты написал красивую стартовую а у тебя хотят ее стянуть, то или возьмут все что лежит в этом файле (хе хе, а там то может лежать не только доброкачественный код)
 

Insallah

Специалист
👑
⚖️
🏆
📜
💎
  • Золотая медаль
Писал кому-то в личку, напишу и публично:

Пример тупого ненужного дробления: есть такой файл functions.php. Везде есть. Занимает более 5к строк.
Сегодня весь день занимаюсь тем, что выпиливаю из него функции, которые вызываются всего один раз в одном месте и пересылаю в конечный файл.
functions похудел примерно на 2к строк и продолжает худеть…

Это я к чему. Если забить на ООП, функции пишут, чтобы сокращать код, или чтобы вызывать код по нескольку раз.
Если вы пишете функцию, которую потом вызываете всего один раз — десять раз подумайте стоит ли вообще писать функцию.

1530544529779.png
Когда очень хочется свою функцию…
1530545859791.png
Вдогонку. «Опитимизация запросов». Если в коде меньше mysql_query — значит успех (на самом деле нет)!


1540919491562.png

Заходишь такой после долгой паузы и не помнишь ничего дальше первой половины значков…
1541024219677.png

В процессе попилинга внезапно обнаружилось прекрасное. Когда ты пытался, но не смог… :ROFLMAO:
И ещё немножко бреда.
PHP:
mktime(date(H), date(i), date(s), date("m"), date("d"), date("Y"));
Что курил разработчик?
PHP:
mktime(date('H i s m d Y'));
 
Последнее редактирование:
  • Like
Реакции: Cro

Insallah

Специалист
👑
⚖️
🏆
📜
💎
  • Золотая медаль
Кому-то куогда-то рассказывал про datetime() в PHP. Мол, если нужно написать в базу значение на несколько дней выше сегодняшнего и при этом ничего не сломать и чтобы выглядело понятно со стороны. Сегодня случайно откопал, что это же можно делать прямо запросом в базу без этого вашего PHP.
SQL:
SELECT NOW() as Today, DATE_ADD(NOW(), INTERVAL 14 DAY) as Later;
Выхлоп:
1548693881832.png

В чём профит? Да можно кучу полей и кучу проверок на сегодняшнюю дату послать в жопу. И суммирование в PHP и приведение к общему типу. Просто проставил нужное количество дней в запрос и запрос сам забил нужное в базу с момента подачи этого самого запроса.

Важно: Дата на сервере не должна быть ебанутой. Значения возвращаются на основе системных часов.
 
  • Like
Реакции: Cro
Внимание! Эта тема устарела на 132 дней.
Тут обсуждать нечего, лучше создай новую тему. Конечно, если очень-очень нужно (например хочешь ответить на древний вопрос), то отвечай. Но помни: некропост — зло, а модератор не дремлет!
Сверху