Show
Ignore:
Timestamp:
11/19/08 13:23:29 (17 years ago)
Author:
yumileroy
Message:

[svn] * Little fix in RandomMovementGenerator?
* Updated to 6731 and 680

Original author: Neo2003
Date: 2008-10-06 04:48:59-05:00

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/game/Level2.cpp

    r6 r18  
    12381238        return false; 
    12391239 
    1240     Creature* vendor = getSelectedCreature(); 
    1241     if (!vendor || !vendor->isVendor()) 
    1242     { 
    1243         SendSysMessage(LANG_COMMAND_VENDORSELECTION); 
    1244         SetSentErrorMessage(true); 
    1245         return false; 
    1246     } 
    1247  
    12481240    char* pitem  = extractKeyFromLink((char*)args,"Hitem"); 
    12491241    if (!pitem) 
     
    12531245        return false; 
    12541246    } 
     1247 
    12551248    uint32 itemId = atol(pitem); 
    12561249 
     
    12681261    uint32 extendedcost = fextendedcost ? atol(fextendedcost) : 0; 
    12691262 
    1270     ItemPrototype const *pProto = objmgr.GetItemPrototype(itemId); 
    1271     if(!pProto) 
    1272     { 
    1273         PSendSysMessage(LANG_ITEM_NOT_FOUND, itemId); 
    1274         SetSentErrorMessage(true); 
    1275         return false; 
    1276     } 
    1277  
    1278     if(extendedcost && !sItemExtendedCostStore.LookupEntry(extendedcost)) 
    1279     { 
    1280         PSendSysMessage(LANG_BAD_VALUE, extendedcost); 
    1281         SetSentErrorMessage(true); 
    1282         return false; 
    1283     } 
    1284  
    1285     // load vendor items if not yet 
    1286     vendor->LoadGoods(); 
    1287  
    1288     if(vendor->FindItem(itemId)) 
    1289     { 
    1290         PSendSysMessage(LANG_ITEM_ALREADY_IN_LIST,itemId); 
    1291         SetSentErrorMessage(true); 
    1292         return false; 
    1293     } 
    1294  
    1295     if (vendor->GetItemCount() >= MAX_VENDOR_ITEMS) 
    1296     { 
    1297         SendSysMessage(LANG_COMMAND_ADDVENDORITEMITEMS); 
    1298         SetSentErrorMessage(true); 
    1299         return false; 
    1300     } 
    1301  
    1302     // add to DB and to current ingame vendor 
    1303     WorldDatabase.PExecuteLog("INSERT INTO npc_vendor (entry,item,maxcount,incrtime,extendedcost) VALUES('%u','%u','%u','%u','%u')",vendor->GetEntry(), itemId, maxcount,incrtime,extendedcost); 
    1304     vendor->AddItem(itemId,maxcount,incrtime,extendedcost); 
     1263    Creature* vendor = getSelectedCreature(); 
     1264 
     1265    uint32 vendor_entry = vendor ? vendor->GetEntry() : 0; 
     1266 
     1267    if(!objmgr.IsVendorItemValid(vendor_entry,itemId,maxcount,incrtime,extendedcost,m_session->GetPlayer())) 
     1268    { 
     1269        SetSentErrorMessage(true); 
     1270        return false; 
     1271    } 
     1272 
     1273    objmgr.AddVendorItem(vendor_entry,itemId,maxcount,incrtime,extendedcost); 
     1274 
     1275    ItemPrototype const* pProto = objmgr.GetItemPrototype(itemId); 
     1276 
    13051277    PSendSysMessage(LANG_ITEM_ADDED_TO_LIST,itemId,pProto->Name1,maxcount,incrtime,extendedcost); 
    13061278    return true; 
     
    13301302    uint32 itemId = atol(pitem); 
    13311303 
    1332     ItemPrototype const *pProto = objmgr.GetItemPrototype(itemId); 
    1333     if(!pProto) 
    1334     { 
    1335         PSendSysMessage(LANG_ITEM_NOT_FOUND, itemId); 
    1336         SetSentErrorMessage(true); 
    1337         return false; 
    1338     } 
    1339  
    1340     // load vendor items if not yet 
    1341     vendor->LoadGoods(); 
    1342  
    1343     if (!vendor->RemoveItem(itemId)) 
     1304 
     1305    if(!objmgr.RemoveVendorItem(vendor->GetEntry(),itemId)) 
    13441306    { 
    13451307        PSendSysMessage(LANG_ITEM_NOT_IN_LIST,itemId); 
     
    13481310    } 
    13491311 
    1350     WorldDatabase.PExecuteLog("DELETE FROM npc_vendor WHERE entry='%u' AND item='%u'",vendor->GetEntry(), itemId); 
     1312    ItemPrototype const* pProto = objmgr.GetItemPrototype(itemId); 
     1313 
    13511314    PSendSysMessage(LANG_ITEM_DELETED_FROM_LIST,itemId,pProto->Name1); 
    13521315    return true;