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

Поиск сообщества

Показаны результаты для тегов 'AL_WARP'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Русскоязычная поддержка эмуляторов Athena l ea-support.ws
    • Новости
    • Правила и FAQ
    • Жалобы
    • Список серверов
  • Установка сервера
    • Сервер
    • Гайды
    • Вопросы, ошибки и баги
    • Хостинг
  • Кодинг
    • Скриптинг
    • SRC
  • Клиент
    • Модификации для клиента
    • Клиент
  • WEB
    • Панели управления
    • PHP скрипты
  • Доска объявлений
    • Совместные проекты / поиск партнёров
    • Запросы
    • Услуги
  • Остальное
    • События в мире Ragnarok
    • Развлечения
    • Корзина
    • Black List

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


Сайт


ICQ


Skype


Город


Интересы


Название сервера

Найдено: 1 результат

  1. Добрый день. Прошу помочь или направить на решение. Использую версию 15269, исходники брал отсюда https://eathena-project.googlecode.com/svn/trunk/ В качестве клиента пользую exe с 9 packetversion. Появилась необходимость модифицировать скилл аколита Warp Portal: - Поднять его до 10 уровня. - Увеличить количество memo поинтов до 9 (+1 сейв) Что сделал: db/skill_db.txt 27,9,6,2,0,0x1,0,10,1,yes,0,0,3,magic,0, AL_WARP,Warp Portal src/map/skill.c - эту часть заговнокодил тк ничего не получалось, позже приведу в порядок case AL_WARP: if(sd) { short wp0=0; if(sd->status.memo_point[0].map) { wp0=sd->status.memo_point[0].map; } short wp1=0; if(sd->status.memo_point[1].map) { wp1=sd->status.memo_point[1].map; } short wp2=0; if(sd->status.memo_point[2].map) { wp2=sd->status.memo_point[2].map; } short wp3=0; if(sd->status.memo_point[3].map) { wp3=sd->status.memo_point[3].map; } short wp4=0; if(sd->status.memo_point[4].map) { wp4=sd->status.memo_point[4].map; } short wp5=0; if(sd->status.memo_point[5].map) { wp5=sd->status.memo_point[5].map; } short wp6=0; if(sd->status.memo_point[6].map) { wp6=sd->status.memo_point[6].map; } short wp7=0; if(sd->status.memo_point[7].map) { wp7=sd->status.memo_point[7].map; } short wp8=0; if(sd->status.memo_point[8].map) { wp8=sd->status.memo_point[8].map; } short wp9=0; if(sd->status.memo_point[9].map) { wp9=sd->status.memo_point[9].map; } clif_skill_warppoint(sd, skillid, skilllv, wp0, wp1, wp2, wp3, wp4, wp5, wp6, wp7, wp8, wp9); } src/map/clif.h 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); src/common/mmo.h #define MAX_MEMOPOINTS 9 src/map/clif.c - и вот тут никак не могу разобраться, WFIFOP расставил все по длине в 16, а все равно когда используешь скилл, выходит окно только с 4 точками memo и никак более, в чем может быть проблема? в базе благополучно находятся все 9 memopoint, и такое ощущение что до клиента доходят только 4 первые строки 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; //0x11c WFIFOHEAD(fd,packet_len(0x11c)); WFIFOW(fd,0) = 0x11c; WFIFOW(fd,2) = skill_num; memset(WFIFOP(fd,4), 0x00, 4*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,packet_len(0x11c)); 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; }
×
×
  • Создать...
Яндекс.Метрика