Перейти к содержанию

wl.illusion

Проверенные
  • Постов

    122
  • Зарегистрирован

  • Посещение

  • Победитель дней

    11

Весь контент wl.illusion

  1. wl.illusion

    ssd и ноут

    Если время не торопит, то сейчас уже достаточно доступны гибридные жёсткие диски, это и SSD и HDD в одном флаконе. Пока SSD объём диска маловат на них, но это скоро исправят, полагаю. По поводу тестов евереста, то ты немного не ту информацию показал, нужны данные по материнской плате, но думаю, что никаких проблем не будет, т.к. у меня достаточно старенькая материнка была и с ней он отлично работал, главное наличие AHCI и SATA2, на SATA1 он тоже работает, кстати. В режиме AHCI достигается максимальная скорость работы и прочие приятные плюшки. Винт у тебя вроде в SATA2 режиме работает, значит всё ок. На указанную мной модельку SSD у меня нареканий нет, хотя я редко систему перезагружаю и не особо своплю его, но 7ка запускается шустренько, фотожопа за пару секунд стартует, vs2008 мгновенно, браузеры и прочее, когда как, но FF у меня с кучей самописных аддонов и скриптов, так что... Оценка в win7 - 7.8
  2. wl.illusion

    ssd и ноут

    У меня в стационарнике стоит Kingston V300, SV300S37A/120G, стоил он правда значительно дешевле тогда, чем сейчас. Работает 3 месяца, нареканий нет. Игры держу на обычном HDD, а вот софт и система на нём — запускается почти мгновенно всё. Что касается щелчков и подвисания HDD на ноутбуке, то ты бы проверил, может он у тебя просто в спящий режим уходит (HDD, а не ноут), посмотри настройки системы, у меня, к примеру, все жёсткие диски при простое в 10 минут отрубаются, запуск их снова серьёзно заметен. upd а раньше подвисаний hdd не было?
  3. Можно сделать используя getd и setd. По id-итема, хранить tick+время действия и при использовании сравнивать, ну и предметы переделать малость. Иначе никак, раз сорц править не желаете.
  4. Не сильно, хорошо, давайте попробуем для начала просто усилить мобов через повышение их уровня, находите в mob.c: if(md->db->option) Добавляете перед: md->level += 50; status_calc_mob(md, 0); // Update mob data status_percent_heal(&md->bl, 100, 0); // Heal 100% Если будет недостаточно, то можно поиграться с другими параметрами, например усилить hit (оставил в таком виде, чтобы было понятнее, в данном случае 150 — процент от значения с уже пересчитанными параметрами, это очень сильный хит): md->status.hit *= (150/100); Или увеличить силу атаки на 50% от указаннов в mob_db.txt (оставил в таком виде, чтобы было понятнее, в данном случае 150 — процент от дефолтового значения): md->status.rhw.atk *= (150/100); md->status.rhw.atk2 *= (150/100); Проверить правда не могу, нету рабочей версии 14xxx под рукой, но должно скомпилиться и работать. upd Вот ещё можно касты на них наложить: sc_start(&md->bl, SC_ASPDPOTION2, 100, 10, 1209600000); sc_start(&md->bl, SC_SPEEDUP1, 100, 10, 1209600000); Будут шустрее бегать и быстрее атаковать. Я правда, неуверен, что их flee можно так просто будет пробить.
  5. Я постараюсь объяснить чего ждут пользователи, полагаю, что нужно сделать страничку на которой будет собран весь необходимый софт для начинаюзих, можно тему на форуме, но чтобы её не приходилось искать по разным разделам. Файловый архив — хорошая идея, но он мягко говоря далёк от идеала удобств. А файлы в архив, скорее всего, никто заливать не будет, разве только ты сам этим займёшься. Кстати, порой и не файлы нужны, а ссылки, где эти файлы можно взять, на теже .exe со снятой защитой или lua-файлы, на готовые версии серверов и прочее.
  6. Скиньте mob.c, если он не сильно отличается от новой ветки 17xxx, то всё элементарно.
  7. Я, кстати, согласен с большинством, а почему не сделать ссылку отдельно от файлового архива и уж тем более от поиска по форуму? Жуть же тонны, простите, говна разгребать, а так удобно — тырк и сразу нашёл.
  8. О вкусах не спорят, imho, не стас михайлов и не дешёвая русская попса — уже отлично!
  9. Для начала. я бы порекомендовал вам пользоваться тэгом форума [code] По вашей ошибке, думаю что вам внутри OnTimer1 нужно использовать не announce, а mapannounce, т.к. announce требует, чтобы был прицеплен RID, а mapannounce — нет. Ну и OnTimer1 — неправильно, но думаю вы это знаете. И было бы неплохо выложить лог ошибки mapserv'а.
  10. Я считаю, что в любой ситуации надо обладать собственным достоинством и вести себя хоть с каким-то уважением к собеседнику, даже, если вы его считаете полным идиотом и дураком, даже если ваше ЧСВ в вашей пятой точке начинает свербить так, что распирает. Помогите, распишите всё вежливо, пустите ехидную шутку в сторону «пациента» — это ударит по человеку значительно сильнее, чем кидание какашками из угла вашей клетки в зрителей. Я в детсаде не был (было кому воспитывать), но судя по имеющимся рассказам друзей — очень схожая ситуация, но так ведь вам не 4-6 лет уже, взрослые дядьки и не менее взрослые девушки. Противно. upd to Sanasol По-моему, тему надо закрывать, а то тут очередные разборки назревают.
  11. Если мне память не изменяет, то я решал проблему через WeeDiff, убирал галочку в патчере с «Use Arial On All Langtypes» и в «Use Custom Font» прописывал Arial.
  12. Да, точно, просто глаз резануло от if()() У меня ваш скрипт ошибок не выдаёт, исправьте только в mes "[GodLike]"; mes "Принеси мне 14 TCG."; if(countitem(7227)<14) goto L_no_tcg;x next; Символ 'x' в конце строки убрать и расставляйте правильно табы, видимо проблема именно в них, да, и это должны быть именно ТАБы, а не пробелы.
  13. Синтаксис неправильный для команды if, прочти внимательнее и примеры изучи. По первому скрину - табы скорее всего не правильные, выложи скрипт полностью, чтобы можно было изучить и помочь.
  14. Скрипт Магазина за TCG вроде вот этот рабочий http://www.eathena.ws/board/index.php?s=&showtopic=218605&view=findpost&p=1206928 - впрочем, не проверял, кастомные вещи как создавать читайте гайды, на оффе даже вроде есть.
  15. Знаешь, не моё дело лезть в ваши разборки, но я бы вообще полфорума в бан отправил — вы только и делаете, что срётесь, демонстрируете своё ЧСВ >9000 и толку от вас в практическом смысле ноль. Запер бы во флудильне и невыпускал в другие темы. Может Sanasol организует такое, было бы здорово, а то на форум противно заходить — сборище из детсада.
  16. Никакой разницы, т.к. при запуске сервер прогружает нпц в память и считываются они из памяти. При перезапуске сервера, если у тебя 100500 файлов, конечно, загрузка будет подтормаживать, но только загрузка.
  17. [sCRIPT][NPC] NT Craft Api v1.01 + NPC Это API писалось уже больше года назад, я в него почти не вносил изменений с тех пор, так что может что-то работать не так. Я отлично понимаю, что можно сделать лучше и сейчас бы так и поступил, но интерес к данному API минимален, так что если вас устраивает - используйте, если вас что-то не устраивает, просто пропустите мимо глаз. Так же учтите, что здесь выложена информация об API, а не об NPC. Для примера добавлены и сами NPC - простенький и более сложный вариант с квестами. В Базе API всего несколько предметов, если нужно - добавляйте, я обновляю базу API по мере работы с ней. История изменений 2014.05.18: - Добавлена версия 1.02; - Обновлена информация по новой версии (добавление описания/свойства предмета). Описание API позволяет эмулировать формулы крафта и варки зелий (можно дописать и что-то другое). Основной плюс в том, что можно создавать предметы для крафта доступные только через NPC, или другим классам персонажей иметь доступ к крафту и варке без изменений сорцов. Скачать Craft API v1.02: nt_craft_api.txt (v1.02) Craft API v1.01: nt_craft_api.v1.1.txt (v1.01) Простенький NPC-варки: nt_craft_simple.txt (v1.00) NPC-алхимик с квестами: nt_craft_alchemist.txt (v2.00) Принцип работы API работает на вызовах, которые вы подаёте через стандартный callfunc, каждый вызов требует определённого кол-ва параметров, постараюсь привести все с примерами. Синтаксис: callfunc("alch_func", <номер ключа>, <префикс базы>(, <входящие переменные>)); Для начала стоит рассказать о том, что такое <префикс базы> — каждая база создаваемых предметов имеет определённый префикс, это сделано для хранения различных баз на разные случаи (база может быть и одна). Список ключей и их описание: 0 — инициализация базы, во время её вызова создаются дефолтовые переменные, синтаксис: callfunc("alch_func", 0, <префикс базы в кавычках>); Пример: callfunc("alch_func", 0, "potion"); 1 — добавления элемента в базу, здесь нельзя ошибаться и нужно быть внимательным, т.к. функция требует много переменных, синтаксис: callfunc( "alch_func", 1, <префикс базы в кавычках>, <тип визуальных эффектов>, <показывать кол-во создаваемых предметов> <id создаваемого предмета>, <кол-во создаваемых предметов>, <название в списке создаваемых предметов>, <стоимость зени>, <какую формулу учитываем>, (<id необходимого предмета для создания>, <кол-во этого предмета>,) 0, (идентификатор окончания списка необходимых предметов) "" (дополнительное описание выводимое о предмете, символ # - разделитель строк) ); Пример, добавления Red Potion за 25 зени: callfunc( "alch_func", 1, "potion", 0, .@hide_amount, 501, 1, "", 25, 2, 507, 1, 0, "Отличный напиток#придаёт жизненных сил." ); Теперь нужно рассказать о каждом необходимом параметре: <тип визуальных эффектов>: какой набор визуальных эффектов будет использовать во время крафта предмета, всего есть три набора: 0 - эффекты создания напитков 1 - обычные надписи Success и Failed 2 - эффекты псоздания оружия <показывать кол-во создаваемых напитков>: всё просто, показывать или нет в списке сколько будет создано предметов, 0 - показывать или 1 - скрывать, для удобства сделаны переменные .@hide_amount и .@view_amount. <id создаваемого предмета>: id предмета, который будет создан из списка в item_db.txt, можно указывать любой предмет. <кол-во создаваемых предметов>: какое кол-во будет создано (формула вычисляет только один раз). <название в списке создаваемых предметов>: название предмета, оно будет выводиться только в списке, после создания предмет получит обычное название, если указать пустые кавычки, то имя возьмётся из базы. <стоимость зени>: если указать 0, то требование не будет учитываться. <какую формулу учитываем>: для создания в игре много формул, вот список тех, которые реализованы (вы и сами можете что-то дополнить): 0 - всегда 100% шанс успеха 1 - базовая формула создания напитков (см калькуляторы варки) 2 - формула создания red/yellow/white potion (см калькуляторы варки) 3 - формула создания алкоголя (см калькуляторы варки) 4 - формула создания Bottle Grenade(Fire Bottle)/Acid Bottle/Plant Bottle/Marine Sphere Bottle (см калькуляторы варки) 5 - формула создания Condensed Yellow Potion (см калькуляторы варки) 6 - формула создания Condensed White Potion/Glistening Coat (см калькуляторы варки) 7 - всегда 100% шанс, используется для элементальных свитков 8 - формула крафта Железа (см калькуляторы крафта) 9 - формула крафта Стали (см калькуляторы крафта) 10 - формула крафта Элементальных камней (см калькуляторы крафта) 11 - формула крафта оружия (см калькуляторы крафта) <id необходимого предмета для создания>: id предмета необходимого для производства <кол-во этого предмета>: какое кол-во указанного предмета нужно для производства Эти две строки вы можете повторять много раз (указывая список необходимых предметов для производства). 0 - в конце списка обязателен. Запоминайте порядок добавленных предметов, т.к. это необходимо для будущего построения списка. Отсчёт ведётся от 1. 2 — отрисовка меню выбора предмета для крафта, синтаксис: callfunc("alch_func", 2, <префикс базы в кавычках>, <текст сообщения об отмене>, <array предметов>); Пример: setarray .@craft_array[0],1,2,3,4; set .@itemselect, callfunc("alch_func", 2, "potion", "^888888 Ничего не нужно, я передумал^000000", .@craft_array); mes "Вы выбрали элемент: "+.@itemselect; close; Возвращает 0, если был выбрал пункт отмены действия или id из списка, в примере переменную из .@craft_array. 3 — возвращает название выбранного элемента, синтаксис: callfunc("alch_func", 3, <префикс базы в кавычках>, <id выбранного элемента>); Пример: setarray .@craft_array[0],1,2,3,4; set .@itemselect, callfunc("alch_func", 2, "potion", "^888888 Ничего не нужно, я передумал^000000", .@craft_array); if ( !.@itemselect ) mes "Выбран пункт отмены."; else mes "Вы выбрали элемент: "+callfunc("alch_func", 3, "potion", .@itemselect); close; 4 — возвращает id-предмета из item_db.txt выбранного элемента, синтаксис: callfunc("alch_func", 4, <префикс базы в кавычках>, <id выбранного элемента>); Пример: setarray .@craft_array[0],1,2,3,4; set .@itemselect, callfunc("alch_func", 2, "potion", "^888888 Ничего не нужно, я передумал^000000", .@craft_array); if ( !.@itemselect ) mes "Выбран пункт отмены."; else mes "id-предмета: "+callfunc("alch_func", 4, "potion", .@itemselect); close; 5 — возвращает создаваемое кол-во выбранного элемента, синтаксис: callfunc("alch_func", 5, <префикс базы в кавычках>, <id выбранного элемента>); Пример: setarray .@craft_array[0],1,2,3,4; set .@itemselect, callfunc("alch_func", 2, "potion", "^888888 Ничего не нужно, я передумал^000000", .@craft_array); if ( !.@itemselect ) mes "Выбран пункт отмены."; else mes "Вы получите: "+callfunc("alch_func", 5, "potion", .@itemselect)+"шт"; close; 6 — выводит список необходимого для крафта выбранного элемента, синтаксис: callfunc("alch_func", 6, <префикс базы в кавычках>, <id выбранного элемента>); Пример: setarray .@craft_array[0],1,2,3,4; set .@itemselect, callfunc("alch_func", 2, "potion", "^888888 Ничего не нужно, я передумал^000000", .@craft_array); if ( !.@itemselect ) mes "Выбран пункт отмены."; else mes "Для создания необходимо:",callfunc("alch_func", 6, "potion", .@itemselect); close; 7 — проверка на наличие всего необходимого для создания выбранного элемента, возвращает 0 - если всё необходимое есть и 1 - если чего-то нехватает, синтаксис: callfunc("alch_func", 7, <префикс базы в кавычках>, <id выбранного элемента>(, <кол-во starcramb>, <id элемента стихии>)); Пример: setarray .@craft_array[0],1,2,3,4; set .@itemselect, callfunc("alch_func", 2, "potion", "^888888 Ничего не нужно, я передумал^000000", .@craft_array); if ( !.@itemselect ) { mes "Выбран пункт отмены."; close; } if ( callfunc("alch_func", 7, "potion", .@itemselect) ) { mes "Чего-то нехватает..."; close; } mes "Всё необходимое есть!"; close; Параметры <кол-во starcramb> и <id элемента стихии> необходимы только для крафта оружия (уровень Strong и элемент стихии). Стихии: 0 - Без стихий 1 - Лёд 2 - Земля 3 - Огонь 4 - Ветер 8 — проверка и вывод недостающего для создания выбранного элемента, синтаксис: callfunc("alch_func", 8, <префикс базы в кавычках>, <id выбранного элемента>(, <кол-во starcramb>, <id элемента стихии>)); Пример: setarray .@craft_array[0],1,2,3,4; set .@itemselect, callfunc("alch_func", 2, "potion", "^888888 Ничего не нужно, я передумал^000000", .@craft_array); if ( !.@itemselect ) { mes "Выбран пункт отмены."; close; } if ( callfunc("alch_func", 7, "potion", .@itemselect) ) { mes "Нехватает:"; callfunc("alch_func", 8, "potion", .@itemselect) close; } mes "Всё необходимое есть!"; 9 — процесс создания выбранного элемента, возвращает 0 - если создание прошло успешно, 1 - создание не удалось и 2 - если случились проблемы похожие на читорство игрока, синтаксис для варки: callfunc("alch_func", 9, <префикс базы в кавычках>, <id выбранного элемента>, <joblevel>, <int>, <dex>, <luk>, <Skill lvl Learning Potion>, <Skill lvl Pharmacy>); Синтаксис для крафта: callfunc("alch_func", 9, <префикс базы в кавычках>, <id выбранного элемента>, <joblevel>, <dex>, <luk>, <Anvil level>, <Skill lvl Iron create>, <Skill lvl Steel create>, <Skill lvl Element stone create>, <Skill lvl Smith>, <Skill lvl Weaponry>, <Skill lvl Oridecon>, <кол-во starcramb>, <id элемента стихии>); Уровни наковальни: 0 - Anvil 1 - Oridecon Anvil 2 - Golden Anvil 3 - Emperium Anvil 10 — стоимость в Zeny выбранного элемента, синтаксис: callfunc("alch_func", 10, <префикс базы в кавычках>, <id выбранного элемента>); Пример: setarray .@craft_array[0],1,2,3,4; set .@itemselect, callfunc("alch_func", 2, "potion", "^888888 Ничего не нужно, я передумал^000000", .@craft_array); if ( !.@itemselect ) mes "Выбран пункт отмены."; else mes "Стоимость: "+callfunc("alch_func", 10, "potion", .@itemselect)+" Zeny"; close; 11 — проверка на наличие описания к предмету: callfunc("alch_func", 10, <префикс базы в кавычках>, <id выбранного элемента>); 12 — вывод описания к предмету: callfunc("alch_func", 10, <префикс базы в кавычках>, <id выбранного элемента>); Примерное описание работы NPC в следующих постах.
  18. wl.illusion

    Фак е!

    http://ro-supprot.hol.es/index.php?/forum/19-%D0%BC%D0%BE%D0%B4%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8/ - вот тут самое фееричное, имхо. Особенно обычная копипаста с ошибками в тэгах. upd а кто это вообще такие? Я просто не в теме местных разборок и прочего.
  19. Покажите модифицированный bg_create
  20. wl.illusion

    PrototypeCP

    У меня даже ответ нет желания писать после фраз «школота», «учить». Горе вы программист, если утыкаетесь носом в свои личные предпочтения, что касается безопасности, то pdo далеко не самый безопасный и мозги никто не отменял, тем более хочется вам сказать пару ласковых, но сдержано опишу. Для начала, не вам учить кому и с какой бд работать, хотите написать узконаправленный тяжелодорабатываемый проект — пишите. Что касается самой идеи классов, во-первых, афина умеет работать с txt, это не секрет, но вы вот тут о безопасности кричали, какая же безопасность всё держать на одной бд? Умные люди предпочитают разделять бд, и nosql для не критичных данных очень подходит, тем более, если сделать кеширование данных из основной базы, для говно-серверов такое не нужно, но если кто-то серьёзно что-то хочет делать, то это очень полезно, во-вторых, ваш pdo никто не запрещал, не отрицал и вообще ничего плохого о нём не сказал (пока не сказал). Никто не мешает наследовать родительский класс и написать драйвер работы с базой через pdo, более того, это очень правильно, потому что будет оставлена обратная совместимость, а так, добрые ребята возьмут и что-то поменяют в pdo и вам придётся менять кучу вызовов или какие-то дополнительные параметры дописывать. Редко такое встречаю в крупных проектах, но бывает. Итого, мы получаем ваш тут распиариный (как ваше чсв) pdo и удобный класс для создания драйверов работы с любой бд (и не только), которые не поддерживаются pdo и возможность создания совместимости со старыми версиями php. Более того, можно сделать обязательной санацию получаемых данных, лёгкое добавление префиксов и постфиксов для имён таблиц, а ещё, что не мало важно, даже работу с несколькими бд одновременно. И всё это без каких-то проблем. Где-то pdo для работы с mysql и прочим мусором, а где-то nosql для кеширования и считывание txt (для изысканных извращенцев). Что касается кода Санасола, то ничего плохого сказать не могу, нет, вы правы, что там чёрный лес, но после многолетнего исправления говнокода различных компаний — меня напугать тяжело, а всякие флуксы и другие цп написаны чуть лучше, но там тоже есть много пёрлов, которые можно было бы повыдирать для нареканий. Да, и не разбрасывались бы вы громкими фразами и оскорблениями, ваш интеллектуальный уровень как-то меркнет, если вы чего-то не принимаете или не воспринимаете, то грошь вам цена, как разработчику, тем более, как программисту. Не нравится? Не смотрите, хотите по-оскорблять? Я уже писал о таком отношение к человеку. Резюме: не пишите чушь и оскорбления, шансов, что вас послушают — мало, что обидятся — много, что положат на вас прибор — 99.9%. Не нравится идея? Замечательно! Напишите спокойно и разумно почему ваша идея лучше, какие у неё преимущества над конкуретными. Хотите критиковать, как малолетний интригант? Вам к детям в песочницу, в любом другом виде — будьте взрослым адекватным человеком со прагматичным взглядом, а не упоротым наркоманом с чсв лошади.
  21. Я не такой игрок в рагну, чтобы понимать о чём вы, по мне так — в рА мобы слабоваты, кач слишком быстрый, но если что-то мне не нравится, то я вполне могу поправить под себя сорцы, не всё конечно, но по мелочам, посмотрел changelog eA и обновлений там совсем мало.
  22. rA вполне съедобен, зря они так, там правда с какой-то ревизии что-то изменили в unit.c, что теперь area_size работает для движения некорректно, но в целом баги и в eA частенько бывали. Мне для личных целей с друзьями погонять вполне хватает
  23. Да, спасибо, не подумал. Нашёл с какой версии, но пока не понял для чего это. upd Надо бы потестить. upd2 Изучил скриптовую команду monster и функцию mob_spawn_once — нигде нельзя указывать произвольный уровень моба при создании, значит изменения в status.c внесли по ошибке для будущих исправлений, но в любом случае, для корректной работы исправления нужно делать обязательно. Может кто отпишится в баг-трекер?
  24. wl.illusion

    PrototypeCP

    Подсоедините мне к pdo, пожалуйста, nosql и работу с .txt файлами, ах, ну и да, совместимо с 4.хх и 5.0, чтобы было. Спасибо. upd цепануло глаз «абстрактный интерфейс» — не путайте класс и интерфейс, я предлагал создавать класс. К PDO вы только средствами C++ сможете дописать драйвер работы с nosql или .txt. Мой способ даёт возможность без какой-либо переделки рабочего проекта менять db пользователю, а программист php без труда допишет отдельный драйвер работы с любой db средствами PHP. Да это не очень быстрый доступ к db по сравнение с PDO, но зато более универсальный и совместимый, поддающийся лёгкой доработке и изменениям.
×
×
  • Создать...
Яндекс.Метрика