Дебаг из говна и палок... Или как через жопу и грабли найти то что тебе нужно, не допустив уж слишком много ошибок))

oxy

Продвинутый
🏆
📜
💎
  • Надмозг
Хорошее название да? Сразу говорю что лучше пойти по пути простому и читать простые мануалы как и что работает, но если тебе это не в кайф....
Так вот уже прошел год с последней моей статьи и пора пополнить форум новыми матюками и бесполезным контентом)) Эта статья рассчитана исключительно на тех кто только начинает свой путь программиста...
Так как человек сам по себе создание весьма ленивое, а программист и того хуже, мы конечно же не пойдем на php.net читать основы... Зачем? И так же все ясно.. Вот эээ, а вот... Блядь, не особо ясно...Ладно, за то у меня есть онлайн игра! Ясно вам? Я крутой админ...

Так к чему я все это? У каждого реального админа в жизни наступает момент когда нужно исправить что то, или добавить новую фичу.... И тут вроде все не так сложно если ты понимаешь что ты делаешь и как... Если ты дочитал до этого, то ТЫ, явно не такой) Мы ничего не понимаем и знать не знаем как это работает... У нас есть желание, но не более.. Да и читать то что? Нет я не против, но там настолько заумно все написано, что понять это довольно сложно...

Итак первое с чем лично я очень много возился это синтаксис того что я пишу.. Допустим ты 4 часа ищешь точку которую поставил твой кот лежащий на клавиатуре в момент когда автор вышел курить... И все.. день в... Ну вы поняли... Сейчас это все легко делают IDE (Integrated development environment, иврит - סביבת פיתוח משולבת) это такая вот хрень которая тебе очень поможет в будущем, все крутые посоны используют ее... Короче это такая хуячка которая поможет тебе кодить, выровняет строчки, откроет и закроет скобки где это нужно, и будет материться если ты допустил фатальную ошибку.. С этого выходит первый пункт:
1) Нам нужна IDE, кодить в notepad++ трушно, но не удобно...

Два простых примера:
IDE тебе говорит: Ты идиот, ты тупуишь вот в этой строке! Ничего не заработает! Пойди погладь кота и исправдь ошибку!
1.png

Текстовый редактор тебе говорит "И шо?"
2.png


тут вроде все ясно, едем дальше, дальше нам нужно понять где и что делать... Казалось бы все просто, нужно... А нужно нам в эффектах персонажа вывести какой либо свиток...
Ну поехали, где у нас отображаются эффекты? Какой файл редактировать? Я бы начал от обратного, а именно от того, в какое место я хочу это вставить? И вот тут мы идем в наш проект и в через поиск по всем файлам ищем нужное слово, к примеру "Состояние"... такого дерьма нам найдет много, конечно мы можем добавить еще что то из исходного кода, а можем просто во всех местах где встречается это слово заменить его на "Состояние (1)", "Состояние (2)", "Состояние (100)" Тупо? ДА! Работает? Да!
3.png

Итого мы точно знаем файл и место где выводятся эфекты.. Ну круто... А дальше что? Что такое эффекты и где они хранятся?

Смотрим исходный код.. не ясно ничего.. ладно...

Применяем на себя эффект, и думаем как это дело отследить? Копируем в поиск текст с чата:

18:38
Персонаж "БрОдягА" использовал "Восстановление энергии 600HP+" на "БрОдягА".

Нам ничего не нашло... Но разве нас это пугает? Слова "персонаж" и "использовал" сразу мимо, такого дерьма навалом (Хотя).. Название? Тоже мимо.. Хм.. Картинка? Точно! Она же уникальна... И шерстим все в поисках этой картинки.. А там тоже облом, слишком много, или вовсе ничего... Впрочем мы можем взять ее путь "/i/effects"... Вот тут процесс пошел, мы находим упоминания картинкии где то рядом видим строки SELECT * FROM `effects` ... С чего делаем вывод что эта дрянь хранится в эффектах... Ну ок.. Идет в базу (phpmyadmin) и ищем эффект... Как? Там их тысчи... Логично что эффекты должны как то привязываться к юзеру.. Внимательно смотрим, тут есть и какие то параметры их, и картинки, и ID и куча всего не ясного... Попробовали найти.. Нет не то, каждый ID уникален, и явно не похож на userID... Так, ладно, посмотрим все поля таблицы, что там у нас есть? id, nlevel, nalign, user, proto... Ха! Ну ясен хуй ищем по user... Круть мы нашли все что на нас висит.. Как это вывести? Гугл нам поможет.. А тут уже видим готовый пример кода как это сделать.. Сравниваем это с нашим файлом и проводим какие то параллели... Ну а дальше вникаем и читаем за что отвечает какая функция и что она делает... Последнее довольно важно ведь все равно придется разбираться как это дерьмо работает...

Я не стал вставлять примеры кода ведь статья не привязывается к какому то примеру, просто советы как.. Не нужно делать)))) Нет я начинал так, вот через жопу, ленясь читать унылые мануалы и не понимая чем ооп круче функционального программирования... И знаете что? да вот так из через жопу я многое понял, но в итоге все равно пошел к первоистокам курить мануалы)) У каждого свой склад ума, кажый идет к истине по своему.. А истина у нас тут если что)))))) дальше скорее всего буду дополнять статью, а пока оставим как есть, черновиков тут увы нет))
 

Insallah

Раздолбай
📜
💎
  • Золотая медаль
Хм.. Картинка? Точно! Она же уникальна... И шерстим все в поисках этой картинки..
…находим картинку в качестве записи в ячейке БД, проклинаем всех, лезем искать по запросам, которых много и везде…
 

Василий

Постигающий
📜
…находим картинку в качестве записи в ячейке БД, проклинаем всех, лезем искать по запросам, которых много и везде…
А разве кто-то отменял просмотр кода в браузере? чтобы узнать ту же картинку, ее путь, название, и тд...
 

oxy

Продвинутый
🏆
📜
💎
  • Надмозг
А разве кто-то отменял просмотр кода в браузере? чтобы узнать ту же картинку, ее путь, название, и тд...
Конечно нет, но новичку не всегда ясно какой код генерится динамически а какой статичен, так что в этом сложность) Я хотел описать этот метод, но с той же картинкой в браузере будет URL /img/ololo/fuck.png а в коде DIRECTORY_SEPARATOR."img".DIRECTORY_SEPARATOR.$thingsFolder.DIRECTORY_SEPARATOR.$thingName.'png' И вот ты уже вижжишь как сучка))))

Вообще еще раз напомню что это все относительно вредные советы для любителей сделать через жопу))) По нормальному нужно учитсья читать код и понимать что тут делается и что происходит)))
 

Bayer

Специалист
⚖️
🏆
📜
💎
  • Надмозг
По нормальному нужно учитсья читать код и понимать что тут делается и что происходит)))
Говоришь как Сеньор.
Джун: -Как же это работает?
Сеньор: - Почитай документацию и ты все поймешь!
Джун: *не понимает*
 
Внимание! Эта тема устарела на 117 дней.
Тут обсуждать нечего, лучше создай новую тему. Конечно, если очень-очень нужно (например хочешь ответить на древний вопрос), то отвечай. Но помни: некропост — зло, а модератор не дремлет!
Сверху