Jump to content

Recommended Posts

Posted

I say do not judge just strictly for my English, I need your help: we need a patch that would have closed the bug WPE with the impres server mangos 2.4.3 revision do not know exactly why I will not lie, if no patch is possible a new revision

p.s.thanks for that fished attention

Posted

if I'm not mistaken this is a patch from the WPE for 2.4.3?

--- trunk/src/game/player.cpp 2008/09/08 19:40:19 6564

+++ trunk/src/game/player.cpp 2008/09/08 22:40:58 6565

@@ -8420,8 +8420,12 @@

if(need_space > count)

need_space = count;

- dest.push_back(itemposcount((bag << 8) | slot,need_space));

- count -= need_space;

+ itemposcount newposition = itemposcount((bag << 8) | slot, need_space);

+ if(!newposition.iscontainedin(dest))

+ {

+ dest.push_back(newposition);

+ count -= need_space;

+ }

return equip_err_ok;

}

@@ -8470,11 +8474,15 @@

if(need_space > count)

need_space = count;

- dest.push_back(itemposcount((bag << 8) | j,need_space));

- count -= need_space;

+ itemposcount newposition = itemposcount((bag << 8) | j, need_space);

+ if(!newposition.iscontainedin(dest))

+ {

+ dest.push_back(newposition);

+ count -= need_space;

- if(count==0)

- return equip_err_ok;

+ if(count==0)

+ return equip_err_ok;

+ }

}

}

else

@@ -8483,11 +8491,15 @@

if(need_space > count)

need_space = count;

- dest.push_back(itemposcount((bag << 8) | j,need_space));

- count -= need_space;

+ itemposcount newposition = itemposcount((bag << 8) | j, need_space);

+ if(!newposition.iscontainedin(dest))

+ {

+ dest.push_back(newposition);

+ count -= need_space;

- if(count==0)

- return equip_err_ok;

+ if(count==0)

+ return equip_err_ok;

+ }

}

}

return equip_err_ok;

@@ -8518,12 +8530,15 @@

uint32 need_space = pproto->stackable - pitem2->getcount();

if(need_space > count)

need_space = count;

+ itemposcount newposition = itemposcount((inventory_slot_bag_0 << 8) | j, need_space);

+ if(!newposition.iscontainedin(dest))

+ {

+ dest.push_back(newposition);

+ count -= need_space;

- dest.push_back(itemposcount((inventory_slot_bag_0 << 8) | j, need_space));

- count -= need_space;

-

- if(count==0)

- return equip_err_ok;

+ if(count==0)

+ return equip_err_ok;

+ }

}

}

else

@@ -8532,11 +8547,15 @@

if(need_space > count)

need_space = count;

- dest.push_back(itemposcount((inventory_slot_bag_0 << 8) | j,need_space));

- count -= need_space;

+ itemposcount newposition = itemposcount((inventory_slot_bag_0 << 8) | j, need_space);

+ if(!newposition.iscontainedin(dest))

+ {

+ dest.push_back(newposition);

+ count -= need_space;

- if(count==0)

- return equip_err_ok;

+ if(count==0)

+ return equip_err_ok;

+ }

}

}

return equip_err_ok;

@@ -17829,3 +17848,16 @@

if ((height_z <= invalid_height || z < (height_z - 0)) && (flag1 == 0x00) && isinwater())

m_isunderwater |= 0x80;

}

+

+bool itemposcount::iscontainedin(itemposcountvec &vec)

+{

+ for(itemposcountvec::const_iterator itr = vec.begin(); itr != vec.end();++itr)

+ {

+ if(itr->pos == this->pos/* && itr->count == this.count*/)

+ {

+ return true;

+ }

+ }

+ return false;

+}

+

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use