Es gab ja diesen Exploit, bei der GetQuestFlag Methode.
Diese habe ich gefixxt mit folgendem Code:
Code
- int CHARACTER::GetQuestFlag(const std::string& flag) const
- {
- quest::CQuestManager& q = quest::CQuestManager::instance();
- quest::PC* pPC = q.GetPC(GetPlayerID());
- if(!pPC) {
- sys_err("Nullpointer in CHARACTER::GetQuestFlag %lu", GetPlayerID());
- return 0;
- }
- return pPC->GetFlag(flag);
- }
- void CHARACTER::SetQuestFlag(const std::string& flag, int value)
- {
- quest::CQuestManager& q = quest::CQuestManager::instance();
- quest::PC* pPC = q.GetPC(GetPlayerID());
- if(!pPC) {
- sys_err("Nullpointer in CHARACTER::SettQuestFlag %lu", GetPlayerID());
- return;
- }
- pPC->SetFlag(flag, value);
- }
Dort sehe ich ja, dass return 0 gegeben wird.
Aber wie mache ich jetzt, dass in der syserr dies nicht full gespammt wird?