под договором, как минимум, подписи ставятся или хотя бы банально транзакцией скрепляются отношения. Не надо бросаться в крайности :) Думаю, многие поняли, что мое высказывание имеет не юридический смысл. Или просто решили придраться к словам?)
Тема бред. Все равно, что ходить по рынку, пытаясь найти капусту дешевле, каждый продавец будет тебе рассказывать: "вах, хароший капуста очень, мы её вырастили под нежним солнцем Кавказа! Вах, забирай, молодой, капуста — во!". Потом пойти и купить эту капусту у бабки. Все будут ходить и предупреждать друг друга: "вах, нехароший тут хадиль, я ему капусту гор Кавказа предлагал, а он отказался, вот шо за человек, а? Шли его подальше, раз он такой нехароший!". 1) Я ему не навязывал свои услуги. Он сам попросил мой скайп, сам добавился. 2) Цену он предложил тоже сам. 3) Он описал какой функционал ему надо, я назвал свои условия выполнения работы. На эти условия он согласился, то есть за язык его никто не тянул. По сути появилась уже договоренность. Если бы он передумал, то он бы сообщил об этом еще в субботу (у него было время подумать - со среды и до субботы), но в субботу он не изменил своего решения. Соответственно можно предположить, что его все устраивало. Собственно суть темы в том, чтобы предупредить, что этот человек не держит свое слово (На случай, если кто захочет с ним работать. Особенно без предоплаты). P. S. Если для Вас выражение: "Договор дороже денег" - пустой звук, то можно было бы спокойно пройти мимо этой темы.
просто хотел предупредить людей о чем? что готов работать без предоплаты?:) посыл конечно услышан, но совершенно не значит, что заказчик - недобросовестный, могло и вправду случится всё, что угодно. Думаю, что в течении недели можно было хоть как-то сообщить о каких-то проблемах.
Так я и не прошу вносить его в ЧС, просто хотел предупредить людей :)
Какая-то работа была сделана? Почти нет. Я подозревал, что оно все так и закончится, поэтому не сильно спешил работать без предоплаты. Сделал регистрацию/авторизацию/восстановление пароля и все, ждал до субботы.
Кратко и по сути. Заказчик: http://mmorpg-devs.ru/members/celtsguild.12845/ Его скайп: celtsguild Ориентировочно - человек с Нижнего Новгорода . 29.10.14 - Заказал личный кабинет для ПВ. Перечислил все, что ему требуется в ЛК. Так же сошлись на цене (цену он предложил сам, я согласился). Но так как на форуме он недавно, то для перестраховки я сказал ему, что буду работать поэтапно с предоплатой 30%. Он согласился, только сказал, что скинет предоплату только в субботу (1.11.14). Я согласился. Пришла суббота, я написал ему на счет предоплаты. Он долго не отвечал, но в итоге написал, что скинет деньги через 2 часа, когда придет домой. И все, после этого пропал и не выходит на связь. P. S. Тема создана для того, чтобы люди были осторожнее работая с этим человеком (если конечно кто-то захочет с ним работать) Пару скринов ниже: [IMG] [IMG] [IMG] Суббота: [IMG] [IMG]
зачем отключать всё, если можно добавить в исключение файл [IMG]
Думаем что мы сможем договоиитса з ммотоп. Судя по грамотности - сомневаюсь.
- Пополнить Баланс (WayToPay) Самый главный пункт :D
Кому нужен еще один никому не известный топ ?
Основное на данный момент - доработка немного недоработанных скриптов. Какие именно скрипты? :)
PhP разработчик (желательно с опытом работы на других проектах подобного рода); Можно подробнее? Что входит в обязанности? :)
Продолжение темы: http://mmorpg-devs.ru/threads/php-binreader.17233/ Эта библиотека предназначена для упаковки данных. Список методов saveToFile getAsStr getSize clean write writeInt16 writeUInt16 writeUInt16_be writeUInt16_le writeInt32 writeUInt32 writeUInt32_be writeUInt32_le writeFloat16 writeFloat32 writeFloat64 writeChars8 writeStruct Тут все достаточно просто, по этому подробно расписывать нет надобности. Просто покажу пример использования на том же world_targets.sev [IMG] Пример внутри архива :)
Давай больше точечек, вопросиков и скобочек :) читать надо все Зачем мне читать твою ахинею?
Сайт стоит на хостинге, а не на сервере Все не читал, но это убило :)
Как можно понять из названия темы - предназначена для работы с data файлами. А конкретнее - их чтение. Может быть полезна php разработчиками, если , к примеру, необходимо спарсить какой-то data файл в базу. Список методов: offset readByte readInt16 readUInt16 readUInt16_be readUInt16_le readInt32 readUInt32 readUInt32_be readUInt32_le intToFloat16 UIntToFloat16 intToFloat32 UIntToFloat32 readFloat16 readFloat32 readFloat64 floatToInt16 floatToUInt16 floatToInt32 floatToUInt32 readChars8 readChars16 readStruct Конструктор принимает массив с 2 элементами. array('путь_к_data_файлу', 'имя_папки_со_структурами'); Второй элемент не обязателен. К примеру, узнать версию elements.data можно так: <?php $reader = new BinReader(array('elements.data')); echo $reader->readUInt16(); Названия методов, думаю, интуитивно понятные. Основная полезность библиотеки в том, что для data файлов можно написать структуры и далее для чтения файла можно просто указывать нужную структуру, вызывая метод readStruct(), и все. Простой пример. Прочитаем первые пару значений elements.data , читая файл по структуре. Узнаем версию элика и количество записей в первом листе: Чтитаем: UInt16 (2 байта), потом идет смещение на 6 байт, и потом количество записей в первом листе Int32 (4 байта) [IMG] [IMG] В качестве параметра методу readStruct() можно передавать не только саму структуру, но и имя файла, в котором она описана. Как можно заметить, структура - это обычный ассоциативный массив ключ => значение, где значение - тип данных, который нужно считать, а ключ - ключ в массиве с результатом. В значении указывается имя метода без префикса read . То есть, если целое знаковое число (4 байта == 32 бита) у нас считывается методом readInt32(), то в структуре в значении нам надо написать Int32 . Через точку с запятой можно передавать параметры для вызываемых методов. К примеру, если нам надо считать 10 символов по 1 байту, то мы реализуем это так: $struct = array( 'str' => 'Chars8;10', ); var_dump($reader->readStruct($struct)); Так же при описании структуры нам доступны некоторые директивы (перед директивой ставится двоеточие) 1) :offset=количество_байт - предназначено для произведения смещения при чтении файла по структуре. Пример использования можно увидеть на первом скрине. 2) :unset=ключ - удаляет элемент результирующего массива по его ключу. Пример использования: [IMG] [IMG] 3) ':struct=ключ' => '/* Тут массив со структурой или имя файла со структурой */' Эта директива предназначена для чтения структуры в структуре. При чтении достаточно большого файла и сложного файла на много удобнее будет разбить всю структуру на меньшие под структуры. К примеру - структура для чтения elements.data можно реализовать как структуру для чтения структур листов. 4) ':cycle=параметр_1;параметр_2' => '/* Тут массив со структурой или имя файла со структурой */' - Предназначено для чтения определенной структуры заданное количество раз. параметр_1 = Количество итераций. Вместо количества итераций можно указать ключ элемента результирующего массив, тогда количество итераций будет взято с этого элемента. К примеру - можно использовать для чтения листов elements.data . Пример использования: [IMG] [IMG] 5) Конструкция: [:field_val=ключ] - предназначена для использования значений предыдущих элементов результирующего массива в текущем элементе. Пример: [IMG] [IMG] Как то так. Если будут вопросы, то пишите в эту тему. В архиве вместе с самой библиотекой приложил готовый пример парсинга world_targets.sev Результат парсинга world_targets.sev : [IMG]
он как раз используется в первом посте, а во втором в версии с имайджик уже используется фор А теперь смотри разницу. Вот тебе for: [IMG] [IMG] --- добавлено: 26 окт 2014 в 06:17 --- А вот foreach: [IMG] [IMG] --- добавлено: 26 окт 2014 в 06:18 --- Разницу в производительности видишь? :) --- добавлено: 26 окт 2014 в 06:32 --- P. S. Многие стандартные функции для работы с массивами лучше вообще не использовать, а писать их аналоги, используя foreach для перебора (только не забывайте сбрасывать потом внутренний указатель). Вот тому пример: [IMG] [IMG] --- добавлено: 26 окт 2014 в 06:35 --- Как видим - стандартная функция для обхода массива работает в 34 раза медленнее, чем ее аналог на foreach.
есть определенные предложения по модификации кода? )) Для начала - заменить for на foreach :)
[IMG] Я правильно понимаю, на каждую мелкую картину заново читается весь полный пак картинок? Еще и размер массива каждый раз заново пересчитывается)
Спионерил шаблончик себе :) [IMG]
Имена участников (разделяйте запятой).