Changeset 18 for trunk/src/game/Level2.cpp
- Timestamp:
- 11/19/08 13:23:29 (17 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/game/Level2.cpp
r6 r18 1238 1238 return false; 1239 1239 1240 Creature* vendor = getSelectedCreature();1241 if (!vendor || !vendor->isVendor())1242 {1243 SendSysMessage(LANG_COMMAND_VENDORSELECTION);1244 SetSentErrorMessage(true);1245 return false;1246 }1247 1248 1240 char* pitem = extractKeyFromLink((char*)args,"Hitem"); 1249 1241 if (!pitem) … … 1253 1245 return false; 1254 1246 } 1247 1255 1248 uint32 itemId = atol(pitem); 1256 1249 … … 1268 1261 uint32 extendedcost = fextendedcost ? atol(fextendedcost) : 0; 1269 1262 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 1305 1277 PSendSysMessage(LANG_ITEM_ADDED_TO_LIST,itemId,pProto->Name1,maxcount,incrtime,extendedcost); 1306 1278 return true; … … 1330 1302 uint32 itemId = atol(pitem); 1331 1303 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)) 1344 1306 { 1345 1307 PSendSysMessage(LANG_ITEM_NOT_IN_LIST,itemId); … … 1348 1310 } 1349 1311 1350 WorldDatabase.PExecuteLog("DELETE FROM npc_vendor WHERE entry='%u' AND item='%u'",vendor->GetEntry(), itemId); 1312 ItemPrototype const* pProto = objmgr.GetItemPrototype(itemId); 1313 1351 1314 PSendSysMessage(LANG_ITEM_DELETED_FROM_LIST,itemId,pProto->Name1); 1352 1315 return true;