1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

1.5.1 (101) Поглощение карт S и S+

Тема в разделе 'PW Вопросник', создана пользователем Hroniz, 25 июн 2016.

  1. TopicStarter Overlay

    Hroniz Guest

    Репутация:
    0
    Здравствуйте форумчане, возможно ли шаровыми средствами реализовать поглощение и автопоглощение карт класса S и S+?
    Заранее спасибо за ответ :)
  2. kostik21730 Пользователи

    Сообщения:
    188
    Лайки:
    48
    Пол:
    Мужской
    Репутация:
    0
    Страна:
    Ukraine Ukraine
    Я конечно не топ программист, но наверное в ядре (или, что очень маловероятно, в деливери) должна быть функция поглащения и в ней проверка на класс карты. Скорее всего обычный if. Только хз как представлены классы карт, опять же вероятнее всего 0, 1 ....
    Название ф-ции поглощения(gs): PlayerSwallowGeneralCard
    Немного рассуждений:
    Код:
      if ( equip_idx > 31 && equip_idx <= 37 && inv_idx < item_list::Size(pInv) )
      {
        it_eq = item_list::operator[](&this->_equipment, equip_idx); //Карта для которой поглощают
        it_inv = item_list::operator[](pInv, inv_idx); //Поглощаемый предмет
        if ( it_eq->type > 0 && it_inv->type > 0 && count && it_inv->count >= count )
        {
          v5 = it_inv->type;
          v6 = world_manager::GetDataMan();
          ess = itemdataman::get_data_ptr(v6, v5, 0, &dt); //в dt получили тип поглощаемого предмета
          if ( ess )
          {
    //По ф-ции фигурируют 2 значения 185 и 183. Осмелюсь предположить, что 185 это коробочка с картами
    //а 183 карты a-c. Тут будет логичным предположить, что 184 это карты которые нельзя поглощать, то есть s и s+.
            if ( dt == 185 ) //Проверка на коробочку карт
            {
              exp = *((_DWORD *)ess + 171);
            }
            else
            {
              //Далее единственна проверка на поглощаемость карты.
              if ( dt != 183 ) return 5;//Проверка на то, что карта "из поглощаемых"
             //Вот в этом условии нужно добавить && dt != 184 и все, НАВЕРНОЕ, должно работать.
             //ТОЛЬКО КАК ЭТО СДЕЛАТЬ Я Х** ЗНАЕТ. ЭТО К 32битному обитателю морга.
              exp = *((_DWORD *)ess + 81);
            }
       
    Последнее редактирование: 25 июн 2016
    Unix нравится это.
  3. kostik21730 Пользователи

    Сообщения:
    188
    Лайки:
    48
    Пол:
    Мужской
    Репутация:
    0
    Страна:
    Ukraine Ukraine
    Еще доказательство того что 185 это коробочка. Далее есть условие (проверка что тип поглощаемой карты не больше чем тип для которой поглощают):
    Код:
     if ( dt != 185 || (v8 = item::GetRank(it_inv), v8 <= item::GetRank(it_eq)) )
    Если не критично по концепции, то можно затереть эту проверку и будет место для редактирования нужного условия.
  4. Unix Пользователи

    Сообщения:
    1.028
    Лайки:
    331
    Пол:
    Мужской
    Репутация:
    6
    Страна:
    Ukraine Ukraine
    Столкнулся с этим же вопросом, теория твоя не много не правильна, но функция и направление я думаю именно то.
  5. un712 Пользователи

    Сообщения:
    53
    Лайки:
    13
    Репутация:
    0
    За косарик пофикшу =)
  6. Unix Пользователи

    Сообщения:
    1.028
    Лайки:
    331
    Пол:
    Мужской
    Репутация:
    6
    Страна:
    Ukraine Ukraine
    Не пофиксишь
  7. un712 Пользователи

    Сообщения:
    53
    Лайки:
    13
    Репутация:
    0
    Аргументируй
  8. Unix Пользователи

    Сообщения:
    1.028
    Лайки:
    331
    Пол:
    Мужской
    Репутация:
    6
    Страна:
    Ukraine Ukraine
    Наверное у тебя есть elementclient.exe с дэбаг инфой, ну или ты просто хорошо понимаешь псевдокод без дэбаг инфы.
  9. un712 Пользователи

    Сообщения:
    53
    Лайки:
    13
    Репутация:
    0
    В екзешнике там ровно 1 байт пропатчить надо =)
    Для автопоглощения чуток больше, но суть та же.
Черновик сохранён Черновик удалён
Similar Threads
  1. concueror123
    Ответов:
    4
    Просмотров:
    2.498
  2. maestro199
    Ответов:
    8
    Просмотров:
    1.742
  3. Димка11
    Ответов:
    4
    Просмотров:
    1.215
  4. zebra9599
    Ответов:
    3
    Просмотров:
    1.145
Загрузка...

Поделиться этой страницей