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

SemirLab

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

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

  • Посещение

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

    3

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

  1. по первой ссылке уже читал, пробовал поменять имя файла, и вписать его в скрипт... толку нет, книги не работают никакие вообще (хоть 7127), даже если юзать итем типа Potion Creation Guide! Экзешников перепробовал много..

    по второй ссылке советуют покопаться в луа.. их перепробовал тоже не мало почти все версии 5.0.2 начиная от 2010.11.17.. толку 0 ((

    скачал полностью дату translation-project - эффекта также нет.

    зашивал в грф, удалял - тоже самое...

    всеже косо посматриваю на луа... но что с ними еще попробовать - не знаю (

  2. Лилит, то, что сервер тут не причем я уже понял... только и в клиенте непонятно что... не открывает никакие книги абсолютно.

    Пробовал даже удалять из даты (дир) папку book и фаил bookitemnametable.txt (что-бы читал из data.grf сразу) - не работает...

    зы. наличие файликов в data.grf разумеется проверил

  3. Не хотят работать книги((

    допустим вот кусок кода отвечающий за открывание книги у KVM Logistic Officer:

    ...switch(select("Read the KVM Catalogue.:Purchase KVM Items.:Confirm KVM Points.:Explanation of KVM Rewards.:Explanation of KVM Points.")) {
    case 1:
    mes "[Logistics]";
    mes "Here is the catalogue of KVM items.";
    mes "Each weapon requires 2,000 points";
    mes "and each armor from 10 to 1,200";
    mes "points. So, be carefull when";
    mes "selecting a reward.";
    close2;
    readbook 11017,1;
    end;...

    при выборе 1 строки "Read the KVM Catalogue." - книга не открывается, в чате пишется "ГҐАМ ѕшЅАґПґЩ"...

    книга 11017 есть в data/book, а так же прописана в bookitemnametable.txt в виде сроки:

    11017#

    Пробовал вставлять в скрипт вместо 11017 другие книги.. результат тот-же...

    Сталкивался кто-нибудь с этой проблемой? Подскажите куда покать?

    заранее благодарен)

    ++++++++++++++++++++++++++++++++++++++++++++++

    Решение проблемы:

    • Upvote 1
  4. Вчера команда вообще не работала... Ставлю маг - тут-же с ноута другим персом пишу @whosell - "Эту вещь никто не продает". После перезапуска сервера - заработала, но в режиме @autotrade работать не стала... Т.е. если барыгой открыть маг и сразу написать @at - его шмотки не будут видны через @whosell, а если поставить барыгу, найти хоть одну его шмотку через @whosell а уже потом написать @at - все заработает...

    Потом еще прикольней: после долгих тестов и само-собой перезаходов чарами - команда начала работать сразу с @at... Перезапускаю серв - не пашет xDDD Короче, когда работает, а когда нет (

    И еще 1 баг - если мерч закрывает магазин - его шмотки остаются в списке @whosell, если купить шмотку(и) все работает на ура..

    Посоветуйте что-нибудь дельное, пожалуйста. (Functor?Оо)

    вот код:

    #define whosell_with_cards_name

    int atcommand_whosell(const int fd, struct map_session_data* sd, const char* command, const char* message)
    {
    unsigned char ielement[5][7] = {"", "Ice ", "Earth ", "Fire ", "Wind "};
    unsigned char istarcrumb[4][7] = {"", "VS ", "VVS ", "VVVS "};
    struct map_session_data *pl_sd;
    char item_name[100], output[255];
    int item_id, map_id = 0, j, count = 0, i = 0, mSlot = 0;
    unsigned int MinPrize = battle_config.vending_max_value, MaxPrize = 0;
    struct item_data *item_data;
    #ifdef whosell_with_cards_name
    struct item_data *item_temp;
    #endif
    struct s_mapiterator* iter;

    memset(item_name, '\0', sizeof(item_name));
    memset(output, '\0', sizeof(output));

    if (!message || !*message || sscanf(message, "%99[^\n]", item_name) < 1) {
    clif_displaymessage(fd, "Используйте: @whosell <item_name> или <item_id>.");
    return -1;
    }

    if ((item_data = itemdb_searchname(item_name)) == NULL &&
    (item_data = itemdb_exists(atoi(item_name))) == NULL)
    {
    clif_displaymessage(fd, msg_txt(19)); // Invalid item ID or name.
    return -1;
    }

    item_id = item_data->nameid;
    map_id = sd->bl.m; // Required for clif_viewpoint

    iter = mapit_getallusers();
    for( pl_sd = (TBL_PC*)mapit_first(iter); mapit_exists(iter); pl_sd = (TBL_PC*)mapit_next(iter) )
    {
    if (pl_sd->vender_id) {
    for (j = 0; j < pl_sd->vend_num; j++) {
    if (pl_sd->status.cart[pl_sd->vending[j].index].nameid == item_id) {

    // Item Found, updating Min and Max
    if (pl_sd->vending[j].value < MinPrize)
    MinPrize = pl_sd->vending[j].value;
    if (pl_sd->vending[j].value > MaxPrize)
    MaxPrize = pl_sd->vending[j].value;

    if (pl_sd->bl.m == map_id)
    clif_viewpoint(sd, 1, 1, pl_sd->bl.x, pl_sd->bl.y, count, 0xFFFFFF);

    sprintf(output, "Продавец: %s | Кол-во: %d | Цена: %d | Локация: %s(%d,%d)", pl_sd->status.name, pl_sd->vending[j].amount, pl_sd->vending[j].value, map[pl_sd->bl.m].name, pl_sd->bl.x, pl_sd->bl.y);
    clif_displaymessage(fd, output);

    if (item_data->type == IT_ARMOR || item_data->type == IT_WEAPON) {
    i = sprintf(output, " - ");
    if (pl_sd->status.cart[pl_sd->vending[j].index].refine)
    i += sprintf(output+i, "+%d ", pl_sd->status.cart[pl_sd->vending[j].index].refine);

    // View Element and Star Crumb only for Forge or Create Item
    if (pl_sd->status.cart[pl_sd->vending[j].index].card[0] == CARD0_FORGE || pl_sd->status.cart[pl_sd->vending[j].index].card[0] == CARD0_CREATE)
    i += sprintf(output+i, "%s%s", istarcrumb[(pl_sd->status.cart[pl_sd->vending[j].index].card[1] >> 8)/5], ielement[GetByte(pl_sd->status.cart[pl_sd->vending[j].index].card[1], 0)]);

    // Add jName of Item to Display
    i += sprintf(output+i, "%s", item_data->jname);

    // View number of slots
    if (item_data->slot) {
    i += sprintf(output+i, "[%d] ", item_data->slot);
    #ifdef whosell_with_cards_name
    clif_displaymessage(fd, output);
    i = sprintf(output, " - Карты: ");
    #endif

    for (mSlot = 0; mSlot < item_data->slot; mSlot++) {
    #ifdef whosell_with_cards_name
    if ((item_temp = itemdb_exists(pl_sd->status.cart[pl_sd->vending[j].index].card[mSlot])) != NULL)
    i += sprintf(output+i, "[%s] ", item_temp->jname);
    #else
    if (pl_sd->status.cart[pl_sd->vending[j].index].card[mSlot])
    i += sprintf(output+i, "[%d] ", pl_sd->status.cart[pl_sd->vending[j].index].card[mSlot]);
    #endif
    }

    #ifdef whosell_with_cards_name
    if (i>14)
    #endif
    clif_displaymessage(fd, output);
    } else
    clif_displaymessage(fd, output);

    }

    count++;
    }
    }
    }
    }

    if(count > 0) {
    sprintf(output, "Найдено %d вещей. Цены: %d ~ %d.", count, MinPrize, MaxPrize);
    clif_displaymessage(fd, output);
    } else
    clif_displaymessage(fd, "Эту вещь никто не продает.");

    return 0;
    }

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