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

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
Причём количество их идёт на тысячи.

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

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);
Я опять хочу ударить человека который писал вирт-лайф... Сильно ударить...
 

Insallah

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

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

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';
# Принцип уловили?
}
 

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'));
 
Последнее редактирование:

Insallah

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

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

Важно: Дата на сервере не должна быть ебанутой. Значения возвращаются на основе системных часов.
 
Сверху