From 4dce61134647c38d9c912a9efef02e28e1a8c55d Mon Sep 17 00:00:00 2001 From: false_genesis Date: Wed, 20 Feb 2008 22:48:16 +0000 Subject: [PATCH] * fixed wrong reading of cached item protos * fixed+cleanup GetName and GetEntry script funcs --- src/Client/DefScriptInterface.cpp | 18 ++++++++++++------ src/Client/World/CacheHandler.cpp | 3 +-- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/Client/DefScriptInterface.cpp b/src/Client/DefScriptInterface.cpp index 3dd2845..1c3f390 100644 --- a/src/Client/DefScriptInterface.cpp +++ b/src/Client/DefScriptInterface.cpp @@ -463,9 +463,15 @@ DefReturnResult DefScriptPackage::SCGetName(CmdSet& Set) if(source.empty() || source == "guid") { Object *o = ws->objmgr.GetObj(id); + std::string n; if(o) - return o->GetName(); - else + { + n = o->GetName(); + if(!n.empty()) + return n; + } + + if(!o || n.empty()) { // fallback if that guid is player guid, its maybe stored, so check that if(IS_PLAYER_GUID(id)) @@ -506,7 +512,7 @@ DefReturnResult DefScriptPackage::SCGetEntry(CmdSet& Set) DEF_RETURN_ERROR; } DefReturnResult r; - uint64 guid=DefScriptTools::toNumber(Set.defaultarg); + uint64 guid=DefScriptTools::toUint64(Set.defaultarg); r.ret="0"; Object *o=((PseuInstance*)parentMethod)->GetWSession()->objmgr.GetObj(guid); if(o) @@ -528,7 +534,7 @@ DefReturnResult DefScriptPackage::SCGetObjectType(CmdSet& Set) DEF_RETURN_ERROR; } DefReturnResult r; - uint64 guid=DefScriptTools::toNumber(Set.defaultarg); + uint64 guid=DefScriptTools::toUint64(Set.defaultarg); r.ret="0"; Object *o=((PseuInstance*)parentMethod)->GetWSession()->objmgr.GetObj(guid); if(o) @@ -842,11 +848,11 @@ DefReturnResult DefScriptPackage::SCGetObjectValue(CmdSet &Set) DEF_RETURN_ERROR; } - uint64 guid = DefScriptTools::toNumber(Set.defaultarg); + uint64 guid = DefScriptTools::toUint64(Set.defaultarg); Object *o = ws->objmgr.GetObj(guid); if(o) { - uint32 v = (uint32)DefScriptTools::toNumber(Set.arg[0]); + uint32 v = (uint32)DefScriptTools::toUint64(Set.arg[0]); if(v > o->GetValuesCount()) { logerror("SCGetObjectValue ["I64FMTD", type %u]: invalid value index: %u",guid,o->GetTypeId(),v); diff --git a/src/Client/World/CacheHandler.cpp b/src/Client/World/CacheHandler.cpp index 52f7089..43ffb07 100644 --- a/src/Client/World/CacheHandler.cpp +++ b/src/Client/World/CacheHandler.cpp @@ -179,7 +179,7 @@ void ItemProtoCache_InsertDataToSession(WorldSession *session) fh.read((char*)&total,4); logdetail("ItemProtoCache: %u item prototypes stored",total); - uint32 datasize,unk, counter = 0; + uint32 datasize, counter = 0; ByteBuffer buf; for(uint32 i = 0; i < total && !fh.eof(); i++) { @@ -192,7 +192,6 @@ void ItemProtoCache_InsertDataToSession(WorldSession *session) buf >> proto->Id; buf >> proto->Class; buf >> proto->SubClass; - buf >> unk; buf >> proto->Name; buf >> proto->DisplayInfoID; buf >> proto->Quality;