From: Kenny G. <ken...@us...> - 2007-08-03 08:23:30
|
Update of /cvsroot/planeshift/planeshift/src/server In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11665/src/server Modified Files: exchangemanager.cpp Log Message: - Fix bug #2868 ("Kikiri ate my steel stock"): player->NPC trades weren't being properly aborted if no dialog was found. Index: exchangemanager.cpp =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/server/exchangemanager.cpp,v retrieving revision 1.174 retrieving revision 1.175 diff -C2 -d -r1.174 -r1.175 *** exchangemanager.cpp 15 Jul 2007 10:40:14 -0000 1.174 --- exchangemanager.cpp 3 Aug 2007 08:23:30 -0000 1.175 *************** *** 1237,1243 **** // Send to the npc as an event trigger psNPCDialog *dlg = target->GetNPCDialogPtr(); ! if (dlg == NULL) ! psserver->SendSystemError(client->GetClientNum(), "%s does not respond to gifts.", target->GetName()); ! else { csString trigger; --- 1237,1241 ---- // Send to the npc as an event trigger psNPCDialog *dlg = target->GetNPCDialogPtr(); ! if (dlg) { csString trigger; *************** *** 1260,1263 **** --- 1258,1269 ---- } } + else + { + psserver->SendSystemError(client->GetClientNum(), "%s does not respond to gifts.", target->GetName()); + client->GetCharacterData()->Inventory().RollbackExchange(); + psserver->GetCharManager()->SendInventory(player); + SendEnd(player); + return false; + } // This is redundant but harmless. CheckXMLResponse also does this but it's easy to miss so leaving here incase someone removes it. |