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

Functor

Core Developers
  • Постов

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

  • Посещение

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

    147

Сообщения, опубликованные Functor

  1. и я заметил в предыдущей версии такого глюка не было, как вышла 17726 ревизия так начались и проблеммы

    Это старая версия. rAthena разрабатывается на GitHub. Можно скачать по ссылке:

    https://github.com/r...hive/master.zip

    и скажите пож...проблемма со шмотом решилась или нет? когда ставлю продажу предметов пишится ошибка что такой предмет продавать мол запрещено...

    Покажите скрин ошибки.

  2. Хостинг Lepus

    Другие эмули не лагают

    Защита Гепард

    2013 08 07 ехе.

    Лаги появляются через некоторое время после запуска игры.

    Пусть мне напишет в скайп тот человек, который покупал гепард. Я проверю присутствие фикса.

    Возможно покупали Вы, но у меня идентификация по скайпу, а не по нику на форуме.

    Другие эмули не лагают

    Я спрашивал про других игроков.

  3. У всех или только у Вас ?

    Лагает сразу после запуска РО или через некоторое время ?

    Защита используется ?

    Какой EXE ?

    В EXE от 2012 года присутствует баг, который через некоторое время игры понижает FPS.

    Он проявляется раньше, если используется защита. При установке гепарда я его фикшу.

  4. rAthena читает файлы ../db/pre-re/job_basehpsp_db.txt и ../db/re/job_basehpsp_db.txt

    В более старых ревизиях эти файлы могут называться как ../db/pre-re/job_maxhpsp_db.txt и ../db/re/job_maxhpsp_db.txt

    Там прописано базовое количество HP и SP для разных проф на разных уровнях.

    Если хотите отключить этот функционал и вернуться к расчету по HPFactor и SPFactor, то открываем ../src/config/core.h и меняем:


    /// Uncomment to enable the job base HP/SP table (job_basehpsp_db.txt)
    #define HP_SP_TABLES

    на:


    /// Uncomment to enable the job base HP/SP table (job_basehpsp_db.txt)
    // #define HP_SP_TABLES

    Сохраняем изменение и компилируем сервера.

    P.S. Не создавайте несколько постов подряд. Используйте кнопку Изменить для редактирования сообщения.

    • Upvote 1
  5. Формат BMP поддерживает разные уровни прозрачности.

    Набросал пример: http://www.mediafire...c9dh44bzuktdgny

    Но Neoncube ее не отображает. Также существуют программы, которые читают PNG c прозрачностью, но не отображают ее.

    Другими словами, тут дело в коде софта, а не в:

    В данный момент он хавает самый ущербный формат .bmp

    ;)

  6. Fizik, ловите режим чтения на 1 день. Я устал предупреждать про мультипостинг. ;)

    И ещё кое-что обнаружил, Скил на супер новиса линк теперь кидается и вроде бы всё нормально, Но как всегда не без проблем))) Теперь скилы супер новиса не качаются вообще, тоесть вообще некакие

    Открываем ../src/map/pc.c и в функции pc_calc_skilltree_normalize_job меняем:


    else if (sd->class_&JOBL_2 && !(sd->class_&JOBL_SUPER_NOVICE))

    на:


    else if (sd->class_&JOBL_2 && !(sd->class_&MAPID_SUPER_NOVICE))

    С такой модификацией


    if (sd && !(dstsd && ((dstsd->class_&MAPID_UPPERMASK) == type || (dstsd->class_&MAPID_UPPERMASK+0x400) == type) )) {

    скилл Knight Spirit работает на персонажа с айди профессией 4054 (не перерожденный) и не работает на 4060 (перерожденный)

    скилл Wizard Spirit работает на персонажа с айди профессией 4055 (не перерожденный) и не работает на 4061 (перерожденный)

    скилл Hunter Spirit работает на персонажа с айди профессией 4056 (не перерожденный) и не работает на 4062 (перерожденный)

    скилл Priest Spirit работает на персонажа с айди профессией 4057 (не перерожденный) и не работает на 4063 (перерожденный)

    скилл Blacksmith Spirit работает на персонажа с айди профессией 4058 (не перерожденный) и не работает на 4064 (перерожденный)

    скилл Assassin Spirit работает на персонажа с айди профессией 4059 (не перерожденный) и не работает на 4065 (перерожденный)

    скилл Crusader Spirit работает на персонажа с айди профессией 4066 (не перерожденный) и не работает на 4073 (перерожденный)

    скилл Sage Spirit работает на персонажа с айди профессией 4067 (не перерожденный) и не работает на 4074 (перерожденный)

    скилл Bard and Dancer Spirit работает на персонажа с айди профессией 4068/4069 (не перерожденный) и не работает на 4075/4076 (перерожденный)

    скилл Monk Spirit работает на персонажа с айди профессией 4070 (не перерожденный) и не работает на 4077 (перерожденный)

    скилл Alchemist Spirit работает на персонажа с айди профессией 4071 (не перерожденный) и не работает на 4078 (перерожденный)

    скилл Rouge Spirit работает на персонажа с айди профессией 4072 (не перерожденный) и не работает на 4079 (перерожденный)

    Проверяйте:

    Открываем ../src/map/map.h и меняем:


    #define JOBL_3_1 0x400
    #define JOBL_3_2 0x800
    
    

    на:


    #define JOBL_THIRD 0x4000
    
    

    меняем:


    MAPID_RUNE_KNIGHT = JOBL_3_1|JOBL_2_1|0x1,
    
    

    на:


    MAPID_RUNE_KNIGHT = JOBL_THIRD|JOBL_2_1|0x1,
    
    

    меняем:


    MAPID_RUNE_KNIGHT_H = JOBL_UPPER|JOBL_3_1|JOBL_2_1|0x1,
    
    

    на:


    MAPID_RUNE_KNIGHT_H = JOBL_UPPER|JOBL_THIRD|JOBL_2_1|0x1,
    
    

    меняем:


    MAPID_ROYAL_GUARD = JOBL_3_2|JOBL_2_2|0x1,
    
    

    на:


    MAPID_ROYAL_GUARD = JOBL_THIRD|JOBL_2_2|0x1,
    
    

    меняем:


    MAPID_ROYAL_GUARD_H = JOBL_UPPER|JOBL_3_2|JOBL_2_2|0x1,
    
    

    на:


    MAPID_ROYAL_GUARD_H = JOBL_UPPER|JOBL_THIRD|JOBL_2_2|0x1,
    
    

    Открываем ../src/map/skill.c и в функции skill_castend_nodamage_id меняем:


    if (sd && !(dstsd && ((dstsd->class_&MAPID_UPPERMASK) == type || (dstsd->class_&MAPID_UPPERMASK+0x400) == type) )) {
    clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0);
    break;
    }
    
    

    на:


    if (sd && !(dstsd && (dstsd->class_&MAPID_UPPERMASK) == type)) {
    clif_skill_fail(sd, skillid, USESKILL_FAIL_LEVEL, 0);
    break;
    }
    
    

    • Upvote 2
  7. 1. есть возможность описать ваши действия? каким софтом пользовались, что именно искали, ибо никогда не пользовался хексом в ситуациях подобной этой.

    Использовал отладчик OllyDbg.

    Нашел место где устанавливается длина пакета 0x11C и поменял с 68(0x44) на 164(0xA4).

    e2sxizy03po279izg.jpg068rtsw1inz3z67zg.jpg?size_id=4

    Нашел место обработки пакета 0x11C и поменял количество считываемых мап.

    29i496lx9q2ipl0zg.jpg?size_id=4j37gwe6r2hbzry3zg.jpg?size_id=4

    2. почему именно 0xA4 а не скажем 0xb4?


    WFIFOHEAD(fd, 0xA4);

    Вторым параметром мы передаем размер буфера, который будем использовать для отправки данных.

    0xA4 это 164 в шестнадцатеричной системе счисления.

    До редактирования функции clif_skill_warppoint эта строка выглядела так:


    WFIFOHEAD(fd,packet_len(0x11c));

    Функция packet_len возвращала размер пакета 0x11C. А именно 68 == 0x44 (2 + 2 + 16 * 4)

    Но теперь EXE ожидает больше данных. А именно 164 == 0xA4 (2 + 2 + 16 * 10)

    • Upvote 2
  8. Попробуйте.

    https://mega.nz/#!UI..._sy2nvFB_08JxFc


    void clif_skill_warppoint(struct map_session_data* sd, short skill_num, short skill_lv, unsigned short map1, unsigned short map2, unsigned short map3, unsigned short map4, unsigned short map5, unsigned short map6, unsigned short map7, unsigned short map8, unsigned short map9, unsigned short map10)
    {
    int fd;
    nullpo_retv(sd);
    fd = sd->fd;

    WFIFOHEAD(fd, 0xA4);
    WFIFOW(fd,0) = 0x11c;
    WFIFOW(fd,2) = skill_num;

    memset(WFIFOP(fd,4), 0x00, 10 * MAP_NAME_LENGTH_EXT);

    if (map1 == (unsigned short)-1) strcpy((char*)WFIFOP(fd,4), "Random");
    else // normal map name
    if (map1 > 0) mapindex_getmapname_ext(mapindex_id2name(map1), (char*)WFIFOP(fd,4));
    if (map2 > 0) mapindex_getmapname_ext(mapindex_id2name(map2), (char*)WFIFOP(fd,20));
    if (map3 > 0) mapindex_getmapname_ext(mapindex_id2name(map3), (char*)WFIFOP(fd,36));
    if (map4 > 0) mapindex_getmapname_ext(mapindex_id2name(map4), (char*)WFIFOP(fd,52));
    if (map5 > 0) mapindex_getmapname_ext(mapindex_id2name(map5), (char*)WFIFOP(fd,68));
    if (map6 > 0) mapindex_getmapname_ext(mapindex_id2name(map6), (char*)WFIFOP(fd,84));
    if (map7 > 0) mapindex_getmapname_ext(mapindex_id2name(map7), (char*)WFIFOP(fd,100));
    if (map8 > 0) mapindex_getmapname_ext(mapindex_id2name(map8), (char*)WFIFOP(fd,116));
    if (map9 > 0) mapindex_getmapname_ext(mapindex_id2name(map9), (char*)WFIFOP(fd,132));
    if (map10 > 0) mapindex_getmapname_ext(mapindex_id2name(map10), (char*)WFIFOP(fd,148));

    WFIFOSET(fd, 0xA4);

    sd->menuskill_id = skill_num;

    if (skill_num == AL_WARP)
    sd->menuskill_val = (sd->ud.skillx<<16)|sd->ud.skilly; //Store warp position here.
    else
    sd->menuskill_val = skill_lv;
    }

    • Upvote 1
  9. Это ини, Если надо что то ещё то скажите я залью

    Пробовали это? Открывается с нужным разрешением?

    Выкладывайте Ваш Setup. Укажите ОС и разрядность.

    Можете попробовать указать необходимое Вам разрешение в dinput.ini


    WindowWidth = 800
    WindowHeight = 600

    Используется 2013-08-07aRagexe ?

    Setup редактирует файл ../SaveData/OptionInfo.lua

    Установите в Setup разрешение, с которым не стартует EXE, и выложите этот файл.

    К слову тоже столкнулась с проблемой линка правда не с супер новисом. Сама не решила, но нашла частичное решение в интернете. Линк 3х проф (эмулятор еафина, 235 вроде)

    с такой модификацией работает на 3и профессии неадвансы

    if (sd && !(dstsd && ((dstsd->class_&MAPID_UPPERMASK) == type || (dstsd->class_&MAPID_UPPERMASK+0x400) == type) )) {

    С такой модификацией работает только на 6 адванс 3х проф на неадвансовые не работает вообще

     if (sd && !(dstsd && (dstsd->class_&MAPID_UPPERMASK) == type || (dstsd->class_&MAPID_UPPERMASK) == (type+1024))) {

    Как это соединить, чтобы работало и на тех и на этих + на оставшиеся 6 адвансов у меня ума не хватило, ибо в сырцах я дуб

    Укажите для примера какой скилл кастуете и на профу с каким ID. Проверю.

×
×
  • Создать...
Яндекс.Метрика