Lovrentiy Опубликовано 16 декабря, 2016 Жалоба Поделиться Опубликовано 16 декабря, 2016 Доброго дня, дорогие форумчане! Проявилась странная ошибка на эмуляторе еа от 2012 года. У одного из игроков пропали вкладки все кроме первой и последней (что можно использовать, поты и прочее и лут). Причем в кафре занято 997 из 1000 возможных, а все закладки оружия, брони пустые. Есть идеи из-за чего подорбное может быть и как восстановить отображение? Спасибо за уделенное внимание! Ссылка на комментарий Поделиться на другие сайты Поделиться
Lovrentiy Опубликовано 21 декабря, 2016 Автор Жалоба Поделиться Опубликовано 21 декабря, 2016 Возможно вопрос глупый, в таком случае прошу не проходить мимо. Будет очень полезна любая информацию касающаяся вопроса. Спасибо! Ссылка на комментарий Поделиться на другие сайты Поделиться
Leprechaun Опубликовано 21 декабря, 2016 Жалоба Поделиться Опубликовано 21 декабря, 2016 Я так понимаю что сами вкладки никуда не пропали, они есть, но они пустые... Скорее всего, я так думаю, что проблема с базой, в которой храниться вся информация о чаре или его аккаунте. Возможно таблица базы нарушена, и ее нужно поченить. Функцыя починкы таблицы есть пхпМуАдмин. Пробуйте. Ссылка на комментарий Поделиться на другие сайты Поделиться
Break Опубликовано 21 декабря, 2016 Жалоба Поделиться Опубликовано 21 декабря, 2016 (изменено) В старых эмуляторах надо ставить фикс для кафры, чтобы иметь больше (731 is the safe limit) слотов. 2010-12-21storpage (3).diff Скрытый текст Index: src/map/atcommand.c =================================================================== --- src/map/atcommand.c (revision 14609) +++ src/map/atcommand.c (working copy) @@ -1153,6 +1153,15 @@ if (sd->npc_id || sd->vender_id || sd->state.trading || sd->state.storage_flag) return -1; + if( message && message[0] ) + {// storage paging + sd->storage_page = atoi(message); + } + else + { + sd->storage_page = 0; + } + if (storage_storageopen(sd) == 1) { //Already open. clif_displaymessage(fd, msg_txt(250)); @@ -1190,6 +1199,15 @@ return -1; } + if( message && message[0] ) + {// storage paging + sd->storage_page = atoi(message); + } + else + { + sd->storage_page = 0; + } + storage_guild_storageopen(sd); clif_displaymessage(fd, "Guild storage opened."); return 0; Index: src/map/script.c =================================================================== --- src/map/script.c (revision 14609) +++ src/map/script.c (working copy) @@ -7432,6 +7432,15 @@ if( sd == NULL ) return 0; + if( script_hasdata(st,2) ) + {// storage paging + sd->storage_page = script_getnum(st,2); + } + else + { + sd->storage_page = 0; + } + storage_storageopen(sd); return 0; } @@ -7445,6 +7454,15 @@ if( sd == NULL ) return 0; + if( script_hasdata(st,2) ) + {// storage paging + sd->storage_page = script_getnum(st,2); + } + else + { + sd->storage_page = 0; + } + ret = storage_guild_storageopen(sd); script_pushint(st,ret); return 0; @@ -14654,8 +14672,8 @@ BUILDIN_DEF(gettimetick,"i"), BUILDIN_DEF(gettime,"i"), BUILDIN_DEF(gettimestr,"si"), - BUILDIN_DEF(openstorage,""), - BUILDIN_DEF(guildopenstorage,""), + BUILDIN_DEF(openstorage,"?"), + BUILDIN_DEF(guildopenstorage,"?"), BUILDIN_DEF(itemskill,"vi"), BUILDIN_DEF(produce,"i"), BUILDIN_DEF(cooking,"i"), Index: src/map/clif.c =================================================================== --- src/map/clif.c (revision 14609) +++ src/map/clif.c (working copy) @@ -2174,7 +2174,13 @@ #else const int cmd = 28; #endif + int skip_e = 0, skip_s = 0, max_e = 20480/cmd, max_s = 20480/s; + if( sd->storage_page < 0 ) + {// storage paging + sd->storage_page = 0; + } + buf = (unsigned char*)aMallocA(items_length * s + 4); bufe = (unsigned char*)aMallocA(items_length * cmd + 4); @@ -2185,6 +2191,19 @@ id = itemdb_search(items[i].nameid); if( !itemdb_isstackable2(id) ) { //Equippable + if( sd->storage_page ) + {// storage paging + if( skip_e/max_e < sd->storage_page-1 ) + { + skip_e++; + continue; + } + else if( ne >= max_e ) + { + continue; + } + } + WBUFW(bufe,ne*cmd+4)=i+1; clif_item_sub(bufe, ne*cmd+6, &items[i], id, id->equip); clif_addcards(WBUFP(bufe, ne*cmd+16), &items[i]); @@ -2196,6 +2215,19 @@ } else { //Stackable + if( sd->storage_page ) + {// storage paging + if( skip_s/max_s < sd->storage_page-1 ) + { + skip_s++; + continue; + } + else if( n >= max_s ) + { + continue; + } + } + WBUFW(buf,n*s+4)=i+1; clif_item_sub(buf, n*s+6, &items[i], id,-1); #if PACKETVER >= 5 Index: src/map/pc.h =================================================================== --- src/map/pc.h (revision 14609) +++ src/map/pc.h (working copy) @@ -385,6 +385,8 @@ char away_message[128]; // [LuzZza] + int storage_page; // storage paging + int cashPoints, kafraPoints; int rental_timer; Изменено 21 декабря, 2016 пользователем Sky 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Lovrentiy Опубликовано 22 декабря, 2016 Автор Жалоба Поделиться Опубликовано 22 декабря, 2016 21 часа назад, Sky сказал: В старых эмуляторах надо ставить фикс для кафры, чтобы иметь больше (731 is the safe limit) слотов. 2010-12-21storpage (3).diff Скрытое содержимое куда вставить код? Как применить? Сапсибо за помощь! Ссылка на комментарий Поделиться на другие сайты Поделиться
botka4aet Опубликовано 22 декабря, 2016 Жалоба Поделиться Опубликовано 22 декабря, 2016 Файл который надо фиксить --- src/map/atcommand.c (revision 14609) +++ src/map/atcommand.c (working copy) Строчки с минусами удалить, с плюсами воткнуть вместо них Ссылка на комментарий Поделиться на другие сайты Поделиться
Lovrentiy Опубликовано 4 февраля, 2017 Автор Жалоба Поделиться Опубликовано 4 февраля, 2017 Ребят, к сожалению сервер на линуксе и svn не используется, просто скачена сборка. Возможно кто то может поделиться файлами которые уже пофиксены, для кафры? Если конечно они стандартные. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения