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

Fox RM

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

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

  • Посещение

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

    119

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

  1. GMtCk7W.png

    bKC756L.png

    Просто вопрос в том - работает ли вообще этот src?

    Прошу уточнить, конкретно тот который ты выложил , или костюмы в целом?

    Ну если я возьму этот патч и поставлю на рафину, то будет пахать?

    Если непосредственно сам дифф, то да, он под рафину и написан:)

  2. в pc.c попробуй чутка сменить:



    if(pos&(EQP_HEAD_LOW|EQP_COSTUME_HEAD_LOW)) {
    if(id && !(pos&(EQP_HEAD_TOP|EQP_HEAD_MID|EQP_COSTUME_HEAD_MID|EQP_COSTUME_HEAD_TOP)))
    sd->status.head_bottom = id->look;
    else
    sd->status.head_bottom = 0;
    if((pos&EQP_HEAD_LOW && (pc_checkequip(sd,EQP_COSTUME_HEAD_LOW)) < 0) || pos&EQP_COSTUME_HEAD_LOW)
    clif_changelook(&sd->bl,LOOK_HEAD_BOTTOM,sd->status.head_bottom);
    }
    if(pos&(EQP_HEAD_TOP|EQP_COSTUME_HEAD_TOP)) {
    if(id)
    sd->status.head_top = id->look;
    else
    sd->status.head_top = 0;
    if((pos&EQP_HEAD_TOP && (pc_checkequip(sd,EQP_COSTUME_HEAD_TOP)) < 0) || pos&EQP_COSTUME_HEAD_TOP)
    clif_changelook(&sd->bl,LOOK_HEAD_TOP,sd->status.head_top);
    }
    if(pos&(EQP_HEAD_MID|EQP_COSTUME_HEAD_MID)) {
    if(id && !(pos&(EQP_HEAD_TOP|EQP_COSTUME_HEAD_TOP)))
    sd->status.head_mid = id->look;
    else
    sd->status.head_mid = 0;
    if((pos&EQP_HEAD_MID && (pc_checkequip(sd,EQP_COSTUME_HEAD_MID)) < 0) || pos&EQP_COSTUME_HEAD_MID)
    clif_changelook(&sd->bl,LOOK_HEAD_MID,sd->status.head_mid);
    }



    if(sd->status.inventory[n].equip & EQP_HEAD_LOW) {
    sd->status.head_bottom = ( pc_checkequip(sd,EQP_COSTUME_HEAD_LOW) >= 0 ) ? sd->inventory_data[pc_checkequip(sd,EQP_COSTUME_HEAD_LOW)]->look : 0;
    clif_changelook(&sd->bl,LOOK_HEAD_BOTTOM,sd->status.head_bottom);
    }
    if(sd->status.inventory[n].equip & EQP_HEAD_TOP) {
    sd->status.head_top = ( pc_checkequip(sd,EQP_COSTUME_HEAD_TOP) >= 0 ) ? sd->inventory_data[pc_checkequip(sd,EQP_COSTUME_HEAD_TOP)]->look : 0;
    clif_changelook(&sd->bl,LOOK_HEAD_TOP,sd->status.head_top);
    }
    if(sd->status.inventory[n].equip & EQP_HEAD_MID) {
    sd->status.head_mid = ( pc_checkequip(sd,EQP_COSTUME_HEAD_MID) >= 0 ) ? sd->inventory_data[pc_checkequip(sd,EQP_COSTUME_HEAD_MID)]->look : 0;
    clif_changelook(&sd->bl,LOOK_HEAD_MID,sd->status.head_mid);
    }
    if(sd->status.inventory[n].equip & EQP_COSTUME_HEAD_TOP) {
    sd->status.head_top = ( pc_checkequip(sd,EQP_HEAD_TOP) >= 0 ) ? sd->inventory_data[pc_checkequip(sd,EQP_HEAD_TOP)]->look : 0;
    clif_changelook(&sd->bl,LOOK_HEAD_TOP,sd->status.head_top);
    }
    if(sd->status.inventory[n].equip & EQP_COSTUME_HEAD_MID) {
    sd->status.head_mid = ( pc_checkequip(sd,EQP_HEAD_MID) >= 0 ) ? sd->inventory_data[pc_checkequip(sd,EQP_HEAD_MID)]->look : 0;
    clif_changelook(&sd->bl,LOOK_HEAD_MID,sd->status.head_mid);
    }
    if(sd->status.inventory[n].equip & EQP_COSTUME_HEAD_LOW) {
    sd->status.head_bottom = ( pc_checkequip(sd,EQP_HEAD_LOW) >= 0 ) ? sd->inventory_data[pc_checkequip(sd,EQP_HEAD_LOW)]->look : 0;
    clif_changelook(&sd->bl,LOOK_HEAD_BOTTOM,sd->status.head_bottom);
    }

    Прошу прощения, а в чем заключается отличие, от того что указано выше в моем посте?

    P.S Проблема так и не решена, , Перевес " в минус" присутствует

  3. Можно ревизию еа?

    Не забыл? Или просто в пост не внес?


    +++ battle.conf (working copy)
    @@ -141,3 +141,9 @@
    // range. For example, Sonic Blow requires a 2 cell distance before autocasting is allowed.
    // This setting also affects autospellwhenhit.
    autospell_check_range: no
    +
    +// ****************************************
    +// Reserved Costume ID's
    +// ****************************************
    +// Reserved Char ID for costume converted items.
    +reserved_costume_id: 999998

    Это всё внесено, этот кусок же в диффе есть, всё что в диффе внесено. Ревизия 15268

  4. Значит , снова же эти костюмы, возникла небольшая проблема. Решил переписать мод, который будет указан ниже, под eAthena, следует заметить что написан он под rAthena. Так вот:


    Index: atcommand.c
    ===================================================================
    --- atcommand.c (revision 17306)
    +++ atcommand.c (working copy)
    @@ -1117,7 +1117,7 @@
    ACMD_FUNC(item)
    {
    char item_name[100];
    - int number = 0, item_id, flag = 0;
    + int number = 0, item_id, flag = 0, costume = 0;
    struct item item_tmp;
    struct item_data *item_data;
    int get_count, i;
    @@ -1142,7 +1142,27 @@
    clif_displaymessage(fd, msg_txt(sd,19)); // Invalid item ID or name.
    return -1;
    }
    -
    +
    + if( !strcmpi(command+1,"costumeitem") )
    + {
    + if( !battle_config.reserved_costume_id )
    + {
    + clif_displaymessage(fd, "Costume convertion is disable. Set a value for reserved_cosutme_id on your battle.conf file.");
    + return -1;
    + }
    + if( !(item_data->equip&EQP_HEAD_LOW) &&
    + !(item_data->equip&EQP_HEAD_MID) &&
    + !(item_data->equip&EQP_HEAD_TOP) &&
    + !(item_data->equip&EQP_COSTUME_HEAD_LOW) &&
    + !(item_data->equip&EQP_COSTUME_HEAD_MID) &&
    + !(item_data->equip&EQP_COSTUME_HEAD_TOP) )
    + {
    + clif_displaymessage(fd, "You cannot costume this item. Costume only work for headgears.");
    + return -1;
    + }
    + costume = 1;
    + }
    +
    item_id = item_data->nameid;
    get_count = number;
    //Check if it's stackable.
    @@ -1155,7 +1175,13 @@
    memset(&item_tmp, 0, sizeof(item_tmp));
    item_tmp.nameid = item_id;
    item_tmp.identify = 1;
    -
    + if( costume == 1 )
    + { // Costume Item
    + item_tmp.card[0] = CARD0_CREATE;
    + item_tmp.card[2] = GetWord(battle_config.reserved_costume_id, 0);
    + item_tmp.card[3] = GetWord(battle_config.reserved_costume_id, 1);
    + }
    +
    if ((flag = pc_additem(sd, &item_tmp, get_count, LOG_TYPE_COMMAND)))
    clif_additem(sd, 0, 0, flag);
    }
    @@ -9251,7 +9277,9 @@
    ACMD_DEF(channel),
    ACMD_DEF(fontcolor),
    ACMD_DEF(langtype),
    - ACMD_DEF(reloadmsgconf)
    + ACMD_DEF(reloadmsgconf),
    + ACMD_DEF2("costumeitem", item)
    +
    };
    AtCommandInfo* atcommand;
    int i;
    Index: battle.c
    ===================================================================
    --- battle.c (revision 17306)
    +++ battle.c (working copy)
    @@ -5939,6 +5939,7 @@
    { "item_enabled_npc", &battle_config.item_enabled_npc, 1, 0, 1, },
    { "item_flooritem_check", &battle_config.item_onfloor, 1, 0, 1, },
    { "bowling_bash_area", &battle_config.bowling_bash_area, 0, 0, 20, },
    + { "reserved_costume_id", &battle_config.reserved_costume_id, 999998, 0, INT_MAX, },
    };
    #ifndef STATS_OPT_OUT
    /**
    Index: battle.h
    ===================================================================
    --- battle.h (revision 17306)
    +++ battle.h (working copy)
    @@ -488,6 +488,10 @@
    int item_enabled_npc;
    int item_onfloor; // Whether to drop an undroppable item on the map or destroy it if inventory is full.
    int bowling_bash_area;
    +
    + // Costume System
    + int reserved_costume_id;
    +
    } battle_config;

    void do_init_battle(void);
    Index: map.c
    ===================================================================
    --- map.c (revision 17306)
    +++ map.c (working copy)
    @@ -1537,7 +1537,13 @@
    struct map_session_data* tsd;

    nullpo_retv(sd);
    -
    +
    + if( battle_config.reserved_costume_id && battle_config.reserved_costume_id == charid )
    + {
    + clif_solved_charname(sd->fd, charid, "Costume");
    + return;
    + }
    +
    tsd = map_charid2sd(charid);
    if( tsd )
    {
    Index: pc.c
    ===================================================================
    --- pc.c (revision 17306)
    +++ pc.c (working copy)
    @@ -66,8 +66,7 @@
    struct fame_list chemist_fame_list[MAX_FAME_LIST];
    struct fame_list taekwon_fame_list[MAX_FAME_LIST];

    -static unsigned short equip_pos[EQI_MAX]={EQP_ACC_L,EQP_ACC_R,EQP_SHOES,EQP_GARMENT,EQP_HEAD_LOW,EQP_HEAD_MID,EQP_HEAD_TOP,EQP_ARMOR,EQP_HAND_L,EQP_HAND_R,EQP_COSTUME_HEAD_TOP,EQP_COSTUME_HEAD_MID,EQP_COSTUME_HEAD_LOW,EQP_COSTUME_GARMENT,EQP_AMMO};
    -
    +static unsigned short equip_pos[EQI_MAX]={EQP_ACC_L,EQP_ACC_R,EQP_SHOES,EQP_GARMENT,EQP_HEAD_LOW,EQP_HEAD_MID,EQP_HEAD_TOP,EQP_ARMOR,EQP_HAND_L,EQP_HAND_R,EQP_AMMO,EQP_COSTUME_HEAD_TOP,EQP_COSTUME_HEAD_MID,EQP_COSTUME_HEAD_LOW,EQP_COSTUME_GARMENT};
    #define MOTD_LINE_SIZE 128
    static char motd_text[MOTD_LINE_SIZE][CHAT_SIZE_MAX]; // Message of the day buffer [Valaris]

    @@ -586,7 +585,7 @@

    int pc_equippoint(struct map_session_data *sd,int n)
    {
    - int ep = 0;
    + int ep = 0, char_id = 0;

    nullpo_ret(sd);

    @@ -604,6 +603,15 @@
    (sd->class_&MAPID_UPPERMASK) == MAPID_KAGEROUOBORO))//Kagerou and Oboro can dual wield daggers. [Rytech]
    return EQP_ARMS;
    }
    +
    + if( battle_config.reserved_costume_id &&
    + sd->status.inventory[n].card[0] == CARD0_CREATE &&
    + (char_id = MakeDWord(sd->status.inventory[n].card[2],sd->status.inventory[n].card[3])) == battle_config.reserved_costume_id )
    + { // Costume Item - Converted
    + if( ep&EQP_HEAD_TOP ) { ep &= ~EQP_HEAD_TOP; ep |= EQP_COSTUME_HEAD_TOP; }
    + if( ep&EQP_HEAD_LOW ) { ep &= ~EQP_HEAD_LOW; ep |= EQP_COSTUME_HEAD_LOW; }
    + if( ep&EQP_HEAD_MID ) { ep &= ~EQP_HEAD_MID; ep |= EQP_COSTUME_HEAD_MID; }
    + }
    return ep;
    }

    @@ -1910,8 +1918,8 @@
    if( autobonus[i].bonus_script )
    {
    int j;
    - ARR_FIND( 0, EQI_MAX-1, j, sd->equip_index[j] >= 0 && sd->status.inventory[sd->equip_index[j]].equip == autobonus[i].pos );
    - if( j < EQI_MAX-1 )
    + ARR_FIND( 0, EQI_MAX_BONUS, j, sd->equip_index[j] >= 0 && sd->status.inventory[sd->equip_index[j]].equip == autobonus[i].pos );
    + if( j < EQI_MAX_BONUS )
    script_run_autobonus(autobonus[i].bonus_script,sd->bl.id,sd->equip_index[j]);
    }
    continue;
    @@ -1941,8 +1949,8 @@
    if( autobonus->other_script )
    {
    int j;
    - ARR_FIND( 0, EQI_MAX-1, j, sd->equip_index[j] >= 0 && sd->status.inventory[sd->equip_index[j]].equip == autobonus->pos );
    - if( j < EQI_MAX-1 )
    + ARR_FIND( 0, EQI_MAX_BONUS, j, sd->equip_index[j] >= 0 && sd->status.inventory[sd->equip_index[j]].equip == autobonus->pos );
    + if( j < EQI_MAX_BONUS )
    script_run_autobonus(autobonus->other_script,sd->bl.id,sd->equip_index[j]);
    }

    Index: pc.h
    ===================================================================
    --- pc.h (revision 17306)
    +++ pc.h (working copy)
    @@ -37,11 +37,12 @@
    EQI_ARMOR,
    EQI_HAND_L,
    EQI_HAND_R,
    + EQI_AMMO,
    + EQI_MAX_BONUS = 10,
    EQI_COSTUME_TOP,
    EQI_COSTUME_MID,
    EQI_COSTUME_LOW,
    EQI_COSTUME_GARMENT,
    - EQI_AMMO,
    EQI_MAX
    };

    Index: script.c
    ===================================================================
    --- script.c (revision 17306)
    +++ script.c (working copy)
    @@ -17596,6 +17596,52 @@
    return 0;
    }

    +/*==========================================
    + * Costume Items
    + *------------------------------------------*/
    +BUILDIN_FUNC(costume)
    +{
    + int i = -1, num, ep;
    + TBL_PC *sd;
    +
    + num = script_getnum(st,2); // Equip Slot
    + sd = script_rid2sd(st);
    +
    + if( sd == NULL )
    + return 0;
    + if( num > 0 && num <= ARRAYLENGTH(equip) )
    + i = pc_checkequip(sd, equip[num - 1]);
    + if( i < 0 )
    + return 0;
    +
    + ep = sd->status.inventory[i].equip;
    + if( !(ep&EQP_HEAD_LOW) && !(ep&EQP_HEAD_MID) && !(ep&EQP_HEAD_TOP) )
    + return 0;
    +
    + log_pick_pc(sd, LOG_TYPE_SCRIPT, -1, &sd->status.inventory[i]);
    + pc_unequipitem(sd,i,2);
    + clif_delitem(sd,i,1,3);
    + // --------------------------------------------------------------------
    + sd->status.inventory[i].refine = 0;
    + sd->status.inventory[i].attribute = 0;
    + sd->status.inventory[i].card[0] = CARD0_CREATE;
    + sd->status.inventory[i].card[1] = 0;
    + sd->status.inventory[i].card[2] = GetWord(battle_config.reserved_costume_id, 0);
    + sd->status.inventory[i].card[3] = GetWord(battle_config.reserved_costume_id, 1);
    +
    + if( ep&EQP_HEAD_TOP ) { ep &= ~EQP_HEAD_TOP; ep |= EQP_COSTUME_HEAD_TOP; }
    + if( ep&EQP_HEAD_LOW ) { ep &= ~EQP_HEAD_LOW; ep |= EQP_COSTUME_HEAD_LOW; }
    + if( ep&EQP_HEAD_MID ) { ep &= ~EQP_HEAD_MID; ep |= EQP_COSTUME_HEAD_MID; }
    + // --------------------------------------------------------------------
    + log_pick_pc(sd, LOG_TYPE_SCRIPT, 1, &sd->status.inventory[i]);
    +
    + clif_additem(sd,i,1,0);
    + pc_equipitem(sd,i,ep);
    + clif_misceffect(&sd->bl,3);
    +
    + return 0;
    +}
    +
    // declarations that were supposed to be exported from npc_chat.c
    #ifdef PCRE_SUPPORT
    BUILDIN_FUNC(defpattern);
    @@ -18060,5 +18106,9 @@
    BUILDIN_DEF(checkquest, "i?"),
    BUILDIN_DEF(changequest, "ii"),
    BUILDIN_DEF(showevent, "ii"),
    +
    + // Costume System
    + BUILDIN_DEF(costume,"i"),
    +
    {NULL,NULL,NULL},
    };
    Index: status.c
    ===================================================================
    --- status.c (revision 17306)
    +++ status.c (working copy)
    @@ -2455,7 +2455,7 @@
    pc_delautobonus(sd,sd->autobonus3,ARRAYLENGTH(sd->autobonus3),true);

    // Parse equipment.
    - for(i=0;i<EQI_MAX-1;i++) {
    + for(i=0;i<EQI_MAX_BONUS;i++) {
    current_equip_item_index = index = sd->equip_index[i]; //We pass INDEX to current_equip_item_index - for EQUIP_SCRIPT (new cards solution) [Lupus]
    if(index < 0)
    continue;
    Index: battle.conf
    ===================================================================
    --- battle.conf (revision 17306)
    +++ battle.conf (working copy)
    @@ -141,3 +141,9 @@
    // range. For example, Sonic Blow requires a 2 cell distance before autocasting is allowed.
    // This setting also affects autospellwhenhit.
    autospell_check_range: no
    +
    +// ****************************************
    +// Reserved Costume ID's
    +// ****************************************
    +// Reserved Char ID for costume converted items.
    +reserved_costume_id: 999998

    Что я здесь изменил:

    atccommand.c :


    ACMD_DEF2("costumeitem", item)

    На:


    { "costumeitem", 60,60, atcommand_item },

    Хорошо, поехали дальше :

    script.c :


    + log_pick_pc(sd, LOG_TYPE_SCRIPT, -1, &sd->status.inventory[i]);

    и


    +log_pick_pc(sd, LOG_TYPE_SCRIPT, 1, &sd->status.inventory[i]);

    на:


    log_pick(&sd->bl, LOG_TYPE_SCRIPT, sd->status.inventory[i].nameid, -1, &sd->status.inventory[i]);

    и


    log_pick(&sd->bl, LOG_TYPE_SCRIPT, sd->status.inventory[i].nameid, 1, &sd->status.inventory[i]);

    Далее я добавил недостающие строки кода с rAthena, а именно:

    pc.c:


    if(pos & EQP_HEAD_LOW && pc_checkequip(sd,EQP_COSTUME_HEAD_LOW) == -1) {
    if(id && !(pos&(EQP_HEAD_TOP|EQP_HEAD_MID)))
    sd->status.head_bottom = id->look;
    else
    sd->status.head_bottom = 0;
    clif_changelook(&sd->bl,LOOK_HEAD_BOTTOM,sd->status.head_bottom);
    }
    if(pos & EQP_HEAD_TOP && pc_checkequip(sd,EQP_COSTUME_HEAD_TOP) == -1) {
    if(id)
    sd->status.head_top = id->look;
    else
    sd->status.head_top = 0;
    clif_changelook(&sd->bl,LOOK_HEAD_TOP,sd->status.head_top);
    }
    if(pos & EQP_HEAD_MID && pc_checkequip(sd,EQP_COSTUME_HEAD_MID) == -1) {
    if(id && !(pos&EQP_HEAD_TOP))
    sd->status.head_mid = id->look;
    else
    sd->status.head_mid = 0;
    clif_changelook(&sd->bl,LOOK_HEAD_MID,sd->status.head_mid);
    }
    if(pos & EQP_COSTUME_HEAD_TOP) {
    if(id){
    sd->status.head_top = id->look;
    } else
    sd->status.head_top = 0;
    clif_changelook(&sd->bl,LOOK_HEAD_TOP,sd->status.head_top);
    }
    if(pos & EQP_COSTUME_HEAD_MID) {
    if(id && !(pos&EQP_HEAD_TOP)){
    sd->status.head_mid = id->look;
    } else
    sd->status.head_mid = 0;
    clif_changelook(&sd->bl,LOOK_HEAD_MID,sd->status.head_mid);
    }
    if(pos & EQP_COSTUME_HEAD_LOW) {
    if(id && !(pos&(EQP_HEAD_TOP|EQP_HEAD_MID))){
    sd->status.head_bottom = id->look;
    } else
    sd->status.head_bottom = 0;
    clif_changelook(&sd->bl,LOOK_HEAD_BOTTOM,sd->status.head_bottom);
    }


    if(sd->status.inventory[n].equip & EQP_HEAD_LOW && pc_checkequip(sd,EQP_COSTUME_HEAD_LOW) == -1 ) {
    sd->status.head_bottom = 0;
    clif_changelook(&sd->bl,LOOK_HEAD_BOTTOM,sd->status.head_bottom);
    }
    if(sd->status.inventory[n].equip & EQP_HEAD_TOP && pc_checkequip(sd,EQP_COSTUME_HEAD_TOP) == -1 ) {
    sd->status.head_top = 0;
    clif_changelook(&sd->bl,LOOK_HEAD_TOP,sd->status.head_top);
    }


    if(sd->status.inventory[n].equip & EQP_HEAD_MID && pc_checkequip(sd,EQP_COSTUME_HEAD_MID) == -1 ) {
    sd->status.head_mid = 0;
    clif_changelook(&sd->bl,LOOK_HEAD_MID,sd->status.head_mid);
    }

    if(sd->status.inventory[n].equip & EQP_COSTUME_HEAD_TOP) {
    sd->status.head_top = ( pc_checkequip(sd,EQP_HEAD_TOP) >= 0 ) ? sd->inventory_data[pc_checkequip(sd,EQP_HEAD_TOP)]->look : 0;
    clif_changelook(&sd->bl,LOOK_HEAD_TOP,sd->status.head_top);
    }

    if(sd->status.inventory[n].equip & EQP_COSTUME_HEAD_MID) {
    sd->status.head_mid = ( pc_checkequip(sd,EQP_HEAD_MID) >= 0 ) ? sd->inventory_data[pc_checkequip(sd,EQP_HEAD_MID)]->look : 0;
    clif_changelook(&sd->bl,LOOK_HEAD_MID,sd->status.head_mid);
    }

    if(sd->status.inventory[n].equip & EQP_COSTUME_HEAD_LOW) {
    sd->status.head_bottom = ( pc_checkequip(sd,EQP_HEAD_LOW) >= 0 ) ? sd->inventory_data[pc_checkequip(sd,EQP_HEAD_LOW)]->look : 0;
    clif_changelook(&sd->bl,LOOK_HEAD_BOTTOM,sd->status.head_bottom);
    }

    pc.h:


    EQP_COSTUME_HEAD_TOP = 0x000400, // 1024
    EQP_COSTUME_HEAD_MID = 0x000800, // 2048
    EQP_COSTUME_HEAD_LOW = 0x001000, // 4096


    #define EQP_COSTUME (EQP_COSTUME_HEAD_TOP|EQP_COSTUME_HEAD_MID|EQP_COSTUME_HEAD_LOW)


    EQI_MAX_BONUS = 10,
    EQI_COSTUME_TOP,
    EQI_COSTUME_MID,
    EQI_COSTUME_LOW,
    EQI_MAX

    status.c:


    if(i == EQI_COSTUME_MID && sd->equip_index[EQI_COSTUME_LOW] == index)
    continue;
    if(i == EQI_COSTUME_TOP && (sd->equip_index[EQI_COSTUME_MID] == index || sd->equip_index[EQI_COSTUME_LOW] == index))
    continue;

    Вроде бы ничего не забыл, так вот и всё бы ничего, но есть одно "очень маленькое НО" :

    1. Надеваем Костюм, после чего прописываем @item <Любой ID шапки> , и выскакивает ошибка о том что Персонаж перегружен, смотрим на загруженность сумки , а там вес уходит в минус ( Например: Weight: -6564 / 10000)

    2. Пишу команду: @job 4010(к примеру) . Итог: Крашит мап сервер

    Есть подозрение что нет какой-либо проверки в pc.c

    Соответственно прошу Вашей помощи, так как в С++ не особо силён . У кого какие идеи?

  5. От души :)

    на самом деле автор сам выкладывал полный пак на rathena, но там все не по-русски т.е. на французском, хрен разберешь что к чему.

    Но я пошел дальше и спарсил с сайта сам с учетом категорий

    Ну в любом случае, работа произведена, молодцом :)

  6. Все вопросы к программисту, дизайн нарисован? - Нарисован. То что твой дизайн не отображается - это уже другой вопрос. Не корректно подавать жалобу, не зная причины.

    пути в верстке кривые - дизайнер виноват

    Дизайн без вёрстки, я это имел ввиду.

  7. От своего имени поздравляю с Днём Рождения!! Димон, пусть в этот день все твои планы по захвату мира сбудутся, Желаю счастья в личной жизни и всего ,всего и еще раз всего :))

    • Upvote 1
  8. Проблема в том, что EXE не может найти палитры.

    Ошибку не получаете, ибо применили патч [uI] Ignore Missing Palette Errors

    Скачайте и подключите GRF с палитрами.

    http://www.mediafire...k6ts1e561s1478b

    Я бы посоветовал использовать 2010-07-30aRagexeRE

    Хорошо, использую 2010-07-30aRagexeRE, - все равно не находит палитры

    Module Name: D:\foxrm\client2\2010-07-30aRagexeRE_patched (1).exe

    Time Stamp: 0x4c52288f - Fri Jul 30 04:19:11 2010

    Exception Type: 0xc0000096

    0x007a0914 2010-07-30aRagexeRE_patched (1).exe

    0x0045dfd6 2010-07-30aRagexeRE_patched (1).exe

    0x004fd970 2010-07-30aRagexeRE_patched (1).exe

    0x0050d14e 2010-07-30aRagexeRE_patched (1).exe

    0x0061260b 2010-07-30aRagexeRE_patched (1).exe

    0x00610337 2010-07-30aRagexeRE_patched (1).exe

    0x007030f3 2010-07-30aRagexeRE_patched (1).exe

    0x0071762d 2010-07-30aRagexeRE_patched (1).exe

    0x76d2338a kernel32.dll

    0x77499f72 ntdll.dll

    0x77499f45 ntdll.dll

    eax: 0x00000000 ebx: 0x12182b60

    ecx: 0x000000f5 edx: 0x0018f894

    esi: 0x0018f7a0 edi: 0xbf937205

    ebp: 0x0018f73c esp: 0x0018f734

    stack 0018f734 - 0018fb34

    0018F734 : A0 F7 18 00 D8 01 00 00 B0 F9 18 00 D6 DF 45 00

    0018F744 : 00 00 00 00 01 00 00 00 01 00 00 00 A0 F7 18 00

    0018F754 : 56 01 00 00 60 2B 18 12 40 02 00 00 00 00 00 00

    0018F764 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    0018F774 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    0018F784 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    0018F794 : 00 00 00 00 00 00 00 00 00 00 00 00 36 46 71 BF

    0018F7A4 : 09 BE 75 BF DA 35 7A BF AB AD 7E BF BF 92 81 BF

    0018F7B4 : A7 CE 83 BF 90 0A 86 BF 79 46 88 BF 62 82 8A BF

    0018F7C4 : 4B BE 8C BF 33 FA 8E BF 1C 36 91 BF 05 72 93 BF

    0018F7D4 : EE AD 95 BF D7 E9 97 BF C0 9A BF A8 61 9C BF 91

    0018F7E4 : 9D 9E BF 7A D9 A0 BF 62 15 A3 BF 4C 51 A5 BF 34

    0018F7F4 : 8D A7 BF 1D C9 A9 BF 06 05 AC BF EE 40 AE BF D8

    0018F804 : 7C B0 BF C0 B8 B2 BF A9 F4 B4 BF 91 30 B7 BF 7B

    0018F814 : 6C B9 BF 64 A8 BB BF 4C E4 BD BF 35 20 C0 BF 1E

    0018F824 : 5C C2 BF 06 98 C4 BF EF D3 C6 BF D8 0F C9 BF C2

    Launch Info

    0000 0000 0000 0000 0000 0000 0000 0000

    0000 0000 0000 0000 0000 0000 0000 0000

    0000 0000 0000 0000 0000 0000 0000 0000

    0000 0000 0000 0000 0000 0000 0000 0000

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