SemirLab Опубликовано 7 февраля, 2013 Жалоба Поделиться Опубликовано 7 февраля, 2013 Всем доброго времени суток.Возможно среди светлых умов сего форума - найду решение проблемы.В целом ситуация проста:После изменения сорц части - перестало работать присвоение die-метки для персонажей на БГ.пример:set $@KvM04BG_id1, waitingroom2bg("bat_c04",53,128,0,"KvM04_BG::OnGuillaumeQuit","KvM04_BG::OnGuillaumeDie");Тут, как вы видите - модификация на присвоение псевдо-гильдии для БГ-группы, выглядит следующим образом:BUILDIN_FUNC(waitingroom2bg){struct npc_data *nd;struct chat_data *cd;const char *map_name, *ev = "", *dev = "";int x, y, i, mapindex = 0, guild_index, bg_id;struct map_session_data *sd;nd = (struct npc_data *)map_id2bl(st->oid);if( nd == NULL || (cd = (struct chat_data *)map_id2bl(nd->chat_id)) == NULL ){script_pushint(st,0);return 0;}map_name = script_getstr(st,2);if( strcmp(map_name,"-") != 0 && (mapindex = mapindex_name2id(map_name)) == 0 ){script_pushint(st,0);return 0;}x = script_getnum(st,3);y = script_getnum(st,4);guild_index = script_getnum(st,5);ev = script_getstr(st,6); // Logout Eventdev = script_getstr(st,7); // Die Eventguild_index = cap_value(guild_index, 0, 12);if( (bg_id = bg_create(mapindex, x, y, guild_index, ev, dev)) == 0 ){ // Creation failedscript_pushint(st,0);return 0;}for( i = 0; i < cd->users && i < MAX_BG_MEMBERS; i++ ){if( (sd = cd->usersd[i]) != NULL && bg_team_join(bg_id, sd) )mapreg_setreg(reference_uid(add_str("$@arenamembers"), i), sd->bl.id);elsemapreg_setreg(reference_uid(add_str("$@arenamembers"), i), 0);}mapreg_setreg(add_str("$@arenamembersnum"), i);script_pushint(st,bg_id);return 0;}BUILDIN_DEF(waitingroom2bg,"siiiss"),Метка "KvM04_BG::OnGuillaumeDie" не срабатывает, в то время как "KvM04_BG::OnGuillaumeQuit" - прекрасно работает.Может у кого-то есть идеи?p.s. Заранее благодарен за ответы. Ссылка на комментарий Поделиться на другие сайты Поделиться
botka4aet Опубликовано 7 февраля, 2013 Жалоба Поделиться Опубликовано 7 февраля, 2013 где модифицированная часть 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
wl.illusion Опубликовано 7 февраля, 2013 Жалоба Поделиться Опубликовано 7 февраля, 2013 Покажите модифицированный bg_create Ссылка на комментарий Поделиться на другие сайты Поделиться
SemirLab Опубликовано 7 февраля, 2013 Автор Жалоба Поделиться Опубликовано 7 февраля, 2013 (изменено) int bg_create(unsigned short mapindex, short rx, short ry, int guild_index, const char *ev, const char *dev){struct battleground_data *bg;if( ++bg_team_counter <= 0 ) bg_team_counter = 1;CREATE(bg, struct battleground_data, 1);bg->bg_id = bg_team_counter;bg->creation_tick = 0;bg->count = 0;bg->g = &bg_guild[guild_index];bg->mapindex = mapindex;bg->x = rx;bg->y = ry;safestrncpy(bg->logout_event, ev, sizeof(bg->logout_event));safestrncpy(bg->die_event, dev, sizeof(bg->die_event));memset(&bg->members, 0, sizeof(bg->members));bg->color = bg_colors[guild_index];idb_put(bg_team_db, bg_team_counter, bg);return bg->bg_id;}https://www.assembla.com/code/eamodgratuito/subversion/nodes/eAmod-A/Diffs/battleground/eAthena.patch?_format=raw&rev=7 Изменено 7 февраля, 2013 пользователем SemirLab Ссылка на комментарий Поделиться на другие сайты Поделиться
SemirLab Опубликовано 8 февраля, 2013 Автор Жалоба Поделиться Опубликовано 8 февраля, 2013 Прошу прощения за флуд, ап... Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения